diff --git a/.dockerignore b/.dockerignore index fe2ac6ec7..8822b3436 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,14 @@ +.git +.git/ .git/* +conf +conf/ conf/* +packager +packager/ packager/* +scripts +scripts/ scripts/* *.yml *.md @@ -9,4 +17,4 @@ scripts/* .gitignore .gopmfile config.codekit -LICENSE \ No newline at end of file +LICENSE diff --git a/.gitignore b/.gitignore index 383b32564..d696aff5f 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ docker/docker/Dockerfile docker/docker/init_gogs.sh gogs.sublime-project gogs.sublime-workspace +.tags* diff --git a/.gopmfile b/.gopmfile index 66076babc..2cae07dca 100644 --- a/.gopmfile +++ b/.gopmfile @@ -6,26 +6,28 @@ github.com/bradfitz/gomemcache = commit:72a68649ba github.com/Unknwon/cae = commit:2e70a1351b github.com/Unknwon/com = commit:47d7d2b81a github.com/Unknwon/i18n = commit:7457d88830 -github.com/Unknwon/macaron = commit:635c89ac74 github.com/Unknwon/paginater = commit:cab2d086fa github.com/codegangsta/cli = commit:142e6cd241 -github.com/go-sql-driver/mysql = commit:3dd7008ac1 -github.com/go-xorm/core = commit:515edd92c1 -github.com/go-xorm/xorm = commit:ce23797899 +github.com/go-sql-driver/mysql = commit:527bcd55aa +github.com/go-xorm/core = commit:3e10003353 +github.com/go-xorm/xorm = commit:803f6db50c github.com/gogits/chardet = commit:2404f77725 github.com/gogits/go-gogs-client = commit:519eee0af0 +github.com/issue9/identicon = github.com/lib/pq = commit:b269bd035a -github.com/macaron-contrib/binding = commit:de6ed78668 -github.com/macaron-contrib/cache = commit:a139ea1eee -github.com/macaron-contrib/captcha = commit:9a0a0b1468 -github.com/macaron-contrib/csrf = commit:98ddf5a710 -github.com/macaron-contrib/i18n = commit:da2b19e90b -github.com/macaron-contrib/oauth2 = commit:1adb5ce072 -github.com/macaron-contrib/session = commit:e48134e803 -github.com/macaron-contrib/toolbox = commit:acbfe36e16 -github.com/mattn/go-sqlite3 = commit:897b8800a7 +github.com/go-macaron/binding = +github.com/go-macaron/cache = +github.com/go-macaron/captcha = +github.com/go-macaron/csrf = +github.com/go-macaron/gzip = +github.com/go-macaron/i18n = +github.com/go-macaron/session = +github.com/go-macaron/toolbox = +github.com/klauspost/compress = +github.com/klauspost/crc32 = +github.com/mattn/go-sqlite3 = commit:b808f01f66 github.com/mcuadros/go-version = commit:d52711f8d6 -github.com/microcosm-cc/bluemonday = commit:2b7763a06c +github.com/microcosm-cc/bluemonday = commit:85ba47ef2c github.com/mssola/user_agent = commit:a163d6a569 github.com/msteinert/pam = commit:6534f23b39 github.com/nfnt/resize = commit:dc93e1b98c @@ -33,7 +35,9 @@ github.com/russross/blackfriday = commit:8cec3a854e github.com/shurcooL/sanitized_anchor_name = commit:244f5ac324 golang.org/x/net = golang.org/x/text = -gopkg.in/ini.v1 = commit:463307112d +gopkg.in/gomail.v2 = commit:b1e55520bf +gopkg.in/macaron.v1 = +gopkg.in/ini.v1 = commit:e8c222fea7 gopkg.in/redis.v2 = commit:e617904962 [res] diff --git a/.travis.yml b/.travis.yml index 2844adb41..864a80c42 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: go go: - - 1.2 - 1.3 - 1.4 - 1.5 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3f4657e29..62c3197db 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,7 +42,7 @@ There is no standard form of making a feature request. Just try to describe the ### Pull Request -Pull requests are always welcome, but note that **ALL PULL REQUESTS MUST APPLY TO THE `DEV` BRANCH**. +Pull requests are always welcome, but note that **ALL PULL REQUESTS MUST APPLY TO THE `develop` BRANCH**. We are always thrilled to receive pull requests, and do our best to process them as fast as possible. Not sure if that typo is worth a pull request? Do it! We will appreciate it. diff --git a/Dockerfile b/Dockerfile index 64433cb05..500a294f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,54 +1,22 @@ -FROM google/debian:wheezy -MAINTAINER u@gogs.io +FROM alpine:3.2 +MAINTAINER roemer.jp@gmail.com -RUN echo "deb http://ftp.debian.org/debian/ wheezy-backports main" >> /etc/apt/sources.list && \ - apt-get update -qqy && \ - apt-get install --no-install-recommends -qqy \ - curl build-essential ca-certificates git \ - openssh-server libpam-dev && \ - apt-get autoclean && \ - apt-get autoremove && \ - rm -rf /var/lib/apt/lists/* +# Install system utils & Gogs runtime dependencies +ADD https://github.com/tianon/gosu/releases/download/1.6/gosu-amd64 /usr/sbin/gosu +RUN echo "@edge http://dl-4.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories \ + && echo "@community http://dl-4.alpinelinux.org/alpine/edge/community" | tee -a /etc/apk/repositories \ + && apk -U --no-progress upgrade \ + && apk -U --no-progress add ca-certificates bash git linux-pam s6@edge curl openssh socat \ + && chmod +x /usr/sbin/gosu -ENV GOROOT /goroot -ENV GOPATH /gopath -ENV PATH $PATH:$GOROOT/bin:$GOPATH/bin - -COPY . /gopath/src/github.com/gogits/gogs/ -WORKDIR /gopath/src/github.com/gogits/gogs/ - -# Build binary and clean up useless files -RUN mkdir /goroot && \ - curl https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz | tar xzf - -C /goroot --strip-components=1 && \ - go get -v -tags "sqlite redis memcache cert pam" && \ - go build -tags "sqlite redis memcache cert pam" && \ - mkdir /app/ && \ - mv /gopath/src/github.com/gogits/gogs/ /app/gogs/ && \ - rm -r $GOROOT $GOPATH +ENV GOGS_CUSTOM /data/gogs +COPY . /app/gogs/ WORKDIR /app/gogs/ +RUN ./docker/build.sh -RUN useradd --shell /bin/bash --system --comment gogits git - -# SSH login fix, otherwise user is kicked off after login -RUN mkdir /var/run/sshd && \ - sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd && \ - sed 's@UsePrivilegeSeparation yes@UsePrivilegeSeparation no@' -i /etc/ssh/sshd_config && \ - echo "export VISIBLE=now" >> /etc/profile && \ - echo "PermitUserEnvironment yes" >> /etc/ssh/sshd_config - -# Setup server keys on startup -RUN sed 's@^HostKey@\#HostKey@' -i /etc/ssh/sshd_config && \ - echo "HostKey /data/ssh/ssh_host_key" >> /etc/ssh/sshd_config && \ - echo "HostKey /data/ssh/ssh_host_rsa_key" >> /etc/ssh/sshd_config && \ - echo "HostKey /data/ssh/ssh_host_dsa_key" >> /etc/ssh/sshd_config && \ - echo "HostKey /data/ssh/ssh_host_ecdsa_key" >> /etc/ssh/sshd_config && \ - echo "HostKey /data/ssh/ssh_host_ed25519_key" >> /etc/ssh/sshd_config - -# Prepare data -ENV GOGS_CUSTOM /data/gogs -RUN echo "export GOGS_CUSTOM=/data/gogs" >> /etc/profile - +# Configure Docker Container +VOLUME ["/data"] EXPOSE 22 3000 -ENTRYPOINT [] -CMD ["./docker/start.sh"] \ No newline at end of file +ENTRYPOINT ["docker/start.sh"] +CMD ["/usr/bin/s6-svscan", "/app/gogs/docker/s6/"] diff --git a/README.md b/README.md index a5c05ffec..8e4cc8331 100644 --- a/README.md +++ b/README.md @@ -3,25 +3,25 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/gogits/gogs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -Gogs (Go Git Service) is a painless self-hosted Git service. +![](public/img/gogs-large-resize.png) -##### Current version: 0.6.9 Beta +##### Current version: 0.6.16 Beta - - - + + + - - - + + + - - - + + +
@@ -38,14 +38,14 @@ Gogs (Go Git Service) is a painless self-hosted Git service. ## Purpose -The goal of this project is to make the easiest, fastest, and most painless way to set up a self-hosted Git service. With Go, this can be done via an independent binary distribution across **ALL platforms** that Go supports, including Linux, Mac OS X, and Windows. +The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. With Go, this can be done with an independent binary distribution across **ALL platforms** that Go supports, including Linux, Mac OS X, and Windows. ## Overview - Please see the [Documentation](http://gogs.io/docs/intro/) for project design, known issues, and change log. - See the [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) to follow the develop team. - Want to try it before doing anything else? Do it [online](https://try.gogs.io/gogs/gogs) or go down to the **Installation -> Install from binary** section! -- Having trouble? Get help with [Troubleshooting](http://gogs.io/docs/intro/troubleshooting.md). +- Having trouble? Get help with [Troubleshooting](http://gogs.io/docs/intro/troubleshooting.html). - Want to help with localization? Check out the [guide](http://gogs.io/docs/features/i18n.html)! ## Features @@ -61,8 +61,8 @@ The goal of this project is to make the easiest, fastest, and most painless way - Gravatar and custom source support - Mail service - Administration panel -- Supports MySQL, PostgreSQL and SQLite3 -- Social account login (GitHub, Google, QQ, Weibo) +- CI integration: [Drone](https://github.com/drone/drone) +- Supports MySQL, PostgreSQL, SQLite3 and [TiDB](https://github.com/pingcap/tidb) - Multi-language support ([14 languages](https://crowdin.com/project/gogs)) ## System Requirements @@ -81,9 +81,9 @@ Make sure you install the [prerequisites](http://gogs.io/docs/installation/) fir There are 5 ways to install Gogs: -- [Install from binary](http://gogs.io/docs/installation/install_from_binary.md) -- [Install from source](http://gogs.io/docs/installation/install_from_source.md) -- [Install from packages](http://gogs.io/docs/installation/install_from_packages.md) +- [Install from binary](http://gogs.io/docs/installation/install_from_binary.html) +- [Install from source](http://gogs.io/docs/installation/install_from_source.html) +- [Install from packages](http://gogs.io/docs/installation/install_from_packages.html) - [Ship with Docker](https://github.com/gogits/gogs/tree/master/docker) - [Install with Vagrant](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs) @@ -99,6 +99,13 @@ There are 5 ways to install Gogs: - [Instalando Gogs no Ubuntu](http://blog.linuxpro.com.br/2015/08/14/instalando-gogs-no-ubuntu/) (Português) +### Deploy to Cloud + +- [OpenShift](https://github.com/tkisme/gogs-openshift) +- [Cloudron](https://cloudron.io/appstore.html#io.gogs.cloudronapp) +- [Scaleway](https://www.scaleway.com/imagehub/gogs/) +- [Portal](https://portaldemo.xyz/cloud/) + ## Acknowledgments - Router and middleware mechanism of [Macaron](https://github.com/Unknwon/macaron). diff --git a/README_ZH.md b/README_ZH.md index c44c464e1..471cc79aa 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -12,7 +12,7 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自 - 有关项目设计、已知问题和变更日志,请通过 [使用手册](http://gogs.io/docs/intro/) 查看。 - 您可以到 [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) 跟随开发团队的脚步。 - 想要先睹为快?通过 [在线体验](https://try.gogs.io/gogs/gogs) 或查看 **安装部署 -> 二进制安装** 小节。 -- 使用过程中遇到问题?尝试从 [故障排查](http://gogs.io/docs/intro/troubleshooting.md) 页面获取帮助。 +- 使用过程中遇到问题?尝试从 [故障排查](http://gogs.io/docs/intro/troubleshooting.html) 页面获取帮助。 - 希望帮助多国语言界面的翻译吗?请立即访问 [详情页面](http://gogs.io/docs/features/i18n.html)! ## 功能特性 @@ -28,8 +28,8 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自 - 支持 Gravatar 以及自定义源 - 支持邮件服务 - 支持后台管理面板 -- 支持 MySQL、PostgreSQL 以及 SQLite3 数据库 -- 支持社交帐号登录(GitHub、Google、QQ、微博) +- 支持 CI 集成:[Drone](https://github.com/drone/drone) +- 支持 MySQL、PostgreSQL、SQLite3 和 [TiDB](https://github.com/pingcap/tidb) 数据库 - 支持多语言本地化([14 种语言]([more](https://crowdin.com/project/gogs))) ## 系统要求 @@ -48,9 +48,9 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自 然后,您可以通过以下 5 种方式来安装 Gogs: -- [二进制安装](http://gogs.io/docs/installation/install_from_binary.md) -- [源码安装](http://gogs.io/docs/installation/install_from_source.md) -- [包管理安装](http://gogs.io/docs/installation/install_from_packages.md) +- [二进制安装](http://gogs.io/docs/installation/install_from_binary.html) +- [源码安装](http://gogs.io/docs/installation/install_from_source.html) +- [包管理安装](http://gogs.io/docs/installation/install_from_packages.html) - [采用 Docker 部署](https://github.com/gogits/gogs/tree/master/docker) - [通过 Vagrant 安装](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs) diff --git a/cmd/cert.go b/cmd/cert.go index 0a09b0034..5b182da9e 100644 --- a/cmd/cert.go +++ b/cmd/cert.go @@ -114,7 +114,7 @@ func runCert(ctx *cli.Context) { SerialNumber: serialNumber, Subject: pkix.Name{ Organization: []string{"Acme Co"}, - CommonName: "Gogs", + CommonName: "Gogs", }, NotBefore: notBefore, NotAfter: notAfter, diff --git a/cmd/dump.go b/cmd/dump.go index 36bb4f030..44b180c32 100644 --- a/cmd/dump.go +++ b/cmd/dump.go @@ -34,8 +34,8 @@ func runDump(ctx *cli.Context) { if ctx.IsSet("config") { setting.CustomConf = ctx.String("config") } - setting.NewConfigContext() - models.LoadModelsConfig() + setting.NewContext() + models.LoadConfigs() models.SetEngine() log.Printf("Dumping local repositories...%s", setting.RepoRootPath) diff --git a/cmd/serve.go b/cmd/serve.go index ec1da3bee..34ebe9fbd 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -37,7 +37,7 @@ var CmdServ = cli.Command{ } func setup(logPath string) { - setting.NewConfigContext() + setting.NewContext() log.NewGitLogger(filepath.Join(setting.LogRootPath, logPath)) if setting.DisableSSH { @@ -45,9 +45,9 @@ func setup(logPath string) { os.Exit(1) } - models.LoadModelsConfig() + models.LoadConfigs() - if setting.UseSQLite3 { + if setting.UseSQLite3 || setting.UseTiDB { workDir, _ := setting.WorkDir() os.Chdir(workDir) } @@ -219,9 +219,13 @@ func runServ(c *cli.Context) { } // Send deliver hook request. - resp, err := httplib.Head(setting.AppUrl + setting.AppSubUrl + repoUserName + "/" + repoName + "/hooks/trigger").Response() + reqURL := setting.AppUrl + repoUserName + "/" + repoName + "/hooks/trigger" + resp, err := httplib.Head(reqURL).Response() if err == nil { resp.Body.Close() + log.GitLogger.Trace("Trigger hook: %s", reqURL) + } else { + log.GitLogger.Error(2, "Fail to trigger hook: %v", err) } // Update user key activity. diff --git a/cmd/web.go b/cmd/web.go index 240a46ecb..5781872c6 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -15,19 +15,19 @@ import ( "path" "strings" - "github.com/Unknwon/macaron" "github.com/codegangsta/cli" + "github.com/go-macaron/binding" + "github.com/go-macaron/cache" + "github.com/go-macaron/captcha" + "github.com/go-macaron/csrf" + "github.com/go-macaron/gzip" + "github.com/go-macaron/i18n" + "github.com/go-macaron/session" + "github.com/go-macaron/toolbox" "github.com/go-xorm/xorm" - "github.com/macaron-contrib/binding" - "github.com/macaron-contrib/cache" - "github.com/macaron-contrib/captcha" - "github.com/macaron-contrib/csrf" - "github.com/macaron-contrib/i18n" - "github.com/macaron-contrib/oauth2" - "github.com/macaron-contrib/session" - "github.com/macaron-contrib/toolbox" "github.com/mcuadros/go-version" "gopkg.in/ini.v1" + "gopkg.in/macaron.v1" api "github.com/gogits/go-gogs-client" @@ -104,7 +104,7 @@ func newMacaron() *macaron.Macaron { } m.Use(macaron.Recovery()) if setting.EnableGzip { - m.Use(macaron.Gziper()) + m.Use(gzip.Gziper()) } if setting.Protocol == setting.FCGI { m.SetURLPrefix(setting.AppSubUrl) @@ -167,13 +167,6 @@ func newMacaron() *macaron.Macaron { }, }, })) - - // OAuth 2. - if setting.OauthService != nil { - for _, info := range setting.OauthService.OauthInfos { - m.Use(oauth2.NewOAuth2Provider(info.Options, info.AuthUrl, info.TokenUrl)) - } - } m.Use(middleware.Contexter()) return m } @@ -200,7 +193,7 @@ func runWeb(ctx *cli.Context) { m.Get("/explore", ignSignIn, routers.Explore) m.Combo("/install", routers.InstallInit).Get(routers.Install). Post(bindIgnErr(auth.InstallForm{}), routers.InstallPost) - m.Get("/:type(issues|pulls)", reqSignIn, user.Issues) + m.Get("/^:type(issues|pulls)$", reqSignIn, user.Issues) // ***** START: API ***** // FIXME: custom form error response. @@ -234,6 +227,7 @@ func runWeb(ctx *cli.Context) { m.Group("", func() { m.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), v1.MigrateRepo) + m.Delete("/:username/:reponame", v1.DeleteRepo) }, middleware.ApiReqToken()) m.Group("/:username/:reponame", func() { @@ -260,7 +254,7 @@ func runWeb(ctx *cli.Context) { }) m.Any("/*", func(ctx *middleware.Context) { - ctx.HandleAPI(404, "Page not found") + ctx.Error(404) }) }) }, ignSignIn) @@ -270,7 +264,6 @@ func runWeb(ctx *cli.Context) { m.Group("/user", func() { m.Get("/login", user.SignIn) m.Post("/login", bindIgnErr(auth.SignInForm{}), user.SignInPost) - m.Get("/info/:name", user.SocialSignIn) m.Get("/sign_up", user.SignUp) m.Post("/sign_up", bindIgnErr(auth.RegisterForm{}), user.SignUpPost) m.Get("/reset_password", user.ResetPasswd) @@ -281,21 +274,20 @@ func runWeb(ctx *cli.Context) { m.Get("", user.Settings) m.Post("", bindIgnErr(auth.UpdateProfileForm{}), user.SettingsPost) m.Post("/avatar", binding.MultipartForm(auth.UploadAvatarForm{}), user.SettingsAvatar) - m.Get("/email", user.SettingsEmails) - m.Post("/email", bindIgnErr(auth.AddEmailForm{}), user.SettingsEmailPost) + m.Combo("/email").Get(user.SettingsEmails). + Post(bindIgnErr(auth.AddEmailForm{}), user.SettingsEmailPost) + m.Post("/email/delete", user.DeleteEmail) m.Get("/password", user.SettingsPassword) m.Post("/password", bindIgnErr(auth.ChangePasswordForm{}), user.SettingsPasswordPost) m.Combo("/ssh").Get(user.SettingsSSHKeys). Post(bindIgnErr(auth.AddSSHKeyForm{}), user.SettingsSSHKeysPost) m.Post("/ssh/delete", user.DeleteSSHKey) - m.Get("/social", user.SettingsSocial) m.Combo("/applications").Get(user.SettingsApplications). Post(bindIgnErr(auth.NewAccessTokenForm{}), user.SettingsApplicationsPost) m.Post("/applications/delete", user.SettingsDeleteApplication) m.Route("/delete", "GET,POST", user.SettingsDelete) }, reqSignIn, func(ctx *middleware.Context) { ctx.Data["PageIsUserSettings"] = true - ctx.Data["HasOAuthService"] = setting.OauthService != nil }) m.Group("/user", func() { @@ -325,7 +317,7 @@ func runWeb(ctx *cli.Context) { m.Group("/users", func() { m.Get("", admin.Users) m.Get("/new", admin.NewUser) - m.Post("/new", bindIgnErr(auth.RegisterForm{}), admin.NewUserPost) + m.Post("/new", bindIgnErr(auth.AdminCrateUserForm{}), admin.NewUserPost) m.Get("/:userid", admin.EditUser) m.Post("/:userid", bindIgnErr(auth.AdminEditUserForm{}), admin.EditUserPost) m.Post("/:userid/delete", admin.DeleteUser) @@ -343,8 +335,8 @@ func runWeb(ctx *cli.Context) { m.Get("", admin.Authentications) m.Get("/new", admin.NewAuthSource) m.Post("/new", bindIgnErr(auth.AuthenticationForm{}), admin.NewAuthSourcePost) - m.Get("/:authid", admin.EditAuthSource) - m.Post("/:authid", bindIgnErr(auth.AuthenticationForm{}), admin.EditAuthSourcePost) + m.Combo("/:authid").Get(admin.EditAuthSource). + Post(bindIgnErr(auth.AuthenticationForm{}), admin.EditAuthSourcePost) m.Post("/:authid/delete", admin.DeleteAuthSource) }) @@ -399,7 +391,7 @@ func runWeb(ctx *cli.Context) { m.Group("/:org", func() { m.Get("/dashboard", user.Dashboard) - m.Get("/:type(issues|pulls)", user.Issues) + m.Get("/^:type(issues|pulls)$", user.Issues) m.Get("/members", org.Members) m.Get("/members/action/:action", org.MembersAction) @@ -533,8 +525,8 @@ func runWeb(ctx *cli.Context) { m.Group("/:username/:reponame", func() { m.Get("/releases", middleware.RepoRef(), repo.Releases) - m.Get("/:type(issues|pulls)", repo.RetrieveLabels, repo.Issues) - m.Get("/:type(issues|pulls)/:index", repo.ViewIssue) + m.Get("/^:type(issues|pulls)$", repo.RetrieveLabels, repo.Issues) + m.Get("/^:type(issues|pulls)$/:index", repo.ViewIssue) m.Get("/labels/", repo.RetrieveLabels, repo.Labels) m.Get("/milestones", repo.Milestones) m.Get("/branches", repo.Branches) @@ -551,6 +543,9 @@ func runWeb(ctx *cli.Context) { m.Get("/raw/*", repo.SingleDownload) m.Get("/commits/*", repo.RefCommits) m.Get("/commit/*", repo.Diff) + m.Get("/stars", repo.Stars) + m.Get("/watchers", repo.Watchers) + m.Get("/forks", repo.Forks) }, middleware.RepoRef()) m.Get("/compare/:before([a-z0-9]{40})...:after([a-z0-9]{40})", repo.CompareDiff) diff --git a/conf/app.ini b/conf/app.ini index 40f987664..213d94511 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -17,6 +17,18 @@ SCRIPT_TYPE = bash EXPLORE_PAGING_NUM = 20 ; Number of issues that are showed in one page ISSUE_PAGING_NUM = 10 +; Number of maximum commits showed in one activity feed +FEED_MAX_COMMIT_NUM = 5 + +[ui.admin] +; Number of users that are showed in one page +USER_PAGING_NUM = 50 +; Number of repos that are showed in one page +REPO_PAGING_NUM = 50 +; Number of notices that are showed in one page +NOTICE_PAGING_NUM = 50 +; Number of organization that are showed in one page +ORG_PAGING_NUM = 50 [markdown] ; Enable hard line break extension @@ -61,7 +73,7 @@ USER = root PASSWD = ; For "postgres" only, either "disable", "require" or "verify-full" SSL_MODE = disable -; For "sqlite3" only +; For "sqlite3" and "tidb" PATH = data/gogs.db [admin] @@ -95,6 +107,8 @@ ENABLE_REVERSE_PROXY_AUTHENTICATION = false ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false ; Do not check minimum key size with corresponding type DISABLE_MINIMUM_KEY_SIZE_CHECK = false +; Enable captcha validation for registration +ENABLE_CAPTCHA = true [webhook] ; Hook task queue length @@ -109,7 +123,7 @@ PAGING_NUM = 10 [mailer] ENABLED = false ; Buffer length of channel, keep it as it is if you don't know what it is. -SEND_BUFFER_LEN = 10 +SEND_BUFFER_LEN = 100 ; Name displayed in mail title SUBJECT = %(APP_NAME)s ; Mail server @@ -133,44 +147,6 @@ FROM = USER = PASSWD = -[oauth] -ENABLED = false - -[oauth.github] -ENABLED = false -CLIENT_ID = -CLIENT_SECRET = -SCOPES = https://api.github.com/user -AUTH_URL = https://github.com/login/oauth/authorize -TOKEN_URL = https://github.com/login/oauth/access_token - -; Get client id and secret from -; https://console.developers.google.com/project -[oauth.google] -ENABLED = false -CLIENT_ID = -CLIENT_SECRET = -SCOPES = https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile -AUTH_URL = https://accounts.google.com/o/oauth2/auth -TOKEN_URL = https://accounts.google.com/o/oauth2/token - -[oauth.qq] -ENABLED = false -CLIENT_ID = -CLIENT_SECRET = -SCOPES = get_user_info -; QQ 互联 -AUTH_URL = https://graph.qq.com/oauth2.0/authorize -TOKEN_URL = https://graph.qq.com/oauth2.0/token - -[oauth.weibo] -ENABLED = false -CLIENT_ID = -CLIENT_SECRET = -SCOPES = all -AUTH_URL = https://api.weibo.com/oauth2/authorize -TOKEN_URL = https://api.weibo.com/oauth2/access_token - [cache] ; Either "memory", "redis", or "memcache", default is "memory" ADAPTER = memory diff --git a/conf/locale/locale_bg-BG.ini b/conf/locale/locale_bg-BG.ini index 4dafdfa32..857d2cef6 100755 --- a/conf/locale/locale_bg-BG.ini +++ b/conf/locale/locale_bg-BG.ini @@ -5,7 +5,6 @@ dashboard=Табло explore=Разгледай help=Помощ sign_in=Влизане -social_sign_in=Вход чрез социална мрежа: 2. стъпка асоцииране на профил sign_out=Излизане sign_up=Регистрирайте се register=Регистриране @@ -21,7 +20,7 @@ signed_in_as=Вписан като username=Потребител email=Ел. поща password=Парола -re_type=Въведете отново +re_type=Въведете повторно captcha=Captcha repository=Хранилище @@ -54,7 +53,8 @@ code=Код [install] install=Инсталация title=Стъпки за инсталиране при първоначално стартиране -requite_db_desc=Gogs изисква MySQL, PostgreSQL или SQLite3. +docker_helper=Ако Gogs е стартиран в Docker контейнер, моля прочетете нашите указания внимателно, преди да правите промени по настройките на тази страница! +requite_db_desc=Gogs изисква MySQL, PostgreSQL, SQLite3 или TiDB. db_title=Настройки на базата данни db_type=Тип на база данни host=Сървър @@ -64,8 +64,11 @@ db_name=Име на база данни db_helper=Моля, използвайте INNODB engine с utf8_general_ci кодиране на знаци за MySQL. ssl_mode=Режим SSL path=Път -sqlite_helper=Пък към файла на SQLite3 база данни. -err_empty_sqlite_path=Пътят за SQLite3 база за данни не може да е празен. +sqlite_helper=Файл на SQLite3 или TiDB база данни. +err_empty_db_path=Пътят до SQLite3 или TiDB база данни не може да е празен. +err_invalid_tidb_name=TiDB не позволява "." и "-" в името на базата данни. +no_admin_and_disable_registration=Невъзможно изключване на регистрациите без предварително да е създаден поне един административен профил. +err_empty_admin_password=Паролата на администратор не може да е празна. general_title=Общи настройки на приложението app_name=Име на приложението @@ -73,11 +76,11 @@ app_name_helper=Постави името на твоята организаци repo_path=Основен път към хранилищата repo_path_helper=Всички отдалечени хранилища на Git ще бъдат съхранени в тази директория. run_user=Потребителски контекст -run_user_helper=Този потребител трябва да има достъп до основния път до хранилищата и права да стартира Gogs. +run_user_helper=Този потребител трябва да има достъп до основния път към хранилищата и права да стартира Gogs. domain=Домейн -domain_helper=Тази настройка влияе на URL адреса за клониране със SSH. +domain_helper=Тази настройка влияе на URL адреса за клониране чрез SSH. ssh_port=SSH порт -ssh_port_helper=Номер на порт на SSH сървъра. Оставете празно за да забраните SSH. +ssh_port_helper=Номер на порт на SSH сървъра. Оставете празно за да изключите достъп през SSH. http_port=HTTP порт http_port_helper=Порт, на който приложението ще слуша. app_url=URL адрес на приложението @@ -87,7 +90,7 @@ optional_title=Опционални настройки email_title=Настройки на пощенска услуга smtp_host=SMTP сървър smtp_from=Подател -smtp_from_helper=Адрес на подател на поща по RFC 5322. Може да бъде обикновен адрес на ел. поща или на във формат "Име" . +smtp_from_helper=Адрес на подател на поща по RFC 5322. Може да бъде обикновен адрес на ел. поща или във формат "Име" . mailer_user=Ел. поща за изпращане mailer_password=Парола за изпращане register_confirm=Включи потвърждението на регистрациите @@ -99,23 +102,25 @@ disable_gravatar=Изключи връзка с Gravatar disable_gravatar_popup=Изключва Gravatar и външни източници, така че всички аватари трябва да са или качени от потребителите или да се ползват аватари по подразбиране. disable_registration=Изключи саморегистрацията disable_registration_popup=Изключи потребителската саморегистрация, само администратор може да създава профили. +enable_captcha=Включи Captcha +enable_captcha_popup=Изисква валидиране с captcha при саморегистрация на потребители. require_sign_in_view=Включи задължително вписване за преглед на страници -require_sign_in_view_popup=Само вписани потребители могат да виждат страниците, посетителите виждат само страниците за регистрация и вход. -admin_setting_desc=Няма нужда да създавате администраторски профил в момента, защото потребителят с първо ID в базата автоматично получава администраторски достъп. +require_sign_in_view_popup=Само вписани потребители могат да виждат страниците, анонимните посетители виждат само страниците за регистрация и вход. +admin_setting_desc=Няма нужда от създаване на администраторски профил в момента, защото потребителят с първо ID в базата автоматично получава администраторски достъп. admin_title=Настройки на профил на администратора admin_name=Потребителско име admin_password=Парола confirm_password=Потвърждение на паролата admin_email=Ел. поща install_gogs=Инсталирай Gogs -test_git_failed=Неуспех при тестването на "git" команда: %v +test_git_failed=Неуспешно тестването на "git" команда: %v sqlite3_not_available=Вашата версия не поддържа SQLite3, моля, изтеглете официалната двоична версия от %s, а не gobuild версията. invalid_db_setting=Настройките на базата данни са некоректни: %v invalid_repo_path=Основният път към хранилищата е невалиден: %v run_user_not_match=Потребителският контекст на приложението не е на текущия потребител: %s -> %s -save_config_failed=Неуспех при запазване на конфигурация: %v +save_config_failed=Неуспешно запазване на конфигурация: %v invalid_admin_setting=Настройките на профил на администратора са невалидни: %v -install_success=Добре дошли! Радваме се, че избрахте Gogs и Ви пожелаваме приятна работа и сърдечни поздрави! +install_success=Добре дошли! Радваме се, че избрахте Gogs, и Ви пожелаваме приятна работа и сърдечни поздрави! [home] uname_holder=Потребителско име или ел. поща @@ -127,7 +132,7 @@ my_orgs=Моите организации my_mirrors=Моите огледала view_home=Преглед на %s -issues.in_your_repos=Във вашите хранилища +issues.in_your_repos=Във Вашите хранилища [explore] repos=Хранилища @@ -136,24 +141,30 @@ repos=Хранилища create_new_account=Създай нов профил register_hepler_msg=Вече имате профил? Впишете се сега! social_register_hepler_msg=Вече имате профил? Свържете се сега! -disable_register_prompt=За съжаление новите регистрации са изключени. Обърнете се към администратора на сайта. -disable_register_mail=За съжаление потвърждението на регистрациите е изключено. +disable_register_prompt=За съжаление създаването на нови регистрации е изключено. Обърнете се към администратора на сайта. +disable_register_mail=За съжаление потвърждението на регистрации е изключено. remember_me=Запомни ме forgot_password=Забравена парола forget_password=Забравена парола? sign_up_now=Нуждаете се от профил? Регистрирайте се сега. confirmation_mail_sent_prompt=Ново писмо за потвърждение е изпратено до %s. Моля проверете пощенската си кутия в рамките на следващите %d часа, за да завършите процеса на регистрация. -sign_in_email=Влизане чрез ел. поща +sign_in_to_account=Влезте с Вашия профил active_your_account=Активиране на профил resent_limit_prompt=За съжаление Вие съвсем наскоро изпратихте писмо за активация. Моля изчакайте 3 минути, след което опитайте отново. -has_unconfirmed_mail=Здравейте %s, имате непотвърден адрес на ел. поща (%s). Ако не сте получили писмо за потвърждение или имате нужда да се изпрати ново, моля щракнете бутона по-долу. -resend_mail=Щракнете тук, за да се изпрати ново писмо за активиране +has_unconfirmed_mail=Здравейте %s, имате непотвърден адрес на ел. поща (%s). Ако не сте получили писмо за потвърждение или имате нужда да се изпрати ново писмо, моля щракнете бутона по-долу. +resend_mail=Щракнете тук, за да се изпрати ново писмо за потвърждение email_not_associate=Този адрес на ел. поща не е свързан с никой профил. -send_reset_mail=Щракнете тук, за да получите (наново) писмо за нулиране на паролата +send_reset_mail=Щракнете тук, за да получите (отново) писмо за нулиране на паролата reset_password=Нулиране на паролата invalid_code=За съжаление Вашия код за потвърждение е изтекъл или е невалиден. reset_password_helper=Щракнете тук, за да нулирате паролата си -password_too_short=Дължина на паролата не може да бъде по-малко от 6 знака. +password_too_short=Размерът на паролата не може да бъде по-малък от 6 знака. + +[mail] +activate_account=Моля активирайте Вашия профил +activate_email=Провери адрес на ел. поща +reset_password=Нулиране на паролата +register_success=Успешна регистрация и добре дошли [modal] yes=Да @@ -162,15 +173,15 @@ modify=Промени [form] UserName=Потребителско име -RepoName=Име на хранилище +RepoName=Име на хранилището Email=Адрес на ел. поща Password=Парола Retype=Повторно паролата SSHTitle=Име на SSH ключ -HttpsUrl=HTTPS URL +HttpsUrl=HTTPS URL адрес PayloadUrl=URL адрес на изпращане TeamName=Име на екипа -AuthName=Име за удостоверение +AuthName=Име на удостоверението AdminEmail=Ел. поща на администратора require_error=` не може да бъде празен.` @@ -181,8 +192,8 @@ min_size_error=` трябва да съдържа поне %s знака.` max_size_error=` трябва да съдържа най-много %s знака.` email_error=` не е валиден адрес на ел. поща.` url_error=` не е валиден URL адрес.` -unknown_error=Непозната грешка: -captcha_incorrect=Captcha не съвпада. +unknown_error=Неизвестна грешка: +captcha_incorrect=Captcha не е потвърдена. password_not_match=Паролата и потвърждението ѝ не съвпадат. username_been_taken=Потребителското име вече се ползва. @@ -190,20 +201,20 @@ repo_name_been_taken=Името на хранилището вече се пол org_name_been_taken=Името на организацията вече се ползва. team_name_been_taken=Името на екипа вече се ползва. email_been_used=Този адрес на ел. поща вече се ползва. -illegal_team_name=Името на екип съдържа недопустими знаци. -username_password_incorrect=Потребителското име или паролата не е вярна. -enterred_invalid_repo_name=Моля уверете се, че името на хранилището е въведено правилно. +illegal_team_name=Името на екипа съдържа недопустими знаци. +username_password_incorrect=Потребителското име или паролата не са верни. +enterred_invalid_repo_name=Моля уверете се, че въведеното име на хранилище е вярно. enterred_invalid_owner_name=Моля уверете се, че въведеното име на притежател е вярно. enterred_invalid_password=Моля уверете се, че въведената парола е вярна. user_not_exist=Даденият потребител не съществува. last_org_owner=Премахване на последния потребител от екип притежатели не е позволено, тъй като винаги трябва да има поне един притежател в дадена организация. -invalid_ssh_key=За съжаление, ние не сме в състояние да удостоверим вашия SSH ключ: %s -unable_verify_ssh_key=Gogs не може да провери вашия SSH ключ, но предполагаме, че е валиден. Моля, проверете го. +invalid_ssh_key=За съжаление, ние не сме в състояние да проверим Вашия SSH ключ: %s +unable_verify_ssh_key=Gogs не може да провери Вашия SSH ключ, но предполагаме, че е валиден. Моля, проверете го. auth_failed=Неуспешно удостоверяване: %v still_own_repo=Вашият профил притежава поне едно хранилище. Първо трябва да ги изтриете или да ги прехвърлите на друг потребител. -still_has_org=Вашият профил все още е член на поне една организация. Първо трябва да напуснете или изтриете вашите членства. +still_has_org=Вашият профил все още е член на поне една организация. Първо трябва да напуснете или изтриете Вашите членства. org_still_own_repo=Тази организация все още притежава хранилище. Първо трябва да го изтриете или да го прехвърлите на друга организация. still_own_user=Това удостоверяване се използва от поне един потребител. Моля премахнете потребителите към него и опитайте отново. @@ -211,8 +222,8 @@ still_own_user=Това удостоверяване се използва от target_branch_not_exist=Целевият клон не съществува. [user] -change_avatar=Сменете вашия аватар на gravatar.com -change_custom_avatar=Промяна на вашия аватар в настройките +change_avatar=Сменете Вашия аватар на gravatar.com +change_custom_avatar=Сменете Вашия аватар в настройките join_on=Регистриран на repositories=Хранилища activity=Публична дейност @@ -234,20 +245,20 @@ delete=Изтрий профил uid=UID public_profile=Публичен профил -profile_desc=Вашият адрес на ел. поща е публичен и ще бъде използван за всички свързани с профила ви уведомления и всички уеб базирани операции, направени чрез сайта. +profile_desc=Вашият адрес на ел. поща е публичен и ще бъде използван за всички свързани с профила Ви уведомления и всички уеб базирани операции, направени чрез сайта. full_name=Пълно име website=Уебсайт -location=Местоположение -update_profile=Актуализиране на профила -update_profile_success=Вашият профил е актуализиран успешно. +location=Локация +update_profile=Обнови профила +update_profile_success=Вашият профил е запазен успешно. change_username=Потребителското име е променено -change_username_desc=Променяте потребителско Ви име. Това ще засегне всички връзки сочещи към профила Ви. Желаете ли да продължите? +change_username_prompt=Този промяна ще засегне всички връзки сочещи към профила Ви. continue=Продължи cancel=Отказ enable_custom_avatar=Разреши потребителски аватар enable_custom_avatar_helper=Включете тази опция, за да забраните зареждане от Gravatar -choose_new_avatar=Изберете нов аватар +choose_new_avatar=Избери нов аватар update_avatar=Обнови настройките на аватара uploaded_avatar_not_a_image=Каченият файл не е изображение. no_custom_avatar_available=Невъзможно използване на външен аватар, защото не е активирано. @@ -256,23 +267,27 @@ update_avatar_success=Настройките на аватара са запаз change_password=Промени парола old_password=Текуща парола new_password=Нова парола +retype_new_password=Повторно новата парола password_incorrect=Въведената парола не е вярна. change_password_success=Вашата парола е променена успешно. Вече може да влизате, използвайки тази нова парола. emails=Адреси на ел. поща manage_emails=Управление на адреси на ел. поща -email_desc=Вашият основен адрес на ел. поща ще се използва за известия и други операции. +email_desc=Вашият основен адрес на ел. поща ще се използва за изпращане на уведомления и други операции. primary=Основен -primary_email=Задаване като основен +primary_email=Задай като основен delete_email=Изтрий +email_deletion=Изтрий ел. поща +email_deletion_desc=При изтриване на тази ел. поща ще се премахне свързаната информация от Вашия профил. Желаете ли да продължите? +email_deletion_success=Ел. пощата беше изтрита успешно! add_new_email=Добавяне на нов адрес на ел. поща add_email=Добави ел. поща -add_email_confirmation_sent=Ново писмо за потвърждение е изпратено до %s. Моля проверете пощенската си кутия в рамките на следващите %d часа, за да завършите процеса на регистрация. -add_email_success=Нов адрес на ел. поща беше добавен успешно. +add_email_confirmation_sent=Ново писмо за потвърждение е изпратено до '%s'. Моля проверете пощенската си кутия в рамките на следващите %d часа, за да завършите процеса на регистрация. +add_email_success=Ваш нов адрес на ел. поща е добавен успешно. manage_ssh_keys=Управление на SSH ключове add_key=Добави ключ -ssh_desc=Това е списък на SSH ключове, свързани с вашия акаунт. Тъй като тези ключове позволяват на всеки, който ги използва да получи достъп до хранилищата ви, много е важно да се уверите, че ги разпознавате. +ssh_desc=Това е списък на SSH ключове, свързани с Вашия акаунт. Тъй като тези ключове позволяват на всеки, който ги използва да получи достъп до хранилищата Ви, много е важно да се уверите, че ги разпознавате. ssh_helper=Не знам как? Проверете на GitHub упътването как да създадете свои собствени SSH ключове или решаване на Общи проблеми, които може да възникнат при използване на SSH. add_new_key=Добавяне на SSH ключ ssh_key_been_used=Съдържанието на публичния ключ е използвано. @@ -281,8 +296,8 @@ key_name=Име на ключа key_content=Съдържание add_key_success=Новият SSH ключ '%s' е добавен успешно! delete_key=Изтрий -ssh_key_deletion=Изтриване на SSH ключ -ssh_key_deletion_desc=Изтривайки този SSH ключ премахвате всякакъв достъп за Вашия профил. Желаете ли да продължите? +ssh_key_deletion=Изтрий SSH ключ +ssh_key_deletion_desc=При изтриване на този SSH ключ ще се премахнат свързаните права за достъп за Вашия профил. Желаете ли да продължите? ssh_key_deletion_success=SSH ключа беше изтрит успешно! add_on=Добавен на last_used=Последно използван на @@ -298,31 +313,31 @@ unbind_success=Социалния профил е освободен. manage_access_token=Управление на индивидуални токени за достъп generate_new_token=Генериране на нов токен tokens_desc=Генерирани токени, които могат да се използват за достъп до API-то на Gogs. -new_token_desc=Всеки токен ще има пълен достъп до вашия профил. -token_name=Име на токен +new_token_desc=Всеки токен ще има пълен достъп до Вашия профил. +token_name=Име на токена generate_token=Генериране на токен generate_token_succees=Успешно е генериран токен за достъп. Уверете се, че сте го копирали, тъй като няма да можете да го видите отново! delete_token=Изтрий -access_token_deletion=Изтриване на индивидуален токен за достъп -access_token_deletion_desc=Изтриването на този индивидуален токен за достъп ще премахне всички свързани права на приложението. Желаете ли да продължите? +access_token_deletion=Изтрий индивидуален токен за достъп +access_token_deletion_desc=При изтриване на този индивидуален токен за достъп ще се премахнат всички свързани права на приложението. Желаете ли да продължите? delete_token_success=Индивидуалния токен за достъп е изтрит успешно! Не забравяйте да преконфигурирате приложението също. -delete_account=Изтриване на вашия профил -delete_prompt=Тази операция ще изтрие Вашия профил завинаги и НЕ МОЖЕ да се отмени! -confirm_delete_account=Потвърждаване на изтриването +delete_account=Изтрий собствен профил +delete_prompt=Тази операция ще изтрие Вашия профил завинаги и тя НЕ МОЖЕ да бъде отменена в последствие! +confirm_delete_account=Потвърди изтриването delete_account_title=Изтрий профил delete_account_desc=Този профил ще бъде окончателно изтрит. Желаете ли да продължите? [repo] owner=Притежател -repo_name=Име на хранилище +repo_name=Име на хранилището repo_name_helper=Добро име на хранилище е име, състоящо от кратки, запомнящи се и уникални ключови думи. visibility=Видимост visiblity_helper=Това хранилище е Частно visiblity_fork_helper=(Промяна на тази стойност ще се отрази на всички разклонения) fork_repo=Разклони хранилището fork_from=Разклонение от -fork_visiblity_helper=Не можете да промените видимостта на разклонено хранилище. +fork_visiblity_helper=Не може да променяте видимостта на разклонено хранилище. repo_desc=Описание repo_lang=Език repo_lang_helper=Изберете .gitignore файлове @@ -335,8 +350,8 @@ create_repo=Създай хранилище default_branch=Клон по подразбиране mirror_interval=Интервал на отразяване (часове) -form.name_reserved=Името на хранилище '%s' е запазено. -form.name_pattern_not_allowed=Име на хранилище от вида '%s' не е позволено. +form.name_reserved=Името на хранилището '%s' е запазено. +form.name_pattern_not_allowed=Име на хранилището от вида '%s' не е позволено. need_auth=Изисква удостоверяване migrate_type=Тип мигриране @@ -349,6 +364,8 @@ migrate.invalid_local_path=Невалиден път - не съществува forked_from=разклонено от fork_from_self=Не можете да разклоните хранилище което си е Ваше! copy_link=Копирай +copy_link_success=Копирано! +copy_link_error=Натиснете ⌘-C или Ctrl-C за да копирате click_to_copy=Копиране в клипборда copied=Успешно копиране clone_helper=Нуждаете се от помощ при клониране? Посетете Помощ! @@ -363,6 +380,8 @@ quick_guide=Бърз справочник clone_this_repo=Клонирай хранилището create_new_repo_command=Създай ново хранилище чрез командния ред push_exist_repo=Предай съществуващо хранилище през командния ред +repo_is_empty=Това хранилище е празно. Моля проверете по-късно пак! + branch=Клон tree=Дърво @@ -377,7 +396,7 @@ commits=Ревизии releases=Издания file_raw=Суров file_history=История -file_view_raw=Суров вид +file_view_raw=Виж суров file_permalink=Постоянна връзка commits.commits=Ревизии @@ -403,14 +422,14 @@ issues.new.clear_assignee=Изчисти изпълнител issues.new.no_assignee=Няма изпълнител issues.create=Докладвай проблем issues.new_label=Нов етикет -issues.new_label_placeholder=Име на етикет... +issues.new_label_placeholder=Име на етикета... issues.create_label=Създай етикет issues.open_tab=%d отворени issues.close_tab=%d затворени issues.filter_label=Етикет issues.filter_label_no_select=Не е избран етикет issues.filter_milestone=Етап -issues.filter_milestone_no_select=Липсван избран етап +issues.filter_milestone_no_select=Липсва избран етап issues.filter_assignee=Изпълнител issues.filter_assginee_no_select=Няма избран изпълнител issues.filter_type=Тип @@ -436,11 +455,11 @@ issues.commented_at=`коментира %[2]s` issues.no_content=Все още няма съдържание. issues.close_issue=Затвори issues.close_comment_issue=Затвори и коментирай -issues.reopen_issue=Отвори отново -issues.reopen_comment_issue=Отвори отново и коментирай +issues.reopen_issue=Отвори повторно +issues.reopen_comment_issue=Отвори повторно и коментирай issues.create_comment=Коментирай issues.closed_at=`затвори %[2]s` -issues.reopened_at=`отново отвори %[2]s` +issues.reopened_at=`повторно отвори %[2]s` issues.commit_ref_at=`посочи този проблем от ревизия %[2]s` issues.poster=Участник issues.admin=Администратор @@ -450,15 +469,15 @@ issues.sign_in_require_desc=за да се включите в този разг issues.edit=Редакция issues.cancel=Отказ issues.save=Запис -issues.label_title=Име на етикет +issues.label_title=Име на етикета issues.label_color=Цвят на етикет issues.label_count=%d етикети issues.label_open_issues=%d отворени проблема issues.label_edit=Редакция issues.label_delete=Изтрий issues.label_modify=Промяна на етикет -issues.label_deletion=Премахване на етикет -issues.label_deletion_desc=Изтриването на този етикет ще премахне информацията за него във всички свързани проблеми. Желаете ли да продължите? +issues.label_deletion=Изтрий етикет +issues.label_deletion_desc=При изтриване на този етикет ще се премахне информацията за него във всички свързани проблеми. Желаете ли да продължите? issues.label_deletion_success=Етикетът е изтрит успешно! pulls.compare_changes=Сравни промените @@ -475,7 +494,7 @@ pulls.merged_title_desc=обедини %[1]d ревизии от %[2]sРъководство за уеб-куки. settings.webhook_deletion=Изтрий уеб-кука -settings.webhook_deletion_desc=Изтриването на тази уеб-кука ще премахне информацията за нея и цялата хронология на нейното изпращане. Желаете ли да продължите? +settings.webhook_deletion_desc=При изтриване на тази уеб-кука ще се премахне информацията за нея и цялата хронология на нейното изпращане. Желаете ли да продължите? settings.webhook_deletion_success=Уеб-куката е изтрита успешно! settings.webhook.request=Заявка settings.webhook.response=Отговор @@ -551,10 +570,10 @@ settings.webhook.headers=Заглавки settings.webhook.payload=Съдържание settings.webhook.body=Тяло settings.githooks_desc=Git куките се изпълняват от Git. Вие може да промените файловете с поддържаните куки в списъка по-долу, за да изпълните външни операции. -settings.githook_edit_desc=Ако куката е неактивна, ще бъдат представено примерно съдържание. Ако оставите съдържанието празно, то тази кука ще бъде изключена. -settings.githook_name=Име на кука -settings.githook_content=Съдържание на кука -settings.update_githook=Обнови кука +settings.githook_edit_desc=Ако куката е неактивна, ще бъде представено примерно съдържание. Ако оставите съдържанието празно, то тази кука ще бъде изключена. +settings.githook_name=Име на куката +settings.githook_content=Съдържание на куката +settings.update_githook=Обнови куката settings.add_webhook_desc=Gogs ще изпрати POST заявка към указания URL адрес заедно с информация за събитието, което е настъпило. Също можете да укажете в какъв формат желаете да получите данните при задействане на куката (JSON, x-www-form-urlencoded, XML) и др. Допълнително описание можете да намерите в нашето Ръководство за уеб-куки. settings.payload_url=URL адрес на изпращане settings.content_type=Тип на съдържанието @@ -573,8 +592,8 @@ settings.event_push_desc=Git предаване към хранилището settings.active=Активна settings.active_helper=Подробности относно събитието, което е задействало куката, също ще бъдат изпратени. settings.add_hook_success=Новата уеб-кука е добавена успешно. -settings.update_webhook=Промени уеб-куката -settings.update_hook_success=Уеб-куката е променена успешно. +settings.update_webhook=Обнови уеб-куката +settings.update_hook_success=Уеб-куката е запазена успешно. settings.delete_webhook=Изтрий уеб-куката settings.recent_deliveries=Последни изпращания settings.hook_type=Тип на куката @@ -591,7 +610,7 @@ settings.key_been_used=Съдържанието на ключа за внедр settings.key_name_used=Ключ за внедряване с такова име вече съществува. settings.add_key_success=Новият ключ за внедряване '%s' е добавен успешно! settings.deploy_key_deletion=Изтрий ключ за внедряване -settings.deploy_key_deletion_desc=Изтриването на този ключ за внедряване ще премахне свързаните права за достъп до това хранилище. Желаете ли да продължите? +settings.deploy_key_deletion_desc=При изтриването на този ключ за внедряване ще се премахнат свързаните права за достъп до това хранилище. Желаете ли да продължите? settings.deploy_key_deletion_success=Ключът за внедряване е изтрит успешно! diff.browse_source=Преглед на кода @@ -611,7 +630,7 @@ release.stable=Стабилни release.edit=редактиране release.ahead=%d ревизии на %s след това издание release.source_code=Изходен код -release.tag_name=Име на маркер +release.tag_name=Име на маркера release.target=Цел release.tag_helper=Изберете съществуващ маркер или създайте нов маркер по време на публикуване. release.release_title=Заглавие на изданието @@ -630,9 +649,8 @@ release.tag_name_already_exist=Издание с това име на марке [org] org_name_holder=Име на организацията org_name_helper=Добрите имена на организация са кратки и запомнящи се. -org_email_helper=Ел. пощата на организацията получава всички уведомления и потвърждения. create_org=Създай организация -repo_updated=Актуализиране +repo_updated=Обновено people=Хора invite_someone=Поканете някого teams=Екипи @@ -646,23 +664,23 @@ team_name_helper=Ще използвате това име при спомена team_desc_helper=Каква е целта на този екип? team_permission_desc=Какво ниво на достъп трябва да има този екип? -form.name_reserved=Името на организация '%s' е запазено. -form.name_pattern_not_allowed=Име на организация от вида '%s' не е разрешено. +form.name_reserved=Името на организацията '%s' е запазено. +form.name_pattern_not_allowed=Име на организацията от вида '%s' не е разрешено. settings=Настройки settings.options=Опции settings.full_name=Пълно име settings.website=Уебсайт -settings.location=Местоположение -settings.update_settings=Актуализирай настройките -settings.change_orgname=Името на екипа е променено -settings.change_orgname_desc=Името на организацията ще бъде променено. Това ще засегне всички връзки свързани с организацията. Желаете ли да продължите? +settings.location=Локация +settings.update_settings=Обнови настройките settings.update_setting_success=Настройките на организацията са запазени успешно. +settings.change_orgname_prompt=Този промяна ще засегне всички връзки сочещи към организацията. +settings.update_avatar_success=Настройките на аватара на организацията са запазени успешно. settings.delete=Изтрий организацията settings.delete_account=Изтриване на тази организация -settings.delete_prompt=Организацията ще бъде изтрита и НЕ МОЖЕ да се върне! +settings.delete_prompt=Организацията ще бъде изтрита и операцията НЕ МОЖЕ да бъде отменена в последствие! settings.confirm_delete_account=Потвърди изтриването -settings.delete_org_title=Изтриване на организацията +settings.delete_org_title=Изтрий организацията settings.delete_org_desc=Тази организация ще бъде окончателно изтрита. Желаете ли да продължите? settings.hooks_desc=Добави уеб-куки, които ще бъдат използвани от всички хранилища в тази организация. @@ -690,14 +708,14 @@ teams.no_desc=Този екип няма описание teams.settings=Настройки teams.owners_permission_desc=Притежателите имат пълен достъп до всички хранилища и имат права на администратори на организацията. teams.members=Членовете на екипа -teams.update_settings=Актуализирай настройките +teams.update_settings=Обнови настройките teams.delete_team=Изтриване на този екип -teams.add_team_member=Добавяне на член в екипа +teams.add_team_member=Добави член на екипа teams.delete_team_title=Изтрий екипа -teams.delete_team_desc=Тъй като този екип ще бъдат изтрит, членовете на този екип може да загубят достъп до някои хранилища. Желаете ли да продължите? +teams.delete_team_desc=Тъй като този екип ще бъдат изтрит, членовете му може да загубят достъп до някои хранилища. Желаете ли да продължите? teams.delete_team_success=Този екип е бил изтрит успешно. teams.read_permission_desc=Този екип предоставя достъп за четене: членове могат да разглеждат и клонират хранилищата на екипа. -teams.write_permission_desc=Този екип предоставя права за писане: членовете могат да четат от и предават към хранилищата на екипа. +teams.write_permission_desc=Този екип предоставя достъп за писане: членовете могат да четат от и предават към хранилищата на екипа. teams.admin_permission_desc=Този екип предоставя администраторски достъп: членовете могат да четат от, да предават към и да добавя нови сътрудници към хранилищата на екипа. teams.repositories=Хранилища на екипа teams.add_team_repository=Добави хранилище на екипа @@ -707,14 +725,15 @@ teams.add_nonexistent_repo=Хранилището, което се опитва [admin] dashboard=Табло users=Потребители -organizations=Организация +organizations=Организации repositories=Хранилища authentication=Удостоверявания config=Конфигурация notices=Системни известия monitor=Наблюдение -prev=Предишен -next=Следващ +first_page=Първа +last_page=Последна +total=Общо: %d dashboard.statistic=Статистика dashboard.operations=Операции @@ -725,9 +744,9 @@ dashboard.operation_switch=Превключи dashboard.operation_run=Изпълни dashboard.clean_unbind_oauth=Почисти несвързани OAuthes dashboard.clean_unbind_oauth_success=Всички несвързани OAuthes са изтрити успешно. -dashboard.delete_inactivate_accounts=Изтриване на всички неактивни профили +dashboard.delete_inactivate_accounts=Изтрий всички неактивни профили dashboard.delete_inactivate_accounts_success=Всички неактивни профили са изтрити успешно. -dashboard.delete_repo_archives=Изтриване на всички архиви на хранилища +dashboard.delete_repo_archives=Изтрий всички архиви на хранилища dashboard.delete_repo_archives_success=Всички архиви на хранилищата са изтрити успешно. dashboard.git_gc_repos=Почисти изтрити данни в хранилищата dashboard.git_gc_repos_success=Всички хранилища са почистени от изтрити данни успешно. @@ -741,9 +760,9 @@ dashboard.current_goroutine=Текущи Goroutines dashboard.current_memory_usage=Текущо използвана памет dashboard.total_memory_allocated=Общо заделена памет dashboard.memory_obtained=Получена памет -dashboard.pointer_lookup_times=Време за обхождане на указатели -dashboard.memory_allocate_times=Време за заделяне на памет -dashboard.memory_free_times=Време за освобождаване на памет +dashboard.pointer_lookup_times=Брой обхождания на указатели +dashboard.memory_allocate_times=Брой заделяния на памет +dashboard.memory_free_times=Брой освобождавания на памет dashboard.current_heap_usage=Текущо използвана осн. памет dashboard.heap_memory_obtained=Получена осн. памет dashboard.heap_memory_idle=Празна осн. памет @@ -759,40 +778,44 @@ dashboard.mcache_structures_obtained=Получени MCache обекти dashboard.profiling_bucket_hash_table_obtained=Получени Profiling Bucket Hash Table dashboard.gc_metadata_obtained=Получени GC метаданни dashboard.other_system_allocation_obtained=Получена друга системна памет -dashboard.next_gc_recycle=Слeдващо рециклиране на GC +dashboard.next_gc_recycle=Следващо рециклиране на GC dashboard.last_gc_time=Време от последен GC dashboard.total_gc_time=Общо време за GC dashboard.total_gc_pause=Общо пауза за GC dashboard.last_gc_pause=Последна пауза за GC dashboard.gc_times=Брой GC -users.user_manage_panel=Панел за управление на потребителите -users.new_account=Създаване на нов профил +users.user_manage_panel=Управление на потребителя +users.new_account=Създай нов профил users.name=Име users.activated=Активиран users.admin=Администратор users.repos=Хранилища users.created=Създаване +users.send_register_notify=Прати уведомление на потребителя при регистрация +users.new_success=Новият профил '%s' е добавен успешно. users.edit=Редакция users.auth_source=Източник за удостоверяване users.local=Локално users.auth_login_name=Потребителско име за удостоверяване -users.update_profile_success=Профилът е обновен успешно. -users.edit_account=Редактиране на профил +users.password_helper=Оставете празна ако не се променя. +users.update_profile_success=Профилът е запазен успешно. +users.edit_account=Редактирай профил users.is_activated=Този профил е активиран users.is_admin=Този профил има административни права users.allow_git_hook=Този профил има разрешение да създава Git куки users.update_profile=Обнови профила -users.delete_account=Изтриване на този профил -users.still_own_repo=Този профил притежава поне едно хранилище. Първо трябва да го изтриете или да го прехвърлите на друг потребител. +users.delete_account=Изтрий този профил +users.still_own_repo=Този профил притежава поне едно хранилище. Първо трябва да изтриете хранилището или да го прехвърлите на друг потребител. users.still_has_org=Този профил е член на поне една организация. Първо трябва да напуснете или изтриете тези организации. +users.deletion_success=Профилът е изтрит успешно! -orgs.org_manage_panel=Управление на организациите +orgs.org_manage_panel=Управление на организацията orgs.name=Име orgs.teams=Екипи orgs.members=Членове -repos.repo_manage_panel=Управление на хранилищата +repos.repo_manage_panel=Управление на хранилището repos.owner=Притежател repos.name=Име repos.private=Лично @@ -800,41 +823,47 @@ repos.watches=Наблюдавания repos.stars=Харесвания repos.issues=Проблеми -auths.auth_manage_panel=Управление на удостоверяването +auths.auth_manage_panel=Управление на удостоверявания auths.new=Добави нов източник за удостоверяване auths.name=Име auths.type=Тип auths.enabled=Активен -auths.updated=Актуализиран +auths.updated=Обновен auths.auth_type=Тип на удостоверяване auths.auth_name=Име на удостоверяване auths.domain=Домейн auths.host=Сървър auths.port=Порт -auths.bind_dn=Домейн за bind -auths.bind_password=Парола за bind +auths.bind_dn=Име (DN) за свръзка +auths.bind_password=Парола за свързка +auths.bind_password_helper=Внимание: Тази парола се запазва некриптирана. Моля използвайте потребител, който няма административен достъп. auths.user_base=База с потребители +auths.user_dn=Име (DN) на потребител auths.attribute_name=Атрибут за име auths.attribute_surname=Атрибут за фамилия auths.attribute_mail=Атрибут за ел. поща auths.filter=Филтър за потребители auths.admin_filter=Филтър за администратори auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=Тип на SMTP удостоверяване +auths.smtp_auth=SMTP удостоверяване auths.smtphost=SMTP сървър auths.smtpport=SMTP порт +auths.allowed_domains=Разрешени домейни +auths.allowed_domains_helper=Оставете празно за да не се ограничават домейните. За множество домейни използвайте запетая за разделител. auths.enable_tls=Включи TLS криптиране auths.skip_tls_verify=Пропусни проверка на TLS auths.pam_service_name=Име на PAM услуга auths.enable_auto_register=Включи автоматична регистрация auths.tips=Съвети -auths.edit=Редактиране на настройки за удостоверяване +auths.edit=Редактирай настройки за удостоверяване auths.activated=Това удостоверяване е активно -auths.update_success=Настройките за удостоверяване са обновени успешно. +auths.new_success=Новото удостоверяване '%s' е добавено успешно. +auths.update_success=Настройките за удостоверяване са запазени успешно. auths.update=Обнови настройки за удостоверяване auths.delete=Изтриване на това удостоверяване auths.delete_auth_title=Изтрий удостоверяването auths.delete_auth_desc=Това удостоверяване ще бъде изтрито. Желаете ли да продължите? +auths.deletion_success=Удостоверяването е изтрито успешно! config.server_config=Сървърни настройки config.app_name=Име на приложението @@ -858,16 +887,18 @@ config.db_user=Потребител config.db_ssl_mode=SSL режим config.db_ssl_mode_helper=(само за postgres) config.db_path=Път -config.db_path_helper=(само за sqlite3) +config.db_path_helper=(за "sqlite3" и "tidb") config.service_config=Настройка на услугата config.register_email_confirm=Изисквай потвърждение на адреси на ел. поща -config.disable_register=Изключи нови регистриции +config.disable_register=Изключи нови регистрации config.show_registration_button=Покажи бутон за регистрация config.require_sign_in_view=Изисквай вписване за преглед -config.mail_notify=Уведомяване по ел. поща config.enable_cache_avatar=Включи кеширане на аватари +config.mail_notify=Уведомяване по ел. поща +config.disable_key_size_check=Изключи проверка минимален размер на ключ +config.enable_captcha=Включи Captcha config.active_code_lives=Кодове за активиране -config.reset_password_code_lives=Кодове за ресет на парола +config.reset_password_code_lives=Кодове за изчистване на парола config.webhook_config=Конфигурация на уеб-куки config.queue_length=Дължина на опашка config.deliver_timeout=Време за отказ при изпращане @@ -887,15 +918,15 @@ config.cache_conn=Кеш на връзката config.session_config=Конфигурация на сесии config.session_provider=Доставчик на сесии config.provider_config=Конфигурация на доставчик -config.cookie_name=Име на бисквитка +config.cookie_name=Име на бисквитката config.enable_set_cookie=Включи използване на бисквитки config.gc_interval_time=GC през интервал -config.session_life_time=Време на живот на сесиите +config.session_life_time=Период на валидност на сесиите config.https_only=HTTPS само -config.cookie_life_time=Време на живот на бисквитките +config.cookie_life_time=Период на валидност на бисквитките config.picture_config=Конфигурация на изображения config.picture_service=Услуги за снимки -config.disable_gravatar=Изключване на Gravatar +config.disable_gravatar=Изключи Gravatar config.log_config=Конфигурация на журнал config.log_mode=Режим на журнал @@ -904,7 +935,7 @@ monitor.name=Име monitor.schedule=График monitor.next=Следващ път monitor.previous=Предишен път -monitor.execute_times=Време на изпълнение +monitor.execute_times=Брой изпълнения monitor.process=Изпълнявани процеси monitor.desc=Описание monitor.start=Начален час @@ -954,5 +985,5 @@ raw_minutes=минути default_message=Пуснете файлове тук или щракнете за качване. invalid_input_type=Невъзможно качване на файловете от този тип. file_too_big=Размер на файла ({{filesize}} MB) надвишава максималния размер ({{maxFilesize}} MB). -remove_file=Премахване на файл +remove_file=Премахни файл diff --git a/conf/locale/locale_de-DE.ini b/conf/locale/locale_de-DE.ini index d9cf6eaaf..8af02630e 100755 --- a/conf/locale/locale_de-DE.ini +++ b/conf/locale/locale_de-DE.ini @@ -1,11 +1,10 @@ -app_desc=Ein schmerzloser, selbst gehosteter Git-Service, geschrieben in Go +app_desc=Ein einfacher, selbst gehosteter Git-Service, geschrieben in Go home=Home dashboard=Übersicht explore=Erkunden help=Hilfe sign_in=Anmelden -social_sign_in=Anmeldung über soziales Konto: zweiter Schritt Konto verknüpfen sign_out=Abmelden sign_up=Registrieren register=Registrieren @@ -38,7 +37,7 @@ settings=Einstellungen your_profile=Dein Profil your_settings=Deine Einstellungen -news_feed=News Feed +news_feed=Neuigkeiten pull_requests=Pull Requests issues=Issues @@ -54,20 +53,24 @@ code=Code [install] install=Installation title=Installation für erstmaligen Start -requite_db_desc=Gogs erfordert MySQL, PostgreSQL oder SQLite 3, aber SQLite3 ist in der offiziellen binären Version akiviert. +docker_helper=Wenn Gogs innerhalb Docker läuft, lies dir bitte die Guidelines genau durch, bevor du irgendwas auf dieser Seite änderst! +requite_db_desc=Gogs benötigt MySQL, PostgreSQL, SQLite3 oder TiDB. db_title=Datenbankeinstellungen db_type=Datenbanktyp host=Host user=Benutzer password=Passwort db_name=Datenbankname -db_helper=Bitte verwenden InnoDB-Engine mit utf8_general_ci Zeichensatz für MySQL. +db_helper=Bitte verwenden sie die InnoDB-Engine mit utf8_general_ci Zeichensatz für MySQL. ssl_mode=SSL-Modus path=Pfad -sqlite_helper=Der Dateipfad des SQLite3 Datenbank. -err_empty_sqlite_path=Pfad zur SQLite3-Datenbank darf nicht leer sein. +sqlite_helper=Der Dateipfad zur SQLite3 oder TiDB Datenbank. +err_empty_db_path=SQLite3 oder TiDB Datenbankpfad darf nicht leer sein. +err_invalid_tidb_name=Der TiDB Datenbankname darf kein "." und kein "-" enthalten. +no_admin_and_disable_registration=Du kannst die Registrierung nicht deaktivieren, ohne ein Administratorkonto zu erstellen. +err_empty_admin_password=Das Administrator-Passwort darf nicht leer sein. -general_title=Allgemeine Einstellungen von Gogs +general_title=Allgemeine Einstellungen app_name=Anwendungsname app_name_helper=Hier den Organisationsnamen einfügen. repo_path=Repository Root-Verzeichnispfad @@ -79,7 +82,7 @@ domain_helper=Dies hat Auswirkung auf die SSH clone URLs. ssh_port=SSH Port ssh_port_helper=Die Portnummer deines SSH-Servers, lass dieses Feld leer, wenn du SSH deaktivieren möchtest. http_port=HTTP Port -http_port_helper=Auf dieser Port Nummer ist die Apllikation erreichbar. +http_port_helper=Auf dieser Port Nummer wird Gogs erreichbar sein. app_url=Anwendungs-URL app_url_helper=Dies hat Auswirkung auf die HTTP/HTTPS clone URLs und für die E-Mails. @@ -90,8 +93,8 @@ smtp_from=Von smtp_from_helper=Absender-Adresse nach RFC 5322. Entweder nur eine E-Mail Adresse oder im folgenden Format: "Name" . mailer_user=Sender E-mail mailer_password=Sender Passwort -register_confirm=Registrierungsbestätigung aktvieren -mail_notify=E-Mail-Benachrichtgung aktivieren +register_confirm=Registrierungsbestätigung aktivieren +mail_notify=E-Mail-Benachrichtigungen aktivieren server_service_title=Server- und sonstige Diensteinstellungen offline_mode=Offline-Modus aktivieren offline_mode_popup=Deaktiviere das CDN auch im Produktionsmodus, alle Dateien werden von diesem Server ausgeliefert. @@ -99,6 +102,8 @@ disable_gravatar=Gravatar-Dienst deaktivieren disable_gravatar_popup=Gravatar und benutzerdefinierte Quellen deaktivieren, alle Avatare werden standardmäßig vom Nutzer hochgeladen oder sind Standardavatare. disable_registration=Benutzerregistrierung deaktivieren disable_registration_popup=Deaktiviere die Benutzerregistrierung, nur Administratoren können Benutzerkonten anlegen. +enable_captcha=Captcha aktivieren +enable_captcha_popup=Benötigt Captcha-Überprüfung für Registrierung durch Benutzer. require_sign_in_view=Erfordere Anmeldung, um Inhalte anzusehen require_sign_in_view_popup=Lediglich angemeldete Benutzer können Inhalte betrachten, Gäste sehen nur die Anmelden/Registrieren Seite. admin_setting_desc=Sie müssen jetzt noch keinen Administrator-Account anlegen. Der erste Benutzer ("ID=1") erhält automatisch Administrationsrechte. @@ -109,11 +114,11 @@ confirm_password=Passwort bestätigen admin_email=E-Mail install_gogs=Gogs installieren test_git_failed=Fehler beim Test des 'git' Kommandos: %v -sqlite3_not_available=Deine Version unterstützt SQLite3 nicht, bitte lade dir die offizielle binäre Version von %s herunter, NICHT die gobuild-Version. +sqlite3_not_available=Ihre Gogs-Version unterstützt kein SQLite3, bitte lade dir die offizielle binäre Version von %s herunter, NICHT die gobuild-Version. invalid_db_setting=Datenbank-Einstellungen sind nicht korrekt: %v invalid_repo_path=Repository Root-Verzeichnis ist ungültig: %v run_user_not_match=Der ausführende Benutzer ist nicht der aktuelle Benutzer: %s -> %s -save_config_failed=Versuche die Konfiguration zu speichern ist fehlgeschlagen: %v +save_config_failed=Fehler beim Speichern der Konfiguration: %v invalid_admin_setting=Admin-Konto Einstellungen sind ungültig: %v install_success=Herzlich Willkommen! Wir sind froh, dass du dich für Gogs entschieden hast. Wir wünschen viel Vergnügen damit. @@ -121,8 +126,8 @@ install_success=Herzlich Willkommen! Wir sind froh, dass du dich für Gogs entsc uname_holder=Benutzername oder E-Mail password_holder=Passwort switch_dashboard_context=Dashboard Kontext wechseln -my_repos=Meine Repositorys -collaborative_repos=Gemeinschaftliche Repositorys +my_repos=Meine Repositories +collaborative_repos=Gemeinschaftliche Repositories my_orgs=Meine Organisationen my_mirrors=Meine Spiegel view_home=%s betrachten @@ -130,23 +135,23 @@ view_home=%s betrachten issues.in_your_repos=In deinen Repositories [explore] -repos=Repositorys +repos=Repositories [auth] create_new_account=Neues Konto erstellen -register_hepler_msg=Du hast schon ein Konto? Jetzt anmelden! -social_register_hepler_msg=Du hast schon ein soziales Konto? Jetzt verknüpfen! +register_hepler_msg=Du hast bereits ein Konto? Jetzt anmelden! +social_register_hepler_msg=Du hast bereits ein soziales Konto? Jetzt verknüpfen! disable_register_prompt=Es tut uns leid, die Registrierung wurde deaktiviert. Bitte wende dich an den Administrator. disable_register_mail=Es tut uns leid, die Bestätigung der Registrierungs-E-Mail wurde deaktiviert. -remember_me=angemeldet bleiben +remember_me=Angemeldet bleiben forgot_password=Passwort vergessen forget_password=Passwort vergessen? sign_up_now=Du willst ein Konto? Jetzt registrieren! confirmation_mail_sent_prompt=Eine neue Bestätigungs-E-Mail wurde an %s gesendet. Kontrolliere dein Postfach innerhalb der nächsten %d Stunden, um die Registrierung abzuschließen. -sign_in_email=Melde dich mit deiner E-Mail-Adresse an +sign_in_to_account=Mit deinem Konto anmelden active_your_account=Aktiviere dein Konto resent_limit_prompt=Es tut uns leid, du sendest zu häufig Aktivierungs-E-Mails. Bitte warte 3 Minuten. -has_unconfirmed_mail=Hallo %s, du hast eine unbestätigte E-Mail-Adresse (%s). Wenn du keine Bestätigungs-E-Mail erhalten hast oder eine neue benötigtst, klicke bitte auf den folgenden Button. +has_unconfirmed_mail=Hallo %s, du hast eine unbestätigte E-Mail-Adresse (%s). Wenn du keine Bestätigungs-E-Mail erhalten hast oder eine neue benötigst, klicke bitte auf den folgenden Button. resend_mail=Hier klicken, um deine Aktivierungs-E-Mail erneut zu versenden email_not_associate=Diese E-Mail-Adresse ist mit keinem Konto verknüpft. send_reset_mail=Hier klicken, um die E-Mail zum Passwort-zurücksetzen erneut zu versenden @@ -155,6 +160,12 @@ invalid_code=Es tut uns leid, der Bestätigungscode ist abgelaufen oder ungülti reset_password_helper=Hier klicken, um das Passwort zurückzusetzen password_too_short=Das Passwort muss mindenstens 6 Zeichen lang sein +[mail] +activate_account=Bitte aktiviere dein Konto +activate_email=Verifiziere deine E-Mail-Adresse +reset_password=Setze dein Passwort zurück +register_success=Registrierung erfolgreich, Willkommen + [modal] yes=Ja no=Nein @@ -174,8 +185,8 @@ AuthName=Authentifizierungsname AdminEmail=Admin E-mail require_error=` darf nicht leer sein.` -alpha_dash_error=` kann ausschließlich alphanumerische Zeichen und "-_" enthalten.` -alpha_dash_dot_error=` kann ausschließlich alphanumerische Zeichen und ".-_" enthalten.` +alpha_dash_error=` muss ausschließlich alphanumerische Zeichen und "-_" enthalten.` +alpha_dash_dot_error=` muss ausschließlich alphanumerische Zeichen und ".-_" enthalten.` size_error=` muss die Größe %s haben.` min_size_error=` muss mindestens %s Zeichen enthalten.` max_size_error=` darf höchstens %s Zeichen enthalten.` @@ -204,9 +215,9 @@ auth_failed=Authentifizierung fehlgeschlagen: %v still_own_repo=Dein Konto besitzt noch Repositories. Diese müssen zuerst gelöscht oder übertragen werden. still_has_org=Du bist noch Mitglied einer Organisation, bitte lösche zunächst diese Mitgliedschaft. -org_still_own_repo=Diese Organisation besitzt noch Repositorys. Diese müssen zuerst gelöscht oder übertragen werden. +org_still_own_repo=Diese Organisation besitzt noch Repositories. Diese müssen zuerst gelöscht oder übertragen werden. -still_own_user=Diese Authentifizierung wird noch von einigen Benutzern genutzt, diese müssen zuerst gelöscht oder deren Authentifizierung geändert werden. +still_own_user=Diese Authentifizierung wird noch von einigen Benutzern genutzt. Entferne diese zuvor und lösche erneut. target_branch_not_exist=Ziel-Branch existiert nicht @@ -214,9 +225,9 @@ target_branch_not_exist=Ziel-Branch existiert nicht change_avatar=Ändere dein Profilbild auf gravatar.com change_custom_avatar=Ändere deinen Avatar in den Einstellungen join_on=Registriert -repositories=Repositorys +repositories=Repositories activity=Öffentliche Aktivität -followers=Folgen +followers=Followers starred=Markiert following=Folgt @@ -239,13 +250,13 @@ full_name=Vollständiger Name website=Webseite location=Standort update_profile=Profil aktualisieren -update_profile_success=Profil aktualisiert +update_profile_success=Ihr Profil wurde erfolgreich aktualisiert. change_username=Benutzername geändert -change_username_desc=Benutzername wurde geändert, möchtest du fortfahren? Dies beeinträchtigt sämtliche Links, die dein Konto betreffen. +change_username_prompt=Diese Änderung wird sich auf die Linkbezüge zu deinem Account auswirken. continue=Weiter cancel=Abbrechen -enable_custom_avatar=Aktiviere benuztzerdefinierten Avatar +enable_custom_avatar=Aktiviere benutzerdefinierten Avatar enable_custom_avatar_helper=Aktiviere dies, um deinen Avatar nicht von Gravatar zu laden choose_new_avatar=Neuen Avatar auswählen update_avatar=Avatar-Einstellung aktualisieren @@ -256,8 +267,9 @@ update_avatar_success=Deine Avatar-Einstellung wurde aktualisiert. change_password=Passwort ändern old_password=Aktuelles Passwort new_password=Neues Passwort +retype_new_password=Neues Passwort erneut eingeben password_incorrect=Aktuelles Passwort ist nicht korrekt. -change_password_success=Passwort geändert. Du kannst dich jetzt mit dem neuen Passwort anmelden. +change_password_success=Passwort geändert. Du kannst dich jetzt mit deinem neuen Passwort anmelden. emails=E-Mail-Adressen manage_emails=E-Mail-Adressen verwalten @@ -265,14 +277,17 @@ email_desc=Deine primäre E-Mail-Adresse wird für Benachrichtigungen und andere primary=Primär primary_email=Als primäre Adresse verwenden delete_email=Löschen +email_deletion=E-Mail löschen +email_deletion_desc=Das Löschen dieser E-Mail Adresse wird alle Informationen entfernen, die mit dieser E-Mail Adresse verknüpft sind. Willst du fortfahren? +email_deletion_success=E-Mail-Adresse wurde erfolgreich gelöscht! add_new_email=Neue E-Mail-Adresse hinzufügen add_email=E-Mail-Adresse hinzufügen -add_email_confirmation_sent=Eine neue Bestätigungsmail wurde an %s gesendet, bitte überprüfen Sie Ihren Posteingang innerhalb von %d Stunden um die Bestätigung abzuschließen. +add_email_confirmation_sent=Eine neue Bestätigungsmail wurde an '%s' gesendet, bitte überprüfen Sie Ihren Posteingang innerhalb von %d Stunden um die Bestätigung abzuschließen. add_email_success=Deine neue E-Mail-Adresse wurde erfolgreich hinzugefügt. manage_ssh_keys=SSH-Schlüssel verwalten add_key=SSH-Schlüssel hinzufügen -ssh_desc=Dies ist eine Liste aller SSH-Schlüssel, die mit deinem Konto verknüpft sind. Entferne alle Schlüssel, die du nicht kennst. +ssh_desc=Dies ist eine Liste aller SSH-Schlüssel, die mit deinem Konto verknüpft sind. Bitte entferne alle Schlüssel, die dir nicht bekannt sind. ssh_helper=Du brauchst Hilfe? Hier ist eine Anleitung zum Erzeugen von SSH-Schlüsseln oder Problemlösen einfacher SSH-Probleme. add_new_key=SSH-Schlüssel hinzufügen ssh_key_been_used=Inhalt des öffentlichen Schlüssels wurde verwendet. @@ -285,44 +300,44 @@ ssh_key_deletion=SSH-Schlüssel entfernen ssh_key_deletion_desc=Das Löschen dieses SSH-Schlüssels wird alle zugehörigen Zugriffsberechtigungen auf deinen Account entfernen. Möchtest du fortfahren? ssh_key_deletion_success=SSH-Schlüssel wurde erfolgreich gelöscht! add_on=Hinzugefügt am -last_used=Zuletzt verwendet auf +last_used=Zuletzt verwendet am no_activity=Keine neuen Aktivitäten key_state_desc=Dieser Schlüssel wurde in den letzten 7 Tagen verwendet token_state_desc=Dieses Token wurde in den letzten 7 Tagen benutzt manage_social=Verknüpfte soziale Konten verwalten -social_desc=Dies ist eine Liste verknüpfter sozialer Konten. Entferne alle Verknüpfungen, die du nicht kennst. +social_desc=Dies ist eine Liste verknüpfter sozialer Konten. Bitte entferne alle Verknüpfungen, die dir nicht bekannt sind. unbind=Verknüpfung entfernen unbind_success=Die Verknüpfung zum sozialen Konto wurde entfernt. manage_access_token=Verwaltung persönlicher Zugangs-Tokens -generate_new_token=Neues Token erzeugen -tokens_desc=Von dir generierte Tokens können benutzt werden, um auf die Gogs APIs zuzugreifen. -new_token_desc=Momentan erlaubt jedes Token vollen Zugriff auf dein Konto. +generate_new_token=Neuen Token erzeugen +tokens_desc=Von dir generierte Token können benutzt werden, um auf die Gogs APIs zuzugreifen. +new_token_desc=Momentan erlaubt jeder Token vollen Zugriff auf dein Konto. token_name=Token-Name -generate_token=Token erzeugen -generate_token_succees=Neues Zugangs-Token wurde erstellt! Bitte kopiere dein persönliches Zugangs-Token jetzt. Du wirst es später nicht mehr anzeigen können! +generate_token=Token generieren +generate_token_succees=Neuer Zugangs-Token wurde erstellt! Stelle sicher, dass du den Token kopiert hast, da du ihn später nicht mehr ansehen kannst! delete_token=Löschen access_token_deletion=Entfernung von persönlichen Token access_token_deletion_desc=Das Löschen dieses persönlichen Tokens wird alle zugehörigen Zugriffe der Anwendung entfernen. Möchtest du fortfahren? -delete_token_success=Persönliches Zugriffs-Token wurde erfolgreich entfernt! Vergiss nicht deine Anwendung zu aktualisieren. +delete_token_success=Persönlicher Zugriffs-Token wurde erfolgreich entfernt! Vergiss nicht deine Anwendung zu aktualisieren. delete_account=Konto löschen delete_prompt=Diese Aktion wird dein Konto dauerhaft löschen und kann NICHT rückgängig gemacht werden! confirm_delete_account=Löschen delete_account_title=Account löschen -delete_account_desc=Du bist dabei dieses Konto dauerhaft zu löschen, willst du fortfahren? +delete_account_desc=Du bist dabei dieses Konto dauerhaft zu löschen, möchtest du wirklich fortfahren? [repo] owner=Besitzer repo_name=Repository-Name repo_name_helper=Gute Repository-Namen sind kurz, einprägsam und einzigartig. visibility=Sichtbarkeit -visiblity_helper=Privates Repository -visiblity_fork_helper=(Eine Änderung dieses Wertes wirk sich auf alle Forks aus) +visiblity_helper=Diese Repository ist Privat +visiblity_fork_helper=(Eine Änderung dieses Wertes wirkt sich auf alle Forks aus) fork_repo=Repository abspalten -fork_from=Abspaltung von -fork_visiblity_helper=Sichtbarkeit von abgespalteten Repositories ist nicht veränderbar +fork_from=Forken von +fork_visiblity_helper=Die Sichtbarkeit von geforkten Repositories ist nicht veränderbar. repo_desc=Beschreibung repo_lang=Sprache repo_lang_helper=.gitignore Dateien auswählen @@ -338,37 +353,41 @@ mirror_interval=Spiegel-Intervall (in Stunden) form.name_reserved=Repository-Name '%s' ist bereits vergeben. form.name_pattern_not_allowed=Repository-Namesmuster '%s' ist nicht zulässig. -need_auth=Authorisierung benötigt +need_auth=Autorisierung benötigt migrate_type=Migrationstyp -migrate_type_helper=Dieses Repositorie wird ein Spiegel sein +migrate_type_helper=Diese Repository wird ein Spiegel sein migrate_repo=Repository migrieren migrate.clone_address=Adresse kopieren -migrate.clone_address_desc=Das kann eine HTTP/HTTPS/GIT URL oder ein lokaler Serverpfad sein. +migrate.clone_address_desc=Dies kann eine HTTP/HTTPS/GIT URL oder ein lokaler Serverpfad sein. migrate.invalid_local_path=Lokaler Pfad ist ungültig, er existiert nicht oder ist kein Ordner. forked_from=Geforkt von -fork_from_self=SIe können kein Repository forken, das ihnen gehört! +fork_from_self=Sie können keine Repository forken, welche ihnen gehört! copy_link=Kopieren +copy_link_success=Kopiert! +copy_link_error=Drücke ⌘-C oder Strg-C zum Kopieren click_to_copy=In Zwischenablage kopieren copied=Kopiert OK clone_helper=Du brauchst Hilfe beim Klonen? Hier gibt es Hilfe! -unwatch=Beobachtung beenden +unwatch=Nicht mehr beobachten watch=Beobachten unstar=Markierung aufheben -star=Markierung -fork=Abspaltung +star=Markieren +fork=Fork no_desc=Keine Beschreibung quick_guide=Kurzanleitung -clone_this_repo=Dieses Repository klonen -create_new_repo_command=Erstelle ein neues Repository mittels der Kommandozeile -push_exist_repo=Übertrage ein existierendes Repository von der Kommandozeile +clone_this_repo=Diese Repository klonen +create_new_repo_command=Erstelle eine neue Repository mittels Kommandozeile +push_exist_repo=Übertrage eine existierende Repository von der Kommandozeile +repo_is_empty=Das Repository ist leer, bitte komm später wieder! + branch=Branch tree=Struktur branch_and_tags=Branches & Tags branches=Branches -tags=Markierungen +tags=Tags issues=Issues pulls=Pull-Anforderung labels=Label @@ -384,12 +403,12 @@ commits.commits=Commits commits.search=Durchsuche Commits commits.find=Finden commits.author=Author -commits.message=Mitteilung +commits.message=Nachricht commits.date=Datum commits.older=Älter commits.newer=Neuer -issues.new=Neues Problem +issues.new=Neuer Issue issues.new.labels=Labels issues.new.no_label=Kein Label issues.new.clear_labels=Labels entfernen @@ -411,8 +430,8 @@ issues.filter_label=Label issues.filter_label_no_select=Kein Label gewählt issues.filter_milestone=Meilenstein issues.filter_milestone_no_select=Kein ausgewählter Meilenstein -issues.filter_assignee=Beauftragter -issues.filter_assginee_no_select=Kein ausgwählter Zuständiger +issues.filter_assignee=Zuständiger +issues.filter_assginee_no_select=Kein ausgewählter Zuständiger issues.filter_type=Typ issues.filter_type.all_issues=Alle Probleme issues.filter_type.assigned_to_you=Dir zugewiesen @@ -453,7 +472,7 @@ issues.save=Speichern issues.label_title=Label Name issues.label_color=Label Farbe issues.label_count=%d Labels -issues.label_open_issues=%d offene Probleme +issues.label_open_issues=%d offene Issues issues.label_edit=Bearbeiten issues.label_delete=Löschen issues.label_modify=Label Änderung @@ -472,7 +491,7 @@ pulls.has_pull_request=`Es existiert bereits eine Pull-Anforderung zwischen dies pulls.create=Pull Request erstellen pulls.title_desc=möchte %[1]d Commits von %[2]s nach %[3]s zusammenführen pulls.merged_title_desc=%[1]d Commits von %[2]s nach %[3]s %[4]s zusammengeführt -pulls.tab_conversation=Unterhaltung +pulls.tab_conversation=Konversation pulls.tab_commits=Commits pulls.tab_files=Dateien geändert pulls.reopen_to_merge=Bitte diese Pull-Anforderung wiedereröffnen, um die Merge-Operation auszuführen. @@ -505,7 +524,7 @@ milestones.cancel=Abbrechen milestones.modify=Meilenstein ändern milestones.edit_success=Änderungen des Meilensteins '%s' wurden erfolgreich gespeichert! milestones.deletion=Meilenstein löschen -milestones.deletion_desc=Löschen dieses Meilensteins wird alle zugehörigen Informationen in allen Issues entfernen. Soll fortgefahren werden? +milestones.deletion_desc=Das Löschen dieses Meilensteins wird alle zugehörigen Informationen in allen Issues entfernen. Wirklich fortfahren? milestones.deletion_success=Meilenstein erfolgreich gelöscht! settings=Einstellungen @@ -516,34 +535,34 @@ settings.githooks=Git-Hooks settings.basic_settings=Grundeinstellungen settings.danger_zone=Gefahrenzone settings.site=Offizielle Webseite -settings.update_settings=Aktualisierungseinstellungen -settings.change_reponame_prompt=Diese Änderung wirkt sich darauf aus, wie sich Links auf das Repository beziehen. +settings.update_settings=Einstellungen speichern +settings.change_reponame_prompt=Diese Änderung wirkt sich darauf aus, wie sich Links auf Repositories beziehen. settings.transfer=Besitz übertragen -settings.transfer_desc=Übertrage dieses Repository einem anderen Benutzer oder einer Organisation in der du Admin-Rechte hast. -settings.new_owner_has_same_repo=Neuer Eigentümer hat bereits ein Repository mit dem gleichen Namen. +settings.transfer_desc=Übertrage diese Repository auf einen anderen Benutzer oder eine Organisation in der du Admin-Rechte hast. +settings.new_owner_has_same_repo=Der neue Eigentümer hat bereits ein Repository mit dem gleichen Namen. settings.delete=Repository löschen -settings.delete_desc=Wenn dieses Repository gelöscht ist, gibt es keinen Weg zurück. Sei dir sicher! +settings.delete_desc=Wenn diese Repository gelöscht ist, gibt es keinen Weg zurück. Bitte sei behutsam. settings.transfer_notices_1=- Du wirst den Zugang verlieren, wenn der neue Besitzer ein individueller Benutzer ist. settings.transfer_notices_2=- Du wirst den Zugang behalten, wenn der neue Besitzer eine Organisation ist und du einer der Besitzer bist. settings.transfer_form_title=Bitte gib die folgenden Informationen ein, um die Operation zu bestätigen: settings.delete_notices_1=- Diese Operation kann NICHT rückgängig gemacht werden. -settings.delete_notices_2=- Die Operation wird alles, was mit diesem Git-Repository verbunden ist, dauerhaft löschen, inklusive der Daten, Issues, Kommentare und Zugriffsrechte von Mitarbeitern. -settings.delete_notices_fork_1=- Wenn dies ein öffentliches Repository ist, werden alle Forks unabhängig nach dem Löschen des Repositorys. -settings.delete_notices_fork_2=- Wenn dies ein privates Repository ist, dann werden gleichzeitig alle Forks entfernt. -settings.delete_notices_fork_3=Wenn alle Forks nach dem Löschen des Repositorys erhalten bleiben sollen, dann muss zuerst die Sichtbarkeit des Repositorys auf öffentlich gesetzt werden. -settings.update_settings_success=Repository-Optionen aktualisiert +settings.delete_notices_2=- Die Operation wird alles, was mit dieser Git-Repository verbunden ist, dauerhaft löschen, inklusive der Daten, Issues, Kommentare und Zugriffsrechte von Benutzern. +settings.delete_notices_fork_1=- Wenn dies eine öffentliche Repository ist, werden nach der Löschung alle Forks unabhängig. +settings.delete_notices_fork_2=- Wenn dies eine private Repository ist, dann werden gleichzeitig alle Forks entfernt. +settings.delete_notices_fork_3=Wenn alle Forks erhalten bleiben sollen, dann muss zuerst die Sichtbarkeit der Repository auf öffentlich gesetzt werden. +settings.update_settings_success=Repository-Optionen aktualisiert. settings.transfer_owner=Neuer Besitzer settings.make_transfer=übertragen -settings.transfer_succeed=Repository-Eigentum wurde erfolgreich übertragen. +settings.transfer_succeed=Die Repository wurde erfolgreich übertragen. settings.confirm_delete=Löschen settings.add_collaborator=Mitarbeiter hinzufügen settings.add_collaborator_success=Mitarbeiter hinzugefügt settings.remove_collaborator_success=Mitarbeiter entfernt settings.user_is_org_member=Benutzer ist ein Organisationsmitglied und kann nicht als Mitarbeiter hinzugefügt werden. settings.add_webhook=Webhook hinzufügen -settings.hooks_desc=Webhooks erlauben es dir, externe Dienste zu informieren, wenn etwas bestimmtes in deinem Repository passiert. Gogs sendet dann einen POST-Request an alle angegebenen URLs. Erfahre mehr in unserem Webhooks Guide. +settings.hooks_desc=Webhooks erlauben es dir, externe Dienste zu informieren, wenn etwas bestimmtes in deiner Repository passiert. Gogs sendet dann einen POST-Request an alle angegebenen URLs. Erfahre mehr in unserer Webhooks Guide. settings.webhook_deletion=Webhook entfernen -settings.webhook_deletion_desc=Löschen dieses Webhooks wird alle zugehörigen Informationen und den Übertragungsverlauf entfernen. Soll fortgefahren werden? +settings.webhook_deletion_desc=Das Löschen dieses Webhooks wird alle zugehörigen Informationen und den Übertragungsverlauf entfernen. Wirklich fortfahren? settings.webhook_deletion_success=Webhook wurde erfolgreich entfernt! settings.webhook.request=Anfrage settings.webhook.response=Rückmeldung @@ -551,7 +570,7 @@ settings.webhook.headers=Kopfzeilen settings.webhook.payload=Nutzdaten settings.webhook.body=Inhalt settings.githooks_desc=Git-Hooks werden von Git selbst bereitgestellt. Du kannst die Dateien der unterstützten Hooks in der Liste unten bearbeiten, um eigene Operationen einzubinden. -settings.githook_edit_desc=Wenn ein Hook nicht aktiv ist, wird der Standardinhalt benutzt. Lasse den Inhalt leer, um den Hook zu deaktivieren. +settings.githook_edit_desc=Wenn ein Hook inaktiv ist, wird der Standardinhalt benutzt. Lasse den Inhalt leer, um den Hook zu deaktivieren. settings.githook_name=Hook-Name settings.githook_content=Hook-Inhalt settings.update_githook=Aktualisiere Hook @@ -569,30 +588,30 @@ settings.event_choose=Lass mich auswählen, was ich brauche. settings.event_create=Erstellen settings.event_create_desc=Branch/Tag erstellt settings.event_push=Push -settings.event_push_desc=Git push auf ein Repository +settings.event_push_desc=Git push auf eine Repository settings.active=Aktiv settings.active_helper=Ereignisdetails werden ausgeliefert, wenn dieser Webhook ausgelöst wird. settings.add_hook_success=Webhook hinzugefügt settings.update_webhook=Webhook aktualisieren -settings.update_hook_success=Webhook aktualisiert +settings.update_hook_success=Webhook wurde aktualisiert. settings.delete_webhook=Webhook löschen settings.recent_deliveries=letzte Zustellungen settings.hook_type=Hook Typ -settings.add_slack_hook_desc=Füge Slack-Integration zu deinem Repository hinzu. +settings.add_slack_hook_desc=Füge Slack-Integration zu deiner Repository hinzu. settings.slack_token=Token settings.slack_domain=Domain settings.slack_channel=Kanal settings.deploy_keys=Deploy-Keys -settings.add_deploy_key=Deploy-Schlüssel hinzufügen +settings.add_deploy_key=Deploy-Key hinzufügen settings.no_deploy_keys=Du hast noch keine Deploy-Schlüssel hinzugefügt. settings.title=Titel settings.deploy_key_content=Inhalt settings.key_been_used=Deploy-Schlüssel wurde verwendet. -settings.key_name_used=Deploy-Schlüssel mit diesem Namen existiert bereits. +settings.key_name_used=Ein Deploy-Schlüssel mit diesem Namen existiert bereits. settings.add_key_success=Der Deploy-Schlüssel '%s' wurde erfolgreich hinzugefügt! -settings.deploy_key_deletion=Deploy-Schlüssel löschen -settings.deploy_key_deletion_desc=Nach der Löschung dieses Deploy-Schlüssels werden zugehörige Zugriffe auf das Repository nicht mehr möglich sein. Möchtest du fortfahren? -settings.deploy_key_deletion_success=Deploy-Schlüssel wurde erfolgreich gelöscht! +settings.deploy_key_deletion=Deploy-Key löschen +settings.deploy_key_deletion_desc=Nach der Löschung dieses Deploy-Keys werden zugehörige Zugriffe auf diese Repository nicht mehr möglich sein. Möchtest du wirklich fortfahren? +settings.deploy_key_deletion_success=Deploy-Key wurde erfolgreich gelöscht! diff.browse_source=Quellcode durchsuchen diff.parent=Ursprung @@ -630,14 +649,13 @@ release.tag_name_already_exist=Ein Release mit diesem Tag existiert bereits. [org] org_name_holder=Name der Organisation org_name_helper=Gute Namen von Organisationen sind kurz und einprägsam. -org_email_helper=Die E-Mail-Adresse der Organisation erhält alle Benachrichtigungen und Bestätigungs-E-Mails. create_org=Organisation erstellen repo_updated=Aktualisiert people=Personen invite_someone=Benutzer einladen teams=Teams lower_members=Mitglieder -lower_repositories=Repositorys +lower_repositories=Repositories create_new_team=Neues Team erstellen org_desc=Beschreibung team_name=Teamname @@ -654,10 +672,10 @@ settings.options=Optionen settings.full_name=Vollständiger Name settings.website=Webseite settings.location=Standort -settings.update_settings=Aktualisierungseinstellungen -settings.change_orgname=Organisationsname geändert -settings.change_orgname_desc=Organisationsname wurde geändert, möchtest du fortfahren? Dies beeinträchtigt sämtliche Links, die diese Organisation betreffen. +settings.update_settings=Einstellungen speichern settings.update_setting_success=Organisationseinstellungen aktualisiert +settings.change_orgname_prompt=Diese Änderung wird sich auf die Linkbezüge zur Organisation auswirken. +settings.update_avatar_success=Avatareinstellung für die Organisation wurde erfolgreich aktualisiert. settings.delete=Organisation löschen settings.delete_account=Diese Organisation löschen settings.delete_prompt=Die Organisation wird dauerhaft gelöscht. Dies kann NICHT rückgängig gemacht werden! @@ -683,7 +701,7 @@ teams.leave=Verlassen teams.read_access=Lesezugriff teams.read_access_helper=Dieses Team wird Repositorys einsehen und klonen können. teams.write_access=Schreibzugriff -teams.write_access_helper=Dieses Team wird die Repositorys einsehen und in sie hinein pushen können. +teams.write_access_helper=Dieses Team wird die Repositories einsehen und Push Operationen ausführen können. teams.admin_access=Adminzugriff teams.admin_access_helper=Dieses Team wird pull- und push-Rechte für die Repositorys haben und Mitarbeiter einladen können. teams.no_desc=Dieses Team hat keine Beschreibung @@ -696,13 +714,13 @@ teams.add_team_member=Teammitglied hinzufügen teams.delete_team_title=Team löschen teams.delete_team_desc=Dieses Team wird gelöscht, möchtest du fortfahren? Mitglieder dieses Teams verlieren möglicherweise ihren Zugang zu einigen Repositories. teams.delete_team_success=Team gelöscht -teams.read_permission_desc=Dieses Team hat Lesezugriff: Mitglieder können Team-Repositories einsehen und klonen. -teams.write_permission_desc=Dieses Team erlaubt Schreibzugriff: Mitglieder können Team-Repositorys einsehen und hinein pushen. +teams.read_permission_desc=Dieses Team erlaubt Lesezugriff: Mitglieder können Team-Repositories einsehen und klonen. +teams.write_permission_desc=Dieses Team erlaubt Schreibzugriff: Mitglieder können Team-Repositories einsehen und Push Operationen ausführen. teams.admin_permission_desc=Diese Team erlaubt Adminzugriff: Mitglieder dieses Teams können pullen, pushen und dem Team Mitarbeiter hinzufügen. teams.repositories=Team-Repositorys teams.add_team_repository=Team-Repository hinzufügen teams.remove_repo=Entfernen -teams.add_nonexistent_repo=Das Repository, das du hinzufügen willst, existiert nicht. Bitte erstelle es zuerst. +teams.add_nonexistent_repo=Die Repository, welche du hinzufügen möchtest, existiert nicht. Bitte erstelle diese zuerst. [admin] dashboard=Dashboard @@ -713,8 +731,9 @@ authentication=Authentifizierung config=Konfiguration notices=System-Mitteilungen monitor=Monitoring -prev=zurück -next=vor +first_page=Erste +last_page=Letzte +total=Total: %d dashboard.statistic=Statistik dashboard.operations=Operationen @@ -728,11 +747,11 @@ dashboard.clean_unbind_oauth_success=Alle ungebundenen OAuth-Tokens wurden gelö dashboard.delete_inactivate_accounts=inaktive Konten löschen dashboard.delete_inactivate_accounts_success=Alle inaktiven Konten wurden erfolgreich gelöscht. dashboard.delete_repo_archives=Alle Repository-Archive löschen -dashboard.delete_repo_archives_success=Alle Repositoriy-Archive wurden gelöscht. +dashboard.delete_repo_archives_success=Alle Repository-Archive wurden gelöscht. dashboard.git_gc_repos=Führe Garbage Collection auf Repositories aus dashboard.git_gc_repos_success=Garbage Collection wurde auf allen Repositories erfolgreich ausgeführt. -dashboard.resync_all_sshkeys=Überschreibe '.ssh/authorized_keys' Datei (Warnung: Keys, die nicht zu Gogs gehören werden verloren gehen) -dashboard.resync_all_sshkeys_success=Alle öffentlichen Keys sind erfolgreich neu geschrieben worden. +dashboard.resync_all_sshkeys=Überschreibe '.ssh/authorized_keys' Datei (Warnung: Keys, die nicht zu Gogs gehören gehen verloren) +dashboard.resync_all_sshkeys_success=Alle öffentlichen Keys wurden erfolgreich neu geschrieben. dashboard.resync_all_update_hooks=Überschreibe alle Hooks der Repositories (benötigt, wenn sich der Pfad in der Konfiguration ändert) dashboard.resync_all_update_hooks_success=Die Hooks aller Repositories sind erfolgreich neu geschrieben worden. @@ -761,8 +780,8 @@ dashboard.gc_metadata_obtained=erhaltene GC-Metadata dashboard.other_system_allocation_obtained=andere erhaltene System-Allokatoren dashboard.next_gc_recycle=nächster GC-Zyklus dashboard.last_gc_time=seit letztem GC-Zyklus -dashboard.total_gc_time=gesammte GC-Zeit -dashboard.total_gc_pause=gesammte GC-Pause +dashboard.total_gc_time=gesamte GC-Zeit +dashboard.total_gc_pause=gesamte GC-Pause dashboard.last_gc_pause=letzte GC-Pause dashboard.gc_times=GC-Takt @@ -773,11 +792,14 @@ users.activated=Aktiviert users.admin=Admin users.repos=Repositorys users.created=Erzeugt +users.send_register_notify=Sende Registrierungsbenachrichtigung an Benutzer +users.new_success=Der neue Account '%s' wurde erfolgreich erstellt. users.edit=Bearbeiten -users.auth_source=Auth-Quelle +users.auth_source=Authentifizierungsquelle users.local=Lokal -users.auth_login_name=Auth-Login-Name -users.update_profile_success=Kontoprofil aktualisiert +users.auth_login_name=Authentifizierung-Loginnname +users.password_helper=Leer lassen um es unverändert zu lassen. +users.update_profile_success=Kontoprofil wurde erfolgreich aktualisiert. users.edit_account=Konto bearbeiten users.is_activated=Dieses Konto ist aktiviert users.is_admin=Dieses Konto hat Administratorrechte @@ -786,6 +808,7 @@ users.update_profile=Kontoprofil aktualisieren users.delete_account=Dieses Konto löschen users.still_own_repo=Dieses Konto besitzt noch Repositories. Diese müssen zuerst gelöscht oder übertragen werden. users.still_has_org=Dieses Konto ist noch Mitglied einer Organisation, bitte entferne diese Mitgliedschaft zuerst. +users.deletion_success=Das Konto wurde erfolgreich gelöscht! orgs.org_manage_panel=Organisationenverwaltung orgs.name=Name @@ -800,8 +823,8 @@ repos.watches=Beobachtungen repos.stars=Markierungen repos.issues=Issues -auths.auth_manage_panel=Authentifizierung -auths.new=Neue Authentifizierungsquelle hinzufügen +auths.auth_manage_panel=Verwaltungspanel für die Authentifizierung +auths.new=Neue Quelle hinzufügen auths.name=Name auths.type=Typ auths.enabled=aktiviert @@ -813,16 +836,20 @@ auths.host=Host auths.port=Port auths.bind_dn=DN binden auths.bind_password=Passwort binden +auths.bind_password_helper=Warnung: Das Passwort wird im Klartext gespeichert. Benutze keinen Account mit hohen Zugriffsrechten. auths.user_base=Benutzer-Such-Basis +auths.user_dn=Benutzer DN auths.attribute_name=Vorname Attribut auths.attribute_surname=Nachname Attribut auths.attribute_mail=E-Mail Attribut auths.filter=Benutzernamen Filter auths.admin_filter=Admin Filter auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=SMTP-Authentifizierungstyp +auths.smtp_auth=SMTP Authentifizierungstyp auths.smtphost=SMTP-Host auths.smtpport=SMTP-Port +auths.allowed_domains=Erlaubte Domains +auths.allowed_domains_helper=Leer lassen für keine Einschränkungen. Mehrere Domains können durch Komma "," getrennt werden. auths.enable_tls=TLS-Verschlüsselung aktivieren auths.skip_tls_verify=TLS-Prüfung überspringen auths.pam_service_name=PAM Dienstname @@ -830,11 +857,13 @@ auths.enable_auto_register=Automatische Registrierung aktivieren auths.tips=Tipps auths.edit=Authentifizierungseinstellungen bearbeiten auths.activated=Diese Authentifizierung ist aktiviert -auths.update_success=Authentifizierungseinstellungen aktualisiert +auths.new_success=Neue Authentifizierung '%s' wurde erfolgreich hinzugefügt. +auths.update_success=Die Authentifizierungseinstellungen wurden erfolgreich aktualisiert. auths.update=Authentifizierungseinstellungen aktualisieren -auths.delete=Authentifizierung löschen -auths.delete_auth_title=Authentifizierungsquelle löschen -auths.delete_auth_desc=Diese Authentifizierungsquelle wird gelöscht, möchtest du fortfahren? +auths.delete=Diese Authentifizierung löschen +auths.delete_auth_title=Löschen der Authentifizierung +auths.delete_auth_desc=Diese Authentifizierung wird gelöscht, möchtest du fortfahren? +auths.deletion_success=Authentifizierung wurde erfolgreich entfernt! config.server_config=Server-Konfiguration config.app_name=Anwendungsname @@ -858,14 +887,16 @@ config.db_user=Benutzer config.db_ssl_mode=SSL-Modus config.db_ssl_mode_helper=(nur für "postgres") config.db_path=Verzeichnis -config.db_path_helper=(nur für "sqlite3") +config.db_path_helper=(für "sqlite3" und "tidb") config.service_config=Service-Einstellungen config.register_email_confirm=E-Mail-Bestätigung bei Registrierung config.disable_register=Registrierung deaktivieren config.show_registration_button=Zeige die Schaltfläche Registrieren config.require_sign_in_view=Ansehen erfordert Registrierung -config.mail_notify=E-Mail-Benachrichtigung config.enable_cache_avatar=Avatar-Cache aktivieren +config.mail_notify=E-Mail-Benachrichtigung +config.disable_key_size_check=Prüfung der Mindestschlüssellänge deaktiveren +config.enable_captcha=Captcha aktivieren config.active_code_lives=Aktivierungscode Lebensdauer config.reset_password_code_lives=Passwortcode Lebensdauer config.webhook_config=Webhook-Einstellungen diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index 71f6329cb..29d0b2788 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -5,7 +5,6 @@ dashboard = Dashboard explore = Explore help = Help sign_in = Sign In -social_sign_in = Social Sign In: 2nd Step associate account sign_out = Sign Out sign_up = Sign Up register = Register @@ -14,7 +13,7 @@ version = Version page = Page template = Template language = Language -create_new = Create new... +create_new = Create... user_profile_and_more = User profile and more signed_in_as = Signed in as @@ -54,7 +53,8 @@ code = Code [install] install = Installation title = Install Steps For First-time Run -requite_db_desc = Gogs requires MySQL, PostgreSQL or SQLite3. +docker_helper = If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page! +requite_db_desc = Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB. db_title = Database Settings db_type = Database Type host = Host @@ -64,8 +64,11 @@ db_name = Database Name db_helper = Please use INNODB engine with utf8_general_ci charset for MySQL. ssl_mode = SSL Mode path = Path -sqlite_helper = The file path of SQLite3 database. -err_empty_sqlite_path = SQLite3 database path cannot be empty. +sqlite_helper = The file path of SQLite3 or TiDB database. +err_empty_db_path = SQLite3 or TiDB database path cannot be empty. +err_invalid_tidb_name = TiDB database name does not allow characters "." and "-". +no_admin_and_disable_registration = You cannot disable registration without creating an admin account. +err_empty_admin_password = Admin password cannot be empty. general_title = Application General Settings app_name = Application Name @@ -99,6 +102,8 @@ disable_gravatar = Disable Gravatar Service disable_gravatar_popup = Disable Gravatar and custom sources, all avatars are uploaded by users or default. disable_registration = Disable Self-registration disable_registration_popup = Disable user self-registration, only admin can create accounts. +enable_captcha = Enable Captcha +enable_captcha_popup = Require validate captcha for user self-registration. require_sign_in_view = Enable Require Sign In to View Pages require_sign_in_view_popup = Only signed in users can view pages, visitors will only be able to see sign in/up pages. admin_setting_desc = You do not have to create an admin account right now, user whoever ID=1 will gain admin access automatically. @@ -143,7 +148,7 @@ forgot_password= Forgot Password forget_password = Forgot password? sign_up_now = Need an account? Sign up now. confirmation_mail_sent_prompt = A new confirmation e-mail has been sent to %s, please check your inbox within the next %d hours to complete the registration process. -sign_in_email = Sign in to your e-mail +sign_in_to_account = Sign in to your account active_your_account = Activate Your Account resent_limit_prompt = Sorry, you already requested an activation email recently. Please wait 3 minutes then try again. has_unconfirmed_mail = Hi %s, you have an unconfirmed e-mail address (%s). If you haven't received a confirmation e-mail or need to resend a new one, please click on the button below. @@ -155,6 +160,12 @@ invalid_code = Sorry, your confirmation code has expired or not valid. reset_password_helper = Click here to reset your password password_too_short = Password length cannot be less then 6. +[mail] +activate_account = Please activate your account +activate_email = Verify your e-mail address +reset_password = Reset your password +register_success = Register success, Welcome + [modal] yes = Yes no = No @@ -246,7 +257,7 @@ continue = Continue cancel = Cancel enable_custom_avatar = Enable Custom Avatar -enable_custom_avatar_helper = Enable this to disable fetch from Gravatar +enable_custom_avatar_helper = Disable fetch from Gravatar choose_new_avatar = Choose new avatar update_avatar = Update Avatar Setting uploaded_avatar_not_a_image = Uploaded file is not a image. @@ -256,6 +267,7 @@ update_avatar_success = Your avatar setting has been updated successfully. change_password = Change Password old_password = Current Password new_password = New Password +retype_new_password = Retype New Password password_incorrect = Current password is not correct. change_password_success = Your password was successfully changed. You can now sign using this new password. @@ -265,9 +277,12 @@ email_desc = Your primary e-mail address will be used for notifications and othe primary = Primary primary_email = Set as primary delete_email = Delete +email_deletion = E-mail Deletion +email_deletion_desc = Delete this e-mail address will remove related information from your account. Do you want to continue? +email_deletion_success = E-mail has been deleted successfully! add_new_email = Add new e-mail address add_email = Add e-mail -add_email_confirmation_sent = A new confirmation e-mail has been sent to %s, please check your inbox within the next %d hours to complete the confirmation process. +add_email_confirmation_sent = A new confirmation e-mail has been sent to '%s', please check your inbox within the next %d hours to complete the confirmation process. add_email_success = Your new E-mail address was successfully added. manage_ssh_keys = Manage SSH Keys @@ -330,7 +345,7 @@ license = License license_helper = Select a license file readme = Readme readme_helper = Select a readme template -auto_init = Initialize this repository selected files and template +auto_init = Initialize this repository with selected files and template create_repo = Create Repository default_branch = Default Branch mirror_interval = Mirror Interval (hour) @@ -349,6 +364,8 @@ migrate.invalid_local_path = Invalid local path, it does not exist or not a dire forked_from = forked from fork_from_self = You cannot fork repository you already owned! copy_link = Copy +copy_link_success = Copied! +copy_link_error = Press ⌘-C or Ctrl-C to copy click_to_copy = Copy to clipboard copied = Copied OK clone_helper = Need help cloning? Visit Help! @@ -363,6 +380,8 @@ quick_guide = Quick Guide clone_this_repo = Clone this repository create_new_repo_command = Create a new repository on the command line push_exist_repo = Push an existing repository from the command line +repo_is_empty = This repository is empty, please come back later! + branch = Branch tree = Tree @@ -483,6 +502,7 @@ pulls.can_auto_merge_desc = You can perform auto-merge operation on this pull re pulls.cannot_auto_merge_desc = You can't perform auto-merge operation because there are conflicts between commits. pulls.cannot_auto_merge_helper = Please use command line tool to solve it. pulls.merge_pull_request = Merge Pull Request +pulls.open_unmerged_pull_exists = `You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.` milestones.new = New Milestone milestones.open_tab = %d Open @@ -712,8 +732,9 @@ authentication = Authentications config = Configuration notices = System Notices monitor = Monitoring -prev = Prev. -next = Next +first_page = First +last_page = Last +total = Total: %d dashboard.statistic = Statistic dashboard.operations = Operations @@ -772,10 +793,13 @@ users.activated = Activated users.admin = Admin users.repos = Repos users.created = Created +users.send_register_notify = Send Registration Notification To User +users.new_success = New account '%s' has been created successfully. users.edit = Edit users.auth_source = Authentication Source users.local = Local users.auth_login_name = Authentication Login Name +users.password_helper = Leave it empty to remain unchanged. users.update_profile_success = Account profile has been updated successfully. users.edit_account = Edit Account users.is_activated = This account is activated @@ -785,6 +809,7 @@ users.update_profile = Update Account Profile users.delete_account = Delete This Account users.still_own_repo = This account still has ownership over at least one repository, you have to delete or transfer them first. users.still_has_org = This account still has membership in at least one organization, you have to leave or delete the organizations first. +users.deletion_success = Account has been deleted successfully! orgs.org_manage_panel = Organization Manage Panel orgs.name = Name @@ -800,7 +825,7 @@ repos.stars = Stars repos.issues = Issues auths.auth_manage_panel = Authentication Manage Panel -auths.new = Add New Authentication Source +auths.new = Add New Source auths.name = Name auths.type = Type auths.enabled = Enabled @@ -812,7 +837,9 @@ auths.host = Host auths.port = Port auths.bind_dn = Bind DN auths.bind_password = Bind Password +auths.bind_password_helper = Warning: This password is stored in plain text. Do not use a high privileged account. auths.user_base = User Search Base +auths.user_dn = User DN auths.attribute_name = First name attribute auths.attribute_surname = Surname attribute auths.attribute_mail = E-mail attribute @@ -822,18 +849,22 @@ auths.ms_ad_sa = Ms Ad SA auths.smtp_auth = SMTP Authentication Type auths.smtphost = SMTP Host auths.smtpport = SMTP Port +auths.allowed_domains = Allowed Domains +auths.allowed_domains_helper = Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','. auths.enable_tls = Enable TLS Encryption auths.skip_tls_verify = Skip TLS Verify auths.pam_service_name = PAM Service Name auths.enable_auto_register = Enable Auto Registration auths.tips = Tips auths.edit = Edit Authentication Setting -auths.activated = This authentication has activated +auths.activated = This authentication is activate +auths.new_success = New authentication '%s' has been added successfully. auths.update_success = Authentication setting has been updated successfully. auths.update = Update Authentication Setting auths.delete = Delete This Authentication auths.delete_auth_title = Authentication Deletion auths.delete_auth_desc = This authentication is going to be deleted, do you want to continue? +auths.deletion_success = Authentication has been deleted successfully! config.server_config = Server Configuration config.app_name = Application Name @@ -857,14 +888,16 @@ config.db_user = User config.db_ssl_mode = SSL Mode config.db_ssl_mode_helper = (for "postgres" only) config.db_path = Path -config.db_path_helper = (for "sqlite3" only) +config.db_path_helper = (for "sqlite3" and "tidb") config.service_config = Service Configuration config.register_email_confirm = Require E-mail Confirmation config.disable_register = Disable Registration config.show_registration_button = Show Register Button config.require_sign_in_view = Require Sign In View -config.mail_notify = Mail Notification config.enable_cache_avatar = Enable Cache Avatar +config.mail_notify = Mail Notification +config.disable_key_size_check = Disable Minimum Key Size Check +config.enable_captcha = Enable Captcha config.active_code_lives = Active Code Lives config.reset_password_code_lives = Reset Password Code Lives config.webhook_config = Webhook Configuration diff --git a/conf/locale/locale_es-ES.ini b/conf/locale/locale_es-ES.ini index 14a990e01..a81371158 100755 --- a/conf/locale/locale_es-ES.ini +++ b/conf/locale/locale_es-ES.ini @@ -1,20 +1,19 @@ app_desc=Un servicio de Git auto alojado y sin complicaciones -home=Incio +home=Inicio dashboard=Panel de control explore=Explorar help=Ayuda sign_in=Iniciar sesión -social_sign_in=Inicio de sesión social: 2° paso cuenta de asociado sign_out=Cerrar sesión sign_up=Suscripción register=Registro -website=Pagina Web +website=Página Web version=Versión page=Página template=Plantilla -language=Lenguaje -create_new=Crear nuevo... +language=Idioma +create_new=Crear... user_profile_and_more=Perfil de usuario y más signed_in_as=Identificado como @@ -26,7 +25,7 @@ captcha=Captcha repository=Repositorio organization=Organización -mirror=Espejo +mirror=Mirror new_repo=Nuevo repositorio new_migrate=Nueva Migración new_fork=Nuevo Fork del Repositorio @@ -38,9 +37,9 @@ settings=Configuraciones your_profile=Tu perfil your_settings=Tu configuración -news_feed=entrada de noticias -pull_requests=Solicitudes de retiro -issues=Publicaciones +news_feed=Feed de noticias +pull_requests=Pull Requests +issues=Incidencias cancel=Cancelar @@ -54,25 +53,29 @@ code=Código [install] install=Instalación title=Pasos de la instalación por primera vez -requite_db_desc=Gogs necesita MySQL, PostgreSQL o SQLite3. +docker_helper=Si está ejecutando Gogs usando Docker, por favor lea estas pautas antes de cambiar nada en esta página! +requite_db_desc=Gogs requiere una base de datos MySQL, PostgreSQL, SQLite3 o TiDB. db_title=Configuración de base de datos db_type=Tipo de base de datos -host=Anfitrión +host=Host user=Usuario password=Contraseña db_name=Nombre de la base de datos db_helper=Por favor utilice el motor INNODB con la configuración de caracteres utf8_general_ci para MySQL. ssl_mode=Modo SSL path=Ruta -sqlite_helper=Ruta del archivo de la base de datos de SQLite3. -err_empty_sqlite_path=La ruta de la base de datos SQLite3 no puede estar vacía. +sqlite_helper=Ruta del archivo con la base de datos SQLite3 o TiDB. +err_empty_db_path=La ruta a la base de datos SQLite3 o TiDB no puede estar vacía. +err_invalid_tidb_name=El nombre de la base de datos TiDB no puede contener los caracteres "." ni "-". +no_admin_and_disable_registration=No puede deshabilitar el registro sin crear una cuenta de administrador. +err_empty_admin_password=La contraseña de administrador no puede estar vacía. general_title=Configuración General de Gogs app_name=Nombre de la Aplicación app_name_helper=Pon aquí el nombre de tu organización, ¡alto y claro! repo_path=Ruta del repositorio de Raiz (Root) repo_path_helper=Todos los repositorios remotos de Git se guardarán en este directorio. -run_user=Abrir el usuario +run_user=Ejecutar como Usuario run_user_helper=El usuario necesita tener acceso a la Ruta Raíz del Repositorio y ejecutar Gogs. domain=Dominio domain_helper=Esto afecta a las URLs para clonar por SSH. @@ -96,9 +99,11 @@ server_service_title=Configuración de Servidor y Otros Servicios offline_mode=Activar el modo Sin Conexión offline_mode_popup=Desactivar el CDN incluso en el modo de producción, todos los recursos se servirán localmente. disable_gravatar=Desactivar el Servicio Gravatar -disable_gravatar_popup=Desactivar Gravatar y cualquier fuente personalizada, todos los avatares deben ser cargados por los usuarios o el avatar por defecto. +disable_gravatar_popup=Desactivar Gravatar y cualquier otra fuente personalizada. Todos los avatares deben ser cargados por los usuarios o en su defecto se mostrará el avatar predeterminado. disable_registration=Desactivar Auto-Registro disable_registration_popup=Desactivar auto-registro del usuario, solo el administrador podrá crear cuentas nuevas. +enable_captcha=Activar la Captcha +enable_captcha_popup=Requiere validar la captcha para el auto-registro de usuario. require_sign_in_view=Activar el Inicio de Sesión obligatorio para Ver Páginas require_sign_in_view_popup=Solo los usuarios logados pueden ver páginas, los visitantes anónimos solo podrán ver las páginas de login/registro. admin_setting_desc=No es necesario crear una cuenta de administrador ahora mismo, el usuario que tenga ID=1 obtendrá privilegios de administrador automáticamente. @@ -127,7 +132,7 @@ my_orgs=Mis Organizaciones my_mirrors=Mis Mirrors view_home=Ver %s -issues.in_your_repos=En sus repositorios +issues.in_your_repos=En tus repositorios [explore] repos=Repositorios @@ -143,7 +148,7 @@ forgot_password=He olvidado mi contraseña forget_password=¿Has olvidado tu contraseña? sign_up_now=¿Necesitas una cuenta? Regístrate ahora. confirmation_mail_sent_prompt=Un nuevo correo de confirmación se ha enviado a %s. Por favor, comprueba tu bandeja de entrada en las siguientes %d horas para completar el proceso de registro. -sign_in_email=Inicia sesión con tu correo electrónico +sign_in_to_account=Inicie sesión en su cuenta active_your_account=Activa tu cuenta resent_limit_prompt=Lo sentimos, estás solicitando el reenvío del mail de activación con demasiada frecuencia. Por favor, espera 3 minutos. has_unconfirmed_mail=Hola %s, tu correo electrónico (%s) no está confirmado. Si no has recibido un correo de confirmación o necesitas que lo enviemos de nuevo, por favor, haz click en el siguiente botón. @@ -155,6 +160,12 @@ invalid_code=Lo sentimos, su código de confirmación ha expirado o no es valido reset_password_helper=Haga Clic aquí para restablecer su contraseña password_too_short=La longitud de la contraseña no puede ser menor a 6. +[mail] +activate_account=Por favor, active su cuenta +activate_email=Verifique su correo electrónico +reset_password=Restablezca su contraseña +register_success=Registro completado, bienvenido + [modal] yes=Sí no=No @@ -241,7 +252,7 @@ location=Localización update_profile=Actualizar Perfil update_profile_success=Tu perfil se ha actualizado correctamente. change_username=Nombre de usuario modificado -change_username_desc=El nombre de usuario ha sido modificado, ¿quieres continuar? Esta acción afectará a todos los enlaces relacionados con tu cuenta. +change_username_prompt=Este cambio afectará a los enlaces que hacen referencia a su cuenta. continue=Continuar cancel=Cancelar @@ -256,6 +267,7 @@ update_avatar_success=La configuración de tu avatar se ha actualizado correctam change_password=Cambiar contraseña old_password=Contraseña actual new_password=Nueva contraseña +retype_new_password=Confirmar nueva contraseña password_incorrect=Contraseña actual incorrecta. change_password_success=La contraseña se ha modificado correctamente. Ya puedes iniciar sesión con tu nueva contraseña. @@ -265,15 +277,18 @@ email_desc=Tu dirección de correo principal se utilizará para las notificacion primary=Principal primary_email=Marcar como principal delete_email=Eliminar +email_deletion=Eliminación de Correo Electrónico +email_deletion_desc=Al eliminar esta dirección de correo electrónico se eliminará toda la información asociada a esta dirección de correo electrónico. ¿Deseas continuar? +email_deletion_success=¡El correo electrónico ha sido eliminado correctamente! add_new_email=Añadir nueva dirección de correo electrónico add_email=Añadir correo electrónico -add_email_confirmation_sent=Un nuevo correo de confirmación ha sido enviado a %s, por favor, comprueba tu bandeja de entrada en las próximas %d horas para completar el proceso de confirmación. +add_email_confirmation_sent=Un nuevo correo de confirmación ha sido enviado a '%s'. Por favor, comprueba tu bandeja de entrada en las próximas %d horas para completar el proceso. add_email_success=Tu nuevo correo electrónico se ha añadido correctamente. manage_ssh_keys=Gestionar Claves SSH add_key=Añadir Clave ssh_desc=Esta es la lista de claves SSH asociadas con tu cuenta. Elimina cualquier clave que no reconozcas. -ssh_helper=¿Necesitas ayuda?. Consulta nuestra guía para generar claves SSH o solucionar problemas comunes de SSH. +ssh_helper=¿Necesitas ayuda? Consulta la guía de GitHub para generar claves SSH o solucionar problemas comunes al usar SSH. add_new_key=Añadir clave SSH ssh_key_been_used=El contenido de la clave pública se ha utilizado. ssh_key_name_used=Ya existe una clave pública con el mismo nombre. @@ -281,14 +296,14 @@ key_name=Nombre de la Clave key_content=Contenido add_key_success=¡Nueva clave SSH '%s' añadida correctamente! delete_key=Eliminar -ssh_key_deletion=Borrado de Llave SSH -ssh_key_deletion_desc=Al borrar esta llave SSH no podrá volver a acceder con ella a su cuenta. Desea continuar? -ssh_key_deletion_success=¡La llave SSH ha sido eliminada con éxito! +ssh_key_deletion=Borrado de Clave SSH +ssh_key_deletion_desc=Si elimina esta clave SSH no podrá volver a usarla para acceder a su cuenta. ¿Desea continuar? +ssh_key_deletion_success=¡La clave SSH ha sido eliminada con éxito! add_on=Añadido en last_used=Utilizado por última vez en no_activity=No hay actividad reciente key_state_desc=Esta clave ha sido usada en los últimos 7 días -token_state_desc=Este token ha sido usado en los últimos 7 días +token_state_desc=Token usado en los últimos 7 días manage_social=Gestionar Redes Sociales asociadas social_desc=Esta es una lista de las Redes Sociales asociadas. Elimina cualquier vínculo que no reconozcas. @@ -297,7 +312,7 @@ unbind_success=La Red Social ha sido desvinculada. manage_access_token=Gestionar los Tokens de Acceso personales generate_new_token=Generar nuevo Token -tokens_desc=Tokens generados que se pueden usar para acceder al API de Gogs. +tokens_desc=Tokens usados para acceder al API de Gogs. new_token_desc=Desde ahora, todos los tokens tendrán acceso completo a tu cuenta. token_name=Nombre del Token generate_token=Generar Token @@ -343,12 +358,14 @@ migrate_type=Tipo de Migración migrate_type_helper=Este repositorio será un mirror migrate_repo=Migrar Repositorio migrate.clone_address=Clonar Dirección -migrate.clone_address_desc=Esto puede ser una URL HTTP/HTTPS/GIT o una ruta local del servidor. +migrate.clone_address_desc=Puede ser una URL HTTP/HTTPS/GIT o una ruta local del servidor. migrate.invalid_local_path=Rutal local inválida, no existe o no es un directorio. forked_from=forked de -fork_from_self=eres el propietario del repositorio, no puedes hacer fork! +fork_from_self=Eres el propietario del repositorio, ¡no puedes hacer fork! copy_link=Copiar +copy_link_success=Copied! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=Copiar al portapapeles copied=Copiado correctamente clone_helper=¿Necesitas ayuda con el clone? ¡Consulta la Ayuda! @@ -363,6 +380,8 @@ quick_guide=Guía Rápida clone_this_repo=Clonar este repositorio create_new_repo_command=Crear un nuevo repositorio desde línea de comandos push_exist_repo=Hacer Push de un repositorio existente desde línea de comandos +repo_is_empty=This repository is empty, please come back later! + branch=Rama tree=Árbol @@ -410,19 +429,19 @@ issues.close_tab=%d cerradas issues.filter_label=Etiqueta issues.filter_label_no_select=Ninguna etiqueta seleccionada issues.filter_milestone=Milestone -issues.filter_milestone_no_select=Milestone no seleccionado -issues.filter_assignee=Asignada por +issues.filter_milestone_no_select=Ningún Milestone seleccionado +issues.filter_assignee=Asignada a issues.filter_assginee_no_select=Sin asignar issues.filter_type=Tipo issues.filter_type.all_issues=Todas las incidencias -issues.filter_type.assigned_to_you=Asignada a ti -issues.filter_type.created_by_you=Creada por ti +issues.filter_type.assigned_to_you=Asignadas a ti +issues.filter_type.created_by_you=Creadas por ti issues.filter_type.mentioning_you=Citado en issues.filter_sort=Ordenar issues.filter_sort.latest=Más recientes -issues.filter_sort.oldest=Más antiguos +issues.filter_sort.oldest=Más antiguas issues.filter_sort.recentupdate=Actualizada recientemente -issues.filter_sort.leastupdate=Least recently updated +issues.filter_sort.leastupdate=Actualizada menos recientemente issues.filter_sort.mostcomment=Más comentadas issues.filter_sort.leastcomment=Menos comentadas issues.opened_by=abierta %[1]s por %[3]s @@ -433,7 +452,7 @@ issues.open_title=Abierta issues.closed_title=Cerrada issues.num_comments=%d comentarios issues.commented_at=`comentada %[2]s` -issues.no_content=No hay contenido por el momento. +issues.no_content=Aun no existe contenido. issues.close_issue=Cerrar issues.close_comment_issue=Cerrar y Comentar issues.reopen_issue=Reabrir @@ -442,11 +461,11 @@ issues.create_comment=Comentar issues.closed_at=`cerrada %[2]s` issues.reopened_at=`reabierta %[2]s` issues.commit_ref_at=`mencionada esta incidencia en un commit %[2]s` -issues.poster=Poster +issues.poster=Autor issues.admin=Administrador issues.owner=Propietario issues.sign_up_for_free=Registro gratuito -issues.sign_in_require_desc=para unirse a esta conversación. Ya dispone de una cuenta? Inicie sesión para comentar +issues.sign_in_require_desc=para unirse a esta conversación. ¿Ya dispone de una cuenta? Inicie sesión para comentar issues.edit=Editar issues.cancel=Cancelar issues.save=Guardar @@ -456,7 +475,7 @@ issues.label_count=%d etiquetas issues.label_open_issues=%d incidencias abiertas issues.label_edit=Editar issues.label_delete=Borrar -issues.label_modify=Modificación de Etiqueta +issues.label_modify=Edición de Etiqueta issues.label_deletion=Borrado de Etiqueta issues.label_deletion_desc=Al borrar la etiqueta su información será eliminada de todas las incidencias relacionadas. Desea continuar? issues.label_deletion_success=Etiqueta borrada con éxito! @@ -466,10 +485,10 @@ pulls.compare_changes_desc=Comparar dos ramas y generar un pull request con las pulls.compare_base=base pulls.compare_compare=comparar con pulls.filter_branch=Filtrar rama -pulls.no_results=No se han encontrado resultados. -pulls.nothing_to_compare=No hay nada que comparar porque las dos ramas coinciden. +pulls.no_results=Sin resultados. +pulls.nothing_to_compare=Nada que comparar. Las dos ramas coinciden. pulls.has_pull_request=`Ya existe un pull request entre estas dos ramas: %[2]s#%[3]d` -pulls.create=Nuevo Pull Request +pulls.create=Crear Pull Request pulls.title_desc=desea fusionar %[1]d commits de %[2]s en %[3]s pulls.merged_title_desc=fusionados %[1]d commits de %[2]s en %[3]s %[4]s pulls.tab_conversation=Conversación @@ -490,7 +509,7 @@ milestones.close_tab=%d cerradas milestones.closed=Cerrada %s milestones.no_due_date=Sin fecha límite milestones.open=Abrir -milestones.close=Cerrada +milestones.close=Cerrar milestones.new_subheader=Cree milestones para organizar las incidencias. milestones.create=Nuevo Milestone milestones.title=Título @@ -517,7 +536,7 @@ settings.basic_settings=Configuración Básica settings.danger_zone=Zona de Peligro settings.site=Sitio Oficial settings.update_settings=Actualizar Configuración -settings.change_reponame_prompt=This change will affect how links relate to the repository. +settings.change_reponame_prompt=Este cambio afectará a los enlaces al repositorio. settings.transfer=Transferir la Propiedad settings.transfer_desc=Transferir este repositorio a otro usuario u organización donde tengas permisos de administración. settings.new_owner_has_same_repo=El nuevo propietario tiene un repositorio con el mismo nombre. @@ -543,7 +562,7 @@ settings.user_is_org_member=El usuario es miembro de la organización, no puede settings.add_webhook=Añadir Webhook settings.hooks_desc=Los Webhooks permiten a servicios externos recibir notificaciones cuando sucedan ciertos eventos en Gogs. Cuando sucedan los eventos especificados, enviaremos una petición POST a cada una de las URLs indicadas. Para obtener más información, consulta nuestra Guía de Webhooks. settings.webhook_deletion=Eliminar Webhook -settings.webhook_deletion_desc=El borrado de este webhook eliminará su información y todo su historial. ¿Desea continuar? +settings.webhook_deletion_desc=Al borrar este webhook se eliminará su información y todo su historial. ¿Desea continuar? settings.webhook_deletion_success=¡Webhook eliminado con éxito! settings.webhook.request=Petición settings.webhook.response=Respuesta @@ -567,7 +586,7 @@ settings.event_push_only=Solo el evento push. settings.event_send_everything=Necesito todo. settings.event_choose=Déjeme elegir lo que necesito. settings.event_create=Crear -settings.event_create_desc=Branch o etiqueta creada +settings.event_create_desc=Rama o etiqueta creada settings.event_push=Push settings.event_push_desc=Git push a un repositorio settings.active=Activo @@ -583,16 +602,16 @@ settings.slack_token=Token settings.slack_domain=Dominio settings.slack_channel=Canal settings.deploy_keys=Claves de Despliegue -settings.add_deploy_key=Add Deploy Key -settings.no_deploy_keys=You haven't added any deploy key. +settings.add_deploy_key=Añadir Clave de Despliegue +settings.no_deploy_keys=No has añadido ninguna clave de despliegue. settings.title=Título settings.deploy_key_content=Contenido -settings.key_been_used=Deploy key content has been used. -settings.key_name_used=Deploy key with same name has already existed. -settings.add_key_success=New deploy key '%s' has been added successfully! -settings.deploy_key_deletion=Delete Deploy Key -settings.deploy_key_deletion_desc=Delete this deploy key will remove all related accesses for this repository. Do you want to continue? -settings.deploy_key_deletion_success=Deploy key has been deleted successfully! +settings.key_been_used=Se ha usado la clave de despliegue. +settings.key_name_used=Ya existe una clave de despliegue con el mismo nombre. +settings.add_key_success=¡La nueva clave de desplieque '%s' ha sido creada con éxito! +settings.deploy_key_deletion=Eliminar Clave de Despliegue +settings.deploy_key_deletion_desc=Al eliminar esta clave de despliegue se perderán el permiso de acceso a este repositorio con dicha clave. ¿Deseas continuar? +settings.deploy_key_deletion_success=¡Clave de despliegue eliminada con éxito! diff.browse_source=Explorar el Código diff.parent=padre @@ -630,7 +649,6 @@ release.tag_name_already_exist=Ya existe una Release con esta etiqueta. [org] org_name_holder=Nombre de la Organización org_name_helper=Los grandes nombres de organizaciones son cortos y memorables. -org_email_helper=Los correos electrónicos de las organizaciones reciben todas las notificaciones y confirmaciones. create_org=Crear Organización repo_updated=Actualizado people=Personas @@ -652,12 +670,12 @@ form.name_pattern_not_allowed=El patrón de nombre de la organización '%s' no e settings=Configuración settings.options=Opciones settings.full_name=Nombre Completo -settings.website=Sitio Web +settings.website=Página Web settings.location=Localización settings.update_settings=Actualizar Configuración -settings.change_orgname=Nombre de la Organización Modificado -settings.change_orgname_desc=El nombre de la organización ha sido modificado, ¿quieres continuar? Esta acción afectará a todos los enlaces relacionados con esta organización. settings.update_setting_success=La configuración de la Organización se ha actualizado correctamente. +settings.change_orgname_prompt=Este cambio afectará a los enlaces que hacen referencia a la organización. +settings.update_avatar_success=La configuración de avatar de la organización ha sido actualizada con éxito. settings.delete=Eliminar Organización settings.delete_account=Eliminar esta Organización settings.delete_prompt=Esta operación eliminará esta organización de manera permanente, y ¡NO PUEDE deshacerse! @@ -713,8 +731,9 @@ authentication=Autenticaciones config=Configuración notices=Avisos del Sistema monitor=Monitorización -prev=Anterior -next=Siguiente +first_page=Primera +last_page=Última +total=Total: %d dashboard.statistic=Estadísticas dashboard.operations=Operaciones @@ -773,10 +792,13 @@ users.activated=Activado users.admin=Administrador users.repos=Repositorios users.created=Creado +users.send_register_notify=Enviar notificación de registro al usuario +users.new_success=La cuenta '%s' ha sido creada con éxito. users.edit=Editar -users.auth_source=Origen de Autorización +users.auth_source=Fuente de Autenticación users.local=Local -users.auth_login_name=Nombre de Usuario de Autorización +users.auth_login_name=Nombre de Inicio de Sesión de Autenticación +users.password_helper=Deje el campo vacío si no desea cambiar la contraseña. users.update_profile_success=El perfil de la cuenta se ha actualizado correctamente. users.edit_account=Editar Cuenta users.is_activated=Esta cuenta está activada @@ -786,6 +808,7 @@ users.update_profile=Actualizar Perfil de la Cuenta users.delete_account=Eliminar esta Cuenta users.still_own_repo=Esta cuenta es propietaria de uno o más repositorios, tienes que borrarlos o transferirlos primero. users.still_has_org=Esta cuenta es miembro de una o más organizaciones, tienes que abandonarlas o eliminarlas primero. +users.deletion_success=Su cuenta ha sido eliminada correctamente! orgs.org_manage_panel=Panel de Gestión de Organización orgs.name=Nombre @@ -800,41 +823,47 @@ repos.watches=Vigilantes repos.stars=Estrellas repos.issues=Incidencias -auths.auth_manage_panel=Panel de Gestión de Autorizaciones -auths.new=Añadir nuevo origen de autorización +auths.auth_manage_panel=Panel de Administración de Autenticación +auths.new=Añadir Nuevo Origen auths.name=Nombre auths.type=Tipo auths.enabled=Activo auths.updated=Actualizado -auths.auth_type=Tipo de Autorización -auths.auth_name=Nombre de Autorización +auths.auth_type=Tipo de Autenticación +auths.auth_name=Nombre de Autenticación auths.domain=Dominio auths.host=Host auths.port=Puerto auths.bind_dn=Bind DN -auths.bind_password=Bind Password -auths.user_base=User Search Base +auths.bind_password=Contraseña Bind +auths.bind_password_helper=Advertencia: La contraseña se almacena como texto plano. No utilice una cuenta con privilegios elevados. +auths.user_base=Base de Búsqueda de Usuarios +auths.user_dn=DN de Usuario auths.attribute_name=Atributo nombre auths.attribute_surname=Atributo apellido auths.attribute_mail=Atributo correo electrónico -auths.filter=User Filter -auths.admin_filter=Admin Filter +auths.filter=Filtro de Usuario +auths.admin_filter=Filtro de Aministrador auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=Tipo de Autorización SMTP +auths.smtp_auth=Tipo de Autenticación SMTP auths.smtphost=SMTP Host auths.smtpport=Puerto SMTP +auths.allowed_domains=Dominios Permitidos +auths.allowed_domains_helper=Deje el campo vacío si no desea restringir ningún dominio. Para restringir más de uno, separe los dominios con una coma ','. auths.enable_tls=Habilitar Cifrado TLS auths.skip_tls_verify=Omitir la verificación TLS auths.pam_service_name=Nombre del Servicio PAM auths.enable_auto_register=Hablilitar Auto-Registro auths.tips=Consejos -auths.edit=Editar la Configuración de Autorización +auths.edit=Editar la Configuración de Autenticación auths.activated=Esta autenticación ha sido activada -auths.update_success=La Configuración de Autorización ha sido actualizada correctamente. -auths.update=Actualizar la Configuración de Autorización -auths.delete=Eliminar esta Autorización -auths.delete_auth_title=Eliminación de Autorización -auths.delete_auth_desc=Se va a eliminar esta autorización, ¿quieres continuar? +auths.new_success=¡La autenticación '%s' ha sido añadida con éxito! +auths.update_success=La configuración de autenticación ha sido actualizada con éxito. +auths.update=Actualizar la Configuración de Autenticación +auths.delete=Eliminar Autenticación +auths.delete_auth_title=Borrado de Autenticación +auths.delete_auth_desc=Esta autenticación será eliminada. ¿Deseas continuar? +auths.deletion_success=¡La autenticación ha sido eliminada con éxito! config.server_config=Configuración del Servidor config.app_name=Nombre de la Aplicación @@ -843,7 +872,7 @@ config.app_url=URL de la Aplicación config.domain=Dominio config.offline_mode=Modo Sin Conexión config.disable_router_log=Deshabilitar Log del Router -config.run_user=Usuario de Ejecución +config.run_user=Ejecutada como Usuario config.run_mode=Modo de Ejecución config.repo_root_path=Ruta del Repositorio config.static_file_root_path=Ruta de los Ficheros Estáticos @@ -858,14 +887,16 @@ config.db_user=Usuario config.db_ssl_mode=Modo SSL config.db_ssl_mode_helper=(solo para "postgres") config.db_path=Ruta -config.db_path_helper=(solo para "sqlite3") +config.db_path_helper=(para "sqlite3" y "tidb") config.service_config=Configuración del Servicio config.register_email_confirm=Solicitar Confirmación por Correo Electrónico config.disable_register=Deshabilitar el Registro config.show_registration_button=Mostrar Botón de Registro config.require_sign_in_view=Solicitar la Vista de Inicio de Sesión -config.mail_notify=Notificación por Correo Electrónico config.enable_cache_avatar=Activar la Caché de Avatar +config.mail_notify=Notificación por Correo Electrónico +config.disable_key_size_check=Deshabilitar la comprobación de Tamaño Mínimo de Clave +config.enable_captcha=Activar Captcha config.active_code_lives=Habilitar Vida del Código config.reset_password_code_lives=Restablecer Contraseña de Vida del Código config.webhook_config=Configuración de Webhooks @@ -918,7 +949,7 @@ notices.op=Op. notices.delete_success=La notificación del sistema se ha eliminado correctamente. [action] -create_repo=Repositorio creado %s +create_repo=repositorio creado %s rename_repo=repositorio renombrado de %[1]s a %[3]s commit_repo=hizo push a %[2]s en %[3]s create_issue=`incidencia abierta %s#%[2]s` diff --git a/conf/locale/locale_fr-FR.ini b/conf/locale/locale_fr-FR.ini index a45c9d1c5..941deb9d0 100755 --- a/conf/locale/locale_fr-FR.ini +++ b/conf/locale/locale_fr-FR.ini @@ -5,16 +5,15 @@ dashboard=Tableau de bord explore=Explorer help=Aide sign_in=Connexion -social_sign_in=Connexion avec un réseau social : 2e étape associer un compte sign_out=Déconnexion sign_up=Créer un compte -register=S'enregistrer +register=S'inscrire website=Site Web version=Version page=Page template=Modèle language=Langue -create_new=Créer nouveau... +create_new=Créer... user_profile_and_more=Profil utilisateur et plus signed_in_as=Connecté en tant que @@ -24,12 +23,12 @@ password=Mot de passe re_type=Confirmez captcha=Captcha -repository=Référentiel +repository=Dépôt organization=Organisation mirror=Miroir -new_repo=Nouveau Référentiel +new_repo=Nouveau Dépôt new_migrate=Nouvelle Migration -new_fork=Nouveau Référentiel d'Embranchement +new_fork=Nouvel embranchement new_org=Nouvelle Organisation manage_org=Gérer les Organisations admin_panel=Administration @@ -39,22 +38,23 @@ your_profile=Votre profil your_settings=Vos paramètres news_feed=Flux d'actualités -pull_requests=Extraire les Requêtes +pull_requests=Pull Requests issues=Problèmes cancel=Annuler [search] search=Rechercher... -repository=Référentiel +repository=Dépôt user=Utilisateur issue=Problème code=Code [install] install=Installation -title=Instructions de Première Installation -requite_db_desc=Gogs nécessite MySQL, PostgreSQL ou SQLite3. +title=Instructions pour la première exécution +docker_helper=Si vous exécuté Gogs grâce à Docker, merci de lire la procédure attentivement avant de modifier quoi que ce soit dans cette page ! +requite_db_desc=Gogs requiert MySQL, PostgreSQL, SQLite3 ou TiDB. db_title=Paramètres de la base de données db_type=Type de Base de Données host=Hôte @@ -64,20 +64,23 @@ db_name=Nom de la Base de Données db_helper=Veuillez utiliser le moteur INNODB avec le jeu de caractères utf8_general_ci pour MySQL. ssl_mode=Mode SSL path=Chemin -sqlite_helper=Emplacement du fichier de la base de données SQLite3. -err_empty_sqlite_path=Le chemin de la base de donnée SQLite3 ne peut être vide. +sqlite_helper=Le chemin du fichier de la base de données SQLite3 ou TiDB. +err_empty_db_path=Le chemin de la base de données SQLite3 ou TiDB ne peut être vide. +err_invalid_tidb_name=Le nom de la base de données TIDB ne peux contenir les caractères "." ou "-". +no_admin_and_disable_registration=Vous ne pouvez pas désactiver l'enregistrement sans créer un compte admin. +err_empty_admin_password=Le mot de passe Admin ne peut pas être vide. general_title=Paramètres Généraux de Gogs app_name=Nom de l'Application app_name_helper=Inscrivez fièrement le nom de votre organisation ici ! -repo_path=Emplacement Racine du Référentiel -repo_path_helper=Tous les Référentiels Git distants seront sauvegardés ici. +repo_path=Emplacement Racine du Dépôt +repo_path_helper=Tous les Dépôts Git distants seront sauvegardés ici. run_user=Entrer un Utilisateur run_user_helper=L'utilisateur doit avoir accès à la Racine du Référentiel et éxécuter Gogs. domain=Domaine domain_helper=Cela affecte les doublons d'URL SSH. -ssh_port=SSH Port -ssh_port_helper=Port number which your SSH server is using, leave it empty to disable SSH feature. +ssh_port=Port SSH +ssh_port_helper=C'est le numéro de port qui qui est utilisé par votre serveur SSH, le laisser vide pour désactiver la fonctionnalité. http_port=Port HTTP http_port_helper=Numéro de port que l'application écoutera. app_url=URL de l'Application @@ -95,10 +98,12 @@ mail_notify=Activer la Notification des Mails reçus server_service_title=Paramètres du serveur et des autres services offline_mode=Activer le Mode hors connexion offline_mode_popup=Désactiver le CDN, même en production. Toutes les ressources seront distribuées en local. -disable_gravatar=Disable Gravatar Service -disable_gravatar_popup=Disable Gravatar and custom sources, all avatars are uploaded by users or default. +disable_gravatar=Désactiver le Service Gravatar +disable_gravatar_popup=Désactiver Gravatar et les sources personnalisées, tous les avatars sont téléchargés par les utilisateurs ou par défaut. disable_registration=Désactiver le formulaire d'inscription disable_registration_popup=Désactiver le formulaire d'inscription, seuls les administrateurs peuvent créer des comptes. +enable_captcha=Activez le Captcha +enable_captcha_popup=Demande la validation Captcha pour l'auto-enregistrement de l'utilisateur. require_sign_in_view=Demander une connexion pour afficher des pages require_sign_in_view_popup=Seules les personnes connectées peuvent voir les pages. Les visiteurs anonymes ne pourront voir que les pages de connexion/enregistrement. admin_setting_desc=Vous n'avez pas besoin de créer un compte admin. L'utilisateur ayant l'ID = 1 aura l'accès admin automatiquement. @@ -111,7 +116,7 @@ install_gogs=Installer Gogs test_git_failed=Tentative de commande "git" échouée : %v sqlite3_not_available=Votre version publiée ne prend pas en charge SQLite3. Veuillez télécharger la version binaire officielle à cette adresse %s. invalid_db_setting=Paramètres de base de données incorrects : %v -invalid_repo_path=Chemin Racine du Référentiel invalide : %v +invalid_repo_path=Chemin vers le répertoire racine invalide : %v run_user_not_match=L'utilisateur entré n'est pas l'utilisateur actuel : %s -> %s save_config_failed=Sauvegarde de la configuration échouée : %v invalid_admin_setting=Paramètres du compte administrateur invalides : %v @@ -125,9 +130,9 @@ my_repos=Mes Référentiels collaborative_repos=Référentiels collaboratifs my_orgs=Mes Organisations my_mirrors=Mes Miroirs -view_home=View %s +view_home=Voir %s -issues.in_your_repos=In your repositories +issues.in_your_repos=Dans vos dépôts [explore] repos=Référentiels @@ -143,7 +148,7 @@ forgot_password=Mot de Passe oublié forget_password=Mot de Passe oublié ? sign_up_now=Pas de compte ? Créer maintenant. confirmation_mail_sent_prompt=Un nouveau mail de confirmation à été envoyé à %s. Veuillez vérifier votre boîte de réception dans un délai de %d heures pour compléter votre enregistrement. -sign_in_email=Connexion avec l'E-mail +sign_in_to_account=Connectez-vous à votre compte active_your_account=Activer votre Compte resent_limit_prompt=Désolé, vos tentatives d'activation sont trop fréquentes. Veuillez réessayer dans 3 minutes. has_unconfirmed_mail=Bonjour %s, votre adresse courriel (%s) n'a pas été confirmée. Si vous n'avez reçu aucun courriel de confirmation ou souhaitez renouveler l'envoi, appuyez sur le bouton ci-dessous. @@ -155,6 +160,12 @@ invalid_code=Désolé, code de confirmation invalide ou expiré. reset_password_helper=Cliquez ici pour réinitialiser votre mot de passe password_too_short=Le mot de passe doit contenir 6 caractères minimum. +[mail] +activate_account=Veuillez activer votre compte +activate_email=Veuillez vérifier votre adresse e-mail +reset_password=Réinitialiser votre mot de passe +register_success=Succès de l'enregistrement, Bienvenue + [modal] yes=Oui no=Non @@ -162,7 +173,7 @@ modify=Modifier [form] UserName=Nom d'Utilisateur -RepoName=Nom du Référentiel +RepoName=Nom du dépôt Email=Adresse E-mail Password=Mot de Passe Retype=Confirmez le Mot de Passe @@ -186,13 +197,13 @@ captcha_incorrect=Le Captcha ne correspond pas. password_not_match=Le mot de passe et la confirmation de mot de passe ne correspondent pas. username_been_taken=Nom d'utilisateur déjà pris. -repo_name_been_taken=Nom de Référentiel déjà pris. +repo_name_been_taken=Nom de dépôt déjà utilisé. org_name_been_taken=Nom d'organisation déjà pris. team_name_been_taken=Nom d'équipe déjà pris. email_been_used=Adresse e-mail déjà utilisée. illegal_team_name=Le nom de l'équipe contient des caractères interdits. username_password_incorrect=Nom d'utilisateur ou mot de passe incorrect. -enterred_invalid_repo_name=Veuillez vérifier que le nom saisi du Référentiel soit correct. +enterred_invalid_repo_name=Veuillez vérifier que le nom saisi du dépôt soit correct. enterred_invalid_owner_name=Veuillez vérifier que le nom du propriétaire saisi soit correct. enterred_invalid_password=Veuillez vérifier que le mot de passe saisi soit correct. user_not_exist=Cet utilisateur n'existe pas. @@ -204,7 +215,7 @@ auth_failed=Échec d'authentification : %s still_own_repo=Votre compte comporte toujours des propriétés du dépôt. Vous devez d'abord les supprimer ou les transférer. still_has_org=Votre compte contient toujours au moins une adhésion à une organisation, vous devez quitter ou supprimer votre adhésion. -org_still_own_repo=Cette organisation comporte toujours des propriétés de Référentiel. Vous devez d'abord les supprimer ou les transférer. +org_still_own_repo=Cette organisation comporte toujours des propriétés du dépôt. Vous devez d'abord les supprimer ou les transférer. still_own_user=Cette authentification a déjà servi à d'autres utilisateurs. Veuillez les déplacer puis supprimez à nouveau. @@ -241,7 +252,7 @@ location=Localisation update_profile=Valider les modifications update_profile_success=Profil mis à jour avec succès. change_username=Non d'utilisateur modifié -change_username_desc=Nom d'utilisateur modifié. Cela affecte tous les liens relatifs à votre compte. Continuer ? +change_username_prompt=Cette modification affectera la manière dont les liens se rapportent à votre compte. continue=Continuer cancel=Annuler @@ -256,6 +267,7 @@ update_avatar_success=Votre avatar a été mis à jour avec succès. change_password=Modifier le Mot de Passe old_password=Mot de Passe actuel new_password=Nouveau Mot de Passe +retype_new_password=Retapez le nouveau mot de passe password_incorrect=Mot de passe actuel incorrect. change_password_success=Mot de passe modifié avec succès. Vous pouvez à présent vous connecter avec le nouveau mot de passe. @@ -265,9 +277,12 @@ email_desc=Votre adresse e-mail principale sera utilisée pour les notifications primary=Principale primary_email=Définir comme principale delete_email=Supprimer +email_deletion=Suppression de l'adresse mél +email_deletion_desc=Supprimer cette adresse mél supprimera les informations associées à votre compte. Voulez-vous continuer ? +email_deletion_success=L'adresse mél a été supprimée avec succès ! add_new_email=Ajouter une nouvelle adresse courriel add_email=Ajouter un courriel -add_email_confirmation_sent=Un nouvel e-mail de confirmation a été envoyé à %s, merci de vérifier votre boite de réception dans les %d heures pour compléter le processus de confirmation. +add_email_confirmation_sent=Une nouvelle confirmation d'adresse e-mail a été envoyé à '%s', veuillez vérifier votre boîte de réception dans un délai de %d heures pour terminer le processus de confirmation. add_email_success=Votre courriel a été ajouté avec succès. manage_ssh_keys=Gérer les clés SSH @@ -281,14 +296,14 @@ key_name=Nom de la Clé key_content=Contenu add_key_success=La nouvelle clé SSH '%s' a été ajoutée avec succès ! delete_key=Supprimer -ssh_key_deletion=SSH Key Deletion -ssh_key_deletion_desc=Delete this SSH key will remove all related accesses for your account. Do you want to continue? -ssh_key_deletion_success=SSH key has been deleted successfully! +ssh_key_deletion=Suppression de la clé SSH +ssh_key_deletion_desc=Supprimer cette clé SSH supprimera tous les accès à votre compte. Voulez-vous continuer ? +ssh_key_deletion_success=Clé SSH supprimée avec succès ! add_on=Ajouté le last_used=Dernière utilisation le no_activity=Aucune activité récente key_state_desc=Cette clé a été utilisée durant les 7 derniers jours -token_state_desc=This token is used in last 7 days +token_state_desc=Cette clé a été utilisée durant les 7 derniers jours manage_social=Gérer les réseaux sociaux associés social_desc=Ceci est la liste des comptes de réseaux sociaux associés. Supprimez ceux que vous ne reconnaissez pas. @@ -297,15 +312,15 @@ unbind_success=Compte de réseau social dissocié. manage_access_token=Gérer les jetons d'accès personnels generate_new_token=Générer le nouveau jeton -tokens_desc=Tokens you have generated that can be used to access the Gogs APIs. +tokens_desc=Jetons, que vous avez généré, qui peuvent être utilisés pour accéder à l'API Gogs. new_token_desc=Comme pour l'instant, chaque jeton aura un accès complet à votre compte. token_name=Nom du jeton generate_token=Générer le jeton generate_token_succees=Nouveau jeton d'accès a été généré avec succès ! Assurez-vous de copier votre nouveau jeton d'accès personnel maintenant. Vous ne serez pas en mesure de le revoir ! delete_token=Supprimer -access_token_deletion=Personal Access Token Deletion -access_token_deletion_desc=Delete this personal access token will remove all related accesses of application. Do you want to continue? -delete_token_success=Personal access token has been removed successfully! Don't forget to update your application as well. +access_token_deletion=Suppression du jeton d'accès +access_token_deletion_desc=Supprimer ce jeton d'accès supprimera tous les accès de l'application. Voulez-vous continuer ? +delete_token_success=Le jeton d'accèsa été supprimée avec succès ! N'oubliez pas de mettre aussi à jour vos applications. delete_account=Supprimer le Compte delete_prompt=Votre compte sera supprimé définitivement et cette opération est IRRÉVERSIBLE ! @@ -319,19 +334,19 @@ repo_name=Nom du Référentiel repo_name_helper=Idéalement, le nom d'un dépot devrait être court, mémorable et unique. visibility=Visibilité visiblity_helper=Ce dépôt est privé -visiblity_fork_helper=(Change of this value will affect all forks) -fork_repo=Référentiel d'Embranchement +visiblity_fork_helper=(Les changement de cette valeur affectera tous les forks) +fork_repo=Scinder le dépôt fork_from=Embranchement de fork_visiblity_helper=Un dépôt scindé ne peut pas changer sa visiblité repo_desc=Description repo_lang=Langue -repo_lang_helper=Select .gitignore files +repo_lang_helper=Sélectionnez les fichiers .gitignore license=Licence license_helper=Sélectionner un fichier de licence -readme=Readme -readme_helper=Select a readme template -auto_init=Initialize this repository selected files and template -create_repo=Créer un Référentiel +readme=Fichier Readme +readme_helper=Sélectionnez un modèle de readme +auto_init=Initialiser ce dépôt avec le modèle et les fichiers sélectionnés +create_repo=Créer un dépôt default_branch=Branche par défaut mirror_interval=Intervalle du miroir (heure) @@ -341,14 +356,16 @@ form.name_pattern_not_allowed=Motif '%s' interdit pour les noms de dépôt. need_auth=Nécessite une Autorisation migrate_type=Type de Migration migrate_type_helper=Ce dépôt sera un miroir -migrate_repo=Migrer le Référentiel +migrate_repo=Migrer le dépôt migrate.clone_address=Adresse du clone migrate.clone_address_desc=Cela peut être une URL HTTP/HTTPS/GIT ou un chemin d'accès local. migrate.invalid_local_path=Chemin local non valide, non existant ou n'étant pas un dossier. forked_from=dérivé depuis -fork_from_self=Vous nous ne pouvez pas dériver un dépôt que vous possédez déja ! +fork_from_self=Vous nous ne pouvez pas scinder un dépôt que vous possédez déja ! copy_link=Copier +copy_link_success=Copied! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=Copier dans le presse-papiers copied=Copié clone_helper=Besoin d'aide pour le clonage ? Visitez l'aider ! @@ -360,9 +377,11 @@ fork=Embranchement no_desc=Aucune description quick_guide=Introduction rapide -clone_this_repo=Dupliquer ce Référentiel -create_new_repo_command=Créer un nouveau Référentiel en ligne de commande -push_exist_repo=Soumettre un Référentiel existant par ligne de commande +clone_this_repo=Cloner ce dépôt +create_new_repo_command=Créer un nouveau dépôt en ligne de commande +push_exist_repo=Soumettre un dépôt existant par ligne de commande +repo_is_empty=This repository is empty, please come back later! + branch=Branche tree=Aborescence @@ -399,8 +418,8 @@ issues.new.clear_milestone=Effacer l'étape issues.new.open_milestone=Ouvrir l'étape issues.new.closed_milestone=Étapes fermées issues.new.assignee=Affecté à -issues.new.clear_assignee=Clear assignee -issues.new.no_assignee=No assignee +issues.new.clear_assignee=Supprimer les assignataires +issues.new.no_assignee=Pas d'assignataire issues.create=Créer un rapport de problème issues.new_label=Nouvelle étiquette issues.new_label_placeholder=Nom de l'étiquette... @@ -412,7 +431,7 @@ issues.filter_label_no_select=Aucun étiquette sélectionnée issues.filter_milestone=Étape issues.filter_milestone_no_select=Aucun jalon sélectionné issues.filter_assignee=Assigné -issues.filter_assginee_no_select=No selected Assignee +issues.filter_assginee_no_select=Pas d'assignataire selectionné issues.filter_type=Type issues.filter_type.all_issues=Tous les problèmes issues.filter_type.assigned_to_you=Qui vous sont assignés @@ -425,7 +444,7 @@ issues.filter_sort.recentupdate=Mis à jour récemment issues.filter_sort.leastupdate=Moins récemment mis à jour issues.filter_sort.mostcomment=Plus commentés issues.filter_sort.leastcomment=Moins commenté -issues.opened_by=opened %[1]s by %[3]s +issues.opened_by=Ouvrir %[1]s by %[3]s issues.opened_by_fake=ouvert %[1]s par %[2]s issues.previous=Page Précédente issues.next=Page Suivante @@ -441,14 +460,14 @@ issues.reopen_comment_issue=Réouvrir et commenter issues.create_comment=Créer un commentaire issues.closed_at="fermé à %[2]s" issues.reopened_at='réouvert à %[2]s' -issues.commit_ref_at=`referenced this issue from a commit %[2]s` +issues.commit_ref_at=`cette question référencé à partir d'un commit %[2]s` issues.poster=Publier issues.admin=Admin issues.owner=Propriétaire issues.sign_up_for_free=Inscrivez-vous gratuitement issues.sign_in_require_desc=pour rejoindre cette conversation. Vous avez déjà un compte ? Connectez-vous commenter issues.edit=Modifier -issues.cancel=Cancel +issues.cancel=Annuler issues.save=Enregistrer issues.label_title=Nom du Label issues.label_color=Couleur du Label @@ -463,26 +482,26 @@ issues.label_deletion_success=Label supprimé avec succès ! pulls.compare_changes=Comparer les changements pulls.compare_changes_desc=Comparer deux branches et faire une demande de récupération Pull pour les changements. -pulls.compare_base=base -pulls.compare_compare=compare -pulls.filter_branch=Filter branch +pulls.compare_base=Base +pulls.compare_compare=Comparer +pulls.filter_branch=Filtre de branche pulls.no_results=Aucun résultat trouvé. -pulls.nothing_to_compare=There is nothing to compare because base and head branches are even. -pulls.has_pull_request=`There is already a pull request between these two targets: %[2]s#%[3]d` -pulls.create=Create Pull Request -pulls.title_desc=wants to merge %[1]d commits from %[2]s into %[3]s -pulls.merged_title_desc=merged %[1]d commits from %[2]s into %[3]s %[4]s +pulls.nothing_to_compare=Il n'y a rien de comparable parce que les deux branches sont égales. +pulls.has_pull_request=`Il y a déjà une demande de tirer entre ces deux cibles : %[2]s#%[3]d` +pulls.create=Creer une Pull Request +pulls.title_desc=veut fusionner %[1]d commits à partir de %[2]s vers %[3]s +pulls.merged_title_desc=à fusionné %[1]d commits à partir de %[2]s vers %[3]s %[4]s pulls.tab_conversation=Conversation pulls.tab_commits=Commits -pulls.tab_files=Files changed -pulls.reopen_to_merge=Please reopen this pull request to perform merge operation. -pulls.merged=Merged -pulls.has_merged=This pull request has been merged successfully! -pulls.data_broken=Data of this pull request has been broken due to deletion of fork information. -pulls.can_auto_merge_desc=You can perform auto-merge operation on this pull request. -pulls.cannot_auto_merge_desc=You can't perform auto-merge operation because there are conflicts between commits. -pulls.cannot_auto_merge_helper=Please use command line tool to solve it. -pulls.merge_pull_request=Merge Pull Request +pulls.tab_files=Fichiers modifiés +pulls.reopen_to_merge=Veuillez rouvrir cette demande de Pull Request pour effectuer l'opération de fusion. +pulls.merged=Fusionné +pulls.has_merged=Cette Pull Request a été fusionnée avec succès ! +pulls.data_broken=Les données de cette Pull Request a été rompues en raison de la suppression d'informations du Fork. +pulls.can_auto_merge_desc=Vous pouvez effectuer d'opération de fusion automatique sur cette demande de Pull Request. +pulls.cannot_auto_merge_desc=Vous ne pouvez effectuer des opération de fusion automatique car il y a des conflits entre les Commits. +pulls.cannot_auto_merge_helper=Veuillez utiliser l'outil en ligne de commande pour le résoudre. +pulls.merge_pull_request=Fusionner la Pull Request milestones.new=Nouveau Jalon milestones.open_tab=%d Ouvert @@ -517,24 +536,24 @@ settings.basic_settings=Paramètres de base settings.danger_zone=Zone de danger settings.site=Site officiel settings.update_settings=Valider -settings.change_reponame_prompt=This change will affect how links relate to the repository. +settings.change_reponame_prompt=Ce changement affectera comment les liens sont reliés avec le dépôt. settings.transfer=Transférer les propriétés settings.transfer_desc=Transfèrer ce dépôt à un autre utilisateur ou une organisation dont vous possédez des droits d'administrateur. settings.new_owner_has_same_repo=Le nouveau propriétaire a déjà un dépôt nommé ainsi. settings.delete=Supprimer ce Référentiel settings.delete_desc=Attention, action irréversible. Soyez sûre de vous. -settings.transfer_notices_1=- You will lose access if new owner is a individual user. -settings.transfer_notices_2=- You will conserve access if new owner is an organization and if you're one of the owners. -settings.transfer_form_title=Please enter following information to confirm your operation: -settings.delete_notices_1=- This operation CANNOT be undone. -settings.delete_notices_2=- This operation will permanently delete the everything of this repository, including Git data, issues, comments and accesses of collaborators. -settings.delete_notices_fork_1=- If this repository is public, all forks will be became independent after deletion. -settings.delete_notices_fork_2=- If this repository is private, all forks will be removed at the same time. -settings.delete_notices_fork_3=- If you want to keep all forks after deletion, please change visibility of this repository to public first. +settings.transfer_notices_1=-Vous perdrez l'accès si le nouveau propriétaire est un utilisateur individuel. +settings.transfer_notices_2=-Vous préserverez l'accès si le nouveau propriétaire est une organisation et si vous y appartenez. +settings.transfer_form_title=Veuillez recopier le texte suivant afin de confirmer votre opération : +settings.delete_notices_1=- Cette opération ne peut pas être annulée. +settings.delete_notices_2=-Cette opération supprimera définitivement le dépôt, y compris les données Git, problèmes, commentaires et accès des collaborateurs. +settings.delete_notices_fork_1=-Si ce dépôt est public, tous les Forks vont devenir indépendant après la suppression. +settings.delete_notices_fork_2=-Si ce dépôt est privé, tous les Forks seront supprimés en même temps. +settings.delete_notices_fork_3=-Si vous souhaitez conserver tous les forks après suppression, veuillez tout d'abord modifier la visibilité de ce dépôt en public. settings.update_settings_success=Options mises à jour avec succès. settings.transfer_owner=Nouveau propriétaire settings.make_transfer=Transférer -settings.transfer_succeed=Propriétés transférées avec succès. +settings.transfer_succeed=Le contrôle du dépôt a été transféré avec succès. settings.confirm_delete=Confirmer la suppression settings.add_collaborator=Ajouter un collaborateur settings.add_collaborator_success=Nouveau collaborateur ajouté. @@ -542,14 +561,14 @@ settings.remove_collaborator_success=Collaborateur supprimé. settings.user_is_org_member=Cet utilisateur ne peut pas être ajouté en tant que collaborateur car il fait partie d'une organisation. settings.add_webhook=Ajouter un Webhook settings.hooks_desc=Webhooks aux services externes être notifié lorsque certains événements se produisent sur Gogs. Lorsque les événements spécifiés se produisent, nous vous enverrons une demande POST à chacun des URL que vous fournissez. Apprenez-en davantage dans notre Webhooks Guide. -settings.webhook_deletion=Delete Webhook -settings.webhook_deletion_desc=Delete this webhook will remove its information and all delivery history. Do you want to continue? -settings.webhook_deletion_success=Webhook has been deleted successfully! -settings.webhook.request=Request -settings.webhook.response=Response -settings.webhook.headers=Headers +settings.webhook_deletion=Supprimer le Webhook +settings.webhook_deletion_desc=Supprimer ce webhook va supprimer ses informations et l'historique de livraison. Voulez-vous continuer ? +settings.webhook_deletion_success=Le webhook a été supprimée avec succès ! +settings.webhook.request=Requête +settings.webhook.response=Réponse +settings.webhook.headers=Entêtes  settings.webhook.payload=Payload -settings.webhook.body=Body +settings.webhook.body=Corps settings.githooks_desc=Les Hooks Git sont alimentés par Git lui même. Les Hooks compatibles sont modifiables dans la liste ci-dessous pour effectuer des opérations personnalisées. settings.githook_edit_desc=Si un Hook est inactif, un exemple de contenu vous sera proposé. Un contenu laissé vide signifie un Hook inactif. settings.githook_name=Nom du Hook @@ -559,17 +578,17 @@ settings.add_webhook_desc=Nous vous enverrons une demande POST à l settings.payload_url=URL des Données Utiles settings.content_type=Type de contenu settings.secret=Confidentiel -settings.slack_username=Username -settings.slack_icon_url=Icon URL -settings.slack_color=Color +settings.slack_username=Nom d'utilisateur +settings.slack_icon_url=URL de l'icône +settings.slack_color=Couleur settings.event_desc=Quel évènement ce Webhook doit-il déclencher ? settings.event_push_only=Uniquement les push (soumissions). -settings.event_send_everything=I need everything. -settings.event_choose=Let me choose what I need. -settings.event_create=Create -settings.event_create_desc=Branch, or tag created +settings.event_send_everything=J'ai besoin de tout. +settings.event_choose=Permettez-moi de choisir ce dont j'ai besoin. +settings.event_create=Créer +settings.event_create_desc=Branch, ou Tag créé settings.event_push=Push -settings.event_push_desc=Git push to a repository +settings.event_push_desc=Git push vers un dépôt settings.active=Actif settings.active_helper=Les détails seront délivrés lorsque ce Hook sera déclenché. settings.add_hook_success=Nouveau Webhook ajouté. @@ -578,7 +597,7 @@ settings.update_hook_success=Webhook mis à jour. settings.delete_webhook=Supprimer le Webhook settings.recent_deliveries=Livraisons récentes settings.hook_type=Type de Hook -settings.add_slack_hook_desc=Ajouter Slack intégration dans votre référentiel. +settings.add_slack_hook_desc=Intégrer Slack à votre dépôt. settings.slack_token=Jeton settings.slack_domain=Domaine settings.slack_channel=Canal @@ -630,7 +649,6 @@ release.tag_name_already_exist=Une publication avec ce nom de tag a déjà exist [org] org_name_holder=Nom d'organisation org_name_helper=Idéalement, un nom d'organisation devrait être court et mémorable. -org_email_helper=Le courriel de l'organisation recevra toutes les notifications et confirmations. create_org=Créer une organisation repo_updated=Mis à jour people=Contacts @@ -655,9 +673,9 @@ settings.full_name=Non Complet settings.website=Site Web settings.location=Localisation settings.update_settings=Valider -settings.change_orgname=Organisation renommée -settings.change_orgname_desc=L'Organisation a été renommée. Cela affecte tous les liens relatifs à cette organisation. Continuer ? settings.update_setting_success=Paramètres d'organisation modifiés avec succès. +settings.change_orgname_prompt=Cette modification affectera comment des liens se rapportent à l'organisation. +settings.update_avatar_success=Les paramètres de l'avatar de l'organisation a été mis à jour avec succès. settings.delete=Supprimer l'organisation settings.delete_account=Supprimer cette organisation settings.delete_prompt=Cela supprimera cette organisation définitivement. Cette opération est IRRÉVERSIBLE ! @@ -700,9 +718,9 @@ teams.read_permission_desc=Cette équipe permet l'accès en lectureécriture : les membres peuvent participer à ses Référentiels. teams.admin_permission_desc=Cette équipe permet l'accès en administrateur : les membres peuvent voir, participer et ajouter des collaborateurs à ses Référentiels. teams.repositories=Référentiels de l'Équipe -teams.add_team_repository=Ajouter un Référentiel à l'Équipe +teams.add_team_repository=Ajouter un Dépôt à l'Équipe teams.remove_repo=Supprimer -teams.add_nonexistent_repo=Référentiel inexistant, veuillez d'abord le créer. +teams.add_nonexistent_repo=Dépôt inexistant, veuillez d'abord le créer. [admin] dashboard=Tableau de bord @@ -713,8 +731,9 @@ authentication=Authentifications config=Configuration notices=Notes Systèmes monitor=Supervision -prev=Préc. -next=Suiv. +first_page=Première +last_page=Dernière +total=Total : %d dashboard.statistic=Statistiques dashboard.operations=Opérations @@ -773,10 +792,13 @@ users.activated=Activés users.admin=Administrateur users.repos=Dépôts users.created=Créés +users.send_register_notify=Envoyer une Notification d'enregistrement à l'utilisateur +users.new_success=Nouveau compte '%s' a été créé avec succès. users.edit=Éditer -users.auth_source=Source d'Autorisation +users.auth_source=Sources d'authentification users.local=Locales -users.auth_login_name=Autorisation de connexion +users.auth_login_name=Nom d'utilisateur d'authentification +users.password_helper=Laissez-le vide pour ne pas changer. users.update_profile_success=Profil mis à jour avec succès. users.edit_account=Modifier le Compte users.is_activated=Ce compte est activé @@ -786,13 +808,14 @@ users.update_profile=Mettre le profil à jour users.delete_account=Supprimer ce Compte users.still_own_repo=Ce compte possède toujours des dépôts. Vous devez d'abord les supprimer ou les transférer. users.still_has_org=Ce compte a toujours membres de l'organisation, vous avez à gauche ou supprimez tout d'abord. +users.deletion_success=Le compte a été supprimé avec succès ! orgs.org_manage_panel=Gestion des Organisations orgs.name=Nom orgs.teams=Équipes orgs.members=Membres -repos.repo_manage_panel=Gestion des Référentiels +repos.repo_manage_panel=Gestion des Dépôts repos.owner=Propriétaire repos.name=Nom repos.private=Privé @@ -800,41 +823,47 @@ repos.watches=Suivi par repos.stars=Votes repos.issues=Problèmes -auths.auth_manage_panel=Gestion des Autorisations -auths.new=Ajouter une Nouvelle Source d'Autorisation +auths.auth_manage_panel=Panel d'administration des authentifications +auths.new=Ajouter une nouvelle source d'authentification auths.name=Nom auths.type=Type auths.enabled=Activé auths.updated=Mis à jour -auths.auth_type=Type d'Autorisation -auths.auth_name=Nom d'Autorisation +auths.auth_type=Type d'authentification +auths.auth_name=Nom de l'authentification auths.domain=Domaine auths.host=Hôte auths.port=Port auths.bind_dn=Bind DN -auths.bind_password=Bind Password -auths.user_base=User Search Base +auths.bind_password=Bind mot de passe +auths.bind_password_helper=AVERTISSEMENT : Ce mot de passe est stocké en texte clair. N'utilisez pas le mot de passe d'un compte doté de privilèges élevé. +auths.user_base=Utilisateur Search Base +auths.user_dn=Utilisateur DN auths.attribute_name=Attribut du prénom auths.attribute_surname=Attribut du nom de famille auths.attribute_mail=Attribut de l'e-mail -auths.filter=User Filter -auths.admin_filter=Admin Filter +auths.filter=Utilisateur Filter +auths.admin_filter=Administrateur Filter auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=Type d'Autorisation SMTP +auths.smtp_auth=Type d'authentification SMTP auths.smtphost=Hôte SMTP auths.smtpport=Port SMTP +auths.allowed_domains=Domaines autorisés +auths.allowed_domains_helper=Laissez-le vide pour ne pas restreindre de domaines. Plusieurs domaines doivent être séparés par une virgule «, ». auths.enable_tls=Activer le Chiffrement TLS -auths.skip_tls_verify=Skip TLS Verify +auths.skip_tls_verify=Ne pas vérifier TLS auths.pam_service_name=Nom du Service PAM auths.enable_auto_register=Connexion Automatique auths.tips=Conseils -auths.edit=Modifier les Paramètres d'Autorisation +auths.edit=Modifier les paramètres d'authentification auths.activated=Authentification activée -auths.update_success=Paramètres d'autorisation mis à jour avec succès. -auths.update=Mettre les Paramètres d'Autorisation à jour -auths.delete=Supprimer cette Autorisation -auths.delete_auth_title=Suppression d'Autorisation -auths.delete_auth_desc=Cette autorisation sera supprimée. Continuer ? +auths.new_success=Nouvelle authentification «%s » a été ajoutée avec succès. +auths.update_success=Les paramètre d'authentification a été mis à jour avec succès. +auths.update=Mettre à jour les paramètres d'authentifications +auths.delete=Supprimer cette authentification +auths.delete_auth_title=Suppression de l'authentification +auths.delete_auth_desc=Cette autorisation sera supprimée. Continuer? +auths.deletion_success=L'authentification a été supprimée avec succès ! config.server_config=Configuration du Serveur config.app_name=Nom de l'Application @@ -845,7 +874,7 @@ config.offline_mode=Mode hors-ligne config.disable_router_log=Désactiver la Journalisation du Routeur config.run_user=Entrer un Utilisateur config.run_mode=Mode d'Éxécution -config.repo_root_path=Emplacement Racine du Référentiel +config.repo_root_path=Emplacement des Dépôts config.static_file_root_path=Emplacement Racine du Fichier Statique config.log_file_root_path=Emplacement Racine du Fichier Journal config.script_type=Type de Script @@ -858,14 +887,16 @@ config.db_user=Utilisateur config.db_ssl_mode=Mode SSL config.db_ssl_mode_helper=("postgres" uniquement) config.db_path=Emplacement -config.db_path_helper=("sqlite3" uniquement) +config.db_path_helper=(pour « sqlite3 » et « TIDB ») config.service_config=Configuration du Service config.register_email_confirm=Nécessite une confirmation par courriel config.disable_register=Désactiver l'Enregistrement config.show_registration_button=Afficher le bouton d'enregistrement config.require_sign_in_view=Connexion Obligatoire pour Visualiser -config.mail_notify=Mailer les Notifications config.enable_cache_avatar=Activer le Cache d'Avatar +config.mail_notify=Mailer les Notifications +config.disable_key_size_check=Désactiver la vérification de la taille de clé minimale +config.enable_captcha=Activez le Captcha config.active_code_lives=Limites de Code Actif config.reset_password_code_lives=Réinitialiser le Mot De Passe des Limites de Code config.webhook_config=Configuration Webhook @@ -912,20 +943,20 @@ monitor.execute_time=Heure d'Éxécution notices.system_notice_list=Notes Systèmes notices.type=Type -notices.type_1=Référentiel +notices.type_1=Dépôt notices.desc=Description notices.op=Opération notices.delete_success=Note système supprimée avec succès. [action] -create_repo=a crée le Référentiel %s -rename_repo=renamed repository from %[1]s to %[3]s +create_repo=a crée le dépôt %s +rename_repo=rebaptisé le dépôt de %[1]s à %[3]s commit_repo=a soumis à %[2]s chez %[3]s create_issue=`a ouvert un problème %s#%[2]s` -create_pull_request=`created pull request %s#%[2]s` +create_pull_request=`pull request créée le %s#%[2]s` comment_issue=`a commenté le problème %s#%[2]s` -merge_pull_request=`merged pull request %s#%[2]s` -transfer_repo=a transféré le Référentiel %s à %s +merge_pull_request=`pull request fusionné le %s#%[2]s` +transfer_repo=a transféré le dépôt %s à %s push_tag=a tagé %[2]s à %[3]s compare_2_commits=Comparer ces 2 commissions diff --git a/conf/locale/locale_it-IT.ini b/conf/locale/locale_it-IT.ini index 1cfd962b0..c65f8ceb8 100755 --- a/conf/locale/locale_it-IT.ini +++ b/conf/locale/locale_it-IT.ini @@ -5,7 +5,6 @@ dashboard=Pannello di controllo explore=Esplora help=Aiuto sign_in=Accedi -social_sign_in=Login Sociale: Passo 2 associare l'account sign_out=Esci sign_up=Registrati register=Registrati @@ -14,8 +13,8 @@ version=Versione page=Pagina template=Template language=Lingua -create_new=Create new... -user_profile_and_more=User profile and more +create_new=Crea... +user_profile_and_more=Profilo utente e altro signed_in_as=Signed in as username=Nome utente @@ -35,8 +34,8 @@ manage_org=Gestisci le organizzazioni admin_panel=Pannello di amministrazione account_settings=Impostazioni dell'account settings=Impostazioni -your_profile=Your Profile -your_settings=Your Settings +your_profile=Profilo +your_settings=Impostazioni news_feed=Notizie pull_requests=Pull Requests @@ -54,7 +53,8 @@ code=Codice [install] install=Installazione title=Passi d'installazione per il primo avvio -requite_db_desc=Gogs richiede MySql, PostgresSQL o SQLite. +docker_helper=Se stai utilizzando Gogs su Docker, per favore leggi le Linee guida con attenzione prima di cambiare qualcosa su questa pagina! +requite_db_desc=Gogs necessita MySQL, PostgreSQL, SQLite3 o TiDB. db_title=Impostazioni Database db_type=Tipo di database host=Host @@ -64,8 +64,11 @@ db_name=Nome del database db_helper=Utilizza il motore INNODB con codifica utf8_general_ci per MySQL. ssl_mode=Modalità SSL path=Percorso -sqlite_helper=Percorso per database SQLite3. -err_empty_sqlite_path=Il percorso del database SQLite3 non può essere vuoto. +sqlite_helper=The file path of SQLite3 or TiDB database. +err_empty_db_path=SQLite3 or TiDB database path cannot be empty. +err_invalid_tidb_name=TiDB database name does not allow characters "." and "-". +no_admin_and_disable_registration=You cannot disable registration without creating an admin account. +err_empty_admin_password=Admin password cannot be empty. general_title=Impostazioni di Base dell'Applicazione app_name=Nome Applicazione @@ -76,7 +79,7 @@ run_user=Esegui con l'utente run_user_helper=L'utente deve avere accesso al percorso root del repository e avviare Gogs. domain=Dominio domain_helper=Questo modifica lo SSH clone URLs. -ssh_port=SSH Port +ssh_port=Porta SSH ssh_port_helper=Port number which your SSH server is using, leave it empty to disable SSH feature. http_port=Porta HTTP http_port_helper=Porta di ascolto dell'applicazione. @@ -99,6 +102,8 @@ disable_gravatar=Disable Gravatar Service disable_gravatar_popup=Disable Gravatar and custom sources, all avatars are uploaded by users or default. disable_registration=Disabilita Registrazione Manuale disable_registration_popup=Disabilita la registrazione manuale degli utenti, solo gli amministratori possono creare account. +enable_captcha=Abilita Captcha +enable_captcha_popup=Require validate captcha for user self-registration. require_sign_in_view=Abilita Richiesta di Accesso per Vedere le Pagine require_sign_in_view_popup=Solo gli utenti loggati possono vedere le pagine, i visitatori potranno vedere solo le pagine di accesso e registrazione. admin_setting_desc=Non devi per forza creare un account admin proprio adesso, ma comunque l'utente ID=1 otterrà l'accesso da amministratore automaticamente. @@ -127,7 +132,7 @@ my_orgs=Le mie Organizzazioni my_mirrors=I miei Mirror view_home=View %s -issues.in_your_repos=In your repositories +issues.in_your_repos=Nei tuoi repository [explore] repos=Repository @@ -143,7 +148,7 @@ forgot_password=Password dimenticata forget_password=Password dimenticata? sign_up_now=Bisogno di un account? Iscriviti ora. confirmation_mail_sent_prompt=Una nuova email di conferma è stata inviata a %s, verifica la tua casella di posta entro le prossime %d ore per completare la registrazione. -sign_in_email=Accedi al tuo indirizzo e-mail +sign_in_to_account=Accedi al tuo account active_your_account=Attiva il tuo Account resent_limit_prompt=Siamo spiacenti, si stanno inviando e-mail di attivazione troppo spesso. Si prega di attendere 3 minuti. has_unconfirmed_mail=Ciao %s, hai un indirizzo di posta elettronica non confermato (%s). Se non hai ricevuto una e-mail di conferma o vuoi riceverla nuovamente, fare clic sul pulsante qui sotto. @@ -155,6 +160,12 @@ invalid_code=Siamo spiacenti, il codice di conferma è scaduto o non valido. reset_password_helper=Clicca qui per reimpostare la password password_too_short=La lunghezza della password non può essere meno 6 caratteri. +[mail] +activate_account=Please activate your account +activate_email=Verifica il tuo indirizzo e-mail +reset_password=Reimposta la tua password +register_success=Registrazione completata con successo, Benvenuto + [modal] yes=Sì no=No @@ -241,7 +252,7 @@ location=Posizione update_profile=Aggiorna Profilo update_profile_success=Il tuo profilo è stato aggiornato con successo. change_username=Username Cambiato -change_username_desc=Hai cambiato il tuo username. Questo influenzerà il modo in cui i link si relazionano al tuo account. Vuoi proseguire? +change_username_prompt=This change will affect the way how links relate to your account. continue=Continua cancel=Annulla @@ -256,6 +267,7 @@ update_avatar_success=Le tue impostazioni avatar sono state aggiornate con succe change_password=Cambia Password old_password=Password attuale new_password=Nuova Password +retype_new_password=Re-inserisci la password password_incorrect=La Password attuale non è corretta. change_password_success=La tua password è stata cambiata con successo. Ora puoi accedere usando la nuova password. @@ -265,9 +277,12 @@ email_desc=Il tuo indirizzo e-mail primario sarà usato per le notifiche e altre primary=Primario primary_email=Imposta come primario delete_email=Elimina +email_deletion=E-mail Deletion +email_deletion_desc=Delete this e-mail address will remove related information from your account. Do you want to continue? +email_deletion_success=E-mail has been deleted successfully! add_new_email=Aggiungi un nuovo indirizzo E-mail add_email=Aggiungi E-mail -add_email_confirmation_sent=Una nuova email di conferma è stata inviata a %s, per favore controlla la tua posta in arrivo nelle prossime %d ore per completare il processo di registrazione. +add_email_confirmation_sent=Una nuova email di conferma è stata inviata a '%s', per favore controlla la tua posta in arrivo nelle prossime %d ore per completare il processo di registrazione. add_email_success=Il tuo nuovo indirizzo e-mail è stato aggiunto con successo. manage_ssh_keys=Gestisci chiavi SSH @@ -287,7 +302,7 @@ ssh_key_deletion_success=SSH key has been deleted successfully! add_on=Aggiunto il last_used=Ultimo accesso il no_activity=Nessuna attività recente -key_state_desc=This key is used in last 7 days +key_state_desc=Hai utilizzato questa chiave negli ultimi 7 giorni token_state_desc=This token is used in last 7 days manage_social=Gestisci gli Account Sociali Associati @@ -325,12 +340,12 @@ fork_from=Forka da fork_visiblity_helper=Non puoi cambiare la visibilità di un repository forkato. repo_desc=Descrizione repo_lang=Lingua -repo_lang_helper=Select .gitignore files +repo_lang_helper=Seleziona file .gitignore license=Licenza license_helper=Selezionare un file di licenza readme=Readme -readme_helper=Select a readme template -auto_init=Initialize this repository selected files and template +readme_helper=Seleziona un template per il readme +auto_init=Initialize this repository with selected files and template create_repo=Crea Repository default_branch=Ramo (Branch) predefinito mirror_interval=Intervallo Mirror (in ore) @@ -349,6 +364,8 @@ migrate.invalid_local_path=Percorso locale non valido, non esiste o non è una c forked_from=forkato da fork_from_self=Non puoi forkare il tuo stesso repository! copy_link=Copia +copy_link_success=Copied! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=Copia negli appunti copied=OK copiato clone_helper=Hai bisogno di aiuto per la clonazione? Visita Aiuto! @@ -363,6 +380,8 @@ quick_guide=Guida rapida clone_this_repo=Clona questo repository create_new_repo_command=Crea nuovo repository da riga di comando push_exist_repo=Push un repo esistente dalla riga di comando +repo_is_empty=This repository is empty, please come back later! + branch=Ramo (Branch) tree=Albero (Tree) @@ -390,15 +409,15 @@ commits.older=Più vecchio commits.newer=Più recente issues.new=Nuovo Problema -issues.new.labels=Labels -issues.new.no_label=No Label -issues.new.clear_labels=Clear labels -issues.new.milestone=Milestone +issues.new.labels=Etichette +issues.new.no_label=Nessuna etichetta +issues.new.clear_labels=Pulisci le etichette +issues.new.milestone=Traguardo issues.new.no_milestone=No Milestone issues.new.clear_milestone=Clear milestone issues.new.open_milestone=Open Milestones issues.new.closed_milestone=Closed Milestones -issues.new.assignee=Assignee +issues.new.assignee=Assegnatario issues.new.clear_assignee=Clear assignee issues.new.no_assignee=No assignee issues.create=Create Issue @@ -438,13 +457,13 @@ issues.close_issue=Close issues.close_comment_issue=Close and comment issues.reopen_issue=Reopen issues.reopen_comment_issue=Reopen and comment -issues.create_comment=Comment +issues.create_comment=Commento issues.closed_at=`closed %[2]s` issues.reopened_at=`reopened %[2]s` issues.commit_ref_at=`referenced this issue from a commit %[2]s` issues.poster=Poster -issues.admin=Admin -issues.owner=Owner +issues.admin=Amministratore +issues.owner=Proprietario issues.sign_up_for_free=Sign up for free issues.sign_in_require_desc=to join this conversation. Already have an account? Sign in to comment issues.edit=Edit @@ -469,7 +488,7 @@ pulls.filter_branch=Filter branch pulls.no_results=No results found. pulls.nothing_to_compare=There is nothing to compare because base and head branches are even. pulls.has_pull_request=`There is already a pull request between these two targets: %[2]s#%[3]d` -pulls.create=Create Pull Request +pulls.create=Crea Pull Request pulls.title_desc=wants to merge %[1]d commits from %[2]s into %[3]s pulls.merged_title_desc=merged %[1]d commits from %[2]s into %[3]s %[4]s pulls.tab_conversation=Conversation @@ -482,7 +501,7 @@ pulls.data_broken=Data of this pull request has been broken due to deletion of f pulls.can_auto_merge_desc=You can perform auto-merge operation on this pull request. pulls.cannot_auto_merge_desc=You can't perform auto-merge operation because there are conflicts between commits. pulls.cannot_auto_merge_helper=Please use command line tool to solve it. -pulls.merge_pull_request=Merge Pull Request +pulls.merge_pull_request=Unisci Pull Request milestones.new=New Milestone milestones.open_tab=%d Open @@ -630,7 +649,6 @@ release.tag_name_already_exist=Un rilascio con questo tag esiste già. [org] org_name_holder=Nome dell'Organizzazione org_name_helper=Le migliori organizzazioni hanno nomi brevi e memorabili. -org_email_helper=L'Email dell'organizzazione riceve tutte le notifiche e le conferme. create_org=Crea Organizzazione repo_updated=Aggiornato people=Utenti @@ -655,9 +673,9 @@ settings.full_name=Nome Completo settings.website=Sito Web settings.location=Residenza settings.update_settings=Aggiorna Impostazioni -settings.change_orgname=Il nome dell'organizzazione è cambiato -settings.change_orgname_desc=Il nome dell'organizzazione name è cambiato. Questo influenzerà come collegamenti si riferiscono all'organizzazione. Si desidera continuare? settings.update_setting_success=Impostazioni dell'organizzazione aggiornate con successo. +settings.change_orgname_prompt=This change will affect how links relate to the organization. +settings.update_avatar_success=Organization avatar setting has been updated successfully. settings.delete=Elimina organizzazione settings.delete_account=Elimina questa organizzazione settings.delete_prompt=L'organizzazione verrà rimossa definitivamente, e questa operazione NON PUÒ essere annullata! @@ -713,8 +731,9 @@ authentication=Autenticazioni config=Configurazione notices=Avvisi di sistema monitor=Monitoraggio -prev=Prec. -next=Succ. +first_page=First +last_page=Last +total=Total: %d dashboard.statistic=Statistiche dashboard.operations=Operazioni @@ -773,10 +792,13 @@ users.activated=Attivato users.admin=Amministratore users.repos=Repo users.created=Creato +users.send_register_notify=Send Registration Notification To User +users.new_success=New account '%s' has been created successfully. users.edit=Modifica -users.auth_source=Origine Autorizzazione +users.auth_source=Authentication Source users.local=Locale -users.auth_login_name=Nome di Accesso dell'Autorizzazione +users.auth_login_name=Authentication Login Name +users.password_helper=Leave it empty to remain unchanged. users.update_profile_success=Profilo dell'account aggiornato con successo. users.edit_account=Modifica Account users.is_activated=Questo account è attivato @@ -786,6 +808,7 @@ users.update_profile=Aggiornare Profilo Account users.delete_account=Elimina Questo Account users.still_own_repo=Questo account possiede ancora almeno un repository, devi prima cancellarli o trasferirli. users.still_has_org=Questo account appartiene ancora ad almeno un'organizzazione, è necessario prima abbandonarle o eliminale. +users.deletion_success=Account has been deleted successfully! orgs.org_manage_panel=Pannello Gestione Organizzazioni orgs.name=Nome @@ -800,41 +823,47 @@ repos.watches=Segue repos.stars=Voti repos.issues=Problemi -auths.auth_manage_panel=Pannello Gestione Autorizzazioni -auths.new=Aggiungi Nuova Origine Autorizzazione +auths.auth_manage_panel=Authentication Manage Panel +auths.new=Add New Source auths.name=Nome auths.type=Tipo auths.enabled=Attivo auths.updated=Aggiornato -auths.auth_type=Tipo di Autorizzazione -auths.auth_name=Nome Autorizzazione +auths.auth_type=Authentication Type +auths.auth_name=Authentication Name auths.domain=Dominio auths.host=Host auths.port=Porta auths.bind_dn=Bind DN auths.bind_password=Bind Password +auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account. auths.user_base=User Search Base +auths.user_dn=User DN auths.attribute_name=Attributo Nome auths.attribute_surname=Attributo Cognome auths.attribute_mail=Attributo Email auths.filter=User Filter auths.admin_filter=Admin Filter auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=Tipo di Autorizzazione SMTP +auths.smtp_auth=SMTP Authentication Type auths.smtphost=Host SMTP auths.smtpport=Porta SMTP +auths.allowed_domains=Allowed Domains +auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','. auths.enable_tls=Abilitare Crittografia TLS auths.skip_tls_verify=Skip TLS Verify auths.pam_service_name=Nome del Servizio PAM auths.enable_auto_register=Abilitare Registrazione Automatica auths.tips=Consigli -auths.edit=Modificare Impostazioni Autorizzazioni +auths.edit=Edit Authentication Setting auths.activated=Questa Autenticazione è stata attivata -auths.update_success=Impostazione dell'Autorizzazione aggiornate con successo. -auths.update=Aggiorna Impostazioni Autorizzazioni -auths.delete=Elimina Questa Autorizzazione -auths.delete_auth_title=Eliminazione Autorizzazione -auths.delete_auth_desc=Questa autorizzazione sarà cancellata, vuoi continuare? +auths.new_success=New authentication '%s' has been added successfully. +auths.update_success=Authentication setting has been updated successfully. +auths.update=Update Authentication Setting +auths.delete=Delete This Authentication +auths.delete_auth_title=Authentication Deletion +auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue? +auths.deletion_success=Authentication has been deleted successfully! config.server_config=Configurazione Server config.app_name=Nome Applicazione @@ -858,14 +887,16 @@ config.db_user=Utente config.db_ssl_mode=Modalità SSL config.db_ssl_mode_helper=(solo per "postgres") config.db_path=Percorso -config.db_path_helper=(solo per "sqlite3") +config.db_path_helper=(for "sqlite3" and "tidb") config.service_config=Configurazione Servizio config.register_email_confirm=Richiedono Conferma dell'Email config.disable_register=Disabilita Registrazione config.show_registration_button=Mostra Pulsane Registrazione config.require_sign_in_view=Richiesto Accesso per Vedere -config.mail_notify=Email di Notifica config.enable_cache_avatar=Abilitare Cache dell'Avatar +config.mail_notify=Email di Notifica +config.disable_key_size_check=Disable Minimum Key Size Check +config.enable_captcha=Enable Captcha config.active_code_lives=Attiva Vita del Codice config.reset_password_code_lives=Reimpostare Password della Vita del Codice config.webhook_config=Configurazione Webhook @@ -922,7 +953,7 @@ create_repo=ha creato il repository %s rename_repo=renamed repository from %[1]s to %[3]s commit_repo=ha pushato nel %[2]s in %[3]s create_issue=`ha aperto il problema %s#%[2]s` -create_pull_request=`created pull request %s#%[2]s` +create_pull_request=`creata pull request %s#%[2]s` comment_issue=`ha commentato il problema %s#%[2]s` merge_pull_request=`merged pull request %s#%[2]s` transfer_repo=ha trasferito il repository %s a %s diff --git a/conf/locale/locale_ja-JP.ini b/conf/locale/locale_ja-JP.ini index c3f0c2a2a..1d074d1d9 100755 --- a/conf/locale/locale_ja-JP.ini +++ b/conf/locale/locale_ja-JP.ini @@ -5,7 +5,6 @@ dashboard=ダッシュボード explore=エスクプローラ help=ヘルプ sign_in=サインイン -social_sign_in=SNSでサインイン: ステップ2 アカウント連携 sign_out=サインアウト sign_up=サインアップ register=登録 @@ -14,7 +13,7 @@ version=バージョン page=ページ template=テンプレート language=言語 -create_new=新規作成... +create_new=作成... user_profile_and_more=ユーザープロファイルなど signed_in_as=サインイン済み @@ -54,7 +53,8 @@ code=コード [install] install=インストール title=初回実行のインストール手順 -requite_db_desc=Gogs には、MySQL や PostgreSQL 、SQLite3 が必要です。 +docker_helper=If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page! +requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB. db_title=データベース設定 db_type=データベースの種類 host=ホスト @@ -64,8 +64,11 @@ db_name=データベース名 db_helper=Mysql INNODB エンジン utf8_general_ci の文字セットを使用してください。 ssl_mode=SSL モード path=パス -sqlite_helper=SQLite3 データベースのファイル パス -err_empty_sqlite_path=SQLite3 データベースのパスは、空にすることはできません。 +sqlite_helper=The file path of SQLite3 or TiDB database. +err_empty_db_path=SQLite3 or TiDB database path cannot be empty. +err_invalid_tidb_name=TiDB database name does not allow characters "." and "-". +no_admin_and_disable_registration=You cannot disable registration without creating an admin account. +err_empty_admin_password=Admin password cannot be empty. general_title=Gogs の全般設定 app_name=アプリケーション名 @@ -76,7 +79,7 @@ run_user=実行ユーザ run_user_helper=ユーザーはリポジトリ ルートパスへのアクセス、及びGogs を実行する権限を所有する必要があります。 domain=ドメイン domain_helper=これはSSHクローンURLに影響する。 -ssh_port=SSH Port +ssh_port=SSH ポート ssh_port_helper=Port number which your SSH server is using, leave it empty to disable SSH feature. http_port=HTTP ポート http_port_helper=アプリケーションが待ち受けするポート番号。 @@ -95,10 +98,12 @@ mail_notify=メール通知を有効にする server_service_title=サーバーとその他のサービスの設定 offline_mode=オフラインモード有効化 offline_mode_popup=プロダクション モードでCDN を無効にし、すべてのリソースファイルをローカルで提供します 。 -disable_gravatar=Disable Gravatar Service +disable_gravatar=Gravatarのサービスを無効にします disable_gravatar_popup=Disable Gravatar and custom sources, all avatars are uploaded by users or default. disable_registration=自己登録を無効にする disable_registration_popup=自己登録を無効にし、管理者のみがアカウント作成できる +enable_captcha=Captchaを有効にする +enable_captcha_popup=Require validate captcha for user self-registration. require_sign_in_view=サインインしたユーザのみページ閲覧を許可 require_sign_in_view_popup=サインインしたユーザのみがページを閲覧できます。ビジターはサインインもしくはサインアップページのみ見られます。 admin_setting_desc=今管理者アカウントを作成する必要はありません。ID = 1のユーザ は自動的に管理者の権限を獲得します。 @@ -125,9 +130,9 @@ my_repos=私のリポジトリ collaborative_repos=共同リポジトリ my_orgs=私の組織 my_mirrors=私のミラー -view_home=View %s +view_home=ビュー %s -issues.in_your_repos=In your repositories +issues.in_your_repos=あなたのリポジトリ [explore] repos=リポジトリ @@ -143,7 +148,7 @@ forgot_password=パスワードを忘れた forget_password=パスワードを忘れた? sign_up_now=アカウントが必要ですか?今すぐサインアップ confirmation_mail_sent_prompt=新しい確認メールを %s に送りました。登録を完了させるために、%d時間以内にあなたのメールボックスを確認してください。 -sign_in_email=E-mailでサイイン +sign_in_to_account=Sign in to your account active_your_account=アカウントをアクティブ resent_limit_prompt=申し訳ありませんが、アクティベーションメールは頻繁に送信しています。3 分お待ちください。 has_unconfirmed_mail=こんにちは %s さん、あなたの電子メール アドレス (%s) は未確認です。もし確認メールをまだ確認できていないか、改めて再送信する場合は、下のボタンをクリックしてください。 @@ -155,6 +160,12 @@ invalid_code=申し訳ありませんが、確認用コードが期限切れま reset_password_helper=パスワードをリセットするにはここをクリック password_too_short=6文字未満のパスワードは設定できません。 +[mail] +activate_account=Please activate your account +activate_email=Verify your e-mail address +reset_password=Reset your password +register_success=Register success, Welcome + [modal] yes=はい no=いいえ @@ -241,7 +252,7 @@ location=ロケーション update_profile=プロファイル更新 update_profile_success=あなたのプロフィールが更新されました。 change_username=ユーザー名が変更されました -change_username_desc=ユーザー名が変更されている、継続したいですか?これはあなたのアカウントに関連するすべてのリンクに影響を与える。 +change_username_prompt=This change will affect the way how links relate to your account. continue=続行 cancel=キャンセル @@ -256,6 +267,7 @@ update_avatar_success=あなたのアバターの設定が更新されました change_password=パスワードを変更 old_password=現在のパスワード new_password=新しいパスワード +retype_new_password=Retype New Password password_incorrect=現在のパスワードが正しくありません。 change_password_success=パスワードが正常に変更されました。今すぐ新しいパスワード経由でサインインすることができます。 @@ -265,9 +277,12 @@ email_desc=あなたのプライマリメールアドレスは、通知やその primary=プライマリー primary_email=プライマリに設定 delete_email=削除 +email_deletion=E-mail Deletion +email_deletion_desc=Delete this e-mail address will remove related information from your account. Do you want to continue? +email_deletion_success=E-mail has been deleted successfully! add_new_email=新しいe-mailアドレスを追加 add_email=電子メールを追加します。 -add_email_confirmation_sent=%s に新しい確認メールを送信しました、次の %d 時間以内に受信トレイを確認し、確認プロセスを完了してください。 +add_email_confirmation_sent='%s' に新しい確認メールを送信しました、次の %d 時間以内に受信トレイを確認し、確認プロセスを完了してください。 add_email_success=新しいe-mail アドレスが追加されました。 manage_ssh_keys=SSH キーを管理 @@ -281,14 +296,14 @@ key_name=キーの名前 key_content=コンテンツ add_key_success=新しいSSHキー '%s' が正常に追加されました! delete_key=削除 -ssh_key_deletion=SSH Key Deletion -ssh_key_deletion_desc=Delete this SSH key will remove all related accesses for your account. Do you want to continue? -ssh_key_deletion_success=SSH key has been deleted successfully! +ssh_key_deletion=SSH キーの削除 +ssh_key_deletion_desc=このSSHキーを削除すると、あなたのアカウントに関連するすべてのアクセスが削除されます。続行しますか? +ssh_key_deletion_success=SSH キーは正常に削除されました! add_on=追加された last_used=最終使用日 no_activity=最近の活動なし key_state_desc=この鍵は7日間以内に使われています。 -token_state_desc=This token is used in last 7 days +token_state_desc=この鍵は7日間以内に使われています。 manage_social=関連付けられているSNSアカウントを管理 social_desc=これは関連付けられたソーシャルアカウントのリストです。あなたが認識していない結び付けを削除します。 @@ -297,15 +312,15 @@ unbind_success=SNSアカウントがバインドされていない。 manage_access_token=個人のアクセス トークンを管理 generate_new_token=新しいトークンを生成 -tokens_desc=Tokens you have generated that can be used to access the Gogs APIs. +tokens_desc=生成したトークンを利用して Gogs の API にアクセスすることができます。 new_token_desc=今のところ、全てのトークンはあなたのアカウントにフルアクセスできます。 token_name=トークン名 generate_token=トークンを生成 generate_token_succees=新しいアクセス トークンは正常に生成されました !今すぐあなたの新しいアクセス トークンをコピーしておいてください。二度と見ることはできませんので確認してください! delete_token=削除 -access_token_deletion=Personal Access Token Deletion -access_token_deletion_desc=Delete this personal access token will remove all related accesses of application. Do you want to continue? -delete_token_success=Personal access token has been removed successfully! Don't forget to update your application as well. +access_token_deletion=パーソナルアクセストークンの削除 +access_token_deletion_desc=パーソナルアクセストークンを削除すると、関連するアプリケーションのすべてのアクセスが削除されます。続行しますか? +delete_token_success=パーソナルアクセストークンは正常に削除されました!同時にあなたのアプリケーションを更新することを忘れないでください。 delete_account=アカウントを削除 delete_prompt=この操作はあなたのアカウントを完全に削除し、復旧できない ! @@ -319,18 +334,18 @@ repo_name=リポジトリ名 repo_name_helper=偉大なリポジトリ名は短い。思い出に残り、そして一意だ。 visibility=ビジビリティ visiblity_helper=このリポジトリはプライベートです。 -visiblity_fork_helper=(Change of this value will affect all forks) +visiblity_fork_helper=(この値の変更はすべてのフォークに適用されます) fork_repo=フォークのリポジトリ fork_from=フォーク元 fork_visiblity_helper=フォークされたリポジトリは可視状態を変更できません repo_desc=説明 repo_lang=言語 -repo_lang_helper=Select .gitignore files +repo_lang_helper=.gitignoreファイルを選択 license=ライセンス license_helper=ライセンス ファイルを選択 readme=Readme readme_helper=Select a readme template -auto_init=Initialize this repository selected files and template +auto_init=Initialize this repository with selected files and template create_repo=リポジトリを作成 default_branch=デフォルトのブランチ mirror_interval=ミラー 間隔(時) @@ -349,6 +364,8 @@ migrate.invalid_local_path=ローカルパスが無効です。存在しない forked_from=フォーク元 fork_from_self=すでにあなたの所有しているリポジトリはフォークできません copy_link=コピー +copy_link_success=Copied! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=クリップボードにコピー copied=コピー成功 clone_helper=クローニングのヘルプが必要ですか? ヘルプ を参照してください! @@ -363,6 +380,8 @@ quick_guide=クイック ガイド clone_this_repo=このリポジトリのクローンを作成 create_new_repo_command=コマンドラインで新しいリポジトリを作成します。 push_exist_repo=コマンド ・ ラインから既存のリポジトリをプッシュ +repo_is_empty=This repository is empty, please come back later! + branch=ブランチ tree=ツリー @@ -370,7 +389,7 @@ branch_and_tags=ブランチ& タグ branches=ブランチ tags=タグ issues=課題 -pulls=Pull Requests +pulls=プルリクエスト labels=ラベル milestones=マイルストーン commits=コミット @@ -418,9 +437,9 @@ issues.filter_type.all_issues=すべての問題 issues.filter_type.assigned_to_you=あなたに割り当てられました。 issues.filter_type.created_by_you=あなたが作成しました。 issues.filter_type.mentioning_you=あなたに伝える -issues.filter_sort=Sort -issues.filter_sort.latest=Newest -issues.filter_sort.oldest=Oldest +issues.filter_sort=並べ替え +issues.filter_sort.latest=最新 +issues.filter_sort.oldest=最も古い issues.filter_sort.recentupdate=Recently updated issues.filter_sort.leastupdate=Least recently updated issues.filter_sort.mostcomment=Most commented @@ -630,7 +649,6 @@ release.tag_name_already_exist=このタグ名には既にリリースが存在 [org] org_name_holder=組織名 org_name_helper=偉大な組織の名は短く覚えやすいです。 -org_email_helper=組織の電子メールはすべての通知や確認を受け取ります。 create_org=組織を作成 repo_updated=更新した people=人々 @@ -655,9 +673,9 @@ settings.full_name=フルネーム settings.website=WEBサイト settings.location=ロケーション settings.update_settings=設定の更新 -settings.change_orgname=組織名が変更されました -settings.change_orgname_desc=組織名が変更されています、継続しますか?これはすべての関連リンクに影響を与えます。 settings.update_setting_success=組織の設定が更新されました。 +settings.change_orgname_prompt=This change will affect how links relate to the organization. +settings.update_avatar_success=Organization avatar setting has been updated successfully. settings.delete=組織を削除 settings.delete_account=この組織を削除 settings.delete_prompt=操作はこの組織を完全に削除し、復旧できない! @@ -713,8 +731,9 @@ authentication=認証 config=コンフィギュレーション notices=システム通知 monitor=モニタリング -prev=前へ -next=次へ +first_page=First +last_page=Last +total=Total: %d dashboard.statistic=統計 dashboard.operations=操作 @@ -773,10 +792,13 @@ users.activated=アクティブ化 users.admin=アドミン users.repos=リポジトリ users.created=作成されました +users.send_register_notify=Send Registration Notification To User +users.new_success=New account '%s' has been created successfully. users.edit=編集 -users.auth_source=認証元 +users.auth_source=Authentication Source users.local=ローカル -users.auth_login_name=認証ログイン名 +users.auth_login_name=Authentication Login Name +users.password_helper=Leave it empty to remain unchanged. users.update_profile_success=アカウントのプロファイルが更新されました。 users.edit_account=アカウントの編集 users.is_activated=アカウントがアクティブされました @@ -786,6 +808,7 @@ users.update_profile=アカウント ・ プロファイルを更新 users.delete_account=このアカウントを削除 users.still_own_repo=アカウント所有のリポジトリがあり、リポジトリの削除または所有者の移譲が必要です。 users.still_has_org=アカウントはまだ組織のメンバーであり、組織から退出するか削除する必要があります。 +users.deletion_success=Account has been deleted successfully! orgs.org_manage_panel=組織の管理パネル orgs.name=名前 @@ -800,41 +823,47 @@ repos.watches=Watches repos.stars=Stars repos.issues=課題 -auths.auth_manage_panel=承認の管理パネル -auths.new=新しい認証元を追加 +auths.auth_manage_panel=Authentication Manage Panel +auths.new=Add New Source auths.name=名前 auths.type=タイプ auths.enabled=Enabled auths.updated=Updated -auths.auth_type=認証の種類 -auths.auth_name=認証名 +auths.auth_type=Authentication Type +auths.auth_name=Authentication Name auths.domain=ドメイン auths.host=ホスト auths.port=ポート auths.bind_dn=Bind DN auths.bind_password=Bind Password +auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account. auths.user_base=User Search Base +auths.user_dn=User DN auths.attribute_name=名前属性 auths.attribute_surname=名字属性 auths.attribute_mail=Eメール属性 auths.filter=User Filter auths.admin_filter=Admin Filter auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=SMTP 認証の種類 +auths.smtp_auth=SMTP Authentication Type auths.smtphost=SMTP ホスト auths.smtpport=SMTP ポート +auths.allowed_domains=Allowed Domains +auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','. auths.enable_tls=TLS 暗号化を有効にする auths.skip_tls_verify=Skip TLS Verify auths.pam_service_name=PAMサービス名 auths.enable_auto_register=自動登録を有効にする auths.tips=ヒント -auths.edit=認証設定を編集 +auths.edit=Edit Authentication Setting auths.activated=認証がアクティブされました -auths.update_success=認証の設定が正常に更新されました。 -auths.update=認証設定の更新 -auths.delete=この権限を削除 -auths.delete_auth_title=認証の削除 -auths.delete_auth_desc=認証を削除します、継続しますか? +auths.new_success=New authentication '%s' has been added successfully. +auths.update_success=Authentication setting has been updated successfully. +auths.update=Update Authentication Setting +auths.delete=Delete This Authentication +auths.delete_auth_title=Authentication Deletion +auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue? +auths.deletion_success=Authentication has been deleted successfully! config.server_config=サーバーの構成 config.app_name=アプリケーション名 @@ -858,14 +887,16 @@ config.db_user=ユーザ config.db_ssl_mode=SSL モード config.db_ssl_mode_helper=(「postgres」のみ) config.db_path=パス -config.db_path_helper=(「sqlite3」のみ) +config.db_path_helper=(for "sqlite3" and "tidb") config.service_config=サービスの構成 config.register_email_confirm=電子メールの確認を必要 config.disable_register=登録を無効にする config.show_registration_button=登録ボタンを表示します。 config.require_sign_in_view=サインインを要求 -config.mail_notify=メール通知 config.enable_cache_avatar=アバターのキャッシュを有効にします。 +config.mail_notify=メール通知 +config.disable_key_size_check=Disable Minimum Key Size Check +config.enable_captcha=Enable Captcha config.active_code_lives=コードリンクの有効期限をアクティブ config.reset_password_code_lives=パスワードリンクの有効期限をリセット config.webhook_config=Webhook設定 diff --git a/conf/locale/locale_lv-LV.ini b/conf/locale/locale_lv-LV.ini index 81fd406f2..527767d73 100755 --- a/conf/locale/locale_lv-LV.ini +++ b/conf/locale/locale_lv-LV.ini @@ -5,7 +5,6 @@ dashboard=Infopanelis explore=Izpētīt help=Palīdzība sign_in=Pierakstīties -social_sign_in=Sociālā pieteikšanās: 2. solis piesaistīt kontu sign_out=Izrakstīties sign_up=Pieteikties register=Reģistrēties @@ -14,7 +13,7 @@ version=Versija page=Lapa template=Sagatave language=Valoda -create_new=Izveidot jaunu... +create_new=Create... user_profile_and_more=Lietotāja profilu un vairāk signed_in_as=Pierakstījies kā @@ -54,7 +53,8 @@ code=Kods [install] install=Instalācija title=Instalācijas soļi pirmo reizi palaižot -requite_db_desc=Gogs ir nepieciešama MySQL, PostgreSQL vai SQLite3 datu bāze. +docker_helper=If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page! +requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB. db_title=Datu bāzes iestatījumi db_type=Datu bāzes veids host=Resursdators @@ -64,8 +64,11 @@ db_name=Datu bāzes nosaukums db_helper=Nepieciešams izmantot MySQL INNODB dzini ar rakstzīmju kopu utf8_general_ci. ssl_mode=SSL režīms path=Ceļš -sqlite_helper=SQLite 3 datu bāzes faila atrašanās vieta. -err_empty_sqlite_path=Nav norādīts SQLite3 datu bāzes ceļš. +sqlite_helper=The file path of SQLite3 or TiDB database. +err_empty_db_path=SQLite3 or TiDB database path cannot be empty. +err_invalid_tidb_name=TiDB database name does not allow characters "." and "-". +no_admin_and_disable_registration=You cannot disable registration without creating an admin account. +err_empty_admin_password=Admin password cannot be empty. general_title=Gogs vispārīgie iestatījumi app_name=Lietotnes nosaukums @@ -99,6 +102,8 @@ disable_gravatar=Disable Gravatar Service disable_gravatar_popup=Disable Gravatar and custom sources, all avatars are uploaded by users or default. disable_registration=Atspējot lietotāju reģistrāciju disable_registration_popup=Atspējot lietotāju reģistrāciju, tikai administrators varēs izveidot jaunus lietotāju kontus. +enable_captcha=Enable Captcha +enable_captcha_popup=Require validate captcha for user self-registration. require_sign_in_view=Iespējot nepieciešamību autorizēties, lai aplūkotu lapas require_sign_in_view_popup=Tika autorizēti lietotāji var aplūkot lapas, neautorizēti lietotāji var piekļūt tikai autorizācijas un reģistrēšanās lapām. admin_setting_desc=Nav nepieciešams izveidot administratora kontu uzreiz, lietotājs ar ID=1 saņems administratora tiesības automātiski. @@ -143,7 +148,7 @@ forgot_password=Aizmirsu paroli forget_password=Aizmirsi paroli? sign_up_now=Nepieciešams konts? Reģistrējies tagad. confirmation_mail_sent_prompt=Jauns apstiprināšanas e-pasts ir nosūtīts uz %s, lūdzu, pārbaudies savu e-pasta kontu tuvāko %d stundu laikā, lai pabeigtu reģistrācijas procesu. -sign_in_email=Atvērt savu e-pasta kontu +sign_in_to_account=Sign in to your account active_your_account=Aktivizēt savu kontu resent_limit_prompt=Atvainojiet, Jūs sūtījāt aktivizācijas e-pastu pārāk bieži. Lūdzu, gaidiet 3 minūtes. has_unconfirmed_mail=Sveiki %s, Jums ir neapstiprināta e-pasta adrese (%s). Ja neesat saņēmis apstiprināšanas e-pastu vai Jums ir nepieciešams nosūtīt jaunu, lūdzu, nospiediet pogu, kas atrodas zemāk. @@ -155,6 +160,12 @@ invalid_code=Atvainojiet, Jūsu apstiprināšanas kodam ir beidzies derīguma te reset_password_helper=Nospiediet šeit, lai atjaunotu paroli password_too_short=Paroles garums nedrīkst būt mazāks par 6. +[mail] +activate_account=Please activate your account +activate_email=Verify your e-mail address +reset_password=Reset your password +register_success=Register success, Welcome + [modal] yes=Jā no=Nē @@ -241,7 +252,7 @@ location=Atrašanās vieta update_profile=Mainīt profilu update_profile_success=Jūsu profila dati ir veiksmīgi saglabāti. change_username=Lietotāja vārds mainīts -change_username_desc=Lietotājvārds tiks mainīts, vai vēlaties turpināt? Tas ietekmēs visas saites, kas attiecas uz Jūsu kontu. +change_username_prompt=This change will affect the way how links relate to your account. continue=Turpināt cancel=Atcelt @@ -256,6 +267,7 @@ update_avatar_success=Jūsu profila bilde tika veiksmīgi saglabāta. change_password=Mainīt paroli old_password=Pašreizējā parole new_password=Jauna parole +retype_new_password=Retype New Password password_incorrect=Ievadīta nepareiza pašreizējā parole. change_password_success=Parole tika veiksmīgi nomainīta. Tagad jūs varat pieraksītites, izmantojot jauno paroli. @@ -265,9 +277,12 @@ email_desc=Primārā e-pasta adrese tiks izmantota sūtot notifikācijas un cit primary=Primārā primary_email=Iestatīt kā primāro delete_email=Dzēst +email_deletion=E-mail Deletion +email_deletion_desc=Delete this e-mail address will remove related information from your account. Do you want to continue? +email_deletion_success=E-mail has been deleted successfully! add_new_email=Pievienot jaunu e-pasta adresi add_email=Pievienot e-pastu -add_email_confirmation_sent=A new confirmation e-mail has been sent to %s, please check your inbox within the next %d hours to complete the confirmation process. +add_email_confirmation_sent=A new confirmation e-mail has been sent to '%s', please check your inbox within the next %d hours to complete the confirmation process. add_email_success=Jūsu jaunā e-pasta adrese tika veiksmīgi pievienota. manage_ssh_keys=Pārvaldīt SSH atslēgas @@ -330,7 +345,7 @@ license=Licence license_helper=Izvēlieties licences failu readme=Readme readme_helper=Select a readme template -auto_init=Initialize this repository selected files and template +auto_init=Initialize this repository with selected files and template create_repo=Izveidot repozitoriju default_branch=Noklusējuma atzars mirror_interval=Spoguļošanas intervāls (stundās) @@ -349,6 +364,8 @@ migrate.invalid_local_path=Invalid local path, it does not exist or not a direct forked_from=forked from fork_from_self=You cannot fork repository you already owned! copy_link=Kopēt +copy_link_success=Copied! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=Kopēt uz starpliktuvi copied=Kopēšana notikusi veiksmīgi clone_helper=Nepieciešama palīdzība kā veikt klonēšana? Apmeklējiet Palīdzība lapu! @@ -363,6 +380,8 @@ quick_guide=Īsa pamācība clone_this_repo=Klonēt šo repozitoriju create_new_repo_command=Izveidot jaunu repozitoriju komandrindā push_exist_repo=Nosūtīt izmaiņas no komandrindas eksistējošam repozitorijam +repo_is_empty=This repository is empty, please come back later! + branch=Atzars tree=Koks @@ -418,9 +437,9 @@ issues.filter_type.all_issues=All issues issues.filter_type.assigned_to_you=Assigned to you issues.filter_type.created_by_you=Created by you issues.filter_type.mentioning_you=Mentioning you -issues.filter_sort=Sort -issues.filter_sort.latest=Newest -issues.filter_sort.oldest=Oldest +issues.filter_sort=Kārtot +issues.filter_sort.latest=Jaunākie +issues.filter_sort.oldest=Vecakie issues.filter_sort.recentupdate=Recently updated issues.filter_sort.leastupdate=Least recently updated issues.filter_sort.mostcomment=Most commented @@ -429,12 +448,12 @@ issues.opened_by=opened %[1]s by %[3]s issues.opened_by_fake=opened %[1]s by %[2]s issues.previous=Previous issues.next=Next -issues.open_title=Open -issues.closed_title=Closed -issues.num_comments=%d comments +issues.open_title=Atvērta +issues.closed_title=Slēgta +issues.num_comments=%d komentāri issues.commented_at=`commented %[2]s` issues.no_content=There is no content yet. -issues.close_issue=Close +issues.close_issue=Aizvērt issues.close_comment_issue=Close and comment issues.reopen_issue=Reopen issues.reopen_comment_issue=Reopen and comment @@ -447,9 +466,9 @@ issues.admin=Admin issues.owner=Owner issues.sign_up_for_free=Sign up for free issues.sign_in_require_desc=to join this conversation. Already have an account? Sign in to comment -issues.edit=Edit -issues.cancel=Cancel -issues.save=Save +issues.edit=Labot +issues.cancel=Atcelt +issues.save=Saglabāt issues.label_title=Label name issues.label_color=Label color issues.label_count=%d labels @@ -490,18 +509,18 @@ milestones.close_tab=%d Closed milestones.closed=Closed %s milestones.no_due_date=No due date milestones.open=Open -milestones.close=Close +milestones.close=Aizvērt milestones.new_subheader=Create milestones to organize your issues. milestones.create=Create Milestone -milestones.title=Title -milestones.desc=Description +milestones.title=Virsraksts +milestones.desc=Apraksts milestones.due_date=Due Date (optional) milestones.clear=Clear milestones.invalid_due_date_format=Due date format is invalid, must be 'year-mm-dd'. milestones.create_success=Milestone '%s' has been created successfully! milestones.edit=Edit Milestone milestones.edit_subheader=Use better description for milestones so people won't be confused. -milestones.cancel=Cancel +milestones.cancel=Atcelt milestones.modify=Modify Milestone milestones.edit_success=Changes of milestone '%s' has been saved successfully! milestones.deletion=Milestone Deletion @@ -585,8 +604,8 @@ settings.slack_channel=Kanāls settings.deploy_keys=Izvietot atslēgas settings.add_deploy_key=Add Deploy Key settings.no_deploy_keys=You haven't added any deploy key. -settings.title=Title -settings.deploy_key_content=Content +settings.title=Virsraksts +settings.deploy_key_content=Saturs settings.key_been_used=Deploy key content has been used. settings.key_name_used=Deploy key with same name has already existed. settings.add_key_success=New deploy key '%s' has been added successfully! @@ -630,7 +649,6 @@ release.tag_name_already_exist=Laidiens ar šādu taga nosaukumu jau eksistē. [org] org_name_holder=Organizācijas nosaukums org_name_helper=Labi organizāciju nosaukumi ir īsi un tādi, kurus viegli atcerēties. -org_email_helper=Uz organizācijas e-pastu tiks sūtītas visas notifikācias un apstiprinājumi. create_org=Izveidot organizāciju repo_updated=Atjaunināts people=Personas @@ -655,9 +673,9 @@ settings.full_name=Pilns vārds, uzvārds settings.website=Mājas lapa settings.location=Atrašanās vieta settings.update_settings=Mainīt iestatījumus -settings.change_orgname=Mainīts organizācijas nosaukums -settings.change_orgname_desc=Organizācijas nosaukums tiks mainīts, vai vēlaties turpinat? Tas ietekmēs saites, kas attiecas uz šo organizāciju. settings.update_setting_success=Organizācijas iestatījumi tika veiksmīgi saglabāti. +settings.change_orgname_prompt=This change will affect how links relate to the organization. +settings.update_avatar_success=Organization avatar setting has been updated successfully. settings.delete=Dzēst organizāciju settings.delete_account=Dzēst šo organizāciju settings.delete_prompt=Šī darbība pilnībā dzēsīs šo organizāciju, kā arī tā ir NEATGRIEZENISKA! @@ -713,8 +731,9 @@ authentication=Autentifikācijas config=Konfigurācija notices=Sistēmas paziņojumi monitor=Uzraudzība -prev=Iepr. -next=Tālāk +first_page=First +last_page=Last +total=Total: %d dashboard.statistic=Statistika dashboard.operations=Darbības @@ -773,10 +792,13 @@ users.activated=Aktivizēts users.admin=Administrators users.repos=Repozitoriji users.created=Izveidots +users.send_register_notify=Send Registration Notification To User +users.new_success=New account '%s' has been created successfully. users.edit=Labot -users.auth_source=Autorizācijas avots +users.auth_source=Authentication Source users.local=Iebūvētā -users.auth_login_name=Autorizāciju, pietiekšanās vārds +users.auth_login_name=Authentication Login Name +users.password_helper=Leave it empty to remain unchanged. users.update_profile_success=Konta profils tika veiksmīgi saglabāts. users.edit_account=Labot kontu users.is_activated=Konts ir aktivizēts @@ -786,6 +808,7 @@ users.update_profile=Mainīt konta profilu users.delete_account=Dzēst šo kontu users.still_own_repo=Šis konts ir vismaz viena repozitorija īpašnieks, tos sākumā ir nepieciešams izdzēst vai nomainīt to īpašnieku. users.still_has_org=Šis konts ir vismaz vienas organizācijas biedrs, sākumā nepieciešams pamest vai izdzēst šo organizāciju. +users.deletion_success=Account has been deleted successfully! orgs.org_manage_panel=Organizāciju pārvaldības panelis orgs.name=Nosaukums @@ -800,41 +823,47 @@ repos.watches=Vērošana repos.stars=Atzīmētās zvaigznītes repos.issues=Problēmas -auths.auth_manage_panel=Autorizāciju pārvaldības panelis -auths.new=Pievienot jaunu autorizācijas veidu +auths.auth_manage_panel=Authentication Manage Panel +auths.new=Add New Source auths.name=Nosaukums auths.type=Veids auths.enabled=Iespējota auths.updated=Atjaunināta -auths.auth_type=Autorizācijas veids -auths.auth_name=Autorizācijas nosaukums +auths.auth_type=Authentication Type +auths.auth_name=Authentication Name auths.domain=Domēns auths.host=Resursdators auths.port=Ports auths.bind_dn=Bind DN auths.bind_password=Bind Password +auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account. auths.user_base=User Search Base +auths.user_dn=User DN auths.attribute_name=First name attribute auths.attribute_surname=Surname attribute auths.attribute_mail=E-mail attribute auths.filter=User Filter auths.admin_filter=Admin Filter auths.ms_ad_sa=MS Ad SA -auths.smtp_auth=SMTP autorizācijas veids +auths.smtp_auth=SMTP Authentication Type auths.smtphost=SMTP resursdators auths.smtpport=SMTP ports +auths.allowed_domains=Allowed Domains +auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','. auths.enable_tls=Iespējot TLS šifrēšanu auths.skip_tls_verify=Skip TLS Verify auths.pam_service_name=PAM Service Name auths.enable_auto_register=Iespējot automātisko reģistrāciju auths.tips=Padomi -auths.edit=Labot autorizācijas iestatījumus +auths.edit=Edit Authentication Setting auths.activated=Autentifikācija ir aktivizēta -auths.update_success=Autorizācijas iestatījumi tika veiksmīgi saglabāti. -auths.update=Mainīt autorizācijas iestatījumus -auths.delete=Dzēst šo autorizāciju -auths.delete_auth_title=Autorizācijas dzēšana -auths.delete_auth_desc=Šī autorizācija tiks dzēsta, vai vēlaties turpināt? +auths.new_success=New authentication '%s' has been added successfully. +auths.update_success=Authentication setting has been updated successfully. +auths.update=Update Authentication Setting +auths.delete=Delete This Authentication +auths.delete_auth_title=Authentication Deletion +auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue? +auths.deletion_success=Authentication has been deleted successfully! config.server_config=Servera konfigurācija config.app_name=Lietotnes nosaukums @@ -858,14 +887,16 @@ config.db_user=Lietotājs config.db_ssl_mode=SSL režīms config.db_ssl_mode_helper=(tikai PostgreSQL datu bāzei) config.db_path=Ceļš -config.db_path_helper=(tikai Sqlite3 datu bāzei) +config.db_path_helper=(for "sqlite3" and "tidb") config.service_config=Pakalpojuma konfigurācija config.register_email_confirm=Pieprasīt e-pasta apstiprināšanu config.disable_register=Atspējot jaunu lietotāju reģistrāciju config.show_registration_button=Rādīt reģistrēšanās pogu config.require_sign_in_view=Nepieciešama autorizācija -config.mail_notify=Pasta paziņojumi config.enable_cache_avatar=Glabāt profila attēlus kešatmiņā +config.mail_notify=Pasta paziņojumi +config.disable_key_size_check=Disable Minimum Key Size Check +config.enable_captcha=Enable Captcha config.active_code_lives=Aktīvā koda ilgums config.reset_password_code_lives=Paroles atiestatīšanas koda ilgums config.webhook_config=Tīkla āķu konfigurācija @@ -953,6 +984,6 @@ raw_minutes=minūtes [dropzone] default_message=Drop files here or click to upload. invalid_input_type=You can't upload files of this type. -file_too_big=File size({{filesize}} MB) exceeds maximum size({{maxFilesize}} MB). -remove_file=Remove file +file_too_big=Faila izmērs ({{filesize}} MB) pārsniedz maksimālo atļauto izmēru ({{maxFilesize}} MB). +remove_file=Noņemt failu diff --git a/conf/locale/locale_nl-NL.ini b/conf/locale/locale_nl-NL.ini index 2c9270110..3023dadde 100755 --- a/conf/locale/locale_nl-NL.ini +++ b/conf/locale/locale_nl-NL.ini @@ -5,7 +5,6 @@ dashboard=Dashboard explore=Verkennen help=Help sign_in=Inloggen -social_sign_in=Social netwerk inlog: tweede stap account koppelen sign_out=Afmelden sign_up=Aanmelden register=Registreer @@ -14,7 +13,7 @@ version=Versie page=Pagina template=Sjabloon language=Taal -create_new=Maak een nieuwe... +create_new=Create... user_profile_and_more=Gebruikersprofiel en meer signed_in_as=Aangemeld als @@ -54,7 +53,8 @@ code=Code [install] install=Installatie title=Installatiestappen voor de eerste keer opstarten -requite_db_desc=Om Gogs te gebruiken is MySQL, PostgreSQL of SQLite3 vereist (SQLite3 is beschikbaar in de officiële versie). +docker_helper=If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page! +requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB. db_title=Database instellingen db_type=Database-type host=Host @@ -64,8 +64,11 @@ db_name=Database naam db_helper=Gebruik InnoDB engine met utf8_general_ci karakterset voor MySQL. ssl_mode=SSL-modus path=Pad -sqlite_helper=Het pad naar de SQLite3 database. -err_empty_sqlite_path=SQLite3 database pad mag niet leeg zijn. +sqlite_helper=The file path of SQLite3 or TiDB database. +err_empty_db_path=SQLite3 or TiDB database path cannot be empty. +err_invalid_tidb_name=TiDB database name does not allow characters "." and "-". +no_admin_and_disable_registration=You cannot disable registration without creating an admin account. +err_empty_admin_password=Admin password cannot be empty. general_title=Toepassing algemene instellingen app_name=Applicatienaam @@ -99,6 +102,8 @@ disable_gravatar=Gravatar Service uitschakelen disable_gravatar_popup=Schakel Gravatar en andere bronnen uit, alle avatars worden door gebruikers geüpload of zijn standaard. disable_registration=Schakel zelfregistratie uit disable_registration_popup=Schakel zelfregistratie uit, alleen admins kunnen accounts maken. +enable_captcha=Enable Captcha +enable_captcha_popup=Require validate captcha for user self-registration. require_sign_in_view=Schakel vereiste aanmelding om pagina's te zien in require_sign_in_view_popup=Alleen ingelogde gebruikers kunnen pagina's bekijken, bezoekers kunnen alleen de login/registratie pagina's zien. admin_setting_desc=U hoeft niet meteen een administratie account te maken, de gebruiker met ID=1 krijgt automatisch administratierechten. @@ -143,7 +148,7 @@ forgot_password=Wachtwoord vergeten forget_password=Wachtwoord vergeten? sign_up_now=Een account nodig? Meld u nu aan. confirmation_mail_sent_prompt=Een bevestigingsemail is gestuurd naar %s, Bevestig u aanvraag binnen %d uren om uw registratie te voltooien. -sign_in_email=Meld u aan met uw e-mailadres +sign_in_to_account=Sign in to your account active_your_account=Activeer uw account resent_limit_prompt=Sorry, u heeft te snel na elkaar een aanvraag gedaan voor een activatie mail. Wacht drie minuten voor uw volgende aanvraag. has_unconfirmed_mail=Beste %s, u heeft een onbevestigd e-mailadres (%s). Als u nog geen bevestiging heeft ontvangen, of u een nieuwe aanvraag wilt doen, klik dan op de onderstaande knop. @@ -155,6 +160,12 @@ invalid_code=Sorry, uw bevestigingscode is verlopen of niet meer geldig. reset_password_helper=Klik hier om uw wachtwoord opnieuw in te stellen. password_too_short=De lengte van uw wachtwoord moet minimaal zes karakters zijn. +[mail] +activate_account=Please activate your account +activate_email=Verify your e-mail address +reset_password=Reset your password +register_success=Register success, Welcome + [modal] yes=Ja no=Nee @@ -241,7 +252,7 @@ location=Locatie update_profile=Profile bijwerken update_profile_success=Uw profiel is succesvol bijgewerkt. change_username=Username veranderd -change_username_desc=Gebruikersnaam is gewijzigd. Wilt u doorgaan? Dit zal gevolgen hebben voor alle koppelingen die betrekking hebben op uw account. +change_username_prompt=This change will affect the way how links relate to your account. continue=Doorgaan cancel=Annuleren @@ -256,6 +267,7 @@ update_avatar_success=Instellingen voor avatar succesvol bijgewerkt. change_password=Verander wachtwoord old_password=Huidige wachtwoord new_password=Nieuw wachtwoord +retype_new_password=Retype New Password password_incorrect=Huidig wachtwoord is niet correct. change_password_success=Wachtwoord is succesvol gewijzigd. U kunt nu met uw nieuwe wachtwoord inloggen. @@ -265,9 +277,12 @@ email_desc=Uw primaire e-mailadres zal worden gebruikt voor meldingen en andere primary=Primair primary_email=Instellen als primair delete_email=Verwijder +email_deletion=E-mail Deletion +email_deletion_desc=Delete this e-mail address will remove related information from your account. Do you want to continue? +email_deletion_success=E-mail has been deleted successfully! add_new_email=Nieuw e-mailadres toevoegen add_email=E-mailadres toevoegen -add_email_confirmation_sent=Een nieuwe bevestiging e-mail werd verstuurd naar %s, gelieve uw inbox in de komende %d uren te controleren om het bevestigingsproces te voltooien. +add_email_confirmation_sent=Een nieuwe bevestiging e-mail werd verstuurd naar '%s', gelieve uw inbox in de komende %d uren te controleren om het bevestigingsproces te voltooien. add_email_success=Het e-mailadres was toegevoegd. manage_ssh_keys=Beheer SSH sleutels @@ -349,6 +364,8 @@ migrate.invalid_local_path=Ongeldig lokaal pad, het pad bestaat niet of het is g forked_from=geforked van fork_from_self=U kunt geen repository forken die u al beheert! copy_link=Kopieer +copy_link_success=Copied! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=Kopieer link naar plakbord copied=Gekopieerd clone_helper=De behoeftehulp van klonen? Bezoek helpen! @@ -363,6 +380,8 @@ quick_guide=Snelstart gids clone_this_repo=Kloon deze repositorie create_new_repo_command=Maak een nieuwe repositorie aan vanaf de console push_exist_repo=Push een bestaande repositorie vanaf de console +repo_is_empty=This repository is empty, please come back later! + branch=Aftakking tree=Boom @@ -630,7 +649,6 @@ release.tag_name_already_exist=Versie met deze naam bestaat al. [org] org_name_holder=Organisatienaam org_name_helper=Een goede organisatienaam is kort en memorabel. -org_email_helper=Alle notificaties en bevestigingen worden gestuurd naar het e-mailadres van de organisatie. create_org=Nieuwe organisatie aanmaken repo_updated=Geupdate people=Mensen @@ -655,9 +673,9 @@ settings.full_name=Volledige naam settings.website=Website settings.location=Locatie settings.update_settings=Instellingen bijwerken -settings.change_orgname=Organisatie naam veranderd -settings.change_orgname_desc=De naam van de organisatie is veranderd, wilt u doorgaan? Dit zal gevolgen hebben voor alle koppelingen die betrekking hebben op deze organisatie. settings.update_setting_success=Organisatie instellingen zijn succesvol bijgewerkt. +settings.change_orgname_prompt=This change will affect how links relate to the organization. +settings.update_avatar_success=Organization avatar setting has been updated successfully. settings.delete=Verwijder organisatie settings.delete_account=Verwijder deze organisatie settings.delete_prompt=Deze actie zal de origanisatie permanent verwijderen. U kunt dit NIET terug draaien! @@ -713,8 +731,9 @@ authentication=Autenticaties config=Configuratie notices=Systeem aankondigingen monitor=Bijhouden -prev=Vorige -next=Volgende +first_page=First +last_page=Last +total=Total: %d dashboard.statistic=Statistieken dashboard.operations=Bewerkingen @@ -773,10 +792,13 @@ users.activated=Geactiveerd users.admin=Admin users.repos=Repos users.created=Aangemaakt +users.send_register_notify=Send Registration Notification To User +users.new_success=New account '%s' has been created successfully. users.edit=Bewerken -users.auth_source=Autorisatiebron +users.auth_source=Authentication Source users.local=Lokaal -users.auth_login_name=Autorisatie inlognaam +users.auth_login_name=Authentication Login Name +users.password_helper=Leave it empty to remain unchanged. users.update_profile_success=Profiel is succesvol bijgewerkt. users.edit_account=Bewerk account users.is_activated=Dit account is geactiveerd @@ -786,6 +808,7 @@ users.update_profile=Account profiel bijwerken users.delete_account=Dit account verwijderen users.still_own_repo=Dit account is nog steeds eigendom van een repositorie. U moet deze repositorie eerst verwijderen of overdragen. users.still_has_org=Deze account nog steeds lidmaatschap van organisatie, u hebt naar links of hen eerst verwijderen. +users.deletion_success=Account has been deleted successfully! orgs.org_manage_panel=Organisaties beheren orgs.name=Naam @@ -800,41 +823,47 @@ repos.watches=Volgers repos.stars=Sterren repos.issues=Kwesties -auths.auth_manage_panel=Autorisatiebeheerpaneel -auths.new=Nieuwe autorisatiebron +auths.auth_manage_panel=Authentication Manage Panel +auths.new=Add New Source auths.name=Naam auths.type=Type auths.enabled=Ingeschakeld auths.updated=Bijgewerkt -auths.auth_type=Autorisatietype -auths.auth_name=Autorisatienaam +auths.auth_type=Authentication Type +auths.auth_name=Authentication Name auths.domain=Domein auths.host=Host auths.port=Poort auths.bind_dn=Binden DN auths.bind_password=Bind Password +auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account. auths.user_base=User Search Base +auths.user_dn=User DN auths.attribute_name=Voornaam attribuut auths.attribute_surname=Achternaam attribuut auths.attribute_mail=E-mail attribuut auths.filter=User Filter auths.admin_filter=Admin Filter auths.ms_ad_sa=MS Ad SA -auths.smtp_auth=SMTP authenticatietype +auths.smtp_auth=SMTP Authentication Type auths.smtphost=SMTP host auths.smtpport=SMTP poort +auths.allowed_domains=Allowed Domains +auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','. auths.enable_tls=Activeer TLS-encryptie auths.skip_tls_verify=Skip TLS Verify auths.pam_service_name=PAM servicenaam auths.enable_auto_register=Activeer automatische registratie auths.tips=Tips -auths.edit=Bewerk autorisatie-instellingen +auths.edit=Edit Authentication Setting auths.activated=Deze autorisatiemethode is geactiveerd -auths.update_success=Autorisatie-instellingen zijn succesvol bijgewerkt. -auths.update=Update autorisatie-instellingen -auths.delete=Verwijder deze autorisatie -auths.delete_auth_title=Verwijderings-autorisatie -auths.delete_auth_desc=Deze autorisatiemethode wordt verwijderd. Weet u zeker dat u wilt doorgaan? +auths.new_success=New authentication '%s' has been added successfully. +auths.update_success=Authentication setting has been updated successfully. +auths.update=Update Authentication Setting +auths.delete=Delete This Authentication +auths.delete_auth_title=Authentication Deletion +auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue? +auths.deletion_success=Authentication has been deleted successfully! config.server_config=Serverconfiguratie config.app_name=Applicatienaam @@ -858,14 +887,16 @@ config.db_user=Gebruiker config.db_ssl_mode=SSL modus config.db_ssl_mode_helper=(alleen voor "postgres") config.db_path=Pad -config.db_path_helper=(alleen voor "sqlite3") +config.db_path_helper=(for "sqlite3" and "tidb") config.service_config=Serviceconfiguratie config.register_email_confirm=E-mailbevestiging registreren config.disable_register=Registratie uitgeschakeld config.show_registration_button=Registeren knop weergeven config.require_sign_in_view=Inloggen vereist om te kunnen inzien -config.mail_notify=E-mailnotificaties config.enable_cache_avatar=Avatar Cache inschakelen +config.mail_notify=E-mailnotificaties +config.disable_key_size_check=Disable Minimum Key Size Check +config.enable_captcha=Enable Captcha config.active_code_lives=Actieve Code leven config.reset_password_code_lives=Reset wachtwoord Code leven config.webhook_config=Webhook configuratie diff --git a/conf/locale/locale_pl-PL.ini b/conf/locale/locale_pl-PL.ini index 0e2de4e9d..0c1ef1abd 100755 --- a/conf/locale/locale_pl-PL.ini +++ b/conf/locale/locale_pl-PL.ini @@ -5,7 +5,6 @@ dashboard=Pulpit explore=Odkrywaj help=Pomoc sign_in=Zaloguj się -social_sign_in=Rejestracja przy pomocy sieci społecznościowych: 2 krok kojarzenie konta sign_out=Wyloguj sign_up=Zarejestruj się register=Zarejestruj się @@ -14,7 +13,7 @@ version=Wersja page=Strona template=Szablon language=Język -create_new=Utwórz nowy... +create_new=Create... user_profile_and_more=Profil użytkownika i więcej signed_in_as=Zalogowany jako @@ -54,7 +53,8 @@ code=Kod [install] install=Instalacja title=Kroki instalacyjne dla pierwszego uruchomienia -requite_db_desc=Gogs wymaga MySQL, PostgreSQL lub SQLite3. +docker_helper=If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page! +requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB. db_title=Ustawienia bazy danych db_type=Typ bazy danych host=Host @@ -64,8 +64,11 @@ db_name=Nazwa bazy danych db_helper=Proszę użyć silnika INNODB z kodowaniem utf8_general_ci dla MySQL. ssl_mode=Tryb SSL path=Ścieżka -sqlite_helper=Ścieżka do bazy SQLite3. -err_empty_sqlite_path=Ścieżka do bazy danych SQLite3 nie może być pusta. +sqlite_helper=The file path of SQLite3 or TiDB database. +err_empty_db_path=SQLite3 or TiDB database path cannot be empty. +err_invalid_tidb_name=TiDB database name does not allow characters "." and "-". +no_admin_and_disable_registration=You cannot disable registration without creating an admin account. +err_empty_admin_password=Admin password cannot be empty. general_title=Ustawienia ogólne Gogs app_name=Nazwa aplikacji @@ -99,6 +102,8 @@ disable_gravatar=Wyłącz usługę Gravatar disable_gravatar_popup=Disable Gravatar and custom sources, all avatars are uploaded by users or default. disable_registration=Wyłącz samodzielną rejestrację disable_registration_popup=Wyłącz samodzielną rejestrację użytkownika, tylko administrator będzie mógł tworzyć konta. +enable_captcha=Enable Captcha +enable_captcha_popup=Require validate captcha for user self-registration. require_sign_in_view=Włącz wymóg zalogowania do przeglądania stron require_sign_in_view_popup=Tylko zalogowani użytkownicy będą mogli przeglądać strony, goście zobaczą tylko stronę logowania. admin_setting_desc=Nie musisz tworzyć konta administratora teraz, użytkownik z ID = 1 zyska dostęp administratora automatycznie. @@ -143,7 +148,7 @@ forgot_password=Zapomniałem hasła forget_password=Zapomniałeś hasła? sign_up_now=Potrzebujesz konta? Zarejestruj się teraz. confirmation_mail_sent_prompt=Nowa wiadomość e-mail z potwierdzeniem została wysłana do %s, proszę sprawdzić swoją skrzynkę odbiorczą w ciągu najbliższych godzin %d aby dokończyć proces rejestracji. -sign_in_email=Zaloguj się na swój adres e-mail +sign_in_to_account=Sign in to your account active_your_account=Aktywuj swoje konto resent_limit_prompt=Niestety, zbyt często wysyłasz e-mail aktywacyjny. Proszę odczekać 3 minuty. has_unconfirmed_mail=Witaj, %s, masz niepotwierdzony adres e-mail (%s). Jeśli nie otrzymałeś wiadomości e-mail z potwierdzeniem lub potrzebujesz wysłać nową, kliknij na poniższy przycisk. @@ -155,6 +160,12 @@ invalid_code=Niestety, twój kod potwierdzający wygasł lub jest nieprawidłowy reset_password_helper=Kliknij tutaj, aby zresetować hasło password_too_short=Długość hasła nie może być mniejsza niż 6 znaków. +[mail] +activate_account=Please activate your account +activate_email=Verify your e-mail address +reset_password=Reset your password +register_success=Register success, Welcome + [modal] yes=Tak no=Nie @@ -241,7 +252,7 @@ location=Lolalizacja update_profile=Zaktualizuj profil update_profile_success=Twój profil został pomyślnie zaktualizowany. change_username=Zmieniono nazwę użytkownika -change_username_desc=Zmieniono nazwę użytkownika, czy chcesz kontynuować? To wpłynie na wszystkie linki odnoszą się do swojego konta. +change_username_prompt=This change will affect the way how links relate to your account. continue=Konynuuj cancel=Anuluj @@ -256,6 +267,7 @@ update_avatar_success=Ustawienia awatarów zostały pomyślnie zaktualizowane. change_password=Zmień hasło old_password=Aktualne hasło new_password=Nowe hasło +retype_new_password=Retype New Password password_incorrect=Bieżące hasło nie jest prawidłowe. change_password_success=Hasło zostało zmienione pomyślnie. Możesz teraz zalogować się za pomocą nowego hasła. @@ -265,9 +277,12 @@ email_desc=Twój podstawowy adres e-mail będzie używany dla powiadomień i inn primary=Podstawowy primary_email=Ustaw jako podstawowy delete_email=Usuń +email_deletion=E-mail Deletion +email_deletion_desc=Delete this e-mail address will remove related information from your account. Do you want to continue? +email_deletion_success=E-mail has been deleted successfully! add_new_email=Dodaj nowy e-mail add_email=Dodaj e-mail -add_email_confirmation_sent=Nowa wiadomość e-mail z potwierdzeniem została wysłana do %s, proszę sprawdzić swoją skrzynkę odbiorczą w ciągu %d godzin, aby dokończyć proces potwierdzania. +add_email_confirmation_sent=Nowa wiadomość e-mail z potwierdzeniem została wysłana do '%s', proszę sprawdzić swoją skrzynkę odbiorczą w ciągu %d godzin, aby dokończyć proces potwierdzania. add_email_success=Twój nowy e-mail został dodany pomyślnie. manage_ssh_keys=Zarządzaj kluczami SSH @@ -330,7 +345,7 @@ license=Licencja license_helper=Wybierz plik licencji readme=Readme readme_helper=Select a readme template -auto_init=Initialize this repository selected files and template +auto_init=Initialize this repository with selected files and template create_repo=Utwórz repozytorium default_branch=Domyślna gałąź mirror_interval=Odświeżanie mirrorów (godziny) @@ -349,6 +364,8 @@ migrate.invalid_local_path=Ścieżka jest niepoprawna. Nie istnieje lub nie jest forked_from=sklonowany z fork_from_self=You cannot fork repository you already owned! copy_link=Kopiuj +copy_link_success=Copied! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=Kopiuj do schowka copied=Skopiowano clone_helper=Potrzebujesz pomocy z klonowaniem? Odwiedź Pomoc! @@ -363,6 +380,8 @@ quick_guide=Skrócona instrukcja clone_this_repo=Klonuj repozytorium create_new_repo_command=Utwórz nowe repozytorium z wiersza poleceń push_exist_repo=Wyślij istniejące repozytorium z wiersza poleceń +repo_is_empty=This repository is empty, please come back later! + branch=Gałąź tree=Drzewo @@ -630,7 +649,6 @@ release.tag_name_already_exist=Wersja o tej nazwie tagu już istnieje. [org] org_name_holder=Nazwa organizacji org_name_helper=Świetne nazwy organizacji są krótkie i łatwe do zapamiętania. -org_email_helper=Adres e-mail organizacji otrzymuje wszystkie powiadomienia i potwierdzenia. create_org=Utwórz organizację repo_updated=Zaktualizowano people=Ludzie @@ -655,9 +673,9 @@ settings.full_name=Imię i Nazwisko settings.website=Strona settings.location=Lolalizacja settings.update_settings=Aktualizuj ustawienia -settings.change_orgname=Zmieniono nazwę organizacji -settings.change_orgname_desc=Zmieniono nazwę organizacji. Wpływa to na powiązanie odnośników z organizacją. Czy chcesz kontynuować? settings.update_setting_success=Ustawienia organizacji zostały pomyślnie zaktualizowane. +settings.change_orgname_prompt=This change will affect how links relate to the organization. +settings.update_avatar_success=Organization avatar setting has been updated successfully. settings.delete=Usuń Organizację settings.delete_account=Usuń tą organizację settings.delete_prompt=Organizacja zostanie trwale usunięta, a to NIE MOŻE być cofnięte! @@ -713,8 +731,9 @@ authentication=Uwierzytelnienia config=Konfiguracja notices=Powiadomienia systemowe monitor=Monitorowanie -prev=Wstecz -next=Następny +first_page=First +last_page=Last +total=Total: %d dashboard.statistic=Statystyki dashboard.operations=Operacje @@ -773,10 +792,13 @@ users.activated=Aktywowany users.admin=Admin users.repos=Repozytoria users.created=Utworzony +users.send_register_notify=Send Registration Notification To User +users.new_success=New account '%s' has been created successfully. users.edit=Edytuj -users.auth_source=Źródła autoryzacji +users.auth_source=Authentication Source users.local=Lokalne -users.auth_login_name=Login Autoryzacyjny +users.auth_login_name=Authentication Login Name +users.password_helper=Leave it empty to remain unchanged. users.update_profile_success=Profil konta został pomyślnie zaktualizowany. users.edit_account=Edytuj konto users.is_activated=To konto jest aktywne @@ -786,6 +808,7 @@ users.update_profile=Zaktualizuj profil konta users.delete_account=Usuń to konto users.still_own_repo=Twoje konto jest dalej właścicielem repozytorium, musisz je usunąć lub przekazać. users.still_has_org=Twoje konto dalej posiada członkostwo w organizacji, musisz ją opuścić bądź usunąć. +users.deletion_success=Account has been deleted successfully! orgs.org_manage_panel=Panel zarządzania organizacją orgs.name=Nazwa @@ -800,41 +823,47 @@ repos.watches=Obserwujących repos.stars=Polubienia repos.issues=Problemy -auths.auth_manage_panel=Zarzadzanie Autoryzacja -auths.new=Dodaj nowe źródło autoryzacji +auths.auth_manage_panel=Authentication Manage Panel +auths.new=Add New Source auths.name=Nazwa auths.type=Typ auths.enabled=Włączono auths.updated=Zaktualizowano -auths.auth_type=Typ autoryzacji -auths.auth_name=Nazwa autoryzacji +auths.auth_type=Authentication Type +auths.auth_name=Authentication Name auths.domain=Domena auths.host=Host auths.port=Port auths.bind_dn=Bind DN auths.bind_password=Bind Password +auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account. auths.user_base=User Search Base +auths.user_dn=User DN auths.attribute_name=Atrybut imienia auths.attribute_surname=Atrybut nazwiska auths.attribute_mail=Atrybut email auths.filter=User Filter auths.admin_filter=Admin Filter auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=Typ autoryzacji SMTP +auths.smtp_auth=SMTP Authentication Type auths.smtphost=Serwer SMTP auths.smtpport=Port SMTP +auths.allowed_domains=Allowed Domains +auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','. auths.enable_tls=Włącz szyfrowanie TLS auths.skip_tls_verify=Pomiń weryfikację protokołu TLS auths.pam_service_name=Nazwa usługi PAM auths.enable_auto_register=Włącz automatyczną rejestrację auths.tips=Wskazówki -auths.edit=Edytuj ustawienia autoryzacji +auths.edit=Edit Authentication Setting auths.activated=To uwierzytelnienie zostało aktywowane -auths.update_success=Ustawienia uwierzytelnienia zostały zaktualizowane pomyślnie. -auths.update=Zaktualizuj ustawienia autoryzacji -auths.delete=Usuń tą autoryzację -auths.delete_auth_title=Usuwanie autoryzacji -auths.delete_auth_desc=To uwierzytelnienie zostanie usunięte, czy chcesz kontynuować? +auths.new_success=New authentication '%s' has been added successfully. +auths.update_success=Authentication setting has been updated successfully. +auths.update=Update Authentication Setting +auths.delete=Delete This Authentication +auths.delete_auth_title=Authentication Deletion +auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue? +auths.deletion_success=Authentication has been deleted successfully! config.server_config=Konfiguracja serwera config.app_name=Nazwa Aplikacji @@ -858,14 +887,16 @@ config.db_user=Użytkownik config.db_ssl_mode=Tryb SSL config.db_ssl_mode_helper=(tylko dla "postgres") config.db_path=Ścieżka -config.db_path_helper=(tylko dla "sqlite3") +config.db_path_helper=(for "sqlite3" and "tidb") config.service_config=Konfiguracja usługi config.register_email_confirm=Wymagaj potwierdzenia e-mail config.disable_register=Wyłącz rejestrację config.show_registration_button=Pokazuj przycisk rejestracji config.require_sign_in_view=Wymagaj bycia zalogowanym -config.mail_notify=Powiadomienia e-mail config.enable_cache_avatar=Włącz cache awatarów +config.mail_notify=Powiadomienia e-mail +config.disable_key_size_check=Disable Minimum Key Size Check +config.enable_captcha=Enable Captcha config.active_code_lives=Ważność kodów aktywacyjnych config.reset_password_code_lives=Czas życia kodu resetowania hasła config.webhook_config=Konfiguracja skryptów internetowych diff --git a/conf/locale/locale_pt-BR.ini b/conf/locale/locale_pt-BR.ini index 6a37c9573..2ccf953ff 100755 --- a/conf/locale/locale_pt-BR.ini +++ b/conf/locale/locale_pt-BR.ini @@ -5,7 +5,6 @@ dashboard=Painel de controle explore=Explorar help=Ajuda sign_in=Entrar -social_sign_in=Entrada Social: 2ª etapa associar uma conta sign_out=Sair sign_up=Cadastrar register=Registrar @@ -54,7 +53,8 @@ code=Código [install] install=Instalação title=Etapas de instalação para Primeira Execução -requite_db_desc=Gogs requer MySQL, PostgreSQL ou SQLite3. +docker_helper=If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page! +requite_db_desc=Gogs requer MySQL, PostgreSQL, SQLite3 ou TiDB. db_title=Configurações de Banco de Dados db_type=Tipo do Banco de Dados host=Host @@ -64,8 +64,11 @@ db_name=Nome do Banco de Dados db_helper=Por favor, use o mecanismo INNODB com o conjunto de caracteres utf8_general_ci para MySQL. ssl_mode=Modo SSL path=Caminho -sqlite_helper=O caminho do arquivo do banco de dados do SQLite3. -err_empty_sqlite_path=O caminho do arquivo de banco de dados SQLite3 não pode estar em branco. +sqlite_helper=O caminho do arquivo do banco de dados SQLite3 ou TiDB. +err_empty_db_path=O Caminho do banco de dados SQLite3 ou TiDB não pode ser vazio. +err_invalid_tidb_name=Nome do banco de dados TiDB não permite os caracteres "." e "-". +no_admin_and_disable_registration=Você não pode desabilitar o registro sem criar uma conta de administrador. +err_empty_admin_password=A senha de administrador não pode ser vazia. general_title=Configurações Gerais do Gogs app_name=Nome do Aplicativo @@ -96,9 +99,11 @@ server_service_title=Configurações de Servidor e Outros Serviços offline_mode=Ativar Modo Offline offline_mode_popup=Desative o CDN mesmo em modo de produção, todos os recursos serão disponibilizados localmente. disable_gravatar=Desativar Serviço Gravatar -disable_gravatar_popup=Disable Gravatar and custom sources, all avatars are uploaded by users or default. +disable_gravatar_popup=Desabilitar o Gravatar e fontes personalizadas, todos os avatares são enviados por usuários ou padrão. disable_registration=Desativar auto-registro disable_registration_popup=Desativar o auto-registro de usuário, para que somente o administrador possa criar contas. +enable_captcha=Enable Captcha +enable_captcha_popup=Require validate captcha for user self-registration. require_sign_in_view=Requerer autenticação para a visualização de páginas require_sign_in_view_popup=Somente usuários autenticados podem ver todas as páginas, visitantes somente podem entrar ou se cadastrar. admin_setting_desc=Você não precisa criar uma conta de administrador agora, no entanto o primeiro usuário (ID=1) automaticamente terá acesso de administrador. @@ -125,9 +130,9 @@ my_repos=Meus Repositórios collaborative_repos=Repositórios Colaborativos my_orgs=Minhas Organizações my_mirrors=Meus Espelhos -view_home=View %s +view_home=Ver %s -issues.in_your_repos=In your repositories +issues.in_your_repos=Em seus repositórios [explore] repos=Repositórios @@ -143,7 +148,7 @@ forgot_password=Esqueci a Senha forget_password=Esqueceu a senha? sign_up_now=Precisa de uma conta? Cadastre-se agora. confirmation_mail_sent_prompt=Um novo e-mail de confirmação foi enviado para %s, por favor, verifique sua caixa de entrada nas próximas %d horas para completar seu registro. -sign_in_email=Entre com seu e-mail +sign_in_to_account=Sign in to your account active_your_account=Ativar Sua Conta resent_limit_prompt=Desculpe, você está enviando um e-mail de ativação com muita frequência. Por favor, aguarde 3 minutos. has_unconfirmed_mail=Oi %s, você possui um endereço de e-mail não confirmado (%s). Se você não recebeu um e-mail de confirmação ou precisa reenviar um novo, clique no botão abaixo. @@ -155,6 +160,12 @@ invalid_code=Desculpe, seu código de confirmação expirou ou não é válido. reset_password_helper=Clique aqui para redefinir sua senha password_too_short=O comprimento da senha não pode ser menor que 6. +[mail] +activate_account=Please activate your account +activate_email=Verify your e-mail address +reset_password=Reset your password +register_success=Register success, Welcome + [modal] yes=Sim no=Não @@ -241,7 +252,7 @@ location=Localização update_profile=Atualizar o Perfil update_profile_success=O seu perfil foi atualizado com sucesso. change_username=Nome de Usuário Alterado -change_username_desc=O nome de usuário foi alterado, você quer continuar? Isto afetará todos os links relacionados à sua conta. +change_username_prompt=Essa alteração afetará o modo como ligações referem-se à sua conta. continue=Continuar cancel=Cancelar @@ -256,6 +267,7 @@ update_avatar_success=Sua configuração de avatar foi atualizada com sucesso. change_password=Mudança de senha old_password=Senha Atual new_password=Nova Senha +retype_new_password=Digite novamente a nova senha password_incorrect=A senha atual não está correta. change_password_success=A senha está alterada com sucesso. Você pode agora entrar com a senha nova. @@ -265,9 +277,12 @@ email_desc=Seu endereço de email principal será usado para notificações e ou primary=Principal primary_email=Definir como principal delete_email=Deletar +email_deletion=Exclusão do email +email_deletion_desc=Ao Excluir este endereço de e-mail será removido informações relacionadas com a sua conta. Você deseja continuar? +email_deletion_success=O E-mail foi excluído com sucesso! add_new_email=Adicionar novo endereço de e-mail add_email=Adicionar e-mail -add_email_confirmation_sent=Um novo e-mail de confirmação foi enviado para %s. Por favor, verifique sua Caixa de Entrada dentro das próximas %d horas, para concluir o processo de confirmação. +add_email_confirmation_sent=Um novo e-mail de confirmação foi enviado para '%s'. Por favor, verifique sua Caixa de Entrada dentro das próximas %d horas, para concluir o processo de confirmação. add_email_success=Seu novo endereço de E-mail foi adicionado com sucesso. manage_ssh_keys=Gerenciar Chaves SSH @@ -281,14 +296,14 @@ key_name=Nome da Chave key_content=Conteúdo add_key_success=A nova chave pública '%s' foi adicionada com sucesso! delete_key=Deletar -ssh_key_deletion=SSH Key Deletion -ssh_key_deletion_desc=Delete this SSH key will remove all related accesses for your account. Do you want to continue? -ssh_key_deletion_success=SSH key has been deleted successfully! +ssh_key_deletion=Exclusão da chave de SSH +ssh_key_deletion_desc=Ao Excluir esta chave de SSH será removido todos os acessos para sua conta. Você deseja continuar? +ssh_key_deletion_success=A chave de SSH foi excluída com sucesso! add_on=Adicionado em last_used=Última vez usado em no_activity=Nenhuma atividade recente key_state_desc=Usada a pelo menos 7 dias -token_state_desc=This token is used in last 7 days +token_state_desc=Este token é usado em pelo menos 7 dias manage_social=Gerenciar Contas Sociais Associadas social_desc=Esta é uma lista de contas sociais. Remova qualquer ligação que você não reconheça. @@ -297,15 +312,15 @@ unbind_success=A conta social foi desvinculada. manage_access_token=Gerenciar Tokens de Acesso Pessoal generate_new_token=Gerar novo Token -tokens_desc=Tokens you have generated that can be used to access the Gogs APIs. +tokens_desc=Tokens gerados por você que podem ser usados para acessar a API do Gogs. new_token_desc=Por enquanto, todo token terá acesso completo à sua conta. token_name=Nome do Token generate_token=Gerar Token generate_token_succees=Novo token de acesso gerado com sucesso! Certifique-se de copiar seu novo token de acesso pessoal agora. Você não poderá vê-lo novamente! delete_token=Excluir -access_token_deletion=Personal Access Token Deletion -access_token_deletion_desc=Delete this personal access token will remove all related accesses of application. Do you want to continue? -delete_token_success=Personal access token has been removed successfully! Don't forget to update your application as well. +access_token_deletion=Exclusão do Token de acesso pessoal +access_token_deletion_desc=Ao Excluir este token de acesso pessoal será removido todos os acessos do aplicativo. Você deseja continuar? +delete_token_success=O Token de acesso pessoal foi removido com sucesso! Não se esqueça de atualizar seus aplicativos também. delete_account=Deletar Sua Conta delete_prompt=A operação deletará sua conta permanentemente, e NÃO PODERÁ ser desfeita! @@ -319,7 +334,7 @@ repo_name=Nome do Repositório repo_name_helper=Nomes de repositórios bons são pequenos, memorizáveis e únicos. visibility=Visibilidade visiblity_helper=Este é um repositório privado -visiblity_fork_helper=(Change of this value will affect all forks) +visiblity_fork_helper=(A alteração desse valor irá afetar todos os forks) fork_repo=Fork o Repositório fork_from=Fork de fork_visiblity_helper=Não é possível alterar a visibilidade de um repositório bifurcado @@ -329,8 +344,8 @@ repo_lang_helper=Selecione arquivos .gitignore license=Licença license_helper=Selecione um arquivo de licença readme=Leia-me -readme_helper=Select a readme template -auto_init=Initialize this repository selected files and template +readme_helper=Selecione um modelo de leiame +auto_init=Inicializar este repositório com os arquivos selecionados e modelo create_repo=Criar Repositório default_branch=Ramo padrão mirror_interval=Intervalo de Espelho (hora) @@ -349,6 +364,8 @@ migrate.invalid_local_path=Caminho local inválido, não existe ou não é um di forked_from=bifurcação de fork_from_self=Você não pode criar fork de um repositório que já é seu! copy_link=Copiar +copy_link_success=Copied! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=Copiar para a área de transferência copied=Copiado com sucesso clone_helper=Precisa de ajuda com a clonagem? Visite a Ajuda! @@ -363,6 +380,8 @@ quick_guide=Guia Rápido clone_this_repo=Clonar este repositório create_new_repo_command=Criar um novo repositório na linha de comando push_exist_repo=Push um repositório existente na linha de comando +repo_is_empty=This repository is empty, please come back later! + branch=Ramo tree=Árvore @@ -425,7 +444,7 @@ issues.filter_sort.recentupdate=Mais recentemente atualizados issues.filter_sort.leastupdate=Menos recentemente atualizados issues.filter_sort.mostcomment=Mais comentados issues.filter_sort.leastcomment=Menos comentados -issues.opened_by=opened %[1]s by %[3]s +issues.opened_by=%[1]s foi aberto por %[3]s issues.opened_by_fake=aberto %[1]s por %[2]s issues.previous=Página anterior issues.next=Próxima página @@ -465,18 +484,18 @@ pulls.compare_changes=Comparar mudanças pulls.compare_changes_desc=Comparar dois ramos e criar solicitação de pull com as mudanças. pulls.compare_base=base pulls.compare_compare=comparar -pulls.filter_branch=Filter branch +pulls.filter_branch=Filtrar branch pulls.no_results=Nada encontrado. pulls.nothing_to_compare=There is nothing to compare because base and head branches are even. pulls.has_pull_request=`There is already a pull request between these two targets: %[2]s#%[3]d` -pulls.create=Create Pull Request +pulls.create=Criar Pull Request pulls.title_desc=wants to merge %[1]d commits from %[2]s into %[3]s pulls.merged_title_desc=merged %[1]d commits from %[2]s into %[3]s %[4]s pulls.tab_conversation=Conversação pulls.tab_commits=Commits -pulls.tab_files=Files changed -pulls.reopen_to_merge=Please reopen this pull request to perform merge operation. -pulls.merged=Merged +pulls.tab_files=Arquivos alterados +pulls.reopen_to_merge=Por favor reabra esse pull request para executar a operação de merge. +pulls.merged=Merge realizado pulls.has_merged=This pull request has been merged successfully! pulls.data_broken=Data of this pull request has been broken due to deletion of fork information. pulls.can_auto_merge_desc=You can perform auto-merge operation on this pull request. @@ -525,9 +544,9 @@ settings.delete=Deletar Este Repositório settings.delete_desc=Uma vez que você deleta um repositório, não tem volta. Por favor, tenha certeza. settings.transfer_notices_1=- You will lose access if new owner is a individual user. settings.transfer_notices_2=- You will conserve access if new owner is an organization and if you're one of the owners. -settings.transfer_form_title=Please enter following information to confirm your operation: -settings.delete_notices_1=- This operation CANNOT be undone. -settings.delete_notices_2=- This operation will permanently delete the everything of this repository, including Git data, issues, comments and accesses of collaborators. +settings.transfer_form_title=Informe a seguinte informação para confirmar a sua operação: +settings.delete_notices_1=-Esta operação NÃO PODERÁ ser desfeita. +settings.delete_notices_2=- Esta operação irá apagar permanentemente o tudo deste repositório, incluindo os dados do Git, problemas, comentários e acessos dos colaboradores. settings.delete_notices_fork_1=- If this repository is public, all forks will be became independent after deletion. settings.delete_notices_fork_2=- If this repository is private, all forks will be removed at the same time. settings.delete_notices_fork_3=- If you want to keep all forks after deletion, please change visibility of this repository to public first. @@ -545,7 +564,7 @@ settings.hooks_desc=Hooks da web ou Webhooks permitem serviços externos serem n settings.webhook_deletion=Delete Webhook settings.webhook_deletion_desc=Delete this webhook will remove its information and all delivery history. Do you want to continue? settings.webhook_deletion_success=Webhook has been deleted successfully! -settings.webhook.request=Request +settings.webhook.request=Solicitação settings.webhook.response=Resposta settings.webhook.headers=Cabeçalhos settings.webhook.payload=Payload @@ -559,17 +578,17 @@ settings.add_webhook_desc=Enviaremos uma solicitação POST para o settings.payload_url=URL de carga settings.content_type=Tipo de Conteúdo settings.secret=Secreto -settings.slack_username=Username -settings.slack_icon_url=Icon URL +settings.slack_username=Usuário +settings.slack_icon_url=URL do ícone settings.slack_color=Cor settings.event_desc=Quais eventos você gostaria de acionar a esse hook da web? settings.event_push_only=Apenas o evento push. -settings.event_send_everything=I need everything. -settings.event_choose=Let me choose what I need. +settings.event_send_everything=Preciso de tudo. +settings.event_choose=Deixe-me escolher o que eu preciso. settings.event_create=Criar -settings.event_create_desc=Branch, or tag created +settings.event_create_desc=Branch ou Tag criado settings.event_push=Push -settings.event_push_desc=Git push to a repository +settings.event_push_desc=Git push para o repositório settings.active=Ativar settings.active_helper=Enviaremos detalhes do evento quando este hook for acionado. settings.add_hook_success=Novos hooks de web foram adicionados. @@ -630,7 +649,6 @@ release.tag_name_already_exist=Já existiu versão com esse nome de tag. [org] org_name_holder=Nome da Organização org_name_helper=Nomes de grandes organizações são curtos e memoráveis. -org_email_helper=O E-mail da organização receberá todas as notificações e as confirmações. create_org=Criar Organização repo_updated=Atualizado people=Pessoas @@ -655,9 +673,9 @@ settings.full_name=Nome Completo settings.website=Site settings.location=Localização settings.update_settings=Atualizar Configurações -settings.change_orgname=Nome da Organização Alterado -settings.change_orgname_desc=O nome da organização foi alterado, você quer continuar? Isto afetará todos os links que se relacionam a esta organização. settings.update_setting_success=Configuração da organização atualizada com sucesso. +settings.change_orgname_prompt=This change will affect how links relate to the organization. +settings.update_avatar_success=Organization avatar setting has been updated successfully. settings.delete=Deletar Organização settings.delete_account=Deletar Esta Organização settings.delete_prompt=A operação deletará esta organização permanentemente, e NÃO PODERÁ ser desfeita! @@ -713,8 +731,9 @@ authentication=Autenticações config=Configuração notices=Sistema de notificações monitor=Monitoramento -prev=Anterior -next=Próximo +first_page=Primeira +last_page=Última +total=Total: %d dashboard.statistic=Estatística dashboard.operations=Operações @@ -773,10 +792,13 @@ users.activated=Ativado users.admin=Administrador users.repos=Repos users.created=Criado +users.send_register_notify=Send Registration Notification To User +users.new_success=Nova conta '%s' foi criada com sucesso. users.edit=Editar -users.auth_source=Fonte de Autorização +users.auth_source=Fonte da autenticação users.local=Local -users.auth_login_name=Nome de Autorização de Login +users.auth_login_name=Nome de login da autenticação +users.password_helper=Leave it empty to remain unchanged. users.update_profile_success=O perfil da conta foi atualizado com sucesso. users.edit_account=Editar Conta users.is_activated=Esta conta está ativada @@ -786,6 +808,7 @@ users.update_profile=Atualizar Perfil da Conta users.delete_account=Deletar Esta Conta users.still_own_repo=Sua conta ainda é proprietária do repositório, você tem que excluir ou transferi-lo primeiro. users.still_has_org=Sua conta ainda faz parte da organização, você deve sair ou excluí-la primeiro. +users.deletion_success=Account has been deleted successfully! orgs.org_manage_panel=Painel de Gerenciamento da Organização orgs.name=Nome @@ -800,41 +823,47 @@ repos.watches=Observadores repos.stars=Estrelas repos.issues=Problemas -auths.auth_manage_panel=Painel de Gerenciamento da Autorização -auths.new=Adicionar Nova Fonte de Autorização +auths.auth_manage_panel=Painel de gerenciamento da autenticação +auths.new=Adicionar nova fonte auths.name=Nome auths.type=Tipo auths.enabled=Habilitado auths.updated=Atualizado -auths.auth_type=Tipo da Autorização -auths.auth_name=Nome da Autorização +auths.auth_type=Tipo de autenticação +auths.auth_name=Nome da autenticação auths.domain=Domínio auths.host=Host auths.port=Porta auths.bind_dn=Bind DN auths.bind_password=Bind Password -auths.user_base=User Search Base +auths.bind_password_helper=Atenção: Esta senha é armazenada em texto plano. Não use uma conta com muitos privilégios. +auths.user_base=Base de pesquisa do usuário +auths.user_dn=User DN auths.attribute_name=Atributo primeiro nome auths.attribute_surname=Atributo sobrenome auths.attribute_mail=Atributo e-mail auths.filter=User Filter auths.admin_filter=Admin Filter auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=Tipo de Autorização de SMTP +auths.smtp_auth=Tipo de autenticação SMTP auths.smtphost=Host SMTP auths.smtpport=Porta SMTP +auths.allowed_domains=Domínios autorizados +auths.allowed_domains_helper=Deixe em branco para permitir qualquer domínio do host SMTP. Vários domínios devem ser separados por vírgula ','. auths.enable_tls=Habilitar Criptografia TLS -auths.skip_tls_verify=Skip TLS Verify +auths.skip_tls_verify=Ignorar verificação de TLS auths.pam_service_name=Nome de Serviço PAM auths.enable_auto_register=Habilitar Registro Automático auths.tips=Dicas -auths.edit=Editar Configuração da Autorização +auths.edit=Editar a configuração de autenticação auths.activated=Esta autenticação foi ativada -auths.update_success=A configuração da autorização foi atualizada com sucesso. -auths.update=Atualizar Configuração da Autorização -auths.delete=Excluir Esta Autorização -auths.delete_auth_title=Exclusão da Autorização -auths.delete_auth_desc=Esta autorização será excluída, deseja continuar? +auths.new_success=New authentication '%s' has been added successfully. +auths.update_success=A configuração da autenticação foi atualizada com sucesso. +auths.update=Atualizar a configuração da autenticação +auths.delete=Excluir esta autenticação +auths.delete_auth_title=Exclusão da autenticação +auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue? +auths.deletion_success=Authentication has been deleted successfully! config.server_config=Configuração do Servidor config.app_name=Nome do Aplicativo @@ -858,14 +887,16 @@ config.db_user=Usuário config.db_ssl_mode=Modo SSL config.db_ssl_mode_helper=(apenas para "postgres") config.db_path=Caminho -config.db_path_helper=(apenas para "sqlite3") +config.db_path_helper=(para "sqlite3" e "tidb") config.service_config=Configuração do Serviço config.register_email_confirm=Requerer Confirmação de E-mail config.disable_register=Desabilitar Registro config.show_registration_button=Mostrar Botão de Registo config.require_sign_in_view=Requerer Entrar no Gogs para Ver -config.mail_notify=Notificação de Correio config.enable_cache_avatar=Habilitar Cache de Avatar +config.mail_notify=Notificação de Correio +config.disable_key_size_check=Disable Minimum Key Size Check +config.enable_captcha=Habilitar o Captcha config.active_code_lives=Ativar Code Lives config.reset_password_code_lives=Redefinir Senha de Code Lives config.webhook_config=Configuração de Hook da Web diff --git a/conf/locale/locale_ru-RU.ini b/conf/locale/locale_ru-RU.ini index c7aeffe44..68b065ef0 100755 --- a/conf/locale/locale_ru-RU.ini +++ b/conf/locale/locale_ru-RU.ini @@ -5,7 +5,6 @@ dashboard=Панель мониторинга explore=Обзор help=Помощь sign_in=Войти -social_sign_in=Вход через соцсеть: 2-й шаг свяжите учетную запись sign_out=Выход sign_up=Регистрация register=Зарегистрироваться @@ -14,7 +13,7 @@ version=Версия page=Страница template=Шаблон language=Язык -create_new=Создать новый... +create_new=Создать... user_profile_and_more=Профиль и остальное signed_in_as=Вы вошли как @@ -54,7 +53,8 @@ code=Код [install] install=Установка title=Установочные шаги для первого запуска -requite_db_desc=Для Gogs требуется MySQL, PostgreSQL или SQLite3. +docker_helper=Если вы используете Gogs в Docker-контейнере, пожалуйста прочтите эти советы, перед тем как что-либо изменить! +requite_db_desc=Gogs требует MySQL, PostgreSQL, SQLite3 или TiDB. db_title=Настройки базы данных db_type=Тип базы данных host=Хост @@ -64,8 +64,11 @@ db_name=Имя базы данных db_helper=Для MySQL используйте тип таблиц InnoDB с кодировкой utf8_general_ci. ssl_mode=Режим SSL path=Путь -sqlite_helper=Путь к файлу базы данных SQLite3. -err_empty_sqlite_path=Путь к базе данных SQLite3 не может быть пустым. +sqlite_helper=Путь до базы данных SQLite или TiDB. +err_empty_db_path=Путь к базе данных SQLite3 или TiDB не может быть пустым. +err_invalid_tidb_name=Название базы данных TiDB не может содержать символы "." и "-". +no_admin_and_disable_registration=Вы не можете отключить регистрацию, не создав аккаунт администратора. +err_empty_admin_password=Пароль администратора не может быть пустым. general_title=Общие параметры Gogs app_name=Имя приложения @@ -99,6 +102,8 @@ disable_gravatar=Отключить службу Gravatar disable_gravatar_popup=Disable Gravatar and custom sources, all avatars are uploaded by users or default. disable_registration=Отключить самостоятельную регистрацию disable_registration_popup=Запретить пользователям самостоятельную регистрацию, только администратор может создавать аккаунты. +enable_captcha=Включить капчу +enable_captcha_popup=Запрашивать капчу при регистрации пользователя. require_sign_in_view=Разрешить требовать авторизацию для просмотра страниц require_sign_in_view_popup=Только авторизированные пользователи могут просматривать страницы, посетители смогут увидеть только ссылку на авторизацию вверху страницы. admin_setting_desc=Вы не должны создать учетную запись администратора прямо сейчас, пользователь с ID = 1 получит доступ с правами администратора автоматически. @@ -143,7 +148,7 @@ forgot_password=Забыли пароль forget_password=Забыли пароль? sign_up_now=Нужен аккаунт? Зарегистрируйтесь. confirmation_mail_sent_prompt=Новое письмо для подтверждения было направлено на %s, пожалуйста, проверьте ваш почтовый ящик в течение %d часов для завершения регистрации. -sign_in_email=Войдите в свой адрес электронной почты +sign_in_to_account=Войдите свой аккаунт active_your_account=Активируйте свой аккаунт resent_limit_prompt=Вы слишком часто отправляете письмо с активацией. Подождите 3 минуты, пожалуйста. has_unconfirmed_mail=Здравствуйте, %s! У вас есть неподтвержденный адрес электронной почты (%s). Если вам не приходило письмо с подтверждением или нужно выслать новое письмо, нажмите на кнопку ниже. @@ -155,6 +160,12 @@ invalid_code=Извините, ваш код подтверждения исте reset_password_helper=Нажмите здесь, чтобы сбросить свой пароль password_too_short=Длина пароля не менее 6 символов. +[mail] +activate_account=Пожалуйста активируйте свой аккаунт +activate_email=Подтвердите адрес своей электронной почты +reset_password=Восстановите ваш пароль +register_success=Регистрация окончена. Добро пожаловать! + [modal] yes=Да no=Нет @@ -241,7 +252,7 @@ location=Местоположение update_profile=Обновить профиль update_profile_success=Ваш профиль был успешно обновлен. change_username=Имя пользователя изменено -change_username_desc=Имя пользователя изменено, вы хотите продолжить? Это повлияет на все ссылки, связанные с вашей учетной записью. +change_username_prompt=Это изменение может повлечь за собой изменение ссылок относительно вашего аккаунта. continue=Далее cancel=Отмена @@ -256,6 +267,7 @@ update_avatar_success=Настройка вашего аватара обнов change_password=Сменить пароль old_password=Текущий пароль new_password=Новый пароль +retype_new_password=Подтверждение нового пароля password_incorrect=Текущий пароль не правильный. change_password_success=Пароль сменен успешно. Теперь вы можете войти с новым паролем. @@ -265,9 +277,12 @@ email_desc=Ваш основной адрес электронной почты primary=Основной primary_email=Установить как основной delete_email=Удалить +email_deletion=Удаление адреса электронной почты +email_deletion_desc=Удаление этого адреса электронной почты, приведет к удалению связанной с вашим аккаунтом, информации. Вы точно хотите продолжить? +email_deletion_success=Адрес электронной почты успешно удален. add_new_email=Добавить новый адрес электронной почты add_email=Добавить электронную почту -add_email_confirmation_sent=Новое подтверждение по электронной почте было отправлено%s, пожалуйста, проверьте свой почтовый ящик в течение следующих %d часов, чтобы завершить процесс подтверждения. +add_email_confirmation_sent=Новое подтверждение по электронной почте было отправлено '%s', пожалуйста, проверьте свой почтовый ящик в течение следующих %d часов, чтобы завершить процесс подтверждения. add_email_success=Новый адрес электронной почты успешно добавлен. manage_ssh_keys=Управление SSH ключами @@ -325,12 +340,12 @@ fork_from=Ответвление от fork_visiblity_helper=Ответвленному репозиторию нельзя поменять уровень видимости repo_desc=Описание repo_lang=Язык -repo_lang_helper=Select .gitignore files +repo_lang_helper=Выберите файлы .gitignore license=Лицензия license_helper=Выберите файл лицензии readme=Readme -readme_helper=Select a readme template -auto_init=Initialize this repository selected files and template +readme_helper=Выберите шаблон для файла readme +auto_init=Инициализировать этот репозиторий выбранными файлами и шаблоном create_repo=Создать репозиторий default_branch=Ветка по умолчанию mirror_interval=Интервал зеркалирования (час) @@ -349,6 +364,8 @@ migrate.invalid_local_path=Недопустимый локальный путь. forked_from=forked from fork_from_self=Вы не можете форкнуть репозитарий, так как Вы уже его владелец! copy_link=Скопировать +copy_link_success=Скопировано! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=Скопировать в буфер обмена copied=Успешно скопировано clone_helper=Нужна помощь в клонировании? Посетите страницу помощи! @@ -363,6 +380,8 @@ quick_guide=Краткое руководство clone_this_repo=Клонировать репозиторий create_new_repo_command=Создать новый репозиторий из командной строки push_exist_repo=Отправить существующий репозиторий из командной строки +repo_is_empty=This repository is empty, please come back later! + branch=Ветка tree=Дерево @@ -390,9 +409,9 @@ commits.older=Раньше commits.newer=Новее issues.new=Новая задача -issues.new.labels=Labels -issues.new.no_label=No Label -issues.new.clear_labels=Clear labels +issues.new.labels=Метки +issues.new.no_label=Не метка +issues.new.clear_labels=Отчистить метки issues.new.milestone=Milestone issues.new.no_milestone=No Milestone issues.new.clear_milestone=Clear milestone @@ -418,9 +437,9 @@ issues.filter_type.all_issues=Все задачи issues.filter_type.assigned_to_you=Назначено Вам issues.filter_type.created_by_you=Созданные вами issues.filter_type.mentioning_you=Вы упомянуты -issues.filter_sort=Sort -issues.filter_sort.latest=Newest -issues.filter_sort.oldest=Oldest +issues.filter_sort=Сортировать +issues.filter_sort.latest=Новейшие +issues.filter_sort.oldest=Старейшие issues.filter_sort.recentupdate=Recently updated issues.filter_sort.leastupdate=Least recently updated issues.filter_sort.mostcomment=Most commented @@ -443,11 +462,11 @@ issues.closed_at=`closed %[2]s` issues.reopened_at=`reopened %[2]s` issues.commit_ref_at=`referenced this issue from a commit %[2]s` issues.poster=Poster -issues.admin=Admin -issues.owner=Owner -issues.sign_up_for_free=Sign up for free +issues.admin=Администратор +issues.owner=Владелец +issues.sign_up_for_free=Зарегистрируйтесь бесплатно issues.sign_in_require_desc=to join this conversation. Already have an account? Sign in to comment -issues.edit=Edit +issues.edit=Изменить issues.cancel=Cancel issues.save=Save issues.label_title=Имя метки @@ -472,9 +491,9 @@ pulls.has_pull_request=`There is already a pull request between these two target pulls.create=Create Pull Request pulls.title_desc=wants to merge %[1]d commits from %[2]s into %[3]s pulls.merged_title_desc=merged %[1]d commits from %[2]s into %[3]s %[4]s -pulls.tab_conversation=Conversation -pulls.tab_commits=Commits -pulls.tab_files=Files changed +pulls.tab_conversation=Обсуждение +pulls.tab_commits=Коммиты +pulls.tab_files=Измененные файлы pulls.reopen_to_merge=Please reopen this pull request to perform merge operation. pulls.merged=Merged pulls.has_merged=This pull request has been merged successfully! @@ -630,7 +649,6 @@ release.tag_name_already_exist=Релиз с этим именем тега уж [org] org_name_holder=Название организации org_name_helper=Лучшие названия организаций коротки и запоминаемы. -org_email_helper=Почта организации получает все уведомления и подтверждения. create_org=Создать Организацию repo_updated=Обновлено people=Люди @@ -655,9 +673,9 @@ settings.full_name=Полное имя settings.website=Сайт settings.location=Местоположение settings.update_settings=Обновить настройки -settings.change_orgname=Имя Организации изменено -settings.change_orgname_desc=Изменилось название организации, вы хотите продолжить? Это повлияет на все ссылки относящиеся к этой Организации. settings.update_setting_success=Настройки Организации были успешно обновлены. +settings.change_orgname_prompt=This change will affect how links relate to the organization. +settings.update_avatar_success=Organization avatar setting has been updated successfully. settings.delete=Удалить Организацию settings.delete_account=Удалить Эту Организацию settings.delete_prompt=Это действие безвозвратно удалит эту организацию навсегда. @@ -713,8 +731,9 @@ authentication=Авторизация config=Настройки notices=Системные уведомления monitor=Мониторинг -prev=Предыдущий. -next=Следующий +first_page=First +last_page=Last +total=Total: %d dashboard.statistic=Статистика dashboard.operations=Операции @@ -773,10 +792,13 @@ users.activated=Активирован users.admin=Администратор users.repos=Репозитории users.created=Создано +users.send_register_notify=Send Registration Notification To User +users.new_success=New account '%s' has been created successfully. users.edit=Редактировать -users.auth_source=Источник авторизации +users.auth_source=Authentication Source users.local=Локальный -users.auth_login_name=Authorization Login Name +users.auth_login_name=Authentication Login Name +users.password_helper=Leave it empty to remain unchanged. users.update_profile_success=Профиль учетной записи обновлен успешно. users.edit_account=Изменение учетной записи users.is_activated=Эта учетная запись активирована @@ -786,6 +808,7 @@ users.update_profile=Обновить профиль учетной записи users.delete_account=Удалить эту учетную запись users.still_own_repo=На вашем аккаунте все еще остается как минимум один репозиторий, сначала вам нужно удалить или передать его. users.still_has_org=This account still has membership in at least one organization, you have to leave or delete the organizations first. +users.deletion_success=Account has been deleted successfully! orgs.org_manage_panel=Управление группами orgs.name=Имя @@ -800,41 +823,47 @@ repos.watches=Следят repos.stars=В избранном repos.issues=Вопросы -auths.auth_manage_panel=Authorization Manage Panel -auths.new=Add New Authorization Source +auths.auth_manage_panel=Authentication Manage Panel +auths.new=Add New Source auths.name=Имя auths.type=Тип auths.enabled=Включено auths.updated=Обновлено -auths.auth_type=Тип авторизации -auths.auth_name=Название авторизации +auths.auth_type=Authentication Type +auths.auth_name=Authentication Name auths.domain=Домен auths.host=Хост auths.port=Порт auths.bind_dn=Bind DN auths.bind_password=Bind Password +auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account. auths.user_base=User Search Base +auths.user_dn=User DN auths.attribute_name=First name attribute auths.attribute_surname=Surname attribute auths.attribute_mail=E-mail attribute auths.filter=User Filter auths.admin_filter=Admin Filter auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=Тип авторизации SMTP +auths.smtp_auth=SMTP Authentication Type auths.smtphost=Узел SMTP auths.smtpport=SMTP-порт +auths.allowed_domains=Allowed Domains +auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','. auths.enable_tls=Включение шифрования TLS auths.skip_tls_verify=Skip TLS Verify auths.pam_service_name=PAM Service Name auths.enable_auto_register=Включить автоматическую регистрацию auths.tips=Советы -auths.edit=Редактировать параметры авторизации +auths.edit=Edit Authentication Setting auths.activated=Эта аутентификация активирована -auths.update_success=Настройка авторизации обновлена успешно. -auths.update=Обновить параметры авторизации -auths.delete=Удалить эту авторизацию -auths.delete_auth_title=Удаление авторизации -auths.delete_auth_desc=Эта авторизация будет удалена. Вы хотите продолжить? +auths.new_success=New authentication '%s' has been added successfully. +auths.update_success=Authentication setting has been updated successfully. +auths.update=Update Authentication Setting +auths.delete=Delete This Authentication +auths.delete_auth_title=Authentication Deletion +auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue? +auths.deletion_success=Authentication has been deleted successfully! config.server_config=Конфигурация сервера config.app_name=Имя приложения @@ -858,14 +887,16 @@ config.db_user=Пользователь config.db_ssl_mode=Режим SSL config.db_ssl_mode_helper=(только для «postgres») config.db_path=Путь -config.db_path_helper=(for "sqlite3" only) +config.db_path_helper=(for "sqlite3" and "tidb") config.service_config=Service Configuration config.register_email_confirm=Require E-mail Confirmation config.disable_register=Отключить регистрацию config.show_registration_button=Show Register Button config.require_sign_in_view=Для просмотра необходима авторизация -config.mail_notify=Почтовые уведомления config.enable_cache_avatar=Кешировать аватар +config.mail_notify=Почтовые уведомления +config.disable_key_size_check=Disable Minimum Key Size Check +config.enable_captcha=Enable Captcha config.active_code_lives=Active Code Lives config.reset_password_code_lives=Reset Password Code Lives config.webhook_config=Настройка автоматического обновления репозиции diff --git a/conf/locale/locale_zh-CN.ini b/conf/locale/locale_zh-CN.ini index 892a54695..afe1e9b5a 100755 --- a/conf/locale/locale_zh-CN.ini +++ b/conf/locale/locale_zh-CN.ini @@ -5,7 +5,6 @@ dashboard=控制面板 explore=探索 help=帮助 sign_in=登录 -social_sign_in=社交帐号登录:第 2 步 关联帐号 sign_out=退出 sign_up=注册 register=注册 @@ -14,7 +13,7 @@ version=当前版本 page=页面 template=模板 language=语言选项 -create_new=创建新的... +create_new=创建... user_profile_and_more=用户信息及更多 signed_in_as=已登录用户 @@ -54,7 +53,8 @@ code=代码 [install] install=安装页面 title=首次运行安装程序 -requite_db_desc=Gogs 允许后端数据库为 MySQL、PostgreSQL 或 SQLite3。 +docker_helper=如果您正在使用 Docker 容器运行 Gogs,请务必先仔细阅读 官方文档 后再对本页面进行填写。 +requite_db_desc=Gogs 要求安装 MySQL、PostgreSQL、SQLite3 或 TiDB。 db_title=数据库设置 db_type=数据库类型 host=数据库主机 @@ -64,8 +64,11 @@ db_name=数据库名称 db_helper=如果您使用 MySQL,请使用 INNODB 引擎以及 utf8_general_ci 字符集。 ssl_mode=SSL 模式 path=数据库文件路径 -sqlite_helper=SQLite3 数据库的文件路径。 -err_empty_sqlite_path=SQLite 数据库文件路径不能为空。 +sqlite_helper=SQLite3 或 TiDB 的数据库路径。 +err_empty_db_path=SQLite3 或 TiDB 的数据库路径不能为空。 +err_invalid_tidb_name=TiDB 数据库名称不允许包含字符 "." 或 "-" 。 +no_admin_and_disable_registration=您不能够在未创建管理员用户的情况下禁止注册。 +err_empty_admin_password=管理员密码不能为空。 general_title=应用基本设置 app_name=应用名称 @@ -99,6 +102,8 @@ disable_gravatar=禁用 Gravatar 服务 disable_gravatar_popup=禁用 Gravatar 和自定义源,仅使用由用户上传的或默认的头像。 disable_registration=禁止用户自主注册 disable_registration_popup=禁止用户自行注册功能,只有管理员可以添加帐号。 +enable_captcha=启用验证码服务 +enable_captcha_popup=要求在用户注册时输入预验证码 require_sign_in_view=启用登录访问限制 require_sign_in_view_popup=只有已登录的用户才能够访问页面,否则将只能看到登录或注册页面。 admin_setting_desc=创建管理员帐号并不是必须的,因为 ID=1 的用户将自动获得管理员权限。 @@ -143,7 +148,7 @@ forgot_password=忘记密码 forget_password=忘记密码? sign_up_now=还没帐户?马上注册。 confirmation_mail_sent_prompt=一封新的确认邮件已经被发送至 %s,请检查您的收件箱并在 %d 小时内完成确认注册操作。 -sign_in_email=登录到您的邮箱 +sign_in_to_account=登录到您的帐户 active_your_account=激活您的帐户 resent_limit_prompt=对不起,您请求发送激活邮件过于频繁,请等待 3 分钟后再试! has_unconfirmed_mail=%s 您好,系统检测到您有一封发送至 %s 但未被确认的邮件。如果您未收到激活邮件,或需要重新发送,请单击下方的按钮。 @@ -155,6 +160,12 @@ invalid_code=对不起,您的确认代码已过期或已失效。 reset_password_helper=单击此处重置密码 password_too_short=密码长度不能少于 6 位! +[mail] +activate_account=请激活您的帐户 +activate_email=请验证您的邮箱地址 +reset_password=重置您的密码 +register_success=注册成功,欢迎使用 + [modal] yes=确认操作 no=取消操作 @@ -241,7 +252,7 @@ location=所在地区 update_profile=更新信息 update_profile_success=您的个人信息更新成功! change_username=用户名将被修改 -change_username_desc=用户名被修改,您确定要继续操作吗?这将会影响到所有与您帐户有关的链接。 +change_username_prompt=该操作将会影响到所有与您帐户有关的链接 continue=继续操作 cancel=取消操作 @@ -256,6 +267,7 @@ update_avatar_success=您的头像设置更新成功! change_password=修改密码 old_password=当前密码 new_password=新的密码 +retype_new_password=重新输入新的密码 password_incorrect=当前密码不正确! change_password_success=密码修改成功!您现在可以使用新的密码登录。 @@ -265,9 +277,12 @@ email_desc=您的主要邮箱地址将被用于通知提醒和其它操作。 primary=主要 primary_email=设为主要 delete_email=删除 +email_deletion=邮箱删除操作 +email_deletion_desc=删除该邮箱地址将会移除所有相关的信息。是否继续? +email_deletion_success=邮箱删除成功! add_new_email=添加新的邮箱地址 add_email=添加邮箱 -add_email_confirmation_sent=一封待确认的电子邮件已发送到 %s,请在 %d 小时内检查您的收件箱,并完成确认过程。 +add_email_confirmation_sent=一封待确认的电子邮件已发送到 '%s',请在 %d 小时内检查您的收件箱,并完成确认过程。 add_email_success=新的邮箱地址添加成功! manage_ssh_keys=管理 SSH 密钥 @@ -281,7 +296,7 @@ key_name=密钥名称 key_content=密钥内容 add_key_success=新的 SSH 密钥 '%s' 添加成功! delete_key=删除 -ssh_key_deletion=删除 SSH 公钥 +ssh_key_deletion=删除 SSH 公钥操作 ssh_key_deletion_desc=删除该 SSH 公钥将删除所有与您帐户相关的访问权限。是否继续? ssh_key_deletion_success=SSH 公钥删除成功! add_on=增加于 @@ -303,7 +318,7 @@ token_name=令牌名称 generate_token=生成令牌 generate_token_succees=新的操作令牌生成成功!您必须立即复制到一个安全的地方,因为该令牌只会显示一次! delete_token=删除令牌 -access_token_deletion=删除个人操作令牌 +access_token_deletion=删除个人操作令牌操作 access_token_deletion_desc=删除该个人操作令牌将删除所有相关的应用程序的访问权限。是否继续? delete_token_success=个人操作令牌删除成功!请更新与该令牌有关的所有应用。 @@ -349,6 +364,8 @@ migrate.invalid_local_path=无效的本地路径,不存在或不是一个目 forked_from=派生自 fork_from_self=无法派生已经拥有的仓库! copy_link=复制链接 +copy_link_success=复制成功! +copy_link_error=请按下 ⌘-C 或 Ctrl-C 复制 click_to_copy=复制到剪切板 copied=复制成功 clone_helper=不知道如何操作?访问 此处 查看帮助! @@ -363,6 +380,8 @@ quick_guide=快速帮助 clone_this_repo=克隆当前仓库 create_new_repo_command=从命令行创建一个新的仓库 push_exist_repo=从命令行推送已经创建的仓库 +repo_is_empty=该仓库不包含任何内容,请稍后再进行访问! + branch=分支 tree=目录树 @@ -457,7 +476,7 @@ issues.label_open_issues=%d 个开启的工单 issues.label_edit=编辑 issues.label_delete=删除 issues.label_modify=修改标签 -issues.label_deletion=删除标签 +issues.label_deletion=删除标签操作 issues.label_deletion_desc=删除该标签将会移除所有工单中相关的信息。是否继续? issues.label_deletion_success=标签删除成功! @@ -504,7 +523,7 @@ milestones.edit_subheader=使用更加清晰的描述来帮助人们更好地理 milestones.cancel=取消 milestones.modify=修改里程碑 milestones.edit_success=里程碑 '%s' 的修改内容已经生效! -milestones.deletion=删除里程碑 +milestones.deletion=删除里程碑操作 milestones.deletion_desc=删除该里程碑将会移除所有工单中相关的信息。是否继续? milestones.deletion_success=里程碑删除成功! @@ -630,7 +649,6 @@ release.tag_name_already_exist=已经存在使用相同标签进行发布的版 [org] org_name_holder=组织名称 org_name_helper=伟大的组织都有一个简短而寓意深刻的名字。 -org_email_helper=组织的邮箱用于接收所有通知和确认邮件。 create_org=创建组织 repo_updated=最后更新于 people=组织成员 @@ -655,9 +673,9 @@ settings.full_name=组织全名 settings.website=官方网站 settings.location=所在地区 settings.update_settings=更新组织设置 -settings.change_orgname=组织名称将被修改 -settings.change_orgname_desc=组织名称被修改,您确定要继续操作吗?这将会影响到所有与该组织有关的链接。 settings.update_setting_success=组织设置更新成功! +settings.change_orgname_prompt=该操作将会影响到所有与该组织有关的链接 +settings.update_avatar_success=组织头像更新成功! settings.delete=删除组织 settings.delete_account=删除当前组织 settings.delete_prompt=删除操作会永久清除该组织的信息,并且 不可恢复! @@ -713,8 +731,9 @@ authentication=授权认证管理 config=应用配置管理 notices=系统提示管理 monitor=应用监控面板 -prev=上一页 -next=下一页 +first_page=首页 +last_page=末页 +total=总计:%d dashboard.statistic=应用统计数据 dashboard.operations=管理员操作 @@ -773,10 +792,13 @@ users.activated=已激活 users.admin=管理员 users.repos=仓库数 users.created=创建时间 +users.send_register_notify=向用户发送注册通知邮件 +users.new_success=新的用户 '%s' 创建成功! users.edit=编辑 users.auth_source=认证源 users.local=本地 -users.auth_login_name=认证登录名 +users.auth_login_name=认证登录名称 +users.password_helper=将值留空使其保持不变。 users.update_profile_success=该用户信息更新成功! users.edit_account=编辑用户信息 users.is_activated=该用户已被激活 @@ -786,6 +808,7 @@ users.update_profile=更新用户信息 users.delete_account=删除该用户 users.still_own_repo=该帐户仍然是某些仓库的拥有者,您必须先转移或删除它们才能执行删除帐户操作! users.still_has_org=该帐户仍旧是某些组织的成员,您必须先使其离开或删除组织。 +users.deletion_success=用户删除成功! orgs.org_manage_panel=组织管理面板 orgs.name=组织名称 @@ -800,41 +823,47 @@ repos.watches=关注数 repos.stars=点赞数 repos.issues=工单数 -auths.auth_manage_panel=授权认证管理面板 -auths.new=添加新的认证源 +auths.auth_manage_panel=认证管理面板 +auths.new=添加新的源 auths.name=认证名称 auths.type=认证类型 auths.enabled=已启用 auths.updated=最后更新时间 -auths.auth_type=授权类型 -auths.auth_name=授权名称 +auths.auth_type=认证类型 +auths.auth_name=认证名称 auths.domain=域名 auths.host=主机地址 auths.port=主机端口 auths.bind_dn=绑定 DN auths.bind_password=绑定密码 +auths.bind_password_helper=警告:该密码将会以明文的形式保存在数据库中。请不要使用拥有高权限的帐户! auths.user_base=用户搜索基准 +auths.user_dn=User DN auths.attribute_name=名字属性 auths.attribute_surname=姓氏属性 auths.attribute_mail=邮箱属性 auths.filter=用户过滤规则 auths.admin_filter=管理员过滤规则 auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=SMTP 授权类型 +auths.smtp_auth=SMTP 认证类型 auths.smtphost=SMTP 主机地址 auths.smtpport=SMTP 主机端口 +auths.allowed_domains=域名白名单 +auths.allowed_domains_helper=将值留空表示不对域名做任何限制。多个域名之间需要使用逗号 ',' 分隔。 auths.enable_tls=启用 TLS 加密 auths.skip_tls_verify=忽略 TLS 验证 auths.pam_service_name=PAM 服务名称 auths.enable_auto_register=允许授权用户自动注册 auths.tips=帮助提示 -auths.edit=修改授权认证设置 +auths.edit=编辑认证设置 auths.activated=该授权认证已经启用 -auths.update_success=授权认证设置更新成功! -auths.update=更新授权认证信息 -auths.delete=删除该授权认证 -auths.delete_auth_title=授权认证删除操作 -auths.delete_auth_desc=该授权认证将被删除,您确定要继续吗? +auths.new_success=新的授权源 "%s" 添加成功! +auths.update_success=认证设置更新成功! +auths.update=更新认证设置 +auths.delete=删除该认证 +auths.delete_auth_title=删除认证操作 +auths.delete_auth_desc=该认证将被删除。是否继续? +auths.deletion_success=授权源删除成功! config.server_config=服务器配置 config.app_name=应用名称 @@ -858,14 +887,16 @@ config.db_user=连接用户 config.db_ssl_mode=SSL 模式 config.db_ssl_mode_helper=(仅限 "postgres" 使用) config.db_path=数据库路径 -config.db_path_helper=(仅限 "sqlite3" 使用) +config.db_path_helper=(用于 "sqlite3" 和 "tidb") config.service_config=服务配置 config.register_email_confirm=注册邮件确认 config.disable_register=关闭注册功能 config.show_registration_button=显示注册按钮 config.require_sign_in_view=强制登录浏览 -config.mail_notify=邮件通知提醒 config.enable_cache_avatar=开启缓存头像 +config.mail_notify=邮件通知提醒 +config.disable_key_size_check=禁用密钥最小长度检查 +config.enable_captcha=启用验证码服务 config.active_code_lives=激活用户链接有效期 config.reset_password_code_lives=重置密码链接有效期 config.webhook_config=Web 钩子配置 diff --git a/conf/locale/locale_zh-HK.ini b/conf/locale/locale_zh-HK.ini index a0d1e9539..b5b2f9168 100755 --- a/conf/locale/locale_zh-HK.ini +++ b/conf/locale/locale_zh-HK.ini @@ -5,7 +5,6 @@ dashboard=控制面版 explore=探索 help=幫助 sign_in=登錄 -social_sign_in=社交帳號登錄:第 2 步 關聯帳號 sign_out=退出 sign_up=註冊 register=註冊 @@ -14,7 +13,7 @@ version=當前版本 page=頁面 template=模版 language=語言選項 -create_new=創建新的... +create_new=Create... user_profile_and_more=用戶信息及更多 signed_in_as=已登錄用戶 @@ -54,7 +53,8 @@ code=程式碼 [install] install=安裝頁面 title=首次執行安裝程序 -requite_db_desc=Gogs 允許後端數據庫為 MySQL、PostgreSQL 或 SQLite3,但是 SQLite3 一般只有官方二進制發行版才支持。 +docker_helper=If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page! +requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB. db_title=數據庫設置 db_type=數據庫類型 host=數據庫主機 @@ -64,8 +64,11 @@ db_name=數據庫名稱 db_helper=如果您使用 MySQL,請使用 INNODB 引擎以及 utf8_general_ci 字符集。 ssl_mode=SSL 模式 path=數據庫文件路徑 -sqlite_helper=SQLite3 數據庫的文件路徑。 -err_empty_sqlite_path=SQLite 數據庫文件路徑不能為空。 +sqlite_helper=The file path of SQLite3 or TiDB database. +err_empty_db_path=SQLite3 or TiDB database path cannot be empty. +err_invalid_tidb_name=TiDB database name does not allow characters "." and "-". +no_admin_and_disable_registration=You cannot disable registration without creating an admin account. +err_empty_admin_password=Admin password cannot be empty. general_title=應用基本設置 app_name=應用名稱 @@ -99,6 +102,8 @@ disable_gravatar=禁用 Gravatar 服務 disable_gravatar_popup=禁用 Gravatar 和自定義源,僅使用由用戶上傳或默認的頭像。 disable_registration=禁止用戶自主註冊 disable_registration_popup=禁止用戶自主註冊功能,只有管理員可以添加帳號。 +enable_captcha=Enable Captcha +enable_captcha_popup=Require validate captcha for user self-registration. require_sign_in_view=啓用登錄訪問限制 require_sign_in_view_popup=只有已登錄的用戶才能夠訪問頁面,否則將只能看到登錄或註冊頁面。 admin_setting_desc=創建管理員帳號並不是必須的,因為 ID=1 的用戶將自動獲得管理員權限。 @@ -143,7 +148,7 @@ forgot_password=忘記密碼 forget_password=忘記密碼? sign_up_now=還沒帳戶?馬上註冊。 confirmation_mail_sent_prompt=一封新的確認郵件已經被發送至 %s,請檢查您的收件箱並在 %d 小時內完成確認註冊操作。 -sign_in_email=登錄到您的郵箱 +sign_in_to_account=Sign in to your account active_your_account=激活您的帳戶 resent_limit_prompt=對不起,您請求發送激活郵件過於頻繁,請等待 3 分鐘後再試! has_unconfirmed_mail=%s 您好,您有一封發送至( %s) 但未被確認的郵件。如果您未收到激活郵件,或需要重新發送,請單擊下方的按鈕。 @@ -155,6 +160,12 @@ invalid_code=對不起,您的確認代碼已過期或已失效。 reset_password_helper=單擊此處重置密碼 password_too_short=密碼長度不能少於 6 位! +[mail] +activate_account=Please activate your account +activate_email=Verify your e-mail address +reset_password=Reset your password +register_success=Register success, Welcome + [modal] yes=確認操作 no=取消操作 @@ -241,7 +252,7 @@ location=所在地區 update_profile=更新信息 update_profile_success=您的個人信息更新成功! change_username=用戶名將被修改 -change_username_desc=用戶名被修改,您確定要繼續操作嗎?這將會影響到所有與您帳戶有關的連結。 +change_username_prompt=This change will affect the way how links relate to your account. continue=繼續操作 cancel=取消操作 @@ -256,6 +267,7 @@ update_avatar_success=您的頭像設置更新成功! change_password=修改密碼 old_password=當前密碼 new_password=新的密碼 +retype_new_password=Retype New Password password_incorrect=當前密碼不正確! change_password_success=密碼修改成功!您現在可以使用新的密碼登錄。 @@ -265,9 +277,12 @@ email_desc=您的主要邮箱地址将被用于通知提醒和其它操作。 primary=主要 primary_email=设为主要 delete_email=刪除 +email_deletion=E-mail Deletion +email_deletion_desc=Delete this e-mail address will remove related information from your account. Do you want to continue? +email_deletion_success=E-mail has been deleted successfully! add_new_email=添加新的電子郵件地址 add_email=添加電子郵件 -add_email_confirmation_sent=一封待確認的電子郵件已發送到%s,請在%d 小時內檢查您的收件箱,並完成確認過程。 +add_email_confirmation_sent=一封待確認的電子郵件已發送到 '%s',請在%d 小時內檢查您的收件箱,並完成確認過程。 add_email_success=新的邮箱地址添加成功。 manage_ssh_keys=管理 SSH 密鑰 @@ -330,7 +345,7 @@ license=授權許可 license_helper=請選擇授權許可文件 readme=Readme readme_helper=Select a readme template -auto_init=Initialize this repository selected files and template +auto_init=Initialize this repository with selected files and template create_repo=創建倉庫 default_branch=默認分支 mirror_interval=鏡像同步周期(小時) @@ -349,6 +364,8 @@ migrate.invalid_local_path=無效的本地路徑,該路徑不存在或不是 forked_from=派生自 fork_from_self=無法派生已經擁有的倉庫! copy_link=複製連結 +copy_link_success=Copied! +copy_link_error=Press ⌘-C or Ctrl-C to copy click_to_copy=複製到剪切簿 copied=複製成功 clone_helper=不知道如何操作?訪問 帮助説明 ! @@ -363,6 +380,8 @@ quick_guide=快速幫助 clone_this_repo=複製當前倉庫 create_new_repo_command=從命令行創建一個新的倉庫 push_exist_repo=從命令行推送已經創建的倉庫 +repo_is_empty=This repository is empty, please come back later! + branch=分支 tree=目錄樹 @@ -630,7 +649,6 @@ release.tag_name_already_exist=已經存在使用相同標籤的發佈版本。 [org] org_name_holder=組織名稱 org_name_helper=偉大的組織都有一個簡短而寓意深刻的名字。 -org_email_helper=組織的郵箱用於接收所有通知和確認郵件。 create_org=創建組織 repo_updated=最後更新於 people=組織成員 @@ -655,9 +673,9 @@ settings.full_name=組織全名 settings.website=官方網站 settings.location=所在地區 settings.update_settings=更新組織設置 -settings.change_orgname=組織名稱將被修改 -settings.change_orgname_desc=組織名稱被修改,您確定要繼續操作嗎?這將會影響到所有與該組織有關的連結。 settings.update_setting_success=組織設置更新成功! +settings.change_orgname_prompt=This change will affect how links relate to the organization. +settings.update_avatar_success=Organization avatar setting has been updated successfully. settings.delete=刪除組織 settings.delete_account=刪除當前組織 settings.delete_prompt=刪除操作會永久清除該組織的信息,並且 不可恢復! @@ -713,8 +731,9 @@ authentication=授權認證管理 config=應用配置管理 notices=系統提示管理 monitor=應用監控面版 -prev=上一頁 -next=下一頁 +first_page=First +last_page=Last +total=Total: %d dashboard.statistic=應用統計數據 dashboard.operations=管理員操作 @@ -773,10 +792,13 @@ users.activated=已激活 users.admin=管理員 users.repos=倉庫數 users.created=創建時間 +users.send_register_notify=Send Registration Notification To User +users.new_success=New account '%s' has been created successfully. users.edit=編輯 -users.auth_source=認證源 +users.auth_source=Authentication Source users.local=本地 -users.auth_login_name=認證登錄名 +users.auth_login_name=Authentication Login Name +users.password_helper=Leave it empty to remain unchanged. users.update_profile_success=該用戶信息更新成功! users.edit_account=編輯用戶信息 users.is_activated=該用戶已被激活 @@ -786,6 +808,7 @@ users.update_profile=更新用戶信息 users.delete_account=刪除該用戶 users.still_own_repo=該帳戶仍然是某些倉庫的擁有者,您必須先轉移或刪除它們才能執行刪除帳戶操作! users.still_has_org=該帳戶仍舊是某些組織的成員,您必須先使其離開或刪除組織。 +users.deletion_success=Account has been deleted successfully! orgs.org_manage_panel=組織管理面版 orgs.name=組織名稱 @@ -800,41 +823,47 @@ repos.watches=關註數 repos.stars=讚好數 repos.issues=問題數 -auths.auth_manage_panel=授權認證管理面版 -auths.new=添加新的認證源 +auths.auth_manage_panel=Authentication Manage Panel +auths.new=Add New Source auths.name=認證名稱 auths.type=認證類型 auths.enabled=已啟用 auths.updated=最後更新時間 -auths.auth_type=授權類型 -auths.auth_name=授權名稱 +auths.auth_type=Authentication Type +auths.auth_name=Authentication Name auths.domain=域名 auths.host=主機地址 auths.port=主機端口 auths.bind_dn=綁定DN auths.bind_password=綁定密碼 +auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account. auths.user_base=User Search Base +auths.user_dn=User DN auths.attribute_name=名子屬性 auths.attribute_surname=姓氏屬性 auths.attribute_mail=電子郵箱屬性 auths.filter=使用者篩選器 auths.admin_filter=管理者篩選器 auths.ms_ad_sa=Ms Ad SA -auths.smtp_auth=SMTP 授權類型 +auths.smtp_auth=SMTP Authentication Type auths.smtphost=SMTP 主機地址 auths.smtpport=SMTP 主機端口 +auths.allowed_domains=Allowed Domains +auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','. auths.enable_tls=啟用 TLS 加密 auths.skip_tls_verify=Skip TLS Verify auths.pam_service_name=PAM 服務名稱 auths.enable_auto_register=允許授權用戶自動註冊 auths.tips=幫助提示 -auths.edit=修改授權認證設置 +auths.edit=Edit Authentication Setting auths.activated=該授權認證已經啟用 -auths.update_success=授權認證設置更新成功! -auths.update=更新授權認證信息 -auths.delete=刪除該授權認證 -auths.delete_auth_title=授權認證刪除操作 -auths.delete_auth_desc=該授權認證將被刪除,您確定要繼續嗎? +auths.new_success=New authentication '%s' has been added successfully. +auths.update_success=Authentication setting has been updated successfully. +auths.update=Update Authentication Setting +auths.delete=Delete This Authentication +auths.delete_auth_title=Authentication Deletion +auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue? +auths.deletion_success=Authentication has been deleted successfully! config.server_config=服務器配置 config.app_name=應用名稱 @@ -858,14 +887,16 @@ config.db_user=數據庫用戶 config.db_ssl_mode=SSL 模式 config.db_ssl_mode_helper=(僅限 "postgres" 使用) config.db_path=數據庫路徑 -config.db_path_helper=(僅限 "sqlite3" 使用) +config.db_path_helper=(for "sqlite3" and "tidb") config.service_config=服務配置 config.register_email_confirm=註冊電子郵件確認 config.disable_register=關閉註冊功能 config.show_registration_button=顯示註冊按鈕 config.require_sign_in_view=強制登錄瀏覽 -config.mail_notify=郵件通知提醒 config.enable_cache_avatar=開啟緩存頭像 +config.mail_notify=郵件通知提醒 +config.disable_key_size_check=Disable Minimum Key Size Check +config.enable_captcha=Enable Captcha config.active_code_lives=激活用戶連結有效期 config.reset_password_code_lives=重置密碼連結有效期 config.webhook_config=Web 鉤子配置 diff --git a/config.codekit b/config.codekit index 174605379..f11369f01 100644 --- a/config.codekit +++ b/config.codekit @@ -162,6 +162,17 @@ "outputPathIsSetByUser": 0, "processed": 1 }, + "\/public\/img\/gogs-large-resize.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 54978, + "inputAbbreviatedPath": "\/public\/img\/gogs-large-resize.png", + "outputAbbreviatedPath": "\/public\/img\/gogs-large-resize.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 0 + }, "\/public\/img\/gogs-lg.png": { "fileType": 32768, "ignore": 0, @@ -244,6 +255,46 @@ "strictMath": 0, "strictUnits": 0 }, + "\/public\/less\/_emojify.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/less\/_emojify.less", + "outputAbbreviatedPath": "\/public\/css\/_emojify.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "\/public\/less\/_explore.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/public\/less\/_explore.less", + "outputAbbreviatedPath": "\/public\/css\/_explore.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, "\/public\/less\/_form.less": { "allowInsecureImports": 0, "createSourceMap": 0, @@ -1697,7 +1748,7 @@ "sassUseLibsass": 0, "shouldRunAutoprefixer": 0, "shouldRunBless": 0, - "skippedItemsString": "_cache, logs, \/public\/css, _logs, cache, \/public\/js\/lib, .git, \/public\/js, log, .svn, .hg", + "skippedItemsString": "\/public\/js, _logs, \/public\/js\/lib, .hg, _cache, log, logs, cache, .svn, .git, \/public\/img\/emoji, \/public\/css", "slimAutoOutputPathEnabled": 1, "slimAutoOutputPathFilenamePattern": "*.html", "slimAutoOutputPathRelativePath": "", diff --git a/docker/README.md b/docker/README.md index 61bb95497..7bf54e4c4 100644 --- a/docker/README.md +++ b/docker/README.md @@ -17,12 +17,12 @@ $ mkdir -p /var/gogs $ docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs # Use `docker start` if you have stopped it. -$ docker start gogs +$ docker start gogs ``` Files will be store in local path `/var/gogs` in my case. -Directory `/var/gogs` keeps Git repoistories and Gogs data: +Directory `/var/gogs` keeps Git repositories and Gogs data: /var/gogs |-- git @@ -35,29 +35,41 @@ Directory `/var/gogs` keeps Git repoistories and Gogs data: |-- log |-- templates +### Volume with data container + +If you're more comfortable with mounting data to a data container, the commands you execute at the first time will look like as follows: + +``` +# Create data container +docker run --name=gogs-data --entrypoint /bin/true gogs/gogs +# Use `docker run` for the first time. +docker run --name=gogs --volumes-from gogs-data -p 10022:22 -p 10080:3000 gogs/gogs +``` + ## Settings Most of settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker: - **Repository Root Path**: keep it as default value `/home/git/gogs-repositories` because `start.sh` already made a symbolic link for you. - **Run User**: keep it as default value `git` because `start.sh` already setup a user with name `git`. -- **Domain**: fill in with Docker container IP(e.g. `192.168.99.100`). +- **Domain**: fill in with Docker container IP(e.g. `192.168.99.100`). But if you want to access your Gogs instance from a different physical machine, please fill in with the hostname or IP address of the Docker host machine. - **SSH Port**: Use the exposed port from Docker container. For example, your SSH server listens on `22` inside Docker, but you expose it by `10022:22`, then use `10022` for this value. - **HTTP Port**: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on `3000` inside Docker, and you expose it by `10080:3000`, but you still use `3000` for this value. -- **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values(e.g. `http://192.168.99.100:10080/`). +- **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values(e.g. `http://192.168.99.100:10080/`). Full documentation of settings can be found [here](http://gogs.io/docs/advanced/configuration_cheat_sheet.html). -## Troubleshooting +## Upgrade -If you see the following error: +:exclamation::exclamation::exclamation:**Make sure you have volumed data to somewhere outside Docker container**:exclamation::exclamation::exclamation: -``` -checkVersion()] [E] Binary and template file version does not match -``` +Steps to upgrade Gogs with Docker: -Run `rm -fr /var/gogs/gogs/templates/` should fix this it. Just remember to backup templates file if you have made modifications youself. +- `docker pull gogs/gogs` +- `docker stop gogs` +- `docker rm gogs` +- Finally, create container as the first time and don't forget to do same volume and port mapping. ## Known Issues -- [Use ctrl+c when clone through SSH makes Docker exit unexpectedly](https://github.com/gogits/gogs/issues/1499) \ No newline at end of file +- `.dockerignore` seems to be ignored during Docker Hub Automated build diff --git a/docker/build.sh b/docker/build.sh new file mode 100755 index 000000000..cc66f778a --- /dev/null +++ b/docker/build.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +# Set temp environment vars +export GOPATH=/tmp/go +export PATH=${PATH}:${GOPATH}/bin + +# Install build deps +apk -U --no-progress add linux-pam-dev go@community gcc musl-dev + +# Init go environment to build Gogs +mkdir -p ${GOPATH}/src/github.com/gogits/ +ln -s /app/gogs/ ${GOPATH}/src/github.com/gogits/gogs +cd ${GOPATH}/src/github.com/gogits/gogs +go get -v -tags "sqlite redis memcache cert pam" +go build -tags "sqlite redis memcache cert pam" + +# Cleanup GOPATH +rm -r $GOPATH + +# Remove build deps +apk --no-progress del linux-pam-dev go gcc musl-dev + +# Create git user for Gogs +adduser -H -D -g 'Gogs Git User' git -h /data/git -s /bin/bash && passwd -u git +echo "export GOGS_CUSTOM=${GOGS_CUSTOM}" >> /etc/profile diff --git a/docker/s6/.s6-svscan/finish b/docker/s6/.s6-svscan/finish new file mode 100755 index 000000000..3fab7f42e --- /dev/null +++ b/docker/s6/.s6-svscan/finish @@ -0,0 +1,5 @@ +#!/bin/sh + +# Cleanup SOCAT services and s6 event folder +rm -rf $(find /app/gogs/docker/s6/ -name 'event') +rm -rf /app/gogs/docker/s6/SOCAT_* diff --git a/docker/s6/gogs/run b/docker/s6/gogs/run new file mode 100755 index 000000000..1aa70eb41 --- /dev/null +++ b/docker/s6/gogs/run @@ -0,0 +1,8 @@ +#!/bin/sh + +if test -f ./setup; then + source ./setup +fi + +export USER=git +exec gosu $USER /app/gogs/gogs web diff --git a/docker/s6/gogs/setup b/docker/s6/gogs/setup new file mode 100755 index 000000000..e64a36d6e --- /dev/null +++ b/docker/s6/gogs/setup @@ -0,0 +1,22 @@ +#!/bin/sh + +if ! test -d ~git/.ssh; then + mkdir -p ~git/.ssh + chmod 700 ~git/.ssh +fi + +if ! test -f ~git/.ssh/environment; then + echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment + chmod 600 ~git/.ssh/environment +fi + +cd /app/gogs + +# Link volumed data with app data +ln -sf /data/gogs/log ./log +ln -sf /data/gogs/data ./data + +# Backward Compatibility with Gogs Container v0.6.15 +ln -sf /data/git /home/git + +chown -R git:git /data /app/gogs ~git/ diff --git a/docker/s6/openssh/run b/docker/s6/openssh/run new file mode 100755 index 000000000..99172aab6 --- /dev/null +++ b/docker/s6/openssh/run @@ -0,0 +1,7 @@ +#!/bin/sh + +if test -f ./setup; then + source ./setup +fi + +exec gosu root /usr/sbin/sshd -D -f /app/gogs/docker/sshd_config diff --git a/docker/s6/openssh/setup b/docker/s6/openssh/setup new file mode 100755 index 000000000..f263516bc --- /dev/null +++ b/docker/s6/openssh/setup @@ -0,0 +1,26 @@ +#!/bin/sh + +# Check if host keys are present, else create them +if ! test -f /data/ssh/ssh_host_key; then + ssh-keygen -q -f /data/ssh/ssh_host_key -N '' -t rsa1 +fi + +if ! test -f /data/ssh/ssh_host_rsa_key; then + ssh-keygen -q -f /data/ssh/ssh_host_rsa_key -N '' -t rsa +fi + +if ! test -f /data/ssh/ssh_host_dsa_key; then + ssh-keygen -q -f /data/ssh/ssh_host_dsa_key -N '' -t dsa +fi + +if ! test -f /data/ssh/ssh_host_ecdsa_key; then + ssh-keygen -q -f /data/ssh/ssh_host_ecdsa_key -N '' -t ecdsa +fi + +if ! test -f /data/ssh/ssh_host_ed25519_key; then + ssh-keygen -q -f /data/ssh/ssh_host_ed25519_key -N '' -t ed25519 +fi + +# Set correct right to ssh keys +chown -R root:root /data/ssh/* +chmod 600 /data/ssh/* diff --git a/docker/sshd_config b/docker/sshd_config new file mode 100644 index 000000000..9b62f1486 --- /dev/null +++ b/docker/sshd_config @@ -0,0 +1,17 @@ +Port 22 +AddressFamily any +ListenAddress 0.0.0.0 +ListenAddress :: +Protocol 2 +LogLevel INFO +HostKey /data/ssh/ssh_host_key +HostKey /data/ssh/ssh_host_rsa_key +HostKey /data/ssh/ssh_host_dsa_key +HostKey /data/ssh/ssh_host_ecdsa_key +HostKey /data/ssh/ssh_host_ed25519_key +PermitRootLogin no +AuthorizedKeysFile .ssh/authorized_keys +PasswordAuthentication no +UsePrivilegeSeparation no +PermitUserEnvironment yes +AllowUsers git diff --git a/docker/start.sh b/docker/start.sh index cea6e54e7..c687515f5 100755 --- a/docker/start.sh +++ b/docker/start.sh @@ -1,43 +1,28 @@ -#!/bin/bash - -# - -if ! test -d /data/gogs -then - mkdir -p /var/run/sshd - mkdir -p /data/gogs/data /data/gogs/conf /data/gogs/log /data/git -fi - -if ! test -d /data/ssh -then - mkdir /data/ssh - ssh-keygen -q -f /data/ssh/ssh_host_key -N '' -t rsa1 - ssh-keygen -q -f /data/ssh/ssh_host_rsa_key -N '' -t rsa - ssh-keygen -q -f /data/ssh/ssh_host_dsa_key -N '' -t dsa - ssh-keygen -q -f /data/ssh/ssh_host_ecdsa_key -N '' -t ecdsa - ssh-keygen -q -f /data/ssh/ssh_host_ed25519_key -N '' -t ed25519 - chown -R root:root /data/ssh/* - chmod 600 /data/ssh/* +#!/bin/sh + +# Cleanup SOCAT services and s6 event folder +# On start and on shutdown in case container has been killed +rm -rf $(find /app/gogs/docker/s6/ -name 'event') +rm -rf /app/gogs/docker/s6/SOCAT_* + +# Create VOLUME subfolder +for f in /data/gogs/data /data/gogs/conf /data/gogs/log /data/git /data/ssh; do + if ! test -d $f; then + mkdir -p $f + fi +done + +# Bind linked docker container to localhost socket using socat +env | sed -En 's|(.*)_PORT_([0-9]*)_TCP=tcp://(.*):(.*)|\1_\2 socat -ls TCP4-LISTEN:\2,fork,reuseaddr TCP4:\3:\4|p' | \ +while read NAME CMD; do + mkdir -p /app/gogs/docker/s6/SOCAT_$NAME + echo -e "#!/bin/sh\nexec $CMD" > /app/gogs/docker/s6/SOCAT_$NAME/run + chmod +x /app/gogs/docker/s6/SOCAT_$NAME/run +done + +# Exec CMD or S6 by default if nothing present +if [ $# -gt 0 ];then + exec "$@" +else + exec /usr/bin/s6-svscan /app/gogs/docker/s6/ fi - -service ssh start - -ln -sf /data/gogs/log ./log -ln -sf /data/gogs/data ./data -ln -sf /data/git /home/git - - -if ! test -d ~git/.ssh -then - mkdir ~git/.ssh - chmod 700 ~git/.ssh -fi - -if ! test -f ~git/.ssh/environment -then - echo "GOGS_CUSTOM=/data/gogs" > ~git/.ssh/environment - chown git:git ~git/.ssh/environment - chown 600 ~git/.ssh/environment -fi - -chown -R git:git /data . -exec su git -c "./gogs web" diff --git a/gogs.go b/gogs.go index 32b9c785a..8abca9f50 100644 --- a/gogs.go +++ b/gogs.go @@ -1,4 +1,4 @@ -// +build go1.2 +// +build go1.3 // Copyright 2014 The Gogs Authors. All rights reserved. // Use of this source code is governed by a MIT-style @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.6.9.0907 Beta" +const APP_VER = "0.6.16.1018 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/action.go b/models/action.go index 07f5b17a7..e38cf593b 100644 --- a/models/action.go +++ b/models/action.go @@ -189,7 +189,10 @@ func issueIndexTrimRight(c rune) bool { // updateIssuesCommit checks if issues are manipulated by commit message. func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string, commits []*base.PushCommit) error { - for _, c := range commits { + // Commits are appended in the reverse order. + for i := len(commits) - 1; i >= 0; i-- { + c := commits[i] + refMarked := make(map[int64]bool) for _, ref := range IssueReferenceKeywordsPat.FindAllString(c.Message, -1) { ref = ref[strings.IndexByte(ref, byte(' '))+1:] @@ -210,6 +213,9 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string issue, err := GetIssueByRef(ref) if err != nil { + if IsErrIssueNotExist(err) { + continue + } return err } @@ -220,7 +226,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string url := fmt.Sprintf("%s/%s/%s/commit/%s", setting.AppSubUrl, repoUserName, repoName, c.Sha1) message := fmt.Sprintf(`%s`, url, c.Message) - if _, err = CreateComment(u, repo, issue, 0, 0, COMMENT_TYPE_COMMIT_REF, message, nil); err != nil { + if err = CreateRefComment(u, repo, issue, message, c.Sha1); err != nil { return err } } @@ -246,6 +252,9 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string issue, err := GetIssueByRef(ref) if err != nil { + if IsErrIssueNotExist(err) { + continue + } return err } @@ -283,6 +292,9 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string issue, err := GetIssueByRef(ref) if err != nil { + if IsErrIssueNotExist(err) { + continue + } return err } @@ -346,10 +358,14 @@ func CommitRepoAction( } if err = updateIssuesCommit(u, repo, repoUserName, repoName, commit.Commits); err != nil { - log.Debug("updateIssuesCommit: %v", err) + log.Error(4, "updateIssuesCommit: %v", err) } } + if len(commit.Commits) > setting.FeedMaxCommitNum { + commit.Commits = commit.Commits[:setting.FeedMaxCommitNum] + } + bs, err := json.Marshal(commit) if err != nil { return fmt.Errorf("Marshal: %v", err) diff --git a/models/admin.go b/models/admin.go index 493cc7afc..e24e0026b 100644 --- a/models/admin.go +++ b/models/admin.go @@ -50,11 +50,10 @@ func CountNotices() int64 { return count } -// GetNotices returns given number of notices with offset. -func GetNotices(num, offset int) ([]*Notice, error) { - notices := make([]*Notice, 0, num) - err := x.Limit(num, offset).Desc("id").Find(¬ices) - return notices, err +// Notices returns number of notices in given page. +func Notices(page, pageSize int) ([]*Notice, error) { + notices := make([]*Notice, 0, pageSize) + return notices, x.Limit(pageSize, (page-1)*pageSize).Desc("id").Find(¬ices) } // DeleteNotice deletes a system notice by given ID. diff --git a/models/cron/cron.go b/models/cron/cron.go index cbf980c05..8e494e553 100644 --- a/models/cron/cron.go +++ b/models/cron/cron.go @@ -15,7 +15,7 @@ import ( var c = cron.New() -func NewCronContext() { +func NewContext() { var ( entry *cron.Entry err error diff --git a/models/git_diff.go b/models/git_diff.go index 669856500..2335e4680 100644 --- a/models/git_diff.go +++ b/models/git_diff.go @@ -86,7 +86,6 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff } leftLine, rightLine int - isTooLong bool // FIXME: Should use cache in the future. buf bytes.Buffer ) @@ -107,9 +106,10 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff i = i + 1 // Diff data too large, we only show the first about maxlines lines - if i == maxlines { - isTooLong = true + if i >= maxlines { log.Warn("Diff data too large") + diff.Files = nil + return diff, nil } switch { @@ -120,10 +120,6 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff curSection.Lines = append(curSection.Lines, diffLine) continue case line[0] == '@': - if isTooLong { - break - } - curSection = &DiffSection{} curFile.Sections = append(curFile.Sections, curSection) ss := strings.Split(line, "@@") @@ -162,10 +158,6 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff // Get new file. if strings.HasPrefix(line, DIFF_HEAD) { - if isTooLong { - break - } - beg := len(DIFF_HEAD) a := line[beg : (len(line)-beg)/2+beg] diff --git a/models/issue.go b/models/issue.go index 00db990d8..f1844d2b9 100644 --- a/models/issue.go +++ b/models/issue.go @@ -9,7 +9,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "mime/multipart" "os" "path" @@ -20,9 +19,7 @@ import ( "github.com/go-xorm/xorm" "github.com/gogits/gogs/modules/base" - "github.com/gogits/gogs/modules/git" "github.com/gogits/gogs/modules/log" - "github.com/gogits/gogs/modules/process" "github.com/gogits/gogs/modules/setting" gouuid "github.com/gogits/gogs/modules/uuid" ) @@ -100,9 +97,9 @@ func (i *Issue) AfterSet(colName string, _ xorm.Cell) { return } - i.PullRequest, err = GetPullRequestByPullID(i.ID) + i.PullRequest, err = GetPullRequestByIssueID(i.ID) if err != nil { - log.Error(3, "GetPullRequestByPullID[%d]: %v", i.ID, err) + log.Error(3, "GetPullRequestByIssueID[%d]: %v", i.ID, err) } case "created": i.Created = regulateTimeZone(i.Created) @@ -546,7 +543,7 @@ func GetIssueCountByPoster(uid, rid int64, isClosed bool) int64 { // IssueUser represents an issue-user relation. type IssueUser struct { ID int64 `xorm:"pk autoincr"` - UID int64 `xorm:"uid INDEX"` // User ID. + UID int64 `xorm:"INDEX"` // User ID. IssueID int64 RepoID int64 `xorm:"INDEX"` MilestoneID int64 @@ -894,233 +891,6 @@ func UpdateIssueUsersByMentions(uids []int64, iid int64) error { return nil } -// __________ .__ .__ __________ __ -// \______ \__ __| | | |\______ \ ____ ________ __ ____ _______/ |_ -// | ___/ | \ | | | | _// __ \/ ____/ | \_/ __ \ / ___/\ __\ -// | | | | / |_| |_| | \ ___< <_| | | /\ ___/ \___ \ | | -// |____| |____/|____/____/____|_ /\___ >__ |____/ \___ >____ > |__| -// \/ \/ |__| \/ \/ - -type PullRequestType int - -const ( - PULL_REQUEST_GOGS = iota - PLLL_ERQUEST_GIT -) - -// PullRequest represents relation between pull request and repositories. -type PullRequest struct { - ID int64 `xorm:"pk autoincr"` - PullID int64 `xorm:"INDEX"` - Pull *Issue `xorm:"-"` - PullIndex int64 - HeadRepoID int64 - HeadRepo *Repository `xorm:"-"` - BaseRepoID int64 - HeadUserName string - HeadBarcnh string - BaseBranch string - MergeBase string `xorm:"VARCHAR(40)"` - MergedCommitID string `xorm:"VARCHAR(40)"` - Type PullRequestType - CanAutoMerge bool - HasMerged bool - Merged time.Time - MergerID int64 - Merger *User `xorm:"-"` -} - -func (pr *PullRequest) AfterSet(colName string, _ xorm.Cell) { - var err error - switch colName { - case "head_repo_id": - pr.HeadRepo, err = GetRepositoryByID(pr.HeadRepoID) - if err != nil { - log.Error(3, "GetRepositoryByID[%d]: %v", pr.ID, err) - } - case "merger_id": - if !pr.HasMerged { - return - } - - pr.Merger, err = GetUserByID(pr.MergerID) - if err != nil { - if IsErrUserNotExist(err) { - pr.MergerID = -1 - pr.Merger = NewFakeUser() - } else { - log.Error(3, "GetUserByID[%d]: %v", pr.ID, err) - } - } - case "merged": - if !pr.HasMerged { - return - } - - pr.Merged = regulateTimeZone(pr.Merged) - } -} - -// Merge merges pull request to base repository. -func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository) (err error) { - sess := x.NewSession() - defer sessionRelease(sess) - if err = sess.Begin(); err != nil { - return err - } - - if err = pr.Pull.changeStatus(sess, doer, true); err != nil { - return fmt.Errorf("Pull.changeStatus: %v", err) - } - - headRepoPath := RepoPath(pr.HeadUserName, pr.HeadRepo.Name) - headGitRepo, err := git.OpenRepository(headRepoPath) - if err != nil { - return fmt.Errorf("OpenRepository: %v", err) - } - pr.MergedCommitID, err = headGitRepo.GetCommitIdOfBranch(pr.HeadBarcnh) - if err != nil { - return fmt.Errorf("GetCommitIdOfBranch: %v", err) - } - - if err = mergePullRequestAction(sess, doer, pr.Pull.Repo, pr.Pull); err != nil { - return fmt.Errorf("mergePullRequestAction: %v", err) - } - - pr.HasMerged = true - pr.Merged = time.Now() - pr.MergerID = doer.Id - if _, err = sess.Id(pr.ID).AllCols().Update(pr); err != nil { - return fmt.Errorf("update pull request: %v", err) - } - - // Clone base repo. - tmpBasePath := path.Join("data/tmp/repos", com.ToStr(time.Now().Nanosecond())+".git") - os.MkdirAll(path.Dir(tmpBasePath), os.ModePerm) - defer os.RemoveAll(path.Dir(tmpBasePath)) - - var stderr string - if _, stderr, err = process.ExecTimeout(5*time.Minute, - fmt.Sprintf("PullRequest.Merge(git clone): %s", tmpBasePath), - "git", "clone", baseGitRepo.Path, tmpBasePath); err != nil { - return fmt.Errorf("git clone: %s", stderr) - } - - // Check out base branch. - if _, stderr, err = process.ExecDir(-1, tmpBasePath, - fmt.Sprintf("PullRequest.Merge(git checkout): %s", tmpBasePath), - "git", "checkout", pr.BaseBranch); err != nil { - return fmt.Errorf("git checkout: %s", stderr) - } - - // Pull commits. - if _, stderr, err = process.ExecDir(-1, tmpBasePath, - fmt.Sprintf("PullRequest.Merge(git pull): %s", tmpBasePath), - "git", "pull", headRepoPath, pr.HeadBarcnh); err != nil { - return fmt.Errorf("git pull: %s", stderr) - } - - // Push back to upstream. - if _, stderr, err = process.ExecDir(-1, tmpBasePath, - fmt.Sprintf("PullRequest.Merge(git push): %s", tmpBasePath), - "git", "push", baseGitRepo.Path, pr.BaseBranch); err != nil { - return fmt.Errorf("git push: %s", stderr) - } - - return sess.Commit() -} - -// NewPullRequest creates new pull request with labels for repository. -func NewPullRequest(repo *Repository, pull *Issue, labelIDs []int64, uuids []string, pr *PullRequest, patch []byte) (err error) { - sess := x.NewSession() - defer sessionRelease(sess) - if err = sess.Begin(); err != nil { - return err - } - - if err = newIssue(sess, repo, pull, labelIDs, uuids, true); err != nil { - return fmt.Errorf("newIssue: %v", err) - } - - // Notify watchers. - act := &Action{ - ActUserID: pull.Poster.Id, - ActUserName: pull.Poster.Name, - ActEmail: pull.Poster.Email, - OpType: CREATE_PULL_REQUEST, - Content: fmt.Sprintf("%d|%s", pull.Index, pull.Name), - RepoID: repo.ID, - RepoUserName: repo.Owner.Name, - RepoName: repo.Name, - IsPrivate: repo.IsPrivate, - } - if err = notifyWatchers(sess, act); err != nil { - return err - } - - // Test apply patch. - repoPath, err := repo.RepoPath() - if err != nil { - return fmt.Errorf("RepoPath: %v", err) - } - patchPath := path.Join(repoPath, "pulls", com.ToStr(pr.ID)+".patch") - - os.MkdirAll(path.Dir(patchPath), os.ModePerm) - if err = ioutil.WriteFile(patchPath, patch, 0644); err != nil { - return fmt.Errorf("save patch: %v", err) - } - defer os.Remove(patchPath) - - stdout, stderr, err := process.ExecDir(-1, repoPath, - fmt.Sprintf("NewPullRequest(git apply --check): %d", repo.ID), - "git", "apply", "--check", "-v", patchPath) - if err != nil { - if strings.Contains(stderr, "fatal:") { - return fmt.Errorf("git apply --check: %v - %s", err, stderr) - } - } - pr.CanAutoMerge = !strings.Contains(stdout, "error: patch failed:") - - pr.PullID = pull.ID - pr.PullIndex = pull.Index - if _, err = sess.Insert(pr); err != nil { - return fmt.Errorf("insert pull repo: %v", err) - } - - return sess.Commit() -} - -// GetUnmergedPullRequest returnss a pull request hasn't been merged by given info. -func GetUnmergedPullRequest(headRepoID, baseRepoID int64, headBranch, baseBranch string) (*PullRequest, error) { - pr := &PullRequest{ - HeadRepoID: headRepoID, - BaseRepoID: baseRepoID, - HeadBarcnh: headBranch, - BaseBranch: baseBranch, - } - - has, err := x.Where("has_merged=?", false).Get(pr) - if err != nil { - return nil, err - } else if !has { - return nil, ErrPullRequestNotExist{0, 0, headRepoID, baseRepoID, headBranch, baseBranch} - } - - return pr, nil -} - -// GetPullRequestByPullID returns pull repo by given pull ID. -func GetPullRequestByPullID(pullID int64) (*PullRequest, error) { - pr := new(PullRequest) - has, err := x.Where("pull_id=?", pullID).Get(pr) - if err != nil { - return nil, err - } else if !has { - return nil, ErrPullRequestNotExist{0, pullID, 0, 0, "", ""} - } - return pr, nil -} - // .____ ___. .__ // | | _____ \_ |__ ____ | | // | | \__ \ | __ \_/ __ \| | @@ -1619,7 +1389,7 @@ func DeleteMilestoneByID(mid int64) error { return err } - if _, err = sess.Id(m.ID).Delete(m); err != nil { + if _, err = sess.Id(m.ID).Delete(new(Milestone)); err != nil { return err } @@ -1685,6 +1455,9 @@ type Comment struct { RenderedContent string `xorm:"-"` Created time.Time `xorm:"CREATED"` + // Reference issue in commit message + CommitSHA string `xorm:"VARCHAR(40)"` + Attachments []*Attachment `xorm:"-"` // For view issue page. @@ -1733,14 +1506,15 @@ func (c *Comment) EventTag() string { return "event-" + com.ToStr(c.ID) } -func createComment(e *xorm.Session, u *User, repo *Repository, issue *Issue, commitID, line int64, cmtType CommentType, content string, uuids []string) (_ *Comment, err error) { +func createComment(e *xorm.Session, u *User, repo *Repository, issue *Issue, commitID, line int64, cmtType CommentType, content, commitSHA string, uuids []string) (_ *Comment, err error) { comment := &Comment{ - PosterID: u.Id, - Type: cmtType, - IssueID: issue.ID, - CommitID: commitID, - Line: line, - Content: content, + PosterID: u.Id, + Type: cmtType, + IssueID: issue.ID, + CommitID: commitID, + Line: line, + Content: content, + CommitSHA: commitSHA, } if _, err = e.Insert(comment); err != nil { return nil, err @@ -1819,18 +1593,18 @@ func createStatusComment(e *xorm.Session, doer *User, repo *Repository, issue *I if !issue.IsClosed { cmtType = COMMENT_TYPE_REOPEN } - return createComment(e, doer, repo, issue, 0, 0, cmtType, "", nil) + return createComment(e, doer, repo, issue, 0, 0, cmtType, "", "", nil) } // CreateComment creates comment of issue or commit. -func CreateComment(doer *User, repo *Repository, issue *Issue, commitID, line int64, cmtType CommentType, content string, attachments []string) (comment *Comment, err error) { +func CreateComment(doer *User, repo *Repository, issue *Issue, commitID, line int64, cmtType CommentType, content, commitSHA string, attachments []string) (comment *Comment, err error) { sess := x.NewSession() defer sessionRelease(sess) if err = sess.Begin(); err != nil { return nil, err } - comment, err = createComment(sess, doer, repo, issue, commitID, line, cmtType, content, attachments) + comment, err = createComment(sess, doer, repo, issue, commitID, line, cmtType, content, commitSHA, attachments) if err != nil { return nil, err } @@ -1840,7 +1614,29 @@ func CreateComment(doer *User, repo *Repository, issue *Issue, commitID, line in // CreateIssueComment creates a plain issue comment. func CreateIssueComment(doer *User, repo *Repository, issue *Issue, content string, attachments []string) (*Comment, error) { - return CreateComment(doer, repo, issue, 0, 0, COMMENT_TYPE_COMMENT, content, attachments) + return CreateComment(doer, repo, issue, 0, 0, COMMENT_TYPE_COMMENT, content, "", attachments) +} + +// CreateRefComment creates a commit reference comment to issue. +func CreateRefComment(doer *User, repo *Repository, issue *Issue, content, commitSHA string) error { + if len(commitSHA) == 0 { + return fmt.Errorf("cannot create reference with empty commit SHA") + } + + // Check if same reference from same commit has already existed. + has, err := x.Get(&Comment{ + Type: COMMENT_TYPE_COMMIT_REF, + IssueID: issue.ID, + CommitSHA: commitSHA, + }) + if err != nil { + return fmt.Errorf("check reference comment: %v", err) + } else if has { + return nil + } + + _, err = CreateComment(doer, repo, issue, 0, 0, COMMENT_TYPE_COMMIT_REF, content, commitSHA, nil) + return err } // GetCommentByID returns the comment by given ID. diff --git a/models/login.go b/models/login.go index 78ce79cff..79a262c57 100644 --- a/models/login.go +++ b/models/login.go @@ -13,6 +13,7 @@ import ( "strings" "time" + "github.com/Unknwon/com" "github.com/go-xorm/core" "github.com/go-xorm/xorm" @@ -23,12 +24,14 @@ import ( type LoginType int +// Note: new type must be added at the end of list to maintain compatibility. const ( NOTYPE LoginType = iota PLAIN LDAP SMTP PAM + DLDAP ) var ( @@ -37,10 +40,11 @@ var ( ErrAuthenticationUserUsed = errors.New("Authentication has been used by some users") ) -var LoginTypes = map[LoginType]string{ - LDAP: "LDAP", - SMTP: "SMTP", - PAM: "PAM", +var LoginNames = map[LoginType]string{ + LDAP: "LDAP (via BindDN)", + DLDAP: "LDAP (simple auth)", + SMTP: "SMTP", + PAM: "PAM", } // Ensure structs implemented interface. @@ -51,23 +55,24 @@ var ( ) type LDAPConfig struct { - ldap.Ldapsource + *ldap.Source } func (cfg *LDAPConfig) FromDB(bs []byte) error { - return json.Unmarshal(bs, &cfg.Ldapsource) + return json.Unmarshal(bs, &cfg) } func (cfg *LDAPConfig) ToDB() ([]byte, error) { - return json.Marshal(cfg.Ldapsource) + return json.Marshal(cfg) } type SMTPConfig struct { - Auth string - Host string - Port int - TLS bool - SkipVerify bool + Auth string + Host string + Port int + AllowedDomains string `xorm:"TEXT"` + TLS bool + SkipVerify bool } func (cfg *SMTPConfig) FromDB(bs []byte) error { @@ -91,32 +96,71 @@ func (cfg *PAMConfig) ToDB() ([]byte, error) { } type LoginSource struct { - ID int64 `xorm:"pk autoincr"` - Type LoginType - Name string `xorm:"UNIQUE"` - IsActived bool `xorm:"NOT NULL DEFAULT false"` - Cfg core.Conversion `xorm:"TEXT"` - AllowAutoRegister bool `xorm:"NOT NULL DEFAULT false"` - Created time.Time `xorm:"CREATED"` - Updated time.Time `xorm:"UPDATED"` + ID int64 `xorm:"pk autoincr"` + Type LoginType + Name string `xorm:"UNIQUE"` + IsActived bool `xorm:"NOT NULL DEFAULT false"` + Cfg core.Conversion `xorm:"TEXT"` + Created time.Time `xorm:"CREATED"` + Updated time.Time `xorm:"UPDATED"` } func (source *LoginSource) BeforeSet(colName string, val xorm.Cell) { switch colName { case "type": switch LoginType((*val).(int64)) { - case LDAP: + case LDAP, DLDAP: source.Cfg = new(LDAPConfig) case SMTP: source.Cfg = new(SMTPConfig) case PAM: source.Cfg = new(PAMConfig) + default: + panic("unrecognized login source type: " + com.ToStr(*val)) } } } -func (source *LoginSource) TypeString() string { - return LoginTypes[source.Type] +func (source *LoginSource) TypeName() string { + return LoginNames[source.Type] +} + +func (source *LoginSource) IsLDAP() bool { + return source.Type == LDAP +} + +func (source *LoginSource) IsDLDAP() bool { + return source.Type == DLDAP +} + +func (source *LoginSource) IsSMTP() bool { + return source.Type == SMTP +} + +func (source *LoginSource) IsPAM() bool { + return source.Type == PAM +} + +func (source *LoginSource) UseTLS() bool { + switch source.Type { + case LDAP, DLDAP: + return source.LDAP().UseSSL + case SMTP: + return source.SMTP().TLS + } + + return false +} + +func (source *LoginSource) SkipVerify() bool { + switch source.Type { + case LDAP, DLDAP: + return source.LDAP().SkipVerify + case SMTP: + return source.SMTP().SkipVerify + } + + return false } func (source *LoginSource) LDAP() *LDAPConfig { @@ -131,12 +175,18 @@ func (source *LoginSource) PAM() *PAMConfig { return source.Cfg.(*PAMConfig) } +// CountLoginSources returns number of login sources. +func CountLoginSources() int64 { + count, _ := x.Count(new(LoginSource)) + return count +} + func CreateSource(source *LoginSource) error { _, err := x.Insert(source) return err } -func GetAuths() ([]*LoginSource, error) { +func LoginSources() ([]*LoginSource, error) { auths := make([]*LoginSource, 0, 5) return auths, x.Find(&auths) } @@ -157,107 +207,32 @@ func UpdateSource(source *LoginSource) error { return err } -func DelLoginSource(source *LoginSource) error { - cnt, err := x.Count(&User{LoginSource: source.ID}) +func DeleteSource(source *LoginSource) error { + count, err := x.Count(&User{LoginSource: source.ID}) if err != nil { return err - } - if cnt > 0 { + } else if count > 0 { return ErrAuthenticationUserUsed } - _, err = x.Id(source.ID).Delete(&LoginSource{}) + _, err = x.Id(source.ID).Delete(new(LoginSource)) return err } -// UserSignIn validates user name and password. -func UserSignIn(uname, passwd string) (*User, error) { - u := new(User) - if strings.Contains(uname, "@") { - u = &User{Email: uname} - } else { - u = &User{LowerName: strings.ToLower(uname)} - } - - has, err := x.Get(u) - if err != nil { - return nil, err - } - - if u.LoginType == NOTYPE && has { - u.LoginType = PLAIN - } - - // For plain login, user must exist to reach this line. - // Now verify password. - if u.LoginType == PLAIN { - if !u.ValidatePassword(passwd) { - return nil, ErrUserNotExist{u.Id, u.Name} - } - return u, nil - } - - if !has { - var sources []LoginSource - if err = x.UseBool().Find(&sources, - &LoginSource{IsActived: true, AllowAutoRegister: true}); err != nil { - return nil, err - } - - for _, source := range sources { - if source.Type == LDAP { - u, err := LoginUserLdapSource(nil, uname, passwd, - source.ID, source.Cfg.(*LDAPConfig), true) - if err == nil { - return u, nil - } - log.Warn("Fail to login(%s) by LDAP(%s): %v", uname, source.Name, err) - } else if source.Type == SMTP { - u, err := LoginUserSMTPSource(nil, uname, passwd, - source.ID, source.Cfg.(*SMTPConfig), true) - if err == nil { - return u, nil - } - log.Warn("Fail to login(%s) by SMTP(%s): %v", uname, source.Name, err) - } else if source.Type == PAM { - u, err := LoginUserPAMSource(nil, uname, passwd, - source.ID, source.Cfg.(*PAMConfig), true) - if err == nil { - return u, nil - } - log.Warn("Fail to login(%s) by PAM(%s): %v", uname, source.Name, err) - } - } - - return nil, ErrUserNotExist{u.Id, u.Name} - } - - var source LoginSource - hasSource, err := x.Id(u.LoginSource).Get(&source) - if err != nil { - return nil, err - } else if !hasSource { - return nil, ErrLoginSourceNotExist - } else if !source.IsActived { - return nil, ErrLoginSourceNotActived - } - - switch u.LoginType { - case LDAP: - return LoginUserLdapSource(u, u.LoginName, passwd, source.ID, source.Cfg.(*LDAPConfig), false) - case SMTP: - return LoginUserSMTPSource(u, u.LoginName, passwd, source.ID, source.Cfg.(*SMTPConfig), false) - case PAM: - return LoginUserPAMSource(u, u.LoginName, passwd, source.ID, source.Cfg.(*PAMConfig), false) - } - return nil, ErrUnsupportedLoginType -} +// .____ ________ _____ __________ +// | | \______ \ / _ \\______ \ +// | | | | \ / /_\ \| ___/ +// | |___ | ` \/ | \ | +// |_______ \/_______ /\____|__ /____| +// \/ \/ \/ // Query if name/passwd can login against the LDAP directory pool // Create a local user if success // Return the same LoginUserPlain semantic // FIXME: https://github.com/gogits/gogs/issues/672 -func LoginUserLdapSource(u *User, name, passwd string, sourceId int64, cfg *LDAPConfig, autoRegister bool) (*User, error) { - fn, sn, mail, admin, logged := cfg.Ldapsource.SearchEntry(name, passwd) +func LoginUserLDAPSource(u *User, name, passwd string, source *LoginSource, autoRegister bool) (*User, error) { + cfg := source.Cfg.(*LDAPConfig) + directBind := (source.Type == DLDAP) + fn, sn, mail, admin, logged := cfg.SearchEntry(name, passwd, directBind) if !logged { // User not in LDAP, do nothing return nil, ErrUserNotExist{0, name} @@ -275,11 +250,10 @@ func LoginUserLdapSource(u *User, name, passwd string, sourceId int64, cfg *LDAP u = &User{ LowerName: strings.ToLower(name), Name: name, - FullName: fn + " " + sn, - LoginType: LDAP, - LoginSource: sourceId, + FullName: strings.TrimSpace(fn + " " + sn), + LoginType: source.Type, + LoginSource: source.ID, LoginName: name, - Passwd: passwd, Email: mail, IsAdmin: admin, IsActive: true, @@ -287,6 +261,13 @@ func LoginUserLdapSource(u *User, name, passwd string, sourceId int64, cfg *LDAP return u, CreateUser(u) } +// _________ __________________________ +// / _____/ / \__ ___/\______ \ +// \_____ \ / \ / \| | | ___/ +// / \/ Y \ | | | +// /_______ /\____|__ /____| |____| +// \/ \/ + type loginAuth struct { username, password string } @@ -316,9 +297,7 @@ const ( SMTP_LOGIN = "LOGIN" ) -var ( - SMTPAuths = []string{SMTP_PLAIN, SMTP_LOGIN} -) +var SMTPAuths = []string{SMTP_PLAIN, SMTP_LOGIN} func SMTPAuth(a smtp.Auth, cfg *SMTPConfig) error { c, err := smtp.Dial(fmt.Sprintf("%s:%d", cfg.Host, cfg.Port)) @@ -357,6 +336,16 @@ func SMTPAuth(a smtp.Auth, cfg *SMTPConfig) error { // Create a local user if success // Return the same LoginUserPlain semantic func LoginUserSMTPSource(u *User, name, passwd string, sourceId int64, cfg *SMTPConfig, autoRegister bool) (*User, error) { + // Verify allowed domains. + if len(cfg.AllowedDomains) > 0 { + idx := strings.Index(name, "@") + if idx == -1 { + return nil, ErrUserNotExist{0, name} + } else if !com.IsSliceContainsStr(strings.Split(cfg.AllowedDomains, ","), name[idx+1:]) { + return nil, ErrUserNotExist{0, name} + } + } + var auth smtp.Auth if cfg.Auth == SMTP_PLAIN { auth = smtp.PlainAuth("", name, passwd, cfg.Host) @@ -368,7 +357,7 @@ func LoginUserSMTPSource(u *User, name, passwd string, sourceId int64, cfg *SMTP if err := SMTPAuth(auth, cfg); err != nil { if strings.Contains(err.Error(), "Username and Password not accepted") { - return nil, ErrUserNotExist{u.Id, u.Name} + return nil, ErrUserNotExist{0, name} } return nil, err } @@ -397,13 +386,20 @@ func LoginUserSMTPSource(u *User, name, passwd string, sourceId int64, cfg *SMTP return u, err } +// __________ _____ _____ +// \______ \/ _ \ / \ +// | ___/ /_\ \ / \ / \ +// | | / | \/ Y \ +// |____| \____|__ /\____|__ / +// \/ \/ + // Query if name/passwd can login against PAM // Create a local user if success // Return the same LoginUserPlain semantic func LoginUserPAMSource(u *User, name, passwd string, sourceId int64, cfg *PAMConfig, autoRegister bool) (*User, error) { if err := pam.PAMAuth(cfg.ServiceName, name, passwd); err != nil { if strings.Contains(err.Error(), "Authentication failure") { - return nil, ErrUserNotExist{u.Id, u.Name} + return nil, ErrUserNotExist{0, name} } return nil, err } @@ -426,3 +422,73 @@ func LoginUserPAMSource(u *User, name, passwd string, sourceId int64, cfg *PAMCo err := CreateUser(u) return u, err } + +func ExternalUserLogin(u *User, name, passwd string, source *LoginSource, autoRegister bool) (*User, error) { + if !source.IsActived { + return nil, ErrLoginSourceNotActived + } + + switch source.Type { + case LDAP, DLDAP: + return LoginUserLDAPSource(u, name, passwd, source, autoRegister) + case SMTP: + return LoginUserSMTPSource(u, name, passwd, source.ID, source.Cfg.(*SMTPConfig), autoRegister) + case PAM: + return LoginUserPAMSource(u, name, passwd, source.ID, source.Cfg.(*PAMConfig), autoRegister) + } + + return nil, ErrUnsupportedLoginType +} + +// UserSignIn validates user name and password. +func UserSignIn(uname, passwd string) (*User, error) { + var u *User + if strings.Contains(uname, "@") { + u = &User{Email: uname} + } else { + u = &User{LowerName: strings.ToLower(uname)} + } + + userExists, err := x.Get(u) + if err != nil { + return nil, err + } + + if userExists { + switch u.LoginType { + case NOTYPE, PLAIN: + if u.ValidatePassword(passwd) { + return u, nil + } + + return nil, ErrUserNotExist{u.Id, u.Name} + + default: + var source LoginSource + hasSource, err := x.Id(u.LoginSource).Get(&source) + if err != nil { + return nil, err + } else if !hasSource { + return nil, ErrLoginSourceNotExist + } + + return ExternalUserLogin(u, u.LoginName, passwd, &source, false) + } + } + + var sources []LoginSource + if err = x.UseBool().Find(&sources, &LoginSource{IsActived: true}); err != nil { + return nil, err + } + + for _, source := range sources { + u, err := ExternalUserLogin(nil, uname, passwd, &source, true) + if err == nil { + return u, nil + } + + log.Warn("Failed to login '%s' via '%s': %v", uname, source.Name, err) + } + + return nil, ErrUserNotExist{u.Id, u.Name} +} diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 08a503e6d..c3f7a59be 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -65,6 +65,7 @@ var migrations = []Migration{ NewMigration("trim action compare URL prefix", trimCommitActionAppUrlPrefix), // V5 -> V6:v0.6.3 NewMigration("generate issue-label from issue", issueToIssueLabel), // V6 -> V7:v0.6.4 NewMigration("refactor attachment table", attachmentRefactor), // V7 -> V8:v0.6.4 + NewMigration("rename pull request fields", renamePullRequestFields), // V8 -> V9:v0.6.16 } // Migrate database to current version @@ -606,3 +607,49 @@ func attachmentRefactor(x *xorm.Engine) error { return sess.Commit() } + +func renamePullRequestFields(x *xorm.Engine) (err error) { + type PullRequest struct { + ID int64 `xorm:"pk autoincr"` + PullID int64 `xorm:"INDEX"` + PullIndex int64 + HeadBarcnh string + + IssueID int64 `xorm:"INDEX"` + Index int64 + HeadBranch string + } + + if err = x.Sync(new(PullRequest)); err != nil { + return fmt.Errorf("sync: %v", err) + } + + results, err := x.Query("SELECT `id`,`pull_id`,`pull_index`,`head_barcnh` FROM `pull_request`") + if err != nil { + if strings.Contains(err.Error(), "no such column") { + return nil + } + return fmt.Errorf("select pull requests: %v", err) + } + + sess := x.NewSession() + defer sessionRelease(sess) + if err = sess.Begin(); err != nil { + return err + } + + var pull *PullRequest + for _, pr := range results { + pull = &PullRequest{ + ID: com.StrTo(pr["id"]).MustInt64(), + IssueID: com.StrTo(pr["pull_id"]).MustInt64(), + Index: com.StrTo(pr["pull_index"]).MustInt64(), + HeadBranch: string(pr["head_barcnh"]), + } + if _, err = sess.Id(pull.ID).Update(pull); err != nil { + return err + } + } + + return sess.Commit() +} diff --git a/models/models.go b/models/models.go index be5f33511..802bc9426 100644 --- a/models/models.go +++ b/models/models.go @@ -20,6 +20,7 @@ import ( _ "github.com/lib/pq" "github.com/gogits/gogs/models/migrations" + "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/setting" ) @@ -46,20 +47,22 @@ func sessionRelease(sess *xorm.Session) { // Note: get back time.Time from database Go sees it at UTC where they are really Local. // So this function makes correct timezone offset. func regulateTimeZone(t time.Time) time.Time { - if setting.UseSQLite3 { + if !setting.UseMySQL { return t } zone := t.Local().Format("-0700") if len(zone) != 5 { + log.Error(4, "Unprocessable timezone: %s - %s", t.Local(), zone) return t } - offset := com.StrTo(zone[2:3]).MustInt() + hour := com.StrTo(zone[2:3]).MustInt() + minutes := com.StrTo(zone[3:5]).MustInt() if zone[0] == '-' { - return t.Add(time.Duration(offset) * time.Hour) + return t.Add(time.Duration(hour) * time.Hour).Add(time.Duration(minutes) * time.Minute) } - return t.Add(-1 * time.Duration(offset) * time.Hour) + return t.Add(-1 * time.Duration(hour) * time.Hour).Add(-1 * time.Duration(minutes) * time.Minute) } var ( @@ -77,7 +80,7 @@ var ( func init() { tables = append(tables, - new(User), new(PublicKey), new(Oauth2), new(AccessToken), + new(User), new(PublicKey), new(AccessToken), new(Repository), new(DeployKey), new(Collaboration), new(Access), new(Watch), new(Star), new(Follow), new(Action), new(Issue), new(PullRequest), new(Comment), new(Attachment), new(IssueUser), @@ -87,13 +90,13 @@ func init() { new(Team), new(OrgUser), new(TeamUser), new(TeamRepo), new(Notice), new(EmailAddress)) - gonicNames := []string{"SSL"} + gonicNames := []string{"UID", "SSL"} for _, name := range gonicNames { core.LintGonicMapper[name] = true } } -func LoadModelsConfig() { +func LoadConfigs() { sec := setting.Cfg.Section("database") DbCfg.Type = sec.Key("DB_TYPE").String() switch DbCfg.Type { @@ -103,6 +106,8 @@ func LoadModelsConfig() { setting.UseMySQL = true case "postgres": setting.UsePostgreSQL = true + case "tidb": + setting.UseTiDB = true } DbCfg.Host = sec.Key("HOST").String() DbCfg.Name = sec.Key("NAME").String() @@ -233,11 +238,11 @@ func GetStatistic() (stats Statistic) { stats.Counter.Access, _ = x.Count(new(Access)) stats.Counter.Issue, _ = x.Count(new(Issue)) stats.Counter.Comment, _ = x.Count(new(Comment)) - stats.Counter.Oauth, _ = x.Count(new(Oauth2)) + stats.Counter.Oauth = 0 stats.Counter.Follow, _ = x.Count(new(Follow)) stats.Counter.Mirror, _ = x.Count(new(Mirror)) stats.Counter.Release, _ = x.Count(new(Release)) - stats.Counter.LoginSource, _ = x.Count(new(LoginSource)) + stats.Counter.LoginSource = CountLoginSources() stats.Counter.Webhook, _ = x.Count(new(Webhook)) stats.Counter.Milestone, _ = x.Count(new(Milestone)) stats.Counter.Label, _ = x.Count(new(Label)) diff --git a/models/models_tidb.go b/models/models_tidb.go index d99884e9e..fad25cf00 100644 --- a/models/models_tidb.go +++ b/models/models_tidb.go @@ -8,9 +8,11 @@ package models import ( _ "github.com/go-xorm/tidb" + "github.com/ngaut/log" _ "github.com/pingcap/tidb" ) func init() { EnableTidb = true + log.SetLevelByString("error") } diff --git a/models/oauth2.go b/models/oauth2.go deleted file mode 100644 index a15f7b6f3..000000000 --- a/models/oauth2.go +++ /dev/null @@ -1,106 +0,0 @@ -// 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 models - -import ( - "errors" - "time" -) - -type OauthType int - -const ( - GITHUB OauthType = iota + 1 - GOOGLE - TWITTER - QQ - WEIBO - BITBUCKET - FACEBOOK -) - -var ( - ErrOauth2RecordNotExist = errors.New("OAuth2 record does not exist") - ErrOauth2NotAssociated = errors.New("OAuth2 is not associated with user") -) - -type Oauth2 struct { - Id int64 - Uid int64 `xorm:"unique(s)"` // userId - User *User `xorm:"-"` - Type int `xorm:"unique(s) unique(oauth)"` // twitter,github,google... - Identity string `xorm:"unique(s) unique(oauth)"` // id.. - Token string `xorm:"TEXT not null"` - Created time.Time `xorm:"CREATED"` - Updated time.Time - HasRecentActivity bool `xorm:"-"` -} - -func BindUserOauth2(userId, oauthId int64) error { - _, err := x.Id(oauthId).Update(&Oauth2{Uid: userId}) - return err -} - -func AddOauth2(oa *Oauth2) error { - _, err := x.Insert(oa) - return err -} - -func GetOauth2(identity string) (oa *Oauth2, err error) { - oa = &Oauth2{Identity: identity} - isExist, err := x.Get(oa) - if err != nil { - return - } else if !isExist { - return nil, ErrOauth2RecordNotExist - } else if oa.Uid == -1 { - return oa, ErrOauth2NotAssociated - } - oa.User, err = GetUserByID(oa.Uid) - return oa, err -} - -func GetOauth2ById(id int64) (oa *Oauth2, err error) { - oa = new(Oauth2) - has, err := x.Id(id).Get(oa) - if err != nil { - return nil, err - } else if !has { - return nil, ErrOauth2RecordNotExist - } - return oa, nil -} - -// UpdateOauth2 updates given OAuth2. -func UpdateOauth2(oa *Oauth2) error { - _, err := x.Id(oa.Id).AllCols().Update(oa) - return err -} - -// GetOauthByUserId returns list of oauthes that are related to given user. -func GetOauthByUserId(uid int64) ([]*Oauth2, error) { - socials := make([]*Oauth2, 0, 5) - err := x.Find(&socials, Oauth2{Uid: uid}) - if err != nil { - return nil, err - } - - for _, social := range socials { - social.HasRecentActivity = social.Updated.Add(7 * 24 * time.Hour).After(time.Now()) - } - return socials, err -} - -// DeleteOauth2ById deletes a oauth2 by ID. -func DeleteOauth2ById(id int64) error { - _, err := x.Delete(&Oauth2{Id: id}) - return err -} - -// CleanUnbindOauth deletes all unbind OAuthes. -func CleanUnbindOauth() error { - _, err := x.Delete(&Oauth2{Uid: -1}) - return err -} diff --git a/models/org.go b/models/org.go index b45dcafb2..5c3b0d12a 100644 --- a/models/org.go +++ b/models/org.go @@ -184,11 +184,10 @@ func CountOrganizations() int64 { return count } -// GetOrganizations returns given number of organizations with offset. -func GetOrganizations(num, offset int) ([]*User, error) { - orgs := make([]*User, 0, num) - err := x.Limit(num, offset).Where("type=1").Asc("id").Find(&orgs) - return orgs, err +// Organizations returns number of organizations in given page. +func Organizations(page, pageSize int) ([]*User, error) { + orgs := make([]*User, 0, pageSize) + return orgs, x.Limit(pageSize, (page-1)*pageSize).Where("type=1").Asc("id").Find(&orgs) } // DeleteOrganization completely and permanently deletes everything of organization. diff --git a/models/publickey.go b/models/publickey.go index ad92d64fe..6c0ffc0c7 100644 --- a/models/publickey.go +++ b/models/publickey.go @@ -153,7 +153,7 @@ func parseKeyString(content string) (string, error) { if len(lines) == 1 { // Parse openssh format - parts := strings.Fields(lines[0]) + parts := strings.SplitN(lines[0], " ", 3) switch len(parts) { case 0: return "", errors.New("Empty key") diff --git a/models/pull.go b/models/pull.go new file mode 100644 index 000000000..8eb26ad77 --- /dev/null +++ b/models/pull.go @@ -0,0 +1,262 @@ +// Copyright 2015 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 models + +import ( + "fmt" + "io/ioutil" + "os" + "path" + "strings" + "time" + + "github.com/Unknwon/com" + "github.com/go-xorm/xorm" + + "github.com/gogits/gogs/modules/git" + "github.com/gogits/gogs/modules/log" + "github.com/gogits/gogs/modules/process" +) + +type PullRequestType int + +const ( + PULL_REQUEST_GOGS PullRequestType = iota + PLLL_ERQUEST_GIT +) + +type PullRequestStatus int + +const ( + PULL_REQUEST_STATUS_CONFLICT PullRequestStatus = iota + PULL_REQUEST_STATUS_CHECKING + PULL_REQUEST_STATUS_MERGEABLE +) + +// PullRequest represents relation between pull request and repositories. +type PullRequest struct { + ID int64 `xorm:"pk autoincr"` + Type PullRequestType + Status PullRequestStatus + + IssueID int64 `xorm:"INDEX"` + Issue *Issue `xorm:"-"` + Index int64 + + HeadRepoID int64 + HeadRepo *Repository `xorm:"-"` + BaseRepoID int64 + HeadUserName string + HeadBranch string + BaseBranch string + MergeBase string `xorm:"VARCHAR(40)"` + MergedCommitID string `xorm:"VARCHAR(40)"` + + HasMerged bool + Merged time.Time + MergerID int64 + Merger *User `xorm:"-"` +} + +// Note: don't try to get Pull because will end up recursive querying. +func (pr *PullRequest) AfterSet(colName string, _ xorm.Cell) { + var err error + switch colName { + case "head_repo_id": + // FIXME: shouldn't show error if it's known that head repository has been removed. + pr.HeadRepo, err = GetRepositoryByID(pr.HeadRepoID) + if err != nil { + log.Error(3, "GetRepositoryByID[%d]: %v", pr.ID, err) + } + case "merger_id": + if !pr.HasMerged { + return + } + + pr.Merger, err = GetUserByID(pr.MergerID) + if err != nil { + if IsErrUserNotExist(err) { + pr.MergerID = -1 + pr.Merger = NewFakeUser() + } else { + log.Error(3, "GetUserByID[%d]: %v", pr.ID, err) + } + } + case "merged": + if !pr.HasMerged { + return + } + + pr.Merged = regulateTimeZone(pr.Merged) + } +} + +// CanAutoMerge returns true if this pull request can be merged automatically. +func (pr *PullRequest) CanAutoMerge() bool { + return pr.Status == PULL_REQUEST_STATUS_MERGEABLE +} + +// Merge merges pull request to base repository. +func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository) (err error) { + sess := x.NewSession() + defer sessionRelease(sess) + if err = sess.Begin(); err != nil { + return err + } + + if err = pr.Issue.changeStatus(sess, doer, true); err != nil { + return fmt.Errorf("Pull.changeStatus: %v", err) + } + + headRepoPath := RepoPath(pr.HeadUserName, pr.HeadRepo.Name) + headGitRepo, err := git.OpenRepository(headRepoPath) + if err != nil { + return fmt.Errorf("OpenRepository: %v", err) + } + pr.MergedCommitID, err = headGitRepo.GetCommitIdOfBranch(pr.HeadBranch) + if err != nil { + return fmt.Errorf("GetCommitIdOfBranch: %v", err) + } + + if err = mergePullRequestAction(sess, doer, pr.Issue.Repo, pr.Issue); err != nil { + return fmt.Errorf("mergePullRequestAction: %v", err) + } + + pr.HasMerged = true + pr.Merged = time.Now() + pr.MergerID = doer.Id + if _, err = sess.Id(pr.ID).AllCols().Update(pr); err != nil { + return fmt.Errorf("update pull request: %v", err) + } + + // Clone base repo. + tmpBasePath := path.Join("data/tmp/repos", com.ToStr(time.Now().Nanosecond())+".git") + os.MkdirAll(path.Dir(tmpBasePath), os.ModePerm) + defer os.RemoveAll(path.Dir(tmpBasePath)) + + var stderr string + if _, stderr, err = process.ExecTimeout(5*time.Minute, + fmt.Sprintf("PullRequest.Merge(git clone): %s", tmpBasePath), + "git", "clone", baseGitRepo.Path, tmpBasePath); err != nil { + return fmt.Errorf("git clone: %s", stderr) + } + + // Check out base branch. + if _, stderr, err = process.ExecDir(-1, tmpBasePath, + fmt.Sprintf("PullRequest.Merge(git checkout): %s", tmpBasePath), + "git", "checkout", pr.BaseBranch); err != nil { + return fmt.Errorf("git checkout: %s", stderr) + } + + // Pull commits. + if _, stderr, err = process.ExecDir(-1, tmpBasePath, + fmt.Sprintf("PullRequest.Merge(git pull): %s", tmpBasePath), + "git", "pull", headRepoPath, pr.HeadBranch); err != nil { + return fmt.Errorf("git pull[%s / %s -> %s]: %s", headRepoPath, pr.HeadBranch, tmpBasePath, stderr) + } + + // Push back to upstream. + if _, stderr, err = process.ExecDir(-1, tmpBasePath, + fmt.Sprintf("PullRequest.Merge(git push): %s", tmpBasePath), + "git", "push", baseGitRepo.Path, pr.BaseBranch); err != nil { + return fmt.Errorf("git push: %s", stderr) + } + + return sess.Commit() +} + +// NewPullRequest creates new pull request with labels for repository. +func NewPullRequest(repo *Repository, pull *Issue, labelIDs []int64, uuids []string, pr *PullRequest, patch []byte) (err error) { + sess := x.NewSession() + defer sessionRelease(sess) + if err = sess.Begin(); err != nil { + return err + } + + if err = newIssue(sess, repo, pull, labelIDs, uuids, true); err != nil { + return fmt.Errorf("newIssue: %v", err) + } + + // Notify watchers. + act := &Action{ + ActUserID: pull.Poster.Id, + ActUserName: pull.Poster.Name, + ActEmail: pull.Poster.Email, + OpType: CREATE_PULL_REQUEST, + Content: fmt.Sprintf("%d|%s", pull.Index, pull.Name), + RepoID: repo.ID, + RepoUserName: repo.Owner.Name, + RepoName: repo.Name, + IsPrivate: repo.IsPrivate, + } + if err = notifyWatchers(sess, act); err != nil { + return err + } + + // Test apply patch. + if err = repo.UpdateLocalCopy(); err != nil { + return fmt.Errorf("UpdateLocalCopy: %v", err) + } + + repoPath, err := repo.RepoPath() + if err != nil { + return fmt.Errorf("RepoPath: %v", err) + } + patchPath := path.Join(repoPath, "pulls", com.ToStr(pull.ID)+".patch") + + os.MkdirAll(path.Dir(patchPath), os.ModePerm) + if err = ioutil.WriteFile(patchPath, patch, 0644); err != nil { + return fmt.Errorf("save patch: %v", err) + } + + pr.Status = PULL_REQUEST_STATUS_MERGEABLE + _, stderr, err := process.ExecDir(-1, repo.LocalCopyPath(), + fmt.Sprintf("NewPullRequest(git apply --check): %d", repo.ID), + "git", "apply", "--check", patchPath) + if err != nil { + if strings.Contains(stderr, "patch does not apply") { + pr.Status = PULL_REQUEST_STATUS_CONFLICT + } else { + return fmt.Errorf("git apply --check: %v - %s", err, stderr) + } + } + + pr.IssueID = pull.ID + pr.Index = pull.Index + if _, err = sess.Insert(pr); err != nil { + return fmt.Errorf("insert pull repo: %v", err) + } + + return sess.Commit() +} + +// GetUnmergedPullRequest returnss a pull request that is open and has not been merged +// by given head/base and repo/branch. +func GetUnmergedPullRequest(headRepoID, baseRepoID int64, headBranch, baseBranch string) (*PullRequest, error) { + pr := new(PullRequest) + + has, err := x.Where("head_repo_id=? AND head_branch=? AND base_repo_id=? AND base_branch=? AND has_merged=? AND issue.is_closed=?", + headRepoID, headBranch, baseRepoID, baseBranch, false, false). + Join("INNER", "issue", "issue.id=pull_request.issue_id").Get(pr) + if err != nil { + return nil, err + } else if !has { + return nil, ErrPullRequestNotExist{0, 0, headRepoID, baseRepoID, headBranch, baseBranch} + } + + return pr, nil +} + +// GetPullRequestByIssueID returns pull request by given issue ID. +func GetPullRequestByIssueID(pullID int64) (*PullRequest, error) { + pr := new(PullRequest) + has, err := x.Where("pull_id=?", pullID).Get(pr) + if err != nil { + return nil, err + } else if !has { + return nil, ErrPullRequestNotExist{0, pullID, 0, 0, "", ""} + } + return pr, nil +} diff --git a/models/repo.go b/models/repo.go index 62a8b9740..e02b78b32 100644 --- a/models/repo.go +++ b/models/repo.go @@ -46,6 +46,9 @@ var ( var ( Gitignores, Licenses, Readmes []string + + // Maximum items per page in forks, watchers and stars of a repo + ItemsPerPage = 54 ) func LoadRepoConfig() { @@ -102,6 +105,7 @@ func NewRepoContext() { if ver.LessThan(reqVer) { log.Fatal(4, "Gogs requires Git version greater or equal to 1.7.1") } + log.Info("Git Version: %s", ver.String()) // Git requires setting user.name and user.email in order to commit changes. for configKey, defaultValue := range map[string]string{"user.name": "Gogs", "user.email": "gogs@fake.local"} { @@ -293,6 +297,35 @@ func (repo *Repository) DescriptionHtml() template.HTML { return template.HTML(DescPattern.ReplaceAllStringFunc(base.Sanitizer.Sanitize(repo.Description), sanitize)) } +func (repo *Repository) LocalCopyPath() string { + return path.Join(setting.RepoRootPath, "local", com.ToStr(repo.ID)) +} + +// UpdateLocalCopy makes sure the local copy of repository is up-to-date. +func (repo *Repository) UpdateLocalCopy() error { + repoPath, err := repo.RepoPath() + if err != nil { + return err + } + + localPath := repo.LocalCopyPath() + if !com.IsExist(localPath) { + _, stderr, err := process.Exec( + fmt.Sprintf("UpdateLocalCopy(git clone): %s", repoPath), "git", "clone", repoPath, localPath) + if err != nil { + return fmt.Errorf("git clone: %v - %s", err, stderr) + } + } else { + _, stderr, err := process.ExecDir(-1, localPath, + fmt.Sprintf("UpdateLocalCopy(git pull): %s", repoPath), "git", "pull") + if err != nil { + return fmt.Errorf("git pull: %v - %s", err, stderr) + } + } + + return nil +} + func isRepositoryExist(e Engine, u *User, repoName string) (bool, error) { has, err := e.Get(&Repository{ OwnerID: u.Id, @@ -630,7 +663,7 @@ func initRepository(e Engine, repoPath string, u *User, repo *Repository, opts C } tmpDir := filepath.Join(os.TempDir(), "gogs-"+repo.Name+"-"+com.ToStr(time.Now().Nanosecond())) - fmt.Println(tmpDir) + // Initialize repository according to user's choice. if opts.AutoInit { os.MkdirAll(tmpDir, os.ModePerm) @@ -776,21 +809,16 @@ func CountPublicRepositories() int64 { return countRepositories(false) } -// GetRepositoriesWithUsers returns given number of repository objects with offset. -// It also auto-gets corresponding users. -func GetRepositoriesWithUsers(num, offset int) ([]*Repository, error) { - repos := make([]*Repository, 0, num) - if err := x.Limit(num, offset).Asc("id").Find(&repos); err != nil { +// RepositoriesWithUsers returns number of repos in given page. +func RepositoriesWithUsers(page, pageSize int) (_ []*Repository, err error) { + repos := make([]*Repository, 0, pageSize) + if err = x.Limit(pageSize, (page-1)*pageSize).Asc("id").Find(&repos); err != nil { return nil, err } - for _, repo := range repos { - repo.Owner = &User{Id: repo.OwnerID} - has, err := x.Get(repo.Owner) - if err != nil { + for i := range repos { + if err = repos[i].GetOwner(); err != nil { return nil, err - } else if !has { - return nil, ErrUserNotExist{repo.OwnerID, ""} } } @@ -955,13 +983,11 @@ func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err e if err = repo.getOwner(e); err != nil { return fmt.Errorf("getOwner: %v", err) } - if !repo.Owner.IsOrganization() { - return nil - } - - // Organization repository need to recalculate access table when visivility is changed. - if err = repo.recalculateTeamAccesses(e, 0); err != nil { - return fmt.Errorf("recalculateTeamAccesses: %v", err) + if repo.Owner.IsOrganization() { + // Organization repository need to recalculate access table when visivility is changed. + if err = repo.recalculateTeamAccesses(e, 0); err != nil { + return fmt.Errorf("recalculateTeamAccesses: %v", err) + } } forkRepos, err := getRepositoriesByForkID(e, repo.ID) @@ -1231,7 +1257,7 @@ func SearchRepositoryByName(opt SearchOption) (repos []*Repository, err error) { sess.Where("owner_id=?", opt.Uid) } if !opt.Private { - sess.And("is_private=false") + sess.And("is_private=?", false) } sess.And("lower_name like ?", "%"+opt.Keyword+"%").Find(&repos) return repos, err @@ -1574,15 +1600,19 @@ type Watch struct { RepoID int64 `xorm:"UNIQUE(watch)"` } +func isWatching(e Engine, uid, repoId int64) bool { + has, _ := e.Get(&Watch{0, uid, repoId}) + return has +} + // IsWatching checks if user has watched given repository. func IsWatching(uid, repoId int64) bool { - has, _ := x.Get(&Watch{0, uid, repoId}) - return has + return isWatching(x, uid, repoId) } func watchRepo(e Engine, uid, repoId int64, watch bool) (err error) { if watch { - if IsWatching(uid, repoId) { + if isWatching(e, uid, repoId) { return nil } if _, err = e.Insert(&Watch{RepoID: repoId, UserID: uid}); err != nil { @@ -1590,7 +1620,7 @@ func watchRepo(e Engine, uid, repoId int64, watch bool) (err error) { } _, err = e.Exec("UPDATE `repository` SET num_watches = num_watches + 1 WHERE id = ?", repoId) } else { - if !IsWatching(uid, repoId) { + if !isWatching(e, uid, repoId) { return nil } if _, err = e.Delete(&Watch{0, uid, repoId}); err != nil { @@ -1617,6 +1647,16 @@ func GetWatchers(rid int64) ([]*Watch, error) { return getWatchers(x, rid) } +// Repository.GetWatchers returns all users watching given repository. +func (repo *Repository) GetWatchers(offset int) ([]*User, error) { + users := make([]*User, 0, 10) + offset = (offset - 1) * ItemsPerPage + + err := x.Limit(ItemsPerPage, offset).Where("repo_id=?", repo.ID).Join("LEFT", "watch", "user.id=watch.user_id").Find(&users) + + return users, err +} + func notifyWatchers(e Engine, act *Action) error { // Add feeds for user self and all watchers. watches, err := getWatchers(e, act.RepoID) @@ -1658,7 +1698,7 @@ func NotifyWatchers(act *Action) error { type Star struct { ID int64 `xorm:"pk autoincr"` - UID int64 `xorm:"uid UNIQUE(s)"` + UID int64 `xorm:"UNIQUE(s)"` RepoID int64 `xorm:"UNIQUE(s)"` } @@ -1694,6 +1734,15 @@ func IsStaring(uid, repoId int64) bool { return has } +func (repo *Repository) GetStars(offset int) ([]*User, error) { + users := make([]*User, 0, 10) + offset = (offset - 1) * ItemsPerPage + + err := x.Limit(ItemsPerPage, offset).Where("repo_id=?", repo.ID).Join("LEFT", "star", "user.id=star.uid").Find(&users) + + return users, err +} + // ___________ __ // \_ _____/__________| | __ // | __)/ _ \_ __ \ |/ / @@ -1761,3 +1810,11 @@ func ForkRepository(u *User, oldRepo *Repository, name, desc string) (_ *Reposit return repo, sess.Commit() } + +func (repo *Repository) GetForks() ([]*Repository, error) { + forks := make([]*Repository, 0, 10) + + err := x.Find(&forks, &Repository{ForkID: repo.ID}) + + return forks, err +} diff --git a/models/token.go b/models/token.go index 852a910fe..3bb06dc7c 100644 --- a/models/token.go +++ b/models/token.go @@ -14,7 +14,7 @@ import ( // AccessToken represents a personal access token. type AccessToken struct { ID int64 `xorm:"pk autoincr"` - UID int64 `xorm:"uid INDEX"` + UID int64 `xorm:"INDEX"` Name string Sha1 string `xorm:"UNIQUE VARCHAR(40)"` Created time.Time `xorm:"CREATED"` diff --git a/models/update.go b/models/update.go index f381d6fd0..cbaf0e661 100644 --- a/models/update.go +++ b/models/update.go @@ -23,10 +23,6 @@ type UpdateTask struct { NewCommitId string } -const ( - MAX_COMMITS int = 5 -) - func AddUpdateTask(task *UpdateTask) error { _, err := x.Insert(task) return err @@ -139,7 +135,6 @@ func Update(refName, oldCommitId, newCommitId, userName, repoUserName, repoName var actEmail string for e := l.Front(); e != nil; e = e.Next() { commit := e.Value.(*git.Commit) - if actEmail == "" { actEmail = commit.Committer.Email } @@ -147,10 +142,8 @@ func Update(refName, oldCommitId, newCommitId, userName, repoUserName, repoName &base.PushCommit{commit.Id.String(), commit.Message(), commit.Author.Email, - commit.Author.Name}) - if len(commits) >= MAX_COMMITS { - break - } + commit.Author.Name, + }) } if err = CommitRepoAction(userId, ru.Id, userName, actEmail, diff --git a/models/user.go b/models/user.go index da2f49a1c..152ae4284 100644 --- a/models/user.go +++ b/models/user.go @@ -110,8 +110,8 @@ func (u *User) AfterSet(colName string, _ xorm.Cell) { // EmailAdresses is the list of all email addresses of a user. Can contain the // primary email address, but is not obligatory type EmailAddress struct { - Id int64 - Uid int64 `xorm:"INDEX NOT NULL"` + ID int64 `xorm:"pk autoincr"` + UID int64 `xorm:"INDEX NOT NULL"` Email string `xorm:"UNIQUE NOT NULL"` IsActivated bool IsPrimary bool `xorm:"-"` @@ -133,6 +133,22 @@ func (u *User) HomeLink() string { return setting.AppSubUrl + "/" + u.Name } +// GenerateEmailActivateCode generates an activate code based on user information and given e-mail. +func (u *User) GenerateEmailActivateCode(email string) string { + code := base.CreateTimeLimitCode( + com.ToStr(u.Id)+email+u.LowerName+u.Passwd+u.Rands, + setting.Service.ActiveCodeLives, nil) + + // Add tail hex username + code += hex.EncodeToString([]byte(u.LowerName)) + return code +} + +// GenerateActivateCode generates an activate code based on user information. +func (u *User) GenerateActivateCode() string { + return u.GenerateEmailActivateCode(u.Email) +} + // CustomAvatarPath returns user custom avatar file path. func (u *User) CustomAvatarPath() string { return filepath.Join(setting.AvatarUploadPath, com.ToStr(u.Id)) @@ -432,11 +448,10 @@ func CountUsers() int64 { return countUsers(x) } -// GetUsers returns given number of user objects with offset. -func GetUsers(num, offset int) ([]*User, error) { - users := make([]*User, 0, num) - err := x.Limit(num, offset).Where("type=0").Asc("id").Find(&users) - return users, err +// Users returns number of users in given page. +func Users(page, pageSize int) ([]*User, error) { + users := make([]*User, 0, pageSize) + return users, x.Limit(pageSize, (page-1)*pageSize).Where("type=0").Asc("id").Find(&users) } // get user by erify code @@ -615,7 +630,6 @@ func deleteUser(e *xorm.Session, u *User) error { // ***** END: Follow ***** if err = deleteBeans(e, - &Oauth2{Uid: u.Id}, &AccessToken{UID: u.Id}, &Collaboration{UserID: u.Id}, &Access{UserID: u.Id}, @@ -624,7 +638,7 @@ func deleteUser(e *xorm.Session, u *User) error { &Follow{FollowID: u.Id}, &Action{UserID: u.Id}, &IssueUser{UID: u.Id}, - &EmailAddress{Uid: u.Id}, + &EmailAddress{UID: u.Id}, ); err != nil { return fmt.Errorf("deleteUser: %v", err) } @@ -671,7 +685,8 @@ func DeleteUser(u *User) (err error) { } if err = deleteUser(sess, u); err != nil { - return fmt.Errorf("deleteUser: %v", err) + // Note: don't wrapper error here. + return err } return sess.Commit() @@ -831,11 +846,11 @@ func AddEmailAddress(email *EmailAddress) error { func (email *EmailAddress) Activate() error { email.IsActivated = true - if _, err := x.Id(email.Id).AllCols().Update(email); err != nil { + if _, err := x.Id(email.ID).AllCols().Update(email); err != nil { return err } - if user, err := GetUserByID(email.Uid); err != nil { + if user, err := GetUserByID(email.UID); err != nil { return err } else { user.Rands = GetUserSalt() @@ -851,7 +866,7 @@ func DeleteEmailAddress(email *EmailAddress) error { return ErrEmailNotExist } - if _, err = x.Id(email.Id).Delete(email); err != nil { + if _, err = x.Id(email.ID).Delete(email); err != nil { return err } @@ -871,12 +886,12 @@ func MakeEmailPrimary(email *EmailAddress) error { return ErrEmailNotActivated } - user := &User{Id: email.Uid} + user := &User{Id: email.UID} has, err = x.Get(user) if err != nil { return err } else if !has { - return ErrUserNotExist{email.Uid, ""} + return ErrUserNotExist{email.UID, ""} } // Make sure the former primary email doesn't disappear @@ -885,7 +900,7 @@ func MakeEmailPrimary(email *EmailAddress) error { if err != nil { return err } else if !has { - former_primary_email.Uid = user.Id + former_primary_email.UID = user.Id former_primary_email.IsActivated = user.IsActive x.Insert(former_primary_email) } @@ -962,7 +977,7 @@ func GetUserByEmail(email string) (*User, error) { return nil, err } if has { - return GetUserByID(emailAddress.Uid) + return GetUserByID(emailAddress.UID) } return nil, ErrUserNotExist{0, "email"} diff --git a/modules/auth/admin.go b/modules/auth/admin.go index 596e5d642..c2d47a44f 100644 --- a/modules/auth/admin.go +++ b/modules/auth/admin.go @@ -5,22 +5,35 @@ package auth import ( - "github.com/Unknwon/macaron" + "gopkg.in/macaron.v1" - "github.com/macaron-contrib/binding" + "github.com/go-macaron/binding" ) +type AdminCrateUserForm struct { + LoginType string `binding:"Required"` + LoginName string + UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"` + Email string `binding:"Required;Email;MaxSize(254)"` + Password string `binding:"MaxSize(255)"` + SendNotify bool +} + +func (f *AdminCrateUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { + return validate(errs, ctx.Data, f, ctx.Locale) +} + type AdminEditUserForm struct { - FullName string `form:"fullname" binding:"MaxSize(100)"` + LoginType string `binding:"Required"` + LoginName string + FullName string `binding:"MaxSize(100)"` Email string `binding:"Required;Email;MaxSize(254)"` - Password string `binding:"OmitEmpty;MinSize(6);MaxSize(255)"` + Password string `binding:"MaxSize(255)"` Website string `binding:"MaxSize(50)"` Location string `binding:"MaxSize(50)"` - Avatar string `binding:"Required;Email;MaxSize(50)"` Active bool Admin bool AllowGitHook bool - LoginType int } func (f *AdminEditUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { diff --git a/modules/auth/apiv1/miscellaneous.go b/modules/auth/apiv1/miscellaneous.go index e05b48381..5032f0ac7 100644 --- a/modules/auth/apiv1/miscellaneous.go +++ b/modules/auth/apiv1/miscellaneous.go @@ -7,8 +7,8 @@ package apiv1 import ( "reflect" - "github.com/Unknwon/macaron" - "github.com/macaron-contrib/binding" + "github.com/go-macaron/binding" + "gopkg.in/macaron.v1" "github.com/gogits/gogs/modules/auth" ) diff --git a/modules/auth/auth.go b/modules/auth/auth.go index ecae5b06b..f144899b3 100644 --- a/modules/auth/auth.go +++ b/modules/auth/auth.go @@ -10,9 +10,9 @@ import ( "time" "github.com/Unknwon/com" - "github.com/Unknwon/macaron" - "github.com/macaron-contrib/binding" - "github.com/macaron-contrib/session" + "github.com/go-macaron/binding" + "github.com/go-macaron/session" + "gopkg.in/macaron.v1" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/base" diff --git a/modules/auth/auth_form.go b/modules/auth/auth_form.go index b2d427b4b..6f356344d 100644 --- a/modules/auth/auth_form.go +++ b/modules/auth/auth_form.go @@ -5,33 +5,33 @@ package auth import ( - "github.com/Unknwon/macaron" - "github.com/macaron-contrib/binding" + "github.com/go-macaron/binding" + "gopkg.in/macaron.v1" ) type AuthenticationForm struct { - ID int64 `form:"id"` - Type int - Name string `binding:"Required;MaxSize(50)"` - Host string - Port int - UseSSL bool `form:"use_ssl"` - BindDN string `form:"bind_dn"` - BindPassword string - UserBase string - AttributeName string - AttributeSurname string - AttributeMail string - Filter string - AdminFilter string - IsActived bool - SMTPAuth string `form:"smtp_auth"` - SMTPHost string `form:"smtp_host"` - SMTPPort int `form:"smtp_port"` - TLS bool `form:"tls"` - SkipVerify bool - AllowAutoRegister bool `form:"allowautoregister"` - PAMServiceName string + ID int64 + Type int `binding:"Range(2,5)"` + Name string `binding:"Required;MaxSize(30)"` + Host string + Port int + BindDN string + BindPassword string + UserBase string + UserDN string `form:"user_dn"` + AttributeName string + AttributeSurname string + AttributeMail string + Filter string + AdminFilter string + IsActive bool + SMTPAuth string + SMTPHost string + SMTPPort int + AllowedDomains string + TLS bool + SkipVerify bool + PAMServiceName string `form:"pam_service_name"` } func (f *AuthenticationForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { diff --git a/modules/auth/ldap/README.md b/modules/auth/ldap/README.md index 9a2a6aa1f..3a3e02043 100644 --- a/modules/auth/ldap/README.md +++ b/modules/auth/ldap/README.md @@ -4,61 +4,98 @@ Gogs LDAP Authentication Module ## About This authentication module attempts to authorize and authenticate a user -against an LDAP server. Like most LDAP authentication systems, this module does -this in two steps. First, it queries the LDAP server using a Bind DN and -searches for the user that is attempting to sign in. If the user is found, the -module attempts to bind to the server using the user's supplied credentials. If -this succeeds, the user has been authenticated, and his account information is -retrieved and passed to the Gogs login infrastructure. +against an LDAP server. It provides two methods of authentication: LDAP via +BindDN, and LDAP simple authentication. + +LDAP via BindDN functions like most LDAP authentication systems. First, it +queries the LDAP server using a Bind DN and searches for the user that is +attempting to sign in. If the user is found, the module attempts to bind to the +server using the user's supplied credentials. If this succeeds, the user has +been authenticated, and his account information is retrieved and passed to the +Gogs login infrastructure. + +LDAP simple authentication does not utilize a Bind DN. Instead, it binds +directly with the LDAP server using the user's supplied credentials. If the bind +succeeds and no filter rules out the user, the user is authenticated. + +LDAP via BindDN is recommended for most users. By using a Bind DN, the server +can perform authorization by restricting which entries the Bind DN account can +read. Further, using a Bind DN with reduced permissions can reduce security risk +in the face of application bugs. ## Usage To use this module, add an LDAP authentication source via the Authentications -section in the admin panel. The fields should be set as follows: +section in the admin panel. Both the LDAP via BindDN and the simple auth LDAP +share the following fields: * Authorization Name **(required)** - * A name to assign to the new method of authorization. + * A name to assign to the new method of authorization. * Host **(required)** - * The address where the LDAP server can be reached. - * Example: mydomain.com + * The address where the LDAP server can be reached. + * Example: mydomain.com * Port **(required)** - * The port to use when connecting to the server. - * Example: 636 + * The port to use when connecting to the server. + * Example: 636 * Enable TLS Encryption (optional) - * Whether to use TLS when connecting to the LDAP server. + * Whether to use TLS when connecting to the LDAP server. + +* Admin Filter (optional) + * An LDAP filter specifying if a user should be given administrator + privileges. If a user accounts passes the filter, the user will be + privileged as an administrator. + * Example: (objectClass=adminAccount) + +* First name attribute (optional) + * The attribute of the user's LDAP record containing the user's first name. + This will be used to populate their account information. + * Example: givenName + +* Surname attribute (optional) + * The attribute of the user's LDAP record containing the user's surname This + will be used to populate their account information. + * Example: sn + +* E-mail attribute **(required)** + * The attribute of the user's LDAP record containing the user's email + address. This will be used to populate their account information. + * Example: mail + +**LDAP via BindDN** adds the following fields: * Bind DN (optional) - * The DN to bind to the LDAP server with when searching for the user. - This may be left blank to perform an anonymous search. - * Example: cn=Search,dc=mydomain,dc=com + * The DN to bind to the LDAP server with when searching for the user. This + may be left blank to perform an anonymous search. + * Example: cn=Search,dc=mydomain,dc=com * Bind Password (optional) - * The password for the Bind DN specified above, if any. + * The password for the Bind DN specified above, if any. _Note: The password + is stored in plaintext at the server. As such, ensure that your Bind DN + has as few privileges as possible._ * User Search Base **(required)** - * The LDAP base at which user accounts will be searched for. - * Example: ou=Users,dc=mydomain,dc=com + * The LDAP base at which user accounts will be searched for. + * Example: ou=Users,dc=mydomain,dc=com * User Filter **(required)** - * An LDAP filter declaring how to find the user record that is attempting - to authenticate. The '%s' matching parameter will be substituted with - the user's username. - * Example: (&(objectClass=posixAccount)(uid=%s)) + * An LDAP filter declaring how to find the user record that is attempting to + authenticate. The '%s' matching parameter will be substituted with the + user's username. + * Example: (&(objectClass=posixAccount)(uid=%s)) -* First name attribute (optional) - * The attribute of the user's LDAP record containing the user's first - name. This will be used to populate their account information. - * Example: givenName +**LDAP using simple auth** adds the following fields: -* Surname name attribute (optional) - * The attribute of the user's LDAP record containing the user's surname - This will be used to populate their account information. - * Example: sn +* User DN **(required)** + * A template to use as the user's DN. The `%s` matching parameter will be + substituted with the user's username. + * Example: cn=%s,ou=Users,dc=mydomain,dc=com + * Example: uid=%s,ou=Users,dc=mydomain,dc=com -* E-mail attribute **(required)** - * The attribute of the user's LDAP record containing the user's email - address. This will be used to populate their account information. - * Example: mail +* User Filter **(required)** + * An LDAP filter declaring when a user should be allowed to log in. The `%s` + matching parameter will be substituted with the user's username. + * Example: (&(objectClass=posixAccount)(cn=%s)) + * Example: (&(objectClass=posixAccount)(uid=%s)) diff --git a/modules/auth/ldap/ldap.go b/modules/auth/ldap/ldap.go index de1108fd9..382b5b869 100644 --- a/modules/auth/ldap/ldap.go +++ b/modules/auth/ldap/ldap.go @@ -7,6 +7,7 @@ package ldap import ( + "crypto/tls" "fmt" "github.com/gogits/gogs/modules/ldap" @@ -14,14 +15,16 @@ import ( ) // Basic LDAP authentication service -type Ldapsource struct { +type Source struct { Name string // canonical name (ie. corporate.ad) Host string // LDAP host Port int // port number UseSSL bool // Use SSL + SkipVerify bool BindDN string // DN to bind with BindPassword string // Bind DN password UserBase string // Base search path for users + UserDN string // Template for the DN of the user for simple auth AttributeName string // First name attribute AttributeSurname string // Surname attribute AttributeMail string // E-mail attribute @@ -30,7 +33,7 @@ type Ldapsource struct { Enabled bool // if this source is disabled } -func (ls Ldapsource) FindUserDN(name string) (string, bool) { +func (ls *Source) FindUserDN(name string) (string, bool) { l, err := ldapDial(ls) if err != nil { log.Error(4, "LDAP Connect error, %s:%v", ls.Host, err) @@ -78,10 +81,19 @@ func (ls Ldapsource) FindUserDN(name string) (string, bool) { } // searchEntry : search an LDAP source if an entry (name, passwd) is valid and in the specific filter -func (ls Ldapsource) SearchEntry(name, passwd string) (string, string, string, bool, bool) { - userDN, found := ls.FindUserDN(name) - if !found { - return "", "", "", false, false +func (ls *Source) SearchEntry(name, passwd string, directBind bool) (string, string, string, bool, bool) { + var userDN string + if directBind { + log.Trace("LDAP will bind directly via UserDN template: %s", ls.UserDN) + userDN = fmt.Sprintf(ls.UserDN, name) + } else { + log.Trace("LDAP will use BindDN.") + + var found bool + userDN, found = ls.FindUserDN(name) + if !found { + return "", "", "", false, false + } } l, err := ldapDial(ls) @@ -90,7 +102,6 @@ func (ls Ldapsource) SearchEntry(name, passwd string) (string, string, string, b ls.Enabled = false return "", "", "", false, false } - defer l.Close() log.Trace("Binding with userDN: %s", userDN) @@ -112,7 +123,12 @@ func (ls Ldapsource) SearchEntry(name, passwd string) (string, string, string, b log.Error(4, "LDAP Search failed unexpectedly! (%v)", err) return "", "", "", false, false } else if len(sr.Entries) < 1 { - log.Error(4, "LDAP Search failed unexpectedly! (0 entries)") + if directBind { + log.Error(4, "User filter inhibited user login.") + } else { + log.Error(4, "LDAP Search failed unexpectedly! (0 entries)") + } + return "", "", "", false, false } @@ -140,10 +156,12 @@ func (ls Ldapsource) SearchEntry(name, passwd string) (string, string, string, b return name_attr, sn_attr, mail_attr, admin_attr, true } -func ldapDial(ls Ldapsource) (*ldap.Conn, error) { +func ldapDial(ls *Source) (*ldap.Conn, error) { if ls.UseSSL { - log.Debug("Using TLS for LDAP") - return ldap.DialTLS("tcp", fmt.Sprintf("%s:%d", ls.Host, ls.Port), nil) + log.Debug("Using TLS for LDAP without verifying: %v", ls.SkipVerify) + return ldap.DialTLS("tcp", fmt.Sprintf("%s:%d", ls.Host, ls.Port), &tls.Config{ + InsecureSkipVerify: ls.SkipVerify, + }) } else { return ldap.Dial("tcp", fmt.Sprintf("%s:%d", ls.Host, ls.Port)) } diff --git a/modules/auth/org.go b/modules/auth/org.go index 6d9a7269e..0642d1cb7 100644 --- a/modules/auth/org.go +++ b/modules/auth/org.go @@ -5,8 +5,8 @@ package auth import ( - "github.com/Unknwon/macaron" - "github.com/macaron-contrib/binding" + "github.com/go-macaron/binding" + "gopkg.in/macaron.v1" ) // ________ .__ __ .__ diff --git a/modules/auth/repo_form.go b/modules/auth/repo_form.go index 3a74bbe00..ac43ba5d9 100644 --- a/modules/auth/repo_form.go +++ b/modules/auth/repo_form.go @@ -5,8 +5,8 @@ package auth import ( - "github.com/Unknwon/macaron" - "github.com/macaron-contrib/binding" + "github.com/go-macaron/binding" + "gopkg.in/macaron.v1" ) // _______________________________________ _________.______________________ _______________.___. diff --git a/modules/auth/user_form.go b/modules/auth/user_form.go index dda429b7d..88d6dd9fb 100644 --- a/modules/auth/user_form.go +++ b/modules/auth/user_form.go @@ -7,8 +7,8 @@ package auth import ( "mime/multipart" - "github.com/Unknwon/macaron" - "github.com/macaron-contrib/binding" + "github.com/go-macaron/binding" + "gopkg.in/macaron.v1" ) type InstallForm struct { @@ -38,6 +38,7 @@ type InstallForm struct { OfflineMode bool DisableGravatar bool DisableRegistration bool + EnableCaptcha bool RequireSignInView bool AdminName string `binding:"OmitEmpty;AlphaDashDot;MaxSize(30)" locale:"install.admin_name"` @@ -58,12 +59,10 @@ func (f *InstallForm) Validate(ctx *macaron.Context, errs binding.Errors) bindin // \/ \/ type RegisterForm struct { - UserName string `form:"uname" binding:"Required;AlphaDashDot;MaxSize(35)"` - Email string `form:"email" binding:"Required;Email;MaxSize(254)"` - Password string `form:"password" binding:"Required;MaxSize(255)"` - Retype string `form:"retype"` - LoginType string `form:"logintype"` - LoginName string `form:"loginname"` + UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"` + Email string `binding:"Required;Email;MaxSize(254)"` + Password string `binding:"Required;MaxSize(255)"` + Retype string } func (f *RegisterForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { @@ -71,9 +70,9 @@ func (f *RegisterForm) Validate(ctx *macaron.Context, errs binding.Errors) bindi } type SignInForm struct { - UserName string `form:"uname" binding:"Required;MaxSize(254)"` - Password string `form:"password" binding:"Required;MaxSize(255)"` - Remember bool `form:"remember"` + UserName string `binding:"Required;MaxSize(254)"` + Password string `binding:"Required;MaxSize(255)"` + Remember bool } func (f *SignInForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { @@ -110,7 +109,7 @@ func (f *UploadAvatarForm) Validate(ctx *macaron.Context, errs binding.Errors) b } type AddEmailForm struct { - Email string `binding:"Required;Email;MaxSize(50)"` + Email string `binding:"Required;Email;MaxSize(254)"` } func (f *AddEmailForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { diff --git a/modules/avatar/avatar.go b/modules/avatar/avatar.go index 493f6d931..e037703ba 100644 --- a/modules/avatar/avatar.go +++ b/modules/avatar/avatar.go @@ -32,9 +32,9 @@ import ( "sync" "time" + "github.com/issue9/identicon" "github.com/nfnt/resize" - "github.com/gogits/gogs/modules/identicon" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/setting" ) diff --git a/modules/base/base.go b/modules/base/base.go index 47a4137c9..864ede055 100644 --- a/modules/base/base.go +++ b/modules/base/base.go @@ -8,11 +8,6 @@ const DOC_URL = "https://github.com/gogits/go-gogs-client/wiki" type ( TplName string - - ApiJsonErr struct { - Message string `json:"message"` - DocUrl string `json:"url"` - } ) var GoGetMetas = make(map[string]bool) diff --git a/modules/base/template.go b/modules/base/template.go index 6fc449a6a..f5f567ade 100644 --- a/modules/base/template.go +++ b/modules/base/template.go @@ -96,13 +96,42 @@ func ToUtf8(content string) string { return res } +// Replaces all prefixes 'old' in 's' with 'new'. +func ReplaceLeft(s, old, new string) string { + old_len, new_len, i, n := len(old), len(new), 0, 0 + for ; i < len(s) && strings.HasPrefix(s[i:], old); n += 1 { + i += old_len + } + + // simple optimization + if n == 0 { + return s + } + + // allocating space for the new string + newLen := n*new_len + len(s[i:]) + replacement := make([]byte, newLen, newLen) + + j := 0 + for ; j < n*new_len; j += new_len { + copy(replacement[j:j+new_len], new) + } + + copy(replacement[j:], s[i:]) + return string(replacement) +} + // RenderCommitMessage renders commit message with XSS-safe and special links. func RenderCommitMessage(msg, urlPrefix string) template.HTML { - return template.HTML(string(RenderIssueIndexPattern([]byte(template.HTMLEscapeString(msg)), urlPrefix))) -} + cleanMsg := template.HTMLEscapeString(msg) + fullMessage := string(RenderIssueIndexPattern([]byte(cleanMsg), urlPrefix)) + msgLines := strings.Split(strings.TrimSpace(fullMessage), "\n") + for i := range msgLines { + msgLines[i] = ReplaceLeft(msgLines[i], " ", " ") + } -var mailDomains = map[string]string{ - "gmail.com": "gmail.com", + fullMessage = strings.Join(msgLines, "
") + return template.HTML(fullMessage) } var TemplateFuncs template.FuncMap = map[string]interface{}{ @@ -150,12 +179,7 @@ var TemplateFuncs template.FuncMap = map[string]interface{}{ return "try.gogs.io" } - suffix := strings.SplitN(mail, "@", 2)[1] - domain, ok := mailDomains[suffix] - if !ok { - return "mail." + suffix - } - return domain + return strings.SplitN(mail, "@", 2)[1] }, "SubStr": func(str string, start, length int) string { if len(str) == 0 { diff --git a/modules/base/tool.go b/modules/base/tool.go index 0e118552a..b9a97c9c3 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -15,6 +15,7 @@ import ( "hash" "html/template" "math" + "regexp" "strings" "time" @@ -26,7 +27,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -var Sanitizer = bluemonday.UGCPolicy() +var Sanitizer = bluemonday.UGCPolicy().AllowAttrs("class").Matching(regexp.MustCompile(`[\p{L}\p{N}\s\-_',:\[\]!\./\\\(\)&]*`)).OnElements("code") // Encode string to md5 hex value. func EncodeMd5(str string) string { diff --git a/modules/bindata/bindata.go b/modules/bindata/bindata.go index 6750a2612..c724091c0 100644 --- a/modules/bindata/bindata.go +++ b/modules/bindata/bindata.go @@ -284,7 +284,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x5a\x5b\x6f\xe3\x48\x76\x7e\xe7\xaf\xa8\xf6\x64\x32\xdd\x81\x24\xdf\xa6\x2f\xe3\x19\x27\x2d\x4b\x94\xcd\xb5\x6e\x43\x4a\xed\xe9\x69\x18\x34\x4d\x96\x24\xb6\x29\x52\xcd\x22\xed\xd6\x20\x0f\x3b\xc8\x43\x80\x3c\x26\x8b\xe4\x25\x08\x92\x87\x20\xc0\xe6\x82\x2c\xf2\xb2\xbb\x41\x9e\x06\x79\xef\xfe\x0f\x83\xd9\xcd\xbf\xc8\x77\x4e\x91\x12\xe5\xf6\xf4\xce\x6e\xb2\xe8\x86\x45\xd5\xe5\x54\xd5\x57\xa7\xbe\xf3\x9d\xa2\x3e\x10\x7d\xf3\x99\x69\x0b\xfe\xd3\x1b\xb4\xad\xce\x73\x31\x3a\xb1\x1c\xd1\xb1\xba\xa6\xf1\x81\x18\x76\xcd\xa6\x63\x8a\x5e\xf3\xd4\x14\xad\x93\x66\xff\xd8\x74\xc4\xa0\x2f\x5a\x03\xdb\x36\x9d\xe1\xa0\xdf\xb6\xfa\xc7\xa2\x35\x76\x46\x83\x1e\x0a\xfb\x1d\xeb\x58\xf7\x34\x3e\x15\xcd\xc5\x42\xc4\xde\x5c\x8a\x6c\xe6\x65\x42\xcd\x92\x1b\x25\x92\x58\xc8\x6b\x99\x2e\xc5\xc2\x9b\xa2\x22\xcc\x22\x69\x34\x87\x43\xb7\xdf\xec\x99\xe2\x50\x1c\x27\x53\x75\x80\xbf\xe2\x38\xcc\x84\x23\xd3\xeb\xd0\x97\xb0\xd4\x9a\x79\x31\x9a\xa3\x2c\x9c\x88\x65\x92\x8b\x34\x8f\x45\x94\xf8\x5e\x14\x2d\x0d\x7b\xdc\x77\xc7\x0e\x66\x7f\x28\xa6\x61\x86\xd6\x66\x98\xcd\x64\x2a\xb6\x02\x79\xbd\x55\x13\x5b\x8b\x34\x09\xb6\x44\x82\x82\x4c\xaa\x0c\x25\x81\x9c\x78\x79\x04\x5b\x4a\xb7\x61\x0b\x58\x3a\x4d\x00\xdf\x0d\xe3\x45\x2a\x17\x89\x0a\xb3\x24\x5d\x9e\x1b\xf6\x60\x30\x12\x87\x86\xd3\xb2\xad\xe1\xc8\x1d\x3d\x1f\x52\xb3\x4b\x4f\xcd\xd0\x2e\x0f\xcf\x31\x5e\x3f\x9f\x5f\x62\xbc\x64\x22\x56\xfd\x42\xa9\xf4\xaa\xbd\x54\xf2\xca\x65\x20\xc2\x18\xab\x97\x42\xbe\x5e\x44\x09\x4a\x09\x00\xc3\xfc\x62\xd8\x1d\xd8\xa6\x3b\x6c\x1e\x03\x47\xb7\x3f\xee\xc1\xf8\xde\xce\x86\xd1\x50\xa9\xfc\xfb\xcd\xb1\x19\xcb\x71\xc6\xb7\x8c\xec\xee\x60\x7e\x73\x2f\xbd\x0a\x92\x9b\x98\x66\x69\xc6\xde\x65\x24\xc5\xcc\x4b\x03\x11\x85\xe8\x79\x99\x4a\xef\x0a\xd3\xc9\x64\xac\xc2\x24\x36\xcc\x7e\xf3\xa8\x6b\xba\x27\x4d\xbb\xed\x76\xad\xbe\xe9\x1e\xd9\x66\xf3\x14\xa6\x26\x5e\xa4\x24\xac\x29\xec\x87\x4c\xcf\x8d\xa1\x3d\x18\x0d\x5a\x83\x2e\xaa\x66\x59\xb6\x30\xda\x83\x5e\xd3\xea\xe3\x1b\xef\xc8\x2c\x51\x19\x83\xe6\x8e\x6d\x6a\xf2\xe1\xfd\xb2\xfd\x03\x75\xb0\xbd\xfd\xe1\x7d\xdd\x1c\x5f\x3e\xbc\x7f\x32\x1a\x0d\xdd\xe1\xc0\x1e\x3d\x50\xdb\x06\x7f\x69\xb6\xdb\xd8\x48\x63\x55\x01\x03\xfb\x3b\x3b\x04\x48\x3b\x54\xbc\x00\xc7\x39\x11\x13\xe9\x65\x39\xa0\xb8\x99\xc9\x58\xc4\x09\x70\xb9\xf6\xc2\x88\xaa\x8d\xb6\xe5\xf0\x32\xa8\x59\x39\x75\x3c\x97\xc6\xf6\xf6\x2a\xa6\x5a\xed\x3e\x79\x63\x4c\x58\x16\x6e\x32\x4f\x02\x69\x0c\x3a\x1d\x06\xa0\xf0\x09\x6d\xa4\x34\x6c\x0f\xc6\x23\xd3\x76\xbb\x83\xe3\x55\xd5\xa7\xe2\x58\xc6\x32\xf5\x32\x6c\x4e\x26\x17\xea\x00\x25\x7f\x20\xfc\x00\x9b\x93\xcd\xb6\xb3\x64\x7b\x0a\xb7\xde\xf6\x73\x95\x25\xf3\x6d\x82\x4c\x71\x83\x06\x97\x0b\x5f\xa6\x99\xa8\xfb\xde\x61\x96\xe6\x52\xd4\x83\x1c\x86\xb0\x1f\x87\x4f\x1e\x3f\xda\x99\xed\xcc\x77\x94\xa8\x13\xa6\x87\xf3\x25\x7d\x34\xe4\x6b\x6f\xbe\x88\x64\xc3\x4f\xe6\xc6\xa7\xb0\x33\x48\xc5\x24\x4d\xe6\xc2\x13\x8d\xc5\xe4\xb5\x98\x84\x11\xfb\x58\x92\x66\x70\x12\xae\xc1\x69\x10\x67\x61\x1c\xd0\xf9\xa3\xc1\xc2\x49\xe8\xeb\xb9\x92\x1f\xde\x0f\x12\x58\x21\x10\x27\x49\x3a\x95\x99\xc8\x92\xa2\x3f\x77\x5c\xa4\xe1\x35\x35\xbe\x92\xcb\x07\x7a\x5d\xc9\x02\x0e\xa3\x22\xb1\xb8\xf2\xd5\xee\x9e\xa8\x03\x3c\xb2\xca\xa3\xd7\x93\x3c\x2b\xbe\xc9\xb9\xa8\xc7\x09\xba\xa9\x1f\xd6\x0b\x2d\xcb\x4e\x54\xa1\xe8\x21\x90\xca\x68\x99\xf6\xc8\x25\x4a\x01\xdc\x55\x08\xb7\xcb\x61\x8c\x53\xf3\xf9\x9d\x0d\x0a\x8b\x18\x7e\xbc\x58\xe0\x2c\x45\xd8\xeb\x88\x4e\x54\x26\x81\x20\x2d\xca\x8b\x03\xa0\x00\xb8\x7d\x8d\x1b\xed\x17\x9a\x57\x08\x82\x21\x40\x29\xb9\x1a\xc0\x22\x7e\xa2\x62\xf9\x5a\xfa\x39\x00\x36\x9c\x51\x73\x64\xb5\x5c\xf6\xf7\x61\x73\x04\x9f\xd3\xc4\x17\x11\xc4\xd8\xc5\x62\xd0\xe3\x2f\xad\xa1\x50\xf9\x82\x60\x2d\x0f\x1a\x97\xad\x5d\xa8\x8b\xc9\x84\xf1\x54\x13\x23\xb6\x02\x5b\x12\xd7\xa3\x64\x3a\xc5\x36\xe6\x38\x7a\xaa\x26\x7c\x2f\x16\x97\x52\x6c\xcd\x92\xb9\xd4\x8c\x56\x90\xc9\x96\xd1\x6d\x32\x13\x13\x07\x10\x0e\xd4\x02\x27\x36\xf0\x32\x0f\x54\x25\xcf\x2b\xac\x38\x5f\xaa\x57\x11\xf3\x22\xbc\x69\x9a\x4a\xa5\x2d\xa1\x30\xcc\xe4\x3e\x2a\xc2\xec\x23\x45\x24\x9b\x0a\x7f\x96\x10\xff\xb6\x8f\x4a\xda\xe3\xbe\xc6\xc9\xc0\xa1\xa3\xb4\xbb\xf7\xb8\xb1\x83\x7f\xbb\x07\xfb\xfb\x3b\x8f\x8c\x82\xc1\xc9\xa5\x8d\x82\x8e\xd3\x24\xc9\x8c\x61\xd3\x71\xce\xda\x8c\x4b\x87\x06\xaa\x0c\x1b\x47\xcb\x9a\x90\x25\x5b\xeb\x43\x49\x33\x4b\xe5\xab\x3c\x4c\x8b\x25\x82\x72\xc2\xc9\xb2\x3e\xc9\xa3\x68\x0b\x27\xb9\xbb\x62\x6a\xdd\xbe\x34\x5b\xce\x9f\xad\x1a\x7a\x2b\x04\xad\x9f\x0f\x59\x23\xb8\x04\x1c\x5e\x30\x0f\xc1\x85\xc4\x64\x7e\x9e\x86\x19\xd8\xdd\xea\x63\x07\xbb\x5d\x1c\xe7\xd6\x69\x65\x33\xee\xdd\xd3\xb1\x4e\x87\xc2\xd1\x40\x9c\x9a\xe6\x50\x3c\x1f\x8c\x6d\xc1\x6b\x6b\x37\x47\x4d\xe1\x34\x3b\xe6\xbd\x7b\x86\x63\xb6\x6c\x73\xe4\xc2\x0b\x61\xe0\xde\x07\x4f\x3b\x6d\xf3\xcc\xc6\xff\x3f\xfc\xa3\xfb\xe4\x0b\x79\x96\xd0\x36\xc2\xdf\x53\x39\x97\x4c\xea\x81\x87\x43\x01\x02\xb1\xfa\xae\x6d\xf6\xcc\xde\x11\xf8\xa4\xdd\x7c\xee\xa0\xff\x63\xa3\x35\x18\x9c\x5a\x26\x47\xb4\x0a\xa4\xae\x77\x23\x15\x6d\x6a\x51\xbd\xea\x57\x6d\x13\xc6\x7e\x2a\x83\x50\xa3\x62\x53\x9c\x55\x74\x80\x93\xd7\x4b\xe1\xe5\x40\x39\xce\x4a\xaf\x9c\x49\x2f\xc0\x44\x38\x3a\xe3\x40\x90\x7f\xf1\x17\xc3\x26\x1d\xe0\x20\x96\xd8\x83\x2f\x9e\xbb\xcd\xf1\xe8\xc4\xec\xc3\xc1\xe1\xe4\x83\x55\x94\xfd\xa2\x7e\x66\x1e\x51\x55\x9d\x0a\x8a\xc0\x00\x47\x39\x37\x9a\xad\x91\xf5\xcc\x74\x5b\xd8\x21\x84\x10\x3c\xf5\xac\x3e\xd8\x92\x16\xb6\xfb\x64\x07\xc6\x1d\x93\x8e\x09\x39\xc4\xf7\x36\xc2\x69\xe5\xd9\x48\xf8\x3d\xa8\xc8\x4f\xe2\x49\x98\xce\x85\xac\xcf\x41\xf1\x7c\x30\x52\x39\x0d\x55\xa6\x59\x12\x36\x8f\x2d\x87\x08\xd9\x44\x54\xe9\xba\x2c\x41\xec\x5e\x65\x2b\xdb\x09\x82\x27\xc7\x88\x28\x4a\x6e\x8a\xce\x18\x80\xce\x3e\x3b\x84\x00\x68\x4c\x06\xbe\x9f\xe4\x71\xa6\x1d\x68\xc5\xf6\x6c\xde\xe6\xf5\x57\x8c\xf2\x14\xe7\x20\x1b\xa1\xc2\x29\xc7\x0f\x4c\xf5\x3a\x94\x37\x30\xbb\xcc\x66\x38\xc7\x0d\xcc\xec\xf3\xb1\x85\xd8\xee\x58\xc7\x7d\xec\xf4\x33\xcb\x3c\xab\x58\x68\x79\x3e\xa8\x05\x71\x2b\xf3\x30\x17\x25\x16\xa1\x4f\x21\xad\x24\x87\x56\xb3\x75\x62\xba\xcd\x67\xf0\x33\xbb\xd2\xab\x47\x18\x60\x31\x9a\xc2\x2b\x51\xbb\x3f\x18\x41\xb9\xb9\x84\x41\xb5\x39\x11\x7c\x20\x33\xf4\x3a\xe0\x58\x4d\x11\x18\x22\x69\x96\x5f\x52\xfc\xa0\xa3\x11\x66\x4a\x87\x27\x2d\x33\xb6\x77\x1f\x3d\x2c\x6d\xbe\xcf\x17\x56\x83\x7c\x5f\xdb\xc1\xf7\x41\xd7\x4e\x78\x37\xb0\x7a\xff\x4a\x00\xfe\x70\x9e\xcf\x89\xfc\x81\xe4\x57\x88\xe8\x98\x1c\xf6\x3c\x05\x41\x2c\x12\x4d\x88\xd9\x72\xb1\x8e\xbe\xf0\x15\xab\x37\xee\xd1\x69\x03\xb0\x5f\x02\xa8\x13\xb3\x55\x15\x29\x37\xf2\x72\x96\x24\x57\xc4\x78\x27\xf8\x14\x99\xa7\xae\xc4\xab\x5c\x22\xb4\x46\x32\x9e\x82\xdf\x3f\x1f\x9b\x10\x4b\x5d\xb3\x7f\xcc\x1c\xb1\x5b\xc8\x0b\x19\x85\x38\x30\x90\xa4\x73\x49\xe1\x08\x5b\x0a\x96\xc0\x14\x94\xd1\x36\xc9\x4d\x6d\x77\x64\xf5\x4c\x04\x7f\xf4\x79\x48\x07\x9b\xdd\x29\x8c\x99\x4b\x64\x25\xb0\xd2\xae\x38\xa7\xd6\xd0\x1d\x75\x1d\x17\xfd\x48\x51\xaf\x97\xbf\xd6\x75\xb3\x90\x02\xf0\x12\x26\xe0\xd4\x73\x7d\x2e\x31\xaa\x84\x63\x68\x55\x77\x97\x9e\x43\x94\x82\x02\xd3\xa0\xb7\x2b\x66\x8f\xf2\xc9\x84\x43\x1c\x2d\x91\xac\xfb\x90\xcc\xb1\x8c\x6a\x80\x56\x2e\x48\x39\xc3\xc7\x42\x0e\x69\x85\x84\x0e\x92\xf8\x23\x44\xdd\x18\x8b\xb8\x21\x69\xc9\x95\x0d\xb0\x59\xbf\xed\x1e\x8d\x3b\x1d\xd2\x38\x66\x5f\x8f\x8c\x69\x13\x53\x80\x72\x11\x37\x97\x5a\x7c\xf2\x71\xd4\x02\xde\x19\x1f\xfd\xc8\x6c\x8d\x58\xec\x95\x62\xfe\x81\x2a\xdd\x55\xcb\x46\x12\x49\x73\xf6\x43\x35\xcf\x16\x8d\x29\x3d\x93\x0f\x1e\x3c\x7c\xf2\x18\x75\x9f\x7f\x5e\x54\xbc\x7a\xc5\xa5\x7b\x04\x71\x3f\xc9\x64\x8d\xe6\xcb\x51\x98\x14\x89\xc4\x7e\x68\x1f\xd9\xfa\xf8\xd1\x43\xc4\x0a\xa7\x37\x1a\x3a\x28\x89\x22\x8a\x8c\xe0\xb1\xa0\x81\xc3\x49\x6e\x03\x5e\xb7\x47\xd8\x02\x4a\x39\xb8\x2f\x06\xa2\xe5\xa7\xd8\xd5\xf9\x1c\x86\xb0\x0c\x52\x05\x76\xa7\x25\x1e\x7d\xbc\xf3\x49\x43\x58\x7a\x20\x3d\xdf\x32\x5a\xab\xb5\x21\x20\xc4\x03\x79\xd1\x0d\x08\x7c\x35\x5e\x19\x0f\x2b\xc2\xf2\xc4\xec\x0e\x48\xf1\x68\x8e\xd2\x32\x95\xc4\x1b\xf3\x2d\x69\xf8\x20\xa4\xed\x02\x21\x37\x56\x9e\xcd\x7d\xd8\x4a\x8b\x45\xcc\xba\x03\x71\xde\xa6\xc5\x8d\x1c\x86\x35\x9e\x5a\x82\xd4\xe6\x98\x0b\xda\xb9\x34\xa1\x22\x2e\xac\x0f\x9c\x8e\xa3\xbc\xc2\xaa\x08\x4c\xaa\x8b\x6e\x88\x01\xc8\x8f\x96\x85\x42\x32\x8d\x91\x95\x8c\x26\x75\x62\x39\xe0\x55\xe9\xa8\xb4\x8f\xaf\xfc\x5b\x93\xa2\xf0\xa3\x10\xab\xaa\x36\x24\x31\xe0\x92\x88\xb3\x3a\xc4\x1d\x6b\x41\x7d\x87\xb0\xd3\xfe\xfd\x3e\x65\x57\xb4\x58\x4b\x3b\x76\x31\x2d\x80\x83\x00\xac\x01\x99\x44\x3b\xfa\x70\x7f\x6f\xaf\x21\x46\xb4\x88\x42\x35\xbd\x24\xb6\xc6\xa3\x64\xc7\x5d\x35\xc6\x0a\x69\xfd\x17\x5b\xe4\xe1\x5b\xe2\x33\xae\x7e\x5a\x11\xd9\x7f\x7c\x21\xf4\xf9\x14\x46\xc7\x46\x92\x7b\x58\x0c\x0a\x17\x59\x85\x4d\x0e\x26\x0b\x4f\xa9\x9b\x24\x0d\x0a\xf5\xb3\x16\x3e\xc6\x8b\x84\xc2\xef\xbb\xc7\xb6\xa8\x68\x68\x46\x7e\xb7\xbe\xd5\xb5\xc0\xb8\xae\x45\x46\x8a\x67\x2d\x36\x38\x1f\x1d\x0c\x39\x66\x96\xb4\xee\x2d\xc2\x46\x85\xda\x69\x6e\x06\x71\x76\x91\x86\xdd\xc1\xfe\xac\x4a\xb6\x79\x0a\xdb\xf4\x07\x69\xeb\x57\xd2\x18\x0d\x4e\xcd\xfe\x0f\xec\xe4\xfb\xc0\xd0\xcd\xa0\xf2\x63\x83\xb3\xa0\xac\x74\x80\x30\xd0\xe2\x5a\x22\xb8\x66\xbc\x3f\xa8\x2f\xcd\x81\x56\x55\x02\x74\x03\xd2\xc6\xe4\xd4\xaa\x31\x4d\x92\xa9\xc6\x7b\x1b\x82\xe5\xa5\xf4\xb3\x15\x38\x5c\xf3\x7f\x04\xe7\xe6\xe6\xa6\x30\x04\x98\x14\x0f\xc3\x2b\x20\x94\x88\x7f\x1b\xda\x2b\x7e\x70\x73\xcc\x91\x12\x86\xbb\x00\x2e\x64\xc4\xc6\x92\x12\x0d\xd8\x1e\x5b\xb9\x13\xe1\xf7\xf6\x2a\x00\x2e\x00\x79\xf5\xea\x77\x04\x03\xc9\x9d\x4b\x2b\x70\x69\x09\xcc\xb9\xe2\xdb\x5f\xfe\xe5\xaf\xbf\xfe\xc9\x9d\x7e\x92\x7a\x8b\x59\xc1\xc6\xc5\x3c\x1a\x3b\xbf\xc9\x4d\xee\xec\xb3\x39\xfb\x1b\x19\x5e\x26\xbf\xe3\x02\xa0\xe0\xee\x44\x1c\x9e\xcf\x66\x2b\xe3\xfe\x86\x99\xde\xdd\x65\xc3\x9d\x5f\xf8\xa4\xd0\x36\x32\x27\x39\x47\xbc\xd6\x09\x0a\x42\xe1\x16\x93\x07\x95\x72\xcb\x5b\x17\x4b\x45\x63\xa3\xd9\x6e\x0e\x47\x2c\x9b\x75\x49\x99\xaf\x14\xf5\x45\x12\x74\xdc\x42\x48\x85\x2a\xbd\xf6\xa2\x8a\xf2\xd8\xb0\xf8\x68\x07\xc9\x0a\x2c\x3d\x6b\xd2\x42\x1e\xed\x94\x86\xf4\x5c\xf8\xb4\x55\xe7\x02\x03\x31\x4e\x11\x8b\xfd\x84\x98\x4f\x13\x1e\x7a\x71\x87\x03\x08\xec\x0c\x6c\x75\x75\x98\xf9\x8b\x1a\x55\x1e\x1e\x3c\xda\x7f\xfc\x49\xad\x64\xb1\xc3\xb9\xe7\x7b\x29\x42\x4d\x70\x79\xb8\x53\x5b\x24\x49\xe4\x92\x40\x3b\x84\x5c\xaa\x85\x41\x24\xdd\x42\x28\x1d\x6a\xcd\x5e\x8e\x7c\x20\x2e\xd6\x79\xe1\xee\xee\xde\xee\xee\x45\x11\x1f\x39\x4f\x50\x74\xd3\x74\x37\xa6\x74\x9e\xd6\xd8\x6a\x68\x8b\x54\xf5\x2e\x5c\x21\x34\x9f\x59\xed\x4d\x60\x87\x69\x72\x1d\x52\x5e\xc3\x49\xc3\x14\xf1\x92\xd6\xaf\xf4\xf4\xd0\xe4\x80\x03\xe1\xcc\xbb\x26\xc2\x5e\x96\xad\x96\x92\x2e\x0d\x69\x78\x48\x10\x3d\xc3\xf5\x6d\x00\xf2\xd3\xc6\xb4\x21\x2e\x38\x93\x2c\x6a\xd5\xc5\xef\x0d\x45\x5a\xf0\x01\x92\xb9\x3a\x3e\xeb\x41\x4a\x8a\x74\x9b\x0b\x45\xa0\xe2\x72\xc2\xc8\x7d\x20\x70\xca\x99\x51\x92\x7d\x50\x8e\xf7\xb4\x9c\xa3\x9b\x91\x10\xb9\x58\xc1\xe4\x16\x77\xb3\x45\x4e\x5c\xae\x04\x63\x3a\xc5\x92\x7d\xa8\xe5\x50\xea\x2c\xb0\x48\x32\x0b\x0d\x11\xba\x51\x78\x25\x5d\x9d\x2c\xa0\x87\xa5\x05\x24\xa9\x84\x12\x2f\xf8\x2c\x1f\xad\xc2\x9d\xab\xea\x44\x1f\x6f\x6d\x10\x47\x7a\x6c\x9b\x15\xd9\x5a\x5c\x4a\x2a\x0a\x1c\x3c\xfe\x46\x5f\xba\x10\x2b\x13\x0c\xca\x1c\xb5\x15\x74\xe7\x8a\xf5\xd4\x71\x7a\x08\xc7\xd5\x11\xda\x30\xf2\x04\xe2\x6e\xc7\x38\x6e\xb9\xe5\xe9\x61\x1d\x0f\x23\xba\x62\x6d\x25\x0a\x27\x92\xed\xdc\xd1\xdd\x31\x1d\x87\x32\xe0\xae\xd5\x31\x37\xfb\x1b\x2f\x8a\xcc\x8d\xbc\x7a\x44\x3a\x35\xf2\x7c\x49\xe9\x60\x51\xce\x80\xaf\xaf\x39\xb4\xd0\xd2\xfe\xfd\x0a\xd9\x4f\x7e\xcb\xbf\x8b\x7a\x8c\x68\x3f\xb3\x5a\x34\x4e\xa1\x9f\x75\x2e\xe8\x8e\x87\xdd\x41\xb3\xed\x56\x2f\x38\x74\x12\xa9\xf8\x9e\x3c\x8c\xa5\x92\xfa\xbe\x88\x85\x8f\x8f\x64\x08\x05\x5b\x41\x9e\xa8\x59\x9e\x6c\xa1\x11\x46\xf6\x0a\x39\x55\xe6\x9f\x2a\xc9\x53\x1f\xeb\xa6\x7d\xd6\x89\x22\x45\xe9\xb8\x01\x42\xe7\x06\x3a\x02\xf2\xe3\xb6\x71\x6c\x17\x53\x71\x06\x63\x9b\x67\x58\x36\x5b\x69\xd9\xb2\x49\x45\xe9\x78\x59\x06\x7e\x80\xee\xce\x08\xa8\xb3\x99\x64\x38\xd6\xa5\x8a\x75\xb1\x64\x7f\x80\x86\x6f\x6b\x48\x14\x01\x79\x41\xdb\x7d\x51\x38\xc2\x7a\xf7\x87\x74\x2d\x47\x0a\xb5\x62\xe4\x56\x47\x0d\xcf\xba\xfa\x62\xe3\x62\xa8\x52\x41\xf7\xa8\xb1\x24\x68\xe6\x94\x32\xf3\x55\x01\xdd\x3f\x20\xf5\x54\xc5\x41\x0b\xe7\xc8\xc9\xb6\x5f\x2e\xe4\xf4\x4f\xf5\xe3\x22\x9e\x1a\xcd\x6e\x77\x70\x66\xb6\xf9\x7e\x8c\x22\xd4\x9d\x8d\x48\x2f\xbe\xd6\xe9\x2d\xd4\x36\xe7\x77\xc4\x2f\x9b\x73\xdd\xdf\xeb\x1d\x19\xbd\xe6\x17\x9c\xd5\xc2\xd2\xc7\x45\xb7\x78\x95\x2f\x52\x1f\xc5\x29\x4b\xbe\x88\x12\xef\x16\x48\xc8\xd2\xa8\x37\xa9\x65\x87\x33\x54\xe3\x05\xf9\x32\x81\xed\x2c\xa4\x0f\x31\x2e\xf5\x6d\x66\x21\x66\x09\x38\xba\x53\x5b\x0a\xd0\xcf\x82\xee\x32\x09\x14\x79\x0b\x41\x48\x69\x90\xf8\x7e\x69\x04\xd1\xa9\x48\x8b\xd0\x1c\x07\x8d\xde\x4b\xd0\xb6\x35\xfb\x8e\xd5\xaa\x89\x71\x1c\xbe\x6e\x7b\x94\xb3\xd9\xf9\xe5\xb2\x78\xea\xb4\x9e\xec\xed\x95\x9f\x5f\xea\x87\x87\x3b\xb5\xd2\xf4\xea\x41\x57\xed\xef\xef\x7f\xb2\x7a\xe8\x7b\x71\x52\x13\xa7\x61\x86\xc0\x82\x9c\xc7\xc9\x20\xca\x8b\x8f\x1e\x12\xb1\x70\xf5\xec\xa7\x09\x07\x40\xfe\x4a\xbd\x8a\xe0\xc8\x9b\x59\xcd\xaf\xbd\x4b\xca\xed\x2b\x30\x28\x29\x4b\x7f\x9f\x26\x91\x17\x4f\x1b\x49\x3a\xdd\x5e\x5c\x4d\xb7\x09\xbd\xed\x0f\xf0\x54\x27\xb9\x9a\x79\xe4\x25\x9d\x81\xdd\x6b\xea\x58\x06\x1d\xac\xdf\x0d\xad\xaf\x7d\xcb\x98\x56\xc8\xdb\x6a\x50\xa3\x68\x4c\x9f\x94\xe2\xea\xb3\x5f\x5e\xcd\xde\x3a\xfe\x65\xdf\x32\x9d\x42\xaa\xea\xd1\x46\x28\xb9\xf0\xf8\x05\xc3\x1c\x2d\x43\xa4\x26\xfc\xa6\xa2\xf4\xcd\xb2\x5b\x8d\x9d\x64\xcb\x28\xae\x48\x8b\xd2\xff\xcf\xeb\x81\x5b\x37\x03\xfa\xee\xa4\x5c\xf8\x28\x05\xf5\xd1\x32\xdb\xf2\x32\x9f\xd2\x83\x05\xec\xe9\xf3\xcc\x4b\x79\xfd\x66\x9a\x26\x29\x3d\xb4\xd2\x90\x2e\x23\x6f\x47\x77\x6d\xc1\xe8\x9a\xcf\x4c\x52\x39\xfc\xd5\x28\x95\x4e\x89\x0d\x2f\x5d\x5f\xd3\xd1\x36\x34\x8a\xf2\xf3\xb2\xdb\xaa\x03\x83\x71\xbb\x35\x15\xae\x9b\x7e\xaa\x73\x44\xcd\x3b\x8a\xae\x49\x13\xb8\x05\xbc\x1b\x4d\x45\x9a\x64\x78\xbe\xaf\x6e\xc8\x03\xf9\x08\x26\x44\x0c\x74\xbb\x50\x48\x8b\x07\xef\xc6\xab\xee\xe0\xd8\xb5\x07\x23\x9d\xe9\x16\x54\x45\x07\x99\xdf\xb9\xad\x4f\x33\xdd\x51\x60\x17\x69\x36\x1b\x36\x18\xd3\x1d\x7d\x98\xe9\x25\x94\x53\xe2\xcc\x48\xaf\x88\x44\xcd\xc2\x49\xf6\x3e\x3b\x7b\x4f\x20\x7a\xbc\x18\x06\xc5\x67\x9f\xe1\x5b\x4d\xec\x3d\x7c\x54\xa1\x18\xd7\x39\xb1\x3a\xfc\x46\xec\x09\xc7\xc0\x29\xf1\x20\xaf\x3a\x40\x26\xb4\x7c\x77\x5d\xed\xa6\xd5\x7d\xfe\xce\xca\xcc\xd7\x8b\x30\x65\xee\x58\x2a\x9a\x0e\x19\xa0\xb9\xdc\x0f\x64\x24\xe9\x52\x75\x42\x77\xad\x73\x4c\x9b\x5a\x6c\xc2\xf5\x98\x27\xb3\xba\xf8\xae\x6c\x73\x7c\xd7\x1e\xc7\xd5\x5d\xb3\x65\x21\x70\xb5\xba\x25\x36\xd3\xef\x95\x0b\x3c\xe6\x08\xea\xe0\xdf\x3b\xa4\x88\x6d\x42\x0a\xf5\xcd\xd6\xc8\x45\x3c\xef\x39\xd5\xb7\x78\x23\xf4\xc7\x59\x4b\x57\xb6\xf9\xe2\xa6\xa2\xa4\x61\x24\xc2\x70\xef\xb3\x5a\x15\x37\xc5\xb1\x80\x36\x24\x97\xcf\xc1\x8e\xfa\xec\xe7\xc1\xe2\x96\xdf\x53\x93\xea\x7b\x55\x7c\xe7\x0b\xcc\x8a\x70\x2f\xde\x8c\xae\xde\x77\x30\x93\xdc\x42\x89\x0a\xab\x28\xbd\xef\xd6\x6e\x73\x02\xed\xd0\x9b\xc6\x18\x2e\xf4\x4b\xe8\x8a\x7b\x25\x12\x1f\x5b\x95\x1b\xbe\xf7\x36\xbc\x75\xe5\x57\x08\xff\xdf\xf6\xbe\x84\x77\x57\x92\xf6\x5d\xbf\xf3\x4a\xd6\xd1\xb9\xe0\xbc\x17\x5b\xbb\xd5\x6b\x9a\xad\xda\xd6\xde\xc6\xf7\x73\xda\x13\x93\x2e\x6e\x9d\x0a\x6c\x2b\xda\xbd\x0d\xdd\xfa\x55\xd9\x1a\xbe\xcd\x57\x66\x62\xe3\xed\x95\xd1\xb6\xc9\x36\xb7\x3b\x42\xbf\x80\xee\x19\x5f\x23\xa8\xe8\xe9\x1d\xf0\xcb\xaf\x03\xfa\xf3\x74\xf5\x5a\x9c\x2f\xda\xff\x04\xd4\x9b\x42\xf0\x1e\xe6\xd9\xe4\x89\x41\x5e\xc3\xf1\x04\x21\xac\xfa\x9a\x3e\xcd\xe3\x98\x78\x86\x8a\xf9\x0e\x9b\x23\x7f\x98\x04\x21\xff\xe8\xa1\x51\x49\xa0\x8b\x93\x68\xe7\x71\xb5\x35\xbb\x2e\xbf\xae\x44\xec\x4a\xa1\x8c\xf8\x57\x0e\x4d\xa4\xd5\x74\x9d\xb9\x16\x66\xf4\x72\x34\xe0\xc0\x12\x12\x37\x2b\x3d\x93\x46\xce\x85\x6e\x51\x78\x8e\x1c\xfc\xc4\x6c\x8f\x59\x7e\x3d\xd5\x07\x6d\x77\x66\xf0\x4e\x95\xbf\x94\xa0\x77\x4a\x11\x5d\xde\xd3\xc5\x7e\x61\x85\x7e\x0f\xe1\xea\x72\x97\xcb\xef\x32\xb4\xf7\x31\xbd\x73\x6d\xa6\xd3\x5c\xeb\x40\x3a\xcb\x1c\xf7\xe0\x23\x1f\x21\xe5\x10\x13\xe5\x5f\x7d\x54\xc2\xba\x55\xaf\xe7\x71\x4a\x22\x8a\x71\xaa\xd7\x33\x6f\xaa\x28\x5c\x52\x24\xe7\x78\x9f\xc4\xab\x88\x1e\x66\x75\xe5\xcf\x59\xbd\x06\x89\xaf\xb8\x80\xac\x6d\xef\x36\x1e\x37\x1e\x1a\x4d\xfb\x98\xa8\xc7\x60\xe5\x4c\xaf\x23\xd6\xbf\xfb\xd0\xaf\x85\xc9\xcd\x4b\x44\x78\xfe\x2e\xaf\x88\xea\x80\xc9\x2d\x40\x79\x1f\xee\x5e\x9e\xf1\x02\x23\x9f\x33\xdd\x1d\x5b\x23\xb7\x6d\x75\x3a\x9b\xe4\xfe\x7e\x00\xa6\x7e\x75\xf9\xde\x94\x1c\x50\xe1\x7c\x60\xf5\x14\xb0\x7e\x9b\xd5\x4f\xfd\x62\xed\x48\x88\x56\xcb\x7f\x11\xee\x3e\x21\x76\x6d\xf6\xb9\x40\xc6\xf5\xb1\x53\xfb\x6a\x56\x6f\xf5\xe9\xef\xc9\x69\x2d\x90\xf5\xb6\x59\x9b\xa4\xf5\x8e\x5d\x8b\xa3\x7a\xbf\x5b\x8b\xae\xeb\xdd\x67\xb5\x34\xaf\xdb\xe3\xda\x4b\xaf\xfe\xa3\x61\x4d\xaa\xba\xe9\xd4\x16\x59\xfd\xc8\xae\x2d\xa2\xfa\xb0\x5b\xbb\x9c\xd6\x8f\x8e\x6b\x18\xd4\x1a\xf1\xdb\x61\xb2\x6d\x82\x9d\x43\x35\xab\xfd\xea\xdf\x7e\xfc\xed\x7f\xfd\xd5\xb7\x3f\xff\xd7\xef\xfe\xfa\xcf\x6b\xbf\xfa\xc5\xd7\xff\xf3\xcf\x3f\x29\xbe\xb4\x65\x9e\x29\x7f\x56\xeb\xa4\x5e\xfc\xcd\x3f\x79\xa1\xaa\xf5\x25\x72\x7a\x68\xb3\x40\xd5\xba\x5e\x76\x1d\xca\xff\xfe\x87\xbc\xf6\xe6\xef\xdf\xfe\xd9\xdb\xaf\xdf\x7e\xfd\xe6\x97\x6f\x7e\xfe\xe6\x17\xb5\xef\xfe\xe6\x1f\xbf\xfb\xdb\x7f\xf9\xf5\x4f\xff\xae\x66\xaa\x85\xf7\xcd\xcf\x92\xa8\x36\x84\x4c\xcd\xa7\xf9\x37\x3f\x55\x10\x33\xe2\x28\xf5\x54\x48\x85\x91\xba\x0a\x6b\x6f\x7e\xf6\xf6\x2f\xde\xfc\xe7\x9b\xff\x78\xf3\xef\x6f\x7f\xac\x6d\xd4\xac\xcc\x8b\x42\x92\x8e\x5a\x7a\x05\xbc\x0d\x74\x08\x48\x08\x22\x97\xbb\x02\xa1\x31\x50\x44\x15\x92\xa4\xe2\xb9\xc1\x48\x31\x62\x06\xc3\x85\xc7\xaf\x66\x06\x63\xc6\x8f\xf5\xd1\x99\xc1\xd8\xf1\x2f\x8b\x0c\x06\x90\x8e\x5e\x6a\x30\x8a\x78\x8c\x23\x83\xa1\xa4\x5f\xcf\x5c\x1b\x8c\x27\xbd\x38\xcf\x0d\x06\x15\x8f\x2f\x3d\x83\x91\xa5\x51\x94\xc1\xf0\xe2\x91\x3f\x0d\x86\x99\xbe\x45\x06\x63\x4d\x3f\x4c\x9a\x1a\x0c\x38\xe5\x22\x19\x5d\xba\x11\x83\xe1\xd4\x9d\x0c\xce\xdc\x0e\xd4\x2a\xb4\xdb\x91\xad\x7f\x2b\xb0\xe2\x80\xff\x0d\x00\x00\xff\xff\x11\x37\xc0\x11\x03\x26\x00\x00") +var _confAppIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x7a\xcb\x8f\xe3\xc6\x76\xfe\x9e\x7f\x45\x59\xfe\xf9\xe7\x71\x20\xa9\x5f\x9e\x87\xdb\xee\xc4\x6a\x89\x52\xf3\x8e\x5e\x26\xa5\x19\x8f\x07\x0d\x36\x9b\x2c\x49\x74\x53\xa4\x86\x45\x76\xb7\x8c\x2c\xae\x91\x45\x80\x6c\x13\x24\x9b\x20\x48\x16\x41\x80\x9b\x07\x72\x91\xcd\xbd\x09\xb2\x32\xb2\x9f\xf9\x1f\x2e\x7c\x93\xff\x22\xdf\x39\x45\x4a\x54\x4f\xbb\x91\x0b\x24\xb0\xd1\x22\xeb\x71\xaa\xea\xab\x73\xce\xf7\x55\x71\x3e\x14\x43\xf3\x85\x69\x0b\xfe\x33\x18\x75\xac\xee\x2b\x31\x39\xb3\x1c\xd1\xb5\xfa\xa6\xf1\xa1\x18\xf7\xcd\x96\x63\x8a\x41\xeb\xb9\x29\xda\x67\xad\x61\xcf\x74\xc4\x68\x28\xda\x23\xdb\x36\x9d\xf1\x68\xd8\xb1\x86\x3d\xd1\x9e\x3a\x93\xd1\x00\x85\xc3\xae\xd5\xd3\x3d\x8d\xcf\x45\x6b\xb5\x12\xb1\xb7\x94\x22\x5b\x78\x99\x50\x8b\xe4\x46\x89\x24\x16\xf2\x5a\xa6\x6b\xb1\xf2\xe6\xa8\x08\xb3\x48\x1a\xad\xf1\xd8\x1d\xb6\x06\xa6\x38\x11\xbd\x64\xae\x8e\xf1\x57\xf4\xc2\x4c\x38\x32\xbd\x0e\x7d\x09\x4b\xed\x85\x17\xa3\x39\xca\xc2\x99\x58\x27\xb9\x48\xf3\x58\x44\x89\xef\x45\xd1\xda\xb0\xa7\x43\x77\xea\x60\xf6\x27\x62\x1e\x66\x68\x6d\x86\xd9\x42\xa6\xa2\x16\xc8\xeb\x5a\x5d\xd4\x56\x69\x12\xd4\x44\x82\x82\x4c\xaa\x0c\x25\x81\x9c\x79\x79\x04\x5b\x4a\xb7\x61\x0b\x58\x3a\x4d\x00\xef\x86\xf1\x3a\x95\xab\x44\x85\x59\x92\xae\xcf\x0d\x7b\x34\x9a\x88\x13\xc3\x69\xdb\xd6\x78\xe2\x4e\x5e\x8d\xa9\xd9\xa5\xa7\x16\x68\x97\x87\xe7\x18\x6f\x98\x2f\x2f\x31\x5e\x32\x13\x9b\x7e\xa1\x54\x7a\xd5\x5e\x2a\x79\xe5\x32\x10\x61\x8c\xd5\x4b\x21\x6f\x57\x51\x82\x52\x02\xc0\x30\xbf\x1e\xf7\x47\xb6\xe9\x8e\x5b\x3d\xe0\xe8\x0e\xa7\x03\x18\x3f\xdc\xdf\x31\x1a\x2a\x95\xff\xb4\x39\x36\x63\x39\xce\xf4\x8e\x91\x83\x5d\x23\x4b\xef\x36\x5c\xe6\x4b\xe1\x27\xcb\x65\x98\xa9\x3b\x46\x3c\x3f\x0b\xaf\xc3\x6c\x2d\x66\x52\x06\x46\xd7\x34\x3b\xee\xa0\xf5\xb5\xdb\x1e\x0d\x06\xd6\xa4\x30\xf8\x98\xd7\xdb\xf4\x82\x65\x18\xef\xae\x3a\x57\x32\x7d\x78\x7e\xb4\x3d\xbb\xd3\x7b\xbc\xff\x3e\x70\x0f\x9a\xb0\xcd\xf1\xe8\x41\x13\x71\x92\xc1\x59\x1e\x36\x32\x1c\x4d\xac\xb6\xf9\xa0\x99\x24\x9d\x7b\x71\xf8\x9d\x97\x85\x70\xd5\x87\x6c\x8d\xec\xde\x7b\x86\x8c\xd7\x4b\x2f\xbd\x0a\x92\x1b\x46\xc8\x8c\xbd\xcb\x48\x8a\x85\x97\x06\x22\x0a\xd1\xef\x32\x95\xde\x15\x1c\x20\x93\xb1\x82\x79\xc3\x1c\xb6\x4e\xfb\xa6\x7b\xd6\xb2\x3b\x6e\xdf\x1a\x9a\xee\xa9\x6d\xb6\x9e\xc3\xd4\xcc\x8b\x94\x84\x35\x00\x8b\x60\x39\x37\xc6\xf6\x68\x32\x6a\x8f\xfa\xa8\x5a\x64\xd9\xca\xe8\x8c\x06\x2d\x6b\x88\x37\x8e\x81\x45\xa2\x32\x76\x53\x77\x6a\x53\x93\x8f\x1e\x95\xed\x3f\x51\xc7\x7b\x7b\x1f\x3d\xd2\xcd\xf1\xf2\xd1\xa3\xb3\xc9\x64\xec\x8e\x47\xf6\xe4\x13\xb5\x67\xf0\x4b\xab\xd3\x41\xe8\x18\x9b\x0a\x18\x38\xda\xdf\x27\x50\x3a\xa1\xe2\x05\x38\xce\x19\x1c\xc3\xcb\x72\x00\x71\xb3\x90\x31\x41\x2d\xbc\x6b\x2f\x8c\xa8\xda\xe8\x58\x0e\x2f\x83\x9a\x95\x53\xc7\x73\x69\xec\xf0\xb0\x62\xaa\xdd\x19\x52\xfc\xc7\x84\x64\x11\x98\xcb\x24\x00\x98\xdd\x2e\x03\x50\x44\xa1\x36\x52\x1a\xb6\x47\xd3\x09\xfc\xa7\x3f\xea\x6d\xaa\x3e\x17\x3d\x19\xcb\xd4\xcb\xb0\x35\x99\x5c\xa9\x63\x94\xfc\x3f\xe1\x07\xd8\x9a\x6c\xb1\x97\x25\x7b\x73\x24\x92\x3d\x3f\x57\x59\xb2\xdc\x23\xc8\x14\x37\x68\x72\xb9\xf0\x65\x9a\x89\x86\xef\x9d\x64\x69\x2e\x45\x23\xc8\x53\xde\xee\x93\x67\x4f\x9f\xec\x2f\xf6\x97\xfb\x4a\x34\x08\xd3\x93\xe5\x9a\x7e\x9a\xf2\xd6\x5b\xae\x22\xd9\x44\xec\x18\x9f\xc3\xce\x28\x15\xb3\x34\x59\x0a\x4f\x34\x57\xb3\x5b\x31\x0b\x23\x8e\xea\x24\xcd\xe0\x22\x5c\x83\xfc\x23\x5e\x86\x71\x40\x19\x8f\x06\x0b\x67\xa1\xaf\xe7\x4a\x91\xff\x28\x48\x60\x85\x40\x9c\xc1\xdb\x64\x26\xb2\xa4\xe8\xcf\x1d\x57\x69\x78\x4d\x8d\xaf\xe4\xfa\x13\xbd\xae\x64\x05\x87\x51\x91\x58\x5d\xf9\xea\xe0\x50\x34\x00\x1e\x59\xe5\xd1\x1b\x49\x9e\x15\x6f\x72\x29\x1a\x71\x82\x6e\xea\x7f\xd6\x0b\x2d\xcb\x4e\x54\xa1\xe8\x21\x90\xca\x68\x9b\xf6\xc4\xa5\x24\x0e\xb8\xab\x10\xee\x95\xc3\x18\xcf\xcd\x57\xf7\x36\x28\x2c\x62\xf8\xe9\x6a\x85\x78\x8a\xb0\xd7\x11\x45\x55\x26\x81\x20\x2d\xca\x8b\x03\xa0\x00\xb8\x7d\x8d\x1b\xed\x17\x9a\x57\x52\x32\x43\x80\x52\x72\x35\x80\x45\x8c\x40\xc5\xf2\x56\xfa\x39\x00\x36\x9c\x49\x0b\x41\xec\xb2\xbf\x8f\x5b\x13\xf8\x9c\xa6\x9a\x88\x20\xa6\xa0\xd5\x83\xf6\xbe\xb1\xc6\x42\xe5\x2b\x82\xb5\x0c\x34\x2e\xdb\xba\x50\x1f\x93\x09\xe3\xb9\xa6\x22\x6c\x05\xb6\x24\x6e\x44\xc9\x7c\x8e\x6d\xe4\x9c\x56\x17\xbe\x17\x8b\x4b\x29\x6a\x8b\x64\x29\x35\x87\x14\xe9\xbb\x66\xf4\x5b\xcc\x7d\x94\x03\x08\x07\x6a\x81\x88\x0d\xbc\xcc\x03\x39\xc8\xf3\x0a\x0f\x2d\xd7\xea\x4d\xc4\x4c\x04\x6f\x9a\xa7\x52\x69\x4b\x28\x0c\x33\x79\x84\x8a\x30\xfb\x58\x11\xad\xa5\xc2\x5f\x24\xc4\x78\x9d\xd3\x92\x68\xb8\xaf\x71\x36\x72\x28\x94\x0e\x0e\x9f\x36\xf7\xf1\xdf\xc1\xf1\xd1\xd1\xfe\x13\xa3\xe0\x4c\x72\x69\xa3\x20\xc0\x34\x49\x32\x63\xdc\x72\x9c\x97\x1d\xc6\xa5\x4b\x03\x55\x86\x8d\xa3\x75\x5d\xc8\x92\x1f\x75\x50\xd2\xcc\x52\xf9\x26\x0f\xd3\x62\x89\x48\x39\xe1\x6c\xdd\x98\xe5\x51\x54\x43\x24\xf7\x37\xdc\xa8\xdb\x97\x66\xcb\xf9\xf3\x9e\xd6\xb2\x30\xb8\xac\x19\x7a\x43\x04\xa1\xc0\xa1\xd6\x0c\x2e\x01\x4a\xc1\x19\x94\xcf\xfc\x3c\x05\xcf\x9c\x1b\xd6\x10\xfb\xd8\xef\x23\xa8\xdb\xcf\x2b\x5b\xf2\xc1\x07\x5a\x63\x68\x09\x32\x19\x89\xe7\xa6\x39\x16\xaf\x46\x53\x5b\xf0\x0a\x3b\xad\x49\x4b\x38\xad\xae\xf9\xc1\x07\x86\x63\xb6\x6d\x73\xe2\xc2\x17\x61\xe0\x83\x0f\xbf\xec\x76\xcc\x97\x36\xfe\xff\xff\xbf\xf7\x88\x3c\x22\xcf\x12\xda\x4c\x78\x7d\x2a\x97\x92\xd3\x7b\xe0\x21\x34\x90\x46\xac\xa1\x6b\x9b\x03\x73\x70\x8a\xac\xd2\x69\xbd\x72\xd0\xff\xa9\xd1\x1e\x8d\x9e\x5b\x26\x2b\x89\x0a\xb0\xae\x77\x23\x15\x6d\x6d\x51\xbd\xe9\x57\x6d\x13\xc6\x7e\x2a\x83\x50\x63\x63\x93\xbe\x51\x14\xc6\xc9\xed\x5a\x78\x39\xb0\x8e\xb3\xd2\x37\x17\xd2\x0b\x30\x11\x56\x45\x05\x73\xf2\x0b\xe8\x0d\xfa\xcb\x01\x35\xd9\xa3\xaf\x5f\xb9\xad\xe9\xe4\xcc\x1c\xc2\xcd\xe1\xea\xa3\x8d\xba\xf9\xba\xf1\xd2\x3c\xa5\xaa\x06\x15\x14\xf4\x00\x77\x39\x37\x5a\xed\x89\xf5\xc2\x04\x5f\x77\x4c\x10\x09\x9e\x06\xd6\x10\x39\x93\x16\x76\xf0\x6c\x1f\xc6\x1d\x93\x82\x85\xdc\xe2\x27\x1b\x21\x66\x79\x36\x50\x00\x94\x90\xfc\x24\x9e\x85\xe9\x52\xc8\xc6\x12\x89\x9e\xc3\x23\x95\xf3\x50\x65\x3a\x57\xc2\x66\xcf\x72\x28\x2d\x9b\xe0\x96\xbe\xcb\xd2\xcf\x1e\x54\xb6\xb2\x93\x80\x8c\x99\x29\xa2\x28\xb9\x29\x3a\x63\x00\xf2\x16\x76\x08\x01\xd0\x38\x25\xf8\x7e\x92\xc7\x19\x3b\xe7\x36\xe7\xb3\x79\x9b\xd7\x5f\x31\xca\x53\x5c\x22\xe5\x08\x15\xce\x99\x45\x30\xd5\xeb\x50\xde\xc0\xec\x3a\x5b\x20\x9a\x9b\x98\xd9\x57\x53\x0b\x9a\xca\xb1\x7a\x43\xec\xf4\x0b\xcb\x7c\x59\xb1\xd0\xf6\x7c\x24\x18\xb0\x57\xe6\x61\x2e\x4a\xac\x42\x9f\x88\xad\x4c\x11\xed\x56\xfb\xcc\x74\x5b\x2f\xe0\x67\x76\xa5\xd7\x80\x30\x20\x85\x31\x2b\x76\xb2\x6c\x4f\x8a\xa2\xfb\xca\x25\x0c\xaa\xcd\x29\xcd\x07\x32\x43\xaf\x63\x66\x6c\xe2\x61\x88\xd3\x45\x7e\x49\x2c\x42\xa1\x01\x11\xa6\x49\x4a\xcb\xbb\xbd\x83\x27\x8f\x4b\x9b\x0f\xf9\xc2\x66\x90\x9f\x6a\x3b\xfa\x29\xe8\x3a\x09\xef\x06\x56\xef\x5f\x09\xc0\xcf\x72\x10\x09\x1b\x48\x7e\x07\x5e\xc7\xe4\xb0\xe7\x29\xd2\xc4\x2a\xd1\x69\x31\x5b\xaf\xb6\x1c\x0c\x5f\xb1\x06\xd3\x01\x45\x1b\x80\xfd\x06\x40\x9d\x99\x3b\x91\x5b\x88\x1d\xdf\x5b\x65\xfe\xc2\x13\xd7\x5e\x14\x06\xda\xe7\xdf\x73\x9d\x0d\xd4\xe3\x09\xa2\x1d\x36\x88\x86\xe1\xce\x37\xf2\x72\x91\x24\x57\x94\x3a\xcf\xf0\x2b\x32\x4f\x5d\x89\x37\xb9\x04\x47\x47\x32\x9e\x83\x28\xbe\x9a\x9a\xd0\xb9\x7d\x73\xd8\xe3\x34\x73\x50\xe8\x14\x19\x85\x88\x39\x9c\x26\x96\x92\x78\x0d\x5e\x81\x44\x83\x55\x28\xa3\x63\x92\xa7\xdb\xee\xc4\x1a\x98\x50\x11\x2c\x63\x91\x1b\xd8\x23\xc3\x98\xd3\x91\xac\x30\x34\xcd\xce\x79\x6e\x8d\xdd\x49\xdf\x71\xd1\x8f\x0e\x43\xdb\x25\x6e\x45\xe2\x22\x24\x26\x5f\xc3\x04\x16\xb7\xd4\xcb\xc4\xa8\x12\xbe\xa5\xc5\xe1\x5d\x29\x4e\xc2\x10\x74\x07\x29\xa7\x17\xdf\xa9\x98\x3d\xcd\x67\x33\xe6\x4a\x5a\x22\x59\x07\x7e\x71\x2c\xa3\x3a\x76\x47\xae\xe8\xd0\x03\x37\x0d\x99\x1b\x8b\xd3\x4f\x90\xc4\x1f\x83\xbe\x63\x2c\xe2\x86\x14\x2a\x57\x36\x91\x10\x87\x1d\xf7\x74\xda\xed\x92\x58\x32\x87\x1a\x20\x9a\x37\x65\x1b\x24\x6f\x30\xf0\x5a\x8b\x58\x0e\x69\x7d\xf8\x72\xa6\xa7\x3f\x33\xdb\x13\x96\x8d\xe5\x41\xec\x13\x55\xba\xbc\x16\xa0\x24\xb7\x96\xec\xcb\x6a\x99\xad\x9a\x73\x7a\x26\x3f\x3e\x7e\xfc\xec\x29\xea\xbe\xfa\xaa\xa8\x78\xf3\x86\x4b\x0f\x09\xe3\x61\x92\xc9\x3a\x4d\x98\xf9\x9c\xb4\x8d\xc4\x86\x68\x3f\xab\x7d\xfa\xe4\x31\x58\xc7\x19\x4c\xc6\x0e\x4a\xa2\x88\x38\x16\xb9\x30\x68\x22\xc0\xc9\xf5\xc0\x0d\xf6\x04\x7b\x40\xc7\x45\xee\x8b\x81\x68\xfd\xa9\xa4\xf3\x0b\x0c\x61\x19\xa4\x2f\xec\x6e\x5b\x3c\xf9\x74\xff\xb3\xa6\xb0\xf4\x40\x7a\xbe\x25\xef\xab\xad\x21\x40\xc4\x03\x79\xd1\x0d\x48\x60\x33\x5e\xc9\xac\x15\x89\x7a\x66\xf6\x47\xa4\x9d\xb4\xb3\x6a\xc1\x4b\x32\x90\x73\x36\x9d\x05\x82\x90\xf6\x0b\x49\xbd\xb9\x89\x0e\xee\xc3\x56\xda\x2c\x87\xb6\x1d\xc8\xf9\x77\x2d\xee\x9c\x3f\x59\x2d\xaa\x35\x12\xe3\x12\x73\x41\x3b\x97\x26\x54\x70\xcb\x36\x68\x35\x23\xf3\x0a\xab\x72\x32\xa9\x2e\xba\x29\x46\x48\xa0\xb4\x2c\x14\x92\x69\x8c\xac\x64\x34\x6b\x50\xa6\x04\x5e\x95\x8e\x4a\x3b\xf9\xc6\xc1\x75\x62\x15\x7e\x14\x62\x55\xd5\x86\x24\x2b\x5c\x92\x83\x56\x97\xf2\xcf\x56\x9a\xdf\x23\x11\xb5\x83\x3f\xa4\x11\x8b\x16\x5b\x91\xc8\x2e\xa6\xa5\x74\x10\x20\xf3\x40\x70\xd1\x8e\x3e\x3e\x3a\x3c\x6c\x8a\x09\x2d\xa2\xd0\x5f\xdf\x52\xc6\xc7\xa3\x64\xc7\xdd\x34\xc6\x0a\x69\xfd\x17\x35\xf2\xf0\x9a\xf8\x82\xab\xbf\xac\xc8\xf5\xdf\xbf\x10\x3a\x40\x85\xd1\xb5\x47\x03\x96\x44\x03\x9e\xc5\x96\x7a\x99\x90\x56\x9e\x52\x37\x49\x1a\x14\x3a\x6a\x2b\xa1\x8c\xd7\x3e\x11\xc6\x8e\x9c\x93\x4b\xc4\xbe\x56\x4d\x88\xaa\x1a\xcf\x83\x4a\xb9\xe5\x9d\xfb\x85\xa2\xb1\xd1\xea\x20\xdb\x31\x8b\xeb\x92\x52\x44\x15\xf5\x85\x32\xeb\xb5\x11\x9d\x20\x49\x64\xcf\x4a\x16\xdb\xb1\xf8\x64\x1f\xda\x09\x96\x5e\xb4\x88\x70\x9e\xec\x97\x86\xf4\x5c\xb4\x16\xab\xcc\x05\x06\x62\xe9\x6b\xed\x91\x10\x88\x1a\x3b\xf4\xe2\x0e\xc7\xe0\xfb\x0c\x0b\xbf\x3a\xc9\xfc\x55\x9d\x2a\x4f\x8e\x9f\x1c\x3d\xfd\xac\x5e\x02\x72\xb2\xf4\x7c\x2f\x85\xd7\x06\x97\x27\xfb\xf5\x55\x92\x44\x2e\xf1\xc5\x09\x32\x4b\x3d\x0c\x22\xe9\x16\x49\xf7\x44\x4b\x88\x72\xe4\x63\x71\xb1\x15\xab\x07\x07\x87\x07\x07\x17\x45\xa8\xb1\x6c\x51\x74\xfc\xbd\x1f\x53\x3a\x15\x6c\xb1\xd5\xd0\x16\xfa\xf9\x3e\x5c\xc1\x7b\x2f\xac\xce\x2e\xb0\xe3\x34\xb9\x0e\x49\x66\xb1\x86\x99\x23\xf4\x68\xfd\x4a\x4f\x0f\x4d\x8e\x39\xa6\x16\xde\x35\xed\xfd\xba\x6c\xb5\x96\x74\x77\x44\xc3\x23\x9b\xe9\x19\x6e\x8f\x28\x10\xcd\xcd\x79\x53\x5c\xb0\xb0\x2d\x6a\xd5\xc5\xff\x19\x8a\xb4\xe0\x63\x68\xcb\x06\x7e\x1b\x41\x4a\xec\xb6\xc7\x85\x22\x50\x71\x39\x61\xf0\x29\x72\x65\x39\x33\x52\xfe\xc7\xe5\x78\x5f\x96\x73\x74\x33\xca\x69\x17\x1b\x98\xdc\xe2\x8a\xae\x90\xe8\xe5\x4a\x30\xa6\x53\x2c\xd9\x07\xf3\x86\x52\x8b\xd2\x42\xf3\x16\xe9\x28\x74\xa3\xf0\x4a\xba\x5a\xbb\xa0\x87\xa5\xc9\x88\x12\x4e\x89\x17\x7c\x96\xd5\x4e\xe1\xce\xd5\x44\xa7\xd3\x86\x36\x08\xe5\x3e\xb5\xcd\xf7\xc5\x83\xc2\x59\x58\x8f\xbf\xd3\x97\xe5\x41\x21\x1a\x48\xc8\x6a\x2b\xa5\x6e\xd8\x4e\x1d\xd1\x43\x38\x6e\x42\x68\xc7\xc8\x33\xf0\xc4\xbe\xd1\x6b\xbb\x65\xf4\xb0\x26\x80\x11\x5d\xb1\xb5\x12\x85\x33\xc9\x76\xee\xe9\xee\x98\x8e\x43\x82\xbc\x6f\x75\xcd\xdd\xfe\xc6\xeb\x42\x48\x92\x57\x4f\x88\xf2\x22\xcf\x97\xa4\x4e\x8b\x72\x06\x7c\x7b\xf6\xd2\x39\x5b\xfb\xf7\x1b\x88\xb1\xfc\x8e\x7f\x17\xf5\x18\xd1\x7e\x61\xb5\x69\x9c\x82\x8a\xb5\x34\x75\xa7\xe3\xfe\xa8\xd5\x71\xab\xe7\x2d\xad\x69\x15\x5f\x97\x86\xb1\x54\xb2\xb8\x98\xa3\x1c\x8a\x73\x65\x82\x82\x5a\x90\x27\x6a\x91\x27\x35\x34\xc2\xc8\x5e\x91\x99\x4b\x39\xac\x70\x04\xf5\xb1\x6e\xda\x67\xad\x5b\x21\x5b\xfd\xb8\x39\x4f\x75\x03\xd6\xae\xfa\x71\xcf\xe8\xd9\xc5\x54\x1c\x9c\xce\x78\x86\x65\xb3\x0d\x2d\x96\x4d\x2a\x37\x5a\x5e\x96\x21\x3f\x80\xc2\x33\x02\xea\xe5\x42\x32\x1c\xdb\x52\xc5\x14\x2b\xd9\x1f\x20\x07\x3a\x1a\x12\x45\x40\x5e\xd0\x76\x5f\x14\x8e\xb0\xdd\xfd\x31\xdd\x15\x10\xd9\x55\x8c\xdc\xe9\xa8\xe1\xd9\x56\x5f\xec\x9c\x53\x2b\x15\x74\xb9\x13\x4b\x82\x66\x49\x0a\x9e\x4f\x2e\x74\x1c\x82\x12\x56\x45\xa0\x85\x4b\xe8\xbb\xbd\x6f\x57\x72\xfe\x87\xfa\x71\x15\xcf\x0d\x9c\x64\x47\x2f\xcd\x0e\x1f\xda\xe9\x3c\x75\x6f\x23\xa2\x9e\x5b\xad\xb6\x41\xdc\xac\x15\x29\xbf\xec\xce\xf5\xe8\x70\x70\x6a\xd0\xdd\x2b\x89\x6c\x58\xfa\xb4\xe8\x16\x6f\xb4\x27\xf5\x51\xac\x7e\xf2\x55\x94\x78\x77\x40\x82\xd6\xa4\xde\x44\xbc\x4e\x71\x69\x4b\xbe\x4c\x60\x3b\x2b\xe9\x83\xd7\xa5\xbe\x62\x29\x78\x91\x80\xa3\x83\xfe\x5a\x20\xfd\xac\xe8\x82\x85\x40\x91\x77\x10\x04\x2b\x23\x89\x1f\x95\x46\xc0\x4e\x85\xc2\x42\x73\x04\x1a\x5d\x4f\xd3\xb6\xb5\x86\x8e\xd5\xae\x8b\x69\x1c\xde\x76\x3c\x92\x7f\x76\x7e\xb9\x2e\x9e\xba\xed\x67\x87\x87\xe5\xef\x37\xfa\xe1\xf1\x7e\xbd\x34\xbd\x79\xd0\x55\x47\x47\x47\x9f\x6d\x1e\x86\x5e\x9c\xd4\xc5\xf3\x10\x07\x0b\x09\xf9\xe4\x64\xe0\xf7\xe2\x67\x00\x4d\x17\x6e\x9e\xfd\x34\x61\x02\xe4\x57\xea\x55\x90\x23\x6f\x66\x55\xab\x7b\x97\x74\x4e\xa8\xc0\xa0\xa4\x2c\xfd\x7d\x9e\x44\x1e\x8e\x91\x49\x3a\xdf\x5b\x5d\xcd\xf7\x08\xbd\xbd\x0f\xf1\xd4\x40\xda\x55\x99\x47\x5e\xd2\x1d\xd9\x83\x96\xe6\xb2\x28\x99\xeb\x4f\x04\xdb\xbb\xa8\x92\xd3\xa8\x7d\xa2\xc9\xac\x24\x35\x62\x63\xfa\x25\xb5\xac\x63\xbf\xbc\x2f\xba\x13\xfe\x65\xdf\x52\x99\x41\xf5\x7a\xb4\x11\x4a\xae\x3c\xbe\xf5\x5c\xa2\x65\x08\x95\xc3\xd7\xa7\xa5\x6f\x96\xdd\xea\xec\x24\x35\xa3\xb8\xb7\x29\x4a\xff\x37\x8f\x1a\x77\x4f\x19\x9c\x41\xcb\x85\x4f\x52\xa4\x3e\x5a\x66\x47\x5e\xe6\x73\x7a\xb0\x80\x3d\xfd\xbe\xf4\x52\x5e\xbf\x99\xa6\x49\x4a\x0f\xed\x34\xa4\xbb\x91\xbb\xec\xae\x2d\x18\x7d\x1c\x6e\x49\xe5\xf0\xab\x51\x2a\x9d\x12\x1b\x5e\xba\xbe\x35\xa0\x6d\x68\x16\xe5\xe7\x65\xb7\x4d\x07\x06\xe3\x6e\x6b\x2a\xdc\x36\xfd\x5c\xcb\x4d\x9d\x77\x14\xdd\xda\x24\x70\x0b\x78\x37\x9a\x8a\x34\xc9\xf0\xfc\x48\xdd\x90\x07\x72\x08\x26\x94\x18\xe8\xa0\x52\x48\x8b\x4f\xde\xe7\xab\xfe\xa8\xe7\xda\xa3\x89\x16\xcd\x45\xaa\xa2\x40\xe6\x0f\x01\xdb\x68\xa6\xe3\x0e\x76\x91\x66\xb3\x63\x83\x31\xdd\xd7\xc1\x4c\x37\xe3\x4e\x89\x33\x23\xbd\x49\x24\x6a\x11\xce\xb2\x87\xec\x1c\x3e\x83\xe8\xf1\x62\x18\x14\x5f\x7c\x81\xb7\xba\x38\x7c\xfc\xa4\x92\x62\x5c\xe7\xcc\xea\xf2\x35\xfd\x33\xe6\xc0\x39\xe5\x41\x5e\x75\x00\x9d\xbc\x7e\x7f\x5d\x9d\x96\xd5\x7f\xf5\xde\xca\xcc\xdb\x55\x98\x72\xee\xc0\xe1\x0a\xd3\x21\x03\x34\x97\x47\x81\x8c\x24\xdd\xf1\xcc\xe8\xea\x67\x89\x69\x53\x8b\x5d\xb8\x9e\xf2\x64\x36\xf7\x70\x95\x6d\x8e\xef\xdb\xe3\xb8\xba\x6b\xb6\x2c\x04\xae\x56\xb7\x94\xcd\xf4\xe7\xc5\x02\x8f\x25\x48\x1d\xf9\xf7\x1e\x29\x62\x9b\x90\x42\x43\x9c\x7c\x5d\xf0\xf9\xc0\xa9\x7e\x5a\x98\xa0\x3f\x62\x2d\xdd\xd8\xe6\x33\x60\x45\x49\xc3\x48\x84\xe1\x1e\xb2\x5a\x15\x37\x45\x58\x40\x1b\x92\xcb\xe7\xc8\x8e\x3a\xf6\xf3\x60\x75\xc7\xef\xa9\x49\xf5\x63\x0f\xde\xf9\x32\xa4\x22\xdc\x8b\xcf\x35\x9b\x4b\x58\xce\x24\x77\x50\xa2\xc2\x2a\x4a\x0f\x5d\x00\xec\x4e\xa0\x13\x7a\xf3\x18\xc3\x85\x7e\x09\x5d\x71\x44\x25\xf1\x51\xab\x5c\x16\x3c\xd8\xf0\xce\xed\x41\x21\xfc\x7f\xd7\xa3\x17\xef\xae\x24\xed\xbb\xbd\x88\x4f\xb6\xec\x5c\xe4\xbc\xd7\xb5\x83\xea\x89\xaf\x56\xaf\x1d\xee\xbc\x9f\xd3\x9e\x98\x74\x09\xe4\x54\x60\xdb\xa4\xdd\xbb\xd0\x6d\xef\xef\xb7\xf0\xed\xde\xe3\x8b\x9d\x2b\x75\xa3\x63\x93\x6d\x6e\x77\x8a\x7e\x01\x5d\x59\xdc\x82\x54\xf4\xf4\x8e\xf9\x46\xfe\x98\xfe\x7c\xb9\xf9\x56\xc7\xf7\x7e\x7f\x80\xd4\x9b\x42\xf0\x9e\xe4\xd9\xec\x99\x41\x5e\xa3\x4f\x9b\x69\x52\xfd\x76\x98\xe6\x71\x4c\x79\x86\x8a\xf9\x3e\x8c\x99\x3f\x4c\x82\x90\xbf\x7d\x37\x2b\xd7\x49\x45\x24\xda\x79\x5c\x6d\xcd\xae\xcb\xdf\x50\xc0\x5d\x29\x94\x11\x7f\xec\x6e\x4d\x5c\xbe\x19\xd9\x0a\x33\xfa\x62\x13\x30\xb1\x84\x94\x9b\x95\x9e\x49\x33\xe7\x42\xb7\x28\x3c\x37\x9c\xf6\x99\xd9\x99\xb2\xfc\xfa\x52\x07\xda\xc1\xc2\xe0\x9d\x2a\x3f\x98\xd3\x15\x77\x44\x77\x89\x74\xcf\x58\x58\xa1\xaf\xbb\xae\x2e\x77\xb9\xfc\x3e\x43\x87\x9f\xd2\x87\xa0\x56\x3a\xcf\xb5\x0e\xa4\x58\x66\xde\x83\x8f\x7c\x8c\x23\x87\x98\x29\xff\xea\xe3\x12\xd6\x5a\xa3\x91\xc7\x29\x89\x28\xc6\xa9\xd1\xc8\xbc\xb9\x22\xba\x24\x26\x67\xbe\x4f\xe2\x0d\xa3\x87\x59\x43\xf9\x4b\x56\xaf\x41\xe2\x2b\x2e\x20\x6b\x7b\x07\xcd\xa7\xcd\xc7\x46\xcb\xee\x51\xea\x31\x58\x39\xd3\xed\xe8\xf6\xf3\xbf\xfe\x56\x45\x6e\x5e\x22\xc2\xf3\x77\x79\x45\x54\x07\x4c\xee\x00\xca\xfb\x70\xff\xf2\x8c\xd7\x18\xf9\x9c\xd3\x5d\xcf\x9a\xb8\x1d\xab\xdb\xdd\x4d\xee\x0f\x03\x30\xf7\xab\xcb\xf7\xe6\xe4\x80\x0a\xf1\x81\xd5\x13\x61\xfd\x2e\xab\x9f\xfb\xc5\xda\x71\x20\xda\x2c\xff\x75\x78\xf0\x8c\xb2\x6b\x6b\xc8\x05\x32\x6e\x4c\x9d\xfa\x77\x8b\x46\x7b\x48\x7f\xcf\x9e\xd7\x03\xd9\xe8\x98\xf5\x59\xda\xe8\xda\xf5\x38\x6a\x0c\xfb\xf5\xe8\xba\xd1\x7f\x51\x4f\xf3\x86\x3d\xad\x7f\xeb\x35\x7e\x36\xae\x4b\xd5\x30\x9d\xfa\x2a\x6b\x9c\xda\xf5\x55\xd4\x18\xf7\xeb\x97\xf3\xc6\x69\xaf\x8e\x41\xad\x09\x7f\xb2\x22\xdb\x26\xb2\x73\xa8\x16\xf5\xdf\xfe\xd3\xcf\x7f\xf3\xef\x7f\xfa\x9b\x5f\xfd\xe3\x8f\x7f\xfe\xc7\xf5\xdf\xfe\xfa\xfb\xff\xfa\xfb\x3f\x2b\x5e\x3a\x32\xcf\x94\xbf\xa8\x77\x53\x2f\xfe\xe1\xef\xbc\x50\xd5\x87\x12\x67\x7a\x68\xb3\x40\xd5\xfb\x5e\x76\x1d\xca\xff\xf8\x9b\xbc\xfe\xf6\xaf\xdf\xfd\xd1\xbb\xef\xdf\x7d\xff\xf6\x5f\xdf\xfe\xea\xed\xaf\xeb\x3f\xfe\xc5\xdf\xfe\xf8\x97\xff\xf0\x9f\xbf\xf8\xab\xba\xa9\x56\xde\x0f\xbf\x4c\xa2\xfa\x18\x32\x35\x9f\xe7\x3f\xfc\x42\x41\xcc\x88\xd3\xd4\x53\x21\x15\x46\xea\x2a\xac\xbf\xfd\xe5\xbb\x3f\x79\xfb\x6f\x6f\xff\xe5\xed\x3f\xbf\xfb\xb9\xb6\x51\xb7\x32\x2f\x0a\x49\x3a\x6a\xe9\x15\xf0\x36\x50\x10\x90\x10\xc4\x59\xee\x0a\x09\x8d\x81\xa2\x54\x21\x49\x2a\x9e\x1b\x8c\x14\x23\x66\x30\x5c\x78\xfc\x6e\x61\x30\x66\xfc\xd8\x98\xbc\x34\x18\x3b\xfe\x07\x26\x06\x03\x48\xa1\x97\x1a\x8c\x22\x1e\xe3\xc8\x60\x28\xe9\x93\xfe\xb5\xc1\x78\xd2\xd7\xbc\xdc\x60\x50\xf1\xf8\xad\x67\x30\xb2\x34\x8a\x32\x18\x5e\x3c\xf2\xaf\xc1\x30\xd3\x5b\x64\x30\xd6\xf4\xef\x53\xe6\x06\x03\x4e\x67\x91\x0c\x3b\x9b\x50\x06\x43\xd4\x9d\x8d\x5e\xba\x5d\xa8\x55\x68\xb7\x53\x5b\x7f\xc0\xdc\xe4\x80\xff\x0e\x00\x00\xff\xff\x3c\x1a\x73\x21\x0a\x24\x00\x00") func confAppIniBytes() ([]byte, error) { return bindataRead( @@ -299,7 +299,7 @@ func confAppIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/app.ini", size: 9731, mode: os.FileMode(420), modTime: time.Unix(1441219263, 0)} + info := bindataFileInfo{name: "conf/app.ini", size: 9226, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -319,7 +319,7 @@ func confGitignoreActionscript() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Actionscript", size: 300, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Actionscript", size: 300, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -339,7 +339,7 @@ func confGitignoreAda() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Ada", size: 51, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Ada", size: 51, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -359,7 +359,7 @@ func confGitignoreAgda() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Agda", size: 8, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Agda", size: 8, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -379,7 +379,7 @@ func confGitignoreAndroid() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Android", size: 394, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Android", size: 394, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -399,7 +399,7 @@ func confGitignoreAnjuta() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Anjuta", size: 78, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Anjuta", size: 78, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -419,7 +419,7 @@ func confGitignoreAppengine() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/AppEngine", size: 58, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/AppEngine", size: 58, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -439,7 +439,7 @@ func confGitignoreAppceleratortitanium() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/AppceleratorTitanium", size: 45, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/AppceleratorTitanium", size: 45, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -459,7 +459,7 @@ func confGitignoreArchlinuxpackages() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/ArchLinuxPackages", size: 75, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/ArchLinuxPackages", size: 75, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -479,7 +479,7 @@ func confGitignoreArchives() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Archives", size: 295, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Archives", size: 295, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -499,7 +499,7 @@ func confGitignoreAutotools() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Autotools", size: 181, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Autotools", size: 181, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -519,7 +519,7 @@ func confGitignoreBricxcc() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/BricxCC", size: 72, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/BricxCC", size: 72, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -539,7 +539,7 @@ func confGitignoreC() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/C", size: 246, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/C", size: 246, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -559,7 +559,7 @@ func confGitignoreCSharp() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/C Sharp", size: 1521, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/C Sharp", size: 1521, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -579,7 +579,7 @@ func confGitignoreC2() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/C++", size: 242, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/C++", size: 242, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -599,7 +599,7 @@ func confGitignoreCfwheels() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/CFWheels", size: 205, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/CFWheels", size: 205, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -619,7 +619,7 @@ func confGitignoreCmake() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/CMake", size: 89, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/CMake", size: 89, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -639,7 +639,7 @@ func confGitignoreCuda() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/CUDA", size: 38, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/CUDA", size: 38, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -659,7 +659,7 @@ func confGitignoreCvs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/CVS", size: 39, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/CVS", size: 39, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -679,7 +679,7 @@ func confGitignoreCakephp() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/CakePHP", size: 136, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/CakePHP", size: 136, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -699,7 +699,7 @@ func confGitignoreChefcookbook() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/ChefCookbook", size: 77, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/ChefCookbook", size: 77, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -719,7 +719,7 @@ func confGitignoreCloud9() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Cloud9", size: 45, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Cloud9", size: 45, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -739,7 +739,7 @@ func confGitignoreCodeigniter() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/CodeIgniter", size: 106, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/CodeIgniter", size: 106, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -759,7 +759,7 @@ func confGitignoreCodekit() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/CodeKit", size: 54, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/CodeKit", size: 54, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -779,7 +779,7 @@ func confGitignoreCommonlisp() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/CommonLisp", size: 26, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/CommonLisp", size: 26, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -799,7 +799,7 @@ func confGitignoreComposer() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Composer", size: 250, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Composer", size: 250, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -819,7 +819,7 @@ func confGitignoreConcrete5() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Concrete5", size: 42, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Concrete5", size: 42, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -839,7 +839,7 @@ func confGitignoreCoq() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Coq", size: 18, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Coq", size: 18, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -859,7 +859,7 @@ func confGitignoreCraftcms() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/CraftCMS", size: 120, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/CraftCMS", size: 120, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -879,7 +879,7 @@ func confGitignoreDm() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/DM", size: 29, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/DM", size: 29, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -899,7 +899,7 @@ func confGitignoreDart() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Dart", size: 234, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Dart", size: 234, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -919,7 +919,7 @@ func confGitignoreDarteditor() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/DartEditor", size: 19, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/DartEditor", size: 19, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -939,7 +939,7 @@ func confGitignoreDelphi() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Delphi", size: 1347, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Delphi", size: 1347, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -959,7 +959,7 @@ func confGitignoreDreamweaver() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Dreamweaver", size: 47, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Dreamweaver", size: 47, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -979,7 +979,7 @@ func confGitignoreDrupal() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Drupal", size: 605, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Drupal", size: 605, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -999,7 +999,7 @@ func confGitignoreEpiserver() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/EPiServer", size: 81, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/EPiServer", size: 81, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1019,7 +1019,7 @@ func confGitignoreEagle() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Eagle", size: 401, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Eagle", size: 401, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1039,7 +1039,7 @@ func confGitignoreEclipse() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Eclipse", size: 458, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Eclipse", size: 458, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1059,7 +1059,7 @@ func confGitignoreEiffelstudio() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/EiffelStudio", size: 35, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/EiffelStudio", size: 35, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1079,7 +1079,7 @@ func confGitignoreElisp() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Elisp", size: 36, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Elisp", size: 36, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1099,7 +1099,7 @@ func confGitignoreElixir() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Elixir", size: 34, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Elixir", size: 34, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1119,7 +1119,7 @@ func confGitignoreEmacs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Emacs", size: 320, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Emacs", size: 320, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1139,7 +1139,7 @@ func confGitignoreEnsime() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Ensime", size: 57, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Ensime", size: 57, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1159,7 +1159,7 @@ func confGitignoreErlang() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Erlang", size: 95, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Erlang", size: 95, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1179,7 +1179,7 @@ func confGitignoreEspresso() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Espresso", size: 9, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Espresso", size: 9, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1199,7 +1199,7 @@ func confGitignoreExpressionengine() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/ExpressionEngine", size: 342, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/ExpressionEngine", size: 342, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1219,7 +1219,7 @@ func confGitignoreExtjs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/ExtJs", size: 38, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/ExtJs", size: 38, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1239,7 +1239,7 @@ func confGitignoreFancy() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Fancy", size: 12, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Fancy", size: 12, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1259,7 +1259,7 @@ func confGitignoreFinale() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Finale", size: 184, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Finale", size: 184, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1279,7 +1279,7 @@ func confGitignoreFlexbuilder() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/FlexBuilder", size: 29, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/FlexBuilder", size: 29, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1299,7 +1299,7 @@ func confGitignoreForcedotcom() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/ForceDotCom", size: 57, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/ForceDotCom", size: 57, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1319,7 +1319,7 @@ func confGitignoreFuelphp() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/FuelPHP", size: 39, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/FuelPHP", size: 39, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1339,7 +1339,7 @@ func confGitignoreGwt() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/GWT", size: 395, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/GWT", size: 395, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1359,7 +1359,7 @@ func confGitignoreGcov() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Gcov", size: 56, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Gcov", size: 56, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1379,7 +1379,7 @@ func confGitignoreGitbook() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/GitBook", size: 353, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/GitBook", size: 353, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1399,7 +1399,7 @@ func confGitignoreGo() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Go", size: 266, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Go", size: 266, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1419,7 +1419,7 @@ func confGitignoreGradle() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Gradle", size: 157, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Gradle", size: 157, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1439,7 +1439,7 @@ func confGitignoreGrails() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Grails", size: 583, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Grails", size: 583, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1459,7 +1459,7 @@ func confGitignoreHaskell() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Haskell", size: 135, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Haskell", size: 135, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1479,7 +1479,7 @@ func confGitignoreIgorpro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/IGORPro", size: 121, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/IGORPro", size: 121, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1499,7 +1499,7 @@ func confGitignoreIpythonnotebook() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/IPythonNotebook", size: 37, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/IPythonNotebook", size: 37, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1519,7 +1519,7 @@ func confGitignoreIdris() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Idris", size: 10, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Idris", size: 10, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1539,7 +1539,7 @@ func confGitignoreJdeveloper() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/JDeveloper", size: 255, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/JDeveloper", size: 255, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1559,7 +1559,7 @@ func confGitignoreJava() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Java", size: 189, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Java", size: 189, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1579,7 +1579,7 @@ func confGitignoreJboss() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Jboss", size: 509, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Jboss", size: 509, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1599,7 +1599,7 @@ func confGitignoreJekyll() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Jekyll", size: 37, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Jekyll", size: 37, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1619,7 +1619,7 @@ func confGitignoreJetbrains() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/JetBrains", size: 860, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/JetBrains", size: 860, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1639,7 +1639,7 @@ func confGitignoreJoomla() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Joomla", size: 22387, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Joomla", size: 22387, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1659,7 +1659,7 @@ func confGitignoreKdevelop4() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/KDevelop4", size: 16, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/KDevelop4", size: 16, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1679,7 +1679,7 @@ func confGitignoreKate() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Kate", size: 34, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Kate", size: 34, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1699,7 +1699,7 @@ func confGitignoreKicad() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/KiCAD", size: 208, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/KiCAD", size: 208, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1719,7 +1719,7 @@ func confGitignoreKohana() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Kohana", size: 39, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Kohana", size: 39, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1739,7 +1739,7 @@ func confGitignoreLabview() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/LabVIEW", size: 142, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/LabVIEW", size: 142, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1759,7 +1759,7 @@ func confGitignoreLaravel() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Laravel", size: 49, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Laravel", size: 49, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1779,7 +1779,7 @@ func confGitignoreLazarus() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Lazarus", size: 407, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Lazarus", size: 407, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1799,7 +1799,7 @@ func confGitignoreLeiningen() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Leiningen", size: 138, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Leiningen", size: 138, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1819,7 +1819,7 @@ func confGitignoreLemonstand() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/LemonStand", size: 348, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/LemonStand", size: 348, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1839,7 +1839,7 @@ func confGitignoreLibreoffice() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/LibreOffice", size: 30, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/LibreOffice", size: 30, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1859,7 +1859,7 @@ func confGitignoreLilypond() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Lilypond", size: 33, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Lilypond", size: 33, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1879,7 +1879,7 @@ func confGitignoreLinux() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Linux", size: 118, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Linux", size: 118, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1899,7 +1899,7 @@ func confGitignoreLithium() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Lithium", size: 28, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Lithium", size: 28, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1919,7 +1919,7 @@ func confGitignoreLua() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Lua", size: 324, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Lua", size: 324, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1939,7 +1939,7 @@ func confGitignoreLyx() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/LyX", size: 75, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/LyX", size: 75, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1959,7 +1959,7 @@ func confGitignoreMagento() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Magento", size: 2599, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Magento", size: 2599, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1979,7 +1979,7 @@ func confGitignoreMatlab() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Matlab", size: 360, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Matlab", size: 360, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1999,7 +1999,7 @@ func confGitignoreMaven() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Maven", size: 170, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Maven", size: 170, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2019,7 +2019,7 @@ func confGitignoreMercurial() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Mercurial", size: 50, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Mercurial", size: 50, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2039,7 +2039,7 @@ func confGitignoreMercury() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Mercury", size: 93, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Mercury", size: 93, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2059,7 +2059,7 @@ func confGitignoreMetaprogrammingsystem() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/MetaProgrammingSystem", size: 391, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/MetaProgrammingSystem", size: 391, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2079,7 +2079,7 @@ func confGitignoreMicrosoftoffice() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/MicrosoftOffice", size: 88, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/MicrosoftOffice", size: 88, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2099,7 +2099,7 @@ func confGitignoreModelsim() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/ModelSim", size: 282, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/ModelSim", size: 282, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2119,7 +2119,7 @@ func confGitignoreMomentics() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Momentics", size: 76, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Momentics", size: 76, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2139,7 +2139,7 @@ func confGitignoreMonodevelop() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/MonoDevelop", size: 93, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/MonoDevelop", size: 93, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2159,7 +2159,7 @@ func confGitignoreNanoc() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Nanoc", size: 197, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Nanoc", size: 197, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2179,7 +2179,7 @@ func confGitignoreNetbeans() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/NetBeans", size: 96, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/NetBeans", size: 96, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2199,7 +2199,7 @@ func confGitignoreNim() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Nim", size: 10, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Nim", size: 10, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2219,7 +2219,7 @@ func confGitignoreNinja() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Ninja", size: 23, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Ninja", size: 23, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2239,7 +2239,7 @@ func confGitignoreNode() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Node", size: 529, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Node", size: 529, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2259,7 +2259,7 @@ func confGitignoreNotepadpp() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/NotepadPP", size: 30, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/NotepadPP", size: 30, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2279,7 +2279,7 @@ func confGitignoreOcaml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/OCaml", size: 178, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/OCaml", size: 178, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2299,7 +2299,7 @@ func confGitignoreOsx() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/OSX", size: 356, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/OSX", size: 356, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2319,7 +2319,7 @@ func confGitignoreObjectiveC() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Objective-C", size: 837, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Objective-C", size: 837, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2339,7 +2339,7 @@ func confGitignoreOpa() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Opa", size: 90, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Opa", size: 90, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2359,7 +2359,7 @@ func confGitignoreOpencart() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/OpenCart", size: 115, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/OpenCart", size: 115, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2379,7 +2379,7 @@ func confGitignoreOracleforms() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/OracleForms", size: 100, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/OracleForms", size: 100, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2399,7 +2399,7 @@ func confGitignorePacker() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Packer", size: 55, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Packer", size: 55, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2419,7 +2419,7 @@ func confGitignorePerl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Perl", size: 191, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Perl", size: 191, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2439,7 +2439,7 @@ func confGitignorePhalcon() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Phalcon", size: 29, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Phalcon", size: 29, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2459,7 +2459,7 @@ func confGitignorePlayframework() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/PlayFramework", size: 170, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/PlayFramework", size: 170, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2479,7 +2479,7 @@ func confGitignorePlone() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Plone", size: 137, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Plone", size: 137, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2499,7 +2499,7 @@ func confGitignorePrestashop() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Prestashop", size: 483, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Prestashop", size: 483, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2519,7 +2519,7 @@ func confGitignoreProcessing() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Processing", size: 120, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Processing", size: 120, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2539,7 +2539,7 @@ func confGitignorePython() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Python", size: 713, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Python", size: 713, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2559,7 +2559,7 @@ func confGitignoreQooxdoo() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Qooxdoo", size: 58, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Qooxdoo", size: 58, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2579,7 +2579,7 @@ func confGitignoreQt() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Qt", size: 292, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Qt", size: 292, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2599,7 +2599,7 @@ func confGitignoreR() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/R", size: 255, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/R", size: 255, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2619,7 +2619,7 @@ func confGitignoreRos() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/ROS", size: 493, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/ROS", size: 493, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2639,7 +2639,7 @@ func confGitignoreRails() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Rails", size: 707, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Rails", size: 707, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2659,7 +2659,7 @@ func confGitignoreRedcar() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Redcar", size: 8, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Redcar", size: 8, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2679,7 +2679,7 @@ func confGitignoreRedis() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Redis", size: 51, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Redis", size: 51, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2699,7 +2699,7 @@ func confGitignoreRhodesrhomobile() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/RhodesRhomobile", size: 77, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/RhodesRhomobile", size: 77, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2719,7 +2719,7 @@ func confGitignoreRuby() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Ruby", size: 607, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Ruby", size: 607, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2739,7 +2739,7 @@ func confGitignoreRust() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Rust", size: 91, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Rust", size: 91, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2759,7 +2759,7 @@ func confGitignoreSbt() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SBT", size: 186, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SBT", size: 186, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2779,7 +2779,7 @@ func confGitignoreScons() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SCons", size: 90, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SCons", size: 90, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2799,7 +2799,7 @@ func confGitignoreSvn() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SVN", size: 6, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SVN", size: 6, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2819,7 +2819,7 @@ func confGitignoreSass() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Sass", size: 23, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Sass", size: 23, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2839,7 +2839,7 @@ func confGitignoreScala() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Scala", size: 185, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Scala", size: 185, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2859,7 +2859,7 @@ func confGitignoreScrivener() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Scrivener", size: 140, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Scrivener", size: 140, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2879,7 +2879,7 @@ func confGitignoreSdcc() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Sdcc", size: 55, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Sdcc", size: 55, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2899,7 +2899,7 @@ func confGitignoreSeamgen() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SeamGen", size: 961, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SeamGen", size: 961, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2919,7 +2919,7 @@ func confGitignoreSketchup() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SketchUp", size: 6, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SketchUp", size: 6, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2939,7 +2939,7 @@ func confGitignoreSlickedit() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SlickEdit", size: 323, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SlickEdit", size: 323, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2959,7 +2959,7 @@ func confGitignoreStella() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Stella", size: 207, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Stella", size: 207, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2979,7 +2979,7 @@ func confGitignoreSublimetext() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SublimeText", size: 354, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SublimeText", size: 354, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2999,7 +2999,7 @@ func confGitignoreSugarcrm() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SugarCRM", size: 734, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SugarCRM", size: 734, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3019,7 +3019,7 @@ func confGitignoreSwift() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Swift", size: 837, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Swift", size: 837, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3039,7 +3039,7 @@ func confGitignoreSymfony() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Symfony", size: 531, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Symfony", size: 531, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3059,7 +3059,7 @@ func confGitignoreSymphonycms() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SymphonyCMS", size: 90, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SymphonyCMS", size: 90, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3079,7 +3079,7 @@ func confGitignoreSynopsysvcs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/SynopsysVCS", size: 971, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/SynopsysVCS", size: 971, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3099,7 +3099,7 @@ func confGitignoreTags() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Tags", size: 177, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Tags", size: 177, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3119,7 +3119,7 @@ func confGitignoreTex() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/TeX", size: 1328, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/TeX", size: 1328, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3139,7 +3139,7 @@ func confGitignoreTextmate() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/TextMate", size: 28, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/TextMate", size: 28, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3159,7 +3159,7 @@ func confGitignoreTextpattern() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Textpattern", size: 177, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Textpattern", size: 177, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3179,7 +3179,7 @@ func confGitignoreTortoisegit() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/TortoiseGit", size: 38, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/TortoiseGit", size: 38, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3199,7 +3199,7 @@ func confGitignoreTurbogears2() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/TurboGears2", size: 202, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/TurboGears2", size: 202, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3219,7 +3219,7 @@ func confGitignoreTypo3() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Typo3", size: 466, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Typo3", size: 466, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3239,7 +3239,7 @@ func confGitignoreUmbraco() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Umbraco", size: 536, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Umbraco", size: 536, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3259,7 +3259,7 @@ func confGitignoreUnity() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Unity", size: 267, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Unity", size: 267, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3279,7 +3279,7 @@ func confGitignoreVvvv() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/VVVV", size: 57, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/VVVV", size: 57, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3299,7 +3299,7 @@ func confGitignoreVagrant() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Vagrant", size: 10, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Vagrant", size: 10, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3319,7 +3319,7 @@ func confGitignoreVim() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Vim", size: 66, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Vim", size: 66, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3339,7 +3339,7 @@ func confGitignoreVirtualenv() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/VirtualEnv", size: 151, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/VirtualEnv", size: 151, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3359,7 +3359,7 @@ func confGitignoreVisualstudio() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/VisualStudio", size: 3412, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/VisualStudio", size: 3412, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3379,7 +3379,7 @@ func confGitignoreVisualstudiocode() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/VisualStudioCode", size: 11, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/VisualStudioCode", size: 11, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3399,7 +3399,7 @@ func confGitignoreWaf() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Waf", size: 87, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Waf", size: 87, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3419,7 +3419,7 @@ func confGitignoreWebmethods() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/WebMethods", size: 424, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/WebMethods", size: 424, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3439,7 +3439,7 @@ func confGitignoreWindows() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Windows", size: 211, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Windows", size: 211, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3459,7 +3459,7 @@ func confGitignoreWordpress() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/WordPress", size: 297, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/WordPress", size: 297, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3479,7 +3479,7 @@ func confGitignoreXcode() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Xcode", size: 361, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Xcode", size: 361, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3499,7 +3499,7 @@ func confGitignoreXilinxise() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/XilinxISE", size: 566, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/XilinxISE", size: 566, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3519,7 +3519,7 @@ func confGitignoreXojo() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Xojo", size: 160, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Xojo", size: 160, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3539,7 +3539,7 @@ func confGitignoreYeoman() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Yeoman", size: 52, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Yeoman", size: 52, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3559,7 +3559,7 @@ func confGitignoreYii() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Yii", size: 120, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Yii", size: 120, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3579,7 +3579,7 @@ func confGitignoreZendframework() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/ZendFramework", size: 217, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/ZendFramework", size: 217, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3599,7 +3599,7 @@ func confGitignoreZephir() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/gitignore/Zephir", size: 387, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/gitignore/Zephir", size: 387, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3619,7 +3619,7 @@ func confLicenseAbstylesLicense() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Abstyles License", size: 730, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Abstyles License", size: 730, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3639,7 +3639,7 @@ func confLicenseAcademicFreeLicenseV11() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Academic Free License v1.1", size: 4660, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Academic Free License v1.1", size: 4660, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3659,7 +3659,7 @@ func confLicenseAcademicFreeLicenseV12() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Academic Free License v1.2", size: 4949, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Academic Free License v1.2", size: 4949, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3679,7 +3679,7 @@ func confLicenseAcademicFreeLicenseV20() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Academic Free License v2.0", size: 8937, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Academic Free License v2.0", size: 8937, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3699,7 +3699,7 @@ func confLicenseAcademicFreeLicenseV21() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Academic Free License v2.1", size: 8922, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Academic Free License v2.1", size: 8922, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3719,7 +3719,7 @@ func confLicenseAcademicFreeLicenseV30() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Academic Free License v3.0", size: 10306, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Academic Free License v3.0", size: 10306, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3739,7 +3739,7 @@ func confLicenseAfferoGeneralPublicLicenseV10() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Affero General Public License v1.0", size: 15837, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Affero General Public License v1.0", size: 15837, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3759,7 +3759,7 @@ func confLicenseApacheLicense10() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Apache License 1.0", size: 2475, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Apache License 1.0", size: 2475, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3779,7 +3779,7 @@ func confLicenseApacheLicense11() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Apache License 1.1", size: 2508, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Apache License 1.1", size: 2508, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3799,7 +3799,7 @@ func confLicenseApacheLicense20() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Apache License 2.0", size: 10261, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Apache License 2.0", size: 10261, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3819,7 +3819,7 @@ func confLicenseArtisticLicense10() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Artistic License 1.0", size: 4789, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Artistic License 1.0", size: 4789, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3839,7 +3839,7 @@ func confLicenseArtisticLicense20() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Artistic License 2.0", size: 8661, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Artistic License 2.0", size: 8661, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3859,7 +3859,7 @@ func confLicenseBsd2ClauseLicense() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/BSD 2-clause License", size: 1286, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/BSD 2-clause License", size: 1286, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3879,7 +3879,7 @@ func confLicenseBsd3ClauseLicense() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/BSD 3-clause License", size: 1480, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/BSD 3-clause License", size: 1480, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3899,7 +3899,7 @@ func confLicenseBsd4ClauseLicense() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/BSD 4-clause License", size: 1624, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/BSD 4-clause License", size: 1624, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3919,7 +3919,7 @@ func confLicenseCreativeCommonsCc010Universal() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Creative Commons CC0 1.0 Universal", size: 6894, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Creative Commons CC0 1.0 Universal", size: 6894, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3939,7 +3939,7 @@ func confLicenseCreativeCommonsZeroV10Universal() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Creative Commons Zero v1.0 Universal", size: 6894, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Creative Commons Zero v1.0 Universal", size: 6894, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3959,7 +3959,7 @@ func confLicenseEclipsePublicLicense10() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Eclipse Public License 1.0", size: 11248, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Eclipse Public License 1.0", size: 11248, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3979,7 +3979,7 @@ func confLicenseEducationalCommunityLicenseV10() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Educational Community License v1.0", size: 2394, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Educational Community License v1.0", size: 2394, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3999,7 +3999,7 @@ func confLicenseEducationalCommunityLicenseV20() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Educational Community License v2.0", size: 11085, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Educational Community License v2.0", size: 11085, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4019,7 +4019,7 @@ func confLicenseGnuAfferoGeneralPublicLicenseV30() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU Affero General Public License v3.0", size: 33818, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU Affero General Public License v3.0", size: 33818, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4039,7 +4039,7 @@ func confLicenseGnuFreeDocumentationLicenseV11() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU Free Documentation License v1.1", size: 17912, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU Free Documentation License v1.1", size: 17912, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4059,7 +4059,7 @@ func confLicenseGnuFreeDocumentationLicenseV12() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU Free Documentation License v1.2", size: 20209, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU Free Documentation License v1.2", size: 20209, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4079,7 +4079,7 @@ func confLicenseGnuFreeDocumentationLicenseV13() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU Free Documentation License v1.3", size: 22732, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU Free Documentation License v1.3", size: 22732, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4099,7 +4099,7 @@ func confLicenseGnuGeneralPublicLicenseV10() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU General Public License v1.0", size: 12165, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU General Public License v1.0", size: 12165, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4119,7 +4119,7 @@ func confLicenseGnuGeneralPublicLicenseV20() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU General Public License v2.0", size: 17277, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU General Public License v2.0", size: 17277, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4139,7 +4139,7 @@ func confLicenseGnuGeneralPublicLicenseV30() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU General Public License v3.0", size: 34570, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU General Public License v3.0", size: 34570, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4159,7 +4159,7 @@ func confLicenseGnuLesserGeneralPublicLicenseV21() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU Lesser General Public License v2.1", size: 25885, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU Lesser General Public License v2.1", size: 25885, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4179,7 +4179,7 @@ func confLicenseGnuLesserGeneralPublicLicenseV30() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU Lesser General Public License v3.0", size: 7355, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU Lesser General Public License v3.0", size: 7355, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4199,7 +4199,7 @@ func confLicenseGnuLibraryGeneralPublicLicenseV20() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/GNU Library General Public License v2.0", size: 24758, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/GNU Library General Public License v2.0", size: 24758, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4219,7 +4219,7 @@ func confLicenseIscLicense() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/ISC license", size: 823, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/ISC license", size: 823, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4239,7 +4239,7 @@ func confLicenseMitLicense() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/MIT License", size: 1077, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/MIT License", size: 1077, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4259,7 +4259,7 @@ func confLicenseMozillaPublicLicense10() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Mozilla Public License 1.0", size: 18026, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Mozilla Public License 1.0", size: 18026, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4279,7 +4279,7 @@ func confLicenseMozillaPublicLicense11() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Mozilla Public License 1.1", size: 23361, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Mozilla Public License 1.1", size: 23361, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4299,7 +4299,7 @@ func confLicenseMozillaPublicLicense20() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/license/Mozilla Public License 2.0", size: 14827, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/license/Mozilla Public License 2.0", size: 14827, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4319,12 +4319,12 @@ func confLocaleTranslators() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/TRANSLATORS", size: 762, mode: os.FileMode(420), modTime: time.Unix(1441373556, 0)} + info := bindataFileInfo{name: "conf/locale/TRANSLATORS", size: 762, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_bgBgIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\x7d\x5b\x8f\x1c\x55\x9a\xe0\x7b\x49\xf5\x1f\x02\x46\x56\x83\x54\x4e\x04\xec\x4d\x88\x82\xed\xa6\x67\xa0\x57\x40\xb3\x6d\x5a\x5a\x09\xa1\x24\x2a\x33\xaa\x2a\xc6\x99\x19\xd9\x19\x91\x36\xd5\xa3\x91\xec\x72\x83\x0d\x0f\xe3\x1e\x0f\x6c\x23\xa6\xb1\x31\xec\xcc\xec\xbc\xa5\xcb\x95\xae\x74\xb9\x32\xfd\x17\x22\xff\xd1\x9e\xef\x76\x6e\x71\x22\x32\xcb\xf4\xbc\xad\x66\x1a\xdb\x19\xe7\x7e\xbe\xf3\xdd\x2f\xf1\x70\xd8\xee\x26\x79\x67\xbb\xfc\xc7\x72\x5a\x9e\x94\x4f\x97\xd7\xca\x45\xf9\xa0\x7c\xa2\xfe\x75\xa6\xfe\x37\x8f\x96\xd7\xe1\x87\xe5\xf5\xe5\x61\x79\x84\x3f\xbc\x9d\x16\xea\xc7\xe5\x97\xaa\xe5\x11\xfc\x77\x73\x63\x73\x63\x3f\xeb\x27\xdb\xe5\x77\xe5\x64\x79\xb3\x9c\xa8\xce\x8b\xcd\x8d\x6e\x9c\xef\xef\x64\xf1\xa8\xbb\x5d\xfe\xa0\x7e\x7b\x40\xbf\x26\x9f\x0e\x7b\xd9\x48\xb5\xfd\x5e\xfd\x76\x52\x3e\xc4\x89\x8e\xd5\xdf\x1f\xab\x41\x92\xde\x70\xbb\xbc\xa7\xa6\x3b\x2b\x17\xcb\x2f\x36\x37\xf2\x74\x6f\xd0\x4e\x07\xdb\xe5\x1d\xd5\x6c\xa6\x9a\x4f\xca\x79\x39\x55\xbf\x67\x9d\x34\xee\xb5\xcd\xe7\xe5\x67\xaa\xd3\x71\xb4\xbc\xa9\xd6\xa4\x76\x81\x6b\x5e\x7e\xae\xba\xc0\x5a\xe6\xe5\x24\x2a\xcf\xf0\xcb\xa3\x72\xf2\x5a\xf4\x4a\x0b\x96\x7f\xb8\xfc\xb2\x7c\x5a\x9e\xaa\x6f\xaf\xe7\xfd\xb8\xd7\x7b\x43\xad\x5d\x7a\xcd\x54\x63\x9c\x2a\xa2\xce\x78\x28\xcb\x3f\xa8\x2f\x4f\x5e\x7f\x89\x5a\xf3\xe2\xb2\x71\xb1\x5d\x7e\xa3\x56\xe6\xae\x0f\x3e\x8d\x87\xb0\xc9\xa9\xda\xe2\x0c\xa7\xbb\xc6\xc3\x3e\x56\x07\x39\x85\x15\xaa\x86\xa3\x64\x2f\xcd\x8b\x64\x14\x6e\x89\x63\x5d\x4d\x76\xf2\xb4\x50\x07\xf6\xa3\x6a\xa1\xae\x81\x46\xd8\xdc\xb8\x92\x8c\xf2\x34\xc3\xb3\x99\x2e\xaf\xa9\xdf\x67\xcb\xdb\x9b\x1b\xc3\x78\x4f\x35\xbd\x8f\x83\xc0\x00\x33\xb5\x9f\xc9\xe6\x46\x91\xf4\x87\xbd\x18\x46\xf9\xbf\x72\x15\xe5\x7c\x73\xa3\x17\x0f\xf6\xc6\xd8\xe3\x6b\xb5\xf8\x59\x79\xba\xb9\xd1\x19\x25\xaa\x5d\x7b\x90\x5c\x85\x61\xbe\x54\x3f\xc3\xe5\x1c\xd1\x6a\x5a\xad\xd6\xe6\xc6\x38\x4f\x46\xed\xe1\x28\xdb\x4d\x7b\x49\x3b\x1e\x74\xdb\x7d\xbc\x4f\x75\x6d\x38\xab\x5a\xa4\x9a\x55\x6d\xb1\x7c\xa2\x16\x75\x5a\xce\x9c\xe3\x8b\xf8\xdf\x2d\x3a\xa4\xa4\xab\xee\xaf\x1d\xe7\xb0\x8b\xa7\xb0\x7b\x98\x27\x82\x5b\x51\x23\x2c\x00\xb0\x60\xb6\x41\xdc\x0f\x4f\xa0\xc0\xa9\x1f\xa7\x3d\x58\xfe\x93\x96\x1a\x17\xa0\x06\xb6\x3b\x8c\xf3\xfc\x6a\x06\x90\x77\x4f\x8d\x04\x00\xfd\x04\x7e\x1e\x25\xed\xe2\x60\x98\x00\xbc\x7c\x89\xb0\x7c\xac\x8e\x0e\x2e\x03\x46\x56\xfb\x5b\xa8\x1f\xd5\xa4\x9d\x78\x58\x74\xf6\xe3\xed\xb7\xe8\x4f\x58\xc5\x28\x19\x66\xea\x16\xb2\xd1\xc1\x76\xf9\x2f\x72\xb4\x70\xe7\x6a\x3e\x75\x47\xd9\x68\x2f\x1e\xa4\xbf\x8f\x0b\xbc\x90\xbb\xaa\xc1\x43\x6e\xa2\x40\x02\x20\x0a\xae\xa6\x9f\x8e\x46\x99\xba\xe9\xbb\x16\xd0\xe3\x93\x50\x67\xdd\x86\x09\xe0\xfd\xe0\x12\xa2\xe5\x67\xd5\x39\xa0\x55\x3f\xdd\x1b\xe1\x2d\x52\x43\x00\x6b\xd5\xe4\x21\x34\x96\x59\xa0\xd9\x6e\x36\xba\x6c\x0d\x76\x0d\x5f\xda\x29\x5d\x3a\xbc\xe0\x86\x19\xd4\x4e\xac\xd1\x17\x35\x3b\x89\x07\x0a\x68\xa8\xed\x8f\x78\xbb\x00\x21\x4f\x70\xe8\x99\x7e\x34\x81\xce\xe5\x6c\x73\x23\xee\xf6\xd5\x95\x0f\xe3\x41\xa2\xee\xed\x8f\xea\x14\x60\x0b\x73\x0d\xf9\x70\xf1\x33\x46\x34\xea\x42\x11\xec\xe0\xa2\xe3\x4e\x27\x1b\x0f\x8a\x76\x9e\x14\x45\x3a\xd8\xcb\x09\xd9\x50\x9f\x45\xf9\x98\x00\xcd\x7f\xac\x70\xe9\x0d\x1d\x36\x37\x0e\xb2\xb1\x86\x65\x80\xc1\xc9\xf2\x16\x6c\x71\x79\xe8\x0c\xc3\xed\xcc\x48\xd2\xf0\x90\x37\xeb\x0f\x8b\x67\x99\xb7\x77\x93\xa4\xcb\x70\xab\xbe\x9d\x46\x0c\x62\xb8\x5d\x05\xa4\xe3\x5e\x4f\xdd\xfb\xef\xc6\x49\x5e\xa8\x31\xff\xa4\x86\xb9\xad\xbe\xe2\x46\xd4\x79\x01\x86\x78\x82\x47\xc1\x88\x20\xcd\x73\xd5\x54\x8d\xe7\x60\x68\x9c\xad\x13\x0f\x3a\x70\x9c\x77\xd5\x44\xa7\x70\xdb\xf0\xe3\x47\x79\x12\x8f\x3a\xfb\x1f\xc3\x11\xc0\x5f\x14\x1a\x06\x6c\x0d\x88\x47\xbf\xe5\x15\x70\x0d\x8f\xaf\xe6\xe1\xe1\x6a\xbc\xc5\xa8\x85\x64\x5d\xf5\xe3\xb7\x80\x8c\x71\x09\xe9\x20\x2f\x14\xb6\x54\x6b\xe0\xbf\x01\xb2\x9c\x23\x2d\x01\xe0\xd7\x10\x55\xa4\x45\x8f\xf1\x16\x61\x65\x3e\x03\x38\x2b\xdd\xda\xc2\xca\x70\x39\x88\x48\x90\x08\x21\x5c\x0b\xe5\x41\xe8\xc6\x2e\x6a\xaf\x87\x36\x26\x85\xb3\x56\x98\xb4\xdd\xdd\x21\x8a\xf7\x76\xb6\x97\x47\x08\x9c\x33\xc4\x54\x00\xf2\xef\x1d\x5c\xfa\x9f\xef\x6e\x45\x1f\x64\x79\xb1\x37\x4a\xd4\xdf\x23\x3a\x8f\x48\xfd\x55\xf5\x7d\x55\x9d\x99\xea\xce\xcb\xad\x83\xc0\x07\xf8\xe0\x00\x92\xd5\x3f\x8e\x71\x7a\xbc\x71\xe8\x89\xf8\xe7\x07\x35\xe8\x53\xb7\xb1\xd3\x70\x5f\x4d\x8f\xe8\xd7\x90\xd8\x86\xab\xa8\xc1\x76\x6a\x36\x42\x9c\xdf\x00\x21\x6f\x98\x4d\x35\x04\xca\x0b\xe3\xff\x19\x3a\x2f\x6f\x6f\xd1\xb1\x3c\xc5\xa1\x4e\x10\x04\x89\x6a\xfd\xea\xfd\xf7\x7f\xfd\xcb\x5f\x44\xc9\x60\x2f\x1d\x24\xea\x98\xa3\x71\xb1\xfb\xdf\xda\x7b\xc9\x20\x19\x29\x7a\xdc\x49\x01\x75\xab\xbb\xaf\x10\xd0\x13\xbc\xa0\xcf\xe5\x5a\xf1\x94\x81\x04\xe4\x3d\x45\x3d\xba\x09\x91\xbf\x47\x6a\xd2\xb3\xe8\xd2\xa5\x77\x61\x4b\xc5\x3e\x00\xd7\x97\x40\xe9\xf2\xdf\xf5\xe0\xda\x64\x8d\xea\x57\x78\x4b\xa7\xea\x8f\xb3\x48\x3d\x50\xb5\x36\xd8\x30\xcd\xc4\xd7\x14\xda\xa8\x9a\x2f\x19\x8d\xda\x8a\x12\x16\x07\x6d\x1e\xd3\x9a\x87\x5e\xfd\x49\x70\x0c\x77\xa0\x88\x36\xa6\x78\x14\xb5\xe4\x29\x7e\x88\x04\x28\xa1\x83\x7a\x5e\x2d\x80\x7e\x39\x16\x86\x96\xbb\x8a\x7a\x7f\xc1\x30\x52\x8b\xb8\x66\x88\xa5\x1f\x09\x2a\x25\x2a\x08\x3c\x5a\xf5\x2a\x57\x36\x37\x27\xa6\xa0\x86\x1e\xd1\x11\x4c\x36\x83\x41\xa0\x29\x0d\x84\x7c\xdd\x02\xb6\x5f\x8b\xf2\x55\x9b\xe5\x0d\x75\xe8\x17\x23\xf5\x0d\x21\x04\x76\x8f\x9b\x3e\x05\x68\x5c\x7e\xa1\xba\x7f\x51\x2e\x9e\x23\x8c\xc2\xc7\x7a\x57\xbd\x2a\xc2\x78\x84\xcc\xe1\x94\xf5\xbd\xf9\xf4\x07\x5f\x8b\xd5\x5d\x2f\xfe\x0e\xb2\x36\x37\xe9\x9c\x00\x93\x12\xdd\x9c\xaa\x9f\x70\xd7\x81\xa1\x68\x5f\xc8\xa6\x7e\x01\x6b\x7c\xa0\xa6\x3c\x86\x19\x88\x6d\x95\xf6\xd4\xbd\x3c\x8a\xf0\x68\x4e\xe0\xef\x04\xb9\x53\xb5\xc8\x43\x3c\x09\xb5\x77\xc0\x92\x63\xc5\xcd\xd5\xbd\x3f\x61\x72\x00\xf0\xe7\xf8\xd3\x29\x1c\xb6\xe9\xa5\x77\xf2\x83\x6a\x81\xb3\x3c\xad\x8e\x02\x27\x7c\x4d\x1d\xeb\x03\x22\xbc\xc7\x84\xfb\xce\xe8\xef\x0b\x61\x57\xf1\x1f\x70\x0a\x72\xb0\x73\xbc\x1d\x39\xda\xe3\x10\x61\x67\x34\x34\x8b\x34\xa1\xe6\xf1\x7d\x24\x19\x01\x3e\x04\xfc\x96\x29\x9e\x4a\xb1\x31\x5f\x21\x1f\x3e\x55\x20\x3a\x97\x1f\xad\xad\xf0\x81\xf9\xb0\xac\xc6\x3e\xc2\x89\x6f\x0b\x9c\xfe\xf6\x37\x0a\x87\x4e\xca\x63\x84\x93\xeb\xfa\x35\x09\x3b\x62\x30\x05\xde\xcd\x75\xf5\xfe\xdf\x41\xcc\xb0\xdf\x1e\x66\xa3\x62\x5b\xfd\x93\x0e\xec\x1a\xa2\x02\xfe\x59\x2f\xe4\x3b\x5a\xe4\xf2\x9a\x3c\x0a\x6a\xc9\xc8\x40\xf5\xb5\x05\x95\x72\xa2\x98\xc4\xbb\xfa\x29\x30\xef\x27\xcf\x16\x08\x87\x7e\xe9\xf8\x37\x05\x38\xc2\x45\x43\x4b\x5a\xd9\x7e\x51\x0c\x69\x69\xef\x7c\xf8\xe1\x07\xd6\xda\xf4\x07\xe7\xdd\xa9\x4f\x5b\xbc\x36\x80\x90\xc7\xf4\xee\x6a\xde\x2e\xc1\x2b\x10\xfe\xe5\x0d\xc5\x60\x4c\x5a\xf4\x98\xc7\xa3\xde\xb6\x7b\x8c\xeb\xa0\x00\xd5\xab\x0a\x7a\x81\xfb\x22\x89\x0f\x65\x3d\x05\x4b\xb0\xa9\x97\xe0\x3f\x97\xd6\xba\x35\xb5\x37\x3a\x75\xe8\x8c\x3b\x7c\xc8\xd0\xe6\x74\xc6\xd5\x4e\x6d\x26\x1d\x31\x64\x36\x04\x8e\xd9\x46\x91\x4f\x91\x4d\x44\x7a\x8e\xb4\x3c\x84\x2e\x99\xeb\x5f\x45\x85\x69\x22\xd8\xd5\x75\xdc\xa8\x3a\x52\x3c\x58\x58\xa1\x82\xa4\xbe\xba\x2d\xa4\xb3\x97\xde\x53\xd7\xe8\xca\xb3\xf8\x71\x77\x94\xf5\x49\x1a\x45\xdc\x41\xb4\x56\x7f\xd1\x47\xfb\x47\xff\x4e\xec\x0e\xce\x52\xe8\x2f\xd1\x6f\xfe\xe6\xad\xe8\x3f\xbf\xfa\x8a\x92\x42\x91\xdc\x1a\x12\x42\x68\x0a\xa4\x11\xc0\x0b\x6a\xcd\x16\xf2\xf4\x6f\xde\x39\x4b\xe1\x51\xe8\xd3\x11\x08\x37\x40\x18\x01\x81\x9d\x21\xda\x7b\x9e\x08\xc7\xf3\xd1\xeb\x78\x72\xff\x3d\xf9\x34\x56\xf2\x60\xd2\xea\x64\xfd\x37\x5a\xc0\xcf\x2b\xf6\x77\xc4\x28\xee\x6b\x77\x64\xe6\xc2\x48\x31\x30\x81\xdf\x88\x99\xe2\x3e\x41\xde\xa3\xbe\x97\xc8\xbb\xed\x4e\x36\xd8\x4d\x47\x7d\x60\xa5\x15\x4c\x2d\xff\x41\x61\x73\x41\x8c\xfc\x56\x1f\xc1\x59\x58\x4f\x83\x68\xd5\x35\x47\x4c\x66\xa1\x02\xce\x9a\x56\xd4\x1e\x64\x45\xba\x7b\xe0\x0e\xab\xae\x9c\x84\x3d\x80\x72\x96\x52\x10\x6b\xe2\x4b\xa4\x8d\x12\xf5\x51\x07\xa0\xc4\xea\x36\xfc\x91\x76\x92\x15\x00\xe6\x62\x16\x84\x79\x75\x47\x08\x5f\x33\x1b\xd8\x14\xbc\x66\xbb\xbb\x3d\xc5\x30\x31\xaf\xe3\x6c\x19\x44\x8c\x27\xc8\xc3\xcc\x23\x56\x51\x20\xde\x77\x3b\x29\xbc\x32\x04\x7d\xc2\x37\x24\xc8\x71\xe7\xb7\x7e\xf9\x3e\x91\x87\x6b\x44\xc7\xf8\x29\x1f\x03\xad\xd6\xef\x68\xea\x0c\xbc\x05\xf0\x61\x08\x2a\xc1\x94\x5a\xec\x35\x24\x29\x33\xc3\x4f\x21\xe4\x55\xe8\xa7\x10\x23\xc0\x9f\xea\xbd\xe3\xfb\x84\xb6\xa7\xc2\x7a\x03\xfd\x48\xf3\x78\xa7\x97\xb4\x95\xa8\x7a\x25\x2e\xe2\x91\xbf\x6a\xd5\xf3\x1a\x2a\x16\xf0\x51\x5e\x8f\xde\xe6\x76\xd5\x9e\xa1\x5d\x03\xf9\x92\x1e\x11\x8d\xf6\xa5\x7a\xe2\xb7\x68\x2d\x0a\xe4\x90\x72\xdf\x64\xd5\xc7\x6c\x8b\x88\x3b\x4e\x75\x13\xf6\x62\xef\x9e\xa8\x21\x51\x41\xd8\x7b\x85\x04\x13\xf2\xe2\xc7\x75\x8a\x22\x06\x33\x0d\x0b\x14\x11\xab\x74\x5c\x84\x42\xee\xc3\x83\x4c\x23\x9b\x97\x86\xae\xee\xcc\x1a\x14\xf1\x95\x03\x31\x7a\x60\x50\xac\x75\xa4\xf4\x7c\x46\xac\x67\x70\x8f\x15\x75\x27\x67\x08\x0c\x95\x27\x42\xcc\x5d\x78\x9c\x30\x68\x85\xf6\x46\x78\x14\xd9\x89\xe6\xc9\xb6\xf4\x77\x44\x5c\x01\x09\x7f\x01\x04\xdb\x61\xa0\xe1\x35\x19\x65\x93\x2b\xc5\xcf\x5a\x2c\xbc\x8d\x12\xd1\xf9\xb5\xaf\xa4\xa0\xa1\x72\x9e\xd2\x09\x62\xc9\x2f\x55\x87\x47\xfa\x3a\x90\xa8\x1f\xb1\x6e\xe9\x48\x64\x92\x13\x99\x61\x2a\xba\x18\xfd\xa4\x6d\xc5\xd9\x2c\x3c\xad\x9c\xd8\x7d\xd9\xe3\x91\xd1\x5d\xd5\x1c\x1d\xfc\x7c\x46\xc4\x91\x5e\x11\xf2\x49\x33\x44\x72\xcc\x97\x3a\x13\x43\xaf\x2d\x1a\xe9\x3a\xe2\x3f\x0f\xbc\xdc\xbe\xbc\x8e\xd0\x20\xac\x4a\x08\x5e\x13\x3f\x1f\x54\x9d\xb6\x44\x31\xc3\x4a\x0e\xd6\x09\x7f\x87\x9c\x3e\x10\x70\x85\x53\x1e\xd1\xba\xab\xb7\x45\x13\xd5\xde\x74\x50\x0d\x78\x44\x07\x42\x6c\x87\x02\xa9\x2d\x5c\x29\x08\x11\xcc\x21\x05\xe0\xef\x36\xee\xd6\x12\xfb\xa3\x5f\xfd\x12\x47\x72\x04\x6e\x40\x4d\x87\x38\x34\xea\x92\x10\x17\xf0\xeb\x02\xb6\xea\xa6\x40\xd8\xca\xf5\x5a\x8c\xb7\x3e\x9e\x55\x3c\x87\xbd\xc5\x79\xe3\x2c\xf0\x1e\x69\xcc\x5a\xf5\x26\x2e\x64\xc1\x02\x9b\xd1\x9c\x05\xa5\x7d\x26\xa8\xce\xe7\x20\x31\xd5\x2c\x89\xee\x4c\xb8\x81\x46\x0f\xeb\x53\x59\x79\xd3\xde\xcb\x40\xfb\xf5\x4d\x45\x27\xf3\x18\x65\x07\x50\x33\xe7\x45\x7b\x2f\x2d\xda\xbb\xc0\x1d\x74\xe1\x9c\xa6\x48\x09\x9f\xaa\x3f\x3f\x13\xb5\x0d\x6c\x8e\xcd\x09\xf8\x1e\x0d\x79\x7f\x5e\xf5\x7d\x9e\x18\xe5\x33\xfc\x76\x0c\xfa\xfa\x0b\x57\x44\x07\xf0\x2a\xd0\xf7\xb6\x42\xfe\x69\x0f\xf0\x98\x28\xe2\xf8\xe2\x8f\x8c\x22\x9c\x45\x74\xe2\xc5\x8e\xf9\x08\xb4\x64\xbf\x45\xb0\xa7\x15\x1d\x78\xda\x88\x08\x44\x1b\xfc\x07\x7a\x41\x62\x3e\x10\x4d\x0e\x68\x9a\x08\xa0\xfc\xe9\x80\x1e\x5c\xc8\x89\x1b\x86\xa9\xf7\xb2\x9d\x71\xda\xeb\x3a\xad\x60\x94\x16\x1c\xe6\x95\xb8\x97\x76\x41\x0d\xc5\x8f\x2d\x00\x4f\x5a\xb5\x58\xa7\x4d\x8a\x84\xb1\x9e\xc2\x71\x69\xa1\x55\x7d\xa1\x03\x93\x59\x82\xf2\xf8\xdc\x28\x39\x57\xca\xe4\x11\x2d\x64\x8a\xb7\x05\x0a\x49\x84\x24\x9a\x44\x8b\xb8\x70\x2d\xfd\xb8\x00\x25\x63\xad\x88\x4c\x33\x7a\x62\x72\xb3\x20\xc3\xd7\x38\xd5\x8a\x0a\xe8\x75\x03\xb4\x28\xcc\xbf\xf9\x33\xa9\x65\xe5\xd1\xc5\x37\xd4\x7f\x15\xc8\xc4\x57\x12\xe2\x33\xf7\x9a\xe1\x11\x09\xc7\x53\x3c\xe5\x23\x47\x6b\x45\x6b\xfd\x03\xaa\xd8\x6f\x18\xbc\xe9\x1e\xb0\x83\x36\x9b\x6f\xf2\x5c\xd8\xc1\xba\x60\x73\xf2\xd6\xf5\xd2\x8b\xcc\xc7\x9d\x4e\x92\xe7\x24\xad\x83\xb8\x3a\x25\xbc\x75\x0b\x3a\x3c\x17\xa1\x95\xed\x18\x07\x38\x63\xa3\xd3\x16\x33\x42\xc0\x9d\xa3\x7c\xab\xae\x1d\x96\xc8\xda\xd0\x48\xbd\x29\xa2\x61\x78\x15\x4f\xd8\xf8\x73\xa6\xb5\xae\x08\xc7\xcc\x8b\x83\x29\x69\x21\xfa\x05\xe6\x87\x8f\x51\x35\x23\x84\x10\x88\x04\xab\x1d\x66\xcf\xa1\x4a\x18\x2c\x85\x1f\x6f\x6e\x8c\x49\x43\x95\xf5\xba\x4d\x7a\x15\x41\x7e\x9a\xa1\x9a\x86\x0d\x3d\xd6\x40\x16\x4e\xcc\xaf\xa6\x0a\x24\xdb\xda\x10\x09\xd0\x50\x24\x9f\x16\xa4\xb6\x9e\xa2\xb2\x5d\x73\x0f\x41\xc0\x44\x2c\x87\xe6\x32\x92\xab\xfb\x07\xf8\xa0\x72\xd2\x94\xd2\xdd\x56\x9f\x0d\x60\xe3\x9e\xc2\x50\x19\x70\x58\x57\x12\xe9\x72\x1f\xad\x4e\x67\x8c\xfc\xc2\xaa\x2b\x9c\x22\x1b\xed\x39\x33\xd4\x99\x52\x54\x53\x32\x2a\x79\xad\x1d\x03\x93\x1a\x12\x99\x16\xb2\xd0\xde\xab\x32\x3d\xf0\x56\xc4\xba\xd0\x52\xa0\x8c\xb6\x0e\x5e\x32\x1a\xca\x22\xa4\xf1\xb7\x1a\xb6\xab\xae\x95\xed\xba\x1f\xb3\x4d\xa1\x6a\x4e\xa0\x66\xf1\xb8\x00\x8b\x84\xb1\x32\xb6\xd9\xb0\x63\x5b\x1b\x1f\xb3\xa5\xc4\x33\xc2\x68\xe1\x71\x3f\x19\x82\xec\xd9\xcf\xf7\xc8\xfa\xc9\xf0\x7c\x26\x9c\x88\xd5\xeb\xcd\x88\x2d\x8b\xb7\x18\xb9\x23\x37\x8e\x36\x10\x75\xa0\xcf\x69\x53\xf2\x33\x8e\x7d\x5f\xd3\xd7\xf0\xe8\x2e\xc3\x4d\x76\xd3\xfe\xb0\x40\x6b\x0f\x31\x51\x8f\x48\x9b\x69\x68\x33\x5a\x88\x68\xb0\xa0\xb0\xab\x85\x12\xc3\xae\x63\x6f\x50\x6d\x81\xa4\xa6\x5a\xce\xed\xd5\x30\x72\x6f\x44\x35\xcc\xfc\xb2\x9a\x7f\x52\x91\x38\xe0\x40\x90\x2f\xa8\x5b\xf6\x4f\x10\xdc\x23\x41\x46\xf6\x6e\x16\xc8\xf1\xf7\x93\xfe\x0e\x4c\x9d\xe0\xc4\x88\x4e\xce\x08\xb3\x20\x3f\xb4\xab\xde\x89\xa2\x3b\x86\xe3\xf9\x93\x56\xd9\xa1\xd6\xc4\x63\x73\xa8\x43\xb2\x7e\x87\x37\xb5\x21\x5f\xd1\xb7\xab\xc0\x0c\x33\x0f\xec\x1c\xef\xc2\x33\x16\xbe\x19\xad\xb0\xfa\x6b\xf8\x68\x69\xae\x8d\x04\x31\x54\x60\xe4\xc9\xa0\xd0\x50\x22\x26\x5c\x96\x2f\xce\xb4\x86\xb2\xe6\xbc\xf5\x59\x3e\xe5\xeb\x25\x63\x2f\x2a\x86\x5f\xdf\x79\xe3\x42\xfe\xfa\x4b\x3b\x6f\xb0\xde\xe9\x09\x29\x8e\xaf\x91\xa4\x8f\x8a\x80\x43\xb9\x4a\x4b\x6d\x26\xe2\x1e\x60\x48\x45\x04\x0f\x89\xf4\x1e\x11\xf6\x3f\x73\x09\x1c\x5a\x2c\xa7\x44\x6f\x90\x48\xc3\x97\x0b\x5d\x20\x38\xe0\x5b\xc1\x3c\xbe\xa5\x5f\xc5\x0d\x18\x4b\x2a\x9d\xe2\xe7\xb6\xd2\x30\x2c\xb9\xb4\xb4\x6b\x88\x30\xac\x8e\x83\x88\xf1\x03\xf1\xe9\x45\xdc\x41\x84\x8c\x28\x4e\x23\x9e\x3f\x22\xe7\x34\xc3\x77\x57\xeb\xf7\x01\xf0\x88\x77\xd3\x4b\xfb\x69\xb1\xf2\x1d\xdf\xc1\x3f\xf0\xcb\x11\xde\xf7\x19\x2b\x32\x99\x5b\x5b\xb8\xf7\x34\x63\x22\x5c\xb9\xe8\x89\x5e\x9b\x6c\xdd\xba\x3d\x60\x5d\x6f\x92\x76\x83\xe1\xeb\x55\xf2\x08\x98\xd3\x4d\x6d\xe9\x1b\x21\xf2\xc6\xef\x71\x81\xb3\x1c\xea\x4e\xb6\xf7\x03\x28\xb8\xe3\xbc\x3d\x1e\x30\x64\x26\x5d\xfd\xf2\x8f\xf5\x43\xa1\x6e\xc8\xee\x5a\x98\x11\x38\x15\x1b\x2e\x8f\xd7\xd1\x5c\xbe\xa0\xc1\xf2\x45\xf5\xeb\x1f\x89\xe4\xb3\x35\xe0\x50\xeb\x4d\x50\x6c\x63\x0e\x60\xed\xa7\xc0\xed\xed\x15\xfa\x42\xac\xff\x5c\x66\x82\x80\x17\x46\x44\x88\x96\x5f\xe0\xc6\x4f\x35\x5a\x55\x28\xe3\x06\x4a\x98\xa2\xdb\xbd\x88\xba\x45\xb5\xca\x16\x43\x89\x1c\xda\xbf\x7b\x3d\xc9\x8c\x66\x3f\x83\xa6\x35\x34\x41\x83\x65\xd6\x4e\x44\xf1\xd9\x56\x78\x0d\xa8\x59\x91\x58\x0a\xff\x15\x8a\x63\xe6\xaf\x41\x39\x82\x27\x88\x2f\x28\xa2\xd6\x33\xb2\x58\x38\xcf\x00\x5e\x1e\xec\x0f\xb6\x59\xac\xbd\x4b\xfb\x16\xb1\xc9\x0b\xa8\xe0\xe7\x7d\xbe\x58\xdd\x28\xdc\xd4\x93\xea\x73\xf4\x65\x56\x5a\x85\xc1\xe7\xdf\xad\xd7\x4d\x58\x77\xf2\x56\xa8\x7f\xc2\xec\x0d\xc2\x46\xed\xf5\x50\x2f\x73\x90\x5f\xa2\xab\x13\xf3\xac\x01\xf9\xa9\xe5\x2f\x5e\xdb\x13\xd6\x38\x4d\xeb\x74\xe4\x91\x38\x3b\x44\x7c\x6d\x31\xc7\x45\x96\xb5\xf3\x7d\x30\x59\x95\x5f\x89\x7e\x8c\x8e\x26\x74\x3e\x41\xf3\xb6\xb6\x4d\x20\xb8\x9f\xe1\x56\x4e\xc9\x16\x79\x18\xfd\x17\x36\xf0\x03\x22\x42\xbb\xce\x47\xfd\xac\x1b\x83\xd7\xc7\x41\x82\xa2\x89\x3a\xf3\x01\xba\x37\x81\x9a\x3e\xeb\xa2\x86\x9e\x3c\x47\xce\xe8\xfc\xb0\x93\x22\xcf\x7d\xd5\xe7\xb7\x4a\xa0\x7c\x7f\x4d\x95\xc8\x6f\x14\xaf\xf9\xbe\x6f\x19\x0f\xf9\x36\xfd\x35\x81\xaa\x6f\xac\xf1\xc8\xc3\x07\x61\xdd\xca\x6f\x12\x72\xdb\x00\x5b\xd0\x11\x33\x4d\xac\x53\xf2\x20\xeb\xd2\xa5\x77\x3e\x24\x0d\x91\xb5\x1e\x34\x61\x32\x77\xb3\xb9\xf1\x4e\x51\x0c\xf3\xdf\x8e\x7a\xdb\x64\x64\xfb\xed\x6f\xde\x85\x79\x0f\x7a\x59\xdc\xfd\x6d\x9d\x9d\x2f\x60\x49\xf9\x30\x89\xfb\x95\x9d\xa3\x32\x60\x06\xcb\xda\xdc\xf8\xb9\xe2\xb4\x9d\x06\xa8\x08\xbc\xa1\x35\xf8\x9a\xec\x13\xfc\xaa\x0e\x20\xc8\xfe\x75\x40\xff\xb3\x8e\x26\xcb\x68\x4a\x13\xf4\x72\xfb\x64\x05\x14\x2d\x8d\xab\xc4\x27\x8a\x2c\xf7\x86\xfb\x31\xca\x69\xba\x7b\x55\x19\x9f\x44\x8e\x20\x8c\xc3\xdd\x20\xb7\x1d\x94\x69\x67\x48\xec\x16\xf2\xec\x96\x64\xd6\x9e\xbe\x70\xb1\xfd\xa2\x37\x47\x57\xe1\xca\x9f\x3c\xcf\x96\x33\x83\x35\xeb\x02\xad\x0b\x13\x98\x33\x4f\x7f\x9f\x34\xcc\x84\x88\x57\xfc\xf3\xc8\x8a\x7d\x21\x87\x7e\xa8\x51\x68\xee\x8b\x18\xcb\x68\xb6\xc8\x04\x8b\x54\xd9\x7e\x8c\x30\x56\xfc\xe9\x79\xc7\x82\xde\x8f\x2f\x22\xaf\x0d\xb2\xe4\xa2\x3a\x28\xd1\x1c\xf7\xaa\xa7\x91\x8b\xe2\x56\xd0\x1e\x18\x06\x4c\xd4\x2b\x06\x71\xdf\x03\x76\x1a\x5c\x56\xec\xf8\x80\x3b\x02\x52\x61\x45\x83\x56\xd4\x3d\xc4\xc6\xb7\x60\xb1\xaf\x69\x77\x4e\xc5\x2c\x76\xb2\xd1\x28\xe9\x14\xe2\xd8\xa9\x19\x8d\x2f\x51\x83\x0f\xf0\x0d\xe8\x4b\xa3\x4d\x47\xa9\xe5\xa1\xc8\x15\xc6\xca\xe5\x77\xa1\xc1\x97\x87\x2d\xdb\xa5\xb5\xbd\x93\x24\x83\x76\x11\x5f\x4e\x06\x0d\xb8\x8e\x78\x36\xd6\x82\x1c\xb1\x44\x5a\xb1\x29\xb1\x2f\x5f\xbb\x32\xee\x37\x9e\xb3\x4f\x05\x37\xd2\xb7\xa6\x81\x95\xd4\xb4\x72\xdc\xb0\xdf\x90\xd1\xcb\xd6\x8d\x5d\x28\x34\xb6\x7a\x70\x8d\xd6\x9a\x07\x23\xa8\xc4\x81\xd4\x19\x77\xd7\xe7\x82\x9a\x06\x4d\x7b\xbd\x64\x0f\x5c\x14\x64\xa5\xb5\xcb\x0b\xbc\x23\xb2\x3a\x3f\x05\x9d\x23\x32\x6e\x67\xa4\x6e\x64\x67\xb8\x96\x05\x0b\x1a\xea\x0c\x98\xae\x09\x13\x9a\x2f\x0e\x51\x71\xb4\x78\xde\x46\x7a\x85\x27\x34\x50\xb2\xfc\x08\xbd\xae\x2d\xf5\x30\xed\x4a\xc4\x0a\x32\x97\x6b\x81\xd0\xd5\x19\xae\x05\x4c\x53\x76\x42\xc0\xed\xb3\x08\x2a\xce\x47\x33\x6d\x27\xae\xac\x45\x3d\x6a\x50\x25\xaf\xbb\x18\x6f\x0a\xe7\x4c\x8c\x52\x19\x8f\xed\x91\xf1\xc7\xb0\x0e\x24\xb8\x08\xc3\x4c\x9e\x7b\x09\x7c\xee\x4f\x6d\x47\x08\xef\xfc\xb5\xb2\x3c\xf9\x34\x05\x17\xcf\xaf\x10\x31\x4c\x2d\x85\x7c\xc0\x35\x4c\x63\x12\x3c\x61\x34\x9c\xe0\x9a\x60\xc0\x5e\x9c\x17\xa0\x2f\xa4\xc3\x13\xfd\x1e\x48\x3c\x9f\x79\xca\x6c\xb2\x25\x92\x7c\x3e\xaf\x55\xa0\xb3\x3e\x43\x20\x3a\x74\x86\xda\x01\x72\x2a\x1a\xde\x23\xdc\x2d\xde\x02\x50\x45\x75\x28\x8f\xb5\x0f\x7f\xc4\x0e\xcf\x13\x72\x8b\xa8\xf5\x72\x13\xfa\x85\xeb\x9b\x91\xbf\x60\xe0\xfa\x8e\xc8\x04\x72\x2c\xea\x9a\x20\xda\x41\x2c\x2b\x17\x0a\x2e\x63\x97\x93\x83\x3a\x3e\x7f\x2b\x32\xaa\x37\xbc\x5c\xc2\xb3\xec\x8d\x86\xe4\xfc\xb6\xb4\x38\x0e\x73\x50\xe0\xb5\xaa\x55\xa4\xb7\x1d\x76\xef\x35\xd4\xae\x8e\x07\xa8\x4b\xbb\x92\x8c\x14\xe7\xab\x17\x44\x0a\xf7\x00\x97\x64\x2b\x65\x66\x75\x23\xe3\xba\x17\x62\xc5\x3e\x66\xa4\x35\xc1\xc3\x38\x33\x10\xea\xd3\x53\xa3\x3e\xd8\x0a\x6a\x7f\x1e\xe2\xab\x00\x2d\x6d\xd0\x66\x72\x0b\x27\xad\x9e\x01\x7a\xae\x23\xb4\x91\x79\x42\xb1\x3e\x85\x42\x9c\x00\x95\x1c\xda\x50\xe7\x5b\xef\xdd\x33\x1b\xff\x6d\x60\x08\x87\x2b\xa8\x8d\xdc\xd3\x66\xe0\x00\x58\x3d\xd4\xee\x20\x78\x43\xbc\x3d\xcb\x2d\x83\x5a\xe0\xf1\xc1\x5b\xc1\xb1\x9e\x38\xe6\x1a\xf6\xe6\x09\xbe\x93\x96\xec\x10\xb4\x25\x18\x08\x51\xbf\xc1\x23\x51\x14\x7e\xc1\xc2\xf6\x4d\x02\x3f\xcb\x61\xcc\xda\x6c\x2d\x50\xaf\xd8\x30\x3c\x31\x24\x34\x46\x4f\xa1\x35\x20\xde\x29\x38\xea\x7c\x5e\x8c\x18\x64\x99\xde\xfb\xd7\xa7\x1d\x3e\xc3\xfe\xc1\xde\x1e\xab\x57\xfa\x2c\x17\xb8\x58\x79\x81\x8b\xb5\x2e\xb0\x19\x4f\x98\x9d\x92\xff\xdb\x0f\x25\x05\xbf\x34\x01\xb9\xad\xb6\x31\xcc\x82\xf1\x0a\xf2\x31\x59\x00\x7e\x3c\x25\xac\xe0\xec\xb9\xad\x86\xad\xf1\x2d\x62\x85\xfe\x1c\x35\xa3\x0b\xe4\x45\x57\xa8\xf4\x14\x9f\x15\xa3\xea\x7b\x67\x14\x0f\x3a\xfb\x36\x05\xfa\x57\x1c\x79\x8a\x2a\x25\x36\xd0\xa2\x8b\x67\x23\xd5\x51\xc2\x3a\x1c\x16\x18\x72\xf6\xe3\xc1\x5e\xd2\x16\x4f\xaf\xfb\x2c\xd0\x7b\x80\x76\xdb\x71\x78\xa2\xdb\x11\x27\x2f\x70\x42\xd4\xe3\x74\xc6\x79\x91\xf5\xf5\x70\xac\x23\x40\x0c\x2c\x62\x68\xdd\x98\x47\x01\x4f\xd1\x25\x3a\x06\xfe\x6d\xa6\xc4\x29\x70\x98\x0a\xc6\xd8\x61\x37\x2b\x12\x26\x4d\xc2\xc6\x2b\x54\x1d\xa7\x05\x6a\x2e\x6e\xa0\x4d\x50\x7b\x02\x00\x66\x7d\x8c\x3c\x08\x3a\x7e\xef\x66\xbd\x5e\x76\x35\x01\xab\xdc\x3d\x8b\xe8\x2e\xc4\x55\x06\xba\x02\xdc\xc5\xc0\x78\xa8\xb9\x90\x5f\x98\xb2\xff\xd0\x42\xfa\xa3\x35\xf9\xbe\x51\xa8\x93\xd8\x8f\x46\x8c\x7e\x0b\x59\x46\x50\x20\x8d\xae\xe8\x10\xa3\x55\x8c\xe2\xcf\x2e\xe4\x3f\x8b\x58\x11\xc0\xe6\x6e\x31\xb5\x98\x31\x87\x71\xa1\x18\xa2\x01\xa9\x13\x71\x1b\xe7\x1b\x5e\x18\x03\x9f\xed\x25\x28\xfc\x48\x42\xa8\x14\xe4\xe8\xa8\xab\x7b\xb6\x92\xbd\xc6\xbb\x85\x69\x66\xbe\x6d\x93\x40\x7a\x97\x62\xc2\x83\xc3\xb2\x63\x3e\x67\x9e\x0f\x19\x3a\x45\xf7\xd2\x0e\xda\x5a\x38\x8c\xca\x71\x39\x80\x38\x24\xb2\xbc\x06\x02\xf8\x30\x4e\x26\xe9\x25\x05\xb2\xff\x82\x94\x1e\x7b\x26\x82\x71\xda\xdd\xfe\xed\xaf\x7e\x09\x5b\x1d\x8e\x77\xd4\x64\x6d\x6b\x97\x06\x68\xa6\xc2\xde\x98\x6d\x73\x38\x25\x79\x5d\x39\xa4\x64\x85\xe8\x82\xd8\xd6\x1b\x7a\xe6\xf8\x6d\x56\x11\x15\xb4\x41\x6d\xa2\xe3\x0a\xea\xa8\x80\xf1\x07\xf7\x04\xc9\x65\xad\xd6\x9b\x76\xe6\x0d\x77\x03\xc0\x45\xbc\x57\x44\x25\xcb\xa8\x6a\xba\xd4\x26\xc0\x2d\xa1\x5c\xc6\x0a\x37\x73\xe2\x78\x8d\x4d\x72\x17\x02\xe6\xd8\x59\x0a\xd5\x98\x73\x4b\x13\x58\x17\x26\xdb\xcb\x3a\xec\x2e\xf9\x67\x46\x63\x0b\x3e\x0a\xcb\xd7\x44\xdd\xdc\xb0\x0b\x06\x69\x7d\x5d\x68\x13\x52\x7b\x98\xb0\x5d\xa9\xc1\x32\x04\xf0\xe9\x76\x37\x5e\x19\xf5\x4c\xc1\x94\xb5\xf9\xd5\x39\x22\x97\xdb\x6a\x69\xe4\xd8\x18\x0a\x1b\x10\x0c\xa7\x8e\x6f\x3f\x3d\xf6\xca\x60\x0c\x72\x96\x36\x16\xc5\xf6\x30\x05\x12\xed\xeb\x1d\x1d\x46\xa4\x40\x51\x13\xcc\x2f\x18\xb9\xb0\x7d\x73\x4e\xc2\x8f\xe5\x6e\x6b\x1c\x7f\x67\x14\xa1\x7d\x13\x42\x87\xc8\xb4\x88\x24\xcd\x03\xb7\x3b\x68\xd5\xfe\xdf\x25\xb9\xa1\x30\x4d\x31\xf4\x5f\xbc\x9d\x2d\x8f\xcf\x37\xd1\xa4\xaa\x50\x8c\x89\x4d\xd4\xdf\x6b\xc2\x24\x13\x62\xce\x3d\xca\x83\xd1\xe9\xac\x46\x6a\xf0\x86\x75\x7d\x88\xc3\x83\x99\x48\x26\x63\xe2\x66\xcd\xbe\x66\xaa\x28\xee\x01\x99\xf2\xa6\x08\x14\x3c\x5d\xf2\xe5\x3e\x16\x70\x04\x9e\xc3\xb8\x50\x77\xf6\xb3\x2c\x67\xc7\x0a\xcb\xfb\xfa\x81\xcd\xe3\xb3\x6f\x85\xb3\x70\x06\x60\xe9\x73\x57\xf5\x60\x57\x84\x1a\xb2\xaa\x95\xc2\xc6\x8f\x19\xdf\x01\xe8\xb1\x95\x38\xcd\x5b\x47\x32\xd2\x4e\xfb\x18\x63\xfe\xad\x71\xa0\x26\x57\x4e\xf6\x35\x37\x54\x03\x5e\xc1\x82\xf7\xac\x1f\x67\x0b\x8c\x07\xde\x91\x5a\x2e\x80\xa0\xff\x3b\x42\xb0\x22\x29\x6a\xae\x6d\xab\x36\xc2\xd3\x0b\x16\x77\x71\x56\x50\xea\xd5\xfb\xfe\xa7\xb2\xa4\xaa\xc9\x0d\x5e\xa4\x73\x5c\xe6\xb9\x37\x39\x7f\x39\x27\x15\xe9\x98\x1a\x8b\x12\xcf\xaa\x2f\x5f\x3f\x57\x8b\x2e\xda\x76\x13\xcf\xc1\x21\xeb\xd9\x0a\x8c\x1f\x4a\x71\x97\xf3\x1d\x21\x00\x3c\x2c\xab\x19\x3f\x60\xb7\x4d\x48\x21\x75\x67\xa5\xbe\x23\xa4\x74\xf2\xb6\xe0\x63\xc7\x1a\xb5\x89\x8f\xba\x26\xfe\xe9\x44\xc6\x3f\xc7\x95\x9f\x8f\xc4\x17\x60\x49\x5e\xd4\x95\x50\x56\x42\x40\xfa\xf5\xcd\x03\xfb\xc7\xb3\x47\x7d\x62\x6e\x59\x8d\xb4\x9f\xaf\x67\x37\xe2\x80\x78\x69\x5f\x1f\x13\x3f\x59\x35\x12\xa9\x30\x03\x6c\xc0\xc2\x0d\xa6\x6c\xe6\x0a\x24\x8c\x2c\x24\xa3\xe8\xd0\x9c\x23\xa6\x87\x42\xbd\x4d\xf0\x8a\x4f\xa3\x41\x29\x3e\x52\x8f\x18\xa2\xc4\x9d\xa0\x4e\xfd\xbb\xb8\x61\xfc\x89\x14\xdd\xe6\xcd\x69\x2d\xd0\xc2\xed\x47\xbc\x94\x74\xb3\x38\x2a\x70\x44\xee\x22\xfe\xe2\x6f\xe8\xd8\x58\x4a\xbc\x89\x1c\xa4\xc6\x61\x8d\xf6\x3c\x18\xca\x1f\x26\xe0\x45\xa8\x9b\xb5\x1d\x7f\x1c\x70\xf7\xf8\xff\x3e\x38\x0d\x3e\x38\xe6\xdc\x2c\x0c\xb8\xfa\x5e\x22\x24\x47\xb7\x44\x4c\x78\x20\x8c\x5f\x08\xfd\xf1\xcb\xd2\xfc\x7f\xfd\xdb\x0a\x49\x06\xb0\x40\xd4\xfd\x39\xb7\xaf\x4d\xb1\x30\x2a\x3d\x35\xe1\x61\xe8\xd9\xe0\x4d\x53\x94\x79\x78\xe4\xad\x30\xb7\xec\x88\xa6\x70\x6f\x37\xc0\xa3\x14\x58\x24\x57\x25\x8a\x40\x71\x62\x2d\x85\x46\x75\xd4\xa9\xa4\x6c\xd0\x0e\xd2\xe4\x44\x74\x8a\xfc\xb2\x15\x47\x2a\x5a\x2e\xf7\x89\xfb\x2e\x17\x81\x18\xe2\x3a\x5f\xef\x23\x9c\xc1\x58\xfe\x44\x81\xf8\x48\x80\x98\x5d\x56\xb4\x52\x9c\x43\x55\x08\x0f\x3f\xa4\x90\xb2\x09\x2f\x88\x4c\x86\x2c\xf5\x72\x50\x2f\x33\x43\xaf\xe7\xc5\x28\x1b\xec\xbd\x01\xe4\x5b\x6c\x8b\x67\x78\x42\xe5\xe9\x9b\xaf\xbf\xc4\x5f\x23\xa6\x76\x47\x2e\xfb\x82\xb1\xdd\xef\x8c\x77\x60\x15\xe8\xc1\x5e\x3a\x91\x04\x38\x08\xad\xf5\xf5\x38\xda\x1f\x25\xbb\xdb\xcf\x5f\xc8\x9f\x7f\xc3\x0a\x5a\x39\x36\xca\x7c\xf4\xe9\xaf\x24\x39\x82\x8c\x0f\x95\x6b\x7f\xfd\xa5\xf8\x0d\x6d\xe8\x25\xde\x70\xe2\xb2\x17\xce\x7c\x26\xe2\xdf\x4d\xaa\x34\x83\x71\xf8\x1e\x67\xb4\x64\x8f\x80\xe1\x3a\xc9\x01\x67\x4e\x40\xc0\x9e\xea\xb5\x7c\x0d\xc5\x26\x0b\xea\x74\x61\xde\x46\x9c\xae\x2f\x02\x3f\x2b\xdb\x64\x76\xdf\x36\x61\x95\x9e\x17\xa7\x23\x6a\xce\xc5\x37\x06\x07\x8b\x82\x72\x26\xbe\x62\x99\x05\xc5\x0d\x9a\xe5\x8e\x36\xb8\x55\xf5\x4b\x01\x81\x56\xe6\x00\x6b\xf9\xa1\x3c\x55\x92\x3f\x36\x37\x64\x68\xd7\x13\x42\x2e\x6e\x42\x0d\xd0\xf3\x5b\xbc\x8c\xbd\xfd\x69\x3c\xe1\xa1\x31\x26\xbd\xf6\x91\x19\x25\x4a\x13\xe6\x7a\x4e\xd3\x37\xbc\x08\x87\xba\xc9\x61\x60\x03\x09\xe3\xe3\xcf\xfe\x8d\x06\x6e\x4a\xba\x31\xde\x72\xfb\x6a\xc6\x86\xac\x9e\xce\xc2\x1d\x2d\xa3\x8e\xd9\x52\x68\x05\xc3\xb6\x27\x28\x81\x1d\x79\x88\xe2\x84\x84\x30\x8d\xd4\x6c\x3f\xb0\x73\xcb\x65\x95\x1d\xc8\x61\x3b\xef\xcc\x26\x0e\x5a\xf9\x0b\xb2\x82\x7f\xc0\x70\x65\xd9\xc0\xc6\xec\x53\xad\xcb\x43\xa3\x18\x01\xda\x3d\xc7\xea\x15\x92\x0c\xb8\x8f\x12\x31\x8c\x86\x4f\xc2\xde\x8c\xbb\x26\xce\xeb\x78\xe0\x69\x75\x1f\x02\x4e\x01\xe2\x80\xa1\x25\x36\x72\x0f\xbf\x0c\xb9\x90\x93\xaa\x65\x0e\x8e\xf3\xbf\x46\xf4\x8f\xcd\x8d\x22\xbb\xac\x1e\x67\x68\x02\xbc\xe8\x53\xda\xf7\x4f\x9a\xc2\x90\x59\xd6\xa4\xd5\x12\xd9\x0a\xd9\x73\x75\x6c\x64\x38\x73\xd5\x70\x04\x1d\x92\x7e\x6d\xa6\x3d\xee\xd7\x20\xbc\x3f\x7d\xb6\x56\xe4\x58\x44\x8d\x62\xda\xa8\x25\x5c\x44\x8c\x4a\xef\x7a\x0a\x36\x1e\xec\xa4\x83\x2e\x71\xc1\x47\x08\x79\x0b\x96\xc5\xb5\x86\x96\x9a\x18\x54\xe2\x69\x25\xbd\x77\x14\x91\x08\x6f\x46\x13\xef\x40\x7d\x27\x31\x8e\xd3\x46\x30\x68\x12\x2d\xc0\xc8\x7a\x4c\x82\x2a\x46\x80\x8b\x16\xd4\x40\x49\x39\xd3\xbc\x9f\x7e\xe4\x92\xa5\x86\x83\x31\x78\x96\x7f\x62\x25\xfe\xb5\x8a\xde\x8b\xf8\x6e\x33\x26\xc3\x67\xce\xd7\x59\xed\xe8\x2e\xa0\x4a\xf5\xac\x88\xd8\xa0\xc0\x22\x49\x79\xaa\x2c\xcc\xcf\x3f\xf8\xd5\x45\x43\x9a\x38\x79\x89\xde\x84\xc8\x50\xc2\x37\xd9\xaf\x85\x34\x55\x62\x78\x46\x3c\x85\x8f\xa8\x9a\x69\xe5\x28\x8c\xfc\xe4\x55\x56\xc8\x8e\x7d\x30\xfa\x60\x57\x1d\x6a\x7d\x27\x82\x22\x30\x48\xfc\xe8\x18\x60\x89\xd7\xf2\x86\x73\xf0\x81\x7f\x64\xea\x21\xfc\x58\xe7\xc6\x20\xae\xd6\x0f\x89\x79\x22\x5b\xd2\x35\x52\x4b\x06\xec\xf9\x73\x89\x09\x46\x64\xcf\x9c\x0b\x8d\x60\xcc\x72\x08\x85\xe5\xac\x62\x8c\x32\xa4\x91\x4f\xc5\x15\xfd\x2c\x58\x5f\x4d\x21\x83\x20\x3f\x5d\x71\x10\x35\x93\x04\xe9\xa9\x13\x9b\xaa\xc9\xea\x33\x4d\x1b\x19\xc3\xa8\x85\x8c\x56\x68\xe0\xed\x8c\x3d\x4d\x61\x92\xe7\x27\xc6\xf6\x1d\x18\x54\xf5\x4d\x18\x85\x60\xfe\xa7\x86\xad\xad\xa0\xd5\x91\xf0\xf8\x3a\xd6\x46\x01\xd0\x63\x0b\x60\xe8\x50\xfc\x60\x4b\xdb\xbd\x39\xbc\x6d\xe1\x1e\x49\x52\xe4\x2d\xe9\xa8\x8e\x3a\xa0\x09\x3f\x69\xdd\x5f\x02\x3b\x7e\xb0\x74\xb3\x46\x17\x82\xe1\x00\xce\x7e\xe1\x1f\x61\x16\x89\xc5\x6b\xcb\xfb\x45\xfd\xbf\x25\xf7\x7c\x0d\x3a\x80\xbb\xea\xe6\xbe\xb6\xe4\x1d\x83\x07\xe1\xd1\xb0\x96\xef\x39\x13\xde\xed\xef\xd2\x0f\xf2\x9e\x54\x9e\x48\x00\xa0\xfd\xc3\x92\xa8\xf6\x7a\xc3\x96\xd7\xde\x63\x74\xec\x4d\x7b\x96\xa7\x05\xdf\xeb\x4d\x6d\xfa\x9c\x3b\x76\x7d\x14\x8f\xcf\x09\xbc\x9b\x1b\x1f\x81\xb5\xf6\xe3\xcd\x0d\xcb\xe9\xc9\xf3\x14\xb2\xdc\x21\x57\xfa\x86\x1b\xc7\x49\xd1\xd4\x4b\x30\xad\xeb\x50\x56\xed\x1b\x09\x1d\x41\x8d\x80\x71\x18\x02\xa0\x64\x6f\x80\x53\x06\x63\xe2\x34\x48\xe1\x8b\x61\x6c\xd8\x6a\x26\x44\x0f\x44\x59\x12\xf8\xb4\xf5\xd2\x16\x3d\x51\x3d\x77\x03\x64\xc7\x16\x84\x73\xe6\xe9\x4e\xda\x43\x4e\xf5\x0e\xe1\x59\xcc\xc5\x81\xdc\x28\x7e\x84\x6f\x4e\xee\xa7\xb0\x0b\x06\x2c\xff\xf5\x7c\x18\x0f\xa2\x8e\x62\x99\xf3\xed\xe7\xc7\x69\x34\x4a\xba\x11\xc4\xc8\x2a\xf1\xf5\xdf\x48\x9b\x0d\x37\xa6\x20\x54\x35\x7b\xc3\x1e\x1e\x92\x8c\xca\x1c\x2f\x84\x2c\xf5\x5a\xc1\xca\x56\x37\x6d\x21\xb7\xd5\x93\x0b\x4e\x59\x71\x52\xce\x2c\x4d\x87\x95\x9e\xc6\x4f\x5d\xaa\x5e\xd9\x8b\x68\xb0\xbe\xcc\x9e\x29\xdf\x3b\x4d\x02\x31\xb5\x0c\xf2\xd8\x85\x72\x3a\x7d\x5f\x1d\x95\xd7\xc2\xcd\xaa\x87\xf8\x9d\xa5\x66\xf6\x50\x97\x56\xc6\x8b\xcf\x83\x73\x23\xcb\x43\x4b\x8d\xb6\x4e\x1e\x56\xf1\xe4\xa5\x37\x76\xb7\xb4\x52\x8b\x68\x60\x85\xbc\xbd\x56\xce\x5e\xfd\x9b\x5e\xae\x6f\xf3\x69\xed\xa5\x45\xba\x37\xc8\x46\x89\x97\xe1\x47\x09\x4b\x69\x47\xf1\x6f\xea\x95\xfc\x73\x09\x39\x0f\x60\x59\x27\xfa\xd7\xda\x01\x71\xb5\xdc\xba\xb4\x12\x0d\xf1\xe0\xb0\xa6\xb8\xab\xde\xde\x6f\xf0\x0f\xf9\x67\xed\x70\xa8\x49\x79\x60\x3c\x4f\x26\xd1\x88\x3b\xc6\xe3\x22\x6b\xa7\x83\xb4\x20\xf2\x64\xd2\x32\x04\xac\xb2\x5a\x37\x10\x00\x75\xd0\xcf\xe9\x90\x77\x7d\x5b\x5e\xba\x23\x00\x1f\x6b\x25\x3a\x4e\x99\x20\xcd\x0e\x50\x0e\xe1\x91\x6e\xb2\x1b\x8f\x7b\xe2\x64\x03\xf6\x2e\xde\x4f\x53\x76\x1f\xc9\x0b\xac\xf6\x58\x24\xa3\x2b\x31\x67\x48\x3d\xc4\xc3\x41\xd7\x3d\xed\x60\xcd\x2f\xc5\x72\x43\x7a\x81\xb5\xba\xb8\xfa\x17\xeb\xbc\x43\x56\xba\x80\xff\x04\xd7\x90\x46\xd4\xca\x28\x90\x5e\xc4\xc4\xf3\x10\xa9\xb8\x8e\xb6\x28\x6f\x2e\x18\x0f\xc7\x90\xae\xe2\x9b\xd2\x4e\xcc\xda\xe4\x8e\x05\x67\xb8\x47\x5c\xb3\x9d\x5e\x55\x72\x23\x3b\x67\x6d\xda\xad\x83\x20\x5d\x6a\xe6\xe0\x4a\x40\x92\xd1\x4e\x6f\x9c\x28\x4c\xe9\x46\xdc\x1b\x6c\x29\xd3\x11\xfc\xfc\xd9\x59\x4f\x18\x86\xb8\x47\xab\xd3\xcb\x06\x8a\xde\x76\xbb\x23\xe4\xcc\xac\xb8\xa5\x40\x1e\xbe\xc7\x35\xfd\x7c\x19\xdb\xcf\x58\x6a\x72\xfd\xbd\xf4\xf6\xaf\x3e\x74\xb4\xf6\x2c\x60\x9b\xdc\x5e\x76\x0a\x4f\x92\xcd\x9d\xbc\x8a\x66\x05\xe2\x77\x0b\x8e\x17\x3d\xce\x3c\x82\x36\xda\xd2\x89\x0d\xa1\xa1\x2e\xd6\xbb\x99\xe9\x35\x18\x97\xa2\x50\x6e\x4e\xc2\xd8\x0a\x68\x10\xb5\x07\x71\xac\x85\xd8\x31\x73\x5f\x9e\xf4\x76\xeb\x30\xba\x37\x40\x4d\xca\x83\xa9\x1d\x4f\x4b\x86\x19\xcd\x06\x4e\x91\x5b\x1b\x1e\xb4\x7b\xe9\xe0\x32\xe5\x42\x7e\x6a\xee\xa9\xa3\x10\xeb\x65\xc5\x77\xb7\xa1\x89\xfb\x95\xe4\x01\xba\x5b\x08\x76\x78\x80\xbb\x3c\xa6\x74\x12\xc3\x14\x5e\x9b\x27\x05\x9e\xba\xbd\x61\x74\xb8\x7d\x4d\xb3\x1a\xe2\xd5\x4b\xce\xb1\xaf\x35\xcb\x95\xcc\x8e\x6f\x46\xac\x3c\xc3\xce\x38\xc0\xeb\x71\x44\x7e\x84\xdb\xcf\xb7\x77\x14\xbd\xb9\xfc\xbc\xad\xed\xbe\x27\x63\x82\x7a\xfb\x39\x50\x84\x5c\xa5\xe0\x99\xef\x68\x6e\x7a\x20\xb3\xcd\x0d\xfe\xf9\xbe\xf9\x65\x0c\xd9\x4c\x98\xca\x2a\xc9\x48\xfc\xe1\x30\xf1\x08\x79\xca\xd9\x6e\x72\xfc\x33\x65\x39\x0f\xd2\x72\xc4\x24\x99\x9f\xc3\x6a\xe1\xd3\xd2\xdf\x8d\xe1\x32\xf6\xc6\x29\x84\x81\xfe\x23\x89\x5e\xa8\x86\x62\xb1\x8b\xf3\xc8\x61\x5a\x7c\x3c\xd9\x62\x3f\xcd\xf9\x31\x7f\xeb\xbe\xc0\x5a\xb6\xc3\xca\x74\x81\x64\xba\x93\xf5\xfb\xf1\xa0\x1b\x4a\x77\x11\x64\x07\xac\x58\x76\x3b\x2d\x12\x8b\x65\xe8\xfb\x0d\xce\x66\x10\x39\x07\x0e\x9d\xbc\x3a\x52\x7a\x31\xa9\x0a\x3c\x2e\x64\x50\x43\x60\xfd\x74\xf5\x64\x9b\x1b\x1e\x81\xdb\xdc\x28\x46\x49\x82\xb1\xa5\x48\xb3\x16\xd2\x02\xab\x03\x14\x31\xb8\xd4\xc9\x71\x69\x3a\x8b\x42\xf0\x35\x90\x29\x01\xfe\xa4\x47\xe2\x37\x05\xcf\x55\x4a\x86\xe2\xb4\xae\xcd\x85\x0e\x49\xd5\xd7\x49\xa6\xde\x8b\x77\x12\x68\xf8\x35\x6a\x73\x4f\xf1\xb6\x20\xa3\x4a\xda\x4b\xf2\x42\x5d\x35\x7f\x02\x6a\x08\x8e\x43\xea\xd2\x52\x48\xd2\xfe\x3d\x22\x32\x64\x3d\x28\x3b\x5c\x2f\x89\xf3\x24\x27\x62\x75\xcc\x8c\xc5\x6d\x05\x9b\xe0\x05\x36\x8a\xb1\x86\xc2\x0d\x5c\xe3\x11\xff\xa8\x20\x88\xd2\xad\x7f\xc3\xc2\xc2\x35\xab\x07\x26\x6a\x71\xbb\x31\xf9\xe4\x06\xea\x5d\xf7\x63\x42\x2c\x92\xd4\x99\xe2\x13\x98\x75\xd6\x89\x15\xd1\x75\x84\x56\xdd\xaa\x5b\xbd\x7c\x0f\xa6\x87\x67\xfb\x72\xb0\xc3\x2e\xea\x40\xbf\x2b\x27\x14\xb4\x68\x7f\x02\xd2\x0d\x51\x79\x7f\x94\x40\x59\xf3\xa9\xaf\x28\x12\x57\xa7\xf8\x12\xe5\xab\x2f\xcc\x73\x95\x36\x5d\x0c\x5e\xff\x4a\xc2\x69\xe5\x67\x93\x25\xe8\xa2\x64\x2d\xb6\x27\x55\x8f\x4b\x3e\x33\xdc\xcc\xac\x94\x36\x58\xca\x82\xed\xd2\x8e\x21\xce\x6e\xd1\xaa\x01\x08\xab\xc5\x00\x78\xec\x1d\xf0\x1f\xd3\x18\x65\x6a\x1a\x3b\x4d\x3b\x0a\x2c\x46\x6d\x19\xf2\x1b\x4c\xd3\x30\x23\x67\x0b\xa7\x93\x37\x83\x86\x3e\x0d\x7c\xfe\x02\xac\x16\xce\x22\xfc\xa6\xb4\x00\xab\x75\x60\x0d\x7e\x9f\x6c\x98\x0c\xec\x2e\x77\x97\x94\x18\xfc\x9a\xe8\x8e\xa7\xe6\x41\x38\x53\x65\x39\x64\x89\x30\x1d\xff\x84\xd7\xb7\x46\x57\xc5\x47\x41\x0d\x10\x5a\x1e\x2b\x62\xe7\xa5\x5b\x62\xc0\xde\x8f\xd3\xde\xde\xce\x6c\x45\x77\x30\xee\xe8\xbe\xfa\xe0\x9a\x7a\x11\xda\x26\x4d\xc0\x29\x2a\x27\xc8\x09\xfb\x71\x03\x0c\x69\xf0\x20\x58\xab\x01\x0e\x6a\xd5\x1e\xf6\xe2\x4e\x22\x59\xab\x9c\x10\x6e\xd3\x0d\x4b\x34\x38\x0b\x92\x29\x1c\xe2\x11\x9a\x08\x2f\xb3\x88\x77\xb6\x2f\x74\x49\x95\x64\x5d\x87\x19\x13\xae\x4e\xb7\x3a\xf1\xaf\x4d\xb7\x53\xa8\x07\x52\x00\xf1\xdc\x5f\x07\xa6\xb3\x5b\x28\x01\x01\x58\x2c\x74\x18\xfb\xce\xf2\x87\x61\xc9\x2b\xbc\x5e\x1e\xa0\xe1\x05\xf8\x2d\xec\x69\xfe\x19\x18\x26\xe6\x0c\xe6\x81\xd9\x02\xe3\xac\x07\x7b\xa6\x31\x14\x3c\x70\xe6\x74\xc0\x48\xcf\xd6\x04\x53\x3c\x98\x25\xa3\x84\x3e\xb5\x20\xad\x9b\xd0\x37\x27\xf9\xfd\x53\x9f\xd8\x85\x3a\xe7\x5c\x56\x47\xb1\x98\x07\xd9\x98\x5c\xf6\x4e\x6c\xdd\x29\x83\x19\x30\xab\xd7\x83\x43\x10\xa4\x75\xdb\x3b\x07\x34\xc2\x7d\xdb\x6b\x82\x46\x40\x1e\xb2\x7e\x84\x7e\x32\x00\x9d\x3a\xa4\x11\xa5\x11\x98\xdf\x44\x37\x3e\x31\xea\x88\x13\xc1\xc2\x1f\x22\xc7\x44\x15\xf7\x58\x5c\x06\x2e\xe6\x01\x26\xed\xa8\x34\x6a\x41\x45\xa3\xbc\x20\x4a\xf4\xd8\x42\xfd\x81\xa6\xf0\xd0\x4c\x53\x9b\x88\x04\x1a\x8f\x92\x8e\xda\x01\xf9\x78\x06\x4c\xc8\xbe\x67\x62\x78\x10\xe0\x0c\xf4\x18\x80\x4b\x49\x39\x3b\xf7\xd5\x46\xf5\x23\xf4\xb3\xbc\x00\x12\xc7\x6e\x68\x5e\x4c\x3e\x73\x68\x94\x3e\x55\x5b\xdb\xea\x97\x52\x1d\x49\xe7\xf0\x68\x1e\x09\x50\x09\x82\xc3\xb6\x8b\x48\xa2\x0b\x1f\xbd\xfc\x71\x4e\xc0\x60\xfc\x5e\x3e\x7a\xe5\x63\x25\x0c\x5c\xf8\xe8\xd5\x8f\x73\x90\x03\xaa\xa3\xb4\x77\xe3\xcb\x49\xc3\x50\x38\x82\xee\x36\x1c\x25\x57\xd2\x6c\x9c\x1b\x96\x76\x46\xa6\x78\x0b\xa5\x42\x42\xbf\xfb\x8e\xd7\xdb\xc4\xc3\x83\x9c\x5d\xbe\x09\x0d\x76\xa5\x55\x85\x7a\x99\x99\xc6\xfd\x36\x9f\x62\x8e\x18\xd3\x3e\x37\x76\x80\x96\x21\xa9\x19\xe8\x32\x8a\xed\x4f\xaa\x07\x0c\x07\x96\x76\xe1\xb8\xd4\xbe\x45\x8a\xfa\x2b\xfa\xd7\x1b\x78\x02\x70\x78\x9f\x98\xa9\x33\xe3\xc1\x72\xc7\x09\xb5\x9b\x6b\x57\x85\xaa\x63\x4b\xcb\xc3\xf4\x5c\xb3\xc7\xde\xa1\x4f\x0c\x78\xe1\xc1\xa6\x91\xa4\x49\x74\x61\xe5\xb1\x1e\x62\x94\xe0\x71\x73\xdf\xbb\x76\x4f\xa7\xc0\x96\xdb\xdc\x9b\xb2\xae\xdb\xca\xd9\x99\x42\x6a\x38\xff\xb6\xa9\x2d\x5d\x39\x5e\xce\x89\xb3\xc7\x73\x5e\x0c\xed\x41\x86\x72\x96\xbb\x78\xf6\x51\x89\xb1\x55\xb2\xdc\x2e\x8d\x4b\xee\x1b\x0b\xca\xf3\x7d\xe8\x98\x5d\x84\x1e\xd0\xe3\xb1\x39\x76\x25\xb2\x9d\x73\xda\x61\x46\xb5\xe8\x7e\x24\xb5\x22\x6e\x06\xa5\x5f\xfe\x8e\xa9\x4e\xeb\x8a\x76\x21\xaf\x2f\xaf\xae\xc1\x2e\xc3\x4d\x24\xb3\x9e\x92\xe2\xdb\xbb\x28\x3e\x86\xa2\xf3\x1e\xb3\xd2\xe2\x01\x3a\x4c\x3e\x2d\x29\xb9\x81\x4d\x34\x24\x0f\x9c\xa4\x9f\x21\x99\xdf\xcb\xaf\x65\x25\xfa\x64\x25\xbd\x39\x46\xd6\xf8\x3c\xa4\x6b\x5b\x5e\xb3\xfd\xca\xeb\xf2\x3e\xba\x6e\x7e\x77\xf0\x06\x30\xf3\x93\xe3\x5d\x5b\x01\x56\x68\xe1\x20\xc5\xa4\x0b\x7a\xed\xef\x59\x54\x3f\x95\x6a\x58\x02\x05\xd5\x70\x15\xd9\x74\x7c\x45\xe7\x44\x9c\x59\x44\x98\xf8\xaf\xa2\x92\x81\x28\xc8\x72\x51\xe3\x4e\xd6\x03\x79\xed\x5f\xd1\x63\xff\x70\x8d\xe6\x60\x76\x04\xe4\x17\x16\x63\xa8\x95\x41\x03\x79\x88\x01\xf5\x59\x99\x89\xd7\xbd\xf9\x58\xa8\x4d\x20\x18\xcf\x6b\xe1\x25\x9a\x72\x82\x48\xeb\x37\x68\xbc\x0e\xea\x53\x29\xac\xee\x7d\x1e\x77\x02\x6b\xb4\x3a\x2f\x81\x19\x5a\xc6\xa5\x9e\x87\x95\x5a\xe5\x84\x63\x2e\xd8\xe9\x82\xb3\xb5\xae\xf4\x29\xb0\xb8\xc8\xf3\x9b\x5f\xc3\x1b\xd6\x4e\x04\x96\x78\x40\xda\xe2\x55\x9e\x7c\xac\xb4\x01\xa4\x37\x8c\xd5\x0b\xa6\x70\x11\xcc\x97\x7b\x8d\x59\xa6\x59\xc0\xd2\x56\xd3\x8d\x4f\x5e\xf7\x25\x2b\x41\xc4\xac\xc1\xa1\xad\x3c\x9f\x44\x64\x9c\x74\xea\x0e\x9c\x68\xcd\xd1\x24\xa4\x39\xd2\xf9\xf4\x27\x25\xd5\xfc\xd4\xce\xf7\xc2\xe2\x3e\x02\x4b\x2d\xa2\x8e\x96\xbf\xc4\x9d\x38\x4f\xb6\xe9\x4c\x4b\xa7\xa6\x82\x93\x26\xbc\xb2\x31\xfa\x73\x5b\xad\x54\x9f\x87\xb4\x61\x2e\x4f\x14\x72\xff\x07\xd0\x13\x9e\xfb\x35\xb6\x3a\x9d\x8a\x8a\x8e\xda\x2b\x3e\x62\x94\xe4\xe3\x1e\x68\x83\xb4\x93\x23\x6a\xfc\x20\xa5\x1c\xb2\x31\x87\x14\xef\xc1\xcd\x8b\x7d\xe0\xe2\x51\x5f\x4d\xab\xb0\x4a\x02\xa0\xce\x70\x21\xa7\xe4\x1e\x78\x39\x17\x64\xa8\x43\xaa\x02\x1b\xf7\x43\xce\xa9\x9c\x87\x3a\x88\xcf\x10\x74\x28\x04\x81\xd3\x22\xa0\x1d\xc8\x2c\x0d\xf2\x2e\xd8\x15\x14\x15\x95\x74\xd1\xf6\x1a\x57\x69\xae\x6b\xa9\x3d\xf2\x8f\x51\x41\x89\xa6\xcd\x27\x90\x6c\xdb\xe2\x6c\x15\xd9\x7c\x09\x27\x7f\x09\xd8\xdb\x2e\x93\xd0\xbf\xc2\x7f\x30\x21\xe5\x9b\x63\xe5\x81\x23\xa5\xaf\x58\x8d\xf4\x45\xe4\x6d\xa8\x18\x76\x41\x2f\x94\x07\x25\xe7\x13\xb0\xec\x7f\x08\xc4\xb0\xb0\xae\xa7\xab\x63\xae\x1c\x12\x1c\x0a\xa1\xc7\xbf\x0b\x8e\x90\x2f\xaf\xea\x2f\x32\x7f\x3f\x19\xed\x09\x33\xcc\xcb\xb0\xe6\x56\x23\xff\x65\xa6\x53\xc3\xfc\x27\x60\xf3\x79\xd3\xf1\x0e\xf0\xb7\x50\xd2\x96\x83\x75\xbf\x77\x89\xb2\xdb\x30\xac\xce\x34\x2d\x40\x55\x9a\xbb\x91\x72\x1c\x5f\xe7\xd9\xbe\xa9\x0b\xf3\xa1\x0a\xc8\x71\xf3\x26\xf3\x8f\xcb\xcf\xc9\x6d\xf8\xc1\x9b\x6b\x61\x0c\xcf\xc1\x51\x07\xdd\xd4\xdc\x6c\xcb\xbd\x0e\x0a\xc8\x94\x3b\x98\xda\x18\x00\xde\x81\x34\xfa\x61\xed\x25\x4d\x9d\x79\xcb\x50\x7c\xdd\x73\x32\x83\x92\x60\x63\x85\x61\xc8\x5d\xef\xab\x92\xeb\x0f\x2c\xc5\xb3\xef\x1c\x27\xb1\x0c\x67\xb4\x27\xf7\xe4\x6b\xa8\x60\x98\x39\xc4\x82\x9d\xfc\x7c\xda\xa7\x93\x84\x52\xc5\xb1\x69\xd0\x4f\xc4\x3a\x44\xc5\x48\xb5\xd1\x8f\x00\x0f\x8a\xa1\xfa\xcf\x15\x67\x0e\xfb\x62\xb4\x87\x3c\x57\x13\xb9\xd8\xf4\x02\xd7\x3e\x01\x7b\x45\x68\x46\xf7\x17\x55\xe3\x66\xe2\x80\xcc\x3a\xeb\xf2\x51\x6f\xc8\x04\x74\x68\x0a\x1c\x20\x21\x23\x55\xaa\x85\x13\x9d\x27\xbe\x3c\x6c\x5c\xfe\xba\x05\x44\x4b\x2e\xe8\x8a\xb1\x86\x9a\x39\xd6\x31\x1b\x61\x9b\x93\xcd\x54\x83\x1b\x84\x5d\xe7\xc6\x30\xe7\x86\x9d\x74\x5f\x8f\x4b\x26\x9c\x97\xb4\xfa\xc6\xd0\x11\x5b\x1b\x85\x1c\x5b\x82\x56\x2c\x5a\xdf\x9b\xd5\xae\x56\xc3\x95\xaa\x57\xbf\x6d\xb7\xa2\x99\xc0\xd4\x52\xf6\xda\xb2\x76\x77\xac\x00\x89\x0a\x44\x0b\x95\x46\xff\x33\xf2\xcd\xb9\x8e\xa7\x74\x5a\x59\xb0\x23\x73\x57\x67\xae\x28\x0c\xdc\xf3\x50\x9c\xdf\xce\x7e\x12\xa3\x1e\xdb\x22\x78\x74\x31\x5a\xef\xef\x5e\xa1\x9d\x5e\xc3\xf3\xf3\xb4\x58\x53\x06\x39\x7b\x3d\x21\xc2\x1a\xba\x07\xa3\xcb\x41\xcf\x0c\x72\xc3\x9c\x3a\x4d\x6a\xfc\xab\xec\x16\xfa\x34\xbf\xad\x1c\x62\xf4\x42\xb9\xf0\x8a\x15\xaa\xcf\x2f\x7a\xa7\x97\x70\xfc\xbd\xb1\x55\x38\x0d\x74\x25\x18\x9e\x08\x84\xe1\x7e\x5c\x84\xfc\x25\x9c\x72\x7e\xfc\x5a\x48\x42\x96\x97\xc2\x0b\xdb\x0a\xe7\x19\xfd\x99\x3a\x07\xfc\x3f\x50\xfc\x9d\x41\xc2\xea\xe3\x9f\x85\xce\xd6\xe5\xe3\xd5\xb1\x6a\xdf\x20\x37\x7a\x2e\x14\xf3\x64\x0d\xe6\x4b\x70\x5a\x03\x13\xbe\x2e\x68\x6e\xc3\x91\x5f\x9f\x7d\xa9\x6b\xba\x79\x56\x7c\xaa\xf4\x33\xb1\x00\xad\x22\x85\x9b\x74\x4d\x0b\x2e\x8f\x70\xca\xe8\x8f\x8a\x41\x89\x9e\x43\x2a\x66\x79\xa7\x52\x95\xc1\xad\xaf\xab\x44\xcc\x9a\x7d\xf2\x09\xdf\xf3\x45\x9a\xc8\x42\x2b\x74\xee\xeb\xa4\x09\x78\xce\x03\xeb\xf5\xe4\x57\x7f\x69\x9e\xe4\x7a\x6f\x79\xcd\x4d\x1d\x16\x1c\xc1\xf6\xe4\x7c\x56\xa1\x95\x5c\xc4\xfe\x63\x45\xd6\xd0\x3e\x7d\x40\x5f\x57\x58\x6d\xac\x27\x2f\x1f\x5b\x54\xd9\x34\x37\x25\x4d\xed\x8f\x56\x75\x18\xb8\xa8\xfb\x58\x7e\xfa\x1a\x7a\xb8\xcd\xf1\x18\xa4\x3c\xd6\xc2\xea\xb4\x9f\x65\x97\x73\x4e\x6f\x73\x11\xe2\xc0\xbd\x19\xf7\xd2\x82\x9a\x40\xdd\xe3\xc0\x77\x25\x7c\xa6\x1d\xab\x86\xbd\x53\x0d\x2a\x90\xe4\xc3\xea\xda\x05\xc9\x7a\xd4\xfe\x3d\x99\x85\x31\x4d\xc2\xf5\x52\xe7\x7f\x38\x21\x0c\x68\xb5\xa7\x44\x3c\x77\x9d\x2a\x5a\x84\x3c\x4b\xce\xca\xa3\x9b\x72\x22\x0d\xb3\x2c\x2f\xbd\x45\x4d\x4a\x2f\x73\x94\x94\x5b\x02\xbc\x5e\xc8\x49\xd1\x77\xdf\x7f\xea\x3c\xcd\x9a\x1c\x35\x3a\x2d\x0d\x63\x0f\x13\xa3\x64\x7c\xf1\x69\x25\xb7\x75\x9d\xe5\x7a\x5f\x53\xf8\xd4\xb2\xd6\x58\x28\xe9\x3c\xdf\xd5\xd9\x39\x4d\xb2\x3a\x27\xa3\x81\x9b\x33\x8f\xa9\x51\x65\x0c\xeb\x79\x3a\x03\x35\xfa\xbe\x96\x2b\xd3\x19\x5a\xce\x76\x15\x02\xad\x8b\x3a\x92\x73\x1a\x55\x0a\x5f\x54\x94\xa3\x76\x9c\x4a\x6d\xaa\x70\xfb\x58\x80\x77\xa0\x94\xaf\x20\xc3\xe4\xe4\xb3\x3a\xcc\xdc\xe0\xdb\x9a\x2c\xa0\xae\xa4\x1f\x74\xf7\xc5\x62\xd2\x12\x21\x62\x56\x0c\x19\x8b\x2a\xce\xcc\x92\xfa\x62\x61\xa2\x8a\x0d\xf0\x57\x14\x8d\x3e\xef\x5f\x77\xee\x95\x41\x44\x37\x55\xea\x9a\x1c\x13\x59\x98\x9b\xe6\x30\x0c\x53\x5b\x56\xec\x15\xc2\xac\x64\x83\xa7\x14\x5a\x58\xfe\xd2\xc9\xef\xc9\x7e\xab\x4b\x76\xfe\x93\xc8\x9a\x39\xaa\x51\xaa\xa0\x05\xb5\x73\x15\x4a\x6c\xbf\xbc\x7d\x51\x17\x30\x91\xf7\x02\x5d\x05\x5c\x9c\xe8\x9f\x2d\xca\x75\xb0\x10\x1f\xb6\xa6\x6b\x9b\xd6\xc7\x4e\xd5\xe5\xd8\xac\x5d\xe4\x2b\xa1\x45\x12\x91\xac\x2e\x92\xd8\xfa\xd9\x39\xd7\x5a\x93\xea\x72\xa6\x47\x39\x2a\xb9\xc8\x0b\xf1\xba\x25\xa7\x7b\x5c\xd4\x0c\x2a\xde\xa4\xdf\x05\x37\x06\xbc\x9f\xa8\xee\xb5\x02\xe2\xc8\x67\x84\x8c\x21\x7a\xb2\x4a\x3c\x96\x2c\x10\x4b\x53\x90\x45\x17\x08\x73\x42\x9a\x60\xa0\xd7\xaa\xc0\xea\x80\x43\x6d\x38\xd4\x3a\x01\x4d\x56\x38\xd0\xf2\xd0\x49\xe9\x83\x3e\x59\xc6\xbe\xce\x64\x6f\x16\x7a\x81\xee\xcd\x9f\x27\x3c\xcb\x30\x17\x0b\xad\xb1\xa8\x7b\xb3\x5b\x15\x63\x11\x87\x2c\x21\x55\xd5\xd5\x17\xb7\x2a\x4c\xc9\x56\xd5\x1c\x4c\x06\x53\x17\x0c\x4b\xed\x3b\x6d\x53\xfc\xcf\xdd\x17\xe9\x6d\x18\x3d\x97\xf1\x16\xa8\x3e\x4e\x23\xaa\x9f\xfa\x49\x1a\x16\x5e\xc9\x67\xe1\xbc\x50\xaf\x18\x52\x9c\xe8\x43\x94\x4a\xcf\x73\x11\x3a\xa6\x12\xd1\x86\xc8\xe4\x8c\x78\x35\xc6\x65\xc1\x40\x33\x88\xc4\xbe\xb1\x6a\x67\xaf\xac\xbd\x33\x8b\x5d\x7f\xf6\x5d\x59\xc5\xac\x5d\x96\x95\x8b\xef\x3c\x25\x4b\x0a\x7d\x69\x0c\xa3\x5b\xb5\xb1\x57\xcd\xc6\x74\x2d\x45\x5b\xab\x53\xc1\x58\xab\x43\x9f\xd6\x3a\xf0\xad\xc8\xaa\x90\x5b\x3a\xd9\x15\x1b\xa8\x4b\x05\x6e\x5a\xf5\x6c\xda\x5a\x19\xcf\x6a\xa6\x21\x91\xa6\x26\xf7\x61\x28\x07\x5a\x15\x55\xb2\x79\xd9\xf2\xe9\xac\x58\x99\x75\xa7\x7e\x7c\x39\x69\xaf\xe0\xc0\x42\x73\x50\xe4\x75\xd7\x33\x62\x97\x5e\x42\x94\x86\x0c\xf8\x7e\x62\x62\x8e\xf7\xaa\xdd\x9d\x1b\xe1\xf9\xcc\x91\x9d\x7a\x3c\x48\x90\x61\x04\x0d\xb0\xf1\x3a\x49\x90\x38\x90\xdf\xc3\x44\xa0\x1d\xaa\x1d\xc1\x2b\x36\x5a\xea\xa4\x1b\xd3\xfa\xe1\xec\x1d\x8e\x92\x7e\x86\x25\x59\x43\x43\xde\xf7\x7b\x6a\x79\xac\xf2\x4a\x1d\xc0\x84\x84\xfa\x29\xa6\xe0\x6e\x53\xb9\xc0\x70\x76\xcc\xdb\x34\x98\x97\x7a\xbb\xa1\x68\xc5\x2c\x98\x9a\x5d\x13\x32\x37\xfd\x8b\xe6\xe4\x9a\x0f\x00\x0e\xf4\x6a\xb2\x03\x62\x9a\x7b\x1b\x94\x2c\x55\xa4\xba\x89\x2f\xf5\x31\xdf\xe8\x8a\x7e\xf4\xd0\x2c\x7f\x30\x89\x92\x9e\x51\xb0\xad\x6c\x11\x0e\xa1\x3c\x2d\x4d\xee\x38\x08\xf8\x89\x3e\xf8\xf5\xa5\x0f\x23\x86\x9f\x87\x40\x40\x15\xe3\xf8\x6d\xc9\xe9\x18\x38\x11\x06\x05\x09\x70\xc5\x42\x9d\x4a\xea\x08\x53\x2d\xe8\xb4\xf9\x9a\xde\x9a\x02\x66\x50\x4a\x38\x90\x24\x96\x8f\xcd\x8b\x1c\x72\xf3\x59\x59\x8e\x2e\xa8\x8b\x89\x10\xc1\xdc\xd0\x29\x33\x51\xa3\xac\xb9\xff\xa3\x15\x11\x29\xdf\x43\x2a\x11\x32\xdf\x68\xde\x62\xa1\x0b\x21\xd9\x87\x09\xe6\x3b\xfb\xa6\xf8\x96\x82\x39\x08\x1e\x37\x5c\x97\xdf\x6f\x2d\x3f\x00\x8e\x92\x75\x07\x7d\x66\x57\x00\x62\x51\x97\x9f\x2b\xd4\xa6\xcb\x81\x7d\x86\xf8\x79\x5e\x52\xda\xdb\x87\x96\xde\x0c\x28\x0b\x05\xe6\x1e\x96\x4e\x4d\x42\x16\x2d\x9e\x21\xcf\x4f\xed\x59\xe8\xb7\xee\x00\xb2\x29\x32\xed\x1a\x7e\x2a\xaa\x17\x7f\xe0\x96\x56\xe9\x9b\x68\x8f\xc0\x5d\xa8\x66\xf9\x30\xc3\x08\x57\x50\xe2\x59\x26\xc5\x4a\x4b\x52\x3f\xe6\xae\xde\xd8\x55\x85\x48\xd3\x21\x55\xec\xaa\xc9\x27\x55\x69\xbe\x93\x75\x0f\x20\xc0\x02\xee\x64\x11\x50\xda\x10\x9c\xd8\x9a\x9b\xa5\x89\xd8\xb2\x7c\x8a\x4d\x56\x38\x4c\xfb\x9a\x16\x2d\x11\x82\x82\x35\x24\x6c\xdd\xa2\x6b\xfb\xe4\xe1\x39\x2c\xd5\xdd\x01\xdd\x33\xaf\x83\x93\xec\xe8\xcc\x3c\x2c\x54\xe8\x92\x87\x8e\xae\xb5\xe2\xfd\x6c\xf2\xad\xce\xc3\x79\x25\xfd\x93\x40\xdf\x1f\x7e\x35\xcc\x3a\xf9\x60\x02\x20\x6b\xa7\x61\x82\xaa\x5c\x61\xce\xee\x98\x19\xd8\x23\x26\xbe\x8c\x22\x29\x68\x65\xce\xa8\xa8\xe2\x34\xa9\x79\xb6\x85\xee\x2e\xb7\x51\x97\x1b\x4d\xca\x99\x71\x01\x14\xe2\x64\x59\x40\x71\xdf\xb3\x93\x92\xdb\xae\x78\x3b\x09\x1d\x46\x20\xad\x59\x05\xe5\x48\xdb\xa6\x0c\x67\xb5\x9d\x99\xaf\xe3\x31\xbc\xbc\xbf\xd5\xe6\x16\x01\x63\x88\x85\x1a\x26\x01\x12\xc0\x16\x7f\xa0\x32\xda\x15\xc0\xb1\xb4\x71\xc5\xf9\x1b\xa4\x54\xd7\xca\x7c\xbf\xfa\xdd\x09\x9a\x5d\xb8\x06\xc8\xf5\x06\x69\x17\xef\x86\xc8\xfd\x4c\x6b\x4b\xac\x9a\xa7\x53\xa3\x4a\x04\x41\x0c\xb3\x89\xa8\x9b\xbe\x4f\xea\xa1\x50\x20\x28\x2d\x4d\xff\x76\xc4\x79\x05\xd1\x9f\xc1\xb5\xc6\x84\x78\x7b\xbf\xe0\xa5\x11\x1d\x8d\xc6\x8c\x8c\x62\x68\x4d\x79\x2c\xe5\x37\x2c\x06\xcf\x86\xfb\x17\xfe\xc7\xa5\x5f\xbf\xbf\x15\x7d\x7a\xf1\xea\xd5\xab\x17\x41\x53\x70\x71\x3c\xea\x25\x03\x38\xd9\xee\x56\xf4\xbf\xde\x7b\xf7\x45\x92\x35\x91\x8e\x7f\x85\xa6\x29\x27\x06\x81\xc0\xdf\x0b\x80\x0c\x59\x9a\x31\x0f\x63\xa9\x13\x3b\xea\xb2\x0a\xb7\xf8\x20\xff\xa3\x08\x2e\xe3\xd3\xf6\xf8\x1c\x25\x10\x6d\xd6\x19\x40\xdf\x8d\xfe\x16\x41\x3b\xf4\x62\x6d\x5d\x75\xd2\x19\x25\xac\x30\x06\x42\xe8\xe8\xb1\x7b\x71\xe7\xf2\x3a\x69\xd7\x59\x6d\x58\xe9\x9a\xaa\x95\x35\x6d\xe9\xb4\xaa\x3a\xc7\x7e\xae\x53\xa6\xf5\x39\xb9\x92\xe8\xf4\x2b\x6c\xa2\x41\xa8\x24\x2e\xd2\x7a\x03\xf0\x2e\x8c\xcb\x49\x05\xcc\x6a\xd9\x8e\x37\x2b\x93\x61\x6c\x69\x36\xe8\x1d\x80\xe2\x72\x42\xf9\x6f\x09\x7a\xdd\x37\xa7\x55\x2b\x70\xfa\xf4\xfc\x75\x71\x22\x2d\xbb\x30\x32\x68\x55\x66\xc1\xa2\xb2\xea\xaf\xa3\x03\xf4\x38\x93\xdd\x69\xed\x92\x25\x1a\x1b\xe5\x92\xbb\xe1\xea\xa0\x94\x0c\x9d\xcc\xa9\xa7\x02\x44\xa4\xf8\x9d\x48\x7a\x16\x3e\x3d\xd1\x67\x63\x61\x15\x89\x9b\x0e\x8c\x58\x31\x40\x1f\x55\xa0\xd1\x6e\xa9\xbd\x11\xbd\xe6\x26\x49\x25\x3b\xbe\x11\x5b\x65\xc5\xc4\x06\xef\xc1\x0e\xec\xad\x9b\x18\xef\xcb\xb0\x13\x95\x2b\xd0\xb8\xb7\x26\x60\xd9\x20\x7b\xac\x95\x6d\x97\xc7\x76\x41\x95\x6b\x69\x8b\xe7\x87\x04\xec\x2c\x88\x84\x48\x68\x1e\xbb\x50\x91\xb1\x69\x1d\x34\x5d\x45\x89\x4f\x3c\x2e\x60\x4b\xab\xf5\xab\x84\xdf\x4f\xbc\x3c\xf3\xe5\x2f\xa4\x5d\x5e\x9e\x4f\xe6\x92\x3d\x06\xbc\x22\xe6\x55\x98\xd2\x80\x86\x44\x8b\x77\xae\x1d\xcb\x1b\x7b\x79\x18\xa2\xc2\xee\xd2\x6a\x98\xe4\x95\x69\xd1\xab\x4a\x29\xbd\xa6\x06\x19\xc6\x5b\x11\x45\x40\x01\xeb\x9e\x42\xd5\xb2\x24\xf7\xc3\xa0\x66\x55\x8c\x8c\xae\xab\x8e\xe0\x5a\x45\xc8\x35\xd3\xc1\xc5\x10\xe6\x33\xac\x45\x4d\xe2\xef\x19\x25\x47\xc1\x44\x1a\x5a\xe7\x4b\xc6\x1e\xc7\x2b\xff\x12\x0c\x47\x09\x7b\xd9\x2d\xfa\x8e\x45\xc6\x82\x69\x77\x3c\x24\xcc\x09\xea\x20\x7b\x06\x27\xe7\xf3\x1a\x74\xb3\x7e\x9c\x72\x0a\xd2\x33\x92\xa3\xaa\x98\x7c\x3f\x1e\x0c\xc0\x81\xe0\x5b\x52\xa4\x3a\xba\xa9\x6e\x32\xec\x65\x07\x9c\xd8\xfa\x5b\x37\x15\x34\xd5\x67\xc1\x4b\x3e\x76\x73\x9d\x38\xa7\x66\x86\x08\x27\xb9\x5e\x6b\x20\x4c\x95\x60\x2d\x25\x1c\x61\x54\xda\xb6\x58\xd6\xa1\xcc\x2c\xa6\x68\xf5\x94\x8e\x32\xaf\xc6\x43\x27\x70\x38\x2b\x92\xf7\xea\x1e\xe7\xca\x64\x6c\x25\x9c\xad\x5b\xae\x8e\x5c\x0d\xa4\x34\xb6\xe7\xb4\xf2\x1a\x7f\xbb\xea\x08\x38\x85\xf1\x84\xd9\xa4\x89\x4e\x30\x66\x4a\x90\x06\x2b\x6e\x39\x97\x5e\x9b\xaa\x78\xf5\x15\xac\x9d\xc0\x38\x74\x0f\x61\x6d\xc8\xb9\x40\x2d\x30\xda\x79\x62\x25\x56\xef\x2f\xac\x36\xf1\x7d\x4a\x96\xbe\xd9\x3a\x9c\x62\xb4\xc1\x1e\xf1\x13\x14\x23\xa1\x33\xd0\xd7\xc9\x10\x44\xda\xcf\x55\x90\xd9\xe4\xa7\xd2\x4d\x77\x77\x5b\x3b\xa3\xec\x6a\x0e\x79\x7d\xc7\xa3\x4e\x22\xdc\xc3\x43\x31\x21\x68\xa7\x4b\x4c\x32\x83\x1d\xc0\xc7\x5f\xbd\xb4\xa5\xe3\xab\xcf\xdf\xc8\xf1\x7a\x7b\xe9\xc4\x98\xf1\x37\x74\x12\x46\x9f\x50\xab\x32\x8b\x95\x28\x94\x64\x9f\x50\xf4\x44\x8b\x47\xc8\xf7\xb3\xab\x6d\xf8\x1b\xe6\x3a\x26\x82\xc3\x22\x18\xa7\x90\x43\xc9\x92\x2b\x8a\x19\x77\xcd\x4a\x28\x86\x8c\x07\xa3\x30\x6c\x55\xe2\x6d\xc9\x0a\x21\xdc\x25\x94\x47\x10\xed\xc8\x44\xb3\x97\xda\xe1\xc1\xb8\x82\x98\x2e\x1e\x67\x30\x8b\x2e\x74\x2d\xbe\x94\x59\xae\xc8\x9f\xc8\x51\x71\x85\xfb\xc8\xc5\x29\xc2\xf2\x8b\x5f\xbd\xcf\xff\xc2\xbc\x20\xa6\x5a\x9a\x77\x85\x66\xed\x54\x87\x1d\x73\x92\xb4\x6a\x73\x93\x48\x03\x4a\x49\x83\x7f\xb7\xaa\x5c\xcc\x4c\x63\x4a\x37\x47\x8d\xbb\xa3\x78\x57\x21\xe0\x7f\x13\xd5\x49\x79\x64\xe5\x3f\x81\x28\x5d\x3d\x92\x70\xa8\x47\x64\x03\xd5\xf2\xa7\xd5\x5c\x5d\x0d\x02\xc8\x7d\xc4\x84\x0f\xca\x99\xdf\x00\xdd\x07\x35\xe3\x6a\xdc\x07\xe7\xf6\x92\x62\x50\xd7\x6d\x9b\x3b\xf4\xce\xd2\x0a\x4e\xc0\x28\x89\xdc\xd8\xce\x96\x56\x0e\xf9\xe0\x6e\xe9\xbd\xb4\x41\x56\x21\xc4\xf4\x59\xc9\x99\x99\xf9\xbd\x98\xa6\x45\xbc\x17\x50\xd3\x38\x8c\xbc\x69\x8a\x82\x33\x95\x5c\x74\x47\xa8\xcd\x8b\x17\xcc\xdd\xe3\x8c\x2f\xc2\x83\xe5\x9f\xf9\x58\x8c\x70\x68\x1f\x73\xda\x06\xad\x9b\xda\xf0\x87\xec\x99\x21\xd6\x1e\x28\xb5\xc3\x34\xdb\x12\xd0\x8f\x5d\x21\x5b\xfa\x8b\x7c\x7e\x35\x2d\xf6\xdb\xfd\x30\x69\x8e\x7c\x06\xee\xbd\x78\x74\xb9\x9b\x5d\x1d\x50\xc0\xa4\x0c\x75\x75\x94\x92\x71\x4c\xf4\x18\x53\x07\x0a\xe1\xa1\x78\x6f\xa4\xba\x0c\x27\xf5\xc6\x77\x25\xb9\x8d\xde\x12\x34\x3e\x97\x84\xf8\xf8\x1e\x42\x1a\x04\x33\x22\xa8\x2c\x50\x5a\xfd\x53\xe9\xd5\xe5\xc2\xd4\x1d\xd5\xe7\x51\xcd\x7a\xae\x05\x34\xff\xbd\xd4\xbf\x45\x6b\x38\x93\x9e\xd2\xd8\x62\x40\xe2\x7a\x50\x52\x55\xcf\x47\xc0\x5e\x48\x9a\xe7\x30\xd4\x9b\x04\x6b\x76\x35\x18\x56\x98\xb2\xe6\xc6\x76\xce\x99\xd8\x1b\x83\x22\x87\x24\x96\xfa\x10\xf4\xb8\xfe\x71\xc5\x4a\x6a\x64\x7c\xa2\x43\x58\x19\x93\xdd\xb4\xf0\xcb\xc4\xc5\x07\x06\x57\x05\xdd\x8a\x6b\x26\x93\xe7\xd9\x8e\x7b\x90\x51\xf2\x40\xca\x9e\x7e\xe3\x1c\x41\xb5\xae\x44\xf5\x1d\xaf\x64\xd1\x36\x37\x3e\xca\x46\x7b\x1f\x5b\xf5\xf2\x43\xe9\x5d\x6a\x4d\x8e\x76\x3f\x2f\x0d\x2d\xb3\x2b\x33\x49\xa1\xd1\x34\x14\xdb\xd7\xad\xb4\xb3\x91\x28\x1a\xab\x89\x67\xb9\xd8\x2f\xd5\xf0\x91\x59\xbf\xb6\x6b\xf5\x2c\x0f\x9b\xa7\x5b\x1e\xba\xda\x4e\x66\xa7\xbc\x4a\x90\x75\x05\x23\x83\x25\x94\x50\x93\xc3\xea\x13\xac\xac\xec\x78\xfb\x07\x57\xc1\x29\x50\x49\x8e\xee\x36\x54\x6f\xdc\xdc\x18\x26\xd9\x10\x90\xd8\xbf\x50\xc8\x11\xd6\x09\x4f\xc1\xb5\x21\xeb\x27\xe8\xdf\x2a\x6c\xc7\xdc\x45\x08\x68\x64\xdd\xdc\x28\x92\xb8\x0f\x3e\xc3\x25\xd6\x47\x07\x9a\x85\xa5\x5e\xd9\xf6\x9c\x6f\x8b\x81\xb9\x94\xec\xaa\xf8\xd5\x29\x2e\x5b\x2d\xbd\xe3\x64\x89\x83\x19\x42\xd9\xe1\xa2\x92\x8b\xb2\xd3\x9d\xd5\x84\x2f\x40\xef\x00\x3d\xe2\xae\x30\x15\xb6\x58\xd5\x5b\x03\xc3\xbf\x07\x64\xa0\xe5\xa1\x87\x4d\xce\x8c\x46\x1b\xd9\x50\x27\xd7\x4b\xe9\xba\x4a\x52\xc8\x73\xc9\xe5\xe5\x8f\x2a\xe1\xf7\xc8\x10\xea\x35\xea\x75\x7c\xcb\x18\x19\x71\x26\x45\x67\x1a\xd0\xac\x0c\xfc\x26\x0f\x01\xe9\xd2\xd2\x3c\x37\x42\xc6\xb7\x46\xdd\x37\x47\x49\x43\xc4\x41\x27\x55\x7b\x5d\x91\xfa\xd0\x3c\x6b\xa5\x5c\xad\x79\xaa\x7f\x91\xb4\xab\x75\x6e\x8a\xf5\xa9\x57\xe9\xc8\x91\xc7\xb8\x55\x9a\xd4\xab\x7f\x01\xc7\xf6\xc6\x0a\xad\xb6\x51\x34\x58\xaa\x55\x37\x58\xb3\x66\x6b\xbd\x13\x79\xf8\xfd\x3f\x5e\xdb\x9d\x5c\x3d\x30\xeb\x0d\x59\xf7\xa8\xdf\x51\x50\x17\xb7\xa8\x1d\x49\xcb\xb8\x6b\x80\x05\x29\x23\x5d\x6b\x61\x65\xa6\x9f\x52\x77\xb5\x5a\xb8\xac\x76\x1d\x3f\x41\xca\x75\x2f\x65\xbd\x1a\x99\x0d\xe7\xb1\x5e\xbd\xcc\x06\xaf\xed\x3a\xda\xe1\xa9\x22\xd7\x2c\x23\x60\xec\xbb\x35\x04\xc9\x1f\x50\x02\x13\x02\xb5\xa5\xc3\x57\xee\x87\xc1\x9e\xa3\x74\x00\x5d\xf0\x1c\x53\xd1\xd6\xf8\x97\x85\x2b\x08\x1c\x07\x63\x7e\x3c\xbb\x00\x0f\x00\x44\xa8\x52\x37\xc0\x35\x6f\x9c\xe3\xbc\x0d\x49\xfb\xa1\xf1\x60\xcf\x5f\x5f\xe0\x27\x01\xb1\xed\x7e\x55\xef\xb0\xe5\x96\xb5\x09\xdb\x24\x1c\x15\xa2\x04\xcc\x07\xac\x5b\x81\xca\x7c\xd6\x1d\x1f\xad\x02\x3c\xaa\x1c\x44\xcc\x08\xb1\xe7\x1d\xbf\x60\xfd\xcc\x6f\xa0\x89\xac\xed\x2a\x3a\x33\xde\xb6\xa8\xfb\xd6\x5d\x46\xe9\x15\x34\x81\x99\xea\x00\xb3\xca\xd7\x9a\x11\xfd\xc2\x6e\xa6\x5f\x53\xc2\x20\x69\x23\xee\x7d\x95\xec\x44\xd2\x40\x41\x78\x27\x81\x04\xea\x38\x0c\xb2\xc0\x56\x1c\xaf\xb4\x22\x2f\xc4\x6d\xaf\x2e\x94\xb5\x07\x25\x38\x5c\x49\x58\x30\x44\x04\xe3\x7c\x65\x76\x91\x40\x82\xc4\x17\x0a\x4d\x74\xad\xff\x96\x40\x59\x5b\x47\x7b\x69\x82\x52\xb6\x3c\x9f\x7d\xe6\x40\xd9\xef\x44\x3b\x2d\x1e\x45\x17\xf2\xd7\x2a\x6b\x19\x64\x57\x6d\xb6\x15\x73\x9f\x22\x9f\xda\xfa\xdb\x2c\x1d\xc8\xa9\x82\x20\x6b\xe2\x9e\x01\x51\x48\xab\xf0\x86\xe9\x1b\x08\x4d\x5c\x82\x0a\x5f\x80\x5b\x1c\x4e\xfc\xf2\xe8\x84\x2b\x3d\x9c\x0c\xeb\x0e\xe3\x47\x6f\xc4\x2f\xdb\x3b\x23\xf9\x39\x2a\xfd\x7c\xd4\xba\x4e\xe3\x32\xe8\xbf\x3c\x69\xc9\xe4\xa8\x1e\xa8\x5f\x2f\x13\x10\x4c\x99\x54\xed\x70\xae\xe5\x9a\x2a\xde\xcd\x4b\x43\x1d\x60\x60\xb7\x8e\x5d\x56\xdb\x64\x0f\x15\x7e\xfc\x4c\xef\x06\xf3\x6d\xe9\xdd\xd4\xa6\xdd\x5a\x72\x25\x72\xa7\xca\x51\x75\x84\xf3\xdd\xc6\xb1\xb1\xbe\xb1\xce\x6b\xcb\x51\xe4\xea\xba\xc9\xb3\x60\x38\x03\xbb\x8d\xad\x75\x69\x3a\x53\x77\x65\x61\xc6\xf6\x54\xc9\xdd\x4d\x5d\x1b\x79\x56\x6a\x82\xa8\x25\xaf\x8a\x02\x01\x5c\x63\x0b\xda\xec\x46\x56\x5f\x1b\xec\xfc\xc8\x7b\x66\x46\xd6\x9d\xd7\x8e\x9c\xb3\xfd\x1e\x56\x50\x57\x7d\xb0\x22\x94\x2a\x5c\x6d\x09\xa5\x16\xbf\xe5\x89\x85\x7f\x01\x4e\x9a\x86\x91\xf2\x52\x28\xca\x36\x05\xce\xd9\xb7\x6d\x60\xb6\x8b\x3d\xb5\x3f\x77\xd0\x10\x6c\x23\xc5\xea\x3e\xac\x05\x04\x8b\x1b\x35\x76\x60\x60\xac\xd4\xec\x0d\xbe\x1a\x97\xce\x0b\xd3\xb1\x15\xb9\x8a\x00\x73\xe6\x01\x21\xd8\x7d\x78\x3a\xd8\x4e\xc7\x9a\x7a\x35\xe9\x44\x1f\x11\x82\xb6\xf3\xb3\x3a\xd5\xed\x6b\x4e\xbd\xfa\x1c\x61\xbf\xe5\x8c\xc2\x45\xeb\x8c\x4f\x2d\x87\x10\x54\x9e\x5d\x75\x50\xc1\x84\xda\xdd\x92\x7c\x97\x3c\xd4\x2d\x2f\xc6\x26\x39\xfa\x45\xbc\xe6\x1d\x77\xb5\xb4\xa0\x68\x19\x9e\x88\x92\x16\x2f\xcc\x23\x33\xb0\x97\x9a\xba\xc8\xee\x73\xf1\xe8\xcd\xb3\x6e\xd2\xb3\x3f\x1a\xa4\x60\xb4\xdb\xb5\x5b\x5c\x1e\x86\xb6\x49\x87\xa3\x1d\x84\x25\x00\x5a\x13\x1a\xaa\x48\x15\x74\xff\x69\xde\x28\x11\x92\x67\xdc\xa8\xde\x58\x2d\x76\x23\x12\xe6\x08\x33\xfa\xfe\x9f\x65\xe7\x5b\x21\x2a\x6b\x36\xaf\xdf\x84\x43\xe5\x9a\xe9\xd9\x33\x1d\x9b\xa3\xf8\x2b\xff\xa5\xca\x1c\x84\xd1\xb0\x46\x81\xba\xbf\xe7\xde\x51\x1b\xe4\x5d\x19\x8a\x83\x6e\xec\xb2\x10\x16\xcf\x6b\xa6\x1b\x64\x03\x54\x8d\x83\x81\x84\x1a\xfb\xab\xad\xba\x6b\x49\x5a\x0d\x4a\xbb\xa1\x53\x26\xb9\x27\x6b\x04\xfc\x1a\xcd\xb9\x53\x0a\x5f\x87\xad\x3d\x14\xe3\x8b\x65\xd2\x42\xbb\xf6\x47\x08\x8a\x1f\x6f\x6e\x74\xe3\x7c\x7f\x27\x8b\x47\x9c\xf8\xea\x01\xb9\xd6\x83\xb7\x66\x1e\x74\xd5\x84\xfd\x2a\x31\x33\x1e\xa4\xbf\x8f\x45\x87\x55\xaf\x4c\x6e\xb8\x35\x2c\x4a\xb5\x0f\x39\xae\x45\x4d\xf5\x63\x59\x57\x9b\x08\xc7\x43\xd1\x7b\x8f\x32\xd2\xda\x25\x0e\xf5\x84\x1c\x36\x08\x1e\x96\x33\x16\xb9\xce\x4a\xed\x64\x75\xc4\x07\x86\x4d\xfb\xd9\x20\xc5\x68\xae\xef\x68\xcf\xcb\x7f\x10\xbd\x39\x6a\xb7\x47\xc9\x15\x37\x55\x32\x8a\x59\x81\x1c\xc9\xe8\x22\x20\x27\x88\xc6\x72\x75\xf9\x69\x87\x8d\xb2\xae\xa5\xdd\x6e\x99\x0d\x93\x51\x6c\x54\x80\xb6\x3b\xbf\x33\xe0\x81\x02\xa5\x3e\x9a\xf2\xc7\x79\x70\xb1\xe2\xa1\xeb\xee\x98\xbc\xb9\x70\x05\x40\x56\x82\x6b\x6c\xa7\x83\xdd\x8c\x5c\xcf\x11\xc4\x4e\xe4\x11\xda\xec\x29\xb2\x8d\xaf\xef\xa0\x5d\x78\xe7\x8d\xa0\x14\x06\x72\xbb\xd5\x22\xc0\x4f\x79\x2d\xbc\xea\xe7\x5e\x75\x78\xbb\x69\x15\x4d\x38\x03\xcd\xad\xe3\x98\x18\x48\x71\x47\x28\xed\x7a\x37\x95\xef\x8e\x8f\x64\xf5\x9b\x89\x39\xf6\xb7\xe0\x45\x2d\x5b\xdf\x2a\xf1\xcb\xce\x7a\xbc\x42\xcb\x11\xdb\x58\x0d\x22\x0f\x9c\x97\xe5\x32\x28\x7e\x96\x81\x73\x77\x8a\x67\xb9\x07\x35\xb3\x5d\x17\xfc\x2f\x4b\x9d\x15\x88\x30\x34\x7b\xcb\x10\xf5\xd4\x89\xd0\xac\x2d\xf8\x4a\x1b\x6b\x38\x9d\x3f\xa8\xf2\xab\xce\x71\xeb\x7c\x21\x2f\xd5\x09\x85\xc4\x59\x9e\x8d\x5e\x7f\x31\x13\xd5\xf7\xe5\x40\x00\x3f\x1e\x56\x27\xdd\xf0\xee\x0e\xdf\x23\x87\x8c\xf8\xf9\x0c\x5b\xc1\x77\x1a\xb0\x06\x05\xe2\xff\xc3\x5d\xf3\xab\x29\x96\x6a\xba\xc7\x1e\x15\x3a\x30\x3e\xdc\x7c\x34\x1e\x78\xe5\x14\xec\x76\x90\x0e\x6b\xd0\xe6\xf2\xd8\x19\xd5\x78\xbb\xc7\xb1\x7e\xec\x2c\x3c\x27\x78\x77\xf4\xd3\xbf\xfe\x39\x20\xdb\xbc\x79\x24\xc3\xb4\xde\xf1\x82\xc2\xeb\xc6\x63\x8d\xb2\xeb\x90\x53\xe1\x64\xcd\x9c\xcc\x21\xa7\x03\x74\x7b\x8e\x8d\x06\x35\x6f\x28\x35\xeb\x07\xa8\xdb\x61\x4b\x33\xaf\x9a\xf9\x7a\x93\xd5\x6f\xb4\x71\xf0\x67\xdc\x2d\x5a\x55\xa1\x38\x50\x7a\x25\x59\x77\x9f\x13\x48\xdf\x8a\x4d\x66\x35\x31\xd2\x93\x55\x33\xd5\x6c\x72\x8d\x91\x2d\x5b\xc1\xda\x7b\xdd\x4b\x8b\xf6\x5e\x87\x58\xad\x0a\x44\xba\xa3\xd8\x14\xe6\xa8\x66\xfa\xba\xa1\xc3\x9b\x0a\x28\x8c\x68\xf9\x4f\xad\x75\xd8\x55\x37\x6a\x17\xd4\xb0\xc3\x51\x92\x1f\x0c\x3a\x60\x3d\x6c\xe7\xf9\x3e\xf9\xf8\xd2\x93\xd6\xfa\x30\x3a\xd0\xe7\x5b\xea\xfb\x4b\x54\xc3\x29\xfd\x7d\x82\x9e\xa6\xf9\xf3\x1a\xcd\x44\x2f\x10\x70\x71\x92\x46\x45\xc4\x5f\x43\xd0\xbb\x48\xb4\xd8\xa1\x86\x55\xf1\xd8\x64\x91\xc1\xfd\xbc\xd8\xbc\xc2\x1a\x18\x68\x26\xc1\x72\x76\xee\xde\xca\x9a\xc4\x02\xc1\xe9\x2d\x5f\xfc\xba\x53\x72\xe1\xdd\x98\x00\x4e\xd0\xb8\x6c\xb0\xb3\x68\x74\x82\x98\xbd\x11\x82\x5f\xc0\x07\x0d\xce\x1f\xe4\x78\x86\xd5\x64\x99\xf5\x7e\xa8\x43\xcd\x59\xb9\x2c\x76\x05\x24\xd1\x60\x4f\x45\x96\xc0\xae\xd7\x78\x22\x7e\x9e\x01\xe6\x13\xe6\xab\xbb\x0a\xfb\x2c\x6a\xee\xe3\x3f\x60\xf7\x5b\xe7\xbb\x45\x87\x45\x04\xf3\xfb\x48\xad\xbb\x48\xfb\x89\xcf\x9f\x2e\xf0\xa1\xd8\xee\x6f\x0e\x4d\x19\x8f\xc0\xf3\xb5\xbd\x97\x8d\xb2\x71\x91\x0e\x30\x6e\x01\x8a\x4d\xde\x40\x6f\x99\xb7\xe5\xe7\x3c\xd4\xa9\xaf\x84\xac\xd1\x41\x7b\x4c\xf5\xcd\x4c\xbf\x45\xc8\xf8\x83\x8f\x9b\xa2\xec\x0e\xed\xc1\x8a\xac\x88\x7b\x32\x14\x58\xfa\x3b\xe4\xcc\x72\x17\x4b\xa5\x2d\x4c\x64\xcc\x13\xf1\x02\x0a\x0e\xc3\x03\x64\x3b\x45\xac\x96\xdb\x25\xcb\x00\x39\xe7\x34\x75\x1b\x66\x58\x80\xb6\xdd\x53\x97\x3d\x1e\xb6\xe1\x00\xf1\xae\xb5\xa7\xe0\x09\x71\x0e\x04\x92\xda\xcf\x8d\x2f\x52\xc7\x71\x1a\x51\xab\xb2\x22\xd9\x52\xdd\xd8\x7a\x7b\x6e\x5a\xb4\x86\x3d\x42\xdd\x88\xda\x95\xb2\xf6\xf9\x81\x5e\xad\x4b\xb3\x82\xe3\xca\x7d\xee\x27\xf1\x70\xfd\xdb\xc4\xe0\xa6\x56\xcd\x90\x38\xd4\xea\x3b\x59\x7b\x8c\xb4\x2b\x5e\xc0\x14\x70\x7c\xae\xbe\x18\x1a\xc1\x2c\xda\x33\xef\x82\x5d\xeb\xba\x94\x42\x50\xce\xf8\x78\xfd\x9d\x64\x3b\x7f\x9b\x74\x8a\x5c\x52\xf1\x72\xe2\xe1\xa3\x15\x5d\x77\xb2\xac\xc8\x8b\x91\xea\xaf\x04\x41\x0c\xcb\xc4\xeb\xa9\xec\x85\xf3\x71\x95\xa7\x04\x08\xba\x9b\x27\x4a\xaa\x11\x2a\xb7\xf2\xa7\xda\x07\x46\xe6\x0c\x1a\xd7\x25\xf1\x7d\x28\xf5\xab\x96\x34\x1a\x77\x8a\xb1\xc2\x9d\xb5\xeb\x52\x7b\x7c\xef\x12\xd4\x0f\x2e\x17\x66\xdb\x8d\x23\xd5\x81\xcb\xca\x81\x3a\x71\x67\x3f\x59\x77\x4d\x6f\x41\xe3\x73\x8c\xd5\xb0\xaa\xe6\xa1\x86\xa3\x6c\x37\xed\x81\x2f\xc8\xce\xb8\x73\x39\x29\x20\xed\xdf\x7e\x1b\x5d\xc1\x1b\x06\xfd\x40\x7a\x45\xbf\xc0\x5e\xd1\x3b\xaa\x57\xf4\x21\xf4\x72\x38\xad\x8e\xba\xce\x22\xc6\x30\x84\xfa\xc1\xde\x7e\x2b\x62\x0f\x9c\x89\xe1\x9c\x1c\x59\x46\x89\x06\xa3\x36\x2b\x2f\x18\x61\x81\x64\xd3\xf0\x72\x25\x77\x60\x45\x97\x51\x87\x64\x40\x19\x43\x5c\x61\xe7\xa0\x83\x6e\xf0\xe5\x93\x44\xd4\x32\x54\x27\x61\x8a\x04\x0b\x0b\x01\x33\x85\x64\xb4\xf5\xf6\x5b\xf6\x48\xbd\x38\xc7\x91\x88\xda\x59\x18\x50\x6a\xfc\x6a\xe9\x1b\xb8\x01\xb7\x2f\x51\x1b\xdd\x59\x13\x99\x23\x17\x8f\xd6\x74\x1a\xc6\x88\x48\x74\x2f\x48\x09\x7a\x43\xa3\xf1\x9a\x65\x72\x27\x37\x90\x70\xb2\xa2\x33\xaf\x30\x87\x02\xbd\x68\x6b\xc2\xef\xac\xe7\xa3\xf4\x3f\xfd\x78\x10\x43\x9a\xef\x18\x03\xed\xee\xd1\x79\x81\x91\x42\xbc\x97\x59\xcd\xfe\xc4\x55\x3d\x85\x55\x42\x64\xc6\xa2\xd1\xc1\x1d\x53\xfb\xc9\xd4\xc5\xf0\xb2\x73\xa6\x25\x6e\xe9\xee\x46\xf0\x96\x9f\x44\x9e\xeb\xda\x61\xb5\x7c\xc7\xba\xcd\xca\x2a\x4b\xd4\x8e\x05\x96\x80\x7a\x92\xbe\x73\x1d\xbf\x60\xb0\x32\xb5\xa8\xa9\xb3\xc3\xcb\x40\xb1\x9a\x03\x87\xbe\xb1\xb5\x2d\x82\x5a\x9b\x4b\xb2\xd3\x28\x58\x05\x1c\x0a\x34\x4a\x1d\xf1\xb9\x56\xd2\xd2\x0c\xbd\x6c\x2f\x15\x1d\xc5\xaa\xf8\xfa\xf5\xa7\x65\xce\x95\x50\x4e\xe2\xa5\x5c\xa6\x5b\xd2\xf9\xa5\x16\x3a\xe7\x45\x35\x10\xae\x65\x1f\x95\x81\x85\xaa\x07\xba\x9b\xc7\xd5\x03\x84\x34\x6f\x5b\x17\xaf\x6d\x26\x56\x4b\x5c\xc8\xa4\x0e\x22\xa0\x3f\x01\x45\xb8\x2f\xd7\x3b\x09\x5b\x57\x1c\x85\xc0\x84\xfc\xea\xf9\xfc\xc1\x9b\x14\x72\x7f\xb4\x29\x3c\xb8\x69\xf0\xa5\xef\x33\x3a\xd3\x8e\x10\x6e\x01\x1d\x37\xfb\x70\xe8\x36\xbc\x2c\x23\xb6\x9e\x42\x2f\x6d\x7d\x2f\xbc\xea\x92\x65\x8c\xbc\x48\x95\x0c\x93\x5d\x1d\xb0\x3d\x23\xbc\x3d\x37\xed\xee\x91\xf8\xdf\x90\xab\x6c\xc9\x99\x47\x42\xd1\x7f\xf7\xb4\xad\x22\xe0\x2f\xfc\x30\x94\xd5\x95\x55\x31\x56\x0b\x3f\x47\x9c\xed\x0b\xd9\x94\xae\xb7\xe5\xee\x11\xf2\xe7\xa2\xa7\x7c\x1d\x68\x79\x69\xcf\xbc\x0d\xd6\xf9\x12\xac\xda\x24\x39\x77\x91\xc3\x90\xbb\xc3\x4a\x3e\xdb\xc3\x72\x5a\xeb\xb4\x86\x1e\xdf\x68\x9a\xc9\x5b\x98\xc6\xcd\x41\xe7\x3f\xd6\xa2\xef\xe0\x50\x84\xbe\x71\x2c\x07\xfd\xe2\x2f\x55\xe7\x7d\xfc\x39\xec\x26\x41\xb1\x74\x0a\xc5\x22\xa2\x5d\x77\x55\x75\x3a\x21\x1a\xa9\xc9\xcd\x8d\x5a\x38\x8b\xa6\x9f\xb4\xc7\xdd\x3f\x97\xba\x62\x2a\x7d\xc1\x42\xfa\x89\x67\x5e\x99\xd8\x96\x27\x6a\x07\x05\xf4\x73\xbf\x82\xbe\xd3\xa2\xb6\x9e\x3a\xd9\xba\x18\x57\xaf\x7b\x06\x0d\x08\x9a\x7c\x49\x69\x4c\x2c\xa6\x11\x48\x4a\xe8\xea\xf6\xd7\xa3\x36\x3c\xa2\x7d\x7a\xf4\x93\x53\x6d\x97\x7e\x4a\x06\xc0\x3d\x3a\x24\x18\xad\x64\xf4\x75\x55\x10\x89\x73\x22\xd5\x8c\x33\x6b\xac\x12\x7b\x56\xb4\xf2\xeb\xf4\x0c\x66\x1c\xa0\x4f\xfb\x59\x4e\x4c\xca\x92\x53\xeb\xc9\x87\xa1\x94\xd3\x55\x03\x1e\xca\x8f\xa8\x39\xef\xba\x23\xb1\xbc\xa4\xbe\x38\xad\x86\x71\x9e\x5f\xcd\x46\xc8\xfa\x4e\x10\x3c\x9e\x08\xa7\x66\xb7\x45\x4e\x0c\x0b\x9c\x95\xff\x48\xaa\x00\x49\x2f\x16\xb2\xc3\xf2\x41\x14\xc5\x28\xdd\x19\x83\x0b\x23\x9e\xc6\x1f\x19\x69\x3c\x50\x48\x45\xd4\x56\x33\xfb\x32\x4d\x87\x7c\x3c\xaa\xed\x83\xea\xca\x33\x7e\x81\xb7\xab\x7d\x21\xda\x29\x3c\xd9\xd4\x0e\x7d\x92\x8e\x54\x63\xcd\x2b\xae\x76\x52\xcb\x40\xea\xf9\xd0\x63\xa2\xbe\x73\x83\xa7\x97\x0c\xd1\x07\xba\xdf\xce\xe3\xed\xf7\xf2\xe8\xe7\xdd\xe8\xd2\xcf\xe5\x43\xde\x2f\x86\x6d\xb2\xa0\x58\xb0\x77\xe9\xbd\x0f\x3f\x58\x0b\x8c\xa0\x3b\xc2\x0b\xf5\xb8\x5e\x05\x1a\x68\x81\x80\x83\x2d\x70\xa3\x16\xf4\xd0\x03\x6a\x17\x50\xdc\xfe\x8e\x31\x0a\x45\x1f\xbe\x7b\x29\x62\xb7\xdb\xa7\x4b\x27\x66\x97\x47\xbd\x9c\x0e\xa1\x57\x1b\x72\x8a\x98\xba\x19\xda\xe9\x54\xcc\x93\xb8\x6c\x0a\xf1\x86\x7d\xa9\x61\x35\x30\x83\x7f\x52\x32\xba\x92\x76\x92\xea\x0b\xfa\xe0\xe7\xef\x11\xfb\xf6\x84\x04\x32\x6f\xb9\x58\xad\x68\x94\xec\xa5\x54\xe4\xd4\x5e\x78\xc9\xd5\x94\x38\xa3\x3d\xa1\xd9\x49\xd0\xc4\x69\x00\xaa\x48\x87\x94\xb7\x94\x9d\x52\xf4\xb5\xd5\x15\x3f\xb1\x65\x06\xcf\x79\x6e\x7d\x14\xe7\x31\x92\x47\x2b\xba\x79\x8c\xe5\xdc\x60\x5f\x71\xf5\x5b\x11\x97\xb1\x6a\x5d\xac\xac\x75\x98\xe8\x90\x9a\xd6\x9e\xd4\xe3\x00\x7f\xc2\x69\xac\x9d\x9c\x7f\xed\xb1\xda\x84\xd7\xab\x3e\x83\xeb\x52\x35\x7b\x18\x37\xda\xb7\xf9\x18\xeb\xa3\x3f\x16\xe7\xf7\xea\x13\x9f\x13\xd1\x88\x8b\x07\x8a\x45\x1f\xb4\x92\xde\x77\x9b\xe5\x9e\xf1\x70\x18\x30\x1d\x4b\x92\x59\x2b\x10\x8b\x36\x6f\xf5\xba\x42\xcf\x4b\x17\xb4\x3c\x47\xd7\xda\x5c\x69\xab\x3a\x07\x29\x23\x7f\xcb\x76\x77\x7b\xe9\x20\x81\x82\xb0\x5c\x96\xe4\x09\xda\xb3\xe6\xf4\xc0\x31\x46\xda\x0c\x94\xe6\x88\x2d\x40\xdd\x8f\xea\xf0\x3d\xd2\x9b\x59\xc8\xe2\x11\x57\x51\x98\x00\x73\x6d\xc2\x84\x97\xb7\x80\x63\xc7\x87\x76\xa2\x71\xf9\x44\x0f\x3c\x1a\xa3\xf6\x75\x54\x2f\xe6\xce\xc4\x48\x83\x6a\x46\xb8\x16\xa7\x33\x2d\xff\x7b\x59\xb1\x93\x17\x8f\xcc\xed\xda\x0d\x48\x7a\x01\xe3\x3a\xca\xb2\x02\x82\x08\xf7\xed\x92\x2f\xb6\x75\xa8\xce\xb1\xcd\xc0\x10\x38\xde\x74\x30\xff\x84\x3d\xda\x3d\xa7\xbb\x49\xd0\x41\x86\x39\xbf\xd4\x22\x8f\xa5\xce\xb3\x79\x20\xfb\x74\xcd\x0a\x3a\xa3\x74\x18\xcc\xef\x67\x91\x1b\xeb\xa8\x21\x91\x5c\xce\x6f\xb0\xf9\xcc\x17\x5e\xfc\x6a\x49\x11\xd7\x5c\x65\x7a\x05\xde\x10\x90\xd9\xd1\xef\xab\x82\x44\xf9\x96\xc2\x6e\x4a\xf6\x08\x0e\x9f\x6a\x7e\x0e\xb0\x75\xe6\xa3\xc3\xee\x9a\x9f\x6b\x77\x6c\x37\xca\xf3\x1e\x41\xd4\xa5\x4b\xef\x06\xdf\x81\x69\x22\x81\x03\x2f\xa0\x11\xee\x4c\xf2\x02\x40\xb5\xf0\xbd\x51\x92\xbf\x68\xf7\xb1\x6e\xd4\xff\xb9\x66\x98\xfc\x77\xbd\xb4\x48\x5e\x7d\xd1\x41\x59\x29\x66\xdf\x08\x9f\xa9\x04\xfd\x5a\x94\xde\xbb\x7d\x22\xf1\x1c\xd6\xce\x71\x6f\xf4\x8a\x67\x78\xe9\x9c\x9f\x20\x18\x7d\xae\x31\x9d\xc6\x40\xfa\x12\x3d\xee\xd0\x47\x18\x9a\xb3\xf0\xd0\x85\x76\x2b\x75\xb9\x89\x99\x38\xcd\xc9\xb6\x21\xff\x0d\x0d\xc2\xee\x34\x8a\x59\x2d\xb0\x90\x57\x69\x12\xe1\x10\xbb\x5a\x2e\x84\x5d\xaf\x63\x51\xf4\x59\x50\x55\x74\xa9\x92\x4e\xf9\x31\x2a\x27\xe1\x39\x4d\x09\x7b\xbb\x74\xd2\x68\xf0\x90\x78\xa8\xe0\xb0\x08\x0c\xdc\x8f\xa5\x0e\xed\xb7\x79\x0e\xcc\x32\x12\x3e\x2e\x66\xc6\xc8\xac\x10\x2b\x4e\x26\xf6\x79\xb1\x53\xe4\x1a\x7c\x96\x89\x3d\x78\xc9\x31\xcd\xd0\x0c\xca\x41\x08\x89\x5a\xda\x3d\x72\x52\xf9\x16\x8d\x51\x76\x16\xb5\x8a\x5e\xcd\x41\x91\x79\x52\x68\x19\xa7\x79\x20\x06\x87\xa9\xce\xad\xfe\xd4\x08\x44\x7a\x40\x49\x8f\xbb\xc2\xe7\x53\xcb\x7c\x6e\x35\x2f\x1e\xe4\x77\xe3\x64\xac\xd6\x91\x0c\xf6\xe0\x35\x7d\x25\xc4\xbd\xb4\x72\x3f\xe0\xe4\xb7\xc8\x1a\x25\x90\x48\xd9\xfa\x50\x5f\xae\xa8\x57\xc8\x26\xca\x45\xec\x34\xb6\x0b\x64\x55\x15\x70\xfc\x09\xbc\xba\x05\x29\x16\xef\xd1\x78\x12\x4c\xb4\x9f\x38\x28\x8e\x07\xa8\x93\xd7\xdd\x56\xf2\x0e\x15\x96\xc9\xfc\x37\xf8\xce\x5f\xbf\xfb\x6b\xbf\x7d\x08\x79\xf2\xa7\x7a\xa4\xcb\x0d\x56\x63\x58\xf2\x4a\xe3\xad\xa3\xcb\x59\xad\x07\x86\xd7\x27\xb0\xdb\xb9\x75\xc9\xf4\x70\xd6\x3b\x53\x7a\x49\x7e\xdf\xb8\x1b\x0f\x0b\xca\xa9\xa0\x3e\x47\x6c\x0a\x03\x0a\x3a\xb5\x76\x4a\x6d\xd1\x27\xe0\x4a\xdc\xd3\x8d\x39\xfd\x22\x2a\x05\x6d\x0a\xad\x97\x35\xd0\x4d\xd9\x55\x46\x42\xcf\x5d\x24\x9d\x27\x14\x46\xb0\xde\x33\xb9\x4e\x78\xd8\xc6\x96\xdc\x7f\x38\xca\xae\xa4\x5d\x8e\x12\xd2\x21\x07\x37\x49\x6d\x54\xd3\x57\xfa\xac\x79\x8a\xc7\xfe\xc0\x66\xd3\xea\xa1\xa7\x01\x41\x14\xe1\x81\xd0\xeb\x8c\x9e\x9c\x8f\xfe\x00\xe9\x50\x6f\x0f\xf9\x55\x1d\x0c\xea\xc6\x34\xfb\xd9\xeb\xe8\x7b\x22\x6b\x1e\x98\x39\xd9\x7b\xa6\xfe\xc6\xe4\x04\x7b\xe9\x6e\x52\xb5\x20\xe2\x94\x8f\x10\xfa\x16\x82\xef\xcc\x51\x92\x96\x95\x07\xda\x2f\x8a\x61\x4e\x19\x82\xa1\xb4\xc4\xa5\x48\xe8\xbb\x7f\x4e\xeb\xcf\x54\xdd\xac\x33\xe3\x30\x45\x5b\xf4\x9a\xf7\x07\x47\xca\x5c\x9d\x08\x0f\xd6\xa3\x93\xb1\x98\xeb\x80\xf0\x62\x61\x2b\x66\xba\x20\x30\xf9\xbc\xd9\x67\x2e\xd8\x66\x6f\x24\x34\xcc\xc6\x38\xce\xcd\xbd\xcd\x4d\x1c\x1e\x78\xbd\xa5\x87\x78\x61\xe8\x1d\x16\x05\x9c\xd6\x3a\x52\xa0\xd5\x19\x29\x26\xe2\x2d\xf5\x1f\xc7\xf3\xd8\x7c\x77\x10\xa1\xfc\x98\xab\xe7\xdc\x1d\x83\x0c\xfc\x4f\xb8\xaa\x3f\x10\xe0\xeb\x3e\xd5\x80\x02\x96\x27\x4c\x1b\x4c\xc7\x95\x8d\xf3\x4a\x3c\x42\xa5\x65\xf2\x69\xd2\x19\x07\x1d\x83\xea\x45\x1c\x33\x4b\x46\xfa\x0b\xcb\xef\xd8\x44\x5f\x88\x25\xe4\x73\x82\x5c\xd3\xad\xae\xfa\xaf\x6c\x5f\xdd\x57\x41\xac\xe7\xcd\x52\x97\xaf\xc4\xb8\xf3\xf0\xb2\xab\xc4\x36\xb8\x6a\x1d\xea\x21\x01\x12\xf4\x4f\xf5\x34\x90\xe2\xac\x8c\xfe\x90\xde\x8e\xb4\x60\xff\xd8\x7e\x39\x10\xb8\x63\x9a\xd4\x6c\x5b\x3e\x67\xc3\xed\x5f\x97\x4f\x5b\x76\x7b\x54\x66\x98\x2a\x3d\xce\x0a\x4d\x71\x71\x7c\x60\x5f\x18\x0e\xda\xd7\x60\x84\xdc\xf6\x3e\x02\xe6\x2d\x83\x48\x1e\xce\x7e\x84\x66\xba\xa5\x53\x66\x38\x14\xe8\xe4\x64\x89\x8b\x2e\xe4\x92\x20\x6e\x60\x2a\x48\x12\xf2\xe3\x7c\x59\x14\x66\x14\x0c\x99\xc2\x24\x0c\x98\x91\xfc\xc2\x47\x2f\x7f\x9c\xeb\x52\x05\x00\x76\x66\x9a\x8f\x5e\xf9\x58\xcd\x74\xe1\xa3\x57\x3f\xe6\xb9\x28\x11\xa6\x33\x97\xac\x97\xa5\x58\x6b\x8d\x2f\xe5\xa3\xce\x4b\x17\x70\x80\x57\x68\x00\x2e\x5c\x23\xa3\xbf\xec\x8f\x4e\xa7\x81\x26\x99\xed\x4f\x4a\x53\x45\x7c\xe6\x85\x6f\x38\xb3\x90\x05\x87\x26\xca\xff\x8a\xd6\x0c\xe3\x7d\xa2\x07\x74\xca\xa0\x7f\xe2\x9d\x73\xe9\x54\x67\x60\xb4\x67\xd7\xee\xb7\xe7\xc2\xe2\xea\xce\x54\x32\x93\x3a\x18\xf0\x9f\x93\xb5\xdb\x11\x25\x14\xc8\xff\x6c\x3b\x08\xd4\x71\xff\xa4\x5c\x9c\xab\x90\xfb\x7a\x1b\xd0\xe5\xbf\xac\xbb\xb5\xed\xb3\x41\x78\x24\x00\x32\xd0\x53\x01\x81\xe7\xdf\x10\x28\xc5\xe4\xec\x45\xbc\x57\x01\x1b\x3b\xd1\xdc\x0a\xe0\xf1\x87\x27\x00\x72\xa0\x13\xb2\xb8\xb6\x5f\x69\x13\x9c\xa2\x92\x9a\x0c\x75\x73\xf3\x42\xad\x3a\xff\x62\x9c\x7d\xc5\x4b\x9c\x89\x8f\xb4\xc8\xb2\x9e\x7a\xa2\xf1\x9e\x05\xea\xea\xcb\xee\x28\xeb\x63\xe2\x09\x71\xe5\x01\x9c\x81\xff\x9a\x92\xea\xfd\xe5\x7c\xfb\x42\x1e\xbd\x8c\x4c\x03\xca\x37\x50\xf7\x13\x7e\xef\xd3\xef\x64\xfb\x40\x61\x16\x7e\xdd\xe7\xd6\x8c\x62\x5f\xee\x72\xab\x63\x62\xf5\x5f\xbe\x6a\x8d\x86\x76\x13\x85\xd2\x71\x34\x45\xdb\x64\x3c\x12\xce\x3e\x57\xbf\x1e\xf0\x6f\x0f\xd9\x7b\x7a\x4e\x29\x67\x14\x05\xed\xe2\xb2\x20\xe1\xab\xbd\x2e\x2c\xcb\x3e\x50\xb8\x5c\xbe\x5a\xab\x53\xdf\xf6\xb3\xf1\x48\xf7\xc3\x15\x92\x0f\xe0\x81\x6e\x7e\x4c\xea\x9c\xab\x49\x72\xd9\x99\x40\x96\x4a\x94\xa7\xd8\xb7\xc6\xe7\xd5\xc2\x48\x07\x49\xac\xc7\xb7\xd6\x0c\x09\x51\xe3\xab\x6d\x59\xb7\xbf\x62\xf8\x26\xab\x76\xd7\xab\xae\xad\x3b\xca\x86\x50\xaf\x19\xe2\x24\x93\xdd\x78\xdc\x03\x27\xe5\x9c\xdc\x00\xef\x39\x36\x7b\x57\x51\x17\xa1\xc9\xf3\x54\x27\x15\xfd\x02\x21\xe7\x54\xb7\x16\x5f\xf2\x89\xe1\x72\x5a\x98\x43\x0f\x0b\xd9\xa7\x83\xe1\x58\xd4\x74\x50\x74\xe1\x08\x71\x0c\xc5\xb7\xa3\xeb\xb5\xd3\x91\xb9\xca\x6a\x5d\xa2\x52\x17\xe9\xc4\x0a\x15\x58\x52\x02\x72\xa2\x81\xde\x50\xc1\x63\x7b\x07\x38\xa7\xef\x51\xa5\x76\x46\xa9\x19\x9d\x81\x26\xd1\x0b\x7f\xf7\x77\xd0\x38\x4f\x7f\x9f\xfc\xfd\xdf\x47\xef\xfd\xe2\x45\x72\x56\x38\x46\x7e\xf2\x96\xf8\x79\x9c\xa1\x66\x80\x4a\x59\x72\x54\x1b\x84\x1f\x5e\xb3\x06\x56\x03\xf5\xe3\x4f\xff\xc6\x19\x0b\xf3\x5f\x62\x50\xad\x9d\x91\x37\x50\x67\x5d\x16\x04\x17\xf2\xff\x02\x00\x00\xff\xff\xcf\x47\x68\x53\x67\xff\x00\x00") +var _confLocaleLocale_bgBgIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xdc\x7d\x6d\x8f\x1c\x45\x9a\xe0\xf7\x96\xfa\x3f\x24\x5e\x59\x03\x52\xbb\x10\x70\x6f\x42\x34\xdc\x0c\xec\xc2\x9c\x80\xe1\xc6\x8c\x74\x12\x42\x45\x76\x55\x76\x77\xae\xab\x2a\x8b\xcc\x2c\x1b\xcf\x6a\x25\x63\x0f\xaf\x3a\xad\x67\xbd\xcc\x0d\x62\xc7\x18\xc3\xce\xee\xed\xb7\x72\xbb\xcb\x5d\x6e\x77\x97\xff\x42\xd6\x5f\xb8\x5f\x72\xf1\xbc\x44\xc4\x13\x91\x91\x59\xd5\x86\xb9\x0f\xa7\xd5\x32\xee\xca\x78\x8f\x27\x9e\xf7\x97\x78\x3c\xee\xf6\x93\xa2\xb7\x5d\xfd\x63\x35\xab\x8e\xaa\xc7\xcb\x6b\xd5\xa2\xba\x57\x3d\x52\x7f\x9d\xa8\xff\x3f\x8d\x96\x1f\xc3\x0f\xcb\x8f\x97\xd7\xab\x03\xfc\xe1\xf5\xb4\x54\x3f\x2e\xbf\x54\x2d\x0f\xe0\xbf\x9b\x1b\x9b\x1b\xfb\xd9\x30\xd9\xae\x6e\x57\xd3\xe5\x67\xd5\x54\x75\x5e\x6c\x6e\xf4\xe3\x62\x7f\x27\x8b\xf3\xfe\x76\xf5\xbd\xfa\xed\x1e\xfd\x9a\x7c\x34\x1e\x64\xb9\x6a\xfb\x9d\xfa\xed\xa8\xba\x8f\x13\x1d\xaa\x7f\x3f\x54\x83\x24\x83\xf1\x76\x75\x47\x4d\x77\x52\x2d\x96\x5f\x6c\x6e\x14\xe9\xde\xa8\x9b\x8e\xb6\xab\x5b\xaa\xd9\x5c\x35\x9f\x56\xa7\xd5\x8c\x7f\xcf\x26\xe5\x76\xf5\xb5\xfa\xb1\xfe\x69\x32\x86\xf1\x67\x6a\xf4\x39\xac\x5b\x2d\x74\xae\xfe\x5f\xcd\xa1\xf6\x30\x83\x0d\xa9\x86\x79\xb2\x97\x16\x65\x92\x87\x5b\xe2\x58\x57\x92\x9d\x22\x2d\xd5\x5a\x7f\x50\x2d\xd4\x09\xd0\x08\x9b\x1b\x97\x93\xbc\x48\x33\x5c\xd6\x6c\x79\x4d\xfd\x3e\x5f\xde\xdc\xdc\x18\xc7\x7b\xaa\xe9\x5d\x1c\x04\x06\x98\x2f\x3f\xad\xa6\x9b\x1b\x65\x32\x1c\x0f\x62\x18\xe5\x7f\xeb\x53\xa8\x4e\x37\x37\x06\xf1\x68\x6f\x82\x3d\xfe\xa0\x16\x3f\xaf\x8e\x37\x37\x7a\x79\xa2\xda\x75\x47\xc9\x15\x18\xe6\x4b\xf5\x33\x9c\xcb\x01\xad\xa6\xd3\xe9\x6c\x6e\x4c\x8a\x24\xef\x8e\xf3\x6c\x37\x1d\x24\xdd\x78\xd4\xef\x0e\xf1\x28\xd5\x89\xe1\xac\x6a\x91\x6a\x56\xb5\xc5\xea\x91\x5a\xd4\x71\x35\x8f\xe8\x3a\x97\xbf\x53\x13\x3c\x8a\xf8\xef\x0e\x1d\x52\xd2\x57\x27\xdb\x8d\x0b\xd8\xc5\x63\xd8\x3d\xcc\x13\xa9\x5e\x53\x35\xc2\x02\xee\x14\x66\x1b\xc5\xc3\xf0\x04\xea\x26\x87\x71\x3a\x80\xe5\x3f\xea\xa8\x71\xe1\xc2\x60\xbb\xe3\xb8\x28\xae\x64\x70\xe9\x77\xd4\x48\x00\x4b\x8f\xe0\xe7\x3c\xe9\x96\x57\xc7\x6a\xa8\x5b\x6a\x63\x07\x78\xe5\x33\xbc\x0c\xe8\xa9\xc0\x48\x4d\xa9\x1a\x9f\xc2\xc4\xbd\x78\x5c\xf6\xf6\xe3\xed\x57\xe9\x7f\x61\x25\x79\x32\xce\xd4\x4d\x64\xf9\xd5\xed\xea\xcf\xfa\x78\xe1\xde\xd5\x9c\xea\x9e\xb2\x7c\x2f\x1e\xa5\xbf\x8d\x4b\xbc\x94\x6f\x55\x83\xfb\xdc\x44\x81\x85\xba\x05\xbc\x9e\x61\x9a\xe7\x99\xba\xed\x6f\x05\xcc\x21\x44\xaa\xf3\xee\xc2\x04\x00\xbe\x6a\x29\xd5\x22\x5a\x7e\x52\x9f\x03\x5a\x0d\xd3\xbd\x1c\x6f\x92\x1a\x4e\x23\x05\xa7\xf3\xea\x3e\x34\xd6\xb3\x40\xb3\xdd\x2c\xbf\x24\x06\xbb\x86\x80\x7e\x4c\x17\x0f\x0f\xa8\x65\x06\xb5\x13\x31\xfa\xa2\x61\x27\xf1\x48\x01\x0e\xb5\xfd\x01\x6f\x18\xa0\xe4\x11\x0e\x3d\x87\x23\x3d\x6d\xe8\x5c\xcd\x37\x37\xe2\xfe\x50\x5d\xfb\x38\x1e\x25\xea\xee\x7e\xaf\x4e\x01\xb6\x70\x6a\xa0\x1f\x2e\x7f\xce\xef\x5c\x5d\x0d\x82\x1e\x5c\x76\xdc\xeb\x65\x93\x51\xd9\x2d\x92\xb2\x4c\x47\x7b\x05\xbd\x75\xea\xb3\xa8\x1e\x12\xb0\xe1\xbc\x02\xe2\xe0\xe2\x5b\x3a\x6c\x6e\x5c\xcd\x26\x06\x9e\x01\x0e\xa7\xcb\xcf\x61\x8b\xcb\xeb\xce\x30\xdc\xce\x8e\xa4\x1b\x5e\xe7\xcd\xfa\xc3\xe2\x59\x16\xdd\xdd\x24\xe9\x33\xec\xaa\x6f\xc7\xd0\x14\x0e\x16\xb7\xab\x00\x75\x32\x18\xa8\x7b\xff\x70\x92\x14\xa5\x1a\xf3\x8f\x6a\x98\x9b\xea\x2b\x6e\x44\x9d\x17\x60\x89\x47\x78\x14\x8c\x0c\xd2\xa2\x50\x4d\xd5\x78\x0e\x82\xc4\xd9\x7a\xf1\xa8\x07\xc7\xf9\xad\x9a\xe8\x18\x6e\x1b\x7e\x7c\xaf\x48\xe2\xbc\xb7\xff\x3e\x1c\x01\xfc\x43\x61\x41\x40\x96\x80\x7c\xcc\x7b\x5e\x01\xd7\xf0\x00\x1b\x1e\x1f\xae\xc6\x5b\x8c\x5a\x48\xd6\x57\x3f\x7e\xa3\x7e\x3a\xc4\x25\xa4\xa3\xa2\x8c\x07\x03\xb5\x06\xfe\x17\x20\xcc\x53\x44\xe5\x00\xfc\x06\xa2\xca\xb4\x1c\x30\xee\xfa\x52\xdd\xba\x39\x03\x38\x2b\xd3\xda\x20\x46\xba\x1c\x44\x26\x48\x03\x10\xae\x35\xe2\x47\xe8\xc6\x2e\x6a\xaf\xd7\x25\x36\xed\x67\xbd\x4b\x0a\x7d\x01\x92\x87\x6d\xfd\x5e\x4d\xb3\x88\x5e\xcf\xf6\x8a\x08\x71\xb2\xdf\x25\xaa\x0e\xa2\xd7\xb0\x0b\x20\x25\x35\x05\x6e\xfd\x21\x8c\xb5\xbc\xb6\x05\x4f\x4f\xa1\x96\xe5\x4d\x0d\x29\x9f\x11\x3e\x41\x98\x78\x29\x8e\xca\x38\xdf\x4b\xca\xed\x73\xdd\x1d\x85\x68\x2f\x9d\x8b\xf6\xf3\x64\x77\xfb\xdc\xf9\xe2\xdc\xcb\xb8\x56\x0d\x3d\xcb\x1b\x74\x61\x8c\xb0\x6f\xbe\xf4\x6c\xfc\xb2\x9a\x18\xaf\xe1\x04\x1f\xc3\x8c\xf6\xb4\x45\xf3\x00\xda\x50\x1b\x3f\xd4\x80\x0e\x0f\x8f\xe1\x90\x08\xe7\x09\xbd\x42\x44\x6b\x01\xd8\x34\x20\x1b\xe1\xa1\x2a\xc4\x1f\xe9\x87\xa7\x29\xc6\x53\x00\x16\x1f\x4e\x14\xdd\xe9\xf6\x77\x88\x34\xd3\x21\xc1\x33\x9e\x23\x5e\x07\xe4\xf0\xd6\xd5\x8b\xff\xfd\xcd\xad\xe8\x9d\xac\x28\xf7\xf2\x04\xff\xad\xfe\xa3\x7a\xbd\x10\x11\x08\x45\xef\xa6\xaf\xfd\x42\xc1\x98\x1a\x84\xaf\xb7\xe9\xc5\xde\xa3\x13\x80\x15\xe1\xd6\xd4\xaf\xf8\x42\xa0\x27\xe2\xec\xef\xd5\x88\x8f\xdd\xc6\x4e\xc3\x7d\xb5\x08\x24\x59\x96\x23\x68\x01\xdd\x06\x0a\xa1\x66\x23\x62\xf3\x35\x1c\x62\xcb\x6c\xaa\xa1\x86\xa1\x3f\x11\x0c\x6c\xd1\xe1\x3c\xc6\xa1\x8e\xf0\xc9\x12\xa5\xff\xe5\xdb\x6f\xff\xea\xb5\x5f\x44\xc9\x68\x2f\x1d\x25\xea\xa4\xa3\x49\xb9\xfb\x5f\xba\x7b\xc9\x28\xc9\xe3\x41\xb7\x97\x12\x64\x1d\x4a\xd0\xc6\x69\x8f\xf0\xe6\x3e\xd5\xcf\x00\xcf\x1a\xc8\x66\x31\x50\x14\xb7\x9f\x10\xcb\xf0\x00\x60\x24\xba\x78\xf1\x4d\xd8\x52\xb9\x0f\x8f\xf1\x4b\xe0\x0e\x8a\x0f\x07\x70\x79\x7a\x8d\xff\x02\xab\x01\xea\x0b\x23\x07\xae\x28\xb4\x49\x35\x57\x92\xe7\x5d\xc5\x39\x94\x57\x01\x0a\xc4\xf8\x84\x1d\x0f\x15\x74\xad\x39\x56\x44\xfb\x82\xe7\xf2\x00\xfe\x81\xb0\x3b\xd3\xe0\x7b\x04\xf0\xca\xd3\xa5\xa3\xcb\xf1\x20\xed\x2b\x70\xd1\x77\x41\x63\x9e\x6a\x32\x7d\x84\x6f\xfd\x11\xe2\xc9\x69\x74\xae\x73\x0e\x58\x8a\x73\x17\xce\xc1\x53\xc5\x07\x03\xcf\x6f\xd1\x0a\x55\x6a\xaa\x51\xd6\x25\x22\x04\x0c\x4c\x3f\x2d\xe2\x1d\xc5\xcc\x10\x37\x96\x33\x09\xbf\xad\x56\x75\x80\x1c\x10\x2d\x1b\x90\x0a\x5e\xb1\xa2\xa2\xcb\x7f\x50\x6f\xfd\x40\x5e\x17\x02\xd8\x7d\x41\xc2\x90\xd4\xd1\x53\xbb\x07\x4c\xad\x7d\xbb\x07\x08\x71\x73\xfb\xae\xcd\x79\x00\x43\xcb\x1c\xd7\xa1\xa6\x7e\x0b\x9a\x03\x1f\x3d\xfc\x32\x5d\x41\x2e\x2d\xc9\x72\x2e\x50\x93\xdc\x00\xd8\xd3\xe9\xe0\x79\x85\x07\x57\x54\x7c\xd5\x05\xaa\xde\x1d\xc0\xf6\x1a\xac\xf9\xb5\x7f\xab\x38\xd6\x2f\xf8\x8d\x37\x12\xea\x39\x72\x25\x0f\x34\xeb\x40\x9c\x1f\x88\x04\xf5\xa7\xb8\xb2\xb9\x81\x78\x78\xf5\x44\x34\x0e\x60\x32\x0f\x30\x50\x8c\x58\x00\x18\x37\xb2\x38\xaa\x0d\x20\xe6\xe8\x42\xa4\xbe\x11\xc0\x9d\x40\x77\xb5\x94\x63\xb8\xc8\xe5\x17\xaa\xfb\x17\xd5\xe2\x29\xa2\xa0\xfc\x3c\xbe\x55\xb8\x91\x28\x3c\xdf\xc6\x97\xf0\x52\x8e\xd5\xb5\x9e\xd4\xf9\x2d\x3c\x79\xd1\xdd\x2c\xfe\x16\xb2\xf3\x9f\xd1\x39\x01\xe7\x40\x7c\xe2\x0c\x08\x0c\x3e\xa7\xfa\x50\xb4\x2f\x94\x8a\xbe\x40\x98\x53\x53\x1e\xc2\x0c\x24\x25\xe9\xf6\x4c\x18\x0e\x2c\xea\x67\xcc\x33\x53\x8b\x24\xfe\x57\xed\x1d\xb8\x82\x89\x92\x60\x9a\xf0\xa7\x66\xec\x2d\x49\x3c\x86\xc3\xb6\xbd\xcc\x4e\xbe\xc7\x17\x4b\xa4\xc8\x1f\x05\x4e\xf8\x9a\x3a\xd6\x7b\xc4\x68\x1e\x12\xad\x3f\xa1\x7f\xe3\xed\x01\x23\x40\x78\x06\xfe\xe6\x83\x45\x1a\xb9\xd6\xd1\x6a\x61\x83\x04\x18\x9a\xc1\xa7\xf1\x48\xfc\x81\x42\x65\x4a\x92\x50\xaf\xfe\x2b\xa6\x9f\x0f\x41\x3e\xa2\x1f\xc5\x66\xf8\xc8\x7c\x68\x9e\x46\xc8\xfb\xaa\x75\x69\x48\xfd\xcd\xaf\xdf\xc4\xd7\x84\x90\xf2\x31\xa1\xf3\x69\x64\x18\x70\x8b\xeb\x97\x9f\xe1\xa1\x1c\x29\x1c\xfe\x06\x62\xf7\xfd\xee\x38\xcb\xcb\x6d\xf5\x27\x1d\xda\x35\x44\xe7\xfc\xb3\x59\xca\x6d\x5a\x26\x3d\xcc\xa9\x69\xc9\x08\x5e\xf5\x95\xb2\xb1\x7a\x9b\x11\x40\x26\x3f\x87\x99\xe5\x15\xe8\xe9\x2e\x22\x83\xae\x5d\x0c\xc7\xf8\xcb\xb9\x8d\xc7\xce\x7a\xf7\xcb\x72\x4c\x0b\x7e\xe3\xdd\x77\xdf\x11\x2b\x36\x1f\x9c\x17\xa9\x3e\x6d\xf1\x8a\x01\x76\x1e\xd2\x8b\x6c\x78\xd5\x04\xc9\xc0\x02\x2f\x6f\x28\x66\x09\x10\x0c\x3c\xf3\x49\x3e\xd8\x76\x8f\x77\x1d\xe4\xa0\x7a\xd5\x81\x32\x70\x8f\x82\x83\x52\x50\x06\x9b\x7a\x16\xfe\x73\x71\xad\xdb\x54\x7b\x9b\x32\xce\x56\xa0\x00\x3b\xbc\xcf\x50\xe8\x74\xc6\xd5\xce\xa4\xc8\x8a\xb8\x33\x1b\x03\xe1\x91\xc8\xf3\x31\x52\x11\xe4\x6c\x91\x52\x84\x10\x29\xcb\xc0\xab\xf8\x2b\x9a\x08\x76\xf5\x31\x6e\x54\x1d\x29\x1e\x2c\xac\x50\xc1\xd7\x50\xdd\x16\x72\x50\x17\xdf\x52\xd7\xe8\x2a\x56\xf0\xe3\x6e\x9e\x0d\x49\x2d\x72\xa8\x59\x52\xf1\x45\x30\xd4\xde\x9d\xc8\x0e\xce\x52\xe8\x1f\xd1\xaf\xff\xe6\xd5\xe8\x3f\xbe\xf0\xfc\xf3\xea\x2c\xfe\xe4\x10\x17\x42\x60\xea\x2f\x10\x2d\xe6\x6a\xcd\x02\xad\xfa\x37\xef\x9c\xa5\xe6\x45\x90\x78\x2b\x44\xf7\x3b\xc4\x6a\xc8\x48\x47\xe7\x88\x9a\x9c\x8b\x5e\xc2\x43\xfb\xaf\xc9\x47\xf1\x70\x3c\x48\x3a\xbd\x6c\xf8\x72\x07\x84\x5a\x25\x03\xe6\x8c\xf7\xfe\xe0\x0e\x7a\xa4\x1f\x07\xbe\x1b\xf8\x8d\x24\x0a\xee\x13\xa4\xac\xcd\xbd\xb4\xe2\xa7\xdb\xcb\x46\xbb\x69\x3e\x04\x79\xd2\xbc\x3a\xc6\x96\xfc\x78\x1f\x10\x2f\x60\x5e\xc5\x0a\x76\x83\x56\xd4\x1d\x65\x65\xba\x7b\xd5\x1d\x56\xdd\x36\x69\x3d\x00\xc0\x59\x54\x47\x54\x8a\x8f\x90\x36\x4a\x24\x49\x1d\xc0\xe5\x04\xa4\xdd\xfc\x72\xda\x4b\x56\xc0\x96\x8b\x6a\x10\xdc\xd5\xf5\x20\x68\xcd\x25\x9c\x29\x50\xcd\x76\x77\x07\x8a\x0b\x66\x06\xd6\xd9\x32\x30\x2d\x8f\x90\x4d\x3d\xa5\xdd\x3d\x20\x62\xe0\x76\x52\x28\x65\x0c\x8a\xb5\xaf\x25\x96\x8a\x5e\x7d\xed\x6d\xc2\x52\xd7\x88\xb8\xf1\x2b\x3e\x04\x02\x6e\x9e\xd0\xcc\x19\x78\x0b\xe0\xc3\x52\x59\x02\x27\xb5\xd8\x6b\x48\x67\xe6\x00\x36\xc8\x32\x13\xd0\xd5\x88\xaa\xc6\x89\x80\x50\xd5\x53\xc7\xa7\x09\x6d\x8f\xb5\xfc\x09\x24\x85\xd9\xca\xbd\x3c\xbe\x1c\x2b\x59\xd0\x5f\xb5\xea\x79\x0d\xf9\x3d\x7c\x8f\x1f\x47\xaf\x73\xbb\x7a\xcf\xd0\xae\x81\xa2\xe9\x1e\x91\x06\xf7\x53\x85\x27\x4f\x89\xdf\x39\x42\x72\xfe\x19\x4b\x74\xf3\x2d\xa2\xf8\x38\xd5\x67\xb0\x17\xb9\x7b\x22\x90\x44\x18\x61\xef\x35\xba\x4c\x78\x8b\xdf\xd5\x31\xca\xd9\xcc\x49\x2c\x50\x4f\x52\x27\xee\x9a\x76\x70\x1f\x1e\x84\x79\x78\x16\x90\xa0\xab\x3b\xb3\x01\x45\x7c\xe0\x40\x9d\xee\x59\xec\x2a\x8e\xd4\xe5\xd4\xdd\x63\x45\x25\xe2\x09\x02\x43\xed\x89\x10\xc7\x17\x1e\x27\x0c\x5a\xa1\xbd\x11\x0a\x45\x0e\xa3\x7d\xb2\x2d\xf3\xbd\x95\xb5\x76\xb8\x6a\x21\x03\x1c\xf8\xaa\x2c\x94\xc9\x46\xb8\x72\xad\xa0\x74\x1e\x91\xd1\x56\xba\x8d\xe4\xce\xac\xf0\x8e\xf2\x0b\x68\x97\xa4\xe8\xa9\xc0\x90\x3b\x69\x05\x4b\xfb\x0e\x05\x4a\xaf\x01\x40\x87\x95\x08\x79\xd2\x65\x1d\x7a\xf7\x72\x0a\x7a\x65\xe7\xdd\x1f\x21\x36\xff\x52\x75\x78\xe0\xca\x44\x07\xac\x11\x36\x62\xd6\x91\x3e\x8e\x99\xd6\x9e\x1a\xfc\x23\x95\x17\xf3\xf0\xb4\xfa\x10\xee\xea\x0b\x39\xb0\x1a\xe7\x86\x7b\x86\x9f\x4f\x88\x88\xd3\x93\xc7\x43\x9b\x23\x46\x66\xce\xda\x99\x18\x7a\x01\x0b\x80\xa4\x8a\xb4\x37\xa7\x46\x33\x83\x1c\xec\x0c\xd9\x4e\x33\xb8\x3b\x18\x2f\x2c\x34\x2a\x6b\x03\x1b\xae\x00\x1f\xff\x27\xf0\x68\x3a\x5a\xb7\xca\x7a\x4a\xb6\xaa\xdc\x46\xe1\x05\x38\x0f\x85\x11\x1f\xd0\x46\x16\x2c\x1a\xb8\x1a\xfe\x55\x72\x60\x50\xa5\x7f\x40\xc7\x44\x4c\x93\x7a\x15\x5b\xb8\x5c\x10\x8e\x98\xbf\x0b\x3c\xa1\x9b\x38\xbd\x50\xdf\x45\xbf\x7c\x0d\x47\x72\x44\xf6\x29\x69\xe5\x59\x0d\x36\x47\x74\xc6\x08\x02\x98\xc2\xcf\xf4\x23\x59\xb9\x5e\xc1\xc2\x9a\x33\x5a\xc5\x31\xc9\x2d\xb6\x9f\x0a\xa0\x14\x1a\xb3\xd1\x54\x81\x0b\x59\xb0\x20\x6a\x35\xe0\x41\x2d\x14\xf3\x04\xce\xe7\x20\x3f\x60\x5e\x9f\x23\xcb\xeb\xd1\xc3\xb6\x11\x56\xc2\x76\xf7\x32\xd0\x62\x7f\x5d\xd3\xad\x3e\x44\x89\x08\x4c\x46\x45\xd9\xdd\x4b\xcb\xee\x2e\x30\x38\x7d\xd4\x87\x20\x31\x7f\xac\xfe\xf7\x73\xbc\x07\xd4\x75\x92\x49\x0e\x81\xc7\xb2\x27\xe7\x54\xc7\x73\xc4\xe3\x9f\xe0\x37\x05\x62\x2f\x46\xe7\x2f\x6b\xc5\xd4\x0b\xc0\x9f\x74\x15\xf1\x4a\x07\x80\xa8\xb4\x36\x9d\x6f\xfd\xc0\x5a\xb4\x84\xe2\xe7\x10\xd0\x04\xee\xdf\xa8\xb0\xac\x06\x76\x4b\x93\x3c\xc6\x0d\xf4\x68\xf0\xfa\x90\x01\x20\xaa\x6c\x14\x41\xa0\x42\x22\x68\xf2\xa7\x83\x67\x71\xbe\x20\x46\x1e\xa6\xde\xcb\x76\x26\xe9\xa0\xef\xb4\x82\x51\x3a\x70\x92\xa4\xaa\xea\xef\xe8\xe7\x16\x00\x26\xab\x6c\x6d\x50\x46\x45\x5a\x26\x98\xc1\x71\x19\x49\x5c\x7d\xa1\x03\xd3\xb3\x04\x95\x0c\xa7\xd6\x52\xb1\x86\x34\x3c\xa3\x69\x2c\xde\x57\x60\x44\x93\x18\xb9\x1d\xae\x65\x18\x97\x60\x29\x68\x94\xfb\x69\x46\x4f\xf6\x6f\x97\xc1\xf8\x1a\xad\xda\x19\x7a\xdd\x00\xd5\x10\xf3\x9f\xfe\x4c\x6a\x59\x45\x74\xe1\x65\xf5\x5f\x05\x32\xf1\xe5\x84\xf8\xe4\xbd\x16\x60\x44\x42\xf2\x18\x8f\xd8\xc5\x65\xb4\xd0\xdf\xa1\x91\xec\x86\x45\x9b\xee\xe9\x3a\x58\xb3\xfd\x1a\xcf\x84\x17\xc4\xed\xda\x63\x17\x77\x4b\x6f\xb1\x98\xf4\x7a\x49\x51\x90\xf6\xe1\x1e\x9c\x04\x61\xac\xcf\xa1\xc3\x53\x11\x9a\xa9\x51\x6f\x88\xaa\x30\xa0\x23\x5b\xcc\xc5\x81\x68\x71\x0f\x27\xfc\x04\x97\x08\x6f\x77\x0b\x29\xc2\x2d\x26\x6a\x78\x11\x8f\x18\xc3\x9f\x18\xc3\x09\x42\x31\x4b\x12\x60\x11\x5e\x68\x85\x09\x73\xf3\x87\xa8\x6d\xd2\x94\x11\x88\x84\xb6\x34\x3c\x85\x56\x1d\xb0\xb5\xbf\xbf\xb9\x31\x21\xa5\x5b\x36\xe8\xb7\xa9\x8a\x34\xde\x33\xec\xe0\x2c\x6c\xaf\x15\x03\x09\x74\x58\x5c\x49\x15\x40\x76\x8d\x29\x1f\x60\xa1\x4c\x3e\x2a\xc9\xf2\x34\x43\x7b\x99\x61\x27\x82\x60\x89\x08\x0e\xad\xde\xa4\x10\x18\x5e\xc5\xe7\x54\x90\xf2\x9e\xad\x30\xb5\x47\x03\x88\x78\xa0\xf0\x53\x06\xfc\xe1\xe5\x44\x77\xb9\x8b\xc6\xe3\x13\x46\x7d\x61\x6d\x1c\x4e\x91\xe5\x7b\xce\x0c\x4d\xd6\x50\xd5\x94\xec\xc2\x5e\x6b\xc7\x46\xac\x86\x44\x2e\x86\x7c\x1c\xee\xd4\xb9\x20\x78\x29\xda\x40\xd8\x51\xb0\x8c\xe6\x4a\x5e\x32\xda\xbb\x23\xc7\x64\x19\x5a\xb3\xba\x56\xf6\x8c\x78\x9f\xcd\x82\x75\x8b\x20\x35\x8b\x27\x25\x18\x15\xad\xb3\x40\x97\x6d\xb3\xd2\x69\xe0\x21\x1b\x3b\x3d\x3b\xaa\x11\x7d\xf7\x93\x31\x48\xce\xc3\x62\x8f\x9c\x18\x18\xa0\xd9\xe4\xe5\xf4\x7a\x25\x62\x07\x81\xcf\x19\xb5\xa3\x2c\x81\x66\xcc\xfb\x68\xad\x2a\xb2\x5e\x1a\x0f\xba\x4f\x38\xf6\x5d\x43\x5a\xc3\xa3\xbb\xe2\x02\xb9\x3f\x0c\xc7\x25\x1a\x6c\x89\x89\x7a\x40\x0a\x5a\x26\xcb\x75\xbe\x4a\xd8\x24\xd8\x00\xdc\x20\xc2\x47\xfa\x55\x6b\x98\x46\x5b\x3d\xe8\xef\x40\xfa\x5c\x5e\xe3\xc1\x78\x8d\x8c\xf0\x5b\x31\x10\xf3\xc8\x6c\x8f\x9a\xd6\xa4\x28\x38\x26\x64\x14\x1a\x36\xf3\xa4\xca\x88\x86\x9d\x00\x00\x0c\x93\xe1\x0e\x4c\x9b\xe0\xa4\x88\x60\x4e\x08\xd7\x20\x73\xb4\xab\x5e\x8e\xa2\x43\x96\xfd\x81\x46\xf7\x18\xff\xcc\x6a\x3c\x0f\x75\x48\xd6\xef\xf0\x8a\xf1\xd0\x51\xf4\xee\x0a\xb0\xc7\xcc\x15\x3b\x47\xbb\xf0\x3c\x00\x5e\x89\x56\xb8\xf3\x18\x88\xe9\x18\x16\x8e\x04\x4b\x54\xc8\x14\xc9\xa8\x34\x70\xa3\xfd\x32\x58\x04\x39\x31\x2a\xd8\x86\xb3\x36\x67\xf9\x98\xaf\x96\x3c\x38\x50\x35\xfe\xd2\xce\xcb\xe7\x8b\x97\x9e\xdd\x79\x99\x55\x68\xd6\x1e\x4d\x3c\x8b\xf0\x71\x91\x1a\x40\x2d\xbe\x02\xce\x54\x74\xf1\x3a\x91\xe2\x03\xa2\x07\x27\x9e\x9d\xf8\x63\xc6\x44\x07\xc8\xd6\xd3\x97\xf3\x7d\xa0\x41\x53\x80\xac\x2d\xa9\x40\x3e\x42\xae\x1d\xbc\x0c\x3e\x77\xcc\xd2\x0a\x2a\x84\xfe\x33\x2c\xcb\x74\x8c\xbb\x55\xb7\xcc\x2c\x4e\xb9\x85\xd3\x1f\xf1\x49\x5b\x44\x76\xd3\x43\x2d\x71\x0f\x11\x35\xa2\x3e\xd3\xf9\xf7\xc8\x4f\xcd\xd1\x48\xee\x5a\x58\x3d\xb4\x84\x37\x34\x48\x87\x69\xb9\xea\x7d\x03\x71\xd5\xcf\xfc\x00\x6f\xfd\x84\x35\xb3\xcc\xc3\x2d\xdc\xdb\x9a\x33\x75\xae\x5d\xf7\xd4\xac\x4d\x1f\x80\xb8\x43\x60\x68\x3f\x23\x9d\x0d\x43\xd9\x0b\xe4\xec\x73\x4a\xf7\xb5\x65\xee\x85\xc8\x1e\xbf\xc8\x05\xce\x72\xdd\x74\x42\x88\x22\xa4\x03\xaf\x6f\x3f\x2e\xba\x93\x11\xc3\x67\xd2\x37\x6f\xff\xd0\x3c\x17\xea\x86\x4c\xb0\xc0\x98\xc0\xc2\x48\xe8\x3c\x5c\x47\x15\xfb\xb4\x01\xce\x67\xd4\xaf\xe4\x6d\xc1\x7a\x06\x03\x94\x2c\xc9\x31\x67\xb0\xf6\x83\xe0\xf6\x72\x85\x56\xb8\xb5\xea\x26\xe7\x1a\x34\xf2\x95\x0f\x4f\x78\x71\x2c\xbf\xc0\x33\x38\x36\x38\x56\xe1\x90\x1b\x28\x7f\x6a\x25\xc7\x05\x54\x9e\xaa\x05\x77\x18\x60\xf4\xf9\xfd\xbb\xd7\x93\x8c\x87\xf2\x5d\xac\xb9\x9c\xf6\x6d\x6b\x65\x3f\x4a\x4f\x05\x12\xbd\x32\x11\x06\x8d\x15\x8a\x71\x66\xc2\x41\xa9\x82\x23\xa3\xcb\x49\x44\xad\xe7\x64\x91\xf1\x2d\xc8\xb8\x47\xd8\x6a\xb9\xf6\x4e\xe5\xa5\x62\x93\xa7\x25\x08\x3e\x53\xdf\x2c\x5c\xdc\xa3\xfa\xeb\xf4\xa5\x5a\x5a\x85\x45\xf2\xb7\xd7\xeb\xa6\x59\x7c\xf2\x4b\x6a\x7e\xd1\x06\xa5\xa0\x3b\xc6\x7a\xf8\x98\x19\xcd\x2f\xd1\xb1\x91\x59\xdb\x80\x90\xd5\xf1\x17\x6f\xec\x25\x6b\x9c\xa6\x38\x1d\xfd\x66\x5c\xd3\x3d\x20\x71\xc1\x43\x97\x59\xd6\x2d\xf6\xc1\x24\xc7\xee\xad\x68\x27\x24\xf9\x30\x74\x42\x41\xd3\xbe\xb1\xbe\x20\xd0\x83\x0c\xff\x48\xfd\x72\x4c\x54\xf1\x3f\xb1\x73\x0a\x60\x26\xb4\x5c\xbd\x07\xa0\xf1\x3e\xe3\x5f\xe0\x08\x0d\xf2\x35\xc8\x6c\xea\x61\x61\xc6\x4d\xad\x98\x1c\x46\x62\x25\xc6\x1d\x41\xcf\x56\xc1\xf9\x13\x43\x8a\xe1\x87\x8c\x3c\xf6\x83\x10\x31\x5b\xf5\x6f\x87\x01\xc1\x8d\x4e\x26\xeb\xc7\x70\x34\x57\x13\x14\xef\xa6\xe0\x7a\x82\xe2\xab\xe2\xfb\xb3\x3e\x9a\x68\x68\x6f\xec\xb4\x85\x9d\x14\x3f\x33\x54\x7d\x7e\xa3\x24\xf2\xb7\xd7\x54\x28\xfd\x5a\xb1\xeb\x6f\xfb\xfe\x12\x75\x0f\x4f\x92\x7f\xfe\x9a\x0e\xd5\x37\xd6\x79\xa7\xf8\x4e\x58\x3b\xf5\xeb\x84\x1c\xb2\xc0\x16\x28\x7c\x66\x03\xe7\x79\xf1\xe2\x1b\xef\x92\x8e\x4d\xac\x09\x0d\xdb\xcc\x12\x6e\x6e\xbc\x51\x96\xe3\xe2\x37\xf9\x60\x9b\x8c\xac\xae\x5d\x17\x96\x70\x75\x90\xc5\xfd\xdf\x34\x99\x7c\x03\x96\xb5\x77\x93\x78\x58\x3b\x08\x54\xae\xcc\x61\x85\x9b\x1b\x3f\x57\xb2\x4b\xfd\xa4\x6e\x18\x8b\x8e\x61\x9b\x2a\x61\x42\xfe\x39\xe8\x07\xfe\x3a\xa0\x50\x5b\x47\x35\x68\x15\xd2\x09\xba\xff\x7e\xb0\xe2\xc9\x2d\xad\x53\xd4\x07\xea\x29\x0c\xc6\xfb\x31\x4a\xbf\xa6\x7b\xdd\x40\x93\x44\x8e\x7e\x01\x87\xbb\x41\x8a\x7e\x54\x15\xcc\x91\x55\x58\x68\x2c\xb5\x24\xef\x87\xd9\xd3\x17\xba\xcf\x78\x73\xf4\x15\x69\xf9\xd1\xf3\x6c\x39\x33\x88\x59\x17\x68\x71\x9a\xc2\x9c\x45\xfa\xdb\xa4\x65\x26\x62\xf5\xf8\x28\xc8\xd5\xe1\x7c\x01\xfd\x50\x51\xd3\xde\x17\x11\xbc\xd5\x16\x1a\x2f\xaa\xf3\x85\xc4\x5c\x30\x56\xfc\xd1\x59\xc7\x82\xde\x0f\x2f\xa0\xbc\x02\x12\xfa\xa2\x3e\x28\x91\x68\xf7\xaa\x67\x91\x4b\x11\x56\xa0\x30\x18\x06\x3c\x16\x56\x0c\xe2\xbe\x09\xec\x34\xba\xa4\x44\x9a\x11\x77\x44\x1f\xb6\x39\x6a\xc4\xb4\xb6\x42\xcd\x74\x1f\x9b\x7f\x0e\xcb\x7d\xd1\x78\xba\x2b\x96\xbb\x97\xe5\x79\xd2\x2b\xb5\xcf\xbb\x9d\xb4\xc6\xf6\x21\xda\x37\x04\xc7\xd1\x19\x7a\xa4\x65\x85\x2d\x7b\x79\xdb\xb0\x83\x5f\xa2\x41\x66\x4a\xd6\x90\x8e\x74\xfd\xef\xee\x24\x89\x92\x07\xe2\x4b\xc9\xa8\x05\x13\x12\xf3\xcb\x6a\xa6\x03\x16\xf9\x6b\x26\x47\xf6\x77\xee\xd6\xc6\xfd\xda\x73\x10\x0b\x62\xce\xf6\x81\x95\x10\xba\x72\xdc\xb0\xaf\x99\x55\x7b\x37\x8d\x5d\x2a\xac\xb6\x7a\x70\x83\xe5\xda\x07\x23\x00\xc5\x81\xd4\x19\xf7\xd7\xe7\x1f\xdb\x06\x4d\x07\x83\x64\x0f\x9c\x57\xf4\x4a\xdb\x96\x57\x7f\x54\xe4\x96\xf0\x18\x94\xba\xc8\x27\x9c\x90\x6d\x90\x5d\x60\x3b\x02\x1a\x0c\xdc\x59\x88\x5d\x13\x2a\x8c\x88\x11\xe0\x7f\x48\x32\x25\xcc\xcf\xce\xaf\x23\xc5\x0a\xe4\x18\xa1\x22\x34\xf0\xb4\x33\xcd\xd6\x90\x47\x85\x91\xb1\xa5\x66\xf6\xc0\xc6\x98\x00\xaa\x70\x16\x12\x86\x30\x7a\xe0\x0a\x1a\xae\xb1\xa2\xa4\xb6\x02\xf5\xb2\x41\x47\xff\x53\x2d\x81\x35\xc1\xd7\xd1\x27\xc2\xf8\xe8\xac\x5a\x84\x65\xab\xce\xbc\x04\x3e\xef\xc7\xd2\x43\x46\x4c\x37\xd5\xd1\x45\x80\x51\x92\x8f\x52\x70\xe8\xfe\xaa\x9a\x6a\x9c\xc1\x96\x8e\x80\x23\xa1\xc1\x21\xf8\x50\xd1\x22\x85\x6b\x82\x01\x07\x71\x51\x82\x2a\x96\x0e\x4f\xab\x4e\x41\x68\xfc\xc4\x33\x14\x90\x89\x96\x14\x1d\xa7\x8d\x96\x09\x56\x0c\x31\x2c\x07\xcf\xd0\xf8\x3b\xbb\x2e\xcb\x74\x0b\x40\x1a\xd5\xa1\x3c\x34\x51\x4e\x11\x87\x83\x4c\xc9\x5f\xa6\xd1\x27\xb2\xee\x0a\x1c\xbc\xbe\x83\xc8\xfa\x0f\x37\x22\x1c\xc4\xaf\xfa\x42\xc1\xb9\xf0\x52\x72\xb5\x49\x36\xda\x8a\x2a\x63\x6c\xc4\xcb\x25\x0c\x4b\xe7\x8d\x0c\x13\x39\xc0\x18\x46\x46\xea\x9e\xc0\x3b\x5d\x30\xf9\x92\xf9\x7b\x11\x55\xd6\x13\xf2\x54\xb8\x9c\xe4\x8a\x17\x36\x4b\xa1\x60\x83\x00\x93\xf4\xd8\x95\x03\xc2\x23\xe3\x8a\x17\xd6\xe1\x9a\x10\xd5\x14\x8f\xe1\xc4\xc2\xa6\x4f\x4e\xad\xee\x65\x2b\xa8\x40\xbb\x8f\xef\x01\x54\xdf\x6d\x36\xd1\x1a\x23\x49\x9e\xea\xb0\x19\x32\xfa\x28\xce\xa7\x54\xc8\x12\xe0\x91\x43\xbe\x9a\x62\x8e\xbc\x1b\x66\x7f\x10\x09\x06\xe1\x30\x2e\xb5\x91\x3b\xc6\xac\x1e\x00\xa8\xfb\xc6\x43\x08\x6f\x88\xb7\x27\x3c\x75\xa8\x05\x1e\x1f\xbc\x12\x1c\xeb\x91\x63\x04\x63\x07\xaf\xe0\x0b\xe9\xe8\x1d\x82\xaa\x09\x03\xc4\x9a\x37\x78\xa0\x75\xad\x8c\xff\xd4\xcd\x3c\x22\xfe\xe8\x34\xb0\xd9\x46\x70\x5e\xb1\x61\x78\x5c\x48\x5a\xac\x66\xc7\xa8\x8f\xbc\x53\x70\x6c\x24\xbc\x18\x6d\xe3\x66\x1a\xef\x5f\x9f\x71\x0b\x0e\xfb\x91\x7b\x7b\xac\x5f\xe9\x93\x5c\xe0\x62\xe5\x05\x2e\xd6\xba\xc0\x76\x0c\x61\x77\x4a\x2e\x91\xdf\x57\x14\x14\xd8\x06\xe4\x52\xd1\x65\x19\x04\xeb\x28\xe6\xe3\xb0\x00\xfc\x78\x7a\x6c\x8d\xad\x4f\xa5\x26\xbb\xc1\xdd\x8c\xed\x21\xa7\x28\xa8\x2f\x90\xff\x5c\xa1\x0f\x55\xbc\x15\x86\x69\x75\x77\xf2\x78\xd4\xdb\x97\xb4\xe7\x5f\x71\xe4\x19\xea\x2c\xd8\xe6\x8d\x0e\xbf\xad\xf4\x46\x89\xef\x70\x58\x60\x1d\xdb\x8f\x47\x7b\x49\x57\x3b\xff\xdd\x65\x11\x7f\x56\xd3\x7c\x08\x1f\x38\xba\x1d\xed\xf7\x07\x7e\xa9\x66\x9c\xde\xa4\x28\xb3\xe1\x59\x87\x3b\x68\x08\x00\xdb\xdc\xf8\xdb\x4c\x09\x52\xe0\x3e\x17\x0c\x3d\xc6\x6e\x22\x38\x30\x4d\xc2\xc6\x40\x54\xd4\xa4\x25\xaa\x31\x6e\xa0\x8d\xd5\xf8\x55\x00\x52\x7d\x88\x8c\x07\xc6\x06\xec\x66\x83\x41\x76\x25\x01\x2b\xe7\x1d\x41\x69\x17\xbc\xda\x19\xa9\x4c\x0a\xb5\xb9\x1c\x50\xeb\x9f\x91\x49\x98\xb1\x83\xd6\x42\xf7\x47\xf3\xfc\x5d\x6b\x8e\x20\xa1\x1f\x4d\x40\xc3\x0e\xf2\x87\xa0\xfc\xc9\x2f\x9b\xa8\xcb\x55\x5c\xe1\xcf\xce\x17\x3f\x43\x5a\x60\xfd\x07\xb4\xa1\xca\x8e\x39\x8e\x4b\xc5\x05\x8d\x48\xef\x8a\xdb\x38\xdb\xf0\x9a\x1b\xf0\x79\x5c\x02\xc0\xf7\x74\x54\xa9\x02\x1a\x13\x88\x7a\x47\xaa\xc3\x1a\x1c\x85\x98\x5c\x16\xdb\x92\xfa\xd1\x93\xd4\x26\x51\x38\xac\x85\x70\x81\x99\x7b\x1e\x85\xe8\x1d\x3f\x48\x7b\x68\xa9\xe2\xc8\x52\xc7\x81\x03\x42\x33\xc9\x92\x1d\x88\x69\xc6\x50\xb8\x64\x90\x94\xc8\xed\x6b\x7c\xf4\xd0\x53\xe6\x4d\xd2\xfe\xf6\x6f\x7e\xf9\x1a\x6c\x75\x3c\xd9\x51\x93\x75\xc5\x2e\x2d\xd0\xf8\xf1\x4b\xe6\x30\xd8\x8b\xcd\xa1\x22\x2b\x24\x15\x44\xb4\xde\xd0\x73\xc7\x8b\xb7\x8e\xa3\xa0\x0d\xaa\x5d\x1d\xc7\x60\x47\x57\x8e\x3f\xb8\x27\x38\x25\x57\x8b\x26\xdf\xea\xb9\x37\xdc\x0d\x00\x17\xed\x0b\xa4\x35\x92\x8c\xa5\x66\x4b\x63\x3c\xdd\xd2\x44\xcb\xda\x30\xe7\x36\x56\xc4\xb1\xe6\xee\x42\x0c\x31\xfb\x9d\xa1\x1f\xe5\xa9\x50\x0b\x36\x65\x0f\x18\x64\x3d\x76\x9e\xfd\x67\xf2\x5a\xd6\x51\xb8\x93\x71\x1f\xd4\xae\xe6\x82\xbe\x55\x4b\xd5\x16\x6b\x3f\xac\xda\x6d\x6b\xb5\xa6\xcd\xe4\xde\x7f\x66\x91\xcb\x3d\x75\x0c\xb2\x6b\x0d\xfb\x0f\x88\x76\x33\x27\x72\x83\x5e\x70\x6d\x30\x63\xd6\xb3\x51\x49\xd4\x07\x19\xd8\x29\x83\xc7\x11\xda\xf1\x00\x25\x9e\x92\x70\x22\xfc\xa4\xad\xc7\x36\x42\x06\x45\xfc\x7e\x41\x36\x54\x24\x3c\x75\xc8\x20\x63\xb0\x7a\xde\x36\x54\xda\xb8\xbb\x36\x44\x6d\x6b\xef\x5d\x17\xe1\xa3\x32\x9f\x55\x37\x2d\x7e\xc9\xae\x37\x77\x78\x30\x1b\x68\x66\x8d\xf3\x6c\x7e\x30\xbc\x0c\x05\x9f\x20\x2f\xec\xda\x76\xef\x69\xa0\x5d\x6a\xc7\xd4\x25\x79\xd5\x1f\x6a\x69\x0a\x48\xbd\x75\x66\xef\xed\x67\x59\xc1\x4e\x22\xc2\x0f\xfe\x9e\xe6\xe1\xd9\x47\xc4\x59\x34\x43\x96\x6e\xef\x00\x61\x4b\x3c\xb3\x1c\x84\x00\x14\xb4\xc7\x4a\x76\xe5\x6d\x23\xfa\xee\xa6\x43\x4c\x79\xf1\x8d\x75\x63\x27\x6f\x54\xf6\xf8\xb7\xd8\x1a\xf0\xc3\x82\xf7\x6b\xdc\xd9\x28\x78\xd4\x3d\x4e\xe1\xc8\xd8\x18\x35\xea\x20\x1a\xb3\x60\xed\xb4\xcf\x2a\x41\xb3\x7a\xdf\x85\x56\x2f\xc9\x37\xa3\xd0\xa3\x71\x8e\xcb\xbe\xc3\x36\x2f\x36\xe7\xa4\x22\x13\xd4\x24\x28\xe0\xbc\xfe\x38\xcd\x8b\x12\xf4\x68\xe9\x45\x9c\x0b\xf2\x94\x0d\xa4\xb6\xe0\xfb\x4a\x3b\xfd\xf9\xee\x1b\x00\x1a\xc2\x58\xc3\x4c\xa6\xdb\x26\x47\xab\x43\xd7\x6d\x5a\x33\x41\x9c\x1a\x76\xc2\xef\x1f\xd2\x1a\xdd\x5a\xa9\x9c\x38\xf5\xb4\x32\xd3\x4e\xed\x08\x7c\xb4\xd7\xa0\xe3\xf0\xb1\xd3\xd4\x3f\xdd\xc8\xfa\x29\xb9\x22\x2f\x46\x16\xb2\xe3\xe8\x2c\x14\x65\x4e\xd8\xc8\xbc\xdc\xd3\xc0\xf9\xe1\xdd\xa1\xda\xaf\x10\x66\x1f\xe3\xea\xec\x19\x7e\x38\xb7\x87\x6e\xdf\x9c\xde\x63\xba\x6a\x24\xd2\x34\x06\xc8\xf7\xc2\x8d\x93\x6d\xa7\xe6\x3a\x0e\x30\x24\x56\x84\x03\xac\x8c\x51\xa7\x89\x26\xdb\x00\x25\x9f\xf2\x82\x66\x3b\x57\x28\x02\xd2\x61\x38\xd1\xbc\xe6\x77\x6d\x93\xfc\x23\x69\xab\x1d\x55\xce\xc2\xed\x41\xbc\x91\xee\x20\x38\x24\x7b\x34\xaa\x81\x0e\x62\xb1\xec\x53\xc3\x31\x52\x5b\x3e\xcf\x3b\x84\x3e\xad\x18\xe8\xc6\xa3\x1b\x78\x68\x3c\x4b\x4f\xb6\xf2\x59\x1d\xad\xc1\x47\xe7\x59\x1d\x42\xf7\xa9\xf5\x92\x6e\xb0\xdd\xaa\xb9\xfe\x57\x45\x1e\xa7\x2c\x9a\x3c\x72\xb2\x55\x2c\xdc\x68\x8f\x57\x6a\xbb\x33\xef\xc9\xb1\xb3\xd1\x62\xee\xe1\x73\x99\x89\x5d\x93\x05\xdc\x79\x4a\x4f\x81\x03\x7c\x1f\x51\x05\x1f\x3c\xba\xd5\x56\x3a\x54\x6b\x26\x1d\xf1\x56\xda\x92\x61\x28\x7f\x98\x80\x0b\xab\x69\xd6\x75\x5c\xbf\xc0\xa7\xe8\xa7\x75\xf7\x02\x81\xe2\xff\x0f\x4f\x2f\x7b\x64\x2e\x0a\x5d\xef\x66\x8c\x3c\x75\x4f\x73\xc8\x21\x7a\xc5\xa8\xcc\x08\x4a\xcd\xc8\x2c\x24\x42\xc1\x0a\x51\x33\xea\xdc\xbc\x31\x5e\xc3\xa8\xf4\x16\xb5\x62\x84\x5e\x11\xde\x32\xb9\x4b\x84\x47\xde\x0a\x8b\x15\x8e\x0c\x0f\x17\x77\x03\x5c\x99\xd5\x96\xbf\x77\x15\xc6\x08\x10\x47\x62\x29\x34\xaa\xa3\x6c\x26\x85\x8c\xf1\xf9\x20\x2f\xb5\x63\x14\x2c\x44\xe4\xb5\xd6\x04\xba\x38\xd5\x77\xe2\x09\xc4\xe3\x37\x85\x18\xdc\xc2\x19\xac\x71\x54\x2b\x59\x1f\x54\x26\xcf\x05\xb9\x4a\x6a\x93\x01\x07\x4d\x11\xe1\xbb\x4f\x6e\xb1\x53\x5e\x10\x59\x55\x59\x3d\xc0\xc1\xf1\xcc\xb9\xbe\x54\x94\x79\x36\xda\x7b\x19\xf8\x2d\x6d\x7e\x3d\xc1\x13\xaa\x8e\x5f\x79\xe9\x59\xfe\x1a\x39\x7e\x23\x33\x0b\xe6\xaf\xa7\xe5\x1b\x93\x1d\x58\x05\x06\x4e\xb8\x5e\xba\x38\x08\xad\xf5\xa5\x58\x24\xed\x71\xb3\x73\x68\x53\x07\x86\x92\xd4\xf2\xd3\xa9\x9f\xea\xd7\x4e\x89\x7d\xd8\x16\x4e\x8c\xbc\x17\x78\xe5\xcc\x67\xb3\x67\xb8\xf9\xf0\xe6\x30\x0e\xdf\xe3\x9c\x96\xec\x71\x0c\xb8\x4e\x72\xe9\x3a\x25\x20\x78\x6c\x88\x45\x98\x11\xa5\x68\x7e\x8d\x36\x5d\x98\x97\x48\xd3\xf5\xde\xe0\x67\x25\x4d\x89\x77\xa5\x61\xaf\xf2\x1c\x85\x1d\x99\xfc\x54\x7b\x5b\xe1\x60\x51\x50\x20\xc7\x57\xac\x67\x41\x11\x8e\x66\xb9\x65\x0c\x91\x75\x1d\x5c\x40\xf2\xd7\x73\x80\x43\xc1\x75\xfd\x54\x51\x72\x54\xc3\xeb\xa1\x5d\x87\x11\x7d\x71\x53\x6a\x80\x21\x07\xda\xbd\xdd\xdb\x9f\xc1\x13\x92\xf3\x5e\x18\xad\xa1\x3c\x32\xab\x6d\x6a\xc3\x5c\x4f\x19\xc6\x01\x2f\xc2\x61\x1b\xf4\x61\x84\x19\x87\xf0\xf5\x9c\x95\x71\x20\xe1\xd8\x59\x77\x23\xdb\xc0\xa1\x8b\x0e\x32\x5b\x8a\xfc\x12\x96\x49\x73\x70\xc8\x11\x21\x8b\x9f\x86\x81\xa8\xed\x53\xdf\x83\xf3\x04\x1b\xd8\x87\x30\xf3\x90\x8d\x24\xd2\x9f\x19\x7d\x28\x5a\x13\x09\x06\xef\x38\xe6\xc2\x90\x94\xc7\x7d\x20\xd7\x90\xd1\x92\xea\x50\x4c\xeb\x2a\xcc\xce\x65\x42\xb4\x33\x2a\x53\x84\xa9\x12\x44\x3b\x4b\x66\x24\xde\x0f\x3f\x9a\xc8\xe4\xe8\xa8\x99\x34\xe1\x38\xff\x73\x44\x7f\x6c\x6e\x94\xd9\x25\xf5\x6e\x43\x13\x20\x10\x1c\xd3\xbe\x7f\xd4\x14\x96\x02\xb3\x36\xb2\x91\xfe\xd6\x28\xa2\xab\xa7\x24\x8b\xa3\xab\xca\x24\xe8\x38\x61\xf5\xc3\xdc\x44\x81\xac\x41\x93\x7f\xfc\x6c\x9d\xc8\x31\x25\x1b\x45\xbc\xd0\x17\xb9\x38\x1a\x59\xec\x66\xe2\x36\x19\xed\xa4\xa3\x3e\xc9\x1c\x07\x08\x79\x0b\xd6\xa9\x18\x2d\x37\x35\xb1\x58\xc6\xd3\xec\x7a\xef\x28\x22\x55\x8c\x1d\x4d\xbb\xa2\x9a\x3b\x89\x71\x9c\x2e\x82\x41\x9b\x98\x07\xd6\xe9\x43\x52\x3a\x60\x4e\x05\xad\x49\xb6\x50\x52\xcd\xeb\x8f\x5c\x27\x83\xe2\x00\x21\x9e\xe5\x9f\xd8\x68\x71\xad\xe6\x8e\x49\x4c\x9f\x1d\x93\xe1\xb3\xe0\xeb\xac\x77\x74\x17\x50\x27\x88\x22\x6c\x3b\x28\x3c\xc2\xc7\x3a\x66\x02\xee\xe6\xe7\xef\xfc\xf2\x82\xa5\x5a\x9c\x21\xc8\x6c\x42\xcb\xb3\x9a\xa5\x92\xaf\x85\x54\x88\xda\x62\x8f\x78\x0a\x1f\x51\x3d\xa1\x51\x03\xf2\xd3\xaf\xb2\x46\x91\xc4\x5e\xa7\xe2\x68\x57\x1d\xab\x3c\x4f\xb7\x13\xc1\x51\xe2\x79\xb9\x12\xcb\x76\xdf\x1f\xce\xc1\x08\xfe\xa1\xa9\xa7\xf0\x43\x93\x07\x88\x76\xf4\xbf\x4f\x9c\x15\x19\xe3\xae\x91\xd9\x3d\xe0\x0a\x71\xaa\x23\xd5\x11\xdd\x33\x5b\xb3\xbc\x6e\x58\x9b\xfb\xda\x5f\xe2\xb0\x9a\xd7\xac\x79\x96\x6e\xf2\xa9\x38\x94\x53\x42\x7b\x93\xdc\x1d\x82\xf4\xd9\x8a\xdd\x37\x8c\x7c\x36\x62\xfb\x44\x33\xb7\x53\xe5\x76\x33\x86\x24\xcf\x6d\x91\xbb\x67\xa7\xc6\xf2\x0a\x2c\xae\xfa\x3a\x8c\x43\x30\xcf\x5a\xcb\x0e\x57\x10\xeb\x48\xf3\xff\x26\xdc\x4b\xc1\xcf\x43\x01\x2f\x74\x2c\x7e\x08\xb0\x74\xa6\x0f\x6f\x5b\x73\x96\x24\x45\xf2\x96\x8c\x57\xbb\x84\x19\x9f\xf3\xf7\x4c\x58\xdc\xd5\x5a\x1e\xac\x7e\xdd\x6a\x9d\x30\xf6\xc4\xd9\xaa\x67\xd2\x75\xd0\xfa\x11\x09\xa2\x95\x76\x19\x22\xaf\xa1\x9b\x91\x90\x89\xfe\x00\x0a\x82\x6f\xd5\xcd\xfd\x41\xc8\x42\x5e\x5a\x25\xb5\x60\xa9\x8e\xc4\x38\x4d\x4b\xcb\x79\x43\x6a\x21\x4f\xd9\x84\x04\xfe\x39\xdc\x71\x1c\x43\x43\x60\xbe\x44\xef\x69\xb7\x9f\x4e\xbc\xd0\x6c\x30\xf4\xda\x7b\xcc\x8f\x3c\x0c\xcf\xa2\xb7\xe0\xab\xfe\xac\x12\x69\x53\x1d\x08\x3a\x3b\x3c\x6f\x6e\xbc\x07\x56\xf0\xf7\x37\x37\x84\x07\x99\xe7\x76\x25\xbc\x4a\xd7\x72\xc0\xb7\x3e\xa8\xda\x12\xa3\x23\xbf\xd7\x72\x12\x9c\xb3\x1b\x93\xf0\xc0\x02\x58\x65\xbd\xdc\x31\x43\x37\x71\x20\xa4\xd4\xc7\x00\x4b\x6c\x35\xd7\xc4\x10\xa4\x5f\x92\x11\x8d\x65\x58\x4a\xab\xa8\x24\xbd\x01\xe2\x66\x07\x42\x8f\x8b\x74\x27\x1d\x20\x07\x7b\x8b\xb0\x2f\xe6\x84\x41\x2e\x15\x3f\xc2\x37\x27\xc1\x5a\xd8\xb3\x05\x96\xff\x52\x31\x8e\x47\x51\x4f\xb1\xd2\xc5\xf6\xb9\x49\x1a\xe5\x49\x3f\x82\x78\x6e\x25\xf1\xfe\x1b\x59\x2c\xe0\xd6\x14\xe0\xaa\x66\x2f\xcb\xe1\x21\xa7\xb5\x9e\xe3\x69\x6d\x79\x60\xdb\x9d\xab\xf4\x64\xd7\x14\xe3\x7d\x20\x31\xe5\x82\xd3\xab\x1c\x19\xa5\xb5\x97\x08\xca\xcf\x94\xad\x5e\xe0\x33\xe8\x0c\x70\x89\x1d\x7e\xbe\x73\x9a\x04\xe2\xbf\xf9\x96\xb1\x0b\x25\x4e\xfb\xae\x3e\x2a\xaf\x85\x9b\xd5\x0f\xf1\x76\xdd\x14\xe0\x24\xa7\x63\x76\xd3\xbd\x8d\xe5\x75\xa1\x76\x5b\x27\xe5\xb7\x76\x88\xa6\x37\xf6\x6d\x25\x72\xe2\x50\x9e\x32\xf5\x0d\xd2\xc4\x8b\x14\xf1\xe6\x37\xb3\x54\x6b\xcf\xa3\x37\xd5\xd9\x4b\xcb\x74\x6f\x94\xe5\x89\x97\x47\x4b\x09\x50\x69\x4f\xf1\x74\x09\xd8\x9d\x21\x33\x07\x2c\xeb\xc8\xfc\xda\x38\x20\xae\x96\x5b\x57\x22\x9d\x17\x0f\x0e\x6b\x8a\xfb\xea\xed\xfd\x1a\xff\x47\xff\xd9\x38\x1c\x2a\x5e\xee\x59\x67\x9e\x69\x94\x73\xc7\x78\x52\x66\xdd\x74\x94\x96\x44\xb1\x6c\xf2\x90\xb9\x30\xd7\x4b\xe2\xdd\x00\xe6\xa0\xce\x33\xb9\x19\x8c\xf4\xe0\x25\x15\x03\xd0\x11\x2b\x31\xf1\xf4\x04\x65\x32\x90\x3e\x94\xaa\xbd\x9f\xec\xc6\x93\x81\xf6\x5b\x02\x7b\x26\xef\xa7\x2d\x87\x96\x4e\x41\xaf\xf6\x58\x26\xf9\xe5\x98\x93\x71\x5f\xc7\xc3\x41\x6f\x48\xe3\xa7\xce\xaf\x44\x78\x76\x3d\xcd\x5a\x60\x5c\xfd\x33\x4d\x5e\x37\xeb\x79\xd2\x3f\xb9\xdb\xcd\x4a\xf4\xca\x68\x90\x5e\xc6\xd4\xf3\xc0\xa9\xf9\xe3\x76\x28\x55\x3b\x18\x89\x27\x90\x5c\xc5\x4d\x92\xd5\xe6\xe9\x06\x67\xb9\x47\xfc\xb4\xcc\x50\xad\xd3\xf1\x3b\x67\x6e\xdb\xad\x83\x24\x5d\xaa\xe6\xe0\x4b\x40\x94\xd1\xce\x60\x92\x28\x6c\xe9\x66\x88\xb0\x18\x53\x4f\x47\x70\xf4\x27\x67\x3d\x61\x58\xe2\x1e\x9d\xde\x20\x1b\x29\xba\xdb\xef\xe7\xc8\xb4\x89\x00\xb1\x40\xc2\xcb\x87\x0d\xfd\x7c\xf9\xdb\x4f\x1a\x6c\x93\x6a\x3e\xfb\xfa\x2f\xdf\x75\xd4\xfc\x2c\x7c\xdb\x4c\x7a\x32\x8b\x2e\xc9\xed\x4e\x5a\x53\xbb\x02\xed\xcc\x0c\x8e\x2d\x03\xce\x93\x83\xb6\xf8\xca\x89\xba\xa1\xa1\x2e\x34\x7b\xf0\x99\x35\x58\x97\xad\x50\x7a\x5c\xc2\xda\x0a\x68\x10\xbd\x07\x71\xad\x40\xee\x98\x22\xb3\x48\x06\xbb\x2e\x56\xb7\x7c\xaa\x37\x40\x43\x8a\x8e\x99\x8c\xf3\x26\x83\x8e\x61\x13\x89\x4d\x1b\x5f\xed\x0e\xd2\xd1\x25\x4a\xbf\xff\xd8\xde\x93\xf9\x62\x19\x72\xd9\x82\xf4\x5e\xb6\x91\x89\x1e\xa2\xe0\x75\xeb\x36\xfb\x7f\xfe\xe7\xd7\x17\x5e\xd5\x47\xf4\x6a\x99\x0f\xe0\x2f\x6b\x10\x12\xf2\xdd\x12\x7d\x0c\x7b\x0a\xb1\x5f\x82\x50\x7e\x18\xdb\x9f\x73\x86\x3c\xe7\x31\x5e\xcf\x63\x4c\x41\x03\x5c\x24\xa6\x5d\x19\xa7\xf0\xd2\x3d\xb9\xf4\xd8\xed\x0d\xa3\x03\xd4\x19\x7a\xd9\x92\xc5\xa1\xe2\x6a\x2e\x46\x11\x5e\x4b\xdd\xfa\x4a\xc4\x0a\xbd\x75\x33\xf8\xdf\xd1\x63\x82\x36\xfe\x29\x50\xce\x5c\xa1\x18\xa8\xdb\x34\x37\x3d\xcc\xf9\xe6\x06\xff\x7c\xd7\xfe\x32\x81\xb4\x3f\x4c\xe1\x95\xb8\xa6\xfd\x1c\x31\x41\x0f\x79\x40\x4a\xf7\x47\xfe\x99\x0a\x7a\x04\xf9\x08\xc4\x60\x99\x9f\xeb\x6d\xe1\xd3\xf2\x0f\x27\x70\x19\x7b\x93\x14\xe2\xa0\xff\x91\xa4\x41\x54\x8d\xb1\x24\xc8\xd9\x22\xb1\x0a\x0c\x9e\x6c\xb9\x9f\x16\x8c\x44\xbe\x71\x5f\x7e\x23\xcb\x23\x32\xc2\x20\x9b\xd0\xcb\x86\xc3\x78\xd4\x0f\xa5\x85\x09\xb2\x23\xd6\xc7\xcd\x49\x1e\xc6\x92\x22\xba\xf3\x83\x13\x21\xc4\x42\x82\x8f\x2e\xaf\x8e\x14\x71\x4c\x2a\x03\x8f\x1a\x99\xe3\xd0\x73\x7a\xbc\x7a\x32\xdc\x86\x3a\x07\x4c\xa3\xbe\x8a\xb5\x95\x49\x95\x57\x1b\x69\x2f\x80\xd7\x18\x39\x0c\xa0\xb7\x46\x75\x8c\xb9\x95\x36\x37\x3c\x92\xbe\xb9\x51\xe6\x89\xba\xb3\xaf\xb4\x4f\xb8\x6e\x81\xd9\xeb\xcb\x78\xaf\xb0\x17\x64\x38\x0b\xd4\x05\x5c\x03\xc1\x1a\x20\x5e\xf7\x48\xfc\xa6\xe0\xfe\x4c\x69\x8a\x9c\xd6\x8d\x85\x46\xa0\x62\xc9\x3a\x95\x4a\x06\xf1\x4e\x02\x0d\xff\x80\x3a\xed\x63\xdc\x35\xe4\x3a\x4a\x07\x49\x51\x2a\xe0\xe2\x4f\x40\xfb\xc1\x0d\x4e\x81\x49\x0a\x15\x50\xbe\x43\x94\x8d\xcc\x16\x25\x72\x1c\x24\x71\x91\x14\x44\x96\x0f\x99\x95\xba\xa9\x5e\x03\x38\x1c\xe6\x31\x16\x29\xba\x41\x87\xcb\x3f\x2a\x98\xa5\x5a\x26\x5f\xb3\x68\x74\x4d\xf4\xc0\x14\x4a\xd8\x0d\xa4\x98\x07\x11\xa5\x7c\x15\xbd\x15\x26\x19\xc6\x84\x42\xef\x68\xba\x8f\x12\x06\x0b\x0a\x26\x61\x2b\x3a\x43\xd1\xaa\x3b\x4d\xab\xd7\xdf\x83\xb5\x57\xd8\x02\x1f\xec\xb0\x8b\x9a\xe0\xdb\xd5\x94\x02\x5f\xe5\x27\x60\x52\x00\x37\xff\x5e\x3b\x3e\xd9\x4f\x43\x85\xd7\xb9\xfc\xd3\x97\x28\x4d\x7e\x61\x11\x84\x6e\xd3\xc7\x7c\x11\x5f\xe9\x08\x6d\xfd\xb3\xcd\xdf\x75\x41\x27\x48\x97\x93\xaa\xe7\xac\x3f\x33\xdc\xcc\x45\xb2\x29\xac\x15\x85\x16\x2f\xcf\x52\x29\x5b\x74\x1a\x00\x42\xb4\x18\x81\x54\xb1\x03\xde\x90\x06\x87\xcd\x6c\x63\xa7\x69\x4f\x81\x45\xde\xd5\x43\x7e\x8d\x89\x52\xe6\xe4\x55\xed\x74\xf2\x66\x30\xd0\x67\x80\xcf\x5f\x80\x68\xe1\x2c\xc2\x6f\x4a\x0b\x10\xad\x03\x6b\xf0\xfb\x64\xe3\x64\x24\xbb\x7c\xbb\xa4\x2a\x04\xd7\xb4\x06\x7d\x66\x1f\x84\x33\x55\x56\x40\x9e\x16\xdb\xf1\x8f\x78\x7d\x6b\x74\x55\x1c\x23\x14\xd9\xa2\xe5\xb1\x3a\xfa\xb4\x72\xeb\xf7\xc8\xfd\x38\xed\xe5\x76\xe6\x2b\xba\x83\x89\xcb\xf4\x35\x07\xd7\xd6\x8b\x08\x05\xe9\x3d\x8e\x51\x1d\x43\xee\xfc\x0f\x5b\x60\xc8\x80\x07\xc1\x5a\x03\x70\x50\xab\xee\x78\x10\xf7\x12\x9d\x4f\xce\x49\x05\x20\xc0\x63\x8a\x15\x90\x9c\x25\xe9\x49\x1c\x82\x15\x9a\x0a\xaf\xb3\x8c\x77\xb6\xcf\xf7\x49\x9b\x26\x2e\xc4\x8e\x09\x97\x67\x5a\x1d\xf9\x17\x67\xda\x29\xe4\x03\x89\x27\x78\xee\x3f\x04\xa6\x93\x2d\x94\x40\x04\xec\x24\x3a\x31\xde\x16\xee\x42\x2c\x6d\x86\xd7\xcb\x03\xb4\xbc\x01\xbf\x85\x9c\xe6\x9f\x81\x49\x23\x6e\x24\x30\x57\x60\x94\xf5\x60\xcf\x36\x86\xea\x38\xce\x8c\x0e\x18\x99\xd9\xda\x60\x8a\x07\x13\xd2\x58\xe8\x53\x07\x32\x2e\x6a\xfa\xe6\x54\xda\x78\xec\x13\xbb\x50\xe7\x82\xeb\xd6\x29\xa6\xf6\x6a\x36\x21\x27\xd2\x23\xa9\x40\x66\x30\x03\xb6\xfc\xe3\xe0\x10\x04\x67\xfd\xee\xce\x55\x1a\xe1\xae\x5b\xf4\xa5\x9a\x0b\xff\xba\xf0\x08\xc3\x64\x04\x26\x06\x48\xf0\x4b\x23\x30\x87\x8b\x9a\x5c\x6d\xda\xd2\x5e\x16\x0b\x7f\x88\x02\x73\xc3\xdc\x61\x05\x01\xf0\x4d\xf7\x30\x4f\x4e\xad\x51\x07\x4a\x06\x16\x25\x51\xa2\x87\x02\xf5\x07\x9a\xc2\x43\xb3\x4d\x25\x11\x09\x34\xce\x93\x9e\xda\x01\x79\x2d\x07\x0c\xe9\xbe\xaf\x6c\x78\x10\xe0\x0c\xcc\x18\x80\x4b\xc9\x56\x7a\xea\x29\xca\x5a\x46\x18\x66\x45\x09\x24\x8e\x7d\xf4\xbc\xbc\x0e\xcc\x13\x52\x4e\x63\x63\x73\x6c\x5e\x4a\x7d\x24\x90\x3c\x8f\x57\x8f\x04\x88\x04\xc1\x61\xdb\x45\x23\xd1\xf9\xf7\x9e\x7b\xbf\x20\x60\xb0\x8e\x41\xef\x3d\xff\xbe\x12\x3f\xce\xbf\xf7\xc2\xfb\x05\x48\x1e\xf5\x51\xba\xbb\xf1\xa5\xa4\x65\x28\x1c\xc1\x74\x1b\xe7\xc9\xe5\x34\x9b\x14\x96\x89\x9e\x93\x43\x82\x40\xa9\x90\x6a\xf3\xae\xe3\x17\x38\xf5\xb0\x20\x17\xac\x68\x43\x82\x7d\xdd\xaa\x46\xbd\xec\x4c\x93\x61\x97\x4f\xb1\x40\x7c\x29\xcf\x8d\x5d\xfa\xf5\x90\xd4\x0c\xb4\x36\xe5\xf6\x07\xf5\x03\x86\x03\x4b\xfb\x70\x5c\x6a\xdf\x5a\x6e\xfb\x2b\xfa\xeb\x65\x3c\x01\x38\xbc\x0f\xec\xd4\x99\x75\xf1\xb9\xe5\xc4\x6b\x9e\x1a\x87\x8d\xba\xe7\x4f\xc7\xc3\xf3\x5c\x10\x4f\xee\xd0\x27\x05\xbc\xf0\x60\xd3\x48\x27\x30\x75\x61\xe5\xa1\x19\x22\x4f\xf0\xb8\xb9\xef\xb7\xb2\x27\x20\x00\xa7\x82\xa5\xdb\xc5\x9b\xb6\xad\xeb\xca\x55\x30\x9d\x34\xf0\xfe\x4d\x5b\x5b\xba\x7a\xbc\xa4\x23\x67\xaf\x67\xbc\x20\xda\x87\x1e\xaa\xb6\xe4\xc5\x93\x8f\x4c\x4c\xae\x92\x24\x77\xcd\xd8\x1c\xda\x33\x17\xf6\x59\x87\x36\xd0\x43\x92\xdc\x3b\x98\xdf\xce\x36\xed\x38\xa3\xc2\xaf\x3f\x90\x52\x15\x8d\x1e\x28\x7b\xf3\x77\xcc\x48\xdc\x54\x1d\x13\xf9\x7e\xfd\x02\x5b\xac\x52\xdc\x44\x67\xbb\xdc\xcd\xf2\xee\x2e\x8a\x92\xa1\x98\xcf\x87\xac\x32\xc1\x72\x65\xea\x18\x28\x3f\x86\x04\x26\x9d\x9b\x51\xa7\x33\x22\x8d\x83\x97\xe2\x4e\xa4\xe3\x65\x13\x85\x3d\x46\x96\x8e\xef\x93\xfc\xbf\xbc\x26\xa3\x1e\x9a\xb2\xb3\xba\x3e\x91\x22\x15\xe4\x96\xaf\x7a\x72\x80\x10\x5a\x38\x08\x32\xe9\xa7\x25\x6d\x1c\x08\xc5\xb1\x0e\x78\xd3\x50\x50\x0f\xc4\xd2\x9b\x8e\x2f\x9b\x3c\xa5\x73\x41\x90\x89\x13\x2b\x6b\x09\xae\x5c\x06\xd3\x6b\xde\xcb\x06\x20\xbd\xfd\x2b\x46\x94\x5c\xaf\x77\xa8\x35\x07\x3b\x2b\xa0\xc2\xb0\x50\x43\xad\x2c\x52\x28\x42\xcc\xa8\xcf\xd8\xf8\x6b\x6a\x3f\x18\x6a\x13\x08\xf2\xf4\x5a\x78\xd9\xcc\xa4\x59\xae\x65\x83\x4d\xf1\x0f\x2b\x3b\x9c\xd1\xbd\x42\x0c\xd8\x16\x02\x51\x05\xa2\x1d\xc8\xa4\x46\x89\x0a\x2b\x0e\x2b\xa7\xd2\x42\x6b\x78\x58\x08\x76\xf2\xec\x96\xe7\xf0\xc6\x6d\x7c\x84\xdd\x13\x29\xc8\x57\x39\x36\xb2\xf6\x06\x30\xde\x38\x56\xcf\x97\x22\x99\x30\xa5\xf5\x35\xe6\x9d\xe6\x2e\xef\xc4\xa1\xe2\xc1\x6e\x7c\x03\xa6\x2f\x57\x64\x64\x1e\xe1\xba\xb4\x17\x4c\x23\xb2\xc9\x3a\x85\x4d\x8e\x8c\x0a\x69\x1a\x52\x21\x99\x92\x17\xd3\x8a\xaa\x6b\x9b\x38\x05\xcd\xeb\x3e\x00\x03\x35\xe2\x8d\x8e\xbf\xc4\x9d\xb8\x48\xb6\xe9\x4c\x2b\xa7\x68\x8b\x93\xc7\xbf\xb6\x31\xfa\xdf\x6d\xb5\x52\x73\x1e\xba\x0d\xb3\x7b\x5a\x33\xf7\x2f\x80\x9b\xf0\xdc\xaf\xb1\xc1\xed\x58\xeb\xea\xa8\xbd\x62\x28\xf2\xa4\x98\x0c\x40\x2d\x64\x7c\x3e\x51\xd9\x08\xb9\x08\x91\x9f\xb9\x4e\xc1\x46\xdc\xbc\xdc\x07\x76\x1e\x55\xe5\xb4\x0a\x51\xb5\x03\x15\x8c\x0b\x7d\x4a\xee\x81\x57\xa7\x1a\x13\x9a\x68\xc1\xc0\xc6\xfd\x04\x06\x54\x2f\x48\x1d\xc4\x27\x08\x3a\x14\xad\xc1\x49\x36\xd0\xf4\x65\x97\x06\x59\x3c\x64\x9d\x62\x45\x22\x5d\x9c\xbd\xc6\x55\xda\xeb\x5a\x9a\xd8\x85\x43\xd4\x54\xa2\x55\xf7\x11\x24\xc4\x17\x2c\xae\xa2\x99\xcf\xe2\xe4\xcf\x02\x9f\xdb\x67\xfa\xf9\x57\xf8\x07\x53\x51\xbe\x39\xd6\x22\x38\xc2\xfa\x8a\xd5\xe8\xbe\x88\xb9\x2d\x09\xc3\x2e\xe8\x98\x73\xaf\xe2\xec\x14\xc2\xf4\x89\x40\x0c\x0b\xeb\x7b\x4a\x3b\x66\xcf\x21\xb9\xa8\xa6\xf2\xf8\x6f\x8d\x23\xf4\x97\x17\xcc\x17\x3d\xff\x30\xc9\xf7\x34\x57\xcc\xcb\x10\x73\xab\x91\x7f\x9a\xe9\xd4\x30\xff\x01\xf8\x7d\xde\x74\xbc\x03\x8c\x2e\x14\x8f\xe7\xf8\xef\xef\x5c\x8a\xec\x36\x0c\xeb\x35\x6d\x0b\xd0\x99\x16\x6e\x10\x28\x87\x8e\x7a\x66\x7f\xea\xc2\xcc\xa8\x02\x72\xdc\xbc\x48\x0f\xda\xc2\xd0\xf9\x91\xc9\x6b\xe1\x0d\xcf\xeb\xd3\x44\x29\x35\xdc\x6f\xc7\xbd\x14\x8a\x38\xd6\x37\x31\x93\x78\x00\x5e\x83\x6e\xf4\xfd\xda\x4b\x9a\x39\xf3\x56\xa1\x00\xd0\xa7\xf4\x0c\x4a\xa0\x8d\x15\x9e\x21\x0f\xc6\xaf\x2a\x2e\x13\xb2\xd4\xce\x8e\x67\x38\x89\x65\xb8\xf6\x04\xf9\x79\x5d\x43\x7d\xc3\xdc\x0f\xa5\x0b\x51\x40\x93\xa6\x97\x6a\x1a\xce\x82\x4e\x32\xe2\x10\x15\x2f\xd5\x45\x47\x0a\x3c\x28\x86\xed\x3f\xd5\x7c\x39\xe5\xc5\x1c\x68\xd6\x8f\x2b\xfe\x5c\x68\x7b\x87\x6b\x9f\x80\x5c\x11\xfa\x10\xf8\x8b\x0a\x5b\x63\x5d\x90\x59\x67\x5d\x3e\x02\x0e\xd9\xa0\xae\xdb\x52\x24\x48\xce\x48\xb3\x2a\x30\xa3\xf3\xd0\x97\xd7\x5b\x97\xbf\x6e\xf1\xe9\x8a\x8b\xa7\x63\xb8\xab\xe1\x8f\x4d\x8c\x4b\xd8\xe8\x25\xf9\x6a\xf0\x03\x91\x05\xa9\x2c\x7f\x6e\xf9\x49\xf7\xf5\xb8\xc4\xc2\x79\x49\xab\x6f\x0c\xbd\xd3\x8d\x8d\xc8\x31\x2d\x18\x3d\xa3\xf8\xde\xae\x83\x15\x0d\x57\xea\x61\xfd\xb6\xfd\x9a\xa2\x02\xd3\x95\xc9\xb5\x65\xdd\xfe\x44\x01\x12\x12\x20\x43\xab\xd1\xf9\x8e\x9c\x93\x3e\xc6\x53\x3a\xae\x2d\xd8\x11\xbf\xeb\x33\xd7\xf4\x07\xee\x79\x28\xfe\x6f\x67\x3f\x89\x51\xad\x2d\xc8\x1e\x5d\x8c\x31\x03\xb8\x57\x28\xf3\xb6\x78\xbe\xaf\x82\x41\x65\x90\x93\xeb\x09\x91\xd7\xd0\x3d\x58\xd5\x0e\xba\xa4\x90\x7f\xea\xcc\x69\xd2\xe0\x60\x26\x5b\x98\xd3\xfc\xa6\x76\x88\x90\x43\xdc\x2b\x87\xaa\x3e\x3f\xe3\x9d\x5e\xc2\xc9\x25\xac\xe9\xc2\x69\x60\x0a\x36\xf1\x44\x20\x0f\x0f\xe3\x32\xe4\x28\xe2\x54\x0d\xe5\xd7\x42\x42\xb2\x7e\x29\xbc\xb0\xad\x70\xea\xda\x9f\xa9\x73\xc0\xff\x03\x3d\xe0\x09\xa4\x8d\x3f\xfc\x59\xe8\x6c\x5d\x6e\x5e\x1d\xab\x71\x8c\x5a\xfa\xb5\xc0\x6b\xe4\x42\x0c\xe6\x8b\x70\x46\x11\x13\xbe\x2e\x68\x2e\xe1\x48\x24\x42\xd0\xc4\x76\xa1\xab\xff\x38\x6e\x04\xa6\xe0\x9f\x01\xb4\x9a\x20\x6e\x53\x80\x2d\xb8\x62\xc9\x31\xa3\x3f\x2a\xd8\xa6\x55\x1d\xba\xb4\x9d\x77\x2a\x75\x31\x5c\x7c\x5d\x25\x63\x36\xec\x93\x4f\xf8\x8e\x2f\xd8\x44\x02\xad\xd0\xb9\xaf\x93\x07\xe3\x29\x0f\xac\x1b\x05\x58\x7f\x35\x67\x12\x5d\xcd\xba\x7e\x02\x69\x75\xb1\x5e\x34\xc0\x8f\x92\x55\x43\xfb\xf4\x61\x7b\x5d\x29\x55\xa7\xc3\x0a\x64\x30\xb1\x1f\x3b\x54\x2e\xb9\xb0\x75\x92\xe5\x47\x51\xb9\x09\xee\xe6\x2e\x4c\x8d\x34\x90\x28\xdd\x67\x9a\x36\x83\x72\xcb\x74\xda\xcf\xb2\x4b\x05\xa7\x4a\x02\xdf\x8c\x1b\xde\x8c\x7b\x69\x49\x4d\xa0\xcc\x7a\xe0\xbb\x92\x3a\xd3\x5e\xd7\xae\xde\xa9\xd3\x16\x48\x5c\x23\xba\xf6\x41\xa4\xce\xbb\xbf\x25\xc3\x30\xa6\xee\xf8\xb8\x32\x39\x18\x8e\x08\xe9\x89\xf6\x94\xd4\xe9\x5b\xa7\xbe\x1d\xe1\xcb\x8a\x33\x3c\x99\xa6\x9c\x1c\x46\x2c\x6b\x65\x36\x1d\x79\x90\x94\xed\x04\xbc\x60\xbc\x14\x4a\xd3\x6a\xfd\x14\x4a\x26\x6b\x12\xa3\x0b\x1b\xa9\x65\xbc\xb4\x78\x25\x37\xb9\xb8\x6e\x9b\x77\x2d\x7c\xea\x88\x35\x96\x4a\x28\x2f\x76\x4d\x72\x57\x99\xf1\xd0\xcf\xb7\xc8\x54\xa7\xd6\x55\xbc\x49\xd1\x5f\x47\xa7\x34\x39\xfc\xac\x4c\x85\x69\xbc\x09\x39\x3d\x54\x30\xd5\xe2\x16\xfb\xc1\x2d\xf0\xf5\x2e\x6a\x9a\x50\x19\xa5\xd3\x98\x67\x5e\x9e\x07\x70\x09\x94\x2a\x18\xa4\x95\x82\xdc\x73\xc7\x99\x1b\x96\xdc\x90\x3d\xd6\x95\xec\x83\x9e\xcd\xe0\xb3\x64\xe2\x63\xec\x8a\x21\x6b\x65\xcd\x6f\x5b\xe7\x59\x59\xd8\x78\x6b\x0b\xf3\x35\x9d\x62\x5d\x79\x17\x3e\xf9\xda\x20\x5a\x17\x55\x99\x72\x38\x53\xbd\x30\x37\x49\x66\x18\x98\xb6\x44\xe0\x19\x02\xab\x93\x47\x06\xb1\xe4\xa1\x93\x1d\x96\x5d\x73\x97\xec\x67\xa8\xe3\x8a\x4e\x51\x6d\x52\x07\x2e\x28\xc6\xad\x30\x61\xf7\xb9\xed\x0b\xa6\x76\x90\x7e\x28\xd0\x55\x03\x8c\x13\xfb\xb4\x45\x59\x20\x4c\x56\xa3\xb6\x6b\x9b\x35\x07\x90\x35\x65\x68\x6d\x5c\xe4\xf3\xa1\x45\x12\x39\xac\x2f\x92\x18\xf8\xf9\x19\xd7\xda\x90\x28\x75\x6e\x46\x39\xa8\xb8\xbe\x12\x71\xb5\x15\x27\x0b\x5d\x34\x0c\xaa\x1d\x66\x6f\x07\x37\x06\x5c\x9e\xd6\xd3\x1b\x85\xc3\x81\xcf\xf2\x58\x0b\x74\x5b\xe2\x1b\xa7\xc8\xcd\x52\xc4\x3e\xb1\x7c\xee\x46\x75\xc1\x40\x2f\xd6\x81\xd5\x01\x87\xc6\x88\xb0\xbf\x50\x38\x57\xfd\x05\xba\x37\x7f\x96\x08\x35\xcb\x53\x2c\x8c\x6e\xa2\xe9\xcd\x6e\xd5\x2c\x43\x1c\x9d\x85\xc4\xd4\x94\x43\xdd\xaa\xf1\x22\x5b\x75\x3b\x30\x59\x4a\x5d\x30\xac\x8c\x7b\xb8\x24\xf4\x9f\xba\x2f\xd2\xdb\x30\x3a\x67\xe3\x2d\x50\x69\xaa\x56\x64\x3f\xf3\xd3\x57\x2c\xbc\x1a\xf2\x9a\xe1\xaa\x0e\x1a\xe3\x88\xf8\x10\x75\xe9\xf8\x53\x2d\x5e\xcc\x74\x50\x1f\x22\x93\x13\x62\xd1\x18\x97\x05\x63\xea\x20\x10\xfd\xc6\xaa\x9d\x3d\xbf\xf6\xce\x04\x63\xfe\xe4\xbb\x12\xd5\xf1\x6b\xd1\xa8\xac\x75\x42\xf4\x8a\x5f\x6c\x6c\x79\x60\x77\xab\x36\xf6\x82\xdd\x98\x29\x6f\x2a\xf5\x37\x35\x8c\xb5\x3a\xc2\x6b\xad\x03\xdf\xa2\x00\x02\xca\xcb\x5c\x39\x09\x3a\x5b\xa8\x4b\x0d\x6e\x3a\xcd\xdc\xd9\x5a\xc9\xfb\x1a\xa6\x59\x33\x89\x5f\x1d\x41\xb2\x05\x59\xb8\x70\xd6\x0c\xc9\xa6\xd3\x30\xbe\x94\x74\x5b\x18\xae\xd0\xf8\x14\x68\xde\xf7\x6c\xd4\x95\x97\x1c\xa6\xe9\xf0\xb4\xe0\x23\x66\xe1\x60\xb6\xc6\x9d\xb9\xf1\xaa\xeb\xc7\xa9\x9a\x01\x20\x05\x88\x15\x21\xc0\x62\xeb\x64\x80\xe2\x54\x05\x1e\xb2\x01\x55\x4f\xe3\x08\x5e\x8d\xdf\xca\xa4\x15\x99\x35\x0f\x27\xb7\x94\x27\xc3\x0c\xcb\x20\x87\x86\xbc\xeb\xf7\x34\x92\x56\xed\x21\x3a\xb0\x07\xb5\x16\x52\xcc\xd1\xde\xa5\x92\x9c\xe1\x74\xab\x37\x69\x30\x2f\x37\x7b\x4b\x25\x93\x79\x30\x77\xbf\xa1\x55\x6e\xee\x1b\xc3\xac\xb5\x1f\x00\x1c\xe8\x95\x64\x07\x04\x30\xf7\x36\x28\xa5\xae\x96\xd7\xa6\xbe\x3c\xc7\xac\xa1\x2b\xd4\xd1\x5b\x12\xbe\x5e\x3a\x0c\x7c\x4e\xa1\xc3\x7a\x8b\x70\x08\xd5\x71\x65\x33\x15\x42\xd8\x52\xf4\xce\xaf\x2e\xbe\x1b\x31\xfc\xdc\x07\x1a\xa9\x78\xc3\x6f\x2a\x4e\x38\xc1\xa9\x3e\x28\xe4\x80\xab\x82\x9a\x3c\x5a\x07\xba\x40\xf3\xa9\xe0\xaf\x9c\x9a\x80\x50\xbe\x3b\x90\xb6\x90\x8f\xcd\x8b\x7f\x72\x93\x79\x09\xc7\x15\x54\xac\x44\x88\x43\x6e\x98\xe4\xae\x64\x64\xd1\x0c\xfe\xc1\x8a\xf8\x96\xef\x20\x59\x0a\x59\x85\x0c\xfb\xa0\x4d\x90\xce\x89\x63\x3a\x2a\x79\x53\x7c\x4b\x0d\xb6\xfd\xe6\xeb\xf2\xfb\x9d\x2d\xcf\xa1\x37\xee\x8f\xd3\x9b\x10\x37\xba\xfc\x54\x09\x05\xa6\xca\xde\x27\x88\x8a\x4f\x51\xc5\xbe\x40\xe7\x99\x9b\x26\x73\x89\x4e\x74\x7e\xdd\xad\xfc\xc9\x52\xc4\x13\x64\x34\x6a\x3c\x13\x5b\x9a\xce\xd9\xee\x52\x17\x78\x5f\x91\x18\xd1\x1f\xb8\x63\xf4\xf4\x36\xa2\x23\x70\x27\xaa\x59\x31\xce\x30\x6e\x17\x34\x73\xc2\x5a\x58\x6b\x49\x3a\xc5\xc2\x55\x06\xbb\xca\x0e\xdd\x74\x4c\xd5\xdd\x1a\x92\x6a\xd5\x9a\xef\x64\x7d\x08\xc0\xc1\x3b\x59\x04\xd4\x32\x04\x2f\x52\x37\xb3\xb4\x71\x60\xc2\x6f\xd8\xa6\xc6\xc3\x44\xc5\x69\xd9\xd1\xf2\x4e\x73\xb8\x75\x15\x0a\xe0\xe5\xe1\x39\xd8\xd6\xdd\x01\xdd\x33\xaf\x83\xd3\x09\x99\x1c\x44\x2c\x3f\x98\x6a\xa2\x8e\x02\xb5\xe6\xe1\x6c\xb3\x04\x9f\xd6\xf8\x72\x97\xbd\xe5\x93\x40\x8f\x1e\x7e\x3d\xcc\x25\xf9\x60\x02\x20\x2b\x13\x4e\x41\xf5\x36\x37\x95\x02\x17\x4f\x61\x4e\xf5\x80\x69\x2e\x23\x4a\x0a\x4b\x39\x65\x84\x54\x73\x8b\x34\xcc\xd9\xc2\x74\xd7\x77\xd1\x94\x1e\x4e\x04\x4e\x61\xf1\xb8\x85\xb0\xf2\x39\x4f\xda\x4d\xdf\x2e\x6b\x4b\x4f\x43\x47\x11\xc8\xec\x66\x8f\x22\xd0\xbe\x2d\xd1\x5b\xeb\x00\xcc\xc8\xf1\x38\x9e\x96\x2d\xdc\x45\x90\x34\x86\x5d\x28\x7b\x13\x20\x0a\x6c\xd6\x07\xba\x63\xec\xfd\x8e\x21\x8d\xd4\x4b\x34\x89\x56\xea\x2a\xf4\xe4\xd7\x4c\x3c\x42\xab\x0a\x97\x8d\xf9\xb8\x45\xc4\xc5\x7b\x22\x06\x60\x6e\x54\x24\xa2\xc6\xf0\xcc\x2a\x0e\x41\xfa\xc2\x04\x2a\xea\xd6\xef\x92\x4e\x28\x14\xe0\x4a\x4b\x33\xbf\x1d\x70\x9a\x45\x74\x5a\x70\x8d\x2d\x21\x86\xde\xaf\x28\x6b\xe5\x45\xab\x26\x23\x9b\x17\x1a\x4b\x1e\xea\x8a\x2d\x96\x4e\x38\x2f\xe0\xe9\xff\x76\xf1\x57\x6f\x6f\x45\x1f\x5d\xb8\x72\xe5\xca\x05\x50\x0f\x5c\x98\xe4\x83\x64\x04\x27\xdb\xdf\x8a\xfe\xc7\x5b\x6f\x3e\x43\x02\x26\x52\xf6\xaf\xd0\xf2\xe4\x44\x1c\xd0\x53\xf0\x02\x2c\x43\x86\x64\x4c\x4b\x59\x99\x3c\x97\xa6\x1c\xc7\xe7\x7c\x90\x7f\x29\x12\xcc\x98\xb5\x3b\x39\x43\xe1\x4c\xc9\x3d\xc3\x13\x70\xa3\xda\x4f\x1b\x5c\xa0\x3d\xc6\xb9\x48\x7a\x79\xc2\xea\x61\x20\x89\x8e\xce\x7a\x10\xf7\x2e\xad\x93\xd9\x9f\x75\x85\xb5\xae\xa9\x5a\x59\xdb\x96\x8e\xeb\x6a\x72\xec\xe7\x3a\x5d\x8a\xcf\xc9\xe5\xc4\xa4\x97\x61\x36\x03\xa1\x92\xf8\x4a\xf1\x06\xe0\x5d\x58\x8f\x92\x1a\x98\x35\x72\x21\xaf\xd4\x26\xc3\xd8\xd5\x6c\x34\xb8\x0a\xda\xca\x29\xa5\x02\x26\xe8\x75\xdf\x9c\xd1\xa7\xc0\xe9\xd3\xf3\x37\xf5\xac\x4c\x4a\x38\x46\x06\x9d\xda\x2c\x58\xb5\x59\xfd\x33\xbf\x8a\x6e\x65\x7a\x77\x46\xa5\x24\xe4\x61\xab\x51\x72\x37\x5c\x1f\x94\x12\xf9\x93\xb5\xf4\x58\x03\x11\x69\x7b\xa7\x3a\xf5\x0c\x9f\x9e\x56\x62\x63\x2d\x1e\x1d\x97\x1d\x18\xb1\x66\x5f\x3e\xa8\x41\xa3\x6c\x69\x5c\x0e\xbd\xe6\x36\x67\x27\x7b\xb7\x11\x83\x25\x22\x60\x83\xf7\x20\x03\x87\x9b\x26\xc6\xfb\xb2\x8c\x45\xed\x0a\x0c\xee\x6d\x08\x88\xb6\xc8\x1e\x6b\xd3\xcb\x72\xf4\x2e\xa8\x72\xed\x7a\xed\xd8\xa1\xc3\x73\x16\x44\x46\x74\x20\x1e\x67\x3b\xe3\xa0\xe1\x35\xd0\x74\x1d\x25\x3e\xf2\xf8\x81\x2d\xa3\xcb\xaf\xeb\x71\xfc\x1c\xd4\x73\x5f\x22\x43\xda\xe5\xa5\x3d\x65\x7e\xd9\xe3\xc7\x6b\x82\x5f\x8d\x3d\x0d\xa8\x45\x8c\xc0\x27\xa9\xa9\x37\x72\x98\x0e\xbb\x0b\x6b\x60\x96\x5d\x5d\x49\xdb\x7a\x58\x0b\x65\xd6\xd3\x22\xd1\x78\xeb\xa1\x58\x27\x60\xe0\x53\x28\x72\x97\x14\x7e\xc0\xd3\xbc\x8e\x8d\xd1\x37\xd5\x11\x63\xeb\xc8\xb8\x85\xa7\x20\xac\x67\xd9\x8a\x86\xfc\xe7\x73\x4a\xfc\x82\xc9\x41\x8c\x92\x97\xac\x3b\x8e\xcf\xfd\x45\x18\x8e\x72\x17\xb3\xdf\xf3\x2d\x41\xc2\x82\x29\x85\x3c\x04\xcc\xe9\xf8\x20\x76\x9e\x53\x11\x7a\x0d\xfa\xd9\x30\x4e\x39\xe5\xea\x09\x49\x53\x75\x2c\xbe\x1f\x8f\x46\xe0\x1b\xf0\x0d\x69\x4e\x1d\xb5\x54\x3f\x19\x0f\xb2\xab\x9c\xe3\xfb\x1b\x37\x2b\x36\xd5\xf4\x41\x96\xf7\xd0\xcd\xdf\xe2\x9c\x9a\x1d\x22\x9c\xef\x7b\xad\x81\x30\x0d\x83\x58\x4a\x38\x96\xa8\x92\x56\x57\xd6\xa8\xcc\x05\x43\xb4\x7a\x4a\x47\x8f\xd7\xe0\x7c\x13\x38\x9c\x15\x79\x8c\x4d\x8f\x33\x25\x75\x16\x09\x76\x9b\x96\x6b\x22\x54\x03\xd9\x9d\xe5\x9c\x22\xc5\xf3\x37\xab\x8e\x80\xb3\x39\x4f\x99\x45\x9a\x32\xd7\x20\xab\xd4\x06\x0b\xb4\x39\x97\xde\x98\xb5\x79\xf5\x15\xac\x9d\xcb\x39\x74\x0f\x0d\x6e\x23\x67\x01\xb5\xc0\x68\x2b\x34\x26\x42\xd7\x6a\x02\x23\x56\x6f\xf3\xa7\x4e\xfd\xbc\xc2\xb8\xff\x23\x94\x25\xa1\x13\x11\xf9\x6e\x70\xa3\xa4\x19\x5d\x05\xa7\x6d\xde\x29\xfd\x74\x77\xb7\xb3\x93\x67\x57\x0a\xc8\x6a\x3c\xc9\x7b\x89\xe6\x23\xee\x6b\x0b\x82\xf1\xae\xc4\x74\x36\xd8\x01\x5c\xfa\xd5\xbb\x5b\x3a\xae\xf9\xfc\x8d\xfc\xac\xb7\x97\x4e\x3c\x19\x7f\x43\x6f\x60\x74\xfe\x14\x35\x86\x44\x92\x54\x92\x82\x42\xc1\x12\x1d\x1e\xa1\xd8\xcf\xae\x74\xe1\x5f\x98\xe9\x99\xc8\x0f\x0b\x63\x9c\x28\x8f\xb3\xfc\x2c\x29\x9c\x64\xda\x14\x79\xa1\xc7\x83\x51\x18\xd2\x6a\x71\xb6\x64\x84\xd0\x7c\x26\x14\x8e\xd0\x1a\x93\xa9\x61\x34\x8d\xbf\x83\x75\x01\xb1\x5d\x3c\x1e\x61\x1e\x9d\xef\x0b\x0e\x95\x99\xaf\xc8\x9f\xc8\x51\x7b\x85\xfb\xe8\x8b\x53\x64\xe6\x17\xbf\x7c\x9b\xff\xc2\x7c\x20\xb6\xde\x9e\x77\x85\x76\xed\x54\xc3\x1f\x73\x91\x74\x1a\x73\x92\xe8\x06\x94\xfc\x06\xff\x2d\x4a\x7f\xcc\x6d\x63\x4a\xac\x47\x8d\xfb\x79\xbc\xab\xd0\xf1\xbf\x69\x85\x4a\x75\x20\xf2\x9e\x40\x74\xae\x19\x49\xf3\xaa\x07\x64\x02\x35\x92\xa8\x68\xae\xae\x06\x01\xe4\x2e\xe2\xc5\x7b\xf8\xa8\x9c\x06\xe8\x27\x68\x58\x58\xeb\x27\x78\x2a\x97\x14\x83\x0a\x6f\xdb\xde\xa1\x77\x96\x22\x16\x01\x83\x22\x0a\x6b\x3a\x5b\x8a\xe4\xfa\xc1\xdd\xd2\x7b\xe9\x82\xd4\x42\x98\xef\x93\x8a\xf3\x52\xf3\x7b\xb1\x4d\xcb\x78\x2f\xa0\xbc\x91\x49\x6d\xa6\xb2\x31\x0a\xd1\x54\xb1\xd3\x1d\xa3\x31\x07\x60\x30\x4f\x90\x33\x83\x16\x24\x84\x2b\xe6\x43\x6d\x85\x43\x53\x99\xd3\x36\x68\xde\x34\x96\x3f\x64\xd7\x2c\xf1\xf6\x80\xa9\x1b\xa6\xe1\x42\x58\x3f\x74\x05\x6e\xdd\x5f\xcb\xea\x57\xd2\x72\xbf\x3b\x0c\x93\xea\xc8\x67\xe8\xde\x8a\xf3\x4b\xfd\xec\xca\x88\xc2\x23\xf5\x50\x57\xf2\x94\x6c\x65\x5a\xa7\x31\x73\xe0\x10\x9e\x8a\xf7\x4a\xea\xcb\x70\x92\x6e\xdc\xae\xc8\x43\xf4\x73\x8d\xc8\x29\x80\x40\x4b\x88\x21\x6d\x82\x1d\x11\xd4\x17\x28\xb9\xfe\xb1\xf2\xea\xcb\x61\xca\x8e\xfa\x03\xa9\x67\x7d\x37\xc2\x9a\xff\x62\x9a\x5f\xa3\x18\xce\xa6\xe1\xb4\x96\x1a\x90\xbe\xee\x55\x54\x14\xf6\x01\xb0\x1b\x3a\xc9\x75\x18\xee\x6d\x12\x39\x59\x29\x87\x15\xa9\xac\xc5\x91\xde\x39\x53\xb9\x31\x28\x94\x49\x22\xaa\x0f\x41\x0f\x9b\x9f\x57\xac\x24\x48\xc6\x28\x26\x60\x95\x71\xd9\x67\x02\xc3\x4c\x5d\x8c\x60\xb1\x55\xd0\x83\xb8\x61\x32\xfd\x40\xbb\xf1\x00\xb2\x67\x5e\xd5\x55\x73\xbf\x76\x8e\xa0\x5e\x72\xa3\xfe\x92\x57\xb2\x6c\x9b\x1b\xef\x65\xf9\xde\xfb\x54\x7e\x99\xd2\xe6\x06\x12\xbb\x34\x1a\x24\x65\x3f\x2f\xdd\x2e\x33\x2c\x73\x9d\x3c\xa3\x6d\x28\x36\xb0\x8b\xf4\xba\x91\x56\x3a\xd6\x13\xec\x76\x4c\x2e\x34\xac\x80\xed\x78\xd0\x07\x47\xe7\x4c\x63\x24\xbe\xf6\xa5\xc4\x8b\x00\xb3\xb9\x31\x4e\xb2\x31\xe0\x88\x3f\x53\xf0\x0e\xd6\x6f\x4f\xc1\x75\x20\x1b\x26\xe8\x36\xaa\xe9\xfa\xa9\xfb\xde\xd0\xc2\xb9\xb9\x51\x26\xf1\x10\x8b\x6a\x61\xdd\x7a\x20\x0a\x58\x8d\x97\x0d\xbf\xc5\xb6\xb6\xee\x56\x3a\x51\x2b\x7e\x75\xea\xff\xd6\x8b\xfe\x38\x09\xdf\x60\x86\x50\xa2\xb7\xa8\xe2\x62\xf9\x74\x0f\x0d\x81\x00\xd0\x3b\x80\xf0\xb9\x2b\x4c\x85\x2d\x56\xf5\x36\x37\xfc\xef\x01\x91\x63\x79\xdd\x7b\xac\x27\x56\x79\x8c\x7c\x9e\x93\x44\xa5\x0a\xc5\x11\x57\x5c\xf6\xff\xa0\x16\xcb\x8e\x1c\x97\x59\xa3\x59\xc7\x37\x8c\xf0\x10\x25\x51\xb4\xe3\xd2\x26\xe9\xf5\x07\x7e\x85\x87\x80\x3c\x64\x69\x51\x58\x9e\xfe\x1b\xab\x59\x3b\x45\x8e\x5e\x4b\x5f\x4e\x3e\xf8\x7a\x28\x02\xfb\x71\x06\xe6\x59\x2b\x7b\x6b\x8b\x95\xff\x27\xc9\xe0\xda\xe6\x45\xd0\x9c\xc5\x95\x8e\x1e\x49\xf9\xe7\x95\xcd\xe2\xfa\x13\xf8\x8d\xb7\x16\xd3\x95\x16\xc9\x60\x55\x5d\xd3\xa0\xb1\xbc\xee\x4f\xe4\x95\xed\xf6\x5e\xaf\xe2\x67\xf3\x49\x9f\xd5\x71\x88\x7d\xc2\xd5\x63\xfe\x7f\x54\x55\xb7\x71\xe9\x01\x95\xe1\x93\x17\x41\xfd\xa9\x8f\x29\x58\x18\xbb\x85\x48\xf9\xca\xc6\x40\xb9\x81\x86\x30\xc8\x06\x82\xe2\x0f\xa8\x2f\x2a\x50\xc8\x5b\x6f\xb1\x66\x61\x75\x42\x43\x83\x0e\xae\x7f\xc1\xba\x03\x0d\x0e\x5d\x67\x2f\x40\xe0\x9f\x04\xd0\xa1\x50\x15\x82\x33\xdc\x8e\x25\x65\xdf\xb7\x5e\xc3\xd9\x4b\x14\x28\xb0\x7e\x72\x1d\x88\xf4\x79\x6a\xf6\x92\x72\xab\xe5\x84\xd5\xfe\x8e\xa6\x4e\x07\x9e\x07\x0c\x48\x81\x5a\x80\xe2\xf2\x0f\x56\x81\x29\x15\x24\x22\x26\x84\xb8\xde\x9e\x5b\x16\x9e\xc2\x33\x9d\x06\x86\xb8\x4a\x17\xcc\xb9\xf5\x62\x45\x15\xb3\xe9\x92\xa7\x97\xd1\xca\x64\x8b\x0b\xcc\x6b\x5f\x1b\x46\xf4\x4b\xc9\xd9\x7e\x6d\x59\x77\x74\x1b\xed\x53\x57\x4b\xf1\xa3\x1b\x28\xb0\xee\x25\x90\x83\x1d\x87\x41\xce\x52\x44\xc2\xea\x56\xe4\xfa\xb7\xed\x95\x9b\x12\x7b\x50\xfc\xf8\xe5\x84\xe5\x2d\x44\x47\xce\x57\x66\x13\x09\x24\x48\x2a\xa0\xe0\x3e\xd7\xc0\x2e\xe4\xb4\xa6\xd2\xe2\x32\xd8\x63\xcb\xf3\x85\x67\xce\x93\xdd\x3c\x8c\xa7\xe0\x41\x74\xbe\x78\xb1\xb6\x96\x51\x76\x45\xb2\xab\x98\x4c\x14\xf9\xd3\xce\xdf\x66\x60\x06\xa0\x53\x05\xf9\xd0\x46\x0e\x03\xf5\xd0\xad\xc2\x1b\xa6\x6f\x20\x8b\x70\x65\x2b\x7c\x01\x6e\xcd\x39\xed\x0c\x47\x27\x5c\xeb\xe1\x24\x67\x77\x18\x3e\x7a\x23\x7e\x65\xe6\x39\x89\xa5\x51\xe5\xa7\x94\x36\x95\x21\x97\x41\xbf\xe0\x69\x47\x4f\x8e\x52\x77\xf3\x7a\x99\xdc\x60\xde\xa1\x7a\x87\x33\x2d\xd7\x16\x79\x6f\x5f\x1a\x2a\xd7\x02\xbb\x75\x4c\x9f\xc6\xec\x79\x5d\xe1\xc7\x4f\xcc\x6e\x30\x69\x95\xd9\x4d\x63\xee\xaa\x25\x17\xaa\x77\xaa\x28\xd5\x47\x38\xdb\x6d\x1c\x5a\x23\x17\x2b\x93\xb6\x1c\x0d\xe9\xdc\x04\xa7\x04\xc3\x04\xd8\x47\x6b\xad\x4b\x33\xc9\xb6\x6b\x0b\xb3\x26\x9e\x5a\xfa\x6d\xea\xda\xca\xa3\x52\x13\x44\x2d\x45\x5d\x04\x08\xe0\x1a\x29\xbf\xb2\xe3\x7d\x73\xc9\xb1\xb3\x23\xef\xb9\x1d\xd9\x74\x5e\x3b\x22\x4d\xba\x16\xac\x60\xad\xcc\xc1\x6a\x61\x54\xe1\x6a\x21\x8c\x0a\x8e\xcd\x13\x07\x9f\x90\x8f\xa6\xae\xba\x50\x15\x8a\xad\x6d\x41\x68\xf2\x86\x2d\x9c\xf6\xb1\xa7\x71\x9c\x76\x88\xad\xeb\x29\x5d\x5b\xb4\x98\x39\xc8\x86\xb4\x76\x60\xc8\xab\x95\x04\x0e\x3e\x11\x97\xa8\x6b\x0e\x63\x2b\x72\xa5\x7d\x3a\xe0\x13\xc8\xa6\xe4\xbe\x29\x13\x9f\x66\xe2\x32\xbd\x2a\x76\x5a\xc5\x10\x02\xa4\xb3\x73\x31\xf5\xcd\x1a\x36\xbe\xfe\xd2\x60\x77\xd5\x9c\x62\x2c\x9b\x0c\x36\x1d\x07\xc7\xd7\x5e\x54\x7d\x50\x8d\xe4\x8c\xe3\x22\x79\xfe\x78\x58\x59\x3f\x06\x49\x4d\x0c\xb0\xbf\xe8\x1d\x6e\xbd\x18\xa1\x56\x1c\x3c\xd2\x6a\x4d\xbc\x1e\x8f\x82\xc0\x5e\x1a\x8a\x2c\xbb\x40\xe5\x91\x92\x9f\x7c\x93\x02\x8f\x35\x6f\x92\x21\xc8\xdb\x28\x1d\x8f\x71\xb5\xd5\xb2\xa1\xa1\x22\x54\xad\x2a\xe8\x3e\xd3\xbe\x55\xa2\x12\x4f\xb8\x55\xb3\xb1\x46\xd4\x45\xf4\xc9\x11\x61\xcc\xe1\x3c\xc9\xce\xb7\x42\x24\xd4\x6e\xde\xbc\x0a\x87\x84\xb5\x13\xab\x27\x3a\x36\x47\x9b\x57\xfd\xb9\x4e\xf9\xc3\xe8\xca\xe0\x3a\xd3\xdf\x73\x91\x68\x8c\x8d\xae\x0d\xc5\x61\x2c\xb2\x6c\x83\x60\x68\xed\x74\xa3\x6c\x84\xea\x64\x30\x2a\x50\x63\x7f\xb5\x75\x77\x27\x9d\x75\x82\xb2\x52\x98\x8c\x42\xee\xc9\x5a\xf9\xbf\x41\xdb\xec\x54\x6d\x30\xb1\x5e\xf7\xb5\xc1\x42\x98\x81\xd0\x1a\xfc\x1e\x82\xe2\xfb\x9b\x1b\xfd\xb8\xd8\xdf\xc9\xe2\x9c\xf3\x42\xdd\x23\x27\x75\xf0\x76\x2c\x82\xae\x8e\xb0\x5f\x25\x43\xc6\xa3\xf4\xb7\xb1\x56\x48\xd5\xe9\x23\x19\xef\x5a\x6f\x0d\x8b\x56\xed\x43\x46\x68\xad\x73\xfa\xa1\x6a\xaa\x59\x84\x6a\x01\x14\xa6\xf7\x28\x6f\xab\xac\x8a\x68\xf4\x06\x1c\x6b\x07\x1e\x8a\x73\x96\xa7\x4e\x2a\xe3\xa8\x74\xc0\x07\x86\x4d\x87\xd9\x28\x2d\xb9\x56\x0c\xec\x79\xf9\x0f\x15\x27\xb1\x06\x3a\xab\x64\xf6\xa2\xec\x8e\xb1\x28\xc1\x1d\x3e\x4c\x5d\x44\x99\x7f\x75\x5c\xa1\x00\x4c\xb2\x12\x04\x22\x2a\x7d\xbe\x78\x31\x3a\xdf\x47\x9b\xbb\x3e\x5c\xb4\x3e\x2b\xb8\x48\x7b\x6c\xe5\x74\x4d\xd7\xb2\x65\x36\x4e\xf2\xd8\xaa\xfa\xa4\xcf\xbc\x33\xe0\x55\x05\x65\x43\xb4\x8d\x4f\x8a\xe0\x3e\xb4\xf3\xab\x7b\x18\xe4\x2c\x85\x2b\x00\x9a\x13\x5c\x63\x37\x1d\xed\x66\xe4\xd5\x8d\xd0\x77\xa4\xdf\xa7\x64\x4b\x91\x5d\x7c\x69\x07\x0d\xad\x3b\x2f\x07\xa5\x2f\x90\xd7\x45\x8b\x00\x1f\xe5\xb5\xf0\xea\xac\x7b\x75\xe8\x65\xd3\x3a\x06\x71\x06\x3a\x15\xc7\x31\xb5\x40\xe4\x8e\x50\xc9\x52\x35\xb5\xef\x8e\xfb\x61\xfd\x9b\x8d\xe1\xf5\xb7\xe0\x45\x01\x8b\x6f\xb5\x78\x60\x67\x3d\x5e\xdd\xe6\x88\x4d\x96\x16\xc7\x07\xce\x4b\x80\xa1\x76\x61\x0c\x9c\xbb\x53\x6f\xcb\x3d\xa8\xb9\xf4\x05\xf0\xbf\x2c\x4d\x3e\x1d\x42\xde\xec\x7e\x42\x84\xd5\xa4\x10\x13\x5b\xf0\x95\x35\x62\x38\x93\x79\xa7\xf6\xab\x49\x0f\xeb\x7c\x21\x07\xd0\x29\xc5\x9f\x09\xc7\x41\xaf\xbf\x36\x0b\x35\xf7\x65\x1f\x7b\x34\x0e\x72\x7e\x01\x27\x89\x85\x77\x77\xf8\x1e\x39\x32\xc3\xcf\x07\xd8\x09\xbe\xd3\x80\xf5\x27\xa0\x6e\x0c\x77\x2d\xae\xa4\x58\x65\xe9\x0e\xbb\x28\x98\x40\xf3\x70\xf3\x7c\x32\xf2\xea\x12\xc8\x76\x90\x48\x6a\xd4\xe5\x6a\xdb\x19\x95\x85\xbb\xc3\x81\x75\xec\x87\x7b\x4a\xf0\xee\x24\xd1\xf9\xd5\xcf\x01\x0f\x17\xed\x23\x59\x8e\xf6\x96\x17\x64\xdd\x34\x1e\xeb\x9d\x5d\x0f\x97\x1a\x9b\x6b\xe7\x64\xf6\x39\x1d\xa1\x47\x71\x6c\xd5\xa5\x85\x27\x65\xd4\xa2\xbc\x65\x40\xd0\xdc\xab\x88\xbe\xde\x0c\xcd\xbb\x6b\x1d\xfc\x09\xb7\x88\x06\x53\x28\xad\x93\x5e\x4e\x5a\x37\x37\x85\x44\xa7\x38\xf7\xbc\x21\xd6\x78\xba\x6a\xf8\x86\x9d\xad\x31\xb2\xb0\x1d\xac\xbd\xc1\xbd\xb4\xec\xee\xf5\x88\xdf\xaa\xc1\x9e\x3b\x8a\xa4\x25\x07\x0d\xd3\x37\x0d\x1d\xde\x54\x40\x25\x44\xcb\x7f\x2c\xd6\x21\x0b\x55\x34\x2e\xa8\x65\x87\x79\x52\x5c\x1d\xf5\xc0\x26\xd8\x2d\x8a\x7d\x72\x96\xa5\xc7\x7b\xe4\x3a\x2e\x9c\xeb\xa8\xef\xcf\x52\xd9\xa3\xf4\xb7\x09\xba\x6c\x16\xe7\x0c\x42\x89\x9e\x26\x88\xe2\x44\x86\x8a\x5c\xbf\x88\xf0\x76\x81\xa8\xae\x43\xf7\xea\x32\xb1\xcd\xbf\x82\xfb\x79\xa6\x7d\x85\x0d\x30\xd0\x4e\x6c\xf5\xd9\xb9\x7b\xe3\x27\xbe\xde\x01\x09\x97\xf6\xa6\x53\x72\xe1\xdd\x2a\xf9\x8f\xd0\x6c\x6c\xf1\xb0\xd6\xd9\x04\x71\x78\x2b\x04\x3f\x8d\xaf\x18\xbc\x26\xc8\x67\x0b\x4b\xce\x32\xff\xad\x03\x9f\xd9\x4b\xd4\x5a\x0e\x82\xd5\xb1\xad\x07\xa6\x5f\x97\x5b\xa0\xf9\xa6\xab\x90\x67\xd1\x70\x1f\x7f\x81\xdd\x6f\x9d\xed\x16\x1d\x66\x10\x0c\xeb\xb9\x5a\x77\x99\x0e\x13\x9f\x13\x5d\xe0\x43\x91\x7e\x63\x0e\xf5\x98\xe4\xe0\x34\xda\xdd\xcb\xf2\x6c\x52\xa6\x23\x0c\x00\x80\x4a\x94\x37\xd0\x3a\xfa\xba\xfe\xb9\x08\x75\x1a\x2a\x49\x2b\xbf\xda\x9d\x50\x49\x30\xdb\x6f\x11\x32\xef\x4c\xa9\xfe\x1c\x9a\xfe\xe5\x60\xc8\x8d\xeb\xa1\xc0\x7e\xdf\x33\xce\x29\x26\x23\x35\xf2\x77\x8f\xb4\x35\x2f\x38\x0c\x0f\x90\xed\x94\xb1\x5a\x6e\x9f\x74\xff\x14\xcf\xd7\xd6\x6d\x9c\x61\x95\xda\xee\x40\x5d\xf6\x64\xdc\x85\x03\x2c\xa0\x72\x21\x6a\xf3\x22\x03\x8b\x0f\x2c\xe3\xc5\x77\x68\xe2\x20\xad\xa8\x55\x5b\x8c\xde\x4d\x6d\x58\xb3\x25\xb4\x5f\xdb\x28\xef\xb6\x9d\x41\x51\x85\xfa\xfa\x58\x9d\x7c\xcf\xac\xf1\xc0\x5d\x67\x78\x48\x7d\x81\xfb\x49\x3c\x5e\xff\xfa\x30\x24\xa8\xd3\x30\x24\x0e\xb5\xfa\x12\xd6\x1e\x23\xed\x6b\x8f\x59\x0a\xd9\x3d\x53\x5f\x0c\x2a\x60\xee\xeb\x89\x77\xc1\x4e\x68\x7d\x4a\xb2\xa7\x4f\xf9\x70\xfd\x9d\x64\x3b\x7f\x9b\xf4\xca\x42\xe7\xa7\xe5\x6c\xbc\x07\x2b\xba\xee\x64\x59\x59\x94\xb9\xea\xaf\x64\x3c\x0c\x66\xc4\xeb\xa9\xed\x85\x53\x57\x55\xc7\x84\xe8\x4c\x37\x4f\x4a\x54\x23\xd4\x6e\xe5\x8f\x8d\x2f\x8a\x2c\x14\x34\xae\x4b\xd3\x87\x50\xf8\x57\x2d\x29\x9f\xf4\xca\x89\x42\x96\x8d\xeb\x52\x7b\x7c\xeb\x22\x54\x13\xae\x16\x76\xdb\xad\x23\x35\x81\xcb\xca\x81\x7a\x71\x6f\x3f\x59\x77\x4d\xaf\x42\xe3\x33\x8c\xd5\xb2\xaa\xf6\xa1\xc6\x79\xb6\x9b\x0e\xc0\x67\x66\x67\xd2\xbb\x94\x94\x90\x21\x6f\xbf\x8b\x6e\xd3\x2d\x83\xbe\xa3\x7b\x45\xbf\xc0\x5e\xd1\x1b\xaa\x57\xf4\x2e\xf4\x72\x58\xab\x9e\xba\xce\x32\x46\x97\xfd\xe6\xc1\x5e\x7f\x35\x62\x1f\xab\xa9\x65\x95\x1c\x31\x45\x71\xfd\x79\x97\xf5\x12\x8c\xa6\x40\x68\x69\x79\xb9\x3a\xcd\x5e\x4d\x4d\xd1\x84\x64\xa0\xa8\x13\xb1\x81\xbd\xab\x3d\x74\x19\xaf\x64\x7d\x27\xac\x21\x30\x43\x12\x85\xf5\x79\x99\x26\xb2\x58\xf6\xfa\xab\x72\x28\xd4\xe6\xa8\xa1\x88\xbe\xdd\x5a\x1a\x07\x68\x5d\x7a\xd7\x48\xd6\x40\xff\xdd\xbe\x44\x5f\x4c\x67\x43\x56\x84\x1b\xf5\x51\x6d\x42\xd3\x69\x1c\x23\x26\x31\xbd\x20\x6b\xe6\x0d\x63\x36\x6d\x58\x26\x77\xf2\x14\x4f\x2b\x3a\xf3\x0a\x05\x76\x87\xef\xac\xde\xa3\x3c\x3a\xc3\x78\x14\x43\xf2\xeb\x18\x63\xd4\x7e\x30\x76\xb2\x47\xae\x1a\x29\x68\x5c\xbf\xa9\x47\x02\x37\x4a\xe3\xdc\x12\xf2\xa4\x14\x62\x93\xe9\x63\xa5\x66\xfd\x93\x96\xcb\xfa\x32\xdc\x94\x2f\xd1\xb4\x59\x59\x5f\x88\xda\xb1\x0c\x12\x50\x3b\xd2\x77\xae\x66\x17\x0c\xe2\xa5\x16\x18\x8c\x9c\x27\x7b\xa0\xce\xa5\x34\x83\x3a\x87\xef\x94\xe5\xa0\x2a\x98\xef\xa6\xf9\xb8\x8c\xcf\x66\x40\xb3\xe3\x1e\x66\x38\xb6\x4b\x9c\xe2\x7a\x51\x5c\x1d\x3d\x66\x43\xad\x1c\x3e\x52\x94\xef\x39\x24\xe8\x6b\xa9\xf6\xd1\x84\xa0\xbd\x9c\x3c\x8d\x82\x15\xcc\x8d\xe3\x20\xf9\x07\x39\x33\x0c\xb2\xbd\x54\x2b\x4b\x56\xc5\xd0\xaf\x3f\xed\x38\x2e\x8a\x2b\x59\xde\x37\x46\xf7\x6f\x6d\xea\x8f\xa5\x88\xea\x3a\x32\x4c\x34\x67\x3a\x12\xb1\x61\x5a\x2b\x77\xd3\x9c\x17\xb3\xeb\x84\x76\x13\x2f\x17\x33\xdd\x80\xc9\x55\xe5\x78\xd6\xb5\x5d\x80\x7d\x22\x41\x7f\xf5\xc0\x1b\x49\x8b\xae\x78\x13\xae\xa3\x22\xc3\x01\xac\x60\xda\xf4\x58\xa0\x3f\xbd\x97\x70\x5f\xae\x83\x12\x36\x28\x39\x3a\x8f\x29\xa9\xc0\xf9\x3a\xc1\x23\x16\x52\x86\x74\x29\xaa\xb8\x6d\xf0\xa5\xef\xf3\x3a\x37\x8e\x1d\x6e\x61\x1d\x37\x39\x71\xe8\x1a\x3c\x23\xb9\x54\xc5\x98\xa5\x35\xfb\x20\x3e\xf4\xab\xa2\xb9\x47\x5d\x94\xa9\x12\xd3\xb2\x2b\x23\xb6\xdb\x84\xf7\xe4\x66\xe5\x3d\xd0\x4e\x44\xe4\xdf\x5b\x71\x86\x92\x50\x6c\xe0\x1d\x63\x93\x09\x3a\x3b\xaf\x93\xed\xd5\xe4\x07\xc0\x3e\x26\xfd\x97\x93\xc6\x4e\xb8\x1c\xb4\xe5\xf7\xed\xb8\xbb\x86\x74\xbb\xe8\xee\xdf\x04\x61\x9e\x63\x80\xb7\xe5\x26\x17\x89\x55\xdb\x26\x9f\x35\xf2\x83\x9a\x69\x87\x90\x47\xae\x3b\xa4\x49\xec\x3e\x6b\xf4\xc5\x43\x07\x76\x71\xfb\x4e\xf8\x64\xe8\xc1\xae\x08\x94\x54\x27\x51\x74\x30\xb7\xdc\x9a\xa4\xb1\x3d\x80\xc3\xa3\x74\xf8\x4b\x3d\xa8\x01\x7f\x0e\xbb\x91\x50\x10\x9f\xa2\x66\x48\xd3\xd6\x5d\x55\x53\x62\x07\x1a\xa9\xcd\x0d\x90\x5a\x38\x8b\xa6\x9f\x8c\x47\xe2\x3f\x57\xa6\x44\x2b\x7d\xb9\x12\x97\x54\xa3\xfd\x76\xd8\xee\xa2\xdb\x29\xd9\x01\xb6\xf7\xe7\xba\xe5\x45\xb7\x68\x2c\xe0\x4e\xe6\x42\x26\x25\xeb\x9e\x41\x33\xfd\xc0\x29\x69\x44\x2c\xd6\x11\xc8\x93\xe8\x5a\x40\xd6\x23\x85\x3c\xa2\x3c\x3b\xfa\xc9\x29\xee\x4b\x3f\x25\x23\x60\xc4\x1d\x5e\x07\x5d\x35\xe9\x6b\x38\xa0\xc6\x39\x85\x7a\xa2\x9b\x35\xd6\x86\x3d\x6b\x16\x8b\x75\x7a\x06\x93\x1d\xd0\xa7\xfd\xac\x20\xc6\x6f\xc9\x39\xfe\xf4\x87\xb1\xae\xd9\xab\x06\xbc\xae\x7f\x44\xab\x42\x7f\xa4\x17\xf0\xf4\x6b\x6f\x3f\x63\x6a\xaa\x38\xa5\xea\x45\x73\x4d\xe6\x61\xb0\x29\xc2\xc6\x23\xcd\xf2\x0a\x03\x44\x53\x2f\xc3\x1c\xdc\xaa\xe9\x5c\x6d\x42\x78\x31\xae\xcd\x97\x43\x84\x9d\xdd\xc6\x66\xec\xea\xfa\x78\x69\x03\x50\x1d\xcb\x7b\x43\x31\x9b\x00\x06\x76\x53\x20\x1a\xef\xbb\x66\x4a\xec\xfb\xc6\x75\x0c\xa0\x00\x17\x8f\x85\xe3\xaa\x7f\x24\xed\x91\xce\xed\x16\x32\xdd\x8b\x3e\xfe\x0d\x34\xf1\xad\x06\x72\xca\x32\x4f\x77\x26\xe0\x07\x8b\xe0\xf3\x7b\x46\xd1\xf7\x14\x0e\xd5\x9a\xd1\xb9\x84\x79\xdb\xa1\x98\xe4\x8d\x7d\x50\x23\x7e\xc2\x68\xea\x66\xbd\xaf\x02\xba\x41\x78\x32\x20\x64\xb4\xe2\x2f\xec\xbd\x53\xc1\x3b\xaf\xd2\xdd\x51\xc3\xd6\xec\x89\x90\x67\x4e\x73\xe7\x16\x77\x41\x3d\xc4\x10\x98\xad\x6e\x11\x6f\xbf\x55\x44\x3f\xef\x47\x17\x7f\xae\x3f\x14\xc3\x72\xdc\x45\x73\xdc\xc5\xb7\xde\x7d\x67\xad\xb7\x06\x5d\xf0\x51\x51\x8f\x8f\xeb\x2f\x0b\x5a\xe0\xeb\xc2\x16\xb8\x39\xf1\xc4\x38\x66\x89\x13\x94\x14\x5c\x2e\x4d\x72\x61\x11\x0b\x2e\x94\x02\x72\xde\xd0\x71\x1d\xae\x7a\xd1\x54\x46\xe5\xbe\xa6\x40\xe0\x47\xae\x5d\x87\x9c\x59\x97\x94\xef\xf3\x8f\xd5\x54\x67\x35\x7d\x50\xcd\x6c\xc6\x30\xa7\x6d\xe3\xeb\xa2\x67\x4a\x7e\x4b\x37\x9d\x24\x00\xa4\x8f\xb2\x3c\x8f\xc4\xbb\xdd\x72\x00\x0a\x78\x6b\x71\x8d\xde\x7d\xf3\x62\x14\x78\xe0\xf6\x4e\x2e\xa5\x63\xe8\xd5\x85\x7c\x38\xb6\x9c\x8b\xf1\xe4\xd6\xb2\x04\x5e\x29\x25\x24\x80\x27\xa5\x86\x35\xd8\x10\x3c\x03\x93\xfc\x72\xda\x4b\xea\x28\xf8\x9d\x9f\xbf\x45\xdc\xc8\x23\x52\x89\x78\xcb\xc5\x22\x5a\x5a\x1a\x75\x17\x5e\x71\x91\x2f\x2e\xbf\x40\xb4\x79\xda\x28\x65\x32\x41\x4a\xc7\x94\x81\x97\xaf\xd4\x40\x40\x4b\x4d\x9e\x9a\x5b\xea\xfa\x24\xd1\x13\x63\x0e\x56\x74\xf3\xc4\x1a\x64\x35\x0c\xb5\xf6\xa5\x63\x2e\x5e\xd6\x36\x5c\x58\x5a\x0e\x25\x63\x96\xd4\x77\x65\x34\xd6\xaa\xdd\xaf\x1b\x7b\x25\x27\x5d\xe5\x0a\xbc\xfe\x99\xaf\x5d\xa8\x62\xed\xb1\xba\xc4\x77\xd4\x5d\x7f\xdb\x86\x20\xbe\xb3\x3e\x8c\x1b\xf8\xde\x7e\x8c\xcd\xf1\x5d\x8b\xb3\xbb\xeb\x8a\xa5\x78\xa9\x69\x5b\xf7\x50\xcb\x53\xeb\x43\x0f\x4a\x0f\xe4\xa5\xa6\xcd\x67\xda\x67\x4d\xb0\x46\xd5\x69\xf0\x5a\x4d\xcf\x78\x3c\x0e\x78\x94\xe8\x44\xcf\x88\x21\x89\x79\xa1\x73\x15\xbd\x2e\x13\x62\x30\x75\x62\xcf\xd0\xb5\x31\x3b\xe1\xaa\xce\x41\xa6\x90\xbf\x65\xbb\xbb\x83\x74\x94\x40\x89\x65\x2e\xfa\x03\x97\xf4\x10\x94\x24\x94\x19\x41\x71\x0b\x76\xa0\xb4\x40\x3c\x07\xb6\x41\xb4\x9d\xed\x91\xce\x5d\xa0\xb9\x07\x5c\xac\x64\x0a\x42\xa9\x0d\xc6\x5f\x7e\x0e\x92\x2e\x62\x8a\x23\x43\x95\xa7\x66\xe0\x7c\x82\x96\x9b\xbc\x59\xe9\x34\xd7\x16\x5d\x34\x51\xc0\xb5\x38\x9d\x69\xf9\xdf\xe9\x15\x3b\x99\x28\xc9\x0b\xc7\x38\x0e\xea\x5e\x20\xa7\xe5\x59\x06\xde\x82\xe0\x84\x63\x0b\x2a\x49\x53\x72\x93\x2b\xac\x85\x21\xf0\xc7\xeb\x61\x9e\x17\x39\xda\x1d\xa7\xbb\x4d\x84\x43\x56\x7c\xbf\x82\x29\x8f\xa5\xce\xb3\x7d\x20\x79\xba\x76\x05\xbd\x3c\x1d\x07\x33\x6a\x0a\x42\x29\x8e\x1a\x52\x37\x16\xfc\xbc\xdb\xcf\x7c\xe1\x85\xb1\x57\x94\xd7\x80\x2b\xb7\xaf\x40\x49\x1a\x64\x76\xcc\xfb\xaa\xe1\x67\xbe\xa5\xb0\xf7\xa2\x1c\xc1\x11\xcc\xec\xcf\x01\x89\xc6\x7e\x74\xe4\x3b\xfb\x73\xe3\x8e\x65\xa3\xa2\x18\x10\x44\x5d\xbc\xf8\x66\xf0\x1d\xd8\x26\x9a\xf9\x7a\x1a\x2d\xf6\x27\x9a\xd1\x82\x0a\xfc\x7b\x79\x52\x3c\x23\xfb\x88\x1b\xf5\x7f\x36\xc3\x60\xef\x73\xc5\x87\x83\xb4\x4c\x5e\x38\x07\xee\xdb\xe7\xca\xb4\xbf\x73\xee\x19\x07\x6b\xa5\x98\xe8\x26\x7c\xac\x3a\xfc\x5f\xb0\x29\x1e\x00\xb0\xb6\x3c\x01\xae\xbd\xcb\xe1\xaf\xf4\x90\xe7\x78\xef\x9c\x08\x44\x56\xa1\x79\xe0\xbb\xac\x5a\x24\x64\xee\xd1\x63\xf5\x7d\x9c\x61\xd8\x22\x0f\x63\x18\x5f\xf4\xa0\x2b\xa5\xdd\x36\xa4\x9a\xa2\x41\xd8\xd1\x4e\x49\x1e\x25\xb8\x24\xcb\x9c\x53\x24\x7b\x54\x98\xa9\xf3\xa8\x85\xbf\x32\x67\xf1\xe1\x24\xcd\x15\x0f\x91\xee\x8d\xc0\x7a\x4c\x89\x68\x6a\x27\xe1\xb9\x53\x6a\x59\x65\xe9\xe4\xab\xe1\x21\x99\x15\x24\xb3\x22\x05\x8c\x7b\x9c\xe0\x31\xd2\x22\xcf\xee\x55\xc9\x78\x71\xbb\x6b\xbc\x22\x6d\xd6\xf8\xc1\xda\x32\x24\x17\x86\xc9\x81\xda\x0f\x1f\x53\xd1\xa5\xbf\x85\xfa\xea\x49\xef\x52\xed\x0a\x6a\x3c\x31\x4b\x51\x28\x84\x73\xf1\x37\xe2\xd6\x4f\x28\xa7\x8a\xcc\xcd\x57\xdf\xf9\xb8\xec\xed\xc7\xee\xa6\x5f\xa5\x1f\x2d\x3d\xa3\x8c\xa4\x90\xac\xa9\x3b\x20\x17\xbb\x6f\xd0\xc8\x2e\xf3\x2a\xd6\x54\xe6\x0e\xfa\x2e\x92\xd2\xea\x0e\xda\x07\x9a\x8b\xb2\x9d\x6e\x5a\x57\xa1\x50\x30\x43\xeb\xb4\xd9\x2b\x7c\xd9\x8d\x52\xc6\xad\xe8\xc7\x83\x7c\x38\x49\x26\x6a\x45\xc9\x68\x0f\xde\xfc\x57\x9a\xbb\xa9\x44\x1e\x18\x9c\xfc\x73\xd2\x87\xe8\xfb\xa2\x4c\x9e\x68\x10\x54\x34\xd6\x31\x79\x1e\x91\x1a\x93\x6b\x57\x1a\x9c\x1c\xc8\xb6\xac\x5f\xcc\x8f\x90\x85\x04\xf8\x09\x0e\xa9\xf5\x24\x98\xb5\x78\xe4\x20\x62\x1e\xa0\x49\x8d\xe6\xb6\xd2\xd0\xaa\x70\x61\xe6\xc3\xe8\x1b\x7f\xfd\xe6\xaf\xfc\xf6\x21\x14\xcf\x9f\x9a\x49\x03\x37\x58\x4d\x07\xc8\xa5\x96\xb7\x8e\xfe\xb2\x8d\x4e\x65\x5e\x9f\xc0\x6e\x4f\xc5\x25\x13\x6a\x58\xef\x4c\x09\x57\xf8\x7d\xe3\xbe\x7a\x4e\x94\x00\x46\x7d\x8e\xd8\xd8\x0f\x74\x7e\x26\x76\x4a\x6d\xd1\xcd\xe9\x72\x3c\x30\x8d\x39\x35\x2b\xaa\xfc\x25\x1f\x61\x96\x35\x32\x4d\xd9\xfb\xcf\x68\xfb\x1c\x3a\x52\x24\x14\x1e\xb5\xde\x33\xf9\x98\x48\x85\x44\xe8\xdc\x7f\x9c\x67\x97\xd3\x3e\x87\x39\x9a\x50\xaa\xcf\x48\x9b\xdb\xd0\x57\xf7\x59\xf3\x14\x0f\xfd\x81\xed\xa6\xd5\x43\x4f\x03\x82\x3e\xc2\x03\x51\x80\x39\x3d\x39\x67\xef\x8c\xea\x00\x05\xd1\x08\x1e\x8a\xaf\xbb\x51\x35\x8d\x6b\xf7\xb4\xd7\x33\x77\x45\x2e\x0b\xe0\xcc\xc1\x4e\x81\xcd\xb7\xa6\x4f\x71\x90\xee\x26\xec\xe9\x70\x07\x9b\x81\x03\xa0\x4e\x17\x69\xeb\x0f\x73\xba\x67\xff\x60\x97\xd7\xc5\x13\xda\x2f\xcb\x71\x41\x79\xc4\xa1\x24\xcd\xc5\x48\xb3\x36\xfe\xa9\x3d\xc9\x9c\xf5\x03\x70\xe6\x1e\xa7\xe8\x85\xb3\xe6\xbd\xc2\x31\x33\x4f\xaa\x45\x1f\xf1\x18\xf5\x58\xcc\x30\x41\xae\x04\xcd\x11\xcd\x8d\x56\x9a\xa8\x9c\xbc\x07\x8d\x85\xf6\x72\x4d\xbd\x5d\x4c\xf4\x3a\xff\xee\xb0\xed\xeb\xad\x37\xc4\xbe\x43\xef\xb0\xf4\xe2\xb4\x36\xe1\x50\x9d\x5e\xae\x98\x9e\x57\xd5\x7f\x9c\x18\x0a\xfb\xdd\xc1\x8a\xfa\xc7\x42\xbd\xed\xfe\x04\x34\x02\xff\x84\xab\xfa\x1d\xbd\x02\xd3\x27\xf9\xa8\xf4\xfc\x74\x58\x04\xb2\x6d\x30\x4f\x5f\x36\x29\x6c\xb6\xc8\x39\xe9\x29\x6b\x2d\x93\x8f\x92\xde\x24\xe0\xfd\x58\x13\xc7\x44\x94\x17\x3c\x69\x92\xf0\x45\xe8\x84\xb5\x04\x69\x6b\xe7\xa7\x04\xb1\xb6\x5b\x53\xe9\x6f\xbd\x6f\x75\x51\x25\xf1\xc8\x9f\x59\x5e\x06\x53\x66\x84\xd7\x5b\x27\xb9\x41\x21\xd2\x04\xb2\xe9\x18\x2f\xfa\x53\x3d\x09\xa4\x3b\xd5\xaa\xd8\x36\xdd\xdb\x91\x6c\xe4\x8f\xdd\xe7\x02\x61\x89\xb6\x49\xc3\xb6\xf5\xe7\x6c\xbc\xfd\x2b\x34\x3f\xd8\xf6\xa8\xd3\xb1\x55\xbd\x9c\x15\xb2\x72\x0e\x6c\xfd\x0b\x74\x78\x32\xac\xfe\x0a\x6d\x0a\xe5\xcf\x03\x66\x2e\x83\x38\x45\x4e\xd8\x86\xc6\xf9\xa5\x53\x63\x3c\x14\xc6\xe9\xe4\x8d\x8c\xce\x17\x3a\x65\xe4\xc8\x16\x95\x25\xf4\xc7\x19\xf4\x28\x88\x32\x18\x10\x8a\xf9\x63\xb0\x5e\xc1\xf9\xf7\x9e\x7b\xbf\x30\x85\x4c\xe0\x1d\xd9\x69\xde\x7b\xfe\x7d\x35\xd3\xf9\xf7\x5e\x78\x9f\xe7\xa2\xe4\xb8\xce\x5c\x7a\xbd\x2c\x71\x8b\x35\x3e\x5b\xe4\xbd\x67\xcf\xe3\x00\xcf\xd3\x00\x5c\xe8\x4a\x8f\xfe\x9c\x3f\x3a\x9d\x06\x5a\x4b\xb7\x3f\x20\x61\x8a\xac\x11\x5e\x04\x9a\x33\x0b\x19\x57\x69\xa2\xe2\xaf\x68\xcd\x30\xde\x07\x66\xc0\x31\xe4\x11\xd3\xb5\x95\x3e\xf0\xce\xb9\x72\x6a\xb7\x30\x92\x7b\x24\xd4\x8a\x72\x2e\x18\xc9\x9d\x4a\xcf\xa4\x0e\x06\xfc\x84\xf5\xda\x65\x50\x1c\xe5\x20\x79\xb2\x1d\x0c\x93\x7c\xcf\xdf\x00\xbb\x53\xea\x5c\x2c\x3f\xcd\x06\x4c\x7d\x40\x71\xb7\x4e\xed\xe6\x10\x3c\x12\x00\x59\xe8\xa9\x81\xc0\xb9\x97\x35\x94\x62\xe9\x86\x32\xde\xab\x81\x8d\x4c\x3d\xb9\x02\x78\xfc\xe1\x09\x80\x1c\xe8\x84\xcc\xce\xdd\xe7\xbb\x04\xa7\x68\x0a\x20\x1b\xfa\xa9\x7d\xa1\x27\x48\x35\x0e\x97\x37\xac\x03\xc6\xf3\x5e\x32\x5d\x7c\xa4\x65\x96\x0d\xd4\x13\x8d\xf7\x04\xa8\xab\x2f\xbb\x79\x36\xc4\x9c\x39\xda\x63\x11\x70\x06\xfe\x35\x23\x03\xc7\x73\xc5\xf6\xf9\x22\x7a\x0e\x99\x05\x94\x72\xa0\x14\x30\xfc\x3e\xa4\xdf\x49\x56\x44\xa9\x1b\x7e\xdd\xe7\xd6\x8c\x62\x9f\xeb\x73\xab\x43\x62\xf8\x9f\xbb\x22\x46\x43\x6b\x9d\x42\xe9\x38\x9a\x22\x6a\x7a\xbc\x19\x32\x26\x9f\xaa\x5f\xaf\xf2\x6f\xf7\xab\x05\x03\x08\x66\xcb\x52\xa4\xb3\x8f\xcb\x82\x24\xd0\x72\x5d\x40\x18\xd2\x91\xc2\xe5\xfa\xab\x58\x9d\xfa\xb6\x9f\x4d\x72\xd3\x0f\x57\x48\xbe\xce\x57\x4d\xf3\x43\x52\x3d\x5d\x49\x92\x4b\xce\x04\x7a\xa9\x44\x79\xca\x7d\x31\x3e\xaf\x16\x46\xba\x9a\xc4\x66\x7c\xb1\x66\x88\xb3\x8e\xaf\x74\xf5\xba\xfd\x15\xc3\x37\xbd\x6a\x77\xbd\xea\xda\xfa\x79\x36\x86\xca\xed\x10\x05\x9e\xec\xc6\x93\x01\x44\x5f\x14\x05\x87\x3d\x4b\xbf\x1c\x57\xa9\x18\x61\x18\xca\xb1\x49\x33\xfc\x05\x42\xce\xb1\x69\xad\x83\x64\x80\x2e\xda\xd4\xc1\xe9\x48\x71\x9f\x69\x5f\x31\xa2\xe3\x89\x56\x29\x42\x49\x96\x03\xc4\x31\x94\xbf\x03\x8d\x89\x4e\x47\x2f\xa3\xb5\x48\x5d\x60\xea\xf6\x62\xfd\x1a\x2c\x38\x03\x29\x1c\x41\xc7\xa9\xe0\xb1\xbb\x03\x2c\xd3\x77\xbe\x62\xc1\xa6\xc6\x8e\x9e\xfe\xbb\xbf\x83\xc6\xa0\xba\xf8\xfb\xbf\x8f\xde\xfa\x05\x59\xc0\x91\x45\x01\xe6\x83\xbd\xbb\x4e\x50\x53\xf0\xb1\xd1\x57\x70\x04\xb5\xd4\x58\xa8\x81\x86\xf1\x47\x7f\xe3\x8c\x85\x19\x71\x31\x65\x80\xcc\xd2\x6d\x52\x06\x98\x75\xc0\x3d\xfc\xdf\x00\x00\x00\xff\xff\x01\xd5\xff\x75\x46\x0a\x01\x00") func confLocaleLocale_bgBgIniBytes() ([]byte, error) { return bindataRead( @@ -4339,12 +4339,12 @@ func confLocaleLocale_bgBgIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_bg-BG.ini", size: 65383, mode: os.FileMode(493), modTime: time.Unix(1441457542, 0)} + info := bindataFileInfo{name: "conf/locale/locale_bg-BG.ini", size: 68166, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_deDeIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\xbd\xdb\x8e\x24\xc5\x92\x2e\x7c\xdf\x52\xbf\x43\xd0\xa3\xfe\x01\xa9\x2a\x5b\xc0\x7f\x12\x22\x61\x57\xd3\xc7\x45\x17\xdd\x43\x35\x20\x81\x50\x12\x99\xe1\x99\x19\x93\x91\x11\xb9\xc2\x23\xaa\xba\x6a\x34\xd2\xbe\x98\x67\xd8\x57\x5b\x9a\x1b\xb4\x1f\x81\x2b\xee\xea\x4d\xf6\x93\x6c\xfb\xcc\xcc\x4f\x11\x91\x45\xaf\xb5\x66\x2e\xa0\x2b\xc3\xcd\x4f\xe6\xee\xe6\x76\xf6\xfc\x70\x58\x14\xc6\xae\xe6\x4f\xcb\x3a\xb3\xab\xed\xde\xb4\x37\x55\x63\x4d\x7b\x92\x59\x53\x2d\x6d\x97\x6d\xcc\xb6\xb1\x9d\xe9\x4c\x9b\x3d\x2f\xbb\xd3\x0b\xd3\x5e\x96\x2b\x73\x42\xdf\x09\xbc\x2d\xcd\xd2\xd4\x19\xd5\x7d\xde\xdc\xbf\x77\xff\xde\xb6\xd9\x9b\xf9\x0b\xfa\xdf\xfd\x7b\x45\x6e\xb7\xcb\x26\x6f\x8b\xf9\xed\xff\x5c\x9a\xd6\x96\xab\x6d\x77\xff\x9e\x79\x77\xa8\x9a\xd6\xcc\x9f\xb6\xbb\xbe\x2e\x4c\x4d\x55\x4c\x75\x98\xbf\x28\xab\x35\xd5\xb1\xe5\xa6\x5e\x94\xf5\xfc\xac\xde\x9b\x8a\x4b\x6d\xb3\x2a\xf3\x6a\x91\x16\xf4\xf5\x26\xbb\xfd\x83\x1a\xcd\x6c\x73\x43\xc5\xc6\x66\xdf\x34\x75\xd7\x7c\x9e\xdd\x5c\x99\x12\x23\xbd\xc0\xd0\xba\x2e\xfb\xc2\xee\xf3\xaa\xfa\x92\x4b\xb3\x4b\xd3\xee\xea\xdb\x3f\x0e\x6b\x53\x7f\xf1\x48\x0a\xb4\xcb\xa6\xef\xe6\x67\x4b\xdf\x27\x3e\xf5\x87\xf9\x77\x66\x53\xda\x8e\xa6\xd8\xe2\x6b\xcb\xbf\x4c\x3b\xf8\x7c\x65\x96\x96\xba\x9c\xff\x48\xff\xa2\xef\xfb\xf7\x2e\x31\xd9\xa6\x9e\xff\x20\xff\xde\xbf\x77\xc8\x37\x66\x7e\x21\x85\x9d\xd9\x1f\xaa\x9c\xe0\x7f\x68\xda\x8a\xbe\xdf\xbf\x57\xe5\xf5\xa6\x67\x88\x43\x9b\xaf\xb6\xf4\x65\xd5\x1a\x82\x58\xd4\xe6\x8a\xd0\x44\x5d\x56\x95\xa9\x67\xb3\xd9\xfd\x7b\x3d\xad\xcb\xe2\xd0\x36\xeb\xb2\x32\x8b\xbc\x2e\x16\x7b\xa0\xf2\xb1\xa9\xfb\xee\xc6\xb4\x52\x90\x11\x5a\xb3\xbd\xd9\xb6\x32\x0f\x53\x10\xda\x16\xb9\xc5\xfa\x6e\x4c\xd5\x6c\x36\x5d\x96\x57\x16\x6b\x85\xd6\xea\x7c\x1f\x1a\xc0\x0f\x5a\xa1\x7d\x5e\x56\xf3\xa7\xa7\xe7\xf4\x0f\xc6\x6e\xed\x55\x43\x8b\xf8\x46\xfe\xe8\x80\x88\x45\x77\x7d\x30\xfe\x4b\xb6\x34\xb6\xbb\xfd\xad\x2b\x37\xc0\xc7\x2a\x3f\x74\xab\x6d\x3e\xff\x5a\xfe\x45\x47\xad\x39\x34\x84\xa3\xa6\xbd\x26\xdc\xb9\x3f\xef\xdf\x6b\xda\x4d\x5e\x97\x37\x79\x07\x64\xbd\xe6\x1f\x96\x7f\xdc\xbf\xb7\x2f\xdb\xb6\x69\x09\x23\xa5\xa1\x41\xdf\xbf\x47\xa8\x58\xa0\x95\xf9\xb7\xa6\xa7\xc5\x8e\x5b\x41\xd1\xbe\xdc\xb4\xc0\x29\x4a\xb3\x73\xfe\xc1\xcd\xa0\x6c\xdd\xb4\x3b\xad\x96\x2f\x69\xcf\x1e\xf2\x0a\x9b\x79\xdc\x08\x0d\x47\x1a\x18\x0c\x25\xaf\x69\x71\xb8\x34\x2e\xa0\x4d\x4f\xeb\x7c\x85\xc6\x08\x28\x2f\xf6\x84\xe5\x43\x5e\x9b\x6a\x7e\x86\xbf\x4f\xdf\xe0\x6f\x2a\x58\xad\x9a\xbe\xee\x16\xd6\x74\x1d\x2d\x80\x9d\xf3\x4e\x34\x65\xcd\xcb\x4a\xfb\x98\xf7\x9b\x2b\x7c\x9a\x7e\xbf\x6e\x7a\xbf\xdc\xf3\x27\x54\x29\x7b\xc3\x3f\xb4\xc4\x57\x43\x91\xc9\x06\x95\x79\x52\x76\xb1\x36\xa6\xa0\x69\x5d\xd9\xec\x19\xfd\x45\xeb\xd9\x57\x15\xa1\xf2\xaf\x84\x8f\xce\xce\xdf\xd0\x2f\x42\x84\xfc\xba\x7f\xaf\xb4\x96\xfe\x9a\xbf\xe4\x7f\xd0\xc4\x2a\xaf\x57\x98\xd2\x72\xd9\x1a\xda\x9a\xdc\xec\xcf\xd6\xe4\xed\x6a\xfb\x0b\xc6\x8d\x3f\xe6\x17\x3d\x8a\x78\x83\x1e\x59\x69\xec\x34\xbf\xcb\xb4\x9b\x39\xcd\x65\x59\x99\x3d\x75\xd2\x14\x66\xfe\x35\xfd\x8f\x5b\xc7\x2c\xe8\x64\x52\xf3\xfa\xd7\xfc\xa5\xfc\xab\xeb\xd1\x95\x1d\x61\x23\xfe\x96\xad\x6f\xff\x68\x33\x3a\x6c\x1d\x1d\x69\x6c\xc2\xec\xa2\xcb\x65\xa3\xfe\xb5\xa7\x43\xb7\x28\x96\x42\xe2\x9e\x37\x1b\x4b\x70\xb4\x23\x0a\x43\xdb\xf6\xfc\xfa\xe2\x9f\x5f\x9d\x64\x6f\x88\xba\x6d\x5a\x43\x7f\x67\x34\x06\x22\x1d\xff\xfc\x8a\x2a\x65\x9f\x9d\xd0\x7e\xf1\x3f\x3f\xcb\xe8\xc8\x83\xcc\x01\xa2\x59\xaf\xcb\x9b\x92\x8f\x65\xb6\x2c\xeb\xdb\xdf\x88\x10\x64\x7a\xda\xb3\x7c\x57\x5e\x12\x69\xe8\x08\x1b\xd4\xaf\x8c\xf6\x09\x6d\xce\x7a\x99\xd7\xbb\xc1\xc2\x03\x00\x27\xc9\x97\xd3\x2f\xd0\x50\xdb\x11\x0d\xb5\xdd\x08\x71\x13\x87\x91\x9a\xe0\x33\xec\x9b\x90\x43\x4c\x9f\x41\x57\x51\x9b\xc8\xa0\xe1\xbd\x6a\x40\x6f\xb3\x97\x75\xdd\x3c\x79\x7c\xfa\xb4\xde\x60\xd3\xec\xcb\x2e\xeb\xbb\xf5\xff\xbf\xa0\xf1\x98\x96\x08\xed\xaa\xcc\x7e\x32\x25\x16\x94\xf6\xf9\x8d\xa0\x96\x11\x45\xf3\xb1\xb6\x22\x8a\x43\x8b\x75\x71\xf1\xea\xf4\xbc\x29\x7a\x8b\x21\x75\xdb\xf9\x9b\x75\x4e\x5b\xcb\xfe\xb5\x02\xb6\xb5\xdf\x27\x84\x28\x0c\xaa\x3c\x50\x21\xa1\xcd\x7a\x4c\xfa\xa1\x52\x93\xa6\x6d\x17\x44\x11\xbb\xeb\x85\xd6\xf6\xed\x65\x37\xbd\x47\xfe\xa9\xaf\x92\x15\x79\xbb\xce\x6a\xdc\x25\x59\x65\x70\x01\x10\x4a\x67\xd8\x38\x6e\x02\x82\xf1\xb3\xaa\xda\x98\xfd\xf8\x5c\x64\x97\x0d\xae\xaa\x0d\x8d\x1c\x37\x1f\xa3\xee\xac\x06\x6a\xa8\xd8\x0a\xee\x5c\x81\x9b\xc9\x0b\x5a\xce\x0c\xa8\x8b\xcf\x3f\xc3\xd6\x19\xf5\x40\x28\xa2\x86\x75\xf3\xcb\xf8\xc3\xde\xcf\xbe\x6b\x9a\xee\x94\xf6\xc6\x0d\x90\x4a\x95\x0f\x8c\x2a\x0f\xea\xfa\xa0\xf1\x1a\xbe\x5e\x43\x55\x9b\x5d\x99\xb6\x90\xcb\xb5\x28\x8d\x35\xfb\x2c\x6a\x07\xd7\xef\x81\x17\x8a\xb7\x5a\xdb\xd3\x8d\x85\xcd\x72\xd6\x5b\x1a\xd0\xb6\xc5\x62\xb7\x59\xd8\x3a\x0e\x20\x5e\x1e\x57\x9a\xed\x7b\x6b\xd1\x47\xf6\x53\xbf\x69\xcb\xf5\xda\xd2\xc6\xa7\xf3\x4e\x14\x1d\x37\x2d\xef\x01\xba\xcd\xb3\x3b\xa6\x95\x6d\x73\xf0\x01\xb8\x7b\xd0\x6f\x1e\x8d\x22\x74\xe3\x70\xef\x16\xad\x68\xe8\xaa\xa9\xe7\x4f\xf8\x1f\xf7\xd3\x0f\x90\xa6\x4c\xad\x76\x19\xcd\xe8\xaa\x04\xb7\xb0\xa1\x66\xd7\x3c\xcc\x8b\x8b\x17\xd9\xaa\x22\x22\x9c\x7d\xff\xdd\x2b\xcb\x3b\x73\xbb\x38\xd0\x79\x98\xa3\xe4\x0d\x1f\x0c\xf7\x29\x6a\x8f\x4b\xea\x7e\xbf\xe7\xf5\xa4\xbd\x61\xd1\x12\x73\x34\x74\x78\x4f\xb2\x2a\x17\x34\x58\x03\x6a\x59\x15\xbc\xc3\x4e\x68\x19\x6a\x5a\x81\x9e\x7b\x2d\x4c\xbe\xeb\xf8\x80\xd3\x6c\xf7\xb7\xbf\x13\x92\x88\x74\xd2\x08\xb6\x5d\x77\x90\x21\xbc\x78\xfb\xf6\x8d\x8e\xc1\x7f\xf4\xcb\x2c\x13\xa0\x75\x60\x88\xec\x5b\x19\x0c\x68\x0b\xe6\x75\x76\xa8\xaa\x72\x27\x44\x8d\x4e\x06\x70\xbb\xcc\xdb\x99\x6c\xc9\xbe\xad\xa2\xad\x7a\x4a\x33\xf7\xdf\xdf\x07\x67\x18\xd6\x23\xfc\xef\x22\x42\x1d\x2f\x98\xac\x2f\x81\xc8\x9d\x6f\xf9\x38\x35\x07\x8c\xc2\x9f\xa7\xd7\xfa\x73\x74\xcd\x30\xb7\xa0\x40\x52\xdf\x71\x88\x43\x48\xbb\x27\x64\x30\x6d\xbb\x38\x27\x0c\x09\x81\xe3\x8f\xeb\xb6\xd9\x13\x3f\x54\x47\x3f\x3d\xc2\x88\xa9\xc2\x4e\x3e\x3d\x2b\x5a\x63\xad\xc9\x6a\x62\x91\xb2\xef\x9e\x7d\x9d\xfd\x3f\x9f\x7d\xfa\xe9\x2c\x7b\x5a\x77\x57\x06\x3b\xae\x26\x6a\x21\xc7\x9d\x07\x91\x39\x78\x26\xe9\xe5\x3e\x5b\x37\x44\x10\x98\x00\x3e\x6b\xda\x7d\xde\x7d\x9e\x3d\xf8\x96\x4e\xf0\x83\xec\x0b\x9e\xc1\x7f\x33\xef\x72\x62\xcc\xcc\x6c\xd5\xec\xbf\x9c\xe1\xd6\xa7\x3b\xb7\x95\x23\x75\x21\x67\xe9\xe9\xe9\x9e\x39\x22\x2d\xf2\xb4\x58\x8b\x63\xfe\x48\x18\xc5\xc5\xaa\xa9\xd7\x65\xbb\x8f\x18\x46\xac\x9c\xe7\x96\x78\x75\x76\xdd\xa5\x32\x92\x8c\xc8\xba\xe9\xca\xf5\xb5\xc3\x24\x9d\x9c\x1c\x8c\x2c\xed\x32\x07\x5d\x3a\x70\xcb\xbb\x76\x61\x05\xd9\xba\x02\xb2\x95\x4f\x79\x59\x2d\x11\x29\xf0\x64\x19\xed\x0a\x2c\x44\xba\x1a\x74\x87\x55\x84\x2e\xa1\xe7\xaf\xe5\x87\xd0\xf4\xa4\x97\x18\x8c\x76\xf2\x81\xb8\xe2\x27\xe1\x08\x30\x55\xf8\xfa\xc9\xb7\xb4\xc9\x68\x55\x08\xcb\x74\xa7\x17\xfd\x8e\xe9\xe3\x1e\x6d\xd1\x1d\x0a\xc2\xc6\xf7\x00\xa1\x5e\x09\x1a\xe8\x80\x52\x34\x19\x30\xe8\x05\xf1\x79\xa5\x59\xeb\xc5\x49\x44\x96\x78\x83\x05\x31\x72\x97\x39\xdd\xe5\xf3\xe7\xfa\xc7\xa9\xcc\x25\x39\x86\x63\x70\x1d\xa8\xab\xc4\xd8\x58\x2a\x11\x2a\xcc\xba\xac\x71\x3f\x9b\xec\x9f\x7b\xb9\xc2\xe3\xc6\x74\xc0\x67\x5c\xd1\xb8\x01\x13\xaf\x51\xd3\xc5\x53\xec\x6f\x7f\xbb\xfd\x8f\x72\x43\x13\xd8\xd3\xd1\x65\x9a\xb6\x6d\x56\x5b\x1a\x7a\x0e\x30\xde\x6b\xb6\xa4\xde\x2e\xb4\x82\x0c\xc0\x44\x53\x92\xcd\x21\x0c\xaa\xbf\xd9\xdb\x78\x83\x1c\x99\x5c\x5c\x71\x6a\x25\xca\x40\x68\x93\xe6\x4e\xf8\x68\x30\x53\x2a\xf5\x1b\x90\xae\xdd\xed\xef\x35\x78\x58\x57\x65\x47\x6c\x29\xfd\xcc\xeb\xca\xb8\xcb\x8c\x78\x27\xe2\xf4\x55\xf0\x5a\x50\x2f\x90\x46\x84\x77\x22\x04\x39\x39\xec\x24\xeb\xf7\xc4\x53\x6c\xc1\x08\x53\xf5\x1b\x3a\x31\x5b\x91\x96\xc6\xf5\x75\xd8\xaf\x4c\x51\x6e\x2a\xda\xd4\x04\x8f\x4b\x9a\x84\xae\x2e\xba\x25\xdc\xd0\x5c\xa3\x4b\xd3\x41\x2e\xea\xb0\x38\xcf\x6f\x7f\xa3\x4d\x9c\x71\x1f\x3c\x2f\xa6\x9a\x2a\x2c\x3e\x8a\x05\xb3\x8c\xe5\xad\x99\x63\xcd\x95\x57\x16\x3e\xf0\x82\x2a\xed\x6f\xff\x20\xf2\x50\x67\xff\x62\xba\x9b\x2e\xab\x69\x15\x33\x70\x67\xf4\x25\x41\xd5\xe9\x99\x30\xf0\x1e\x33\x19\x2e\x4e\xf0\x9a\xd1\x88\x3f\x7a\xf0\xf2\xc9\xfc\x93\x07\x1f\xd3\xf7\xed\xed\x6f\x15\x01\xf7\x1d\xdd\x65\x5d\x49\x02\x72\xdc\x1c\x8e\x05\xdf\xab\x61\x5c\x72\x6c\x59\x28\x38\x4d\x19\x15\xa1\xca\xc3\xf1\xb8\x7a\x13\x72\x9b\x93\x41\x46\x2c\xa2\x92\xa1\x71\x51\x2a\xb8\x49\xfd\x54\xfa\x53\x16\x7c\xb1\xa1\x5b\x5b\xd8\x67\xfd\xa2\x9b\x13\x97\xdf\x62\x53\x76\x8b\x35\x88\x62\x31\x7f\x66\xb6\x44\x1b\xa9\x5d\xa2\x05\x6f\x0d\x1f\x54\x9b\x7d\x48\x00\x1f\x92\x80\xbe\x27\x51\xaa\x68\xec\xe7\xd9\xc3\x4b\xc7\x2c\x7e\x06\x82\xb7\xa0\x53\x52\x56\xd8\xe4\x2a\xc9\x38\x56\x9a\xf0\x0e\x4c\xdf\xfe\x81\x25\x72\xdc\x23\xf3\x7e\x27\xc4\x77\x83\xad\xc5\xb9\xa3\x3d\x20\xfb\x20\xb0\xe5\x8e\x2b\xf7\x2d\x81\xe2\x3c\xa4\xab\x11\x27\xa2\xc3\x9d\xfe\xed\xcb\xaf\x5f\xbc\xe5\x5a\x9b\x66\xd9\x97\x55\x71\xaa\xa0\x33\x4c\xfa\x92\xe4\x88\x02\x62\x83\x6e\x9b\xc0\x5d\x0f\x16\x89\x0f\xbb\x70\xa3\xbb\x86\xce\xdd\xae\x93\xd9\xb9\x26\xde\x8b\x25\xe4\xeb\x9f\xda\xbb\xfd\xa3\xa2\xa5\x90\x06\x3c\xbb\x06\xfc\xd0\x56\x22\x31\xeb\xc9\x51\xbe\x0a\xf5\x65\x10\xcc\x7b\xed\x3a\x26\x6c\xbe\xfc\x73\x4c\xfd\xf4\x4b\xfa\x3f\xa1\x3d\xbf\x34\x72\x2f\x6d\xdc\x9a\x61\xe2\x90\xe0\x18\x1b\xdf\x70\x51\x2f\x9b\x95\x58\xf0\xcc\x31\x99\x35\xf7\xb2\xa6\xf5\x65\xbd\x0f\x54\x17\x75\x3a\xd7\xe4\xa0\xa9\x14\x2c\x7a\x97\x09\x9c\x0d\xa6\xeb\xf6\x19\x0d\x64\x45\xd7\xf6\xfc\x05\xb4\x50\xa0\x10\x3f\x96\x55\xb5\xa3\x9d\x63\xea\x0f\xe8\x6f\xa5\xae\xc4\x20\x6c\x4f\x70\xf7\x58\xb0\x65\x05\xe0\xf8\xb4\x88\x7c\x57\x77\x34\xbe\xd2\xe0\xe8\x6c\x73\xe2\xcd\xb8\xde\xd5\xed\x1f\xb5\x85\x54\x93\x11\x21\xaa\xb0\x2f\x36\x35\xf3\xed\xd4\x0c\xc9\x40\xcc\xf2\xfc\x0c\xe5\x15\xc9\x9d\xbd\x30\xff\x0d\xd1\x94\x36\x39\x63\x42\xe0\x87\x9a\x11\x07\x19\x0e\x1c\xf1\x5e\xb4\x60\x0b\xaf\x00\x03\xc2\x3b\xf3\xae\xa3\x6d\xa4\x5f\x58\x5d\x45\x5f\xe8\x82\x59\x6d\xad\xa9\x70\xfd\x5f\xf3\x6e\xb1\xf3\x73\x3e\x03\x91\x1c\x80\x13\x4c\xa2\xee\xb2\xc1\xaa\x5c\x1a\x05\x7b\xce\xe2\x0d\xcd\x29\x5f\x77\x40\xd5\xa0\x0a\x35\xd7\xb4\x1b\xd7\x5a\xaa\xb9\xe0\x52\x51\xb1\x38\x00\xaf\x69\x61\x3a\xcd\x5a\x3c\xda\x34\x81\xf4\x02\x3f\xa2\x1d\x98\xd1\x22\xb3\xfa\x41\x86\xf1\xb2\x16\x56\xba\x0e\xdd\x97\xa2\x3b\xf8\x59\x55\x7d\xbf\xa8\x5a\x60\x9e\x8c\x8f\xca\x89\x4a\x42\x8b\x10\xb4\x5d\x0b\xd5\x96\xa8\xba\x46\x36\x8f\x71\x1a\xb0\x88\xb1\xda\x9a\x03\x58\xb0\xbd\xa5\x93\xd9\xf3\x2a\x43\x75\xd9\xb0\x38\x26\xd5\xbe\xca\xfe\xc2\x84\x3d\xd7\xbb\xe1\x03\xaf\x49\x7c\xbf\x46\x52\xbd\xa2\x6b\x2d\x52\x20\x7e\x30\xbc\x99\x45\x33\x47\xa2\xec\xfc\xa9\xcd\xba\x1e\x27\xda\x92\x00\x51\x16\x27\x7c\xb0\x12\x1e\x30\xbb\xea\x5b\x10\x2e\x7f\x7f\xd3\x2e\x15\x39\x9d\x85\x74\xd9\xd2\x79\x3d\x26\xff\x23\x46\x02\x13\x60\x82\x3d\xd5\xe7\xe3\x98\xd3\xc4\xd6\x4d\x19\xd1\x53\x65\x95\xc7\x83\x01\xaa\xf7\x66\xbf\x44\xeb\x66\x1e\x6e\xe9\x8c\x3a\x2e\x97\x58\x0a\xe2\x03\x36\x44\x99\xc6\x57\x0a\xa1\x68\x03\xc6\x5b\x61\xcc\x9d\x30\x5f\x79\x5d\x2b\xd1\xb9\x2b\x2c\xc3\x15\x9d\x77\x5a\x88\xd1\x3a\xb6\xd1\xd5\xfe\x81\xbf\xd2\x84\x19\x62\xc6\x99\x5a\xeb\xfc\x02\x60\x47\xd7\x50\xe5\xc5\x18\x18\xcc\x97\xd0\xfb\xc5\xf2\xcb\x87\xf6\x8b\x47\xcb\x2f\x21\x4c\x03\xf1\xb4\x0c\xe8\xb5\x6d\xe4\x82\xe3\x9d\xcd\xfa\xa1\x35\xa4\x8e\x92\xd8\x92\x96\x78\x92\x25\xe3\x92\x2e\x18\x3a\xba\x60\x9a\x1e\x82\xdf\x63\x65\x36\x33\x43\xe3\xd5\xce\x97\xc4\x16\x11\xcd\x2c\xcd\xed\x7f\x30\x73\xe5\x98\x22\xb9\x6c\xcf\x81\x5b\x59\x73\xa8\x63\xf8\x38\x39\x32\xe3\xe5\x9e\x1c\x37\xf4\x8a\xcf\x3f\x9f\x3e\x77\x54\xce\x02\x07\xe8\x91\x86\xe5\x63\x7c\x54\x25\x35\x78\x7c\x5b\x12\x75\xc7\xac\x09\xdf\x44\xe8\x89\x73\xe9\x89\xf4\x67\xae\xc1\x08\x63\xd6\xef\xce\x1c\x7c\xf3\x67\xd9\x79\x49\x44\x91\x67\x42\xc7\x66\xd1\xd7\xba\x1c\xa6\x90\xcd\xf8\x82\x48\x79\x43\xd7\x0d\x77\xc1\x07\x8b\x69\x4c\x5f\x7b\x7e\xa3\x33\xc3\xf9\x7d\xe4\x17\xe3\x63\xa2\xd8\x2a\x71\x33\x47\x36\xbd\x88\xbc\x12\x9d\xd2\x78\x21\xcc\xc6\x2f\x3b\x6d\xd1\xdb\xdf\xd1\x8d\x25\x4e\x61\x47\xd4\x71\x67\x94\x61\x60\x69\x18\xdc\x95\x17\x07\x1f\xf7\x5d\xd7\x08\xc7\x0b\x6c\xe8\x0c\xa0\xf2\x91\x8a\xba\xa8\xdc\xf8\x04\x6e\x68\x20\xd4\x25\x63\x10\x4a\x04\x23\x36\x0d\xe3\x84\xb9\x05\xed\x79\xd0\x9d\xce\xb0\x70\x3e\x9a\x36\x2e\x55\x2c\x3a\xcf\x74\x9f\x0d\xec\x14\x38\x89\x3c\x28\x8c\xad\x3b\x36\x34\x2f\xb9\xd3\x20\xf6\x5e\x0e\x3d\xbd\xe9\xdb\xdb\x3f\x56\x3b\xaa\x78\x03\x45\xd5\xd4\x30\xa5\xd9\xf1\x01\x4d\xaa\x86\x1b\x9e\x15\xb5\xe3\x6d\xc4\x9a\xa4\x68\x89\x00\xc6\x13\x83\xbe\xbd\x22\x8c\x3b\xd1\xc8\x5f\xfa\xb3\x61\xd7\x89\xaa\x2d\x99\x1c\x09\x98\xc3\x61\x41\xc6\x90\x81\xf9\xea\x5d\xd3\x2c\xec\x16\xda\x97\x27\x71\x05\xd6\x6b\x11\xf9\x2c\x58\x00\xa6\x11\xff\xbf\x4e\xb9\x99\xc1\xea\xc2\x7a\x28\xbe\x8a\x48\x58\xcd\xa1\x72\xbe\x36\x76\xfe\x97\xfc\xfe\xbd\x1a\x96\x06\x94\x51\x01\xe4\xf1\xdb\x7f\x87\x8c\x2f\xb0\x44\xd6\xf6\x04\xfa\x3d\x71\x67\xdf\x8e\xb9\x70\x5c\x72\xfc\x39\xdc\x76\xa7\xdf\x72\xc9\xd3\x88\xb3\x76\xeb\x7f\xff\xde\x9b\x31\xbf\xfe\x9d\xb9\xc3\xbc\x72\x71\xf1\xe2\xad\x88\xfa\xd0\x5c\x11\x51\x61\x39\xa6\x92\xce\x5f\x74\xdd\xc1\x7e\xdf\x56\xac\x83\xba\x10\x15\xd1\x9b\xfc\xba\x6a\xf2\x02\x5f\xf5\x4f\xf9\xfe\xd6\xe4\x7b\x1e\x28\xfe\x90\xea\x67\x74\x21\xf3\x27\xfc\x41\xf4\xa3\x64\x7e\xba\x0d\x9a\x51\xbe\x8b\x64\x1e\xfc\xa7\xd7\x89\x04\x79\xcf\xb0\xe1\xe6\xd7\x69\x3d\xed\xaf\x44\xc3\xaa\xc3\x36\x67\xd6\xc8\x83\xee\x72\x3a\xed\xc4\xd9\x3a\x12\x29\xa2\x21\xe0\xea\x7e\x6f\x5a\x48\x51\xc6\xaf\x1b\x64\xf9\x07\xa7\x8b\x07\xe0\xf3\x84\x02\x0c\x5a\x2d\xe8\xd0\xfd\xfd\x2d\xcf\x46\x4d\xdb\xf2\x26\xcc\xca\x2b\x4a\x9f\xb7\xb7\xbf\x13\x31\x67\xa1\x02\x9a\x4f\x40\x32\xfb\x3b\x82\xe6\xed\x27\xbb\x8f\x80\x5d\x67\x49\x17\xfb\xfc\x5d\x5a\x91\x91\xb7\x85\x76\xf1\xee\x8a\x42\x66\x5c\x2d\x1c\x39\xa1\x98\x7a\xcc\x86\xd4\x06\x55\xa0\x2d\xbc\xa3\x02\x6d\x0d\x86\xaa\x77\x74\x21\xd7\x0a\xf9\x3d\x11\x6e\xa0\x12\x86\x55\x91\xf0\x3e\xf7\x76\x3e\xba\xc6\x56\x90\x7c\x56\x9d\xb3\xf8\x65\xb6\x2b\xf7\x7b\x27\x91\xb0\x99\x56\xd4\xbd\xfe\xb4\x46\x32\x0d\x94\xb2\xf8\x7c\xfb\x7b\x8b\xd6\xb9\x2a\x44\xfb\x61\xdd\x60\xad\x5c\x2c\x8d\x21\xb9\x39\x27\x0a\x91\x32\xe7\x98\x0d\xc3\x77\x56\x38\x8c\x65\xd0\xca\x0f\x2b\x0e\x0e\xe7\xb1\xba\xc4\xc0\x8c\xaa\x8e\x8c\x00\xc7\x2a\x77\x74\xae\x46\xb5\xdd\x61\x3b\x56\x49\x56\x94\x2b\xd0\x84\x8b\x01\xb9\x20\xf6\xa8\x2d\xe2\x6a\x57\xc2\xb5\x10\x89\x26\x0e\x79\x03\x6d\xad\xeb\x34\xf4\x84\x1d\xc3\x5a\x09\x4f\x7e\xfd\x9e\x9f\x45\x68\xf5\xab\x13\x16\x74\x2c\xfb\x78\x9a\x14\x44\x4e\x95\x7b\x31\x76\x6c\x90\x96\x0d\xce\x91\xf4\x2b\x9a\x0a\xbe\x7c\x85\x91\xcf\x2c\x0b\x94\x4e\x80\x93\x8b\x7b\x63\x18\x03\xb1\x10\x23\x2b\xc3\xca\x4f\x62\x4b\x4a\x3b\xd9\x05\x6d\x52\x08\xc9\x7f\x5b\x1f\x74\x5b\x95\x7e\x5e\x7f\xd2\x81\xbf\x1c\xef\x68\x9e\xae\x9c\xb8\x79\x8f\xa4\xb4\x69\x2f\xce\x9b\x77\xf4\x61\x7e\xe6\x2b\x44\x86\x18\x2e\x02\x0b\x2e\xc8\x9d\xc1\x3b\xc0\x76\x90\xe4\x64\xa6\xac\x04\xa0\x3b\x9c\x86\xb9\xc6\x8d\x3e\x52\x03\x60\xaa\x15\x38\xe6\x30\xcb\x4c\xf8\xc9\x78\xdf\xce\x32\x61\x46\x9c\x12\xec\xa6\x87\x94\x45\x5c\x70\x75\xfb\xbb\xc5\xa2\xf2\x62\xf3\xf1\x23\xb9\x63\xe3\x35\xb7\x7c\x10\x1d\x66\x60\x60\xd9\x99\xeb\xf9\x2b\xe2\x02\x9c\xde\x93\xf6\xa7\x6e\x0b\x35\x95\xbe\xa2\xda\x27\x4e\x42\x4c\xaf\x2c\xcc\x83\xbb\x38\xd0\xad\xbe\x66\x6d\x82\x65\xe1\x1b\xd2\x0d\xed\x6d\xba\x77\x7d\x1f\x2c\xd9\x33\x35\x9f\x6e\x4a\xfa\xe4\x4a\x7c\x65\x81\x7b\xa8\x99\x0a\xb1\x0d\x37\xaf\x75\xa9\xe8\x6f\x3d\x03\xbc\x28\x59\xb2\xa8\x50\x49\x3b\xa7\x17\x59\x60\xa8\xe9\xe8\x2a\x74\x9a\x92\xd1\xb5\x38\xa9\x0f\xa1\x2b\xa3\xa3\xe3\x88\x05\x13\x9f\x85\x27\x9e\x31\xc7\x55\x5e\x7a\x7d\x63\x2c\x30\xff\x03\x2b\x22\xbd\x81\x11\x87\x8f\x02\xc9\x50\x4b\x3e\x9c\xe8\xe1\xbc\xec\x36\x74\xf1\x15\x13\x5b\xc0\x6b\xd0\xb8\x7d\x43\x1d\xaa\x40\x23\x9a\x79\x5f\x55\x14\x0c\x4a\x0b\x87\x13\x63\xc8\xb8\xd5\x23\x13\xbc\xfe\x47\xe6\x17\xe3\x93\xed\x31\xd2\xd2\x78\x31\x98\x38\x72\xc7\x97\x22\xc5\xb3\x2f\x80\x27\x62\xd4\x19\xfe\xea\x4e\x74\x86\x77\x0f\xa5\x60\x25\xf2\xb8\x93\x8d\xb9\xfd\xad\x66\xf7\x81\x68\x80\x5d\xce\x92\xee\xb2\xcd\xeb\xd5\x36\x3a\xe3\x3f\x95\xa6\x3a\x7d\xcc\x5f\x87\x47\x9b\x59\x49\x4c\x07\x1a\x90\x2d\x44\xec\x85\xda\x3a\x84\xd7\x74\xc2\x27\x3b\x7c\x2c\xcb\xaa\x60\xd1\xc5\x59\x38\x60\xa6\xf2\xf5\x56\xbd\xed\x9a\xfd\x54\x75\xcc\x40\x4c\x20\xa5\x28\x13\x06\x26\xb9\x7f\x69\x88\x65\x69\xea\xc8\x40\xd5\x45\x3e\x1c\x84\xa5\x54\x67\xc3\xf2\x67\xd9\x11\x3b\xfc\x3f\xd6\x74\x60\x55\xed\x24\x42\x11\x38\x54\x88\xfc\x24\xf9\x11\x62\xec\xfc\x19\x0b\x58\x58\xbb\x1c\xf4\x74\x7e\x9e\xb7\x3b\x69\x5f\x60\xa0\x23\x04\x0c\x23\x02\x2c\xf5\x8c\x6f\x21\x88\x05\xed\x25\xc1\xc7\xf6\x69\xa6\xd3\x1f\x3e\xb4\x1f\x32\x89\x13\x10\xd5\x53\x84\x9a\x87\x9c\xb6\x73\x5b\x8b\xd0\xc5\xa3\x28\x92\x0b\xac\xb6\xa7\xe7\x3d\x14\x26\xd9\x83\x87\xf6\x41\x74\x81\xdd\xf4\xd5\xed\x6f\xd6\xb2\x54\xc2\xde\x2d\xe2\x55\x43\xeb\xe2\x5c\x6f\x9c\xd7\xcd\x84\x6e\x5d\x09\x94\x1d\xb0\xe3\x4e\xdb\x34\xbf\x10\x3d\x92\xe8\xfb\x6a\x36\xd8\x12\xd6\x84\x79\x08\xd6\x5c\xb6\xb4\x41\x5b\x37\xd4\xd3\x15\x86\x88\xb9\xda\x07\xdc\x51\xa5\xcf\x7d\x59\xcc\xbf\x2f\x0b\x8c\xf7\xd0\x2f\xa9\x41\xef\x25\x14\xaf\x8c\xf5\xee\x42\xce\x65\x8c\xad\x1f\x4f\x22\x33\x69\x22\x87\xde\xfe\xee\xeb\xe2\xf4\x58\x03\xe3\x33\xb3\xc5\x7c\xb2\x58\xc5\xaa\x6a\x07\x7b\x30\x37\x74\x28\x98\x72\x44\x46\x4a\x96\xff\xd4\x33\x8a\x39\x93\x93\xcc\xd2\x52\x1b\xad\x0b\x22\x7b\x65\x96\xa7\xcb\xdc\xb2\x05\xae\xce\x9e\x11\xa3\x29\x73\x15\x8d\x95\x38\xf5\xb1\x89\x1f\xe6\x1b\x3a\x6d\x7b\xe8\x1f\xc3\x59\x5b\xc3\x7d\x89\xaf\xfb\x1f\x1a\x68\x8a\x70\x18\xe9\x98\xb7\x99\xc8\x58\x63\x67\xbc\xaa\x11\x6c\xcf\xd9\x24\xc7\x6b\xd6\x1f\x0a\x28\x1c\xd3\xd5\x65\xb5\x39\xdd\x6b\x56\x2d\x1b\x29\x90\x57\x4c\x8f\x81\x3b\x7f\x0e\x27\xfd\xe9\x02\xc1\x18\xc1\xc9\x72\x24\xc0\xa2\x9a\xf2\x55\x4e\x82\x8b\x01\xd4\x21\xb4\xd9\xbb\x75\x0e\xed\xff\x57\x4c\x4e\x89\xda\xd2\x3a\x75\x2d\x08\x37\xb4\x1d\x99\xbd\xfd\x6d\xaf\xa7\xf2\x55\x59\xef\xac\x20\xb5\x88\xef\x9f\xae\x35\x58\xe5\x19\xeb\xd0\x68\xa3\xf7\x40\x16\x5c\x26\xa7\x9d\xbd\x8c\x5c\xc7\x29\x89\x09\x3a\x27\x58\x55\x6f\x52\xb3\xaa\x23\x39\xd3\x75\xbd\x5d\x3f\x36\x5c\xda\xa0\x62\xf1\x04\x4b\x6f\x74\x78\x8c\x38\x33\x2e\xf1\x0b\x6c\x67\x05\x22\x9b\xc6\xaa\xca\x58\x86\x04\x8d\xb1\xaf\x4b\x12\xdf\xd5\xed\x6f\xdb\x2a\x5a\x47\x37\x72\xb1\x22\x47\x64\x70\xbc\xee\x10\x91\x89\x01\xd4\xf1\x32\x39\x59\x94\x7b\x38\x68\x42\x5a\x89\xec\xbd\x6a\xd7\xf6\x62\x14\x71\x13\x55\x31\x83\xf2\x60\x30\xe7\x60\xdf\xfa\x06\x60\x63\x53\x74\xeb\x46\x4e\x07\x07\xee\x44\x74\xee\x4e\x62\x65\x53\x44\xad\x68\x43\xb0\xed\x74\x36\x98\x9a\xdf\xa1\x72\xbc\x27\x26\xaa\x6a\xcf\x68\xe7\x32\xc1\xd3\x4d\x39\x56\x02\xc9\x1e\x04\x65\xaa\x22\x36\xf8\x4c\xad\x4b\x36\x72\x78\xc0\x3a\x78\x00\xd1\xdd\x87\xc2\x09\xb9\x62\xdc\xc6\xa4\x3c\x31\x18\x59\x38\x83\xae\x92\x3f\x27\xc4\x5d\xf4\xcc\x1e\x32\xfb\x42\xe4\x4b\xac\xba\xa2\x4d\xdd\xb3\x4e\xb0\x0e\x7d\x39\x9b\x00\x4f\x9f\x05\x2e\x3b\x90\xb3\x82\xdb\xe7\x74\x71\xec\xfa\x29\x12\x5b\x44\x59\x0f\x6d\xb9\x67\xe3\xe3\x94\xec\xc6\x84\x70\x82\x62\x82\xca\xe6\x72\x71\x07\x9a\x98\x48\x78\x68\x36\x6f\xaf\x89\x02\x71\xf3\xfe\x83\x2a\x91\xcf\x2a\x1b\x7a\x76\x5d\x7a\xaf\x3f\x77\x93\x28\xf0\x2b\x7f\x93\xe4\x45\xc1\xc7\x48\xbe\xb3\xfb\xeb\x60\xd8\xdb\xb2\xbe\xe9\xc5\xc7\x4d\xc0\xcd\x84\x1e\xeb\x08\xd4\x22\xd1\xd3\x43\x25\x7d\x4c\x37\xbf\xff\x13\xc5\xbc\x63\x57\x63\x81\x21\x83\x1d\xff\x25\xc8\x21\xeb\xe8\x21\x82\x41\xa9\x17\xd4\xf4\x6c\xf5\xf5\xca\x79\xa7\x2b\x4d\xac\x22\x23\xd5\x7c\x18\x7b\x7a\xa0\xea\x09\xd4\xc8\x78\xe1\x50\x5a\x6d\xd8\x59\x4b\xd0\xb0\x31\x40\x84\x9c\x2e\xdd\x46\x47\xd8\x84\xd4\x85\xb8\x60\x51\x67\x00\x91\x20\x16\xcd\xc8\x4e\x03\xf5\x2f\x9d\x62\xfd\x15\x0c\x41\x7c\xbd\xb6\x03\xc1\x48\x2e\x00\x6f\x55\x18\x2b\x98\x59\x6c\x63\x37\x2a\x96\x27\xe5\x8e\x1e\xd6\xa7\xab\x47\xcf\xa6\xc1\x11\x53\x7f\x3b\xa5\xe4\x5f\x10\xe3\xd8\xd4\x9b\x2f\x21\x78\xb4\xf0\x03\xa2\x51\xb1\x37\xff\x57\x5f\x3c\xd2\xa2\x8c\xd5\xba\x7e\xb8\x67\x75\x45\x37\x0e\xb0\x0f\x7d\xf5\x17\x79\x46\x4b\xb8\x9e\x83\x2b\xfb\xf2\x69\x7b\x63\x7a\xe7\xa6\x39\xd0\x70\x7e\xf1\x28\xff\x52\x78\xf3\xa4\x8a\xba\x11\x83\x39\x52\x7f\x4c\x38\xd1\x0b\x22\xb4\xcc\xa0\xea\x2c\x6c\xf6\xf7\x41\x33\xc1\x44\x6a\x18\xf1\x45\x61\x6f\x86\x88\x4b\xc2\x16\xf4\x4d\x58\xdd\x0e\xf1\x99\x75\x0d\xf1\x6d\x2f\xfa\x1c\xa2\xff\x71\x0b\x6d\xd4\x82\xa7\x57\x90\x41\xa9\xed\x6f\xc5\xc3\xd4\xcb\x0d\xaa\xf7\xa1\x76\x5d\x9b\xf3\xa1\x02\x18\x05\x6c\x6c\xa6\x93\x26\x63\xf6\x1b\xcb\xef\x67\x1c\xf2\xe1\x3e\x11\xee\xfa\xee\xfd\xfc\x81\x27\x22\x13\xf8\x0b\xbc\xa9\x9b\x33\xc3\x32\xe3\x95\x42\x7a\xd5\xc5\x18\x54\xf7\x76\x6e\x33\x47\xa0\x9c\x37\x66\xda\x86\x15\x5a\xca\x7b\x15\xc3\xdb\xde\xfe\xde\xb2\xac\x37\xe5\xbe\x0a\xaf\x26\x36\xfa\x08\x77\xa1\xee\x3c\x7e\x14\xb3\xec\xfc\x08\x8b\x35\x31\x3e\x87\xc2\xc1\x94\xc6\x78\xf3\xc2\xe4\x07\x82\x7f\x42\xc3\x8b\x08\x95\x59\xbe\x57\xcd\x0e\x6f\x8a\x9f\xfa\xca\x99\x97\x65\xeb\x60\xc4\xcc\x47\x78\x89\xeb\x1b\x4f\x84\xea\x48\xe0\x02\x12\x79\x69\x3b\x30\x02\x9e\x32\xa4\xbb\x4a\x46\xa7\x02\xa0\xe8\x86\xea\xec\xff\xcb\xde\xe6\x09\xa7\x4e\x42\x6c\x43\xc7\x7b\xd4\x94\xcd\xde\xe2\xfb\xdd\xad\x08\x47\xd3\xc5\x04\x4f\xc4\x9f\x1f\x3c\xa1\x31\xce\xa4\xae\xa2\x50\x4c\xfa\xd4\x32\x7f\x94\xb2\x05\x72\x15\x22\x7e\x5a\x6d\x67\x48\xbb\x7c\x8f\xbc\xf4\xc7\xe8\x57\x5f\x2f\x89\xee\xcd\x63\xe0\x78\x63\x4a\x71\xb8\x01\xca\xb4\x5d\xa6\x5b\x3a\x0e\xc7\x59\xeb\x1e\x90\x36\x12\xda\x9f\x73\x23\x0b\x46\x2f\x7a\xc4\xac\xd1\x08\x11\x4f\x7b\xfb\x7b\xad\x64\x80\xb6\x6e\x0e\xab\x22\x63\xdb\x3a\x77\x76\xf5\x8b\x90\xba\xc2\x59\xc9\x72\x18\x25\x94\xba\x6c\x56\x90\xf7\x03\x3b\x56\xb6\x19\x57\x16\x27\x47\x69\xcf\x3b\xd5\xe9\x4a\xa9\x40\xc5\x7c\xb7\x73\x10\x66\x1d\xdb\xd9\x9b\x97\x96\xa6\x47\x3b\x95\x36\xb2\xc8\x09\x7e\x00\xd2\xc7\x79\x43\x54\x89\x64\x29\x1a\x42\x95\xf7\xcb\x8e\x78\xad\xc2\x0f\xeb\xb2\x61\x8f\x4a\x3d\x87\xfe\xe0\x09\x8e\x66\x6e\x8f\x89\x7e\x1a\x7f\xaa\x69\xcc\x4f\x56\x26\x3a\x9c\x62\x5a\x2c\xcb\x62\xac\xe2\x23\x41\x9c\x3f\x8a\xcc\xf5\x76\x1f\xa8\x82\x6f\xd7\x1c\x82\x89\x3c\xc6\xfb\xb0\x3a\xf3\x8d\xcc\x4d\x12\x85\xc1\x26\xb4\x99\x3d\xe0\xa0\x39\x81\x04\x81\x55\x70\x73\x34\x4c\x6f\x14\xab\x81\x32\xca\xf8\x23\xf6\x2a\x5a\xfb\x40\x11\x75\xc7\x62\x13\xe0\x9e\x8b\x07\x54\x0b\x22\x8f\xd4\x3c\x4e\x20\x27\xda\xf8\x33\x2a\x69\x58\x41\xeb\x75\x10\xef\x47\x12\xe3\x79\x06\x86\x7c\x88\x51\x26\xc2\x83\x15\x09\xc4\xd1\x1d\x92\x0f\xd8\x0d\xab\xb4\xd6\x3b\xaf\x09\x77\xe0\x06\x44\xf2\x5e\x22\x9c\xf1\xa1\xd2\x01\x38\xf7\x87\xa1\x66\x44\x8b\xd5\xe5\x41\x35\x85\xcc\x4e\x0b\x36\x22\x59\xb8\xc8\x7b\xf0\x89\xc4\x03\xb9\xea\xcc\x85\xb3\x96\xd9\x31\x35\xec\x26\x18\xf8\x18\x36\x3f\x6f\x48\xe8\xd8\x94\x9b\x81\x6e\x22\x38\xa5\x2c\x06\x43\x7c\x35\x1c\x9c\x8b\x09\xd3\x48\x15\xbd\x91\x46\x73\x70\x60\xb2\xe6\xaa\xd6\x2d\xf2\x25\x49\x9c\xba\xe8\xc3\x79\x40\x40\xd6\x56\x4e\x9c\x27\xcd\x70\x01\xef\xdf\xfb\x19\x0a\xbe\x5f\x48\xac\x63\x83\x82\xb3\x12\x44\x86\xb2\xb1\xe9\x3a\xd8\xd0\x94\xe9\x7b\xde\x77\x23\x53\x8d\x7a\xf6\xed\xfa\xf6\xe6\x04\xd4\x9b\xb8\xf4\xdf\x36\x36\xdf\x33\x56\x1d\x42\xe9\xfb\x4d\xb9\xc9\x5b\xba\x9b\x3d\x5a\x67\xf0\x3a\xb3\xe5\xb2\xac\x70\xd3\x5d\x60\x2f\x90\x00\x4c\x12\x75\xa7\x05\xf8\x1e\xd8\xcd\x03\xd1\x9e\x15\x42\x35\xe6\x0f\xfa\x32\x6b\x4d\x91\xc1\x93\x0e\x8c\x60\x49\x42\xaf\x21\xb9\x01\x20\x5f\x26\xf1\x7d\xa1\x19\x84\x03\xba\xb6\x3e\x62\x61\x44\x14\xa6\xec\x22\x25\x68\xfd\x11\x84\x93\x4f\xcf\x8e\xed\x00\x4c\xc6\xf8\x18\x3d\xa3\xca\x16\xea\x85\x8f\x59\xf3\xb8\x13\x35\x78\xe4\xda\x99\x2f\x25\xbe\xb0\xd6\x72\x8e\x6c\x38\x93\x8f\x7a\xdc\xb5\x64\x34\xb1\x78\xde\x4c\x16\xe2\x68\xc5\xd4\xbb\x2e\x92\x96\xe9\x6a\x14\x19\x78\x99\xbb\x25\x54\xad\x12\x82\x73\x4d\xb9\xa4\x5e\xf5\x3b\x3c\x1e\x42\x8c\xa9\xff\xe4\xfa\x9f\x6d\x4a\x5a\x94\xba\x69\x83\xbb\x7e\xac\x47\xa1\xc3\x4d\x24\xc5\xcc\x5f\x95\x37\xa6\xbe\xf1\xbf\x5d\xed\x1f\x19\xce\x5d\xda\x00\x41\x6d\x74\x93\x17\xbc\xa3\xf0\x8f\xfb\xe9\x2a\xc9\xd7\x4c\x23\x61\x93\xee\xe0\x41\xbd\x28\xeb\xb2\x8b\xb1\x0b\xfe\x98\x23\x05\x18\x0c\x58\x71\x23\xc5\x16\xd3\x66\x10\x2f\x45\x33\x89\x54\x3a\xea\x60\x38\x5c\xab\xc8\xb1\xb0\x30\xeb\xbc\xaf\x9c\x02\x7f\xee\xbc\xf7\x55\x75\xef\xc2\x51\x69\x3c\x74\x11\x5c\x42\xab\x2b\xde\x92\xa7\x2f\xf5\x43\x95\x7d\x54\xd6\x4e\xce\xfc\xf8\x88\x46\x7b\x68\xd9\xf4\x0a\xed\x09\x33\xf0\xdd\x6a\xed\x41\x4b\x76\x2f\x7a\x6d\xdf\xe0\x94\x5e\xbb\x36\xd0\x69\xf5\xdd\x96\xad\x58\xb4\x8d\xac\xaa\x96\xbc\xaf\x14\xa6\xb9\x91\x6b\x16\xee\x27\x3e\x8c\xd6\x72\x50\x62\x5c\x16\x87\x1b\xc5\x81\xb4\xa5\x2a\x39\x40\x63\x93\x73\xca\xae\xae\xcb\xaa\x37\x0f\xbe\x54\xd4\xb1\x3f\x88\x9e\xd4\xd0\xf8\x70\x89\xf0\xdd\x45\xc7\x08\xc8\x8c\x63\x97\x16\xc4\x53\x43\x04\x9f\x3b\x49\x5c\x2f\xf8\x63\x70\xe1\xde\x64\xea\xce\xbb\x34\xc4\x43\x3d\x7a\xfe\xf2\x2d\x1c\x1f\xbc\x17\x59\x56\x35\x3b\x66\x31\x25\x3a\x85\x03\x18\x35\x64\xcd\x35\xef\x8c\xa0\x50\x2f\x57\xe2\xe1\xfd\x4a\x2b\x71\xf0\x62\xe2\xd2\x7d\x92\x8d\x4d\xbb\x1a\x98\xe4\x54\x87\xaf\xdb\xa2\x66\x7b\xa3\x90\x07\x5a\x2b\x26\x1d\xcf\x0d\x7e\x75\x11\xdd\xe0\xe0\x28\x62\xeb\xd7\xf3\x8b\x97\xc6\xb3\x75\xdc\x46\x84\x38\x6e\x43\x8c\x9e\x59\xb9\x05\x84\xdc\xff\x1d\x5f\x53\x87\xeb\x45\x55\xd6\x3b\xba\x3c\x1d\xd6\x56\x70\xb9\xa2\x5b\x7d\x81\x42\xf8\xf4\xfe\x74\xc5\xca\x7d\x68\x70\x71\x34\x03\x7e\x57\xf8\xab\xd0\xaa\x5d\xf6\xfa\x1b\x54\x06\xaa\xdd\x9e\x18\xaa\x01\x24\x18\xe0\x1b\xc0\xd4\x5f\x89\x26\x60\x53\x2e\x99\xb5\x22\x39\x5e\x2c\x67\xf3\x07\x0b\xea\xa7\xde\x3d\x88\xe4\x7a\xae\x0c\xc1\xfd\x03\xf0\xe3\x57\xec\x2e\xf2\xd8\x34\x4b\xdc\xb9\xb2\x6f\x55\xb3\x95\x16\x09\xfb\x0e\xab\x93\x33\x39\x69\x10\xdc\xd6\x2c\x9d\x3d\x2a\x2a\x11\xac\x46\x24\x9a\xcf\x8a\x12\xd1\x6f\x9c\xfb\x61\x44\x4a\xff\xda\x03\x53\x9b\xbe\x2c\xcc\xfc\x1b\xba\xea\x72\xa7\xcc\x70\x78\xe8\xb6\xa5\x8d\xcc\xa3\x49\xd4\xe4\xae\x12\xb3\x4e\xe4\xf2\xcc\x74\x78\x25\xb1\x11\x3e\xda\x9f\x37\x61\x3d\x08\x75\x07\xf9\xeb\x20\xfc\x16\x2c\xfc\x48\x34\x05\x31\xa2\x95\x81\x15\x08\xfe\x54\xd8\x61\xd2\x35\x67\x5c\x60\x43\x2a\x37\xe5\xf6\x1e\x7b\x7b\xc6\x4d\x72\x24\xd6\xb8\xb9\xfb\xf7\x94\x12\x3a\x02\xd8\xb5\xc6\x10\x59\x6c\x7b\xe2\xc7\x5a\x57\xca\x19\x08\xba\x7c\x63\x15\x8c\x9a\xfe\xbf\x20\x10\x5a\x07\x60\x42\x09\x6c\xa4\xf0\x46\xf7\x88\x67\xbf\xc2\x34\xdc\x1c\xa1\xe9\x12\x92\x7e\x7a\x56\x4b\xa0\x11\xe3\xb5\x22\x9e\x87\x0a\x5e\xe1\x1f\x9c\xc0\x8a\x18\x53\xc2\x23\xbb\xae\x57\x1a\xda\x86\xac\x09\x34\x07\x22\xa3\xf3\xaf\xe5\x5f\x5c\x36\x95\xc9\x69\x05\x20\x74\x45\x3a\x17\xed\x9c\xcd\x3a\x6d\x7e\x35\xff\xae\xd9\xea\x2f\x5a\x39\x0e\x5d\xff\x81\x45\x9b\xb5\x7e\x65\x8f\x78\x00\x9e\xd5\x9c\xc3\x22\x0b\x15\x68\xc3\x23\xe4\x9c\x8e\xd2\x1b\xf7\x17\xab\xd4\x65\x04\xb3\xd1\x88\x5c\x81\x06\xce\x3f\xe9\xe9\xff\x12\x7b\x31\x02\x59\x43\x3e\x7d\x56\xca\x16\x77\x1f\x73\x26\xdd\x4a\xc1\xc3\x67\xba\x02\x2c\xec\x13\xe7\xd8\x20\x65\x25\x9b\x51\xcb\x0a\x76\x3d\xcd\xbb\x7e\x1f\xbe\x49\xbc\xc2\xed\xbf\x57\x62\xf6\xd1\xaf\xb4\x1b\x8d\x18\x52\xda\xc8\xdb\x1f\x49\x28\x54\xa5\xef\xe2\xf5\x43\xc9\x2c\x5e\x1a\x9b\x94\xd4\xe0\x2e\xe8\xab\x98\x3c\x74\xed\xa2\xf2\x15\xad\x4d\xbb\x48\xea\xc7\x12\x78\x04\xe9\x17\x3c\x5e\xef\x61\x5f\x01\x88\xfb\x3b\x06\x29\xbd\x4e\xb6\x78\xa4\xf7\xe6\x40\x82\x4e\xa8\xf0\x1a\xdb\xc8\x64\xe9\xce\x4b\x3a\x68\x2c\xdc\xa0\x7d\x85\xe7\xec\x1d\xd2\xc0\x6a\x70\x47\xb5\xdc\x72\xae\x0e\x33\xff\xa9\x0f\x36\xcd\x89\x91\x4f\xc1\x1d\x1b\x39\xd4\x47\x0e\x9c\x91\x32\xd9\xb6\x90\x22\x39\x83\x31\x4b\x14\x1a\xd2\x75\x94\x4d\x30\x5a\x48\x29\x5d\x1c\xaa\x7c\x65\x34\x10\x86\x61\x98\x33\xe1\x9c\x10\x49\x47\xda\x18\x83\x4c\x74\xc7\xd8\xee\xf2\xe5\xfc\x61\x81\x70\xae\xa8\x84\x11\xeb\x8a\x36\x01\xa9\x1e\x80\x0e\x24\xa2\x21\xa2\xf6\x27\x8b\x88\x91\xc2\xf5\x09\x33\x54\xd8\x99\x99\x63\x29\x87\x55\xee\xde\x7b\x43\xa0\x61\xdb\x31\xaf\xda\x4e\xee\x49\x6d\xc1\xaf\xd3\x63\x43\x74\x07\x74\xbb\x8b\x96\x28\x00\x21\x65\xc3\x64\x2f\xbe\x93\xc9\x35\xd6\x06\x98\xad\x7b\x0b\x66\x6e\xfc\x7d\x86\xe8\x2b\xa5\xc7\x9c\x8b\xc0\xa9\xce\xa7\x81\xad\xa6\x96\x21\x8e\xe1\xba\xe9\xe9\xa6\x6b\x59\xc5\x70\x85\x1b\x6f\x34\x3b\xae\x22\xcb\x5f\x2c\x96\xd7\x5c\x43\x6f\xba\x4e\x63\x81\x27\xc7\x3a\x83\xa2\x89\x18\x50\xc4\x6d\x4a\x1d\x4c\xb3\x66\xa5\x07\x2e\xa5\xb4\x86\xe5\xf0\x7f\xfa\x9f\x32\x2a\xe3\xd2\x19\xf2\xee\x58\x8d\x2e\xea\x46\x33\x63\x10\xec\x60\x02\x61\xda\x78\x0c\xa6\x35\x24\xfa\x74\x62\x7d\xf5\xba\xdb\xd4\x23\x60\xaa\x73\xba\x8b\x5c\xa5\xb3\x3d\x09\xea\xbf\xd5\x1b\x0e\x1f\x11\x76\xf0\x4f\xeb\xef\x1b\xdb\xad\x38\x12\xae\x43\xfd\xbd\x29\xb9\xb6\x04\xc7\x75\x77\x77\x1b\xd5\xbb\x32\x75\xb9\x39\x5a\x13\xe7\x8f\x17\x69\xfe\xf0\xe7\x4f\x7e\x41\x92\x09\x5c\x9c\xb5\x91\x75\x0a\x76\x97\x9f\x3f\xfd\x85\x58\xb4\x87\x3f\x7f\xf6\x8b\x05\x8b\x36\xae\xbf\x58\xe7\x3b\x33\x97\x7b\x17\xd5\xa5\x39\x36\xc8\xa1\xae\xaf\x70\x68\xcd\x65\xd9\xf4\x16\xe9\x90\xb6\x06\xfa\xa9\x4c\x13\x25\x79\x12\xf3\x8e\x56\x4c\x63\x6d\x06\x65\x42\x2d\x24\x3f\xc1\x98\x58\x14\x5a\xf4\x7c\x82\x58\xd4\xfd\x7e\xa1\x48\xb1\x20\x28\xdf\xc8\xdf\x79\x1b\x1a\xd7\x62\x48\x4d\xdd\xfc\xd7\x08\x59\x50\x82\x13\x26\xca\x02\x78\xa0\x59\x39\xa6\xf5\x9f\xe4\xd7\x97\x3c\x41\x60\xe5\xd7\xd0\x5d\xe3\xad\x32\x09\x03\xbc\x2c\xed\x44\x00\xb2\x18\x6e\x66\x03\xd2\x27\x49\x73\x2e\xbc\xad\x72\x50\xac\xc3\x1d\x81\x89\x4e\xcb\x8f\x3e\xaa\xd7\x1a\xc6\x9f\x54\xf8\x11\x01\x93\xad\x5b\xaf\x11\x50\xda\xfa\x00\xf8\x78\x17\x4a\xf3\xdd\xf6\xfb\x66\x12\x46\xd6\x0a\x48\x8e\xc8\xfa\xdf\x81\x64\x19\xaa\x36\x75\x95\x0c\xf1\xef\x59\x33\x61\x8b\x88\x9d\x5e\x73\x83\x2d\x72\x13\x98\xfa\x86\x77\x80\x2a\x8a\xe4\xd2\x24\xfa\x9b\x89\x71\x55\x98\xb8\xbf\xb5\xa3\x43\xc3\x59\xc5\x1c\xef\x1f\x48\x21\x07\xd4\x4a\xa0\x45\xd8\xf2\x03\xa5\x9d\x7e\x76\x51\x74\xc4\x35\x93\x84\x88\x0b\x1f\x8d\xd6\x84\x4b\xef\xed\x90\xc2\x96\xf5\xc2\x45\x6c\xb0\xa8\x23\xb6\x71\x2b\x66\x15\x44\x08\xa9\x37\x67\x79\xd3\x13\xef\xcf\x76\x96\x17\xb9\xa8\x13\x9d\xba\x22\x31\xa8\x7d\x95\x1a\x65\x5d\x48\x3e\x5b\x4a\xe2\xad\x91\x50\x0b\x53\x94\x70\x32\xcf\xdb\x25\x8e\x75\xb4\x25\x46\x8e\x48\x6e\xe8\xf9\x25\xd2\xa4\x69\x44\xb2\xff\x2c\x17\xbb\x9c\x76\xb9\xcf\x45\x6d\x99\x14\xaf\x9a\xaa\x51\xde\x24\x7b\x86\x2e\x47\xe5\x50\xd6\x12\x2d\x18\x30\xb3\x52\x1a\x8e\x8a\xf5\xbc\xc9\xc4\x25\x29\xc0\xc7\xe6\x25\xa5\xea\xd3\x17\xd4\xc2\x49\xa9\x06\x1c\xc9\x38\xbd\x6a\x72\xaa\x09\x58\x12\x04\x4c\x9a\x3a\x0e\x36\x61\x36\x90\xec\x37\x29\xdf\xcd\x24\x89\x35\x8f\x6c\xc4\x89\xac\x6e\xb5\x6c\x75\x7b\x97\x65\x60\xba\x67\x67\x22\x90\x81\xde\x6d\x28\x55\x09\x10\x27\xef\x40\x94\x78\x21\xfe\x3f\x76\xee\xb1\x20\x83\xda\x54\x12\xbc\x70\x04\x5c\x2d\x61\x1e\x8e\x53\x02\x66\x5e\x42\x05\xad\x32\x91\x98\x0d\xe7\x91\x28\x09\x5a\x48\x86\x13\xf5\x3a\x1b\x76\xb5\x24\xb1\x72\xfe\x38\xb7\x66\x34\x06\xf9\x77\x3e\x31\x4c\xbd\x94\x55\xb0\x7e\xc6\xbf\x32\x27\x5f\x0b\x08\x5d\x13\xad\xb1\x7d\x45\x77\x92\xa8\x1e\x9e\x42\x21\x58\x97\xea\xca\xa3\x9e\x61\xb3\x00\xde\x6d\xc1\x1b\xb1\xda\x46\xfa\x7d\x1a\xe9\x86\xad\x06\xfb\xb9\x81\x40\x1b\x94\x61\xd0\x92\x1e\xe6\x85\xc9\x9d\x82\x33\x13\x10\xf1\x05\x71\xad\xc3\xa1\x3c\x4e\x16\x37\xff\x95\x1a\x1f\x39\x23\x88\x2e\x6d\x28\xb3\x13\xce\xcb\xc8\x3c\xc5\x84\x04\xd4\x00\xfe\xd0\x70\x93\x8f\x18\x09\xa2\x8a\x8f\xb8\xc3\x47\xe0\x26\x0a\xa5\x90\xff\xc4\x3f\x94\x4e\x2a\x8a\x45\x50\x49\x16\x2b\x12\x20\x04\x88\x69\x80\xec\x00\xf5\x9c\x64\xce\xa3\x70\xf2\xb5\xb0\x31\x08\x50\x74\x94\x98\xff\x96\xac\x42\xee\xfb\x67\xe1\xfb\x4d\x6f\x73\x10\x2f\x4d\xba\xe0\xba\xd9\x43\x53\xab\xfc\x85\xf4\xf6\x0f\xf5\xf2\xf0\xe7\xff\xfb\x17\xeb\xfb\x62\x1f\x81\x2d\xbb\xce\xc9\x9c\xf2\x25\xb8\x07\x10\x65\xf1\x64\xfd\x1e\x5a\xe7\xad\x53\x57\xc5\x40\x03\x75\x43\x28\x82\xb6\xc2\xce\x9d\xb6\x3c\x72\x49\x15\x10\xbd\xe5\x69\x23\xf1\xcc\x34\xd6\x45\xdc\xe4\x47\x6b\x9b\x5e\xad\x21\x06\xf5\x1c\x55\x4f\x5f\x1f\x8c\x26\x8f\xa0\x7b\x91\x5d\x6a\xb6\x6d\x74\x82\x04\x73\x10\x5f\x27\xe7\x8a\x4d\xa7\x20\xea\xc8\xc0\xdd\xbb\xf5\x1e\xd3\x8f\x21\xd2\x3e\x70\x2d\x11\x9f\x9d\xd3\x61\x63\x7b\x2c\xec\xf7\x9c\xc1\xc3\xe7\xde\x1a\xce\x89\x2d\x57\x05\x5d\xf1\x3b\xf6\xbd\xd8\xb4\x92\xc8\x2c\x10\x4c\x59\x53\xd8\x7f\x4e\x5f\xa2\xde\x5e\x5d\xb4\x03\x69\xc8\xeb\x05\x1b\x2d\x78\xf8\xde\x68\xa7\x4e\x89\x62\xd9\xa4\xe2\x53\xc6\x52\x16\x63\x69\x7d\x0c\xd1\x05\xd4\x43\x43\x04\x52\x3f\x6c\x0a\x18\x74\xf5\x54\x55\xdb\xbb\xe3\x3d\x71\x73\x0e\x4f\xde\x01\x80\x68\x82\x58\x12\xd7\x55\xb9\xeb\x4c\x74\x72\xe9\x3f\xb7\x9f\xc1\xaf\xde\x31\x82\x24\xd3\xa0\x7a\xb7\x6a\x08\x7f\xa4\x56\xac\xbb\xa6\xa9\xd4\xd3\xb7\xf6\x3d\x3a\xa3\xe5\x70\x8f\xa4\xb4\x27\xd9\x05\xa3\x43\x19\x2b\x05\xbd\xc2\x6a\x20\x70\x47\x10\x13\x4a\x86\xa8\xf4\xb8\xa2\x61\x08\x54\xc4\xa2\x05\x07\x2f\xc5\xc3\x68\x16\x45\x4f\x8b\x03\x9a\xc5\x62\xfa\xb3\xdb\xdf\xaa\xaa\xdc\xc0\xbc\x67\x0b\xd1\xc7\x0d\xc6\xe4\x84\x98\x61\x3f\xa9\x04\x93\x4e\x95\x2e\xd8\xe5\x96\x28\x79\xc4\x40\xc6\xf3\x66\xfe\x4b\x83\x0a\x24\x2d\x12\xb4\xbd\x7a\x99\xa7\x3d\x09\x79\x4d\x14\x62\x81\xba\x46\x80\xc2\x66\xbd\x25\xc6\x26\x51\xc6\xce\x26\xcc\x8e\x71\xa9\xc3\xc5\x08\x0d\xd9\x47\x2e\xd5\xdc\xc7\x83\xa9\x13\x03\x45\x0d\xb6\x1a\xc8\x93\x14\xfa\x14\x3d\xda\xec\x42\x8e\xe4\x5c\x72\xbb\xf1\xc9\x1d\x75\x34\xc8\xb3\x33\xcb\xe8\xcc\x48\x3c\x2f\x31\x46\x5a\xf1\xc3\xbf\x10\x3b\x73\xba\xdf\x9f\x16\xc5\x87\x1a\xd8\x3b\x81\x25\xcf\xd5\xc4\xd8\x3a\xe2\x41\xe7\x5d\x51\x92\x76\x98\x43\x8c\x6b\x2f\x23\x6e\x71\x00\x17\x2d\xf1\xe3\x70\xb6\x70\xd0\x68\x43\xb4\xa9\x7d\x22\xb0\x2f\xb1\xaa\x31\x22\xd1\x9a\x04\xc7\x59\x08\xd9\x0b\xab\x6c\xdb\xd1\x3c\x47\x1c\x78\x54\xa8\x2c\x6a\x3c\x7c\xef\x2b\x3e\x1e\xbb\x60\x2a\xe6\xe1\xb0\x3a\x51\x65\x1b\xa1\xae\x1e\x30\x87\x3e\xc5\xe5\x07\x83\xbd\xa6\xfc\x6f\x3c\x86\xe0\x40\x31\x01\x29\x54\x72\xe8\x35\x93\x8c\xe2\x88\xb7\x4c\x42\xee\x21\x47\x0a\x77\x2c\x67\x28\x76\x9a\xb9\x68\x88\x33\x01\x4b\x4c\x34\x96\x99\x62\xa5\xb1\x5f\x4d\x0f\x68\x6a\x0f\x1d\xe7\x8c\x8f\xa5\x08\x76\xdf\x67\x72\x88\xac\x26\x6a\x4c\x8a\xa2\xec\x41\x84\x32\x77\xf5\xca\x7e\x8b\xc0\xb6\x4d\xb3\xb3\x88\x9c\xe1\x3f\xa2\x82\x4d\xd9\x49\x19\xf2\x93\xbe\x18\x14\x22\x96\x67\x15\x52\x11\x3f\xc7\xcd\x69\x8e\x8c\xb1\x00\x83\xde\x2e\x6e\x44\x2f\x2e\x48\xc2\x8f\x08\x84\xa3\x77\x5e\x87\x44\x5e\x21\x90\xc7\x83\x68\xd8\x83\xef\xf2\x2c\x68\xce\xe0\x49\x7e\xac\x73\x8d\x26\x80\x79\x4c\x0c\xeb\xb1\x8b\x50\xf0\x01\x81\xd7\x87\x84\x7f\x22\x0a\x9f\x3d\x3f\x90\xc6\x10\x41\x4c\xfc\x91\xe3\x6a\xe4\xd6\x4e\x33\xa2\x2e\x0d\x0d\x59\x62\xaa\x7d\x9f\x1d\xb1\xd7\x76\xed\x05\xf6\x38\xbe\x71\x02\x4a\xf6\x68\x64\xba\x2b\x46\x06\x44\xd1\x33\x48\xa0\x40\x08\x6d\x0c\xe9\x4f\xd2\x18\x4f\x17\x84\x4b\xa2\x9a\xa4\xe3\xfa\x8e\x93\xcf\x49\x5a\xac\x68\x00\x9c\xfd\x9a\x03\xa9\xc1\x7f\x59\xf1\x5a\xd0\x64\xdb\x6d\xf6\x14\xc7\xa0\xbb\xfd\x03\x89\x4a\x91\x5b\x34\xe2\xfc\x07\xd6\x49\x76\x5e\x76\xe2\x86\xb8\x2f\xc7\xdd\xa8\xe0\x1b\xd5\x89\xbc\x86\x53\x20\x41\x85\xa4\x81\x19\x21\x21\x44\x6a\x96\xc8\xef\xe2\x94\x69\xaa\x3d\xfb\xd1\x6c\x5c\xa2\x90\x19\xf4\x85\xec\x10\x29\xe1\xbc\x1f\x4c\x21\x1d\x19\x37\xe9\x20\x2e\x3e\x99\x9f\x06\xbf\xbf\x42\xdc\xe4\x10\x4e\x40\x14\xb2\xd2\x88\x62\x49\x04\x0b\x5f\x40\x8d\x5f\xf0\xf1\xd5\x84\xe9\xa2\xbc\x2c\x0b\x0e\x6b\x69\x93\x90\xec\xa9\xfd\xe0\x3b\xfd\xf4\x48\xa7\x4b\x23\x49\x1e\xee\xea\x73\x10\x79\x2b\x97\x5b\x81\xc5\x96\x9d\xa0\x79\x59\x04\x7e\x79\x6c\x24\x20\x6e\xaa\x3a\x11\xfe\x8d\xd0\xc9\x77\x45\xc8\x90\x93\x52\x40\x6a\xdc\xdf\x27\x81\xb9\xbc\xe9\xe3\x34\x25\x9f\x8f\x17\x34\x41\xb3\xc4\x0d\xfb\xca\x7f\xa7\xcb\xdd\x78\x6f\xa5\x78\x4d\x06\xe8\xa9\x3b\x0e\x73\x6e\x65\xbb\x4a\x0e\xd2\x34\xed\x32\x16\x7c\x29\x01\x23\xbc\xbd\xc6\x6e\x82\x27\xb4\xda\xbb\xaa\xb7\xe5\xa5\xb8\x50\xb2\x68\x71\xa2\x37\xc2\x49\xa4\x4b\xe6\xf5\x70\xee\x90\x92\xf8\x91\xc5\x88\xf3\xb2\xd3\xdb\xbe\xbd\x6b\x12\xec\xef\x01\x7c\xf9\x73\xc0\x5b\x2d\x0e\x1f\x48\xce\x05\x0f\x57\x33\x96\x46\xee\x6a\x88\xa8\xdf\x2a\x02\x59\x02\xc5\x29\x0d\x37\x61\xd2\x86\xfd\xb3\xe1\x7c\x3a\x1a\xce\x41\xdd\xee\x46\x23\x29\xb0\xaa\x3a\x1c\x21\x0a\x24\x06\x20\xf2\x3e\x1a\x5b\xe4\x2f\x7d\x67\xb7\x9f\x09\x2d\x88\x6a\xfe\xe9\x4c\x42\x86\x28\x4d\x5a\x96\x59\x76\x4e\xd6\x81\x31\xe7\xa7\xa1\xdf\x1c\x6f\x1a\xbb\xdf\x0d\x9b\x02\xb9\x8f\xa3\x63\x11\x95\x14\xbc\xa8\x67\xc7\x2f\x27\x7f\xcb\x47\x2e\x5b\xee\x86\x1e\x98\x7c\xc6\x47\x53\x74\xbd\x42\x84\x83\xc6\xd7\xc3\xed\xf3\x1d\xc9\x29\xee\x86\xf9\x93\xab\x45\x7c\xa6\x13\xd7\x31\xa1\xeb\x74\x92\xc7\x4c\x6b\xd4\xd8\x2c\x61\x24\x62\x07\xd7\x48\x83\xe9\x21\x10\xeb\x10\xd8\x8d\xa6\x9d\x47\x5b\x7d\x10\x63\x73\xac\x4a\x60\x8c\x86\x55\x35\x78\x22\xaa\xdb\x9a\x7d\xc3\xf9\x2c\xff\xa4\xba\xdb\x66\xf1\x42\x21\x1b\x47\xc9\x39\x13\x16\x92\xea\x6e\x9e\x24\xd2\x10\xa7\xac\x28\xd5\xcb\xde\xe5\x52\xf0\x4e\xc2\x6a\xb8\xab\x6c\x76\x6c\xa8\x13\x1b\x04\xd3\xbd\x12\x1e\xcb\xf1\x5a\x47\x10\xc3\x3c\x97\xbb\x08\x85\x29\x53\x9f\x7b\x50\x61\xa4\x21\x6a\x4f\x32\xf3\xae\xe3\xd8\x07\xcd\xf1\x0c\x3a\x5c\x32\xb9\x8e\xaf\x2c\xd3\x81\xe2\x81\x3e\x23\x25\x06\xfc\x47\x6b\x17\x0f\x16\x1d\x5a\xc4\x59\x4a\x2a\x42\xcd\xd1\xce\x91\x28\x85\x73\x98\xab\xb3\x37\xaf\x2f\xde\x7a\x21\x3c\xd7\xd3\x98\xfb\x34\x26\xb5\x24\x63\xcf\x9e\xb6\xcc\xd9\x89\xab\x7c\x09\xeb\x10\xc4\x94\xfd\xdd\xde\x5e\x7e\x86\xcf\xe1\x59\xa5\xf1\x5a\x1e\x15\x8a\xb0\xa0\xf7\x76\x98\x8b\x83\x89\x8e\x01\x4f\xb3\xfe\xbe\xc3\xf7\x62\xfb\x45\x1d\x44\xb4\xd7\x31\x67\xe0\x34\x2f\xc5\x4d\xe8\x3d\x65\x80\xe3\xe3\x73\x3b\xd6\x4d\xea\x0e\x8f\xf9\x71\x33\x33\xa7\x22\x39\xab\xd7\x2d\xbf\x27\x33\x01\x61\x89\xe7\xb5\xc4\x79\xe1\x2e\xd5\xbc\xcd\x13\x70\x22\x64\xe2\x89\x92\xc3\x5a\x34\x36\x13\x40\x07\xc9\x21\x36\x47\xfa\x6b\x90\xba\x29\x98\x65\x53\x5c\xfb\xf0\xb3\x91\x18\xa1\x6f\x71\x38\x59\x22\x4e\x0a\x4e\x1f\x5d\x02\x16\xe1\x32\x37\x46\xa4\xe7\x34\xc0\x37\x78\x28\x4b\x56\xb9\x90\x25\x98\x3e\x49\xa3\x2e\xfd\x0c\xc7\x0f\xf5\x1c\x70\x14\x44\x6c\xe6\x5f\x38\x82\x23\xe2\x10\x84\xb5\xb9\xe9\x97\xec\x73\x35\x1b\x0f\x9c\xcd\x3a\x11\x63\x0a\x0a\x81\xce\x82\x01\xbf\xbc\xd4\x3b\x58\x22\x0d\x5a\x9f\x06\xbc\x94\xf0\x41\x0d\xbe\x99\x65\xaf\x72\xa8\xf4\x0b\x6f\xeb\xd5\x87\x06\x54\x35\xc6\x8d\xd2\x41\x8e\xf3\x80\x4f\x8d\x87\x7d\xf5\x01\xac\x5e\xfa\x23\x00\x6f\x73\x06\xcc\x68\x3d\xf4\xaa\x52\xe0\x58\x8c\x32\x3c\x84\x69\xa2\x15\xbd\xa4\xa2\x14\x42\x88\x83\xa8\xb5\x41\x22\x54\xab\x1d\x53\x0a\x2c\x99\x2c\x02\x2d\xc7\x96\xb3\x16\xc1\xdf\x16\x3c\xd8\x13\xd3\x21\xc2\x5a\xa3\x57\x89\x8a\xd7\x2e\x8d\xc0\x53\xda\x00\x1b\x36\x7e\xc4\xab\xcf\x99\xe6\x41\x74\x96\x42\xde\x2a\xe6\x82\x98\x05\x5b\xab\xf2\xa7\x0f\x57\xbf\x06\x41\x7c\xf4\x97\x8b\xd7\xdf\x9e\xe8\x18\xdf\x9d\x5e\x5d\x5d\x9d\x02\xf8\xb4\x6f\x69\x93\xe3\x63\xa1\x83\x3e\xc1\x73\x00\x5f\x9a\x6e\xf5\xc5\x23\xfa\xf7\xe3\x59\x76\x0e\x22\x96\xd2\x82\xb5\x24\x74\x43\x3f\xe5\x3f\x44\xd5\xf4\x28\xf1\xc3\x0e\x49\x6a\xbe\xf8\xc2\xc5\x02\x8a\xe7\x8e\x2c\xa0\x78\x63\x07\x79\xd9\xac\x5a\xea\xfb\x82\xff\x89\xbf\x57\xf9\x6a\x37\x9d\x91\x62\x04\x55\x52\x37\x3c\x88\x97\xf4\x47\x96\x8e\x40\x20\xc4\x76\xaa\x56\x53\x5f\x66\x2e\x4d\xed\x0f\x04\xd6\x21\x5a\x32\x65\xb6\x9c\xfd\xc7\x91\x36\x92\xa5\x45\xd9\xfb\xd5\xa8\x1d\x76\x61\x6d\xea\xea\x9a\x48\x8b\x3c\x37\x22\xcb\x85\xef\x6e\x4b\xb9\xf6\x67\xa3\xda\x9c\x25\x93\xfe\x6c\xaf\xd9\x26\x46\x53\xd9\xaa\x1f\xb2\xf1\x92\x05\x73\xff\x71\xd4\xc9\xa0\x0d\xc9\x2a\x31\xc7\xe1\xa4\xad\xc9\x71\x1f\x2e\x20\x41\x64\x86\x32\x34\x3a\x51\x5b\x14\xa8\x4f\x83\xd2\x74\x12\x40\xc3\x33\xd8\xee\xf6\xe8\x6d\xbe\xf1\x0a\xc2\x49\x84\xcc\xdf\xd0\xff\xa6\x51\xe5\xa8\x68\x86\x5f\xcc\xa1\xa6\x02\x79\x7c\x7c\x39\x6f\xac\xe4\xdc\x18\x7d\x76\xda\x7b\x87\xdb\x42\x0f\xa4\x13\x24\xa2\x97\x19\x9c\x34\x2a\x46\x94\x68\x4d\x45\x22\xef\x98\xf0\x0d\x99\x1d\x26\x1a\xc3\x2b\xee\x08\x3f\xa7\x24\x69\xc8\x1f\x0d\x52\x74\x0c\xc1\x27\x7b\x38\xc2\x5c\xab\x70\x31\xec\x61\x42\x11\x21\x5e\x5e\xb8\xa5\x4b\xe4\x15\x33\x76\xae\x79\xd5\xe0\x62\x37\xa1\x5f\xe2\x51\xf0\x41\x65\xfa\xfd\x36\x39\xa6\x40\x84\x1c\xa5\x40\x43\x9f\x81\xe1\x4b\xdd\x26\x2e\x00\x02\x32\xc1\x91\x25\x9b\x20\x5b\x8f\xb9\x35\xc6\xe0\x6c\x74\x52\xa3\x00\xca\x51\xd9\xe0\xb9\x9d\xe1\x19\xdf\x12\x81\x85\xbf\x6e\x5e\xe7\x55\x82\xb1\x43\xd5\x5c\x4b\xf6\x82\x27\xfc\xf7\xe9\x37\xe6\xda\x0e\x26\x17\xa0\x1c\xd0\xd1\xe0\x7a\xaf\x75\x6a\x16\x49\xdb\x9a\x2a\x38\x78\x42\x65\x47\x5a\x0a\xf9\x15\x82\x9c\x13\x1b\x25\x26\x86\x3e\x0a\x8a\xf7\x30\x69\x9c\xff\xb8\xc7\x89\xa0\xfe\xb8\x6a\x88\xec\x1f\x57\x8d\x54\x0c\xc7\x43\xf9\x13\x2c\xc6\x61\xfa\xfc\x7e\xd6\xa8\xcd\xf7\x8b\xd3\x9f\xc2\x80\xe7\x9d\xc7\x8d\x4e\xaa\xe1\x46\x15\x65\xd7\x7e\x2b\x72\x77\x1b\x9c\x4e\x1c\x47\x3d\x6a\xd7\xd3\x90\x88\xb1\x0e\xc1\xa7\x13\x2a\xd4\x28\xc4\xd6\xa5\xb9\x91\xb8\x9b\xbb\x62\xf4\xef\x1a\x71\xc0\xe5\xf4\xb2\x1e\xd7\xb7\x17\x34\xc6\xd9\xb2\x6d\xae\x2c\x62\xd9\xfb\x76\x65\xe6\xfc\x5c\x0c\xe7\x36\x2e\xbc\xdf\x7e\xad\x90\x70\xbe\xa0\xdd\xf5\x7d\x6b\x0f\xe2\xae\xc3\x5f\xc5\x20\xaf\xf6\x78\xfd\xc6\x76\xe9\xf4\xd1\x0b\xf1\xf5\x78\x42\xa5\xf2\xce\x59\xea\xeb\xc1\xb5\xec\xb6\xb9\x5a\xe0\x2f\x8e\xcf\x47\x44\x3a\x01\x13\x77\xd9\x61\x43\xed\x7c\x40\xb2\x83\x06\x8c\x2c\x97\xbb\xfb\x32\x36\x66\xaa\xd9\xdf\xf3\xcf\x41\xcd\xc6\x7e\x6b\xfa\x83\x40\x25\xd1\xc0\x4f\x2c\x04\x04\xa0\x38\x90\x93\xdb\x53\x8c\x8d\x41\x1d\x02\x89\xdc\x3c\x7e\xf9\xad\xfe\xe2\x40\x0a\x79\xcb\x90\xf3\x26\x85\x51\xfb\x58\x8d\x99\x8f\xd9\xf8\x4e\xff\x08\x45\x12\x2d\xc3\x7f\xfb\x67\x20\xf9\x57\x00\x29\xda\x7c\xdd\x21\xbc\x9a\x96\x77\x1d\x3e\x1f\x5a\xe3\x2a\xbe\x69\xcd\xe9\xa8\x1a\xe1\x0b\xeb\xf0\xb4\x2e\x2e\xdd\x93\x9d\xae\x88\x0d\x75\xb1\x71\xce\x15\xe4\x90\x96\xe6\x01\x1b\x01\x4b\xce\x68\x4e\x64\xfb\x21\x3f\x75\xe6\xa9\xc0\xb8\x63\xde\x59\x92\x57\x9b\xb7\x17\x02\xe5\x42\x71\x97\x6f\x34\x56\x3e\xdf\xf8\x48\x5c\x57\xc4\x3c\x27\x1c\x6a\x52\xf8\x51\x3c\xa6\xc6\x11\x81\xd5\x10\x33\x41\x1c\x63\x84\xaf\x1c\x9f\x95\x86\xc8\x68\xe2\xdc\x64\x49\x54\x49\xac\x73\x38\x55\x5a\xeb\x80\x1c\xa7\x7a\x45\xd2\xc4\x62\xef\x13\xa6\xa8\x3b\x64\xb8\xe1\x10\x00\x54\x34\x57\xea\x07\xe8\x6a\x5f\xb5\x30\xfb\x5c\x88\x19\x33\xc6\x32\xbb\x07\x9b\x2b\x78\x07\x23\x11\x65\x3f\xee\x30\x0e\x3c\x70\x0d\x10\x39\xc4\x44\xa1\xf5\x08\x15\xc0\x5e\x83\x33\x7c\x85\xd4\x5d\xff\xfb\xbf\xff\xaf\xa9\xed\x31\x95\x82\x22\xda\x31\xa7\x3f\x0c\xb7\x47\x54\xd5\x21\xbe\x6c\x5d\xd2\xb6\xda\x59\x90\x88\x3a\x5f\x99\xd2\x1a\x97\x85\xd4\x9b\x34\xb8\xa6\x92\x3d\xff\xde\xcf\x41\xdf\xd0\xba\x34\x92\xaf\x11\xcf\x30\x6e\x4c\x91\xab\xc1\x23\x5a\x19\xce\xfd\x67\xb7\x6e\x4d\x38\x18\x38\x5e\xc4\x68\xa3\xe1\xd9\x97\xe4\x74\x84\x87\x5d\xd2\xcd\xee\x8f\x98\x6b\x74\x6a\xf3\xbb\x8d\xb9\xc8\x2b\x44\xf4\x5e\x6b\xba\xcb\xa7\xcc\x80\x4a\xb5\xe8\xf2\x63\x2e\x77\xe2\xea\xbb\x7f\xef\xe7\xa6\xdd\xfc\x12\xa5\x59\xd6\x75\xe4\xf0\xd8\x62\x60\xcc\x8a\xc1\xa2\x20\x74\xb9\x59\xa1\x3c\x18\xbc\xce\xea\x83\xd1\xc5\xe5\x2f\xc4\xa3\xcf\xa4\x25\x49\xf2\x14\x3d\x0e\x38\x48\xee\x34\xec\x3f\x3c\xee\xa4\x6f\xeb\x4c\xa5\xf0\x9a\x7a\xaa\x00\x53\x55\xde\x7f\xf8\x88\x6c\xfa\xb8\xc9\xa1\x59\x08\x47\x5b\xc4\xc2\x38\x7c\xa3\x4c\x73\x40\xa2\x42\x82\x16\xd3\x6e\x59\x5f\xe2\xad\x4c\xdb\xec\x0d\x6c\xa9\x21\x7d\x70\x59\x6b\x86\x3c\xe4\x81\xb6\x9c\x03\xda\x22\x07\xe2\x15\xbf\xe4\x01\x2d\x27\x2b\x46\x59\x91\x09\x65\xb2\x94\x1c\xcf\xf8\x19\x05\x2a\xa2\x45\x97\x82\x84\xfe\x8c\x87\x0e\x74\x4e\xb8\x7f\x8c\x73\x51\xeb\xb7\xbb\x60\xdd\x8a\xfc\xa0\x1c\x97\x93\x20\x79\x9d\xd5\xf0\xa4\x21\xf9\x7a\x8c\x78\x34\x6c\x7f\xf2\x06\x58\xdf\x8b\x3f\x95\xb9\xbc\x8b\x68\x12\xc3\x0f\xd7\x44\x4b\x30\x0f\x7e\xa5\xd5\x10\xd3\x47\x12\xac\x67\x78\x54\xb4\x7d\x1c\xa5\x14\xb2\xb6\xeb\xd7\x22\xe2\x32\x0b\xc3\xed\xb0\xb7\xc8\x57\x47\x62\xbf\xc7\x49\xc3\xff\xfe\xe8\xef\xa4\x2d\xc9\xbc\xf0\x5e\x11\xe0\xff\x88\x0b\xc1\x9f\xa4\xdd\x8c\x35\x80\x83\xfc\x9b\xbe\x68\x22\x11\xe7\x7f\x92\x49\x9f\xb6\x1f\x0f\x6d\x8c\xe4\xc8\xd1\xf1\x48\x25\x59\xe3\x71\xcd\xff\x9a\x44\x9c\x53\xf9\x92\x43\x42\xce\x23\xe8\xf0\x5c\x6c\x32\xca\x04\x27\x77\x4b\xbb\x29\xc9\x39\x6e\x73\x77\x09\x4b\x26\xd2\x3a\x1f\xaf\x14\xdc\x28\xd2\x1a\xa2\x03\xf5\xb6\x53\xcf\x2b\x4a\x22\xe8\x7f\x20\xcb\xca\x11\x6b\xd4\x44\xba\x95\xe1\x50\x41\xa6\x34\x5a\xe8\xfd\xe6\xe6\xe9\xda\x04\x46\x8e\xcd\xef\xf8\x4e\x99\x36\xed\x88\x16\xc0\x2b\x0a\x59\x90\x93\xdd\xc2\x0c\x41\xac\xbb\x0a\x18\x8a\x6d\x93\xaa\x8d\x49\x06\x17\xab\x64\x42\x96\x6a\xbd\x00\x84\x6d\x58\xc5\xa9\x82\x87\x65\x8e\x6c\x4a\x4a\x95\x0c\x2b\xc0\x7e\x55\x0e\x48\x4c\xbe\x5a\x3c\xfa\xee\x6a\x47\x1d\x8c\x9a\x18\xc6\xb1\xb8\xef\x6a\x8a\x73\x77\x54\x28\xa0\xd5\x5e\x19\xc9\x28\xb6\x04\xa5\x8c\xda\x12\x2b\xa0\xcb\xaa\x14\x97\x10\x2b\x42\x05\x1c\xce\xad\xce\x93\x5a\xa0\x17\xe8\x28\x01\x6f\x2d\x89\xfc\x97\x7a\xd5\x94\xdb\x9a\xed\x7b\xc2\x42\xfb\x6c\xea\x25\x3f\x26\xc8\xd6\x02\xbe\x6e\x3f\x1f\x35\x8c\xd7\xac\xe4\xe1\xaa\x70\x25\xeb\xa5\x3c\x43\xd2\x6d\xea\xb4\x94\xb8\x1a\xf7\x75\x34\x54\xf9\x0c\xf6\x4a\x33\x88\xcd\x5f\xd1\x42\xdf\x88\xf8\x3c\x51\x3c\x48\xca\xc1\x77\x12\x6f\xd2\xc4\x26\xce\x69\x9d\x5d\xc8\x16\x67\x23\x70\x39\x24\x66\xae\x4d\x66\xc6\x5d\x9f\xca\x52\x0f\xba\x8d\x41\x8e\xf6\x2b\xef\x60\x1d\xe9\x1b\x4f\xac\x95\x9c\x36\x94\x7d\x08\x7a\xbb\x9d\x18\x89\xbc\x28\xa8\x23\x61\x0f\xa6\xc1\x38\x62\x80\xa3\xe3\x80\x23\xb1\x84\x3c\xa0\x1b\xe7\x03\xe5\x1d\x25\xe3\x21\x86\x47\xac\x13\xeb\xb1\x2e\xe1\x68\x7c\x2e\x4f\x44\xdc\x25\xb8\x8c\xdd\x44\xde\x08\xa9\x71\xec\x0e\x96\x52\x3e\x14\x76\xc4\x81\x78\x27\x1e\x19\xde\x44\x8e\xb5\x98\x4a\xc4\x13\x9a\x16\xdd\xe5\xe9\x1e\xc1\x43\x80\x70\x08\x19\x10\x3a\x3f\x59\xc7\x3e\x62\x96\xfb\x88\x85\x94\xd2\xe1\x0d\xfe\xf4\xd8\xf5\x14\x66\xeb\x52\x89\x81\xaf\x8c\x31\x18\xe8\xb1\x5b\xe4\x42\x9e\x35\x51\xda\x10\x0f\x20\x55\x2d\x8e\xda\x55\x72\x3f\xd9\x6c\x0c\x36\x5a\x45\xde\x38\xef\x41\xd3\xb3\xc0\x4c\xc7\xec\xa8\x0d\x5e\x63\x5e\x93\x05\x7e\xb6\x44\xa6\x75\x36\x0b\xab\x9f\xd7\x4d\xef\xdf\x29\x48\x5e\x83\x98\x1a\xa4\x63\x03\x78\x80\x7e\x6c\x09\x25\x18\xee\x9c\xe1\xc6\x74\x3b\x20\xa2\x24\x7e\x03\x7c\x1e\xcf\xc5\xe5\x95\x41\xcd\xd3\x24\xf5\xd4\x04\x05\x19\x50\x8e\xbb\x06\xe1\x72\x06\xba\x81\xa4\xe4\xe5\x6f\x19\xcb\x90\xa0\x24\x94\x64\x40\x41\x26\x47\x34\x3d\xa0\x98\xca\x4c\x0f\x27\x59\x66\x37\x36\xd0\x18\xdc\x19\x4a\xc8\xc4\x5d\x40\x05\x8c\x23\x2e\x30\xb3\xb0\x72\x91\xf4\x35\x9c\xe4\xe8\x10\x78\xe8\xeb\x21\xec\xd4\x59\x50\x07\x19\xf6\xe6\x8c\xee\xc7\xd0\x66\x4d\x0b\xf8\x8e\x23\xc9\x35\x73\xcc\x93\x44\x25\x2b\x19\x84\xf0\x8a\x5f\x68\x5b\x8d\xaa\x27\xa3\xc7\x6a\x34\xd9\x62\x50\x30\x39\x07\x2b\x91\xf5\x79\x2d\x48\xda\xf7\xcf\xa2\x86\xe7\x50\xe5\x71\x1c\xeb\xaf\x62\x16\x29\x89\x04\xdd\xe8\x43\x09\xc3\x67\x11\xee\x78\xa2\x42\x1f\xec\x50\x59\x63\xf4\x7e\x87\x66\xe9\xdb\xcc\x93\x87\x6e\x91\xf2\x87\xbd\xcd\xe6\x17\xd7\x34\xf8\xfd\x69\xc8\xa4\xc2\x5c\x43\x53\x97\xec\xcc\x24\xff\x96\x1c\x76\xd5\x9a\xcb\xb9\xfa\x99\x22\xbb\xd6\xbb\x6e\x7e\xd9\x70\xe2\x14\x3f\x3f\xd6\xc3\x02\x45\xab\xb9\x57\xd5\xc6\xc5\x8d\x73\x3d\x80\xc8\xe5\xbd\x10\x92\x06\x78\x34\xac\xf3\xed\xc3\xd8\x64\x14\xac\xfe\x45\x8a\xb5\x89\xfe\x16\xf0\x01\x9a\x3f\x6f\x9e\x5f\x64\xfe\xe5\x62\x21\x00\x4b\x56\x55\x2e\xbf\xf4\x2e\xaa\x27\xd1\xb7\x14\xcd\x71\x49\xac\x56\x4a\xd2\x43\x07\x90\x68\x19\x4e\x92\x7e\x7c\xca\xa6\xb4\xc9\x38\x15\x50\xfc\xfd\x6c\x37\xee\xde\x19\x0d\xe2\x6f\xce\xdd\x32\x7c\x09\x8e\x97\xf1\xd7\x34\xed\x6c\x5c\xf2\x4c\x3d\x5c\xe3\x6f\x9a\x9e\x2c\x9d\x98\x68\xa2\xe3\x6f\xaf\x9a\x4d\x59\x9f\xea\x03\xf2\x71\x81\x63\xe4\x93\x99\x7a\xef\xff\xa4\x09\x8e\xbd\x8d\xbf\xb0\x9b\xc6\xdb\xdc\xa6\xb5\x99\xd0\x0c\x10\x14\x0b\xc7\xe3\x1a\x67\x35\xbb\x7b\xf2\xab\xf3\xe3\xcd\x26\x62\x7c\x50\xb1\xb9\xef\xd3\xc0\xf2\x94\xf1\xfc\x82\xff\x99\x06\xa1\x51\xd0\x39\xb3\x3e\x1a\x2b\xc0\x20\x84\xa7\x5e\x68\x32\xdd\x86\x93\xcf\x61\xb9\xc5\xbb\x96\xd8\x0c\x9c\x4e\x2b\x0a\x10\x0d\xf1\xb9\xab\xae\xbf\x00\x39\x3f\x49\xd4\x50\x2d\x2d\x9d\xba\xac\xa7\x12\x48\x12\x24\xce\xb8\x59\xbd\x50\xcb\x9a\x8d\xdf\x79\x90\x1b\xed\x9c\xbe\xb1\xd6\xd5\x25\x28\x8e\x12\x72\xbe\x47\xf5\x74\x74\xae\xad\xda\x35\x36\x19\xdd\x72\xc7\x00\x59\x1b\x88\x24\x51\xd4\x88\xb6\x19\xb9\x6e\x9e\x49\xc1\x5d\x43\x4c\x1a\x48\x07\x17\xee\xf3\xd0\xd2\x9d\x48\xc3\x03\xef\x9b\x95\x3e\xf8\xfc\x8c\xd7\x39\x7b\x4e\x77\x1a\x62\x14\xbe\x06\x37\xba\xf2\xa1\x8c\x09\xaf\x90\xa7\xe4\x29\x6e\xc6\x8f\x68\xa2\x1d\x7d\x06\x40\x93\x6e\x0e\x52\x5f\xc6\x18\x64\x31\x57\xe2\x19\x93\xf1\xb6\xc6\x5e\xd7\xab\x05\x3f\x28\x6e\xb7\x6c\x5d\x66\xc7\x3d\xeb\xec\x03\x1f\xce\xe8\xfb\x23\xc9\xa6\x55\xde\x18\x36\xbc\xda\x0f\xf5\x39\x8f\x8f\x7e\xcc\x39\x37\xef\xe7\x19\xec\xdc\x22\x8b\xfb\x78\x29\x76\x7c\x12\x6b\xa6\x77\xee\x63\x66\xaf\x69\x25\xc9\x1e\xe7\x7f\xbc\x6b\x28\xe9\x5a\xa4\xd9\xe4\xd1\xa1\x28\xae\xe3\x69\x92\xf4\x29\x81\x88\x84\x00\x08\x00\x78\x0c\x83\xf9\x87\xc9\x6e\x22\xa7\x88\xe1\xb4\x59\x3c\x10\xff\x38\x79\x0d\x3a\xc2\xeb\x47\x3e\x0f\xa4\x7a\x79\x48\x08\x8c\xcf\x67\xe8\xf2\xc4\xc5\xcf\xc3\xab\x72\xec\xd8\x84\xe3\x91\x24\xb9\xb4\x65\x08\xe2\xf1\x95\x0c\xe2\xfd\xa7\x9e\x5c\x7b\x9c\xa5\x91\xba\xeb\x4a\xa4\xc4\xe7\x5f\xa7\xdf\xf3\xaf\x84\xa2\xf4\x88\x73\xa3\x2d\xd8\xb4\x4d\x4f\x52\x8a\xf1\xef\x90\xd0\xaa\xea\x27\x3b\x55\x81\xe4\x0e\x3a\x74\x8b\x9e\x73\xac\xf9\x3a\x3e\x0d\x05\x5d\xa3\x62\xf2\xf5\x15\xbb\xa6\xcb\x2b\x57\x0d\x6a\xdb\x15\x2b\xf5\xe9\x16\x33\xe0\x2a\xc0\x08\x3e\x37\x36\xdf\x77\xce\x06\x13\x57\xd6\x6a\xcd\xb2\xcb\x69\x40\xc8\x09\x28\xbe\x6c\x70\x27\x9c\x00\x3f\x34\x9c\x95\x74\x51\x11\x4e\xfb\xc3\x02\x93\xb6\xf3\x37\xf2\x91\xae\x29\x7c\xcc\xde\xe2\xe3\x44\x1f\x6e\x68\x5a\xeb\x9c\xbf\x66\x67\xfa\xf5\x68\x35\x24\x18\x49\xab\x3c\xa3\x2f\x63\x70\x87\xbf\xad\xc9\x0f\x43\xec\xbd\xa0\x6f\xa7\x74\x6b\x20\x09\xfe\x00\x7b\x0c\x3e\xc4\x82\x09\x58\xe0\xaa\xd2\xf1\xb1\x6a\x65\x41\x52\x1f\x9e\x9b\x66\x7f\xcb\xf7\xac\xc3\x2e\x20\xf3\xbf\xa9\x8e\xda\xc3\x8a\xf9\x1a\xce\x53\xfe\x39\xc7\xbb\x6a\x36\xcb\x7f\x21\x32\x67\xe7\x0c\xf3\x9a\x7e\xec\xba\x64\x97\x2e\x9b\xa6\xc3\x63\xef\x07\x70\x7d\xec\xc2\x07\xbc\x3d\x76\x5f\xc1\xf5\xad\x76\x47\x30\x27\x35\xee\x40\x9d\x54\x1e\x8f\x6c\x8f\x3c\xac\xd4\x61\xdb\xaf\xba\x9e\x4e\xb0\xf6\x7a\x7e\x41\x9f\x4f\x2f\xfc\xe7\x23\xdd\x8e\x6a\x8f\xbb\xce\x86\x4d\x25\xf5\x57\x50\x0e\x4e\x74\xff\x35\xbe\xbf\x47\xff\xa3\xfa\x53\x03\x18\x36\x96\x1c\x22\x7e\xd5\x0b\xba\xf6\x65\xbf\xda\x99\x0e\x71\x70\xdb\x05\x7b\x05\x84\xb6\xde\x38\xa0\xec\x31\x03\x21\x21\xce\x36\x7b\x0b\xa0\xec\xb5\x02\x25\xd7\xdd\x8a\x96\xa2\xcb\xd9\xe1\x63\x62\x40\xcf\xbf\xa6\x85\x90\xe2\x84\xaf\x22\x81\xa5\x5d\x28\xe3\xaf\x07\x14\x5c\x96\x6f\x41\x5f\x09\x0a\x0d\xa9\x58\x80\x63\xbb\x43\x04\x44\xca\x0e\x40\x32\x91\x5b\x77\x75\x4d\x3c\xd5\xdc\x3d\x5b\xdf\x62\x00\x3f\x5d\x23\x8e\x29\x06\xe7\x47\x29\x08\x9c\x49\x29\xfb\x2e\x88\xd7\xdb\x7e\x1a\x5c\x28\x9d\x83\xdf\x80\xa8\xed\x3b\x9e\xdb\x4f\x1c\x5c\x3a\x01\x79\xc8\x71\xcc\x62\xd0\x37\xf8\x32\x35\x08\x01\x55\xb7\xbb\x29\x40\xed\x98\xb8\x88\xaf\x89\x0d\xde\x75\xee\x9d\x60\x0d\xef\xd0\x07\x18\x68\xe7\x99\x2a\x92\x2d\x05\x82\x1f\x0f\x53\x9b\x81\x98\x35\x25\x9d\x7a\x64\xd7\x54\x40\xc7\x2f\xbb\x0f\x8e\xf7\x2b\xfc\x2b\x66\x9d\x2f\x8a\x53\x36\xc9\x27\xe1\x9a\x12\x21\x55\x0a\x34\x23\xde\x5c\xde\xbc\xf1\x4d\x8c\x92\x07\x69\xcb\xcc\x01\x8b\x27\x12\x73\xbb\x22\x7c\xb8\x62\xce\x43\x2c\x29\x88\x93\x1a\x15\x04\x15\x61\xf9\xb9\x96\x08\x2e\xf1\x6c\x8e\x3c\x74\xc7\xc8\x38\x4c\xbd\x76\x17\x86\x39\xc8\xc2\xbf\x1c\x0d\xba\xb4\x8b\x80\xac\x27\x71\xd2\x7a\x7e\x1e\x7e\x88\x3d\x80\x33\x02\x13\x50\xc8\xad\x8c\x51\x3c\x51\x89\x0d\x2e\x91\x74\x7e\x9a\x30\x8b\xc2\x8b\x9d\x19\x8d\x71\x2f\xfe\x2d\x18\x62\x6c\x42\xd0\x01\x14\x6f\xc3\x85\x1e\xbc\x0b\x78\x04\x03\x01\x7e\xca\x6c\xe6\x7a\x8e\xde\x6a\x64\xd8\xa9\x97\x53\xed\x7f\xe1\xa3\xb0\x71\xaf\xfe\x69\xd8\x21\x6a\xde\xf7\x8d\x58\x17\xe0\x32\xf9\x34\x6c\xac\xe3\xc1\x1b\x96\x33\x8e\xa8\x8a\x4f\x5e\xaa\x56\xb8\xf4\x2f\xa0\x28\x7c\x74\xbe\xf8\x77\xe2\xba\xc0\x5f\xa6\x3c\x17\x54\x09\xc4\xc7\x2b\xed\x2e\x39\x6a\x02\x34\xf5\xd4\x41\xd2\xb1\x7c\x18\xda\xb5\xe4\x2b\xe7\x97\x46\x2a\xe3\x58\x93\xe1\x0a\x91\x4e\x7a\x98\xd6\x58\x4a\x06\xc9\x8d\x45\x35\xa5\xa7\x32\x19\xef\x84\x8e\x4a\x40\x5d\x26\x93\xf1\x2b\xb4\xf6\xaf\xc2\x45\xa5\xaf\xae\x49\xa5\x30\x29\xf9\x10\xb2\x7e\xca\x6f\x79\x95\x91\xee\x91\x70\xfa\xa4\xc0\xf9\x9e\xa4\xa7\x3d\x1a\x35\xb7\x34\x1e\x4b\x17\xda\x66\x30\x4f\x6c\x52\xb0\x3a\x1a\xd3\xc0\x13\x59\x3e\x6e\x1b\x8b\x50\x15\xeb\x3b\x3d\x20\xa3\xe7\x9b\x26\x8c\x82\x75\x01\x05\xd5\xfb\x36\x5b\x6a\x66\xe4\xa8\x60\xfc\x82\x61\x0a\xc4\x57\x82\x64\xee\xd2\xab\xe0\xf4\xa2\x5f\x6d\x4f\x1f\xe7\xb6\xb4\x7e\x06\x5d\xd7\x96\xcb\x1e\x26\x3c\xf1\x76\x90\x77\x39\xcf\xf4\xf3\x18\xcc\xf6\xad\xa2\x7c\xb5\xfd\x13\xd0\xe8\xdd\xbc\x11\x94\x64\x07\x1b\xd8\x22\x25\x49\x98\x6f\x88\x75\xd9\x0a\x28\x36\x9c\x14\x60\x0f\xf2\xb9\xb0\xf9\xfc\xdc\x12\xc1\xcc\x2e\xce\x5c\x81\xdd\x77\x07\xc9\xfd\x7f\x71\xfe\xf6\xcd\xe9\x9d\x4b\x08\x58\x5e\x09\x06\x8d\x97\x03\x25\xbc\x24\x5c\x12\xaf\x8b\x3e\xf4\xd9\x55\x74\x6c\x5f\x5d\xb0\x97\x9c\x57\x11\xea\x13\x9b\x1a\xc6\xe4\xdb\xda\x95\x07\xc0\xeb\x3b\xdf\x5c\xed\x0d\x5e\xf5\x03\x38\x13\x34\x7b\x80\x9e\x35\xd4\x38\xc0\x02\x82\x77\x7f\x57\xba\x34\x6f\xce\xce\x35\xea\x31\xde\x59\x3a\x14\x4e\x4e\xd4\xf2\xab\xc6\x86\xf3\x65\x37\x08\xdf\xe1\xe7\x6a\xc3\x5b\xc7\xd3\x43\xeb\xca\x03\x4d\xa3\x3c\x1c\xfc\x9e\xe0\x1b\x79\x8c\xb4\xd4\x03\x23\xbe\xfc\x74\xbd\xd2\x9b\x6f\xe2\x2d\xe9\xc1\x25\x18\x1f\xc3\xa0\x25\xf8\x93\x7e\xa7\x4e\xab\xcb\x32\xfb\xfe\x55\xc3\xa8\xd5\x65\x64\x3c\xd8\x70\xa3\xc5\x80\x0b\xa1\x0c\xf2\x92\xcd\x31\x32\x75\x57\xd5\xc8\x20\x73\xb4\xfe\xfb\x5a\xe3\x24\xf7\x3a\x34\x14\x4e\x27\xa0\xca\x7e\xd5\x09\x0c\x74\xfe\x0a\x9a\x1f\x0e\x4a\xb3\xdc\xcb\x43\x4a\xab\xa2\xf2\x4b\xec\x22\x5f\xec\xbd\x84\x23\x08\xc4\x4f\x05\x08\x89\xe3\xd2\xe2\x01\xb5\xd3\xaf\xcd\x7a\x4d\xc2\x84\x41\xc2\x47\xce\x78\x82\x1f\xa7\xe7\x4d\xd1\xdb\x50\x91\x2e\x4d\xec\x66\x28\x27\x58\xc4\xdf\xcc\xbf\xe3\x3f\xc1\xc6\x25\xe1\x81\xbe\x0a\xa1\x4d\x1e\x49\x7f\x95\xf7\x08\xe2\xec\x4e\x03\xdf\x1b\x81\x70\xa7\x1e\x24\xed\x95\x6f\xd4\x96\x04\x4e\x79\xd6\x22\x52\x3b\xfe\x80\x27\xb9\x4a\xa2\x73\x65\x80\x66\x9b\xc3\x6a\x21\xd9\xf4\x7d\xa5\x08\x52\x0c\xcb\x62\x9a\xc0\xf9\x53\xd7\x73\xdf\x00\xcd\x6a\x58\x9b\x66\x37\xdd\xd7\xaa\x2d\x0f\x1a\x0d\x77\xb1\xc3\xdf\xa7\x7c\xb1\xf9\x81\x63\x61\x74\x5f\x31\x12\xbe\x15\xb7\x48\x3c\x99\xf4\x9d\x14\x8e\x89\x5f\xc0\xf6\xd2\x6d\x17\x6f\x33\xd9\x4d\x6e\x18\x02\x0c\x97\x6a\xf8\x16\xdd\x5f\xe1\x63\x74\x1d\x87\x8f\x3c\xb6\xd1\xba\x50\x81\xb5\x95\x2c\xcd\xc5\xc5\xab\xe1\x5e\x08\xa5\xfe\xf9\xa2\xba\x6f\x05\xbb\x0f\x90\x43\x76\x43\x42\xed\x83\x8f\xe3\x0a\xc3\xa5\x18\x96\x4d\x34\x64\xff\x5a\x11\x0d\xfb\x2c\x6a\xc7\x11\xdd\xe8\x28\xd1\xcf\xd3\x81\x03\x83\x5f\x02\x21\xb9\xe9\xf3\xaf\xee\xb1\xd8\xe4\xe5\x55\x59\x94\x88\x16\x8f\xb7\xbd\xa3\xdf\x29\xc9\x9e\xdc\xf7\x1c\x20\x21\x15\xd4\x2c\x41\x97\x6b\x87\x74\x47\x50\xcc\x48\x86\x87\x15\x24\xe6\x75\x05\x01\x38\xbe\x06\x92\xe1\x4b\x4a\x5c\x97\x22\x97\x7d\xcf\xcf\xd4\xca\x0c\xbd\x64\xcb\x2f\xff\x4f\x0f\x9b\x67\x0c\x3b\x22\xdd\x67\x7e\xc2\xa9\x97\xb0\x87\x75\x4f\x63\xb3\xe2\x22\x7d\x9b\x9a\xf5\x14\xd9\xc4\x14\x35\x5c\x0f\xc1\x02\x8b\x4a\xcc\x02\xe1\x85\x68\xcb\x81\x29\xaf\xa0\x80\xb2\xec\x95\x16\xcd\xc9\x9a\x2e\x3c\xa2\x1c\x55\x77\x7c\xd2\xd1\xaa\x2e\xe4\x57\x97\x5e\x6d\x5b\x47\x96\x9e\x68\x75\x4f\x2d\x9b\x7a\x43\x9b\xee\xc7\x1c\x4f\x68\x11\x13\x00\x5f\xcb\x9a\x73\x9d\x47\x27\x40\x42\xea\x58\x74\x27\x72\x86\x25\xea\xaa\x12\x7e\xb9\xbc\x07\x43\x7c\x5d\x58\xdd\x31\xbb\x90\xf1\x9f\xe5\x4e\x35\xd1\x29\xcb\x10\xad\x48\xb8\x04\xce\xf9\xd7\x91\xd1\x2b\xa8\x63\x8e\x23\xc1\x3e\x05\x70\x7b\x93\x4e\x4e\x33\x7f\xf1\xf4\xd5\xeb\xec\xc9\xd4\x76\x54\xe8\xf1\xe9\xd7\x82\x31\xad\xd0\x82\x69\xd2\x20\xf6\x2f\x9d\x87\x18\xbb\xa6\xa7\x21\x80\xc7\x67\x21\x1b\x4e\x1b\x12\x8d\xd8\x74\x43\xba\x33\x8b\xfc\x80\x03\x28\x90\x67\xf2\x6b\x00\xe3\x1f\xc5\x12\x20\xff\x24\xd6\xb8\xcf\xda\xb5\xc3\x46\xbd\x64\x7d\x8d\x78\x67\x78\x1a\xc3\x3f\x8f\x0c\xcd\x01\x93\x68\x7e\x59\x72\xd8\x87\x82\xbf\xd1\x0f\x1e\xd2\x41\xb8\x76\x1d\xc0\xb1\x39\xd3\xe6\x2e\x95\xbb\xfc\x9a\xff\x3e\x4d\xd6\x4e\x0f\x2d\x8e\x93\x80\x2a\x94\x78\xa2\xac\xb6\xfa\xf0\x9b\x42\x6f\x56\x1e\x35\xa2\x1d\x7b\xfe\x75\x40\xce\x0d\x6b\xc7\x06\x13\xaa\xca\xb5\xe8\xd5\xfd\x8c\xa6\x0e\xe5\xb6\xeb\x0e\x56\x02\xa5\x41\xb6\xf9\x05\xab\xe1\x14\x42\x4b\x3a\x8f\xa9\x86\x0e\x25\x2b\x42\x1d\x72\xf0\x78\xbd\x99\xc4\x8b\x03\xd4\x9b\x80\x21\xf5\xef\x11\xcd\xde\xe8\x63\xfd\x73\xff\x6a\xff\x24\xb9\xc6\xa5\xaf\xfd\xe2\xb2\x9f\x5e\x0f\x00\x09\xa3\x42\x20\x7a\x1b\x7a\x67\x8c\xd9\xaa\x25\xea\xfe\x35\xfd\x4f\x0c\xe0\xa1\x20\x3a\x74\xee\x13\x18\x8f\xa2\x27\x16\x15\xa4\xe6\x40\x44\x29\x82\x86\xe7\x86\x53\x8a\x66\xce\x8e\x2d\xe9\x2b\x15\xc4\xbf\x51\xa0\x9a\xc8\x49\x20\xf3\xce\xac\x7a\x6f\x4a\x39\xab\x6f\xf2\x6d\x15\x43\x46\x7e\x24\xd8\x97\x9a\x14\xbb\x5f\x73\x8c\x03\x6d\xcc\x1b\x04\x9d\x04\x90\xa9\x6c\x9a\x6e\x32\x84\xd5\x0e\x1e\x25\x6d\x27\xdb\x68\x6a\x08\xf3\xa8\x6b\x2b\x60\xde\xc9\xc5\xb9\x95\xc8\x4f\xda\x2c\x90\xf6\xa6\xfc\x5e\x1c\x7c\xe0\x76\xe2\x2f\x8b\x4f\xe6\x71\xb4\xb9\x2b\x9a\x18\xb9\x2b\x6a\x0e\xf3\xd7\x87\x59\x0c\xca\x72\x80\x7f\x55\x79\x38\x86\xa3\xe6\x72\x78\x13\xb1\xad\xf8\x97\xf4\x75\x3f\xa8\x0a\x23\x87\xa8\x24\xf2\xec\x21\xa7\xdd\x8f\xc2\xed\x69\x3f\xfa\x4c\x77\x83\x40\x54\xb1\x40\xf7\x7b\x3a\x34\x79\x5d\x77\x49\x3e\xe7\x4f\xe2\xec\xd0\x77\x3d\x89\xe1\x1f\x10\xd0\x81\x49\xf6\xe7\x30\xa4\x47\xb6\x5d\x3d\x7a\x18\xbf\x09\xa0\xaf\x14\x44\xa9\xb1\xa3\x06\x09\x01\xf0\x2e\xeb\xfc\x8c\xe5\x2d\x86\x5f\xd1\xb4\x3c\x44\x10\xb7\x2d\xda\x27\x69\x1e\xd9\xb4\x5d\x0f\xfe\x45\x84\x5f\x7d\x3b\x69\x92\xef\x51\x16\x62\x87\xb0\xa4\x79\xcd\xd8\x3d\x68\xfd\x57\x99\x74\x78\x28\xe2\x6f\x1c\x5c\xf4\xc8\xc6\xaf\x70\xa9\x1e\xa5\x01\xfe\x35\xc9\x03\xfc\xe7\x03\xa2\x15\x4a\xb2\x43\xff\x8a\x97\xcc\x34\x23\xd6\xe4\x86\x91\x35\xf6\x0b\xec\x80\xd9\xc9\x2d\xaf\xa7\x36\x94\xbe\xbd\xd6\xe5\x9b\xff\xe4\x45\xd6\x8c\xf2\x9f\xfa\xb4\xde\xc2\xc9\xfa\xc4\xf6\xce\xf1\xff\xd3\xf0\x76\x18\x1d\x0b\xe4\x58\xa6\x43\x91\x6f\x1a\x71\x47\xe3\xe7\x02\xe1\x8d\x9e\x2f\x33\xdb\xac\x59\x69\xe3\x9d\xd3\xef\xdf\xfb\xc4\xce\x1f\xda\xec\x93\xec\xc2\xec\xe0\x4b\x43\x1f\xf6\xf2\xe1\xbc\x24\x16\x04\xbf\xb7\x0a\xd0\x69\x79\x21\xbf\xdf\xe6\x74\xae\x3f\xb9\x92\x1f\x3f\x36\xfc\xa4\xe8\x27\x44\x88\xb4\x76\x53\x43\x7f\xfa\xc9\xb5\xfc\x44\x52\x5d\x44\x3f\x10\x5d\x2f\xa8\x43\x60\x42\xd3\xb2\x6b\xbf\xa0\x8d\xdc\x61\x5a\x2a\x83\xa0\xc2\x6d\xd3\xb7\x83\x8a\x9d\xd6\x2b\xf2\xeb\xb4\xe4\xad\xa4\x40\xbb\x32\x66\x97\x16\xf0\x28\x85\x0a\x77\xdb\x41\x47\x18\x2f\xca\xae\x4d\x3e\xe8\xe8\x2f\xb9\x78\x35\xb5\xf9\xd5\xc2\xcd\x20\x8c\x1a\x5f\xdd\xc8\xfd\x68\x69\x19\x8a\xb6\x39\x20\xb3\xe9\x2f\xe1\x6d\x51\xf7\x48\xdb\x33\x17\xe7\xf9\xfd\x01\x21\xa9\xd9\x0e\x4f\x2f\xd2\xcf\x46\x9d\x4b\xd5\x0b\x85\x43\x58\x71\xa5\x8a\xab\xa8\x4b\x78\x5c\xd6\x87\x5e\x25\x60\x9f\x03\x49\xc3\xef\xf1\x93\x0a\x82\x53\xaa\x38\xad\x6c\x1b\x64\xfd\x16\x07\x76\x6f\x1e\x60\x81\x9b\xf6\xca\x62\xa9\xe2\x6e\xb9\x21\xc2\x70\xfb\x1f\x26\xfb\xe8\x5f\xff\x95\x93\xc5\x97\x37\xe6\xdf\xfe\x2d\x3b\x7f\xfc\xb1\xf2\xd6\x4c\xce\x3b\x23\xe9\x97\xce\xf3\x77\xe5\x3e\xaf\xa2\x3a\xfb\xfc\xdd\xb3\xa4\x1a\x87\xa9\xb2\xf3\x69\x14\xf1\x1d\xa5\xeb\xba\x7f\xef\xff\x04\x00\x00\xff\xff\xed\x13\x43\xe3\x7a\xb2\x00\x00") +var _confLocaleLocale_deDeIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\xbd\xcb\x8e\xe4\xc6\x92\x26\xbc\x2f\xa0\xde\x81\xaa\x46\xfd\x92\x80\x8c\x10\x74\xf4\xcf\x05\x82\x42\x9a\xac\x7b\x1d\xd5\xad\x95\x25\x09\x90\x20\x84\x18\x41\x8f\x08\x76\x32\xc8\x10\x9d\xcc\x54\x66\xa3\x81\x59\xf4\x72\xd6\x83\x59\x0c\xd0\x1b\x61\x1e\x41\x2b\xed\xf2\x4d\xfa\x49\xc6\x3e\x33\xf3\x1b\xc9\xc8\xaa\x73\x34\xbd\x90\x2a\x83\x7e\x37\x37\x37\xb7\xbb\xe7\x87\xc3\xb2\x30\x76\xbd\x78\x5c\xd6\x99\x29\xeb\x4d\xbe\xde\x99\xf6\x24\xb3\xa6\x5a\xd9\x2e\xdb\x9a\x5d\x63\x3b\xd3\x99\x36\x7b\x5a\x76\xb3\x33\xd3\x5e\x94\x6b\x73\x42\xdf\xed\x7a\xd7\x96\x66\x65\xea\x8c\x1a\x3e\x6d\xee\xde\xb9\x7b\x67\xd7\xec\xcd\xe2\x19\xfd\xef\xee\x9d\x22\xb7\xbb\x55\x93\xb7\xc5\xe2\xe6\x7f\xaf\x4c\x6b\xcb\xf5\xae\xbb\x7b\xc7\xfc\x7a\xa8\x9a\xd6\x2c\x1e\xb7\xe7\x7d\x5d\x98\x9a\x9a\x98\xea\xb0\x78\x56\x56\x1b\x6a\x63\xcb\x6d\xbd\x2c\xeb\xc5\x69\xbd\x37\x15\x97\xf2\x97\xa6\xef\x16\xa7\xab\xe4\x53\x7f\x58\x7c\x63\xb6\xa5\xed\x68\x06\x2d\xbe\xb6\xfc\xcb\xb4\x83\xcf\x97\x66\x65\xcb\xce\x2c\xbe\xa7\x7f\x0d\xfd\x71\xf7\xce\x05\xe6\xd2\xd4\x8b\xef\xe4\xdf\xbb\x77\x0e\xf9\xd6\x2c\xce\xa4\xb0\x33\xfb\x43\x95\x53\xfd\xef\x9a\xb6\xa2\xef\x77\xef\x54\x79\xbd\xed\xb9\xc6\xa1\x05\x60\xee\xde\x59\xb7\x86\x6a\x2c\x6b\x73\x49\xab\xa0\x21\xab\xca\xd4\xf3\xf9\xfc\xee\x9d\xde\x9a\x76\x79\x68\x9b\x4d\x59\x99\x65\x5e\x17\xcb\x3d\x56\xfa\xc0\xd4\x7d\x77\x6d\x5a\x29\xc8\x68\xd5\xd9\xde\xec\x5a\x59\x87\x29\x68\xb9\xcb\xdc\x02\xf6\x5b\x53\x35\xdb\x6d\x97\xe5\x95\x05\x28\xd1\x5b\x9d\xef\x43\x07\xf8\x41\x00\xdc\xe7\x65\xb5\x78\x3c\x7b\x49\xff\x60\xee\xd6\x5e\x36\x04\xe3\x37\xf2\x47\x07\x40\x2c\xbb\xab\x83\xf1\x5f\xb2\x95\xb1\xdd\xcd\x6f\x5d\xb9\x05\x3c\xd6\xf9\xa1\x5b\xef\xf2\xc5\x43\xf9\x17\x03\xb5\xe6\xd0\x10\x8c\x9a\xf6\x8a\x60\xe7\xfe\xbc\x7b\xa7\x69\xb7\x79\x5d\x5e\xe7\x1d\x80\xf5\x9a\x7f\x58\xfe\x71\xf7\xce\xbe\x6c\xdb\xa6\x25\x88\x94\x86\x26\x7d\xf7\x0e\x81\x62\x89\x5e\x16\xaf\x4c\x6f\x6c\x16\xf7\x82\xa2\x7d\xb9\x6d\x01\x53\x94\x66\x2f\xf9\x07\x77\x83\xb2\x4d\xd3\x9e\x6b\xb3\x7c\x45\x28\x75\xc8\x2b\xe0\xda\xb8\x13\x9a\x8e\x74\x30\x98\x4a\x5e\xd3\xe6\x70\x69\x5c\x40\x38\x49\xfb\x7c\x89\xce\xa8\x52\x5e\xec\x09\xca\x87\xbc\x36\xd5\xe2\x14\x7f\xcf\xde\xe0\x6f\x2a\x58\xaf\x9b\xbe\xee\x96\xd6\x74\x1d\x6d\x80\x5d\x7c\xdd\xd4\x5d\x43\x67\x80\xb7\xb5\xaf\x19\x64\xbe\xf0\x71\xfa\xfd\xaa\xe9\xfd\x76\x2f\x1e\x51\xa3\xec\x0d\xff\xd0\x12\xdf\x0c\x45\x26\x1b\x34\xe6\x45\xd9\xe5\xc6\x98\x02\xcb\x2a\xb7\xe7\x40\x40\x60\x63\x5f\x55\x04\xcc\x5f\x08\x22\x9d\x5d\xbc\xa1\x5f\x04\x0a\xf9\x75\xf7\x4e\x69\x2d\xfd\xb5\x78\xce\xff\xa0\x93\x75\x5e\xaf\xb1\xa8\xd5\xaa\x35\x84\x9c\xdc\xf1\x8f\xd6\xe4\xed\x7a\xf7\x13\x66\x8e\x3f\x16\x67\x3d\x8a\x18\x45\x8f\xec\x35\x70\xcd\xe3\x99\x0e\xb3\xa0\xd5\xac\x2a\xb3\xa7\x41\x9a\xc2\x2c\x1e\xd2\xff\xb8\x77\xac\x23\xaf\x2a\xea\x5e\xff\x5a\x3c\x97\x7f\x75\x47\xba\xb2\x23\x78\xc4\xdf\xb2\xcd\xcd\x1f\x6d\x46\xc7\xad\xdb\xe7\x15\xd0\x30\x3b\xeb\x72\xa0\x6a\xd1\xac\xcf\xe9\xc8\x80\x02\xd0\xf8\xdf\x9b\x1a\x64\x64\x6b\x89\x9c\xd4\xa6\xdd\xe5\xd5\x2a\x7b\xc4\x35\xb2\xea\xe6\xb7\x7e\xd3\x9d\x64\x55\x49\x98\x51\x94\x6d\xb6\x2a\xbb\xce\xd0\x5f\x26\xfb\x22\xcf\xa8\xb3\xad\xe9\x16\xf7\x96\x2b\x3a\xac\xe7\xf7\xb2\x5d\x6b\x36\x8b\x7b\xf7\xed\xbd\x2f\x9f\xf6\x65\x61\x2a\x02\xbf\xfd\xe2\x93\xfc\x4b\x22\x59\x75\xde\x67\x45\x4f\x40\x39\xa1\x63\x71\xd1\xb4\xf4\x23\x2b\xa9\x75\x5d\x5c\xe6\x84\x81\xfd\x06\x7d\x12\x30\x32\xa6\x07\xd9\xcd\x6f\x44\xa3\x68\xde\x1f\x00\x72\xbf\xf4\xf4\x69\x59\xac\x84\x58\xf2\x44\x89\xf6\xdd\xfc\x4e\x27\xab\xcb\x5e\x5e\x9d\xfd\xe3\x8b\x93\xec\x0d\x91\xca\x6d\x6b\xf8\x6f\xfa\x1f\x35\xf8\x2c\x23\xc0\xb5\xd9\xdb\xf2\xd1\x03\x82\x3f\xb5\x16\xf8\x3c\xa2\x03\x51\xaf\x68\xba\x03\x64\x43\x05\x9c\x5e\x5f\x4e\xbf\x40\x56\x6d\x47\x64\xd5\x76\xa3\xad\x9a\x20\x00\xd4\x05\xd3\x0d\xdf\x85\x10\x0e\xfa\xac\x80\x7e\xc0\xc0\xc3\xf9\x30\x20\xc1\x99\x2d\x05\x94\xcf\xeb\xba\x79\xf4\x60\xf6\xb8\xde\x02\x61\xf7\x65\x97\xf5\xdd\xe6\xbf\x2e\x69\x5e\xa6\xcd\xab\xe5\xba\xcc\x7e\x30\x25\x50\x89\xce\xd8\xb5\x6c\x2a\x2f\x9b\xd6\x65\x6d\x45\xd4\x8e\xd0\xe4\xec\xec\xc5\xec\x65\x53\xf4\x16\x53\xeb\x76\x8b\x37\x9b\xbc\xa0\xe2\x5f\x2a\xc0\x4e\xc7\x7f\x44\xf0\xc0\xe4\xca\x03\x15\x66\xd7\x7d\x3b\x06\x55\xe6\x27\x4f\x9d\x9b\xb6\x5d\x12\x5d\xee\xae\x00\x7c\xee\xf5\x96\xfa\xdc\x67\x91\xb7\x9b\xac\xc6\x8d\x93\x55\x86\xaa\x10\xe9\xaf\xb5\xa3\xb2\xbe\x20\x24\x2c\x68\x1b\x3c\x9c\x46\x7d\xe0\xb3\xf4\x81\xed\xc9\xee\xcd\xef\x31\xd9\x96\x1f\xb3\x7b\x99\xa9\xbb\x1d\x93\x16\xea\xb3\x6e\x96\x42\x5e\x40\xf0\x0b\x22\x3f\x74\x66\x96\x72\x19\x09\x9d\x5b\x3c\xea\xb3\xf3\xbc\xa6\x5d\x66\x20\x87\xeb\x89\x76\x5c\xe7\x58\x98\xfc\xbc\x2b\x2f\xf8\xca\x3a\xc9\x9a\x1d\x41\x1f\x43\x31\xa9\x92\x7e\x88\x4a\x82\x32\x11\xb0\xf8\x1c\xc9\x9d\x13\x43\xc6\x91\x38\xc5\x86\x47\x84\xcd\x49\xf3\x99\xbf\x0e\x8e\xc0\xe6\xee\x1d\xb7\xcf\x82\xa0\xa7\x55\xb5\x35\xfb\x29\xd2\x05\x7e\x81\x01\x77\x5a\x03\x81\xe8\xab\x15\x0c\x73\x05\x6e\x9f\x9f\xd1\x82\x32\x20\x58\x4c\x99\xb9\xae\xf0\x19\x37\x7f\x6c\x79\x15\x20\x4a\xb2\xaf\x81\x26\x65\xdf\x34\x4d\x37\xa3\x3b\xfa\x1a\x28\x47\x8d\x0f\x8c\x48\xbe\xaa\x1b\x83\xa6\x69\x98\x2f\x09\x4d\x6d\x76\x69\xda\x42\xb8\x12\x3e\xcd\xfb\x2c\xea\x07\x7c\xcb\x81\xd1\xb8\xed\x30\x76\x4f\xbc\x04\x8e\xd4\x69\x6f\x69\x42\x44\x3a\x70\xe2\xb3\x70\xc0\x5c\x85\x18\x79\x5d\x69\xb6\xef\xad\xe5\x5d\xfd\xa1\xdf\xb6\xe5\x66\x63\x89\xd1\x21\x3a\x4c\x14\x01\x9b\xcb\x27\x84\xd8\xa0\xec\x96\x65\x65\xbb\x1c\x0c\x14\xd0\x0b\xe3\xe6\xd1\x2c\xc2\x30\x17\x8d\x12\x46\xdd\xab\xa2\x21\x26\x80\x10\x8b\xff\x71\x3f\xfd\x04\x41\x23\x77\x79\x97\xd1\x8a\x2e\x4b\xb0\x59\x5b\x47\xd8\xb2\xb3\xb3\x67\xd9\xba\xa2\xeb\x31\xfb\xf6\x9b\x17\x96\xcf\xed\x6e\x79\x20\xac\x58\xa0\xe4\x0d\x93\x0f\xf7\x29\xea\x8f\x4b\xea\x7e\xbf\xe7\xfd\x04\x39\x45\x4f\xcc\x0a\x12\x36\x12\x59\xce\x05\x0c\x96\x0a\x9e\x10\x97\xc6\x88\x75\x42\xdb\x40\x04\x9d\x08\x2c\xfa\x8e\x51\x3c\xdb\xdf\xfc\x4e\x40\xa2\x2b\x8d\x66\xb0\xeb\xba\x83\x4c\xe1\xd9\xdb\xb7\x6f\x74\x0e\xfe\xa3\xdf\xe6\x40\x99\x51\x23\x7b\x25\x93\xa1\xf5\x15\x02\x19\x3a\x09\x80\xe8\x2a\xf7\x08\x0d\x6c\xec\xdb\x2a\xc2\xd2\x19\x2d\xda\x7f\x7f\x1f\x70\x61\x46\x9f\xe0\x7f\x67\x11\xd4\x78\xaf\x64\x6b\xa9\x8a\x30\x62\x96\x0f\x50\x73\x00\x82\xfb\x13\xf4\x5a\x7f\x8e\x0e\x10\xb3\x70\x5a\x49\xda\x3b\xae\x7a\x58\xd3\xee\x09\x0e\x4c\xfc\xcf\x5e\x12\x70\xe4\x06\xe0\x8f\x9b\xb6\xd9\x13\x93\x5a\x47\x3f\x3d\xac\x88\xd3\x05\x12\xcf\x4e\x8b\xd6\x58\x6b\xb2\x9a\xf8\xd6\xec\x9b\x27\x0f\xb3\xff\xf4\xd9\x5f\xfe\x32\xcf\x1e\xd7\xdd\xa5\x01\xb2\xd5\x44\x79\xe5\x80\xf3\x24\x32\x57\x9f\xa9\x6a\xb9\xcf\x36\x4d\xb5\x95\x1b\xe2\x49\xd3\xee\xf3\xee\xf3\xec\xde\x2b\x3a\xbc\xf7\xb2\x2f\x78\x05\xff\xcd\xfc\x9a\x13\xb7\x6c\xe6\xeb\x66\xff\xe5\x1c\xac\x18\x31\x42\xad\x9c\xa6\x33\x39\x46\x8f\x67\x7b\x66\x53\xb5\xc8\x93\x27\x2d\x8e\x99\x56\xe1\xde\x97\xeb\xa6\xde\x94\xed\x7e\x91\x90\x49\xeb\x59\x58\xde\x1d\x8f\x48\xd2\xf1\xb2\x6e\xba\x72\x73\xe5\x40\x49\xa7\x26\x87\x60\xe2\x8e\x21\x4d\x3f\x6e\x61\x19\x69\x97\x56\x00\xae\xbb\x20\x98\x3c\xe3\xad\xb5\x44\xa3\xc0\x2c\x67\x84\x19\xd8\x8c\x74\x47\x9a\xcd\x06\xfc\x84\x5c\x76\xaf\xe5\x87\x5c\x78\xc9\x28\x71\x35\x42\xe4\x03\x89\x2b\x8f\xc2\x09\x60\xa2\xf0\xf0\xd1\x2b\x42\x34\xda\x19\x82\x34\xb1\x5a\x45\x7f\xce\xe4\x71\x8f\xbe\x4e\x48\x08\x20\xbc\xe1\x4b\x92\xe6\xaf\xf4\x0c\x64\x40\x09\x9a\x4c\x18\xe4\x82\x18\xf0\xd2\x6c\x84\x98\xb9\xeb\x87\x38\xec\x8b\x9c\xb8\xa2\xc5\x53\xfd\x63\x26\x6b\x49\x4e\xe1\xb8\xba\x4e\xd4\x35\x62\x68\xac\x94\x06\x15\x66\x43\x97\x09\x0d\x63\xb2\x7f\xec\xf9\xfa\x19\xdc\x5a\x3c\xe1\x53\x6e\x68\xdc\x84\x89\x05\xac\xe9\xba\x29\xf6\x37\xbf\xdd\xfc\x5b\xb9\xa5\x05\xec\xe9\xe4\x32\x49\xdb\x35\xeb\x1d\x4d\x3d\x47\x35\xc6\x37\x5b\xd2\x68\x67\xda\x40\x26\x60\xa2\x25\x25\x37\xaa\x23\x8c\x6d\x72\x97\x4e\x2f\x2e\x6e\x38\xb5\x13\x65\xa0\xb3\x49\x77\x27\x7c\x3c\x92\x3b\x94\xa6\x7a\x7e\xf3\x7b\x0d\xe1\xc2\x35\xc1\xad\x0c\x04\xab\x2b\x23\x77\x19\x21\x1f\x46\x1d\x88\x59\x09\x6e\xa4\x55\x74\x4e\x0f\x3c\x27\xa9\x4d\x66\x2c\x35\x1f\xda\x9b\x3f\x36\xfe\x2e\x49\x79\x07\xe6\x63\xfd\x4c\xe6\xca\xa2\x92\xf8\xa7\x52\xf4\x92\x06\x84\x88\x4a\x22\x56\x81\xa5\x8a\x50\xcd\x4b\xeb\xf7\xc4\xec\x31\x0b\x43\x53\xbf\xa6\x13\xbb\x13\x11\x7a\xdc\x5e\xa7\xf7\xc2\x14\xe5\xb6\xa2\x33\x45\xf5\xc1\x16\x90\x24\xde\x45\x17\x94\x03\x8b\xeb\x74\x65\x3a\x08\xcb\x1d\x10\xe3\xe9\xcd\x6f\x74\x80\x32\x1e\x83\x61\x0a\x90\x3b\x01\xff\x93\x58\x5a\x17\xa6\x7b\xee\xe4\x35\x15\xa0\x84\xdd\x3e\xa3\x46\xfb\x9b\x3f\x88\x3c\xd5\xd9\x3f\x99\xee\xba\xcb\x6a\xc2\x20\x66\xc9\xcc\x80\x53\x9a\x9d\x8a\x54\xe7\x77\x25\xc3\x9d\xcd\x6c\x53\x98\xf1\x47\xf7\x9e\x3f\x5a\x7c\x7a\xef\x63\xfa\xbe\xbb\xf9\xad\xa2\xca\x7d\x47\xd7\x68\x57\x5a\xea\x35\xea\x0e\x47\x92\xaf\xf4\x30\x2f\x21\x19\x2c\x29\xce\x12\x7a\xad\xb7\xc2\x70\x3e\xae\xdd\x84\x30\x3f\xe0\xda\x02\x3d\x54\x32\x38\x2e\x4a\xa5\x79\x69\x9f\xaa\x04\x54\x2a\x5b\x6e\xe9\x5a\x5c\xa8\x38\xc5\x5f\x14\xfd\x70\xef\x2e\xb7\x65\xb7\xdc\x80\x28\x17\x8b\x27\x66\x47\xb4\x99\xfa\x25\x3a\xf4\xd6\x30\x91\xb0\xd9\x87\x54\xe1\xc3\xec\xeb\x66\x4f\xf2\x75\xd1\xd8\xcf\xb3\xfb\x17\x8e\x8b\xff\x0c\xf4\x76\x49\x27\xb4\xac\x80\xc7\x8b\xe7\xc4\xad\xf0\x1d\x3c\x53\x8d\x0a\xd1\x8d\x0e\xd0\xbe\xf9\x03\xdb\xc4\x4c\xb3\xf2\xeb\x27\x2a\xb7\xe1\xd8\xb3\x18\x07\x54\x20\x52\x59\x5e\x97\x20\x29\x54\x5a\xdf\xfc\x46\xbd\xb9\x8e\x40\xf0\xee\xd3\xed\x0c\x7c\xef\xc0\x51\xbc\x7a\xfe\xf0\xd9\x5b\x6e\xb5\x6d\x56\x7d\x59\x15\x6e\xcc\x39\xd6\x2d\x8c\x3d\xb1\xf5\x8a\x39\x41\x02\x1a\xec\x13\xd3\x1a\x61\x81\xcf\x1b\x3a\xf6\xe7\x9d\x2c\xd0\x75\xf1\x5e\x0c\x69\x46\xfb\x4b\x4b\xdd\xde\xfc\x51\xd1\x6e\x48\x07\x9e\x59\x04\x88\x08\x9b\x48\xf8\x7e\x74\x94\xab\x43\x7b\xc7\xff\xb7\xa0\x10\x4c\x57\x7d\xf9\xe7\x58\xfa\xec\x4b\xfa\x3f\x41\x3e\xbf\x30\x72\x35\x6e\xa7\xb6\xed\x4c\x19\xda\x9a\x7b\xfa\x9a\xeb\xf5\x82\xbc\xe9\xc2\x92\x83\xa5\xaa\x10\x46\xe4\x6c\x02\x40\x83\xb5\x39\xbc\xb2\xfd\x7a\x4d\x6c\xc2\xe2\x19\x81\x82\x29\xc2\xf7\x65\x55\x9d\x13\xa6\x98\xfa\x03\xfa\x5b\x29\x39\x31\x24\x24\x63\x17\xcc\x18\x92\xc8\x8d\x7a\x7c\x3a\x84\x59\xab\x3b\x3a\x66\xa5\xc1\x51\xd9\xe5\xc4\x06\x72\xbb\xcb\x9b\x3f\x6a\x0b\xf1\x32\x23\xc2\x53\x01\x09\xb6\x35\x8b\x08\xd4\x0d\x09\xa3\xcc\x62\xfd\x08\x05\xe3\x4f\x24\x05\x8b\x9c\xd1\x10\x0d\x69\x93\x33\x25\x97\xc9\x50\x3d\xe6\x6a\x86\x03\x46\xbc\x1e\xed\xce\xd2\x2b\x29\x01\xdd\xce\xfc\xda\x41\x72\x92\x2f\x80\x23\xbe\xd0\x65\xb6\xde\x59\x53\x81\xdb\xb8\x62\xd4\xb0\x8b\x97\xcc\x36\x79\xe4\x28\xa1\x8c\x59\x37\x15\x1d\x88\x06\x60\xbf\x30\x5a\xef\x29\x4b\x50\xb4\xa8\x7c\xd3\x01\x56\xc3\x36\xd4\x61\xd3\x6e\x5d\x7f\xa9\x02\x8b\x4b\x45\xd3\xe6\x2a\x78\x85\x1b\x53\x66\xd6\xb5\xde\xb7\x11\xb1\x05\x84\x44\x45\x34\xa7\x6d\x66\x2d\x94\xcc\xe3\x79\x2d\x7c\x7b\x3d\x18\x9f\x00\xaa\x0a\xd9\x9f\x54\x37\xb4\x18\x55\x20\xc2\x08\x5d\x52\xd0\x7a\x2e\x55\x6b\xa6\x6a\x3b\xc1\x1f\x2f\x95\x46\xbc\xdc\xce\x1c\xc0\xf5\xed\xed\x16\x32\x30\x36\x3a\x83\x7c\x54\x76\x96\xc5\x5b\x6e\xf8\x55\xf6\x57\xa6\xe6\xb9\x5e\x08\x1f\xd0\xd6\x34\xeb\x32\xaf\x96\xef\xdb\x8d\x6d\xae\xa9\xba\x9b\x88\xeb\x8f\xb8\xa3\x73\xc2\x9e\xc3\x86\xbb\x4c\x99\x01\xd1\xd2\x92\xd8\xbc\x78\x6c\xb3\xae\xc7\x29\xb6\x24\xb2\x94\xc5\xc9\x84\x84\x7e\xd9\xb7\x20\x56\x9e\x65\x20\x64\x15\xfd\x09\x2b\x4f\x04\xb3\xf3\x7a\x4c\xf5\x47\xbc\x0b\x96\xc0\x74\x7a\x6a\xcc\x07\x31\x83\x0b\x0c\x4e\xf9\xdf\x99\x72\xe8\xe3\xc9\x00\xdc\x7b\xb3\x5f\xa1\x77\x48\xe4\xee\x72\xce\x68\xe0\x72\x85\xed\xa0\xeb\x7f\x4b\xd4\x68\x7c\x93\x10\x88\xb6\xe0\xf7\xb5\x8e\xb9\xb5\xce\x57\x5e\xef\x4e\xb4\xed\x12\x1b\x71\x49\xc7\x9e\xb6\x62\xb4\x93\x6d\x74\xa3\x7f\xe0\x6f\x32\xe1\xbf\x98\x5d\xa7\xde\x3a\xbf\x01\x40\xeb\x1a\x6a\xdd\x18\x02\x83\xf5\x12\x78\xbf\x58\x7d\x79\xdf\x7e\xf1\xc9\x0a\x3a\x3c\x96\x6e\x68\x1b\x30\x6a\xdb\xc8\xbd\xc6\xe8\xcd\xda\x37\x58\x2f\x22\x05\x22\xcb\x39\x37\xbf\xd1\x09\x06\x9f\x76\x1f\x2c\x26\xdb\x1d\x98\x07\x1a\xef\x76\xbe\x22\x6e\x68\xbd\xa3\x3e\x6f\xfe\x8d\xf9\x39\xc7\x0b\x75\x8d\x47\xfb\x97\x65\x27\xa7\x69\xaf\xb8\x9f\x7b\x6b\x45\xbe\xe6\xc3\xcf\x27\xcf\x55\x3f\x0d\xbc\xa6\x87\x15\x76\x8d\xc1\x50\x95\x44\xd9\x8e\x63\x63\x9f\xf1\x62\x09\xcc\xd7\x84\xf9\x50\x82\x12\x17\xed\x3a\x8c\x00\x65\x3d\x52\xe6\xe0\xd0\x3f\xcb\x5e\x96\x44\x12\x79\x01\x74\x5e\x96\x7d\xad\xbb\x60\x0a\xc1\xc1\x67\x44\xc8\x1b\xba\x59\x78\x08\x3e\x51\x4c\x5f\xfa\xda\x73\x17\x9d\x93\x0a\xbd\x14\xf9\x91\xdf\x83\x8f\x89\x5e\xab\x68\xcf\xfc\xd7\xf4\xde\xf1\x06\x74\x4a\xe1\x85\x2c\x1b\xbf\xdb\x4e\x71\x6a\xbb\x93\xec\x9c\x28\xe3\xb9\x51\xd6\x80\x45\x6f\xb0\x52\x5e\xf6\x7c\xd0\x77\x5d\x23\x6a\x22\x00\x43\x17\x00\xd5\x92\x34\xd4\xad\xe4\xbe\x27\x40\x43\xf3\xa0\x11\x19\x80\x50\x56\x18\x31\x3a\x19\x27\x38\x2e\x09\xd3\x41\x6f\x3a\xc3\x9a\x80\xd1\xaa\x71\x49\x43\x13\x7a\x1e\x6f\xb8\x27\x2e\x38\x7f\x3c\x29\xcc\xad\x3b\x36\x35\xaf\x26\xa0\x49\xec\xbd\xd0\x3b\xbb\xee\x89\xb9\x5f\x9f\x53\xc3\x6b\x28\xc4\xa6\xa6\x29\xdd\x8e\x8f\x65\xd2\x34\x5c\xef\xac\xa8\x1f\x63\x11\x6b\xac\xa2\x1d\x42\x35\x5e\x18\x2c\x2e\x15\x41\xdc\xc9\x60\xfe\xc6\x9f\x0f\x87\x4e\x54\x7a\xc9\xe2\x48\x92\x1d\x4e\x0b\x02\x85\x4c\xcc\x37\xef\x9a\x66\x69\x77\xd0\xf2\x3c\x8a\x1b\xb0\xfe\x8c\x88\x66\xc1\x92\x36\xcd\xf8\x3f\x3b\x15\x73\x06\xbb\x1b\xab\x72\xf8\x12\x02\x64\x7f\xd2\xf3\x85\x6b\xc8\x1d\x2e\xc1\xfa\x7c\xf2\x88\xf9\xca\xc2\x1f\x13\x3f\x51\x32\xa7\xa9\xd5\x86\x5b\x3d\x82\xf6\x19\x16\xa1\x84\x65\xb0\xc2\xe8\x92\x73\xec\x50\x4a\x47\x4c\x0b\x04\x66\x95\xd4\x49\xc4\x20\xc9\x5a\x9a\x22\xc7\x62\xae\x8c\x5d\xfc\x35\x87\x06\x99\x6e\x52\xac\x93\x0a\xa0\xc7\xb8\xf9\x57\x28\x47\xa4\x2e\x11\xe6\x3d\x55\xfd\x96\x78\xca\x57\x63\xf1\x01\x77\x35\x7f\x0e\x6c\xea\xec\x15\x97\x3c\x8e\x44\x82\xb0\xc0\x37\x63\x41\xe3\x1b\x73\x8b\xb1\xf0\xec\xec\xd9\x5b\xd1\x8f\x40\xdb\x47\x64\x91\x05\xb0\x4a\x06\x7f\xd6\x75\x07\xfb\x6d\x5b\xb1\xde\xee\x4c\x74\x6b\x6f\xf2\xab\xaa\xc9\x0b\x7c\xd5\x3f\xe5\xfb\x5b\x93\xef\x79\xa2\xf8\x43\x9a\x9f\x12\x5b\xc1\x9f\xf0\x07\x91\x42\xdd\x9b\xa0\x4d\xe6\xdb\x54\xd6\xc1\x7f\x7a\x65\x52\x10\x54\x0d\x9b\x21\x7f\x9e\x56\x69\xff\x4c\x18\x50\x1d\x48\xc0\x06\x8f\xe7\xab\x32\xc6\x11\x3f\xee\x88\xbc\xc8\xb4\xa8\x57\xf7\x7b\xc2\x10\x30\xa0\x1e\x07\xa1\x00\xb9\x37\x5b\xc6\x0a\xff\xb4\xd7\x82\x08\xc8\xdf\xdf\xf3\x7c\xd4\xb5\x2d\xaf\x4d\xda\x21\x88\xc7\xd3\xf6\xe6\x77\xba\x8e\x58\x14\x82\xb6\x18\x35\x99\x8f\x1f\xd5\xe6\xa3\x24\x27\x89\x2a\xbb\xc1\x92\x21\xf6\xf9\xaf\x69\x43\x06\xde\x0e\x1a\xd9\xdb\x1b\x0a\xc9\x74\xad\x40\x3e\x84\xf8\x2b\xc9\x18\x1e\x27\x34\x81\x9a\xf5\x96\x06\x84\x1a\x5c\xab\x3e\x27\x96\xa2\xd6\x9a\xdf\xd2\x1d\x04\x73\x09\xfc\x0d\x44\xc6\xf9\xdc\x5b\xad\xe9\x22\x5e\x43\x5e\x5b\x77\x5e\xb1\x62\xbb\x72\xbf\x77\x72\xd4\xcd\x1f\xcc\x18\xe2\xb2\xf0\x94\x27\x92\xc4\xa0\xc8\xc6\xe7\x9b\xdf\x5b\xf4\xce\x4d\xa1\x93\x18\xb6\x0d\xb6\xf7\xe5\xca\x18\xba\xfb\x73\xa2\x76\xa9\x94\x51\x46\x4c\x28\xf3\x48\xab\x60\xc9\x18\x36\x1c\x1c\xce\x63\x6d\x89\x05\x1b\x35\x1d\x19\x4e\x8e\x35\xee\xe8\x5c\x8d\x5a\xbb\xc3\x76\xac\x91\xec\x28\x37\xa0\x05\x17\x03\x72\x21\xca\xf5\xa8\xd9\xa5\xf0\x5d\x74\xdd\x10\x9f\xbf\x85\x9a\xdb\x0d\x1a\x46\x02\xc6\xb0\x3a\xc5\x5f\x25\x1e\xe7\xe7\x11\x58\xfd\xee\x84\x0d\x1d\x0b\x71\x9e\x26\x05\x41\x59\xa5\x75\xd6\xb3\x75\x50\xd8\x15\xcb\x44\x66\x17\x15\x0b\xdf\x09\x22\x8e\x64\xb6\x14\x67\x16\x91\x44\x85\x07\xd9\x1a\x86\x40\x24\x8c\xe9\xce\xa8\xd2\x18\x03\x4e\x0d\x41\x48\x0a\xd1\xfe\x6f\x1b\x83\x6e\xde\xd2\xaf\xeb\x1d\x03\xf8\xab\xe7\x96\xee\x73\x9b\x74\xef\x81\x94\x76\xed\x95\x10\xe6\x57\xfa\xc0\x72\x81\x34\x88\x8c\x57\x5c\x04\x21\x42\x80\x3b\x87\xaf\x8b\xed\x20\x90\xca\x4a\x59\x75\x01\x83\x63\xdd\x6d\xc0\x9d\x8c\x94\x17\x58\x6a\x05\x9e\x3f\xac\x92\x59\xbc\x36\x91\x64\xe7\x99\x30\x56\x4e\x7b\x77\xdd\x43\x56\x24\x3e\xbe\xba\xf9\xdd\x62\x53\x79\xb3\xf9\xf8\x91\xe4\xb4\xf5\xea\x6e\x3e\x88\x0e\x32\x30\x4a\x9d\x9b\xab\xc5\x0b\xe2\x68\x9c\xb2\x98\xf0\x53\xd1\xa2\x14\xc5\xc7\x0b\x6a\x7d\xe2\x04\xdd\xf4\xca\xc2\x3a\x78\x08\x56\xa8\x1a\xa8\x45\x2c\x6b\x11\x20\x9f\x5d\x80\x33\xb8\xf2\x63\xb0\x8a\x02\x24\xe8\x48\x57\x32\xe6\x45\x60\x27\x88\x13\xaa\x99\x0a\x11\x71\x6e\x49\x1a\xd0\xad\xa2\xbf\xf5\x0c\xf0\xa6\x64\xc9\xa6\x42\x8f\xef\x3c\xac\x64\x83\xa1\x5f\xa4\xab\xd0\xe9\x77\x46\xd7\x62\xb6\x21\x6a\xc8\x4e\x57\x70\x4c\x52\xc5\x0e\x5d\x19\x1d\x1d\x47\x6c\x98\x78\xe0\x3c\xf2\x0c\x10\xae\xf2\xd2\x2b\x4a\x63\xb1\xfe\x4f\xec\x88\x8c\x06\x99\x02\x1e\x37\x24\x05\xae\xf8\x70\x62\x04\x12\x8b\xb6\x74\xf1\x15\x13\x28\xe0\xf5\x7e\xdc\xbf\xa1\x01\x55\x24\x13\x73\x86\x6f\x2a\x8a\x12\xa5\x85\xc3\x85\x71\xcd\xb8\xd7\xff\x90\x05\xc6\x00\x65\x4b\x96\xf4\x34\xde\x0d\xa6\x8e\x3c\x32\xb4\x94\xb4\x66\x76\x6c\xf1\x54\x0c\xbe\x26\xf4\x57\xc7\xe6\x36\x3e\x3e\xba\xd6\xeb\x1e\x6e\x27\xb8\xff\x1d\x34\x84\xf3\xe7\xb1\xc5\x93\x65\xb9\x6a\xf3\x7a\xbd\x8b\xce\xef\x0f\xa5\xa9\x66\x0f\xf8\xeb\xf0\xd8\x32\x9b\x88\x99\x42\x47\xb3\x83\x76\x7e\xa9\xc6\x1f\xe1\x23\x1d\x07\xcb\xae\x49\xab\xb2\x2a\x58\xc4\x72\x26\x1f\xd8\xee\x7c\xbb\x75\x6f\xbb\x66\x3f\xd5\x1c\xca\x0d\xb1\x09\x95\xa2\xea\x18\xd8\x29\xff\xa9\x21\x76\xa4\xa9\x23\x26\xb8\x8b\x7c\x8d\x68\xdd\x03\xb5\x12\xb3\xe6\x65\x47\xbc\xee\xff\xdc\xd0\x69\x54\xdd\x98\x48\x6f\x60\x3f\xa1\x91\x20\x09\x95\x76\xc5\x2e\x9e\xb8\xbf\xb0\x35\x39\xe8\xe5\xe2\x65\xde\x9e\xcb\x18\x52\x0d\xca\x4c\xaa\xb6\x65\x60\x80\x65\x9e\xf3\x2d\x03\x7e\xbe\xbd\xa0\xfa\xb1\xcd\x9e\xe9\xf0\x87\xf7\xed\x87\x4c\xc2\xa4\x8a\x6a\x52\x42\xcb\x43\x4e\xe8\xda\xd6\x22\x20\xf2\xf0\x45\x72\x41\xd5\x76\xf6\xb2\x07\xfb\x9f\xc1\xcd\x28\xba\xa0\xae\xfb\xea\xe6\x37\x6b\x59\x82\x62\x4f\x2c\xf1\x01\xa3\xbd\x71\x8e\x62\xce\x47\x6c\x42\xe9\xaf\x04\xc8\x0e\xd8\x6d\xa7\x11\x5b\x9c\x89\xa6\x4b\x14\x93\xe2\x88\x41\x80\x13\xe6\x20\x98\xb9\xd9\xfc\x08\xa5\xe2\x50\x9d\x58\x18\x22\xd6\x6a\xb8\x70\xc8\x47\x9f\xfb\xb2\x58\x7c\x5b\x16\x98\xef\xa1\x5f\x51\x87\xde\xa7\x2d\xde\x1c\xeb\x9d\xdb\x9c\x83\x23\x9b\x65\x1e\x4d\x08\x52\x0c\x8e\x9b\xdf\x7d\x5b\x1c\x0e\x6b\xd8\x34\xdf\x0b\xd9\x56\xfb\xb9\x0a\x71\xf6\x60\xae\xe9\x60\xf1\x59\x98\x30\xde\x7a\xce\xe3\x24\xb3\xb4\xd5\x46\xdb\x82\x88\x5e\x9a\xd5\x6c\x95\x5b\x36\x4b\xd6\xd9\x13\x62\x24\x65\xad\xa2\x53\xe3\xf3\x2d\x6e\x0f\xec\xcc\xb5\x25\x7e\x07\x7b\xe4\xcf\xfa\x06\xae\x76\x7c\x9d\x7f\xd7\x40\x97\x05\x6f\x2f\x3a\xc5\x6d\x26\x32\xd4\xd8\x75\xb4\x6a\x04\xda\x0b\xb6\x53\xf2\x9e\xf5\x87\x02\x22\x66\xba\xbb\xac\xcc\xa7\x7b\xcb\xaa\xc9\x25\xad\xe4\x45\xc6\xe7\xbb\x56\xa1\xaa\x8a\xae\x48\x6a\x8c\xbb\x00\x6e\xea\x11\x9d\x74\x0a\xa5\x95\x89\xa3\x5a\x37\xaa\xe7\x54\x4b\x42\xc5\xe4\x48\x7b\xea\x65\x79\x1c\xf5\x75\x78\x51\xd6\xe7\x2b\x73\x0d\x85\x3b\x2e\x4b\x55\x70\x79\x53\x9a\x38\x47\x30\xd8\xa0\x29\x2f\xeb\x1e\x80\x21\xa8\xb4\xd3\x4e\x88\xce\xc8\x99\x90\x94\xa0\x0a\x1b\x9b\x95\x1d\x85\x99\x6e\xea\x7d\x1b\x62\xc3\xad\x0d\x9a\x1f\x4f\x9f\xf4\x72\x86\xc3\x8c\x33\x63\xd3\x6a\xd8\xce\x0c\xe0\x34\x8d\x55\x1d\xb6\xcc\x08\x2a\x6c\xdf\x16\x8b\xbc\xf9\x6d\x57\x45\x5b\xe6\x26\x2e\x56\xf4\x88\xea\x8d\xb7\x18\xd2\x2e\xf1\x72\x3a\x5f\xa6\x1c\xcb\x72\x0f\xcf\x61\x08\x1e\x91\xbd\x5b\xed\xfa\x5e\x22\x22\xc6\xa0\x2a\xc4\x93\x2c\x5d\x73\xb0\xb1\x7d\x8d\x6a\x63\x98\xb5\x6e\xe6\x74\x46\xe0\x4d\x45\x47\xec\x24\xd6\x81\x45\x84\x69\x7f\xf3\x3b\xdb\x6f\xe7\x83\xa5\x79\x64\x94\x93\x3c\xb1\x50\xd5\xc1\xa6\xe8\xe8\x11\x6d\xac\x9b\x12\x54\x04\x11\xaa\x22\x8e\xf6\x54\xcd\x5b\x36\x72\xfa\xc0\x3e\xf8\x0a\x62\x4c\x88\x3d\x42\xa0\x98\x58\xde\x52\xc7\xa9\xcc\x98\x1d\x5e\x25\xea\xa6\x20\x56\x8c\xc7\x9d\x14\x27\x06\xab\xf1\x50\xf1\x8d\xfc\x11\x23\xde\x22\xf2\xe7\xa3\x03\x24\xd6\xe8\x7d\x50\x0a\xd7\x8c\x53\xbe\xa5\xd3\x0e\x33\xd4\x58\xe4\xb2\x03\x49\x2b\xb8\x31\x4f\x17\xc7\xae\xcc\x22\xb3\x45\xb4\xf7\xd0\x96\x7b\x36\x9a\x4e\x49\x6f\x4c\x2a\x27\x68\x2a\xe8\x70\x2e\xd7\x7b\xa0\x9a\x89\x8c\x87\x6e\xf3\xf6\x8a\x08\x1a\x77\xef\x3f\xa8\x32\xed\xb4\xb2\x61\x64\x37\xa4\xf7\x28\x75\x77\x8d\x56\x7e\xe1\xef\x1a\x37\x7b\x2a\x04\x19\x55\xad\x68\x75\xa4\x5c\x97\x49\x12\x8f\xeb\xc1\xf9\x80\x0d\x1c\x96\x78\xad\x7c\x23\x3c\xaf\x37\x8d\x1a\x1b\x44\x7f\x21\x92\x8b\x5c\x08\xbc\x47\x93\x1d\x04\x85\x2e\x8b\x16\x73\x56\xd9\x61\x83\xfb\x8c\xfa\xeb\x36\x39\x6c\xb7\x5f\x8d\xe6\xe7\xb0\x64\x08\xfa\x11\x31\xf7\x9c\xe7\x07\xb0\xd9\x17\x8c\xd5\x02\x1b\x76\x69\x1f\xb4\xdf\x95\xf5\x75\x2f\xde\x91\x52\xdd\x4c\x68\xf3\x8e\xd4\x5a\x26\xf6\x16\xd8\x18\x8e\xd9\x58\xf6\x89\x81\x85\x39\x22\x67\x5b\x71\xfc\x7a\x2c\x31\x65\xf0\xc0\x80\xad\x5f\xcc\x2c\x38\x74\xd0\xd0\x06\x4b\x0b\x1b\xeb\xbd\x7d\xc5\x29\xbe\x13\xc3\xd6\xc8\xba\x12\xa6\x9d\x92\xa1\x7a\x02\x2a\x63\xa8\x32\x04\xb6\x06\x30\x10\x9a\xa4\xa7\xe8\x08\x1f\x95\x46\x04\x14\x2c\xeb\x0d\x6a\x24\x30\x45\x37\x82\x81\x90\xd5\x4a\x67\x24\x79\x01\xbd\x2f\x63\x5b\x3b\x90\x0c\x23\x2c\x9b\xb6\x16\x28\x72\x89\x20\xe8\x90\x53\x10\x77\xd8\x4b\xe1\x85\x5b\x55\x87\x49\x5b\x99\x95\x5e\x86\x5f\x10\xab\xdd\xd4\xdb\x2f\x21\x86\xb5\x70\x25\xa3\x29\x72\x20\xcd\x57\x5f\x7c\xa2\x45\x19\x2b\xec\xfd\xdc\x4f\xeb\x8a\xee\x6c\x6c\x05\x2c\x11\x5f\xe4\x91\xab\xfc\xe3\xf6\xda\xf4\x5b\xf5\x32\x1b\xe8\x7b\xd9\x79\x9e\x65\xa6\xa4\x89\x06\x08\x00\xb5\x4d\x14\x39\xc4\xad\xb5\xcc\xa0\xe9\x3c\x20\xfd\xfb\xc0\x9c\xea\x44\x4a\x29\x71\x29\x62\xa7\x94\x88\xa7\x04\x3e\xfa\x2e\xac\xe2\x46\x4c\xbf\x5c\x47\xcc\x04\x89\x76\x8b\xae\xd0\xb8\x87\x36\xea\x41\x37\x6d\xcf\x12\x39\xf5\xfd\x4a\x7c\x94\xbd\xa4\xa5\x5a\x30\xea\xd7\xf5\xb9\x18\xaa\xc3\x51\xc0\x3e\x04\x74\xe2\x64\xce\x1e\xcb\x3c\x72\xe3\xb0\x0f\x91\x46\x4e\xde\xed\xc8\xfd\x81\x27\xa8\x13\xf0\x0b\xd4\xd3\xad\xd9\xd3\xd7\x41\x4d\x4f\x0e\xc7\x55\x8f\x91\x5a\x3b\x98\xad\x8d\x68\x2d\xa6\xb7\xbb\xf9\xbd\x65\xc1\x77\xca\x01\x1a\x8e\x71\x6c\xce\x13\x06\x4d\x59\x49\x3f\x8b\x79\xf6\xd2\xf9\x01\x8f\x08\xed\x68\x7e\x0e\x84\x83\x25\xbd\x9b\xd4\x12\x18\x9e\x45\xa0\xcc\xf2\xbd\xea\xb9\x18\x29\x7e\xe8\x2b\xe7\x2e\x20\xa8\xc3\xe5\xf0\xe9\x77\x12\xea\xd7\x9e\x20\xd5\x91\x80\x0a\x18\xf2\xce\x76\x60\xa5\x3c\x95\x48\x91\x4a\x26\xa7\x12\xb3\x28\xca\xea\xec\xbf\x64\x6f\xf3\x44\xac\x21\xa9\xbf\x21\xc6\x7a\xd4\x95\xcd\xde\xe2\xfb\xed\xbd\x08\x4f\xd8\xc5\xc4\x4f\x64\xc5\xef\x3c\xd1\x31\xce\x43\x42\xe5\xc6\x98\x0c\xaa\xab\xc5\x51\x2a\x17\x48\x17\x94\x6e\xd2\x4d\xab\xfd\x4c\xd3\x31\x3f\x2e\xef\xff\x3b\x68\x59\x5f\xaf\xe8\x8f\x45\xdc\x26\x46\x52\x29\x0e\x57\x43\x99\x76\xcf\x34\x4c\x27\xe5\x74\x5e\x8a\x0f\xd2\x47\x72\x29\xe4\xdc\xc9\x92\x61\x8d\x11\x01\x02\x74\x42\x84\xd4\xde\xfc\x5e\x2b\x49\x20\x34\xce\x61\x3b\x66\xd0\x5b\x17\x13\xa1\x7e\x2f\xd2\x56\x44\x06\xd9\x1b\xa3\x44\x53\xf7\xd0\x0a\x24\xbf\x63\x3f\xdd\x36\xe3\xc6\xe2\x33\x2b\xd5\x9d\x9b\xa4\xee\x9a\x4a\xa2\x2c\xc5\x38\x31\x8c\x95\x8f\xa7\x6f\x9e\x5b\x5a\x1d\x21\x2d\xe1\xf4\x46\xc2\x4c\xdc\xf8\x32\xc4\xcb\x86\x08\x14\x09\xa1\x34\x83\x2a\xef\x57\x1d\x71\xa1\x1c\x0a\xc3\xc3\x5c\x34\xec\x9f\xab\x47\xd2\x9f\x41\x01\xd1\xdc\xe1\x9b\x28\xee\xf1\xa7\xda\x0c\xfd\x5a\x65\x9d\xd2\x97\x5b\x03\xd6\x98\x56\x90\x7d\x31\x8e\xaa\x25\x90\xf3\xe7\x92\xa5\x88\xee\x03\xe2\x0a\x26\x54\xd9\x3d\xa3\xb4\x82\xa6\x39\x30\xa5\x85\xb3\x00\xca\x39\x30\x6b\x57\x67\xf6\x80\xd3\xe6\xf0\x07\x81\x93\xc4\xad\x88\x2f\xa9\x30\xe1\x81\x36\xca\xb4\x03\xb3\x19\xef\x78\xc4\x73\x0a\x6e\x60\xeb\x71\xd3\xc5\xdb\xaf\x73\x39\xd2\xf2\x38\x89\x9c\xe8\xe3\x5d\x74\xd2\xb0\xc2\xda\xeb\x6c\xde\x8f\x28\xc6\xeb\x0c\x12\xca\x10\x7f\x99\x0c\x0f\xb6\x21\x90\x47\x77\x34\x3e\x60\xff\xba\x92\xb6\xc1\xb9\x20\x0a\x7f\xe0\x26\x44\x42\x73\x22\xe1\xf2\x51\xd2\x09\x38\xe3\xfb\x50\x93\xa4\xc5\x89\xca\xe1\x94\x85\x0b\x81\x46\x40\x42\xda\xe0\x1e\x6c\x23\xb1\x44\xae\xb9\x44\x58\x41\xeb\xee\xd8\x1a\x76\xf6\x0c\x9c\x0c\x1b\xde\xb7\x24\x85\x6d\xcb\xed\x40\x97\x13\xdc\x8c\x96\x83\x29\xbe\x18\x4e\xce\x45\x7c\x6a\x90\x93\xde\x49\xa3\x35\xb8\x6a\xb2\xe7\xaa\xe6\x2e\xf2\x15\x89\xed\xba\xe9\xc3\x75\x40\xcb\xa0\xbd\x9c\x84\x00\x17\xec\x21\x14\x27\xac\x07\x4b\x36\xf3\xee\x9d\x1f\xa1\x20\xfd\x89\xe4\x64\x36\xb6\x38\x0b\x4a\x64\x44\x1c\x9b\xf5\x83\x7d\x51\x59\xc0\xa7\x7d\x37\x32\x63\xa9\xfb\xe6\x79\xdf\x5e\x9f\x80\x98\x13\x03\xff\xdb\xd6\xe6\x7b\x86\xb0\x03\x2e\x7d\xbf\x2e\xb7\x79\x4b\x37\xb5\x07\xf1\x1c\x8e\x85\xb6\x5c\x95\x15\x2e\xbe\x33\xe0\xc5\x2a\x6f\x11\x98\xaa\x05\xf8\x1e\xc7\xcd\xc4\x43\xf3\xd5\xf1\x85\x3d\x10\x4d\x5a\x23\x1e\x68\x71\xaf\x2f\xb3\xd6\x14\x19\x7c\x28\xc1\x2b\xc2\x17\x83\x86\xa2\x0a\x5f\xc6\xdd\x21\x00\xd8\xf5\xf9\x11\x8b\x2a\x41\x4b\xa5\xa0\xfe\x1e\x24\x94\x4f\xd4\x79\x17\x94\x56\x7c\xb6\x9e\x50\x6b\xb6\xba\x7f\xcc\xea\xdb\x73\xb1\x15\x44\xb3\xca\x57\x12\x52\x5c\x6b\x39\xc7\xcd\xa0\x95\x70\xba\xfa\x75\x6a\x75\x59\x0c\x00\xa6\x15\xc4\x42\x50\xe5\x6e\xe0\x45\x19\xe9\x13\xe8\xba\x14\x2d\x01\xb5\x72\xd6\x60\xc6\xa0\x07\x1c\x2b\x6f\xca\x15\xad\x4a\xbf\xc3\xbf\x25\xc4\x94\xfb\x4f\x6e\x02\xf3\x6d\x49\x5b\x53\x37\x6d\x88\x02\x89\xd5\x53\x84\x4f\x44\x64\xcc\xe2\x45\x79\x6d\xea\x6b\xff\xdb\x87\xd2\x72\x3d\x77\x93\xa3\x0a\x5a\x63\x98\xbc\x60\xbc\xc2\x3f\xee\xa7\x6b\x24\x5f\x33\x8d\x7c\x4f\x86\x83\x73\xfc\xb2\xac\xcb\x2e\x06\x2d\x78\x66\x0e\x40\xe1\x6a\x00\x8b\x9b\x29\x10\x4d\xbb\x41\x14\x1e\xad\x24\xd2\x94\xa9\x23\xe9\x70\xa3\x22\x07\xd2\xc2\x6c\xf2\xbe\x72\x66\x90\x85\x0b\x0a\x51\x03\x88\x0b\x3f\xa7\xf9\xd0\xc5\x70\x01\xbd\xb8\xb8\xc5\xce\x9e\xeb\x87\x2a\xfb\x08\x3e\xe7\x22\x88\x7e\x7c\xc4\x26\x30\xb4\xfd\x7a\x93\xc0\x84\xa1\xfc\x76\xc3\xc0\xa0\x27\xbb\x17\xcb\x80\xef\x70\xca\x32\x50\x1b\xa8\x0a\xfb\x6e\x07\x3b\x1f\xa1\x91\x55\x85\x9d\x0f\x28\xc6\x2a\xb7\x72\xd9\xc2\x3f\xc7\x47\xcd\x5b\x8e\x07\x8e\xcb\x8e\x1e\x48\xa6\xb9\x20\xb9\xc9\xa9\x64\x97\xe6\x55\xd5\x9b\x7b\x5f\x2a\xdc\xf4\x50\xaa\xb3\x95\xeb\x7a\xb8\x3f\xf8\xee\x82\xae\xa4\xca\x9c\x63\xe2\x96\xc4\x64\x43\x40\x5f\x38\x39\x5d\x6e\xf2\xa3\xf5\x22\x66\x93\xa9\x3d\xe3\x68\x08\xb4\xfb\xe4\xe9\xf3\xb7\x70\x0c\xf1\x0e\x83\x59\xd5\x9c\x33\xd7\x29\x21\x4f\x1c\xde\xab\x11\x7e\xae\x7f\x67\x24\x86\x7a\xbe\x12\xbf\xfd\x17\xda\x08\xe1\xc7\xa9\xa3\xfe\x49\x36\x36\x7d\x6b\xc4\x9b\xd3\xc7\xbe\x6e\x8b\x9a\xed\xb1\x42\x1d\x68\xa7\x98\x6a\x3c\x95\xe3\x1f\x91\x0d\x8e\xba\x23\x4e\x7f\xc3\xe1\x29\x8e\xbb\x3b\x4f\x9d\xc3\xaf\x32\xee\xa4\x46\x3c\x64\x05\x1b\x07\xb1\x35\xcc\x58\x81\x27\xe8\xf8\xea\x3a\x5c\x2d\xab\xb2\x3e\xa7\x0b\xd5\x81\xce\x7f\xf3\xf7\xbc\x94\x25\xf5\xd5\x63\xe6\x11\xdf\x8c\x26\xfb\xf7\xff\xf1\xbf\x66\x0f\x65\x29\x67\x5d\xbb\xa5\xbf\xc1\x20\x47\x7d\xc2\x6d\x0f\x8e\xac\xe8\x00\x2e\xe1\x3f\x5c\xb2\xd1\x05\xea\x76\x1c\xf8\xf3\x78\xf4\x92\x10\x5b\x87\xcc\x5e\x7f\x8d\xc6\xd8\x43\x87\x6a\x43\x85\x83\x84\x21\x7c\x8d\x3a\xf5\x57\xa2\x73\xd8\x96\xc4\x95\xd2\x26\xdf\x1a\x9f\xcf\x8d\xa1\x22\xf8\x00\xdc\xfe\x25\xbb\xe9\xbc\x0a\x9c\xde\xca\x34\x2b\xe7\xd9\x2e\x85\x0f\xa2\x2f\x3d\x02\x12\x5a\x67\x0c\xd4\xb8\xcd\x9d\x68\x82\xe3\x12\x47\xfb\x99\xec\xf3\xe1\x53\xaa\xfc\xb5\x73\x5e\x8d\x68\xf3\x2f\x3d\x80\xb4\x45\xde\x80\xc5\xd7\x74\x83\xe6\x4e\x63\xe2\x40\xd0\xed\x4a\x1b\x5b\xa4\xa3\x7d\x3e\xaf\xc4\xd0\x16\xb9\xca\x33\x5d\x5f\x4b\x18\x8d\xcf\x16\x12\xf9\xc1\xa6\xe4\xb4\x83\x80\xed\x82\x6e\xae\x4d\x59\x19\xd8\xe4\xe0\xbd\x06\x7c\x95\x51\x39\x2c\x8c\xad\xd6\xd2\x8d\x43\x65\x76\xcf\x88\xba\xe3\x60\x41\x16\xd6\x92\xee\x78\x42\xb4\x02\x8e\x1a\x67\x6e\x76\x70\x85\x4b\xe8\xae\xe8\xff\xe0\xb4\xe8\x39\xf0\x4b\xc4\x6b\xb4\x1f\x00\x80\x77\xef\x28\x69\x76\x14\xb9\x6b\x8d\x21\x3a\xdd\xf6\xc4\x32\xb6\xae\x94\x23\xe2\xbb\x7c\x6b\xb5\x1a\x21\xc3\xff\x07\xb1\xd5\xba\x0a\x26\x94\xc0\xf4\x4d\x15\xa5\x74\x90\xe5\x02\x19\x31\x24\x13\xc6\xec\xb4\x96\x60\x36\xde\x8f\x8a\xd8\x31\x2a\x78\x81\x7f\x40\x0c\x2a\xe2\xb7\x68\x03\x38\x58\xa2\xd2\xd0\x4d\xa4\x6b\xa1\x45\x10\x3d\x5f\x3c\x94\x7f\x01\x82\xca\xe4\xc4\x57\x40\x0a\x8c\x14\x42\x6a\x3a\x65\x0b\x5d\x9b\x5f\x2e\xbe\x69\x76\xfa\x8b\x76\x9c\x33\x66\x7c\xc7\xc2\xd6\x46\xbf\x72\x0c\x06\x2a\x9e\xd6\x9c\xdb\x26\x0b\x0d\xe8\x8c\x20\xd3\x05\x9d\xe8\x37\xee\x2f\x36\x99\xc8\x0c\xe6\xa3\x19\xb9\x02\xcd\xd7\xf1\x08\x81\x7d\x16\x49\x3b\xb2\x51\x95\x0d\x04\xe6\x27\xa5\x68\xd9\xdd\x47\x5c\x24\x4d\xcb\x2e\x23\x08\x37\x73\x9f\xe9\x2e\xb2\xb0\x3f\xbd\x72\xea\xff\x50\x54\xb0\xc3\x73\xde\xf5\xfb\xf0\x4d\x42\x64\x6e\xfe\xb5\x12\xa3\x9e\x7e\x25\x2c\x36\x62\x27\x6b\xa3\xf0\x12\x24\xbf\x11\xb9\x8f\x77\x29\xfe\x3e\x8f\xf7\xc5\x26\x25\x35\x78\x1c\xfa\x2a\xf6\x2c\xdd\xb8\xa8\x7c\x4d\x1b\xd3\x2e\x93\xf6\xb1\x3e\x20\xaa\xe9\x77\x3b\xde\xec\xe1\x58\xa1\x12\x8f\x77\xac\xa6\x8c\x3a\xd9\xe3\x91\xd1\x9b\x03\x09\x60\xa1\xc1\x6b\xe0\x90\xc9\x52\xb4\x4b\x06\x68\x2c\x3c\xef\x7d\x83\xa7\xec\xc5\xd3\xc0\xb6\x73\x4b\xb3\xdc\x72\x86\x20\xb3\xf8\xa1\x0f\xb6\xe9\x89\x99\x4f\xd5\x3b\x36\x73\x68\xb6\x5c\x75\x06\xca\x64\xdf\x42\xc0\xe4\x00\xc6\x8c\x59\xe8\x48\xf7\x51\x0c\x72\xa3\x8d\x94\xd2\xe5\xa1\xca\xd7\x46\x23\xaf\xb8\x0e\xf3\x47\x9c\x87\x26\x19\x48\x3b\xe3\x2a\x13\xc3\x31\xb4\xbb\x7c\xb5\xb8\x5f\x20\x58\x30\x2a\x61\xc0\xba\xa2\x6d\x00\xaa\xaf\x40\xa7\x11\x3e\xda\x51\xff\x93\x45\xc4\xce\xe1\x1a\x87\xbd\x30\x60\x66\xe6\x18\xdb\x61\x93\xdb\x71\x6f\x58\x69\xd8\x77\xcc\x31\xb7\x93\x38\xa9\x3d\xdc\xbe\xfd\xa1\x12\x92\xb5\xbc\x63\x94\xdb\x7a\x60\xf6\xf2\x2d\x98\xca\xf1\xf7\x39\xe2\xfd\x94\x1a\x73\xa2\x0d\xa7\xd5\x9f\xae\x6c\x35\xa3\x15\xb1\x18\x57\x4d\x4f\xf7\x63\xcb\xba\x8f\x4b\xdc\x93\xa3\xe5\x71\x13\xd9\xff\x62\xb9\xba\xe2\x16\x7a\x41\x76\x1a\xe9\x3e\x39\xd7\x39\x14\x5f\xc4\x08\x23\x32\x58\xda\x60\x99\x35\x6b\x63\x70\x15\xa5\x2d\x2c\xe7\xb6\xa0\xff\x29\x1f\x30\x2e\x9d\x23\xdd\x97\xd5\x60\xb6\x6e\xb4\x32\xae\x02\x14\xa6\x2a\x4c\x1a\x8f\xd5\x69\x0d\x49\x60\x9d\xd8\xd6\xbd\x5a\x39\xb6\x9a\x4f\x0f\x4e\x37\x91\x6b\x74\xba\x47\x9e\xa3\x7a\xcb\x91\x4a\xc2\x97\xbe\xb3\xfd\xbe\xb1\xdd\x9a\x43\x0b\x3a\xb4\xdf\x9b\x92\x5b\x4b\xb4\x41\x77\xfb\xb0\x51\xbb\x4b\x53\x97\xdb\xa3\x2d\x71\x00\x79\x93\x16\xf7\x7f\xfc\xf4\x27\x64\x50\xc1\xb5\x59\x1b\xd9\xa7\x60\x12\xfa\xf1\x2f\x3f\x11\x4f\x77\xff\xc7\xcf\x7e\xe2\x74\x4b\xe3\xf6\xcb\x4d\x7e\x6e\x16\x72\xeb\xa2\xb9\x74\xc7\x86\x43\xb4\xf5\x0d\x0e\xad\xb9\x28\x9b\xde\x22\x0b\xdb\xce\x40\x71\x96\x69\x7e\x36\x4f\x63\x7e\xa5\x1d\xd3\xb0\xae\x41\x99\x90\x0b\xc9\xc0\x31\xa6\x16\x85\x16\x3d\x9d\xa0\x16\x75\xbf\x5f\x2a\x50\x2c\x28\xca\xd7\xf2\x77\xde\x86\xce\xb5\x18\xc2\x5b\xb7\xf8\x39\x02\x16\x14\xf4\x04\x89\xb2\x00\x1c\x68\x55\x8e\xcb\xfd\x07\xf9\xf5\x25\x2f\x10\x50\xf9\x39\x0c\xd7\x78\x83\x51\xc2\x31\xaf\x4a\x3b\x11\xe2\x2e\x36\xa5\xf9\x80\xf6\x49\xa6\xae\x33\x6f\x53\x1d\x14\xeb\x74\x47\xd5\x44\xd9\xe6\x67\x1f\xb5\x6b\x0d\xc3\x4f\x1a\x7c\xcf\x2c\x9f\xdb\xaf\x51\xa5\xb4\xf7\x41\xe5\xe3\x43\x28\xd1\x77\xe8\xf7\xf5\x64\x1d\xd9\x2b\x00\x39\xa2\xeb\x7f\x07\x90\x65\xaa\xda\xd5\x65\x32\xc5\xbf\x67\xcf\x84\x2b\x22\x4e\x7c\xc3\x1d\xb6\xc8\xbc\x61\xea\x6b\xc6\x00\xd5\x56\xc9\xad\x49\x04\x38\x13\x23\xb0\xb0\x70\x7f\xeb\x40\x87\x86\x93\x19\x3a\x91\x21\x90\x42\x0e\xe1\x96\x88\x98\x80\xf2\x03\x0d\xa2\x7e\x76\x01\x9b\xc4\x33\x93\xa8\x8a\x1b\x1f\x9d\xd6\x04\xcb\x28\x64\x31\xae\x5b\xd6\x4b\x17\x5a\xc3\x02\x92\xd8\xf0\xad\x98\x7c\x10\x96\xa6\x6e\xb7\xe5\x75\x4f\x1c\x3f\xdb\x80\x9e\xe5\xa2\xe4\x8c\x22\x72\x83\xad\xef\xab\xd4\x5e\xec\x92\x3e\xb0\x5c\x1a\xa3\x46\x42\x2d\x4c\x51\x22\x1a\x20\x6f\x57\x9a\x11\xcf\x81\x7e\xe4\x65\xe6\xa6\x9e\x5f\x20\x3b\xa3\x86\xc0\xfb\xcf\x72\xb3\xcb\x69\x97\x0b\x5d\x74\xa8\x49\xf1\xba\xa9\x1a\x65\x4e\xb2\x27\x18\x72\x54\x0e\x2d\x32\xd1\x82\x01\x37\x2b\xa5\xe1\xa8\x58\xcf\x9c\x98\xcc\xc9\x2d\x49\xd5\x63\xab\x92\x52\x75\xcd\x0c\xda\xea\xa4\x54\xe3\xc2\x64\x96\x5e\x3b\x3a\xd5\x05\x0c\x1c\x52\x4d\xba\x3a\x5e\x6d\xc2\x9a\x21\x89\x9d\x52\xb6\x9b\x09\x12\x08\x74\xce\x26\xa5\xc8\x1e\x58\xeb\x3a\x6f\x33\x58\x4c\x8f\xec\x34\x1a\x32\xd1\xdb\x2d\xb8\x2a\xfd\xe1\xdc\x1d\x88\x0e\x2f\xc5\x4f\xcb\x2e\x3c\x14\x64\x52\xdb\x4a\x62\x4c\x8e\x54\x57\xb3\x9c\xaf\x97\x5d\x5f\x9a\x32\xf3\x52\x29\x28\x95\x89\x65\xf3\x3a\x8b\xf3\x2e\x86\x64\x4f\xd1\xa8\xf3\xe1\x50\x2b\x12\x29\x17\x0f\x72\x6b\x46\x73\x90\x7f\x17\x13\xd3\xd4\x2b\x59\x85\xe9\x27\xfc\x2b\x73\x32\xb5\x54\xa1\x4b\xa2\x35\xb6\xaf\xe8\x46\x12\x75\xc5\x63\x68\x25\xeb\x52\xbd\x96\xd4\xeb\x6f\x1e\xaa\x77\x3b\x70\x46\xac\xe5\x91\x71\x1f\x47\x1a\x6a\xab\xf1\xa5\x6e\x22\x6c\x69\xc3\xa4\x25\xf5\xd1\x33\x93\x3b\x2d\x6b\x26\x55\x9c\xa5\x56\x7a\x87\xdf\x7f\x9c\x9f\x72\xf1\x33\x75\x3e\xf2\x92\x10\xbd\xc4\x50\x5e\x27\x98\x97\x91\xd5\x8c\xc9\x08\x68\x01\x5c\xdb\x11\xcd\x10\xb1\x11\x44\x13\x3f\xe1\x01\x3f\x01\x2f\x51\x28\x7d\xfc\x07\xfe\xa1\x54\x52\x41\x2c\x72\x4a\xb2\x59\x91\xfc\x20\x95\x98\x02\x08\x06\xa8\x59\x86\xf9\x8e\xc2\xc9\xd6\xc2\xc4\x20\x26\xd6\xd1\x61\xfe\x5b\xb2\x66\xb9\xef\x9f\x85\xef\xd7\xbd\xcd\x41\xba\x34\xa3\x87\x1b\x66\x0f\x75\xb1\x72\x17\x32\xda\x9f\x1a\xe5\xfe\x8f\xff\xff\x4f\xd6\x8f\xc5\xce\x0b\x3b\xb0\x64\xba\xa6\x7c\x05\xde\x01\x24\x59\x1c\x92\xbf\x8e\x7e\xa4\x95\x06\xaa\x86\x50\x04\x4d\x85\x5d\x38\x95\x7d\xe4\x42\x2c\x55\xf4\x8e\x27\x44\xe2\x95\x69\x48\x92\xc4\x30\x8c\xf6\x36\xbd\x58\x43\xd8\xf3\x4b\x34\x9d\xbd\x3e\x18\x51\x5e\xe3\x56\x64\x5f\x9f\x5d\x1b\x9d\x20\x81\x1c\xc4\x9c\xc9\xb5\x02\xe9\xb4\x8a\xba\x58\xf0\xf0\x6e\xbf\xc7\xf4\x63\x08\xb4\x0f\x5c\x4f\xc4\x65\xe7\x74\xd8\xd8\x4c\x0c\x03\x0f\xa7\x87\xf1\x69\xe5\x86\x6b\x62\x23\x5a\x41\x17\xfc\x39\xcc\x1c\x9b\x6d\x2b\x39\xfa\x02\xc1\x94\x3d\x85\x52\x71\x96\xb8\x1d\x06\xd2\x90\xd7\x4b\xb6\x9c\xf0\xf4\xbd\x2d\x51\x9d\x47\xc5\xe0\x4a\xc5\x33\x86\x52\x16\x43\x69\x73\x0c\xd0\x9c\xf3\x69\x08\x40\x1a\x87\xed\x11\x83\xa1\x1e\xab\x86\xfd\xfc\xf8\x48\xdc\x9d\x83\x93\x77\x47\x20\x9a\x20\x06\xce\x4d\x55\x9e\x77\x26\x3a\xb9\xf4\x9f\xc3\x67\x70\xab\xb7\xcc\x20\x49\x35\xaa\x9e\xcb\x9a\x2b\x22\xd2\x47\xd6\x5d\xd3\x54\xea\xc5\x5d\xfb\x11\x9d\x2d\x75\x88\x23\x29\xed\x49\xb0\x60\x74\x28\x63\x85\x60\xa4\xad\x4a\xe4\xed\xa8\xc6\x84\x8e\x21\x2a\x3d\xae\x67\x18\x56\x2a\x62\xc1\x82\x63\xcc\xe2\x69\x34\xcb\xa2\xa7\xcd\x01\xcd\x62\x29\xfd\xc9\xcd\x6f\x55\x25\xa9\x7f\x6d\x21\xca\xb8\xc1\x9c\x9c\x08\x33\x1c\x27\x95\x5f\xd2\xa5\xd2\x05\xbb\xda\x11\x25\x8f\xd8\xc7\x78\xdd\xcc\x7d\x69\x6c\x88\xa4\xdd\x2a\x9c\x1a\xcf\xce\xd3\x91\x84\xbc\x26\xfa\xb0\x40\x5d\xa3\x8a\xc2\x64\xbd\x25\xc6\x26\x51\xc4\xce\x27\x6c\x9f\x71\xa9\x83\xc5\x08\x0c\xd9\x47\x2e\x95\xe2\xc7\x83\xa5\x13\x03\x45\x1d\xb6\x1a\x6e\x95\x14\xfa\xfc\x4f\xda\xed\x52\x8e\xe4\x42\x72\x17\xf2\xc9\x1d\x0d\x34\x48\xe2\x34\xcf\xe8\xcc\x48\xd8\x35\x31\x46\xda\xf0\xc3\xbf\x12\x3b\x33\xdb\xef\x67\x45\xf1\xa1\xc6\x5f\x4f\x40\xc9\x73\x35\x31\xb4\x8e\xb8\xf6\x79\xb7\x98\xa4\x1f\xe6\x10\xe3\xd6\xab\x88\x5b\x1c\xd4\x8b\xb6\xf8\x41\x38\x5b\x38\x68\x84\x10\x6d\x6a\xd3\x08\xec\x4b\xac\x69\x8c\x48\xb4\x26\x5d\x72\x66\x4a\xf6\x0f\x2b\xdb\x76\xb4\xce\x11\xff\x1d\x15\x2a\x8b\x1a\x4f\xdf\xc7\x01\x8c\xe7\x2e\x90\x8a\x79\x38\xec\x4e\xd4\xd8\x46\xa0\xab\x07\xcc\xa1\xcf\xde\xfa\xc1\x00\xd7\x94\xff\x8d\xe7\x10\xfc\x3a\x26\x6a\x1e\x77\xe8\x49\x66\x72\xc4\x91\x27\xf5\x34\x2f\x1d\x87\x2c\xe7\x28\xf6\xe7\xf9\x7e\xd2\xfd\x63\x6a\x3e\x53\x28\x74\x9c\x31\x3e\x96\x96\xdc\x7d\x9f\xcb\x19\xb2\x9a\x87\x34\x29\x8a\x72\x55\x11\xc4\xdc\xcd\x2b\xe8\x16\x55\xdb\x35\xcd\xb9\x45\xfc\x13\xff\x11\x15\x6c\xcb\x4e\xca\x90\x79\xf7\xd9\xa0\x10\x11\x59\xeb\x90\xfe\xfc\x29\x2e\x4e\x73\x64\x8e\x05\xf8\xf3\x76\x79\x2d\x5a\x71\x81\x0e\x7e\x44\x55\x38\x06\xeb\x75\x48\x12\x17\xc2\xb1\x7c\x15\x8d\x68\x99\x86\x48\x66\x83\x68\x18\x00\x20\xf1\x1e\xb0\x86\xbd\x23\x4c\xca\xb9\x9c\x14\x79\xcb\x5e\x27\x48\xce\x89\x28\x34\xfe\x88\xa0\x29\x49\x1b\x9e\x78\x84\xac\x0c\xcd\x55\x42\xde\xfd\x88\x1d\xb1\xd5\x76\xe3\xc5\xf4\x38\xfa\x74\xa2\x96\xe0\x66\x64\xeb\x2b\x86\xc6\x46\x0c\x2a\xb2\x8a\x04\x72\x84\xd8\xd3\x28\xd7\x4e\x12\x2e\xab\x51\xd2\x24\xa4\x49\xe2\xb7\x6f\x38\xad\xa1\x24\x60\x8b\xa6\xc0\xc9\xf6\x39\xd2\x1d\x9c\x97\x15\xa7\x09\x8e\x2c\x6e\xd5\x2f\x1f\xf8\xdf\xdd\xfc\x81\x04\xbc\x48\x9c\x1b\x27\xe3\x1a\xb8\x87\xc0\xa5\xda\xc9\x1a\xe2\x54\x1d\x8f\xa4\x52\x6f\xd4\x26\xf2\x65\x4e\x2b\x09\x3c\x24\xeb\xd0\x10\x12\x21\xac\xb7\x84\xef\xa0\x53\xa3\xa9\xde\xec\x7b\xb3\x75\x59\x5b\x7c\x08\x36\x09\x7f\x2b\xb3\xeb\x3b\x5a\xdc\xd4\x16\x71\x42\x59\x3a\x89\xcb\x4f\x17\xb3\x8c\x33\x5d\xb5\x1c\xed\x5e\xab\x93\x23\x28\x64\xa5\x81\xdf\x92\xe3\xd8\x81\x26\x0e\x83\x27\x78\x17\xe5\x45\x59\x70\xf8\x51\x9b\x44\xce\xdf\x3a\xe8\x5f\x8e\x0c\x4a\x33\x66\x47\xa6\xdb\xc6\x1c\xee\x38\x5f\x6e\x05\xb6\x5c\x82\xb2\x35\x15\x90\xd4\x5f\x1d\x9b\x09\x08\x9b\x2a\x4e\x04\x60\x04\x52\xbe\x2b\x42\x52\xa6\x41\x9c\x4d\x19\x58\xfe\xc0\x5c\x5e\xf7\x71\x36\x99\xcf\xc7\x7b\x9a\x80\x59\xc2\xbb\x7d\xe3\xbf\xd3\x13\x70\x8c\x5e\x29\x5c\x93\x09\x7a\xca\x8e\x23\x9d\xdb\x38\x3e\x28\xcd\x28\x8e\x0d\x5f\x49\x58\x4b\x29\xee\xa9\x43\xef\xc5\x13\xda\xed\xf3\xaa\xb7\xe5\x85\x78\x76\xb2\x68\x71\xa2\xb7\xc1\x49\xa4\x49\xe6\xfd\x70\x5e\x9a\x92\x58\x94\xc5\x08\x1f\xcf\x79\xcb\x0a\xd8\xe7\x04\xc0\xf2\xe7\x40\xf6\x3c\x8e\x6a\x18\x98\xf3\x4f\x5c\x2a\x5e\x96\x33\x39\x49\x82\x53\x0c\xc5\x0e\x74\x48\x84\xb0\x13\x80\xbe\x6b\xfc\xbf\x8c\xc7\x3f\xb0\x6f\xdf\x78\xe8\x02\x7b\xa8\xe3\x0b\x15\x20\xa6\x1f\xe9\x10\xa2\x91\x23\x57\xed\x5b\x87\xfd\x4c\x0e\x7f\xdc\xd2\xe5\x17\xd3\x4c\x77\x99\x65\xb7\x67\x1d\x96\xb9\x38\x8d\xfb\x2f\x86\xce\x7c\x92\x60\x2f\x21\xa5\x71\xbc\x32\xc2\xa0\x82\x7b\xf6\xfc\xf8\x45\x13\x25\x7f\xf2\x2e\x60\xee\xb6\x1d\x46\x4c\x8e\x8f\x99\x68\x6d\x45\x2e\x09\xba\x5b\x5f\x6f\x9f\x9f\x93\xcc\xe1\x6e\x8d\x77\x5c\x17\xe2\x8b\xcd\x12\x72\xe2\x02\x36\xe2\x3d\xa3\x7e\xe6\x09\x43\x10\xbb\xcf\x46\x8a\x48\x5f\x03\xb1\x14\x81\x6d\x68\x5a\xa4\xc1\x53\xfe\xb4\x1d\xc4\xf0\x1c\x6b\x12\x18\x9c\x61\x53\x0d\xce\x88\xda\xb6\x66\xdf\x70\xce\xd3\x77\x34\x77\xf8\x13\x6f\x12\x72\x9f\x94\x9c\xa1\x62\x29\xa9\x11\x17\x49\xda\x12\x71\xf1\x8a\x12\xeb\xec\x5d\xe6\x0a\xef\x82\xac\xd6\xb7\xca\x66\xc7\xa6\x3a\x81\x1c\x58\xee\xa5\xf0\x4a\x8e\x67\x3a\x02\x18\xe6\x9d\xdc\x95\x26\xcc\x95\x3a\xf2\x83\x98\xf2\x0b\x27\x27\x99\xf9\xb5\xe3\xb0\x0a\x4d\x43\x0e\x72\x5a\x32\xd5\x8d\x6f\x1e\xd3\x81\x70\x81\xcc\x22\x01\x09\x9c\x51\x35\x6b\x49\x82\xe0\x08\x6b\x95\xd4\x95\xfa\x8a\x00\x47\xba\x14\xce\xfd\xae\xce\xde\xbc\x3e\x7b\xeb\x65\xe9\x5c\x8f\x59\xee\x93\xc6\xd4\xf2\x5c\x40\xf6\xb8\x65\x0e\x4d\x9c\xb3\x4a\x98\x78\x20\x6d\xb4\xb7\xfb\x78\xf9\x15\xf2\x63\x2c\x1a\x0f\xe6\x41\xa1\x00\x0b\xea\x6b\x07\xb9\x38\x58\xe9\x58\xe5\xe3\x1c\xbc\x1f\xf4\xbd\xb8\x77\xd1\xec\x90\xc8\xe2\xf8\x2d\xc4\x47\x5e\x88\xb7\xcf\xbb\x59\xf9\xe3\xd3\x73\x08\xeb\xd6\x74\x8b\x3b\xfe\xb8\x9b\xb9\x53\x74\x9c\xd6\x9b\x96\x9f\xa2\x9a\xa8\x61\x89\x7f\xb5\xc4\x42\xe1\x46\xd4\xec\xde\x13\xf5\x44\x54\x64\x1f\xc2\x8d\xe8\x5d\x26\x2a\x1d\x24\x61\xdb\x02\x09\xda\x41\xe5\xa6\xea\xac\x9a\xe2\xca\x47\xb7\x8d\xa4\x01\x7d\x18\xc7\x89\x04\x71\xda\x7a\xfa\xe8\xb2\xdd\x08\xbb\xb8\x35\x22\x03\xa7\xe1\xd4\xc1\xd9\x59\xd2\x11\x86\x3c\xd2\xf4\x49\x3a\x75\xb9\x7e\x38\x3e\xa9\xe7\x80\xa6\x20\x28\x33\x17\x62\xb0\xc3\xd1\x3d\x2f\x0c\xca\x75\xbf\x62\xaf\xa9\xf9\x78\xe2\x6c\x9c\x89\x38\x4c\x10\x08\x0c\x46\x63\x71\x66\x41\xbd\x48\x25\x84\xa1\xf5\x49\xea\x4b\x89\x4c\x5c\xb9\x44\x2f\x2f\x72\x28\xe5\x0b\x6f\xab\x55\x57\x3a\x55\x6e\x71\x87\x9c\x58\x21\xe4\x82\x9f\x9a\x0b\x3b\xfe\xa3\xb2\xba\xfc\x8f\x2a\x78\x9b\x31\xea\x8c\xf6\x42\x6f\x28\xad\xcc\xe1\xef\xce\xf7\x9a\xa7\x30\x4d\xaf\xa2\x27\x8d\x94\x38\x08\x5d\x10\xc5\x34\xa8\x83\xea\xa5\x63\x22\x81\xed\x92\x0d\xa0\xad\xd8\xb1\xff\x21\x1c\x77\xc1\x45\x3d\x32\x1d\x02\xd9\x35\x4a\x96\x08\x78\xed\x92\x3c\x3c\xa6\xcd\xdf\xb2\xf9\x22\xde\x79\x7e\x07\x21\x97\x30\x7e\xe7\x27\x6b\x85\x89\xda\xa8\xfa\xa6\x0f\x17\xbe\x66\x9e\xfd\xe8\xaf\x67\xaf\x5f\x9d\xe8\x1c\x7f\x9d\x5d\x5e\x5e\xce\x50\x79\xd6\xb7\x84\xe0\xf8\x58\xe8\xa4\x4f\xf0\x60\xc5\x97\xa6\x5b\x7f\xf1\x09\xfd\xfb\xf1\x9c\xe4\x7b\xa2\x5f\x29\x09\xd8\x48\xe6\x3c\x0e\x3b\xda\xff\x19\x82\xa6\xc7\x88\x9f\x1e\x49\x72\x20\xc6\x77\x2d\x36\x50\x3c\x6f\x64\x03\xc5\xab\x3b\x88\xbc\x66\xdd\xd2\xd8\x67\xfc\x4f\xfc\xbd\xca\xd7\xe7\xd3\x39\x40\x46\xb5\x4a\x1a\x86\x27\xf1\x9c\xfe\xc8\xd2\x19\x48\x0d\xb1\x7d\xaa\xd5\xd3\x97\x99\x0b\x53\xfb\xc3\xc0\xfe\xca\x61\xcb\x94\xc5\x72\x16\x1c\x47\xd6\x48\x26\x16\x75\xed\x57\xa3\x7e\xd8\x7b\xb5\xa9\xab\x2b\x22\x2b\xf2\x16\x8e\x6c\x17\xbe\x3b\x94\x72\xfd\xcf\x47\xad\x39\xb5\x2a\xfd\xd9\x5e\xb1\x55\x8b\x96\xb2\x53\xc7\x63\xe3\x65\x03\xe6\xdf\xe3\x10\x96\x41\x1f\x92\xf3\x63\x81\xc3\x49\xa8\xc9\xb1\x23\x2e\xae\x41\xb8\xfe\x32\x74\x3a\xd1\x5a\x54\xa0\x8f\x83\xda\x73\xb2\x82\x46\x79\xb0\xe5\xec\x93\xb7\xf9\xd6\xab\xf8\x26\x01\xb2\x78\x43\xff\x9b\x06\x95\xa3\xa0\x19\x7e\x79\x19\x3f\x79\x0c\x2f\x9c\x5f\x4e\x36\x2c\x29\x51\x46\x9f\x9d\x02\xde\x01\xb7\xd0\x13\xa9\x34\x39\x7e\x38\xc4\x09\x94\x22\xf9\x44\x9b\x2a\x82\x75\xc7\x94\x6f\xc8\xe8\x30\xd5\x18\xde\x6f\x47\x78\x39\xa5\x49\x43\xde\x68\x90\x41\x65\x58\x7d\x72\x84\xc9\x64\x24\x43\xc1\x61\x38\xd0\x84\x56\x41\xbc\xb5\x70\x53\x97\x48\xe4\x66\xec\x42\x13\xd9\xc1\x55\x6e\x42\x4f\xc5\x93\xe1\x03\xcb\x74\xfc\x6d\x72\x5c\x01\x0f\x39\x52\x81\x96\x3e\xe1\x44\x3a\x89\xfb\xc3\x19\xaa\x80\x5c\x70\xa0\xca\x36\x48\xc9\x63\x86\x8d\x01\x39\x1f\x9d\xd8\x28\x30\x73\x54\x36\x78\x13\x6a\x78\xd6\x77\x44\x68\xe1\x78\x9b\xd7\x79\x95\x40\xec\x50\x35\x57\x92\x2d\xe1\x11\xff\x3d\xfb\x9a\xfe\x1e\x2c\x2e\xd4\x8a\x2a\x1d\xe1\x6d\xd9\xb9\x3e\xea\x54\xf3\x4b\x07\x57\xa6\x4c\xbb\x18\xa6\x00\x08\x89\x1c\x82\x78\x13\xdb\x15\x26\xe6\x3c\x0a\xb8\xf7\x75\xd2\x1c\x02\xe3\x11\x27\x12\x06\xc4\x4d\xd3\xac\x01\xe3\xe6\x5e\x53\xb0\xbf\x25\x55\x40\x02\xc2\x38\x0d\x00\xbf\x7f\x37\xea\xf3\xfd\xf2\x00\x4c\x41\xc1\xf3\xce\xd1\xe6\x4c\x6a\xd2\x46\x2d\x04\x57\x5f\x8d\x75\x03\xca\x46\x47\x28\xe1\x28\x47\xc4\x46\x87\x60\xd6\x60\xb1\x8c\x90\x38\x0a\xd9\x75\xd9\x87\x24\x72\x27\xf5\x18\x99\x0e\x8f\xbc\x75\xd6\x01\x90\x7e\xbd\xef\x72\x23\x29\x68\x9e\xf3\x55\xdb\x5c\x5a\x84\xc8\xf7\xed\xda\x2c\xf8\x1d\x23\xce\x85\x5d\x78\x87\xfb\x5a\x6b\xc2\x73\x82\xf0\xea\xdb\xd6\x1e\xc4\xd7\x86\xbf\x8a\x35\x5d\x8d\xe9\xfa\x8d\x8d\xca\xe9\x8b\x28\xe2\xa8\xf1\x88\x4a\x67\x62\x62\x4e\x1c\x35\xb8\x95\xdd\x35\x97\x4b\xfc\xc5\x61\xff\x88\x6d\xa7\xca\xc4\x58\x76\x40\xa3\x73\x3c\xca\x63\xc4\xc0\x25\xb5\x51\x47\xf6\xca\x5d\x7b\x19\x5b\x22\xd5\x66\xef\xd9\xe6\xa0\x23\x63\x97\x33\xfd\x41\x55\x25\x7f\xc1\x0f\xcc\xfb\x87\x4a\x71\x40\x28\xf7\xa7\x10\x1b\x57\x75\x00\x24\x0a\xf3\xe0\xf9\x2b\xfd\xc5\x11\x10\xf2\xfa\x29\x27\xb4\x0a\xb3\xf6\x41\x16\x73\x1f\x6c\xf1\x8d\xfe\x11\x8a\x24\x3e\x86\xff\xf6\x0f\xc7\xf2\xaf\x50\xa5\x68\xf3\x4d\x87\x90\x6d\xda\xde\x4d\xf8\x7c\x20\xa1\x53\x1b\xbe\x69\xcd\x6c\xd4\x8c\xe0\x85\x7d\x78\x5c\x17\x17\xee\x91\x5f\x57\xc4\x56\xb6\xd8\xb2\xe6\x0a\x72\x08\x49\x8b\x00\x8d\x00\x25\x67\xf1\x26\x4a\x7d\x9f\x9f\xe0\xf3\x67\x7f\x3c\x30\x63\x96\xe4\x61\x67\xf4\x42\xb4\x5d\x28\xee\xf2\xad\x86\xdd\xe7\x5b\x1f\xd1\xeb\x8a\x98\xdd\x84\x37\x4c\x5a\x7f\x14\xd1\xc9\x7b\x69\x11\x48\xa3\x8a\xfe\xc8\x73\x89\xbf\x72\x2c\x56\x1a\xdb\xa2\xc9\x89\x93\x2d\x51\x0d\xaf\xae\x61\xa6\x54\xd6\x55\x72\x4c\xea\x25\x09\x12\xcb\xbd\x4f\xc3\xa2\x9e\x8c\xe1\x52\x43\x8c\x55\xd1\x5c\xaa\x0b\x9f\x6b\x7d\xd9\xc2\x68\x73\x26\x36\xc8\x18\xca\xec\xd9\x6b\x2e\xe1\xd8\x8b\x64\x9f\xfd\x78\xc0\x38\x68\xc0\x75\x40\x44\x10\x0b\x85\xae\x23\x34\x00\x67\x0d\xa6\xf0\x05\x72\xaa\xfd\xfb\x7f\xff\x3f\x53\xe8\x31\x95\xd9\x22\xc2\x98\xd9\x77\x43\xf4\x88\x9a\x3a\xc0\x97\xad\x0b\xe7\xae\x9d\x11\x88\x68\xf2\xa5\x29\xad\x71\x99\x5e\x95\x5a\x6a\xaf\x4a\xf8\xfc\x63\x50\x07\x7d\xdc\xed\xc2\x48\xde\x4c\x3c\x9e\xba\x35\x45\xae\x16\x8b\x68\x67\x38\xff\xa2\xdd\xb9\x3d\xe1\x78\xe2\x78\x13\x23\x44\xc3\x83\x40\xc9\xe9\x88\xcd\x5c\x31\xb2\xfb\x23\xe6\x3a\x9d\x42\x7e\x87\x98\xcb\xbc\x42\x4c\xf0\x95\xa6\x1d\x7d\xcc\x16\x1d\x69\x16\x5d\x79\xcc\xe0\x4e\x5c\x78\x77\xef\xfc\xd8\xb4\xdb\x9f\xa2\x54\xd6\xba\x8f\x1c\x60\x5b\x0c\x92\xc2\xc6\xd5\xa2\x60\x76\xb9\x4f\xa1\x33\x18\xbc\xe7\xec\x83\xda\xc5\x5f\x2f\xc4\xb5\xcf\x7d\xc4\xdd\xf0\x15\xe8\xf4\x55\x9a\x43\xb3\x14\xd6\xb2\x88\xc5\x62\xf8\x19\x99\xe6\x80\xdc\x8d\x54\x5b\xec\xa4\x65\x7d\x81\xe7\x6a\x6d\xb3\x37\x30\x4c\x86\x8c\xc9\x65\xad\x99\x04\x91\xfa\xda\x72\xda\x6b\x8b\xb4\x90\x97\xfc\xfc\x0a\x54\x8d\xac\x9d\x64\x6d\x22\x94\xb9\x52\x72\x4b\x22\xd4\x28\x54\x10\x5d\x2a\x1d\x44\xbf\xf1\xdc\x01\xa8\x09\x5f\x8a\x71\xfe\x6d\xfd\x76\x5b\x5d\x07\xec\xef\x94\xf7\x71\xc2\x1c\xc3\x5d\xad\x38\x21\x2d\xa4\x75\xb3\x61\x63\x8e\xb7\x6a\xfa\x51\xfc\x29\xc9\xe5\x11\x4d\x63\x13\x44\x41\x4b\xf4\x04\x63\xe9\x57\xda\x0c\xc1\x71\x24\x4c\x7a\xee\x43\xa5\xcc\x07\x51\xe2\x20\x6b\xbb\x7e\x23\xd2\x26\xcb\x8c\xdc\x0f\xbb\x5e\x7c\x75\x24\x9a\x7b\x9c\x28\xfd\xef\x8f\xe7\x4e\xfa\x92\x8c\x0a\xef\x15\xd3\xfd\x67\x0c\xf2\xef\x48\x45\x1a\x2b\xe2\x06\x39\x49\x7d\xd1\x44\x72\xd2\x3f\x61\x20\x4f\x5b\x78\x8e\x2b\x81\x4d\x62\xd4\x1f\xc4\xaa\x0c\x2d\xed\x84\xc2\x7f\x26\x1f\x69\x4a\x3a\x92\x74\xa4\xc3\x29\x0f\xf2\x5a\xea\x93\x94\x51\x42\x4b\xef\x0f\x93\x74\xf9\xce\x0c\xac\x43\xb3\x75\xd2\xfa\xb8\xe1\xda\x65\x22\x99\xc8\x5f\x7d\xbc\x51\x80\xd2\x60\x92\xac\x83\xf4\xd6\x47\xcf\xb0\x49\xc2\xeb\x3f\x91\x3e\xe5\x88\x21\x68\x22\x8f\xca\x70\xaa\xa0\x4d\x1a\x6d\xf3\x7e\x6b\xf3\xc4\x6c\x02\x22\xc7\xd6\x37\xc8\xa8\x32\x2d\x29\x44\x3a\x68\x91\xbe\xbd\xa2\x8e\x65\x28\xc9\x45\xc5\x9b\x1f\xeb\x8e\x02\x84\xe2\x17\xa4\x55\x19\x32\x44\x3a\xaf\x11\x09\xe9\xc2\x95\xec\xcb\xdd\xbd\x8e\x73\x26\x0f\xcb\x1c\xad\x94\x54\x28\x19\x76\x80\x3d\x93\x5c\x25\xb1\xa2\x6a\xf1\xe8\xbb\x6b\x1d\x0d\x30\xea\x62\x18\x07\xe2\xbe\xab\x15\xcc\xdd\x4c\xa1\x80\x76\x7b\x6d\x24\x5b\xd8\x0a\xe4\x31\xea\x4b\x0c\x70\x2e\x5d\x52\x5c\x42\xfc\x00\x15\x70\x30\xb4\xba\x1f\x6a\x81\x5e\x9b\x7a\xfb\x44\xd9\xb2\x7d\x8a\x56\xbe\x5f\x90\xd6\x09\xa6\x35\xe1\x63\x7d\xda\xf8\x92\xdf\x7a\x64\x4d\x3d\x5f\xb2\x9f\x8f\x3a\xc6\xc3\x63\xf2\xc6\x58\xb8\x88\xf5\x2a\x9e\x23\x03\x39\x0d\x5a\x4a\x5c\x8a\xfb\x3a\x9a\xaa\x7c\x06\x8f\xa3\x09\xc1\x16\x2f\x68\xa3\xaf\x45\x8e\x9d\x28\x4e\x92\x6b\xe8\x45\xc4\x48\x1a\x23\x8b\xe4\xb7\x76\x21\x4f\x9c\x04\xc0\x25\x83\x98\xbb\x3e\x99\x23\x76\x63\x2a\x5f\x3b\x18\x36\xae\x72\x74\xdc\xa2\x4c\xdf\x10\x4c\x07\x87\x62\x31\x31\x7c\x84\x97\x27\x47\x33\xd2\x57\xeb\x95\x4a\xe2\xc7\x60\x3e\x71\x85\xa3\xf3\x81\x4b\xae\x04\x0f\x40\x63\xe9\x7c\x8a\x3c\x89\x8d\xc1\x14\x5e\x3a\x4f\x0c\xb8\xba\x95\xa3\xf9\xb9\x2c\x0d\xf1\x90\x60\x31\xce\x27\xb2\x36\x48\x8b\x63\x17\xb0\x94\xf2\xe1\xb0\x23\xf6\xc3\xbb\xc3\xc8\xf4\x26\x72\xa7\xc5\xd4\x22\x5e\xd0\xb4\x1c\x2d\x6f\x15\x09\x1c\x42\x0d\x07\x90\x01\xc1\xf3\x8b\x75\xcc\x23\x56\xb9\x8f\x18\x48\x29\xbd\xfd\xfa\x1e\xe8\x51\xa5\x89\xcb\x15\x06\xa6\x32\x86\x60\xa0\xcb\x6e\x93\x0b\x79\xc7\x45\x69\x44\x3c\x81\x54\xc3\x37\xea\x57\xc9\xfe\x64\xb7\x71\xb5\xd1\x2e\x32\xe2\xbc\x07\x6d\xcf\x02\x2b\x1d\xf3\xa2\x36\xf8\x5f\x79\xc5\x12\x98\xd9\x12\xa9\xe7\x19\xd5\xd5\x63\xea\xba\xf7\xef\x32\x24\xaf\x43\x4c\x4d\xd2\xb1\x0b\x3c\x41\x3f\xb7\x84\x22\x0c\x31\x27\x5e\x92\x4b\xc3\xe7\xb0\x20\xa2\x2a\x1e\x09\x3e\x8f\xd7\xe3\x92\xc5\xa0\xf5\xec\xf8\x81\x16\x6a\x32\xa0\x22\x7f\xcb\x44\x52\x52\xf3\xa7\xe6\x72\x0b\x71\x19\x10\x95\xc9\x09\x4e\xcf\x2f\x26\x3c\xd3\xb3\x4b\x76\xde\x4d\x15\x64\x07\xd7\x09\x88\x8e\x37\xe0\xab\xc0\x71\xc4\x31\x65\x1e\x36\x33\x12\xc7\xd2\x35\x43\xf3\x3d\x38\x17\xbe\xf6\xd5\xb0\xee\xd4\xf1\x50\xb7\x15\x76\x98\x8c\xae\xce\xd0\x67\x4d\x90\xfb\x95\x83\xb4\x3b\x9f\x45\x26\x22\x2a\x3e\x49\x10\xde\x65\x0c\xdd\x87\x23\x72\x32\x7a\xb6\xc7\xa5\xe1\x6c\xa3\x97\x65\x8c\xba\x3e\x89\x50\xce\x9b\x42\x62\xb9\x7f\xec\x36\x3c\x72\x2b\x2f\x05\x59\x7f\x5d\xb3\xac\x49\xe4\xe9\x5a\x5f\x95\x18\xbe\x21\x31\x2d\xca\x02\x6c\xb9\xbe\x90\xa2\x42\xc8\xe8\xc1\x14\x4d\xd1\xb7\x5d\x24\xcf\x13\x23\x19\x0f\x7b\x79\x2d\xce\xae\x68\xfe\xfb\xd9\x4b\x2c\xa6\x74\x94\x7b\xdf\xd4\x25\xfb\x1a\xc9\xbf\x25\xba\xd9\xc0\x31\x92\x04\xb7\xad\x9a\xe5\x34\x9d\x2b\x7f\x78\xc1\x46\x1c\x64\xb8\xec\x88\xab\x79\x8b\xff\x7f\x9e\xdd\xe7\xb7\x2d\xfc\xe2\x59\x9b\x0a\x10\xae\x17\x5e\xe1\x1a\x17\x37\x0e\xc3\x21\xa8\x79\x64\x4f\x3a\xe0\xa9\xb2\xe6\xb6\x0f\x13\x97\x29\xb2\x12\x17\xa9\xd6\x26\xc6\x5b\xc2\x7f\x67\xf1\xb4\x79\x7a\x96\xf9\x97\xa9\xf9\x4a\xc3\xcb\x9a\x05\xbf\x6e\xea\xf6\xe1\x24\xfa\x96\xee\x41\x5c\x92\x38\xfe\xc5\x19\xa4\x43\x95\x68\x8f\x4e\x92\x71\x24\x8f\x92\x66\x69\x0d\x05\x21\x9b\x52\xfa\xfd\xf4\x7c\x3c\xbc\x53\xff\xc7\xdf\x9c\xc7\x63\xf8\x12\x7c\x1f\xe3\xaf\x69\x4e\xda\xb8\xe4\x89\x3a\x99\xc6\xdf\x34\x53\x59\xba\x30\xd1\x27\xc7\xdf\x5e\x34\xdb\xb2\x9e\xb1\xe2\x35\xed\xd3\x49\x02\xc9\x4a\xbd\x07\x7e\xd2\x05\x87\xbf\xc6\x5f\xd8\xcf\xe2\x6d\x6e\xd3\xd6\x4c\x8e\x06\x00\x72\xb7\x30\xbf\x3e\x3a\x6a\x71\x5a\xb3\x87\x25\x8c\xcc\x13\xc8\x26\xc2\x7f\x50\x94\xb9\xef\xd3\x95\xe5\xf5\xea\xc5\x19\xff\x33\x5d\x85\x66\x41\x87\xd0\xfa\x80\xa8\x50\x07\x51\x34\xf5\x52\x93\xeb\x36\x9c\x84\x0e\xdb\x2d\x0e\xae\xc4\x9f\xe0\xe8\x5a\x51\x9b\x68\x94\xcd\x6d\x6d\x83\xa0\x0d\xe2\x13\x75\x54\x4b\x4f\x33\x97\x0f\x55\x62\x39\x82\xc8\x1a\x77\xab\x37\x71\x59\x0f\x1f\xf8\xb4\x0b\xf5\xc1\xf1\xd9\x8b\xa3\x54\x9d\xef\xd1\x3c\x9d\x9d\xeb\xab\x76\x9d\x4d\x06\x98\xdc\x32\x41\x56\x22\x22\x47\x13\x75\xa2\x7d\x46\xae\x9f\xa7\x52\x70\xdb\x14\x93\x0e\xd2\xc9\x4d\x74\x74\x2b\xcc\xf0\x84\xff\x76\xad\x0f\x7c\x3f\xe1\x6d\xce\x9e\xd2\xc5\x87\x68\x81\x87\xe0\x62\xd7\x3e\x98\x30\xb9\xd3\xf3\x94\x3a\xc5\xdd\xf8\x09\x4d\xf4\xa3\x96\x77\x4d\xbc\x39\x48\x81\x99\xa8\x4d\x20\x26\x4b\x44\x61\x32\xdf\xd6\xd8\xab\x7a\xbd\xe4\x27\xe4\xed\x8e\x8d\xc3\xec\x6f\x67\x9d\x92\xff\xc3\x39\x7d\xff\x44\x72\x59\x95\xd7\x86\x6d\xa6\xf6\x43\x7d\x2c\xe5\xa3\xef\x73\x4e\xda\xfb\x79\x06\x63\xa4\xc8\xf2\x3e\x62\x89\x1d\x97\xc4\x2c\x29\x99\xf5\xc4\xe6\x86\x77\xcd\x91\xff\xf1\xb6\x39\xa4\x7b\x90\x66\x98\x17\xb3\xe7\x18\x45\x48\x70\x95\x28\x40\x5a\xbb\x28\x14\x27\x47\x88\xfc\x18\x86\x4b\x65\x51\x42\xfc\xd9\x12\x5f\x64\xc0\xf2\x23\x9f\x03\x52\x1d\x33\x24\xfc\xc4\x27\x33\x9c\x78\xe4\x5f\x63\xad\xba\x63\x6b\x8d\x67\x92\xa4\xd3\x96\x29\x88\x97\x56\x32\x09\x56\xb6\xdf\xb2\xe6\x0c\xaf\xa4\xb8\xac\xc0\xe1\xa6\xe3\x14\x8d\x34\x5c\x57\x22\x43\x3e\xff\x9a\x7d\xcb\xbf\x12\x22\xd2\x23\xba\x8c\xd0\xae\x69\x9b\x9e\x24\x1a\xe3\x5f\x69\xa1\x9d\xd4\x4f\x76\xaa\x01\xc9\x28\x74\x3c\x96\x3d\x67\x35\xf3\x6d\x7c\xea\x07\xba\x39\xc5\x56\xeb\x1b\x32\x1f\xe0\x9a\x41\xbf\xbb\x66\xf5\x3f\x5d\x5c\x06\x5c\x06\x38\xc4\xa7\xc6\xe6\xfb\xce\xa9\x40\xe3\xc6\xda\xac\x59\x75\x39\x4d\x08\xe9\xfb\xc4\xff\x0c\x2e\x80\x13\xd5\x0f\x0d\x27\x24\x5d\x56\x04\xd3\xfe\xb0\xc4\xa2\xed\xe2\x8d\x7c\xa4\x9b\x09\x1f\xb3\xb7\xf8\x38\x31\x86\x9b\x9a\xb6\x7a\xc9\x5f\xb3\x53\xfd\x7a\xb4\x19\x92\x7a\xa4\x4d\x9e\xd0\x97\x71\x75\x07\xbf\x9d\xc9\x0f\x43\xe8\x3d\xa3\x6f\x33\xba\x28\xc0\x44\x0d\xa0\xc7\xd5\x87\x50\x30\x01\x0a\xdc\x54\x06\x3e\xd6\xac\x2c\x48\x42\xc4\xb3\xe2\xec\x23\xf9\x9e\x6d\xd8\x6b\x63\xf1\x37\xb5\x51\x43\x56\xb1\xd8\xc0\xdf\xc9\xbf\x75\x79\x5b\xcb\x66\xf5\x4f\x44\xda\xec\x82\xeb\xbc\xa6\x1f\xe7\x5d\x82\xa5\xab\xa6\xe9\xf0\x96\xff\x01\x8c\x1e\xbb\xdd\x01\x6e\x0f\xdc\x57\x30\x7a\xeb\xf3\x23\x90\x93\x16\xb7\x80\x4e\x1a\x8f\x67\xb6\x47\x2a\x56\x1a\xb0\xed\xd7\x5d\x4f\x27\x58\x47\x7d\x79\x46\x9f\x67\x67\xfe\xf3\x91\x61\x47\xad\xc7\x43\x67\xc3\xae\x92\xf6\x6b\x28\x14\x27\x86\x7f\x88\xef\xef\x31\xfe\xa8\xfd\xd4\x04\x86\x9d\x25\x87\x88\x9f\x43\x83\xc5\x61\xd5\xaf\xcf\x4d\x87\x18\xb4\xdd\x92\xcd\xf9\xa1\xaf\x37\xae\x52\xf6\x80\x2b\x21\x09\xcd\x2e\x7b\x8b\x4a\xd9\x6b\xad\x94\x5c\x71\x6b\xda\x8a\x2e\x67\x4f\x8d\x89\x09\x3d\x7d\x48\x1b\x21\xc5\x09\x2b\x45\x02\x4c\xbb\x54\x5e\x5f\x0f\x28\x18\x2b\xdf\x83\x3e\xa0\x14\x3a\x52\x49\x00\xc7\xf6\x1c\x01\x0b\x29\x07\x80\x9c\x55\x72\xd3\xae\xaf\x88\x8d\x5a\xe8\x13\x98\x20\x41\x0f\x67\x3f\x5c\x21\x7a\x28\xae\xce\x42\x0d\x55\x67\x52\xca\x4e\x07\xe2\xa1\xb6\x9f\xae\x2e\x94\xce\xd5\xdf\x32\x51\xe3\xa5\xfd\xc0\x21\x9d\x13\x15\x0f\x39\x4e\x59\x54\xf3\x0d\x3e\x4c\x4d\x41\x6a\xaa\x83\xdc\x54\x45\x1d\x96\xf8\x86\x87\xc4\xf7\x9e\x77\xee\x09\x65\x8d\xc5\xd0\x17\x18\x08\xef\x4c\x15\x49\x9a\x52\x83\x1f\x63\x53\x2b\x83\x58\x3f\x25\xb3\x7a\x64\xfe\xd4\x8a\x8e\x41\x76\x1f\x1c\xb3\x57\xf8\x57\xe1\x3a\x5f\x14\x27\x49\x92\x4f\xc2\x27\x25\x22\xab\x14\x68\x0e\xba\x85\x3c\x80\xe3\xbb\xd0\x67\xfd\xf5\x95\x77\x48\xa9\x9b\x2b\xba\xd2\x24\xcb\x6a\xf4\xd4\xbb\x5d\x0d\x9e\xd7\x82\x6b\xf4\xd4\x22\x63\xef\x2f\x0e\xdc\x73\xc9\xe7\xdf\x11\x25\x3e\x77\x9d\x8c\x52\x08\xe9\x5a\x99\x09\x17\x97\xa6\xf1\x5b\xea\xbf\x30\x95\x77\x75\x39\x43\xb2\x24\x47\x4e\x9a\x57\x10\x9c\x44\x04\x19\x75\x31\x63\xa9\xaa\xae\x23\xc8\xfb\x67\xd2\x54\x2b\xfc\x02\x8f\xae\x8b\x8a\x9d\x1d\xf0\x11\x50\xe6\x73\xa1\x4b\x3a\x07\x2e\xf4\x4b\x39\xf2\x20\x22\xef\xfc\xe1\x3d\x5f\x44\x0c\x40\x19\x3c\x48\xb0\x1a\x81\xa8\xb4\xcb\x80\x2c\x8f\xe2\xfc\xfd\xb0\xe5\xe6\x43\xec\x41\x75\x46\xa0\xa4\x2a\x04\x75\xc6\x28\xec\x3d\x8e\xb7\x44\xef\x79\x38\xc2\x7a\x0c\xbf\x7b\x66\xb3\xc6\xa3\xf8\x87\x71\x88\xad\x0b\x21\x12\x50\x51\x0e\x11\x7d\xf0\xa4\x64\x0c\x94\xe1\xa3\x83\x5c\x7f\xca\xd0\xe8\x46\x8e\x9e\xf9\x14\xac\x9e\x78\x54\xd7\xfe\x07\xbe\x17\x1c\x8f\xea\x5f\x0d\x1e\x82\xe6\x7d\x9f\x0f\x36\xe9\x4b\xba\xe9\xab\xc1\x41\xe3\x15\x41\x25\x71\x16\xcc\x6d\xfa\x48\xcc\x51\x5f\x41\xbc\x9e\x3a\xe7\xe8\xb1\x98\x70\xa5\x6a\x98\x0b\xff\x82\x8c\xd6\x8f\xc8\x13\xff\x4e\x3c\x44\xf8\xcb\x94\x83\x88\x6a\xd4\x98\x3a\xa5\xc3\x25\x94\x4a\x2a\x4d\x3d\x14\x91\x0c\x2c\x1f\x86\x86\x44\xf9\xca\xf9\xb3\x91\x71\x39\xd6\xfc\xb8\x42\xa4\xcb\xb6\x8b\x58\xf7\xe3\x4a\x06\xb9\x98\x45\xcf\xa7\x54\x23\x99\x6f\x78\x52\xc7\xf2\x87\x60\x03\x9a\x50\x05\x4a\x27\x2e\x2d\x4b\x26\x1a\x9b\xc1\x8b\x76\x52\x25\x2c\x4e\x3e\x84\x74\xa5\xf2\x5b\x1e\x0b\xa5\xcb\x38\x1c\x62\x29\x70\xae\x3e\xa9\x5b\x42\x34\x7b\xee\x69\x4c\x30\xbb\xd0\x37\x57\x9b\x26\x8a\xb6\x8e\xe6\x34\x70\xbd\x96\x8f\xbb\xc6\x22\x46\xc7\xfa\x41\x0f\x48\x45\xfa\xa6\x09\xb3\x60\x1d\x4a\x41\xed\x5e\x65\x2b\x4d\xe8\x1c\x15\x8c\x1f\xd6\xbc\xa5\x52\x70\xc3\x51\x21\x19\xc8\xee\x1b\xb2\xbd\x85\xf3\xb3\xe7\x2d\xa7\xff\x8f\x92\x68\xcc\xdd\x5d\xe5\xe2\xe5\xdd\xad\x04\x37\x9e\x5d\xb3\x0b\xb6\x30\x8d\x56\xe6\x67\xfb\x04\xc2\xb8\xdb\x25\xed\x99\x5e\x77\xb3\xb3\x7e\xbd\x9b\x3d\xc8\x6d\x69\x93\x4a\x45\x1d\x7c\xa8\x1e\xbd\xf2\xe0\xed\xe8\x0e\x5d\xf5\x30\xec\x8a\xe3\x8b\x3c\x66\x7b\xaa\x9f\xc7\xd5\x6c\xdf\x2a\x3e\xac\x77\xef\xa8\x1a\x3d\x98\x38\xaa\x25\x59\xd7\x06\x16\x6a\x49\xbe\xe6\x3b\x62\x33\x86\x56\x14\x8b\x5e\x5a\x61\x8f\x2b\x62\x69\xf3\xc5\x4b\x4b\x97\x42\x76\x76\xea\x0a\xec\xbe\x3b\xc8\xc3\x0e\x67\x2f\xdf\xbe\x19\xe3\x7e\x8c\x5f\xa8\xcb\x68\x82\xaa\xb3\x18\x57\x50\xc2\xf8\xc2\x25\x31\xd2\xa8\x93\x92\xba\xfb\x5b\xe2\x5a\xd8\x9e\x62\x32\xc1\x3e\x7b\xa4\xde\xd4\x4d\xcd\x07\x54\xac\xa9\x30\x28\x12\x0f\x43\x17\xf6\xb9\x64\xb7\xe3\x10\x29\x70\xb7\xda\xad\x37\xbc\xb0\xab\xb4\x24\x71\xca\xee\x9d\xdc\x23\x54\xea\xe8\x2a\xaa\x23\x97\x88\xf8\x5c\x2e\xbb\x8a\x68\xe0\x8b\x33\x76\xb4\xf4\xfa\x69\x7d\x3e\x57\x83\xe0\xfc\x9a\xcf\xcb\x03\xea\xeb\x73\xfc\xdc\xec\x0d\xde\x9e\x44\x75\xbe\x5c\xec\x01\x16\x80\xd0\xe2\x00\xbb\x1d\x9e\xef\x5e\x2b\x0a\xbd\x39\x7d\xa9\xe1\xb2\xf1\xf1\xd4\xa9\x70\x72\x2a\xc7\xd0\xf1\xb3\x1b\x08\xfe\xb2\x12\x33\x1f\x31\x74\x13\x53\xeb\xca\x03\x2d\xa3\x3c\x1c\x3c\x78\x99\x17\x1b\x6f\x6e\xea\x11\x15\x33\x22\xba\x2b\x29\x17\x32\xf1\xac\xfc\x80\x21\xf1\x84\x32\x79\x43\x70\xa2\xdd\x7b\x44\x0f\xcc\x53\xd2\x98\x28\x82\xde\xb5\x94\x09\x2d\xd8\x80\x1d\x8b\xbb\x7e\x27\x64\x06\x7c\x8c\x92\x51\xf1\xab\x3a\x06\x99\xc0\xca\xc4\xd5\x97\x42\xcb\x25\xcb\xa7\x0f\x02\xc6\xdb\x5a\xc7\x6e\x9d\xb8\x5d\x64\x9d\x3c\xf2\xc2\xff\x7b\xb9\x20\x45\x1d\xc7\x1c\xc7\x44\x97\xb7\x05\x00\x3b\x0b\x99\x53\xa3\xa9\xbd\x4c\xd5\x68\x03\xb3\x99\x56\xcd\x0f\x07\xbd\xa1\xdc\xcb\x5d\x7a\x33\x45\xe5\x17\x40\x77\x5f\xec\x3d\xe2\xa3\x1a\x08\x13\x0c\x35\x24\x5c\x51\x8b\x07\x77\x9b\x7e\x6d\x36\x1b\x92\xbf\x0d\x32\x93\x72\x6e\x1e\xfc\x98\xbd\x6c\x8a\xde\x86\x86\xc4\x2a\xe1\xd8\x41\x9f\xc7\x5a\xb1\xed\xe2\x1b\xfe\x13\xf2\x44\x12\x05\xeb\x9b\x10\x88\x38\xb8\x71\xf1\x22\xef\x11\xa7\xdc\xcd\x82\x1c\x15\x55\xe1\x41\x7d\x95\x74\x54\xe6\xa3\xda\xa6\xe9\xe4\x19\x98\x48\xa7\xfe\x1d\xde\xea\x23\x88\xd7\x65\xa8\xcd\x96\xb9\xf5\x52\x9e\x7c\xf0\x8d\xa2\x9a\x42\x23\xc5\x80\x07\x42\xa1\x61\x16\xbe\x03\x5a\xd5\xb0\x35\xad\x6e\x7a\xac\x75\x5b\x1e\x34\xe8\xf3\xec\x1c\x7f\xcf\x98\x8d\xf1\x13\xc7\xc6\x28\x5a\x32\x10\x5e\xc9\x7d\x89\x27\xc7\xbe\x91\xc2\xd9\x51\xa3\xea\xbc\x58\x39\x74\xf1\x96\xc5\xf3\x49\x84\xa1\x8a\x81\x85\x0a\xdf\x22\x6e\x25\x7c\x8c\x98\xaf\xf0\x91\xe7\x36\xda\x17\x2a\xb0\xb6\x92\xad\x39\x3b\x7b\x31\xc4\x85\x50\xea\x9f\xfa\xaa\xfb\x56\xa0\x7b\x0f\xa9\x8e\xe9\x34\xd8\x7b\x1f\xc7\x0d\x86\x5b\x31\x2c\xf3\x1d\x49\x27\xf6\x97\x8a\x08\xed\x67\xf7\xd8\x15\xe0\x5e\x57\x16\xab\xa8\x3b\x77\x49\x44\x27\x8a\x7e\xce\x06\x6e\x42\x7e\x27\x54\xe6\x4f\xde\x53\x76\xaf\x2f\x27\xef\x19\xcb\xde\x44\x77\xc7\x18\xfb\xdd\x7d\x93\x5e\x31\x93\xe8\xcf\x31\x41\xd2\x40\x6d\x78\xc4\xb4\x74\xc8\xcf\x05\x95\xa6\x64\x31\x59\x43\xd7\xb4\xa9\xa0\x3a\x8a\xaf\xad\x64\xfa\x92\xc0\xd9\x25\x74\xe6\x70\x8b\x53\x75\xe3\x00\xe5\x69\x59\x26\x9f\x9e\xb6\x7b\x7a\x9f\xd5\x78\xe9\xdb\xf7\xac\xb5\xcb\x26\xa6\xcd\x50\x52\xfd\x88\x07\x52\xaa\x12\x19\x81\x85\xa3\xe1\xca\x6b\x24\xe8\x35\xeb\xf3\x85\xbf\xe6\x41\xb8\x5f\x4a\x24\x76\x60\x17\x38\x29\xbe\x71\x30\x4b\xc6\xf6\xf3\x3d\x90\x70\x93\x2f\x1e\xca\xbf\x53\xb3\xd4\xa8\x58\x44\xe6\x2c\x2b\xb1\xde\x85\x77\xf2\x2d\x47\x81\xbd\x80\xd2\xd8\xb2\xf7\x69\x04\x4d\x6b\xba\xc0\x66\x47\xcd\x1d\x77\x7d\xb4\xa9\x0b\xad\x57\xa4\x53\x13\xf4\x11\xa4\xfb\xa5\xa7\x6b\x7d\x59\x99\x7a\x4b\x58\xff\x3d\xd8\x74\xac\x1f\x9e\xd3\xb5\x2c\x3f\x80\x50\x42\x56\x59\xe1\x46\xf4\x14\xc8\xd1\x55\x25\xb8\x75\x3e\x08\x21\x7e\x35\xe0\xd5\x98\xb1\xca\xf8\xcf\xf2\x5c\xad\x47\x29\x73\x15\xed\x6b\xb8\x85\x5e\xf2\xaf\x23\xb3\xd7\xaa\x4e\x16\x8b\xd4\x71\x69\x05\xb7\xfd\x74\x74\x9b\xc5\xb3\xc7\x2f\x5e\x67\x8f\xa6\x0e\x82\xd6\x1e\x93\x1f\x2d\x18\x13\x2b\x2d\x98\xa6\x4d\x62\xa6\xd6\x75\x88\x4d\x7a\x7a\x19\x52\xf1\xf8\x2a\xe4\x58\x68\x47\xa2\xc5\x9e\xee\x48\xcf\x4f\x41\xe8\x48\x13\x92\x9a\xa7\xf2\x6b\x50\xc7\xbf\x61\x27\x95\xfc\x0b\x76\xe3\x31\x6b\xd7\x0f\xdb\xde\x93\xfd\x35\xe2\x6a\xe5\xa9\x1b\xff\x3c\x32\x35\x57\xf9\xd0\x36\x17\x25\xc7\x58\x69\xf5\x37\xfa\xc1\xd7\x74\x35\x5c\xbf\xae\xc2\xb1\x35\x13\x72\x97\xca\x87\x3f\xe4\xbf\x67\xc9\xde\xe9\x51\xc5\x71\x92\xaa\x5a\x4b\x9c\xcc\xd6\x3b\x7d\xa4\x51\x6b\x6f\xd7\x1e\x34\xa2\xd1\x7e\xfa\x30\x00\xe7\x9a\x55\xda\x83\x05\x55\xe5\x46\x6c\x61\x7e\x45\x53\x87\x72\xd7\x75\x07\x2b\x09\x09\x70\x01\xf1\x93\x73\xc3\x25\x84\x9e\x74\x1d\x53\x1d\x1d\x4a\x36\x5e\x38\xe0\x3c\x28\xab\x61\x8e\xc3\x41\x45\xbd\x83\xb8\xa6\xfe\x3d\x22\x8b\xdb\x56\x69\xee\x53\xfd\x63\xfa\xa2\x00\xd7\xa1\xe3\x82\xdb\x98\xde\x0f\x54\x12\x4e\x89\xaa\xe8\x75\xec\x1d\xaa\xe6\xeb\x96\xee\x95\x87\xf4\x3f\xf1\x53\x09\x05\xd1\xa1\x73\x9f\xc0\xf9\x14\x3d\xf1\xd7\x20\x35\x07\x22\x4a\x51\x6d\xbc\xc3\xe1\x0c\x19\x99\x73\x37\x91\x44\xaf\x5a\xc5\xbf\xe5\xa1\xf6\x83\xc9\x4a\xe6\x57\xb3\xee\xbd\xf9\xf3\xb4\xbe\xce\x77\x55\x5c\x33\xf2\x05\x03\x5e\x6a\xfa\xf8\x7e\xc3\xea\x78\x42\xcc\x6b\xe4\x3d\x0d\x55\xa6\xf2\xce\xba\xc5\x10\x54\x3b\x38\x7e\xb5\x9d\xa0\xd1\xd4\x14\x16\xd1\xd0\x56\xaa\x79\x47\x35\xe7\xfd\x25\x3f\x09\x59\x20\xbf\x4f\xf9\xae\xb9\xfa\x81\xdd\x8a\xbf\x2c\x3f\x5d\xc4\x49\x1d\x5c\xd1\xc4\xcc\x5d\x51\x73\x58\xbc\x3e\xcc\xe3\xaa\x2c\xc7\xf8\x87\xd1\x87\x73\x38\xea\xd5\x02\x8f\x40\xf6\xe9\xf8\x29\x7d\x8c\x13\x0a\xee\xc8\xbb\x31\x09\xf3\xbc\xcf\xcf\x53\x44\x69\x2d\x08\x1f\x7d\x66\xc8\x22\x7d\x45\x4e\x84\x9c\x7e\x0f\xc3\x08\x34\x03\x71\xe6\xf3\x4f\xe3\x3c\xea\xb7\x3d\x1d\xe3\x1f\xda\xd0\x89\x49\x9e\xf4\x30\xa5\x4f\x6c\xbb\xfe\xe4\x7e\xfc\x76\x86\xbe\xe6\x11\x25\x91\x8f\x3a\x24\x00\xc0\x55\xb4\xf3\x2b\x96\x37\x4b\x7e\x46\xd7\xf2\x60\x47\xdc\xb7\x28\x3d\xa5\x7b\xe4\x9d\x77\x23\xf8\x97\x43\x7e\xf6\xfd\xa4\xe9\xf0\x47\xf9\xba\x1d\xc0\x92\xee\x35\xb7\xfd\xa0\xf7\x9f\x65\xd1\xe1\x41\x95\xbf\x71\x72\xd1\x63\x34\x3f\x23\x74\x62\x94\x30\xfb\xe7\x24\x63\xf6\xbb\x27\x44\x3b\x94\xe4\x51\xff\x19\xef\xfc\x69\xbe\xb9\x49\x84\x91\x3d\xf6\x1b\xec\x2a\xb3\xaf\x6a\x5e\x4f\x21\x94\x3e\x6f\xd8\xe5\xdb\xff\xc7\x9b\xac\x6f\x2f\xfc\xc5\x27\xc0\x17\x1e\xda\x3f\x01\xe1\x02\x7c\xfe\x12\x5e\xd8\xa3\x63\x81\x6c\xe4\x74\x28\xf2\x6d\xb3\xb8\xc0\x43\x7a\xfc\xbe\x27\xa2\x4e\xf2\x55\x66\x9b\x0d\xab\xe1\x7c\x10\xca\xdd\x3b\x9f\xda\xc5\x7d\x9b\x7d\x9a\x9d\x99\x73\xb8\xbc\xd1\x87\xbd\x7c\x20\x16\xb6\x87\x65\xe8\xd3\x9d\x56\xe8\xb4\xbc\x90\xdf\x6f\x73\x3a\xd7\x9f\x5e\xca\x8f\xef\x1b\x7e\x01\xf8\x53\x22\x44\xda\xba\xa9\xa1\xb6\xff\xf4\x4a\x7e\x22\xfd\x34\xa2\x9c\x88\xae\x17\x34\x20\x20\xa1\x0f\x18\xe8\xb8\xa0\x8d\x3c\x60\x5a\x2a\x93\xa0\xc2\x5d\xd3\xb7\x83\x86\x9d\xb6\x2b\xf2\xab\xb4\xe4\xad\x24\x18\xbc\x34\xe6\x3c\x2d\xe0\x59\x0a\x15\xee\x76\x83\x81\x30\x5f\x94\x5d\x99\x7c\x30\xd0\x5f\x73\x71\x3e\x6c\xf3\xcb\xa5\x5b\x41\x98\x35\xbe\xba\x99\xfb\xd9\xd2\x36\x14\x6d\x73\x40\x12\xe0\x9f\xc2\x53\xc0\xee\x29\xc3\x27\x2e\xa8\xfa\xdb\x03\xe2\xbf\x33\x64\x8e\xc0\x53\xce\x8d\x7a\x8a\xab\xb7\x18\xc7\x8b\xe3\x4a\x15\xbf\x6f\x97\x1a\xbc\xac\x0f\xbd\x8a\xe0\x3e\xcf\x98\x26\xba\xc0\x4f\x2a\x08\x8a\x4e\x71\x2e\xdb\x35\xc8\x8f\x2f\x01\x2a\x5e\xc3\xc9\x12\x3f\xe1\xca\x72\xa5\xf2\x76\xb9\x25\xc2\x70\xf3\x6f\x26\xfb\xe8\x9f\xff\x99\x9f\x55\x20\xd1\xe6\x5f\xfe\x25\x7b\xf9\xe0\x63\xe5\xad\x99\x9c\x77\x46\x52\x9c\xbd\xcc\x7f\x2d\xf7\x79\x15\xb5\xd9\xe7\xbf\x3e\x49\x9a\xcd\x41\x60\xd9\x93\x3c\x4a\xaf\x10\x65\xc4\xbb\x7b\xe7\xff\x06\x00\x00\xff\xff\x3b\x00\x2f\x65\xb5\xb9\x00\x00") func confLocaleLocale_deDeIniBytes() ([]byte, error) { return bindataRead( @@ -4359,12 +4359,12 @@ func confLocaleLocale_deDeIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_de-DE.ini", size: 45690, mode: os.FileMode(493), modTime: time.Unix(1441457542, 0)} + info := bindataFileInfo{name: "conf/locale/locale_de-DE.ini", size: 47541, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\xbd\xeb\x92\xdc\x46\xae\x27\xfe\x9d\x4f\x41\xeb\x84\xfe\xb2\x23\x5a\xa5\xb0\xfd\xdf\x4b\x38\x24\x79\x5b\xdd\xd6\x65\x8e\x5a\xdd\xa3\x6e\xcf\xec\xac\x42\x41\xb3\x8a\xac\x2a\x8e\xaa\xc8\x32\xc9\x52\xa9\xe7\xc4\x89\xd8\xd7\xd8\xd7\xdb\x27\x59\xe0\x07\x20\x2f\x24\xab\x25\x79\x4e\xec\x7e\xe9\x66\x65\x22\x6f\x48\x24\x12\x40\x22\x91\xf9\x6e\x97\x15\x65\xb7\x48\x9f\xa4\xa7\xe9\x2e\xaf\xea\x4d\xd9\x75\x69\x57\x6e\x96\x0f\xd7\x4d\xd7\x97\x45\xfa\xa2\xea\xe9\x77\xfb\xb1\x5a\x94\x49\xb2\x6e\xb6\x25\x81\xbe\xa4\x7f\x49\x91\x77\xeb\x79\x93\xb7\x05\x25\x9c\xdb\x77\x52\x7e\xda\x6d\x9a\x96\x81\x7e\x91\xaf\x64\x5d\x6e\x76\x5c\x86\xfe\x25\x5d\xb5\xaa\xb3\xaa\xa6\x9f\xd7\xf4\x95\xbe\xaa\x93\xae\x59\x54\xf9\x26\x0b\x32\x90\x60\xf9\x3f\xa5\x3f\xd4\x45\x7a\xdd\x97\xbb\xf4\x71\xb7\xcd\x37\x9b\xa7\x79\x87\x22\x7d\x99\xe6\x8b\x45\xb3\xaf\xfb\xc7\x8f\x24\x43\x2a\x6f\xf6\xbd\xd5\x7e\xb9\xef\x25\x6d\xbf\xb3\xa4\x5f\x77\x49\x5b\xae\x2a\x1a\x58\x4b\x49\x6f\xf5\x33\x39\x94\xf3\xae\xea\xb9\xd3\x7f\x95\xaf\xe4\x63\xd9\x76\x55\xc3\xfd\xf9\x8b\x7c\x25\xbb\x7c\xc5\x00\x57\xf4\x2f\xe9\xcb\xed\x6e\x93\xa3\xc0\x8d\x7e\x26\x9b\xbc\x5e\xed\x05\xe6\xb5\x7e\x26\x8b\xb6\xa4\xac\xac\x2e\x0f\x94\x7a\x86\x1f\x29\xfd\x98\xcd\x66\xc9\x9e\x70\x9a\xed\xda\x66\x59\x6d\xca\x2c\xaf\x8b\x6c\x2b\x58\xfb\x95\xd2\x53\x4d\x4f\x29\x3d\xe5\x74\x0c\xa3\x2c\x08\x41\x59\xde\xe9\x58\x68\x6a\x08\x5f\x79\x97\xa0\xaa\x3a\xdf\x5a\x69\xfe\x4c\xca\x6d\x5e\x6d\x78\x12\x1e\xf2\x07\x75\xbe\xeb\x0e\x0d\xa6\xea\x4a\x3f\x09\x11\x59\x7f\xbb\x2b\x81\x87\x87\x37\xf4\x95\x2c\xf2\x5d\xbf\x58\xe7\xdc\x57\xf9\x4a\x08\x68\xd7\x10\x42\x9a\xf6\x16\x70\xf6\x23\x69\xda\x55\x5e\x57\xff\xc8\x7b\x41\xd2\x65\xf0\x33\xd9\x56\x6d\xdb\x30\x7e\x2f\xf0\x91\xd0\x88\x33\xae\x87\x52\xde\x10\x26\x82\x5a\x38\x67\x5b\xad\x5a\x41\x25\x67\x5e\xe0\x17\xd7\xc2\x79\xcb\xa6\xfd\xa0\x19\xcf\xf9\x73\x50\x94\x3a\xa1\xb9\x71\xfb\x79\x4d\xc8\xd7\xdc\x0b\xfc\x88\x00\xba\x24\x2f\xb6\x84\xca\x5d\x5e\x97\x8c\xa3\x53\xfe\x45\x78\xa1\x5f\x89\xd2\x54\xd6\x95\x7d\x5f\xd5\x2b\x46\xf6\xa9\x24\xa5\xd7\x9a\x94\x04\x79\x2e\xed\xb6\xd9\xbb\xe9\xa4\xf4\xbf\xd1\xcf\xf4\x4a\x7e\x4a\x5e\x50\x08\x99\xae\x24\x8f\xa4\xcb\x96\x65\x59\xc8\x58\xba\xf4\x39\x7d\x27\xbb\xfd\x66\x43\x58\xfb\x7d\x5f\x76\x3d\x17\xba\xa2\xdf\x34\x7e\xf9\x9d\x54\x5d\x47\x1f\x94\xfc\x0a\x1f\x09\x4d\x5d\xbd\xc0\x60\xce\xf0\x91\x24\xef\xba\x32\x6f\x17\xeb\xf7\x89\xfc\x47\x5f\xf9\x83\x69\xef\xd8\xa4\x32\x21\x29\x11\x49\x0b\xd6\x40\xb2\x68\x0a\xfe\x71\x46\xff\xa8\xea\xaa\xee\x7a\x5a\x71\xef\x13\xfd\x60\x30\xf9\x92\x09\xe8\xab\x1e\x58\xd0\x44\x2c\xdf\x8e\x67\x30\x7d\x5e\xb5\x5d\xff\xb0\xaf\x88\x58\xdf\xee\xeb\x84\xc7\x47\xab\x2d\x2b\xe6\xc6\x84\x5e\x34\x84\x22\x24\xb7\x34\xbe\x8b\xdb\xeb\x3f\xbf\x3e\x49\xaf\x88\x13\xad\xda\x92\xbe\x53\xaa\x83\xfe\x51\x99\x1f\x67\x09\x95\xb2\x96\xce\xf3\x3e\x9f\xe7\x5d\xe9\xd1\xca\x99\x42\xdd\x2e\x0f\x34\xce\x5c\x0d\x1c\xac\xeb\xa3\xf1\x4e\xad\x10\xaa\x43\xd7\x95\xab\xe3\x0d\x2f\x2e\x4a\x67\xa6\x86\xc2\x57\x9b\x92\xd3\xa9\xaa\xf4\xd5\x9b\x37\x97\xe7\xcf\xd2\xb2\x5e\x55\x75\x99\x1e\xaa\x7e\x9d\xee\xfb\xe5\x7f\xcd\x56\x65\x5d\xb6\xc4\xe3\x16\x55\x4a\x6b\xaa\x25\x4a\x48\x89\xb0\x65\x70\xb3\xa4\xeb\x36\xb4\xf6\x81\xde\xeb\xeb\xd7\xe9\x05\xa3\x78\x97\xf7\x6b\x74\xa4\x5f\x27\xdd\xef\x1b\x46\x91\x6b\xf0\x66\x5d\xa6\xa0\x32\x00\x35\x4b\xc3\x47\x5a\x68\x1f\x67\x49\xd9\xb6\x19\xb1\xa5\xfe\x36\xd3\xc2\x5a\xdf\x10\x52\xaa\x20\xd2\xa9\x9b\x3e\x9d\x97\x29\xca\xcc\x92\xc4\x3a\x6c\xd8\x3d\xdd\xed\x36\xd5\x42\xd6\xfa\x0b\xc9\xf3\x88\xe6\x1d\x44\xb1\x14\xc2\x01\x51\x96\x17\xa0\x8b\xd8\x33\xaf\x87\x34\x62\x20\x28\xbf\x2e\x89\x01\xae\xf7\x2b\x61\x7b\x9b\x66\x5f\x7c\x03\x4a\xb5\xde\x7b\x42\x4d\xdf\x36\xd4\x61\x60\xc7\x01\xf8\x26\x4e\x89\xe2\x78\xd3\x6a\xcb\x6d\x43\x7c\xc5\x11\x7b\x45\x04\x75\xa8\x28\x93\x46\xda\xe5\x1f\x69\xbd\xf5\x4d\xda\xaf\xab\x2e\x2d\x88\xd8\x16\x5c\x31\x2d\x8d\x3d\x6d\x17\x42\x16\x44\xa0\x42\x1a\x96\x16\xcf\x01\xa0\xb6\x7b\xa2\xa6\x35\x55\xc6\x9b\x11\xef\x9c\x54\xe5\x54\x3f\x31\x24\xaa\x07\xf4\x4d\x94\xdb\x10\x57\x66\xbe\x79\x8e\x0f\xfd\x1d\xd6\x4f\xbd\xca\x97\x4b\xea\x55\x47\x54\xf1\x32\x5d\x6c\x1a\x22\xa9\x5f\xdf\xbe\xee\x98\x60\xd6\xd9\xae\x69\xb1\xcd\x51\xd6\x15\x7d\xba\xb4\x00\xd1\x0c\x51\xef\xb7\x73\xfa\x75\x58\x57\xc4\x01\x80\x76\x2e\xc1\xbb\x39\xa5\x52\x13\xfb\x8e\xa6\xf0\x24\x25\x12\xa6\x11\x10\xca\x40\x00\x3c\x86\xa2\xea\xf2\x39\xcd\x3d\x83\x2f\x69\xdb\xda\xb7\x44\x56\xeb\xbe\xdf\x59\xcb\x2f\x6f\x6e\xae\xa4\x69\x97\x7a\x57\xdb\x79\x40\x19\x98\x83\x0d\x6f\xbc\x75\xda\xd4\x33\x10\xc9\xbe\xdd\x0c\xe8\x87\xc6\x6a\x39\x47\xf0\xc2\x5d\x78\xc4\x7f\xae\x3d\x7a\x80\xe7\x8e\xa4\x93\x03\xa8\x89\x70\x5c\x62\x03\x24\xa2\x6e\x76\x5c\x6f\x40\xd5\x97\x9a\xe0\x49\x19\x9b\xa6\xcb\x97\xad\x93\x72\x21\xfb\x04\xec\x7f\x4b\x03\x56\x36\x72\x7d\x41\x68\x00\x2f\x41\xea\xb2\x6d\xb6\x94\xfa\x9c\xfe\xf9\x04\xdf\xfd\x0b\xae\x0f\x30\x79\x51\x10\x7f\xeb\x4e\xd2\xb7\xcf\xcf\xd2\xff\xf4\xe3\x0f\x3f\xcc\xd2\x57\x3d\xaf\x44\x26\xce\xbf\x33\x51\xd1\xa7\xec\xe1\x0e\x94\x58\x46\x4f\x74\x77\x8f\x57\xd6\xbd\xf4\x31\x72\xff\x5b\xf9\x29\x27\xf9\xa3\x9c\x2d\x9a\xed\x53\xe6\x2a\xdb\xbc\x9f\x25\x9c\x43\xe4\xaa\x74\x7c\x5d\xd6\x05\x7d\xa8\x24\xa0\x79\x01\xbb\xd3\xfc\x40\x2e\x10\xa9\x28\x5b\x34\xf5\xb2\x6a\x79\x40\xbf\xd4\xa0\x06\x93\x97\x68\x1f\x40\x8e\x6d\xb7\x84\x34\xe2\x20\xd5\xf2\xd6\x83\x62\xa8\x6f\x38\x51\x27\x34\x11\xaa\xcb\x54\x94\x74\x58\xbe\x16\x62\xe4\x79\xbb\xa4\xe1\xb5\x86\xef\xce\x23\xbc\x59\x2e\x37\xc4\x51\x8d\x4b\x6a\x0b\x97\x92\x2a\x0c\x33\x04\x21\x62\xdc\x41\xe2\x3b\x57\x22\x3e\x3b\x7f\x93\x96\x1f\x89\xda\x88\x1c\x68\x8b\x2e\xf6\x0b\x50\x18\xc3\x9e\xa4\xbc\x3f\x11\x7e\x69\x6d\x2c\x84\xaf\x06\x4c\x82\xbb\xc6\x9c\x68\x41\x40\xc4\x1b\x74\x51\x64\x24\xa1\x7c\x24\x0e\xda\x06\x4d\xbc\xb0\x24\xed\xfd\x08\x76\xd4\x29\x57\x82\x47\xbe\xa0\x19\x27\xaa\x90\x5e\x74\xd2\x29\xc9\x26\x72\x27\x3a\xde\x93\x24\x9d\x17\xd4\x97\xf9\x2d\xf8\x4e\xc7\xc4\x50\x94\xcb\x7c\xbf\xe9\x7d\xbf\x64\xe2\x5a\x93\xc9\xac\xa5\x6b\x16\xe6\xc3\xbc\xc9\x02\xa3\x0e\x82\x7a\xba\x61\x59\x22\xc3\x7a\x73\x9b\x42\x80\x02\xbd\x8a\x88\x6b\xb2\x78\x37\x4b\x74\xf3\x36\x89\x3e\xfb\x58\x41\xfa\x75\x24\x84\x5c\x13\xef\x99\xd7\xfc\x85\x01\x58\xac\xee\x26\xcb\xba\x8e\x5d\x72\xc3\x9d\x93\x7c\x05\x0f\xdc\x05\xb4\xc0\xe2\x39\x61\xee\x63\x05\xd6\xab\x93\x88\xbe\xd2\x4c\xa2\x69\x6a\xaa\x2b\x4b\xd4\x40\xe5\x1f\x51\x9d\x28\x33\x53\x69\x50\x05\x34\x13\x44\x48\x48\x4b\x8b\x26\xe5\x9d\x11\xfc\x9d\x4a\xdb\x50\x6b\x1d\xbe\x8e\x39\x6d\xab\xd5\x9a\xf8\x5d\x73\x38\x11\xa4\x1d\xd6\x4d\xc9\x34\xfd\xea\xfc\xc9\xf7\xd2\x8f\x15\x73\x7b\x57\x88\xf7\x89\x7c\x4f\x13\x4e\x18\x55\xd2\x92\x2e\xb8\xfd\x16\x90\x23\xb9\x53\x80\x86\x92\xbe\xc9\xb2\x63\xf1\x45\xd7\x6f\x98\xa7\x0b\xd7\xc3\x48\xe9\x81\xb6\xa0\x62\x5d\xb6\x6a\x20\xaf\x9a\x18\xc7\x7b\x17\xa9\x3e\x5d\x9f\xad\xaa\x3e\x5b\x32\x23\xe1\x3a\x9f\x73\x59\xde\x4a\x29\x27\x7d\x40\x59\x0f\x52\xe2\x46\x24\x84\x17\x3f\xa5\xf7\x3f\xaa\xfc\xf2\x23\x73\x88\x8c\x68\xba\xda\x60\x32\x54\x0a\x6e\x4b\x11\x9f\x4c\xdd\x2a\x1a\x5a\x7f\x8c\xf3\x6e\xbf\xc3\x4e\xa3\x22\xcb\x49\xba\x13\xc0\xa2\x39\xd4\xbc\x16\xc0\x0a\x69\xd5\x57\x50\x16\xe7\x55\x9d\xd3\x76\x6b\xb5\x80\xc5\xde\x27\x6a\x78\x73\x79\x03\xc0\x55\x33\xdf\x57\x9b\xc2\x00\x66\x34\xc2\x8f\xf9\xa6\x2a\x58\xf0\xd4\x79\x0f\x85\x3c\x4b\xaa\xa4\x2f\x8b\xa6\x65\xf9\x00\xa3\xb1\x82\x47\x04\x93\x96\x37\x7c\x24\x53\x59\x85\x45\x39\x27\x43\x30\x1a\x68\xe2\x21\x91\xb3\x84\x01\x8a\xa9\xba\xfa\x41\x8f\x9e\x2e\xf6\xd4\x16\x4d\x3a\x27\x53\xc1\x2e\x7d\xf8\x94\xfe\x26\x2c\xaf\x08\x3f\x5e\x8d\x11\xcf\x99\xa9\x64\xee\x65\x95\x46\x5d\x8d\xc8\xdb\x51\x97\x11\x6f\x30\xd6\xb0\xbf\x46\x02\xdd\x5e\xe8\x95\x35\xe3\x0d\x4d\x6b\xf9\x0d\x7d\x3c\xa0\x05\xbc\xda\x60\x12\x72\x88\x73\x24\xd7\x36\x84\x37\x26\x90\x13\x59\x2e\x4b\x1a\x1a\x73\xb6\x3e\xff\x40\x7d\xcb\x59\x7c\x48\xde\xb1\xf5\xe0\x7d\xb2\x17\x89\xb0\xd9\x14\x4e\xfa\x06\x4d\x37\xed\x50\x5b\xf5\x40\x8e\x5e\x3b\x12\xab\x17\xeb\xcc\xd9\x1e\x18\x29\x7d\xf9\x09\x7b\x31\xb2\xbc\x29\x82\x89\x9d\xb3\x92\xed\x2d\xa6\x8b\x07\x71\x71\xeb\x67\x8b\xe4\x41\x5a\x22\xa4\xb3\xcc\x1b\xc6\xda\xc7\xd2\x41\x9d\x85\xa9\x71\x01\xaa\x8b\x24\x57\xad\x2a\x56\x2a\x29\x4b\x34\x5f\xcd\x15\xed\xb7\x4b\xc0\xc4\xd4\x70\x02\x5e\x47\xf3\xa9\x0a\xdc\x8c\x26\x06\xda\xa1\xb5\x4c\x1c\xf1\x56\xd6\x45\xd0\x66\xf2\x4e\x8d\x2a\xef\x13\x83\x7b\x1b\xe7\x13\x37\x21\x4d\xcf\x5b\x1b\x32\x9b\x5d\x67\x75\x60\x25\x59\x19\x8a\xdf\xe0\xd7\xe5\x8e\x65\x81\x6d\x07\xb2\xd8\x10\x64\x71\xab\xd2\xac\x23\x90\x9f\x85\x55\x13\xc5\x10\x83\xfb\xc6\xcc\x35\x5f\x59\xc5\xb3\x8a\x48\x01\xe5\xe3\xad\x47\x4c\x20\x24\x74\xc2\xee\xd3\xb6\xb7\x27\x69\xb4\x89\xad\xf3\x8e\xd8\x37\xed\xdc\x5a\xac\x98\x99\xbe\xc5\xd3\x9e\x2f\x64\xcd\xc0\x74\x03\x2a\x97\x92\x4d\x3b\xdc\x13\xb9\x87\xc2\xe1\xb4\x15\x27\xc9\x40\x4e\x09\xc5\x99\x89\x36\x09\x61\xdb\x92\x85\xd9\x6c\x2b\xd6\x12\xf9\x95\x5e\x94\x09\x49\x5c\x2b\x5a\xd0\x46\xb0\x4f\x58\xc9\x5d\x41\xe6\x57\x7a\x65\x80\xb2\x0f\x59\xb0\x42\x58\xca\xcf\x66\xa2\x22\xce\x70\x80\x05\x80\xd6\xf6\x08\xfd\xb4\x59\x51\xf6\xcc\x58\xba\xec\xd8\x10\xbc\x3a\xe2\x16\x1e\x89\xa7\x6c\x5e\x4a\x43\x28\x15\x80\xfd\xb0\xb8\x00\x73\x8d\xc7\xf3\xa7\xf7\xbb\xc7\x8f\xe6\x4f\x1d\x6f\x5d\xac\xcb\xc5\x07\xa1\xbf\xaa\x9e\x37\x9f\xa0\xc2\xd2\xc4\x33\x8e\x6b\x5e\x63\xf7\x8b\x74\x4d\xb9\xd0\x72\x88\x17\x50\x31\x42\x3c\xe7\x46\x93\x46\x9d\x61\x96\x31\x33\x63\x9f\xdb\x5d\x8c\x90\xa8\x34\x1a\x91\x9e\x25\x34\x8d\xbc\xf8\xb0\x0e\x3c\xdd\x9e\x72\x2a\x53\x2e\xf6\x09\x4f\xba\x18\xef\xa6\xda\x56\xfd\x88\x74\x98\x11\xe5\x4a\x82\x6a\x39\x31\x5c\xa2\x2e\x60\x03\x7d\x21\x76\x4e\xd5\xd0\xc6\x6b\xe4\x74\xc8\x49\xfb\xf9\x31\x25\x12\xda\xd3\x36\xc6\x63\xa2\x6e\x12\x3f\xcf\x79\xe7\x26\xcd\x27\xef\xb2\x7d\xad\x68\x2d\x0b\x23\xa6\x97\x15\x76\x19\x6e\xd7\x48\x3e\x80\x32\xcc\xab\x00\x9f\x7e\xeb\x30\xfe\x1d\x49\xfb\x4b\x57\x8c\x59\x3f\x77\xa8\x62\x61\x33\x9f\x9c\x3c\x62\x8d\x75\x29\x0a\x2b\x30\xc0\x70\x3c\xd1\xa4\xf5\xf8\xd9\x23\xd5\xe9\x03\xa5\x60\x42\xe6\xfb\xbe\x6f\x58\x99\xd8\x30\xd5\x48\x19\xeb\xf5\x19\x00\xa1\x1f\xf9\xfa\x30\x21\x21\x9e\x64\x6e\x4a\x13\xee\x33\x6f\x76\x55\x35\x6c\x30\x3a\xdd\x2b\x1d\x58\x21\x06\x90\xbc\xbe\x35\x52\x26\x82\xe0\x5e\x70\x83\xfd\x74\x5f\xbe\x6d\xcb\xef\x7c\x6f\xdc\x9a\x41\x09\xeb\x91\x14\x0f\xd6\xd3\x5b\xe4\x8a\xc1\xcd\x56\x9d\x6d\x7d\x6a\xb6\xf2\xf4\xd1\xc6\xe8\x45\x3e\xaf\x0c\x62\xb0\x24\x77\x16\x40\x34\x8d\x02\xa5\x67\x83\xb6\xbc\x1e\x37\xc6\x60\x1f\x77\xd9\xef\x60\x7d\xd3\x64\xdd\x5a\x74\x66\xeb\x1e\xe9\xdb\xf5\x2a\x32\xbc\xc0\xe8\x0e\xa2\xfb\xcf\xbc\x4f\x92\x66\x92\x6f\xde\x27\xb7\xb0\xf0\xfd\x8d\x38\x7c\x0d\xdb\x69\x93\x50\x86\x68\x59\x17\xf8\x20\x50\x56\xf9\xde\x27\xbc\x87\xbe\x19\xc8\x85\xbc\x45\x68\x5a\x20\xa0\x20\xeb\x97\x48\xdc\xb3\x29\x4c\xae\x26\x64\xc8\xb7\xa5\xb7\x11\xe3\xcb\x0d\xf1\xfa\xfa\xe5\x8d\xe9\x70\xd7\x2f\xd3\x0f\xa5\x56\xfe\xb2\xef\x77\xdd\xaf\xd0\xe7\x45\x39\x67\x4d\xfe\x2a\xbf\x65\xa9\x4d\x92\xf5\x07\x32\x6e\xca\x7c\xab\xbd\xe4\x4f\xa9\xe2\x94\xb6\x33\x4d\xe4\x4f\xda\xe5\x02\x3b\x51\x02\xf9\xc5\x86\x20\xc2\x8c\xca\x0d\x4e\x7f\x28\xd5\x00\xfd\xdb\xc8\xb8\xf5\x5b\x92\x6f\x76\xeb\x1c\x02\x44\x00\x06\x3b\x0e\x01\x61\xe2\x53\x80\x80\x16\xf6\xdb\xb2\xad\x16\xd0\xb6\xa8\xc0\xb7\x0f\xb3\xef\x60\xc2\xa3\x85\x42\x92\x64\x5c\x59\x41\x8b\xe4\x0f\x55\xc8\xdf\x2c\x65\x86\xf5\x76\xd5\x3f\x6c\x14\x51\x75\x9c\x4e\x3c\x87\x20\x20\xd3\x79\x28\x07\x84\x8d\x91\xe5\xbb\x9e\xcd\x3a\x94\x40\x32\x64\x54\xf5\x36\xff\xf4\xb9\x82\xdb\x66\xa2\x9c\xb0\x02\x5f\xc8\x16\xbc\x0e\x31\x66\x07\x04\xcf\x86\x9b\xa3\xd0\x34\xf5\x0c\x52\x7f\xa0\x5d\xad\x76\x60\xbf\xca\xef\x14\xbf\x7f\xb2\xe3\x08\xda\x42\x54\x02\x4f\xdd\xc1\x04\x6d\xce\x05\xf3\x4d\x48\xd2\x33\xbf\xdc\x42\xe9\xda\x91\x33\x34\x6c\x55\x7c\x1c\xe3\x60\xb5\x1a\x8a\x06\x91\xd4\xcc\x9f\xa1\x64\xbc\x47\x66\x2c\xb5\xd6\xa1\x6c\xea\x76\x4f\xdb\x5f\x00\x21\x96\xf4\x6c\x5c\x6e\xb0\xe0\x8e\x16\x27\x51\x60\xa2\xf4\xe5\xd8\x34\x7a\xa4\x7c\x4f\x4b\x66\xa2\x02\xb7\x92\x8e\x16\x94\xc9\x44\x21\x1a\x79\x31\xe2\x05\xe3\x82\x0c\x46\x7a\xd3\x66\x53\xae\xd8\x86\x66\x0d\x47\xad\x29\x09\xd1\x66\x20\x60\x21\x01\x79\x0c\xbb\xc9\x0a\xe7\x35\xd4\x02\xdc\x1c\xc5\xfa\x17\xf5\x9a\xe4\x79\xfa\xe4\x92\x81\x16\xa6\xdd\xd0\x9d\x7c\xcb\x0a\x47\xb7\x67\xd6\xcc\xca\x89\x48\x27\xf1\x6c\xf0\xc6\x8b\xaa\x4a\x34\x71\xbc\x7a\xa2\x45\xd6\xd8\x3e\x57\x3f\xc0\xbe\xb2\xea\x50\x5f\x1f\x57\xac\x95\x3b\xa0\x63\xd5\x3a\x8d\xb2\xfc\x54\xc1\x1e\xf9\xa2\x62\x3b\x17\x74\x4a\xa7\x4a\x23\x6f\x96\x6c\x88\x19\xb0\xee\x22\xa3\x12\x39\xb6\xf9\xc8\xaa\x1f\xb7\xc7\xb9\x52\x4e\xec\x93\x3a\x28\x9e\x67\xd5\x4e\x49\x1b\x6c\x0e\x65\x71\x42\x5b\x3c\x97\xa0\x7e\x82\x6d\xe4\x9b\x43\x7e\xdb\xc1\xc8\x62\x1c\x87\x6d\xb1\x52\x9c\xd9\x09\x09\x00\x2b\xf4\x2a\xb4\xf8\xd3\x8a\x33\x4c\xb0\xe9\x9a\x37\x0f\xb7\x4d\x1f\xa0\x5f\x82\x5b\xa8\xd9\x86\xd4\x76\xde\xf6\x9c\x01\x9b\xc0\x59\x37\x66\x4d\x92\x65\x7c\xc9\x0e\x2a\xc2\x21\x92\x72\xfe\x89\xb2\x27\x2c\x1e\x51\x33\x2c\xac\x10\x3f\x16\x5c\x93\xfc\x47\x98\x45\x97\x02\x63\xc3\x9e\xea\x7f\x28\x72\x71\x45\x38\x64\x3d\xcb\xeb\xdf\xbc\x37\xd1\xac\x98\xc5\x5a\xd2\xa1\x3d\x27\x5d\x4f\x4b\x80\x31\x6d\x07\x9f\x7f\x13\xf9\x4a\x75\x6e\xce\xc5\x12\x03\x9a\xba\x75\xb5\x4b\x1b\x58\x41\x43\x14\x7a\xb2\x0d\x44\x4c\xb6\xcd\x97\x90\xbb\xd9\x1c\xdc\xe6\x75\xb7\x2c\x61\x17\xde\xa6\x4b\x3e\x5b\x9b\x69\xd3\x2c\xb1\xca\x01\xe8\x91\x96\x45\x87\x41\xd3\xe1\x6e\x81\xb9\x0b\x26\x2a\x6e\x5a\x0e\x0a\x60\x7b\x44\x1f\x80\x55\x5f\x53\x67\x7d\x60\x32\x1b\xa1\x00\x52\x63\x74\xec\x63\xbd\xf9\x58\x86\x88\x58\xfe\xd1\x91\x07\x58\x57\xd3\xb7\x9c\x17\xc4\xd3\x24\x8d\xc2\xdc\x81\x53\xbb\xf9\x6d\x3c\x7a\x2e\xea\x28\x80\xcf\x90\x3e\x96\xda\x0a\x2f\x0c\x5e\x2b\x83\x0a\x61\xe6\xf0\xba\x42\xd2\xe7\x50\xf9\xe6\xd4\xc5\xc5\x3a\x5a\x9d\x37\xc8\x49\x25\x67\xb4\x40\x93\x77\xdc\x34\xa9\xf1\xeb\xbc\x5e\x95\x99\xb3\x31\x9f\xe1\xb7\x4a\xe8\x6a\x33\xee\x53\x33\x2c\xb3\xe5\xdf\x8a\x88\x19\xf9\xce\x92\x55\x6d\x16\x9f\x2e\xf9\x7b\x43\x32\x04\x4c\xc5\x7f\xa2\x2f\x96\x7e\xeb\x24\x3a\x2d\x1b\xd8\x19\xa0\x1e\x54\xfd\x2d\x8e\xf1\xe6\x24\x03\x8b\x92\x46\x29\xa4\xe6\x82\x3b\xc0\xf4\xf1\xdc\xbe\x69\x3e\x72\x66\x7a\xbc\xb4\xe5\x4b\xe1\xc4\x0e\xf5\xdc\xbe\x13\xd6\x92\xb7\x33\x6c\x0e\x2c\x4c\xc3\xea\x1e\x6c\x09\x0f\xee\x77\x0f\x78\xc2\x2c\x6f\x16\xc0\xef\xf2\x9e\xd8\x62\x2d\x2a\x8a\x70\xa8\xb0\xa8\x66\xbb\x2a\xc0\x55\x04\x6c\x86\x33\x72\x41\xc5\xfb\xc4\x1f\xdd\xdb\xa9\xfd\x94\x45\x55\x59\x4c\xa7\x32\xef\xbf\xd2\xa7\x5a\x44\x52\xe7\xb8\xa2\xaa\x2a\x0e\x46\xed\x34\xab\x8b\x0f\xb7\xba\x44\x6d\x48\xb1\x01\x49\xc9\xfb\x49\x7a\x2e\x1f\xa6\xf4\xee\x2b\x8c\xa9\x2a\x92\x64\x07\xbc\x07\x8e\x06\x3a\x11\xae\xd3\xea\x50\xe2\x8d\xd8\xed\x70\x67\x27\x2c\x48\x2d\x20\x5c\x3b\xeb\x80\x14\xc0\xa7\xd2\x81\xc2\xc6\xd6\x59\x68\x72\x75\x70\x8e\xc3\xa7\x13\xac\x7f\x12\xd8\xa1\x9c\xa7\x6c\x2f\x25\xc2\x21\xbd\x48\x07\xba\xcd\x49\xa5\xfa\x58\xe5\xce\x32\x43\xb3\xc5\xae\x0c\xba\x8b\x3e\x67\x37\x06\x9c\x0d\x8f\x7d\x6e\xf8\xa0\x45\xcf\x2e\x5e\xeb\x67\xb2\xdf\x15\x6c\xd3\xf2\x03\xfe\x15\x09\x6e\xc0\x71\x7e\x60\xae\xc4\xd0\xad\x98\x93\x66\x04\xbc\x48\x15\x8e\x7b\x76\x3b\xb3\xe5\x33\xe1\x47\xa3\x4b\xa8\x18\x82\x78\xdb\x03\x58\x8c\xe4\x0a\x32\xe5\x78\x12\xc3\xa7\x9d\x31\x5d\x37\x87\x74\x53\xd5\x1f\x3a\xc5\xa6\xb3\x7e\x38\xad\x98\xa5\xa6\xaa\xde\x8b\x7f\x85\x7c\x8e\xdd\x39\x4a\xd9\xea\x86\x2b\x5c\x4f\x55\xce\xe4\xfc\xe8\x14\xc9\x93\xb0\x5e\x79\xd5\x22\x38\xf8\x0e\x4e\x7a\x97\x25\x4b\xcd\xe0\x71\x76\x34\x45\x83\x6e\x9a\x4e\x0d\x8a\x9e\xa7\x70\x1a\xac\x0f\x0a\xa5\x53\xe0\x20\x74\x86\x4e\xed\x40\x0c\x4b\x2c\xb1\x23\x2c\xeb\x0f\x16\x6c\x56\x6d\xc5\x63\xea\x57\x3b\xe0\xc2\x74\x39\x65\x01\xd9\x33\x52\x7f\x07\x83\x09\xcf\x11\xde\x34\x76\x7c\x66\xcc\xd1\x32\x4f\x4c\x06\x10\x84\x60\x07\x8f\x3a\x3b\x24\x17\xad\xc0\x4c\xe2\x9f\xa1\x1a\xa3\x89\xf0\x78\x45\xe8\xc0\xf1\x8b\x66\x13\x49\x7a\x67\x6a\xdc\x77\xf9\x8c\xd9\x20\xff\x0d\x0e\xc2\x86\x26\x84\x48\xfd\xd1\x1a\x8e\x8a\xc8\x83\x3e\x8d\x16\x84\x95\x3b\xd0\xd8\xc2\xe1\x28\x09\x17\x33\x1c\x7c\xf1\xa9\x1a\x9b\x23\x71\x56\x06\x27\x01\xa1\x97\x1a\x07\x6d\x52\x05\x21\x00\x5a\x44\xe7\x95\x87\x53\x61\x31\x6c\x26\x17\x17\x2c\x07\xa0\x5e\x58\xb1\x92\x58\xda\x89\x7b\xc8\xad\x76\x2d\x4d\x3a\xed\xa6\x03\xf3\xd2\x88\x4f\x45\x3c\x09\x2c\xa9\xc1\xf1\xb1\x67\x45\xa4\x16\x6a\x5d\xcc\xd4\xf1\x65\x29\xde\x24\x59\xb2\xc9\xca\x1a\x55\x0e\xec\x72\x85\x0f\x27\xd4\x07\xac\x81\xd2\xd9\x1c\x0a\x60\x22\xee\x22\xc0\x42\x10\x33\x6f\x5a\x72\x16\x19\x6f\x61\x86\xfd\x7f\x66\xb0\x8d\x1a\x74\x06\x5b\xdf\xd5\x01\xd9\x70\x1f\x07\xdb\xc8\x88\x80\x28\x03\x9b\xaa\x4e\x7d\xb0\x55\xea\xe4\xbb\x1d\x93\x9b\x11\x41\x9d\xd1\x44\x49\xd8\x57\x95\x08\xc0\x4f\x59\x6a\x83\x8b\x08\xfc\x9b\x44\x6a\xef\x46\xb6\xc5\x88\x8d\xa6\xa7\x50\x4b\x08\x2b\x02\xcb\x9b\x3c\xef\x52\x22\xd2\xa9\x9a\xb3\x65\x44\xc8\x61\xac\x73\xd7\x19\x9d\xb7\x9c\xa8\x2e\xb0\xae\x56\x6b\x1a\x57\xb5\xe5\x83\xc8\x9c\xe7\xc0\x4e\xbb\xbc\xaa\xc6\xbf\x68\xe1\x35\xab\x9a\x0d\x33\xdc\x82\xf8\xe7\x38\x6e\xfb\xb8\xeb\xdb\xa6\x5e\x3d\x3d\x6f\x58\x87\x62\xf3\x06\xef\x08\x3f\x3f\x7e\xa4\xe9\xc4\x32\x78\x0e\xd9\x6b\xf5\x45\xd5\xbf\xdc\xcf\x1f\x74\xe9\x8a\x36\x7c\xec\x13\x8f\xf3\x74\xdd\x96\xcb\x27\xf7\xee\x77\xf7\x9e\xea\xe9\xb3\x38\x4f\x1d\x6a\x87\x96\xc7\x8f\xf2\xa7\x2c\x12\x77\xcd\x86\x24\xd5\xb8\x48\xb3\xdd\xca\xfc\x12\xfb\xdb\x0a\x24\xfa\x8f\x03\xeb\xb2\x06\xe6\xa8\x9b\x82\x1f\xaa\x70\xe6\x68\xdd\xcf\x8f\x4e\x9b\xc9\x3e\x91\xd1\x40\xa5\x0f\x06\xc6\x39\x5c\xdd\x07\x4c\x93\x0d\x06\xa9\x2b\x86\x5d\x73\x5c\x0c\x13\xc9\x36\x18\x6f\xaf\x30\x8b\x03\xc4\x62\xd4\x61\xe5\xa9\x28\xf5\x44\xc4\x07\x4e\xb3\x36\x65\xe3\xa4\x2f\x23\xad\x80\x7e\x99\xa7\x9a\x7d\x12\x52\xa0\xb7\x6c\x30\xc1\x46\x34\xfc\x8d\x31\x00\x19\xbd\x2e\x7f\x1b\x01\xf2\x44\x3c\x51\x9c\x08\x04\x9c\x5b\x06\x30\x46\xcd\x2a\xc9\x81\x79\x5a\x2f\xc0\xca\x54\xb1\x10\xef\x13\x91\xb2\x84\x24\x49\xec\x66\xf6\x16\xd3\xf6\x39\xc8\x94\xd6\x9c\x70\x02\x93\x18\x7e\x1e\xb7\xeb\x07\x6e\xcd\xf9\xf3\x2c\xf4\x65\x38\x62\xc6\x18\xc6\x74\x0a\x74\xd0\x58\x60\x28\xd0\x99\x7a\xad\x66\x01\x64\xd0\x36\x1c\xa8\x00\x6f\x1a\x3d\x46\x49\x2d\x11\x73\x42\x32\x7f\x5f\x46\x8b\x99\x3b\x01\x5f\x33\xf1\xdb\x80\xa5\xe1\xbf\xa4\x45\x4e\x9c\xa0\x6f\x3e\x10\x31\x8d\x8b\x20\xfd\x58\x21\xc7\x61\x4c\xf0\x56\xfe\x72\xea\xd9\xc3\x50\x14\xd7\x53\xcb\xa3\x2c\x26\xe0\x2c\x5a\xab\xf3\x67\x11\x33\x49\x09\x81\x77\x5e\xd5\x85\x70\x12\x65\x04\xea\x20\xe2\x38\x00\xc9\x17\x35\x03\xc1\x96\xc9\x1f\xfa\x3b\x9c\x96\xa8\xfe\x60\xb9\x10\x03\xdf\xd7\x01\x03\x15\x72\xc8\x04\x15\x6e\x90\x57\xa4\x57\xc1\x69\xed\x54\x2a\xbc\xe1\xec\x4e\x3d\x36\xf5\xf0\xd7\x8a\xbc\xd0\x44\xac\x01\x00\x0a\xc2\x3b\x87\x08\xfc\xf2\x2a\xb6\xd5\xa2\x07\xfb\xea\x8e\x86\x39\x20\xaa\x33\x96\xb9\x96\x83\xfe\xf4\xf4\xea\x15\xed\x19\xae\x41\xab\xf4\x97\x9c\xe4\x48\xe9\xc2\xc1\xa9\xf7\x4c\x6c\x43\x9e\xeb\x04\x60\x29\x6e\xd6\x44\x94\xc4\x12\x77\x83\x1a\x0d\x48\x06\x13\xe7\x0b\x8e\xcb\x2e\x30\x79\x48\x6b\xe8\xc9\x70\xb7\x72\x43\xfd\x86\x30\xeb\x0c\x6f\xbc\xb4\x76\xb7\xcc\xff\x03\x9f\x9e\x5c\x30\x74\x00\x07\x1f\x38\x13\x11\x24\xd4\xfe\x94\x97\x70\xeb\xf8\x87\x75\xd8\x04\x88\x60\x2a\x43\x36\x32\x39\x99\x9e\xa9\x4c\x16\x9b\xe2\x2c\x3b\xab\x27\x1e\xf3\xe7\xf8\x0c\x13\xbe\x57\x4a\xef\xe0\x32\xe1\xa8\x02\x52\xbe\x9a\x6c\xd6\x51\xb4\x34\x3d\xe0\x37\xa9\x6c\x84\x72\x2c\xce\xad\x88\x6c\xad\x14\x11\xf8\x7f\x52\x2d\x87\x72\xc3\x8e\x9b\xda\xba\x3f\x1a\xd6\xa1\x47\x07\xc3\x0a\x14\xa8\x65\xa5\x17\x05\x05\x15\xa1\xcd\xca\x2a\x23\x08\x5a\x6e\x38\x0b\x16\xbd\xd6\xf6\xeb\xb3\xd3\x37\x6f\x2e\x6f\xfc\x36\xcd\xeb\xa0\x2e\x48\x98\xf8\xc6\xb9\x55\x8d\xfa\x65\xce\x55\x6e\x02\x63\x08\xef\xde\xa5\x25\x8e\xc1\x85\x6c\xca\x6a\xa7\xcf\x55\x03\xde\xd3\x70\x5f\x8c\x97\x47\xfd\x2f\x8e\xcd\x5f\xf2\x8e\xe5\x9b\xf7\x89\x59\x7e\x2f\xf9\x7f\x12\x1a\xcf\x83\x03\x0b\x2c\x3d\x7f\xae\xe1\xdd\xaa\xa9\x03\x4d\x31\x32\xa6\x83\x49\xef\x73\xa8\x10\x84\xfb\x06\x7b\xc5\x32\xc5\x99\xe7\x09\xdb\x06\x9b\x16\x0b\x86\x91\xbb\xaf\xab\xdf\xf7\x10\xd0\x58\x81\x20\xe6\xc1\xde\x7a\xf3\x6a\x23\x1b\xca\x5f\xdc\x0f\x49\xe7\xaf\x81\xeb\x6f\xd0\x38\xfd\x7a\xdc\xed\xd8\x01\x91\xf6\x86\xee\xc9\xbd\x7d\x95\xb2\xa9\x89\x1d\x7e\xee\x3d\x25\x71\x9f\x7d\x07\x68\xfa\x08\xe2\x69\x50\x1d\x5f\x28\xf1\x75\x7e\xab\xfa\x1a\xf5\x17\xeb\xe8\x63\xbe\xd9\xc7\x5a\x3c\xaf\x1b\x2e\xd3\x7d\x97\xa0\xa8\x9a\x32\x87\x97\x51\x90\x67\xce\xbf\x9c\x07\x0f\x60\xa4\x4e\x0c\x45\x35\x2c\xb1\x45\xf5\x62\xc4\x4c\x03\x54\xf0\xba\x44\xab\x65\x88\x6e\x3d\x6c\x72\xcb\xbf\x5b\xb4\x15\x3c\x98\x25\x9d\xaf\x1f\xa5\xc1\xd5\x23\x97\xe8\xdb\xbd\x26\xa2\xa1\x31\xcd\x56\x55\x4f\x7a\x1d\x5f\x37\x82\xbf\x6b\x42\x6b\x8e\xb6\x01\x5c\x5c\x92\x2f\x4b\x19\x15\xe5\x1d\x53\x60\x61\x7c\x61\x39\x4d\xc9\x87\x3f\xf4\xf7\x44\x29\x05\xb4\x6b\x53\x6c\x47\x6f\x48\xaf\xad\x78\xd5\xbc\xa2\x7f\xb4\x23\x8a\xfc\x1c\xcf\x71\x87\xf2\x6a\x15\x10\x25\xcf\x55\xa1\xce\x4e\x3a\x21\xea\xe5\x14\x4c\x89\x7a\xc7\xaa\x19\x16\x18\x43\x42\xfa\x0c\x09\x7a\x49\x89\x3a\x41\x13\xf0\x51\xc4\x08\xb9\xb6\xf4\xca\x52\xbe\x65\xd5\xe9\xbb\x23\xc6\xc9\xe1\x09\xdf\xd7\xdb\x28\x87\x35\xdc\x6d\xaa\x64\xf7\x8f\x8c\x0d\xcf\xa9\xba\x08\x45\x07\xe3\x89\x5e\xa2\xb2\x2b\x2f\xee\x16\x95\xdc\x79\x09\x73\x8f\xaf\x28\x53\xb1\xf3\x78\x61\xc1\xbb\x6e\x4e\x0b\xe3\xde\x53\xc1\x99\xad\x2a\xab\x55\xa7\xe0\x42\xef\x71\x05\x73\xa0\x10\x33\xb8\xe7\x67\xa6\x39\xb2\xff\x04\x6b\x65\x6a\x2d\x98\x86\x8a\x98\xa0\x0a\x22\x79\xe0\xf2\xff\xe8\xc5\xab\x1b\x38\xfc\xd3\x8c\xc1\x41\xdb\x6e\x35\xb0\xf3\xe5\xcc\xd5\x69\x87\x4c\x00\x31\x7f\xcd\x57\x92\xa8\xe5\x38\x11\x2a\x5f\x6c\x8f\x37\x57\x90\x3c\xbc\x1d\x92\xc8\xaa\xb4\xa5\xae\x6b\x74\xe9\x16\x3b\xdc\xfd\xd9\x67\x3a\x5e\xe5\xb8\xc6\x16\x60\x3a\x74\x54\x62\x9e\x5c\xf0\xa6\xb2\xbb\xcd\xd8\x4e\x88\x7d\x64\x77\x9b\xc0\x9d\x87\xb6\xdc\x0c\x12\x89\x24\x82\xab\x6f\xaa\x9d\xdc\xb4\xa4\x8c\xaa\x14\xa7\x5e\x7c\x5c\xfe\x6b\x22\x28\x74\x33\x0c\x42\xc1\xf5\x4b\xce\xa0\xdd\xe3\x67\x30\xd9\x9e\xb5\x44\x39\xa5\x78\x72\x2f\x9b\x13\x93\xf8\x70\x2f\xd0\x1a\xf9\xa2\x26\xab\x8a\xdf\x90\xf0\x7a\xd0\xb3\xf4\x5f\xe5\x2b\xb1\xdf\x7f\xc5\xaf\x3d\x3b\x89\xca\xc1\x3d\x7f\x24\xfa\x8b\x8d\xfd\x89\x5e\xdd\x63\x6e\x98\xb0\xe6\xa0\xf3\x49\x5a\x43\xc8\xba\x7e\xdf\xf3\x28\x45\xe1\x7d\x92\xfe\x99\x7f\xa5\x2f\xf8\x97\x0e\x85\x39\x82\x5b\xe3\xa0\x9a\x01\x8f\x08\x9d\x1e\xc1\xf2\xd4\xf5\xd8\xf3\x04\xf1\x94\x0a\xb0\xaf\x2e\x52\x06\xc8\xf7\x06\x92\xdd\x9e\xdd\x41\x78\xde\xad\xb5\x2b\x4a\xc1\x25\x0c\x4e\xe4\x8d\x37\xa8\xc1\x9d\x04\x45\x75\x24\x8e\xd5\x28\x8b\xe9\xdb\x12\x12\x2d\xfd\xd3\x3c\x5c\xf4\xec\x73\xd8\xfe\x05\x88\x48\xee\xff\x4b\x6f\x28\x45\x21\xca\x30\x2b\x51\x50\xe4\x0f\xaf\xfc\xf1\x05\xc1\xf1\xc5\xc0\x4d\x3e\x2f\x91\xfc\x1a\x1f\xb4\x10\x88\x73\xf6\x84\x38\x18\x62\xdc\x8f\x84\x7b\x5e\xf5\xe2\xec\x8a\xaf\x44\x5d\xb1\xe5\xd4\x47\x3e\x13\xd8\xd4\xdb\x9c\xfd\x12\xdf\xe6\x07\xf9\x49\xf8\xd7\x9b\x83\x2f\xe5\x4b\x92\xe1\xe5\x2a\xa0\x70\x72\x75\xf0\x10\x51\x94\xb2\xaf\xec\x3b\xb1\x0e\xcc\xc6\x1d\xb1\x9c\xc1\xc5\xc5\x74\x31\xc8\x5f\x8a\xa2\xf5\x9c\xd5\x2c\x4b\xcb\xc1\x15\x53\xf3\x1b\x72\xe9\x5b\x62\x29\x62\x69\xbe\x90\x2f\x97\x53\x88\x4b\xdb\x39\xf6\x14\x4d\x33\xaf\xe3\x4b\xfe\xef\x52\x89\x8c\x74\x55\xd1\x7f\xe7\xc1\x2b\x77\x7b\x59\xc3\x92\x9b\x92\x3e\x79\x36\x9c\x8b\x20\xab\xe6\xbd\x79\x0e\x0b\x3f\xad\x08\xe4\x87\xd9\x0b\xc2\x7f\x9b\xb9\xf2\x67\xfc\x33\xdd\x8c\x6a\x71\x93\x1b\xce\xed\xa0\x99\x10\x86\x9a\x9a\x04\x93\xe6\x42\x48\x69\x71\x3b\x05\x4c\x52\x75\x1d\xc1\x5e\x52\x42\x48\x5a\x51\xc5\x2c\x0f\x0e\x6a\x86\x88\x38\x0d\x4f\x1b\x0e\xdf\xef\x80\x90\xac\x9f\xe3\x7e\x06\x40\xd2\xcd\x7c\x02\x94\x6d\x15\x1e\x8e\x06\x3e\x04\x52\x73\x9a\x63\x13\xc3\xd9\xf3\xf3\x43\x53\x3b\x9c\x20\xc9\xcc\x48\x12\x59\x94\xce\x47\x1d\x40\xd8\xcb\xf9\x8e\x6d\xd4\x8c\xab\x4c\x1b\x8b\xea\x03\x42\xfb\x7c\x4e\xd9\xf7\x0b\x60\xd3\x15\x66\x5c\xf9\x2c\x41\x9d\x65\xd2\xe2\x62\xbf\x66\xab\x39\xaa\x32\xcc\x23\xb1\x23\x13\x41\x4a\x10\xe1\x84\xaa\xcd\x44\x89\x3b\x29\x6a\x08\x73\xb4\xe6\x11\xdd\x68\xc9\x3b\xa6\xd7\x43\xf0\xe5\xd9\xe3\x55\x1f\x29\xa7\x72\x0f\xa4\x9d\x71\xce\x8c\x6f\x32\x38\xfe\x79\x8a\xe3\x7f\xf0\xd0\x29\xd0\x4e\xef\xda\xd3\xd6\xcb\xfb\xb4\xeb\x6a\xa1\x86\x8b\xa9\x42\x32\xcb\x45\x36\xbf\xd5\x32\x32\xcf\xb8\xaf\x75\xa4\xc8\x96\x3d\x08\xb0\x29\x6b\x91\x0b\x97\x30\x51\xa4\xd3\xfb\x9e\x7c\xe1\x72\x9c\x33\x63\x89\x18\x1e\x06\xcc\x9b\xba\x49\x10\xa6\x52\x80\x5c\xe2\x63\x0a\x44\xcc\x79\xaa\x90\xf3\x2e\x20\x4e\xd2\x76\xfc\x35\xd9\x30\xbb\x4d\xb8\x12\xaf\xe1\x44\xd1\x7e\x41\x39\xf6\x30\x64\xbe\x2a\xd6\xdb\x8b\x06\xfe\x87\xf8\x79\x47\x3b\xbe\x80\x34\x34\x2a\xc1\x2b\x09\xb3\x40\x20\xf2\x9d\xde\x7f\xf7\xfd\xfb\x8e\xa7\xc1\x1b\xc6\xdf\xfd\xf0\x9e\xa4\x9c\xfb\xef\x7e\x7c\x0f\x8b\xf8\xa8\x70\xb6\x64\x83\xd0\xb8\x06\x14\x34\xe8\x5d\x5b\x7e\xac\x9a\x3d\x36\x60\xfd\xf4\xfc\xe1\x93\x4c\xc5\xa7\x3e\x5e\xe2\xee\xde\xe9\x60\x85\x17\x2e\x2b\x5e\xe1\xf5\x7e\x9b\xe9\x18\x3b\xe1\x00\xf6\xcb\x15\x37\x0c\x64\x39\x37\xf9\x9b\xfb\xcd\xc3\xad\x0a\x1e\x2c\x75\xde\x84\xbb\x7f\x91\x5f\x4f\x31\x10\x1e\xfa\x6f\xae\xa5\x26\xb0\xa5\xdf\xc8\xd5\x59\x96\x85\x9d\x55\xff\xb6\xec\x67\x31\x57\xb2\xf8\x00\xe8\x72\x9c\xa5\xbd\x88\x41\xd4\x0b\x13\x39\x06\xde\x96\x40\x8c\xc1\xbd\xc5\xcf\x41\xe6\xb0\x32\x01\x9a\xaa\x4d\x59\xad\xa7\x92\xb3\x41\xbe\xe0\x5a\x31\x25\xdb\xd0\xd7\xa1\x49\xba\xe4\xea\xb0\x9f\x5f\x59\x8b\xc8\x13\x24\x67\x2e\x5d\x3d\x4b\xc2\x78\xbd\x80\xdd\x15\xa6\x69\x1e\xaa\xfa\xe1\x09\xf4\x57\x36\xb1\x6b\x34\xc2\xc9\x15\x3e\x2c\x59\x6e\x20\xaa\xd3\xb4\xa3\xcd\xc8\x28\xa4\x89\x76\x27\x85\xa4\x78\x52\x6a\xc0\xb1\xed\x1e\x0a\x9f\x4e\x70\x52\x04\x5a\xd5\x99\xf9\x5e\xab\xa0\x4f\xcc\x92\xfd\x8b\x64\x44\x44\x46\x7c\xf5\x4e\xed\x8c\x47\xaf\x09\x45\x87\x57\xc1\x6d\x11\x9d\xd2\x70\xb5\x96\x05\x8c\x07\xbf\xd0\x3f\x87\xd7\x81\xcf\x84\xf5\x8f\x5b\xa1\xee\xd3\x3f\x4b\x92\x7d\xd1\x16\x9d\xdf\xb7\xe3\xfc\x45\xb3\x69\xfc\xbe\x8e\x5f\x43\x00\xb1\xfb\xdd\x2f\x06\xb2\x99\x64\x7b\xda\xd6\xd5\x0b\xc2\x8d\x77\x1e\x81\x9c\x18\x8c\x64\x0c\x3c\x82\xe2\x4c\x77\x19\x40\x3a\x88\x2b\x01\x76\xd9\x7a\x5c\x8b\xfa\xd5\x00\xd4\x19\x1e\x27\xc1\xa6\x2c\xcc\x22\x65\x84\x16\x65\x96\xd9\xab\x5a\x6e\x9c\x73\xdd\x7c\xa6\x1a\x18\x99\xb5\xe6\xe3\x36\xe5\xe9\xa6\xbd\x71\x59\x7a\xfa\x99\xc3\x2b\x51\x82\x78\x45\xed\x72\x22\x3d\xf1\x61\x50\x5d\x82\x53\xd4\x21\xa3\x9b\x86\xb3\x81\x1a\x70\x7f\x68\x52\xa7\x85\x21\xf4\x0e\x6f\x04\x79\xca\x85\xed\x42\x11\xc8\x5f\xcb\xcf\x06\xd5\xe2\xee\xe8\x13\xb8\x44\x0d\x1b\xd4\x16\x9e\xa4\xfa\xa5\xf9\xba\xc5\x39\xc5\xf1\x39\x7e\x6b\x27\x14\x86\x78\x73\x5b\x76\xfb\x0d\xf6\x00\x1c\xba\xc9\x8f\xa5\x1c\x17\x19\x10\x1f\xfc\xaf\xc4\x5e\x60\x6d\x05\x8c\x1c\xb9\xe6\x05\xc0\xb9\xf3\x72\x91\xc3\xfb\x31\x57\xd6\xbc\xa6\x25\x19\x8c\x9e\x40\xf8\xca\xbc\xd5\xcf\xee\xa4\x61\x44\x1a\x66\x5b\xae\x7a\x33\x65\x0c\x30\x35\x2f\xfb\x03\x4f\x9d\x9c\xca\x33\x72\xc5\xe6\xd0\xfd\x14\x6e\xc6\xc4\xc1\x1e\xa1\x8d\x47\xbc\x23\x17\xca\xcd\xfe\x05\x3f\x84\xa7\x29\x2a\x07\xf2\x7a\xa8\xf6\x2a\x08\x16\xb4\x4d\x2a\x53\x1c\xce\x9a\xb6\x25\x35\x8a\x5d\xbc\x30\x15\x52\x78\xeb\x63\xbe\xfd\x63\xcc\x13\xdf\x44\xc4\x7c\xea\xae\xe9\x3f\xba\x74\xad\x1f\x35\xe9\x66\x6d\xcd\x48\xda\x3f\x57\x3d\x95\xfe\xff\xdf\x1b\x8d\x92\xb4\x9f\x85\xec\x12\xf4\xe9\x7f\x46\x50\x43\xcd\xd9\xe7\x89\xc1\x14\x04\x55\x9a\x7b\x5a\xa1\xf9\xba\xb1\x12\xa9\x08\x6a\x9c\x07\xba\x64\xe8\x91\x52\x38\x93\xd4\x6b\xd2\xe2\x79\xad\x2b\x36\xdd\xc9\xca\x2c\x42\x0d\xa4\xd8\xd6\xb7\xc4\x54\xe3\x72\x6e\x46\xd5\xba\xc5\xad\x30\xf1\xda\x96\x2a\x38\x54\x0d\xad\x0f\x3b\x4f\xa3\x5f\xce\x5a\x3f\x5d\x97\xc2\x16\x7b\xef\x31\xcc\x58\xa4\x42\xb0\x48\x05\x2c\xcb\x2d\xdf\xbc\xce\x60\x90\x46\x37\xc2\xfb\xff\x6c\x77\xb4\x81\x33\xc4\xc3\xc1\xe8\xc5\x94\x34\xe8\x4a\x50\x2d\x0c\xbe\xc7\x6a\x7e\xd0\xdf\x5d\xb7\xad\x50\xf1\xb5\xe7\x05\xc9\x07\x4f\x9b\x8a\x43\x9f\xd8\xd2\x32\xd3\xc4\xd1\x26\xa7\xc2\x14\x85\x46\x2b\xc2\x51\x23\x77\xc8\xe1\x3d\x52\xf5\xd1\x84\x0e\x97\x3c\x26\x37\x5e\x79\x81\x81\x29\x30\x85\x78\xd5\x31\xc8\x9e\xd0\x73\x83\xdc\x69\x5d\x77\x08\x50\x78\x0b\xc2\xfd\x2e\x6a\xbb\xc9\x68\xca\x33\x55\x44\x88\x4d\x32\x01\xe0\xd7\xb0\x0b\x26\x81\x0f\xab\x76\xb2\x6c\x3c\x22\xda\x92\xe6\xcc\x1b\xe5\xe2\x9f\xf0\x9e\xc0\xa8\x46\xa8\x53\x97\x76\x3d\x59\xd4\x7d\x2d\xaa\x7e\xc0\xba\x26\xb1\x63\xd2\x08\xee\xd4\x85\x19\x13\x07\x3e\x61\xae\x1f\xf4\x39\x8d\x98\xcd\x58\xe9\xb7\x16\xea\xe6\xbb\x78\x90\xa5\x38\x70\xf2\xff\x30\xc3\xc5\x42\xd0\xaa\x32\x59\x21\x5a\x23\x2a\xd7\x14\x1f\x23\xe0\xc4\xdd\x48\x7b\x70\x4b\xd5\x3d\xdc\x6e\x1f\x16\xc5\x83\x89\x51\x07\x3b\xba\x1b\xf6\xc0\x0f\x47\x95\xe7\xc1\xf2\x0f\x6a\x0a\xc4\xa3\x69\xdc\x31\x40\x34\x4f\xbf\xf2\xce\x56\xf2\x79\x4a\x5a\x78\xbc\x61\xef\x0e\xe6\xae\x63\xb6\xd6\xec\x08\xed\xee\x6c\x9f\x97\x98\xdc\x74\x0a\x47\x32\x10\x2c\x83\xac\xc1\x85\xcc\x3b\xbb\x67\x78\x50\x99\x84\x59\xd2\xf6\x08\x4a\x24\x3c\xd5\x51\x84\x04\x02\x9d\x47\xaa\x13\xea\x26\x00\xa7\x44\x3a\xdf\xf6\x7f\xa4\x58\x37\xd5\xf8\x14\x09\x7c\x4e\xb0\x9b\x8a\xb1\x67\x69\x33\xa1\x6f\x38\xd0\xcb\x97\xcf\x0a\x02\x3a\xe8\xde\x19\xfc\xf6\x60\xeb\xa6\xf9\x20\x41\x2d\xe6\xf8\xf4\x39\xab\xaa\xb7\x4c\x0e\x22\xf6\x32\xce\x25\x71\xa9\x5a\x84\xb1\xfc\x9e\x71\xc2\x44\x17\x0b\x9e\xe3\x36\xfb\x87\x98\xd2\xce\xf1\x2b\xfd\x1f\x4c\x18\x0e\x44\xbd\xdf\x2f\x2d\x88\xc9\x35\xfb\xc0\xbb\x5c\x75\x54\x0e\x9a\x52\xbf\xea\x71\x5b\xea\xf3\xcb\x07\x14\x5f\xe6\x9b\x3e\xe5\x93\x1e\x5f\x94\x9b\xf9\xda\xdd\x55\x1b\x3e\xc9\xd0\xcf\x4b\xbb\xad\x33\x06\x73\x07\x77\xfe\x86\x4e\x7c\xcc\xc8\x9e\x44\xb5\xf8\xea\xe2\x96\x0e\xdf\xe6\xe1\xa4\xf8\x6a\x10\xd1\x9d\x8b\x5a\xa6\x8a\x22\x94\x57\xf8\xe5\x74\x41\xf7\x10\x07\x12\xf7\xf4\x58\xda\xe8\xe4\x98\x56\xef\x1b\x89\x9b\xba\x28\xb8\xb9\x53\x3a\x3b\x1c\x48\x07\xc7\x9e\xa1\x07\xa2\x0f\x30\x21\x7e\xee\xd6\x55\xe4\x05\xd3\x3b\xb8\xaa\x01\x4c\x07\x27\x9f\x03\x40\x43\xca\x25\xf1\x0f\x71\x1c\x93\x62\x79\x74\xd5\xa9\x0f\x0c\x2f\xe2\xec\x31\xcf\x17\x1f\x5c\x8f\x98\x3d\x95\x6d\x8f\x4b\x46\x63\xb4\xb3\x3f\x34\x2d\xa0\xec\x7b\x6a\xe6\x21\x64\x0c\x89\xb3\x86\x41\xc8\xfa\xab\x96\x01\x3e\xe0\xff\xc6\xfe\x6c\x1f\xab\x62\x4f\xd4\xc7\x73\x71\x57\xbd\x3f\xc4\xf5\xd2\x8a\xc7\x81\xeb\xd1\xba\x07\xf3\xc9\x02\x47\x85\x98\x07\x7c\xb9\x0f\xb7\xcc\x96\xfe\xf2\x64\x37\xd5\x32\x33\x21\xa7\xa4\x2b\x0e\x70\x09\x32\xf5\xb7\x88\x42\x56\x25\x7c\x08\x1e\x38\xe2\x24\x6b\xa2\xd4\x4f\xe9\x68\x3e\x62\x6c\xc9\xcd\x34\x27\x79\x7d\xd6\x07\x68\x44\x08\x03\x2c\x0d\xea\x03\xc2\x02\x4f\x1d\x9b\x7d\x1e\x3e\x07\x8a\xba\x15\xed\xcc\xe4\xda\x90\x24\xaa\x7a\xb1\xd9\xc3\xe7\x90\x99\x11\x0b\xc3\x27\xca\x83\x4f\x9c\x31\x50\xee\xe3\x04\x4e\x5d\x9e\x07\x36\x11\x66\x07\x7d\xc5\x89\xb5\x20\xe0\xd5\xa8\x69\x7f\x4d\xe8\xc4\x3b\xc1\x38\x17\x01\x96\x4d\xd9\xf7\xa7\x2e\xca\x1d\x47\x8f\x63\x27\xd0\xa5\xec\xb6\xc2\xf3\x3f\xd3\xea\x0f\x77\xb5\x2a\xbe\x3b\x53\xcd\x9a\x47\x99\xde\xbb\xc5\xa2\xe5\x58\xa2\x9f\x69\xed\x47\x6b\x2d\xdc\xb2\x3e\x94\xe5\x2e\x68\x22\xee\x7e\xe0\x61\x0f\xe6\x19\x3b\xe7\x4c\x70\x34\xbd\x51\x65\x57\x30\x8f\x30\xf1\x60\x27\x0c\xbc\x3f\x6c\x37\xfb\xcc\x75\x93\xf1\x02\x31\xcb\x1d\x02\xe0\xc2\x7a\xe7\x60\xd8\x72\x91\x05\x9c\x1b\x3e\x8e\xc6\x92\x27\xaa\x12\xdf\xc9\x81\x5b\x8a\xbf\x93\xe9\xba\x66\x05\xda\xe3\xdd\x8b\xdd\xe3\xd2\x09\xb7\x38\x07\xca\xbe\xc7\x21\xb1\xa6\xe2\x71\xce\xe3\x39\x0b\x92\x8f\x17\x18\xf8\x79\x47\x75\xc5\x7e\xde\x41\x07\x85\x8a\x8e\xd5\x73\x36\x59\x87\x52\x5e\x38\xb5\x7c\xf5\xba\xc2\x25\xdb\x4c\xe3\x01\x69\xf0\xe6\xe1\x2d\x57\xcd\x3d\xac\x9b\x20\x1a\x85\x38\x9f\x63\x2f\x0a\x3b\x32\x8b\xc7\x7a\x10\xf1\x44\xf1\xa2\xc2\xca\x40\x8a\xb1\xbd\xc5\x44\x19\xa8\x8a\xdb\x3d\x6d\x9d\x9b\xea\x03\x0c\x3c\x44\x98\x12\xae\xf3\xf2\xfa\x06\x56\x1d\x5a\x00\xb4\x8f\xae\x98\xef\xa6\x7f\x5d\x97\x35\xa2\xd5\x71\xd4\x4c\x65\x44\x8b\x05\xdf\x19\xa9\x6a\x0d\xe8\x75\x28\xcd\x93\xb7\x2e\x36\xc2\xb6\xc2\xdb\x37\x26\x3d\x88\x75\x27\x45\x64\x4c\x5e\x69\xdd\xae\x5c\x90\x4c\x3c\xe3\xd3\x9a\xb6\x46\x1c\xeb\xd4\x0c\xc2\x77\x3a\xa0\xb8\x91\xc0\x13\x84\x8d\x40\x01\x5a\x14\x25\xa1\x51\x53\xf7\xe0\x11\x7a\x86\xa0\x53\x52\xb0\x61\xf8\x2e\x19\x18\xfc\x55\x1c\x48\x2b\x66\xd7\xa9\xba\x40\xdc\xe5\x97\x7f\xb4\x0f\x61\x40\x35\x69\xfa\x33\xa2\xf0\xb0\xaa\x99\xd7\xc7\x4d\x09\x9f\x00\xe9\x76\x8d\xb8\xf4\xbd\xd5\xcf\x31\x90\x68\x4b\xdc\x93\x97\xf2\x35\x06\xd9\x69\xa4\x16\x17\xb3\x65\x0c\x32\x6f\x0a\xd6\x7f\x9e\xd1\xbf\xb1\x10\xed\xa2\x3a\x9b\x24\x0d\xe2\xdc\xf1\xed\x60\x39\x1c\xe5\x0c\x42\x77\xb9\x59\xca\x4d\x6f\xb6\xb8\x40\xdd\x13\x03\x16\x3b\x92\x4a\x20\x40\x76\x64\x42\x05\x7a\xbd\x09\x9e\xfb\x08\x6f\x14\x5a\xa7\xf4\x22\x60\x78\x07\x6c\xd8\x27\x18\xdb\xad\x5f\xaf\x44\x06\xc1\x34\x40\xb9\x95\x58\x54\x27\xbc\xb5\xb0\x5e\x68\xc7\x5f\xb6\x01\xed\x24\xfe\x14\x5f\x4a\x21\xa2\x46\xf0\x04\x03\x11\x19\x56\x02\xe8\x06\x7e\xa4\x76\xbd\x12\xc4\x06\x84\x8d\x7b\xa4\x3e\xb8\x8c\x20\xf1\xbe\x1d\x41\xf8\xc3\x39\x00\xd9\x6d\x97\xe1\x3e\xa3\xe0\x5e\x57\x78\x19\xad\x87\x80\xa3\x44\xe1\xb6\xd1\x51\x8d\x2a\x25\xd6\x49\xe6\x14\x66\x9c\x0c\x8c\x80\x8c\x2b\xf6\xb9\x0b\x56\x37\x6f\xd3\x24\x1c\x89\x14\xdd\x96\xab\xbc\x2d\x2c\xa4\x84\x72\x1a\xbe\x49\x00\x8e\x12\x5e\x2e\xcc\x37\xa4\x7c\x6b\x15\xc4\x19\x09\xe4\x03\x7b\xf3\xd0\x7c\xb3\x8c\x63\xf6\x06\x96\x16\x0b\x61\x63\x7c\x6f\x8b\x98\xcb\x7e\xc7\xfc\x46\x98\x97\xb5\x83\x21\x7f\xfb\xa7\xeb\xcb\x37\x27\xe9\xa7\x87\x87\xc3\xe1\x21\x17\x7f\xb8\x6f\x37\x7c\xc3\xa9\xe0\x90\x15\xff\xfd\xe2\xf5\x49\x5a\xf6\x8b\xef\x66\xa4\xa8\x83\x0d\xf9\xd5\xad\xce\x85\x30\xa7\x33\x75\xb1\xe8\xf8\xc7\xd9\x93\xae\x18\x0d\x68\x1c\x46\x3a\x0a\x37\x48\x9e\x3d\xf3\x59\xd0\xc9\x14\xdf\x05\xaf\x1c\x96\x8b\xb6\xc4\x91\x3f\x3e\x82\x8c\x0d\xe9\x04\x53\x57\x95\x87\x20\x15\xb5\xa3\xdd\x78\xb5\xd0\x80\xca\x03\x10\x3b\xe1\x3a\xc3\xd9\x96\xcb\xc4\xc4\xb9\x6d\x85\xa3\x52\x75\xeb\x66\xbf\x29\x62\x8e\x49\x38\xd3\x89\x28\x8b\x9f\x87\x85\xe1\x4f\x87\xe8\xab\x4f\xd2\x3f\xb1\xa5\x88\x27\x4a\x68\x8b\xb3\x8c\xb6\x00\x3c\x1b\x16\x46\x98\xb0\x40\x30\xa6\x01\x48\xf8\x33\x13\xcc\x7d\x9e\x13\xce\x47\x95\xa8\xfe\xc6\xbe\x02\x7d\xba\x75\xfa\x1c\x68\x4d\xaa\x1b\x17\x89\xed\x74\xd3\xd9\x86\x17\xf1\xd1\x93\xa8\xcc\xf9\xca\x8c\x58\x53\x78\x48\xc5\x99\x70\x12\x45\x01\x7f\x04\x28\x73\x91\xd0\xbb\xd1\xaf\x5d\x30\xa6\x54\xe3\xe2\x95\xc3\x0c\x6f\xe8\x3d\x2f\x7b\xdc\xb9\x9d\x5a\x8b\xa2\x51\xbb\x59\xf3\xab\xc7\xf8\x9b\xee\x70\x22\x99\xc8\xf5\x8b\x88\x7b\x80\x75\xc4\x32\xd7\x61\xb8\x8b\x0d\xc5\x2d\xe5\x4d\x5e\x94\x51\xde\x34\xda\xae\x15\x70\xd0\xc6\x68\x97\x54\xe9\x78\x2c\xf3\xfb\x16\x8e\x09\x04\xe2\x99\x92\xe9\x28\x2d\xc2\x05\xee\xb0\x9d\xbb\xb4\x58\xbc\xb2\x55\x0a\xbe\x1b\x2f\x51\x46\x88\xac\xa3\x90\xa3\xb2\xa0\x16\x9f\x63\x33\x08\xae\x5e\xb2\xaf\xb9\xf9\x65\x8f\x2e\x9e\x86\x22\xb4\xd4\x6a\x97\x88\xe4\xb2\xd3\x20\x73\x18\x41\x7e\xb8\xb2\x49\x56\x93\xc7\x2d\xce\xe4\x2b\xc4\xd6\x6e\xd3\xdc\xda\xdd\xdc\x73\xfc\xd2\x48\x16\xe1\xc8\x3c\x98\x0e\xca\x43\x06\xc6\x97\x26\x8b\xab\xfb\x5b\x10\xd3\x50\x45\xdc\x9a\xf5\x5d\x14\x25\x98\x50\x8d\x89\x0c\xde\x13\xdd\x9b\xb8\xde\xe9\xa0\x86\x17\x51\xcf\x5d\x0b\x47\x2e\xa2\xc6\x45\xc3\xcb\xa8\x41\xd1\x2f\xb8\x8c\x1a\x23\x69\x7c\xd5\xd4\x0f\xf5\x0b\x6e\x9b\x4e\x0d\x7a\x2c\xd7\x4e\x21\x7e\xa2\xc0\x94\x74\x5b\x84\x63\xfb\x82\x5b\xa7\x03\xcd\xf6\x4b\x04\xdc\xa9\x9e\x78\x94\x04\xc8\xfd\x9c\xc5\xb7\xa8\x96\xcb\xd9\xbc\x6d\x0e\x1d\x5f\xed\x44\x38\x76\xe6\xb2\xfc\x3b\xbd\xc6\x6f\x01\xe1\xe3\x6b\x10\x85\x7c\x48\xa2\x7a\xc9\x3c\xd1\x13\x31\x49\xc4\xd9\xe1\x30\xec\xf4\x39\xe5\xc8\x39\xe2\x1b\xd2\xc4\x4e\x2d\x67\x26\x45\x68\xa3\x3b\x64\xfc\x85\x4b\xa9\xb0\x3e\xb3\xb1\x14\x85\xae\x39\x45\xc1\xf8\xd3\x10\x6e\xbb\x12\x1c\xb4\xe4\xa4\x55\xc4\x57\x6f\x39\x02\x61\x19\x1c\x81\x11\x31\x54\x90\x4f\x3d\x48\x78\xf9\x8c\x20\x0c\x97\x1e\x42\x11\x84\x45\xff\xec\xd5\x1b\xf9\x09\xaf\x6b\x8d\x8c\x02\xb7\x6b\x3e\xf0\x4d\xcc\x97\x7b\x36\xe5\xd3\x6d\x79\xe2\x31\x2f\x66\x0e\x7b\x98\x07\xbf\x1c\x44\xd1\xe6\x4b\x1c\x03\xf1\x7f\x97\x4a\x32\xb0\x2f\x76\xd5\x96\x0f\x87\xc5\x08\x39\x82\xea\x6b\x7c\xb8\x74\x3d\xc6\xe1\x7f\x2e\x2d\x87\xdb\xc1\x93\x60\xe4\x1e\x23\x76\xbe\x4d\x74\x77\xbf\x4b\xbb\x8a\x6d\xa7\x4a\xa0\x83\x06\x41\x1d\x3e\xd8\x27\x68\x07\x4f\xd5\x18\x04\xed\xd0\xee\x7e\x29\x6d\xd6\xb5\x5c\x71\xb3\x3c\xa8\xad\x16\x9d\x29\x2a\xe3\x23\x7e\x9a\x35\xd8\xdf\x07\xa0\x7c\xec\xfe\x8b\xf0\x9a\x01\x8b\x02\x7c\xe3\x9e\xcd\x41\xdd\x7a\x36\x9c\x08\x67\xce\x54\x9c\xa5\xf8\xed\xa0\x4c\x32\x64\x72\xc9\xb6\x45\x20\x1c\x0a\x01\x85\xdb\xca\x45\xde\x7e\xe0\x60\xe8\x70\x8a\xb2\x0a\x0e\xad\x46\xd4\xe1\xff\xe1\x8c\x69\x10\xfe\x2b\xf9\x1a\x35\x18\x3b\x32\xa3\x34\xec\x01\xc6\x4c\x5d\x01\x96\x66\x45\x24\x7b\x2d\x5f\xf2\x9c\xd0\x90\x32\xc6\x37\xad\x29\xef\xe1\x70\xde\x02\x78\x87\xe8\xbf\x96\xff\xfb\x7f\xfe\x2f\x36\x97\x36\xb4\x5b\x22\x2c\x82\x86\xd9\xf3\xf3\x6e\x97\xa3\xfc\x53\x0e\x0f\xc1\xa3\x83\x8e\x08\xfa\x53\x8d\x34\x40\x5f\x23\x1a\xe5\x78\xea\x46\xdf\xec\x1a\x36\x20\x72\x28\x89\x9e\xcc\x71\xf4\x38\xac\xc3\x88\x2a\xd3\x3d\xc2\x85\xf9\xb2\xc9\xc5\xa4\x49\x9c\x1d\x25\xba\xe9\x2d\x25\x79\xd7\xb4\xab\xf7\x3e\x18\xa4\x9b\x88\x28\x10\x24\x34\x43\x0f\x63\x08\x7b\xc1\xe4\x37\x7e\x4d\x47\x34\x6d\x89\x3c\x0b\x57\x26\xbb\x88\x39\xb3\x1b\x33\x12\x1d\x4e\x8f\xa4\xa3\xf7\xb3\x70\x8f\xc6\x8c\x90\x26\xaf\x15\x89\x9e\x95\xf2\x2d\x0e\xfe\xe0\x00\x7e\xfc\xb6\x10\xd3\x89\x9c\x72\xbd\x42\x02\x2d\x40\x24\x20\x38\x25\x6e\xaf\xf0\xff\x04\x21\xc1\xd4\x52\xc6\xa9\xfa\xa5\xe9\x83\xb0\x63\x51\xf8\xf3\xe0\x86\x0f\xc2\x11\x46\x31\xcd\xb9\x72\x60\x65\xe2\x98\x7c\x14\xa4\x12\x28\x44\xea\x5d\xd0\xd1\x45\xcd\x07\x1b\x1c\x8d\x68\xf8\x1b\x18\x9c\xd9\xa5\xa8\x16\x21\x0e\x73\x8b\x10\x89\x75\xe4\xe3\xd8\xcd\x7c\x33\x01\x6d\xaf\xe5\x0c\xdd\x17\xc3\x3b\x1f\x73\xa2\xf2\x9f\x05\x9e\x0f\x09\xaa\xae\x0b\x76\x73\x94\xf1\xc9\xe9\x86\x24\xf9\x4d\xa4\x8f\xa1\x22\x96\xb9\x7e\x3e\x72\x55\x71\x1c\x4e\xf4\xeb\x2f\x2b\x8e\xeb\xb8\xfb\xba\xe2\x1f\x3d\xbe\x9d\x0e\x15\x16\x1a\x9d\x06\x31\xc3\x5c\xd6\x54\xf0\xb0\x3f\x72\x98\x1a\x83\x06\xa2\x4c\x84\x02\x57\xd3\x97\x1a\xed\xf5\x8c\x96\x28\xf5\x9f\x3b\xa2\x8d\x83\x68\x0e\x7b\x3d\x0a\x6b\x15\x75\xfa\xeb\xc2\x5b\x1d\x3d\xeb\x8c\x78\xc5\x50\x09\x1b\xdd\xd2\xc7\x00\xef\x2c\x12\xdf\xd9\x0f\x3b\xec\xcc\x6e\xc1\xd9\x99\x5a\xe2\xe5\xb6\xbe\xd8\x92\x3f\x7f\x65\xff\xc8\xe1\xc4\x5d\x77\xf7\x87\xbd\x64\x1e\xe3\x3c\xf8\xc3\x4e\xde\x59\x22\xdc\x07\xe3\xf3\xed\x7f\xe6\x3e\xff\xf4\x01\x00\x2b\x69\x07\xb3\x4d\x61\xd7\x34\xfc\x79\x8d\x9f\x85\x7c\xc3\x97\x68\x01\x9e\xd1\x7a\xcc\xed\xf1\x20\x54\x3f\xec\x34\xc7\x26\x11\xae\x3d\xd3\xf3\x2e\x0b\xe5\x33\x48\xf7\x2c\x0f\x1e\xb4\x7a\xa2\xe7\x81\xe4\x37\xe4\x91\xc9\x9c\x61\xf9\xb8\x8d\xd8\x61\xdd\x52\xdd\x19\xcc\x05\x3e\x5c\x3a\x61\x6d\x51\xe2\x7e\xf7\x99\x7c\xb9\x1c\x55\x86\x34\x10\xae\xef\x84\x04\x39\xc5\x25\x93\x20\x55\x77\x3b\xc5\x35\x5f\x71\xa5\x49\xb9\xdd\xf1\x14\xe6\xa9\x33\xc7\xd1\x34\x09\xa0\xca\x83\xda\x2b\x88\xb0\x3f\x0d\xeb\x92\x07\x1f\x74\xd7\x7c\xd3\x1c\x12\xd9\x32\x67\xf0\x9b\x97\xa0\x9c\x9a\x12\x77\x49\xd2\x58\x88\xd0\x20\x31\xa9\xdc\xc0\xd7\x30\x22\xe3\xfc\xc1\x9d\x6f\xec\x18\xee\xb6\xb7\xc5\xd8\x65\x09\x11\xb7\x2a\x70\xcd\x96\x05\xef\x90\x38\x66\x5a\x2b\x24\x4c\xdf\xac\x88\x8a\x51\xbb\x21\xc4\x97\x34\xcc\xfd\x1c\x35\x77\x62\x06\x28\x44\x67\x53\xcb\x98\x84\xd7\x92\x56\xe4\x51\x1b\xd7\x0f\xf7\x62\x92\xef\x47\x08\xf1\x25\xfd\xe0\x56\xe0\x89\x8c\x49\xbc\xab\x3f\xa4\xbd\x69\xb0\xb9\xe8\xa4\x7d\xd8\x45\x7f\xe9\xf9\x26\xd8\xa7\xe1\xdd\x51\x0c\xe4\x0e\xb6\xf7\x8e\x37\x4c\xc9\x91\x53\xd8\x09\xd1\x40\x9c\x70\x26\xe3\xeb\x7c\x7e\x89\xc3\xe5\x9b\x4b\x3a\xd0\xc0\xbd\xc6\x83\x4d\xee\x3a\xd2\x2f\x2f\xca\x41\xb6\xba\x50\x79\x4e\x32\x3f\xbf\xe1\x0a\x9c\x45\x96\x11\xb9\x2e\xdc\x32\x20\xd8\xd9\x4c\x16\x12\x70\xdc\xad\x71\x66\x75\x41\xab\xe3\xca\x1c\xab\x06\x94\x63\xd1\x63\x38\xe3\x9d\xa1\x54\x16\x58\x43\x99\x29\x9f\x98\xac\xea\xce\xfe\x01\xb5\xcd\x6f\x23\xef\x1a\x38\xd1\x6e\xe3\xf7\x26\xef\x30\xa0\x8c\xbb\xe2\x77\x6d\x89\xe2\xed\x08\xe6\xa8\xd5\x64\x16\x2e\xf5\x31\x81\x78\xb2\x5b\xb5\xf0\x86\xb7\xb9\x66\x66\x11\x90\x02\x2a\xfc\xc9\x8d\xd2\x3d\xa9\xe6\xb9\x01\x8e\x77\xa9\xa2\x07\x77\x31\x85\xaf\xe8\x00\xd8\xc6\xdd\x3d\x00\x5b\x90\x3b\x50\xd4\x8d\x80\x05\xdc\xd5\x11\x7d\x0b\xed\xcb\x3b\x02\xbe\xf1\x85\x1d\x39\xb1\x5e\x68\x04\xdc\xa2\x98\x5c\xff\x77\xf5\x6f\xa0\xe6\x80\x38\xa3\x10\xcb\x03\x82\x8f\x1e\xea\x75\x44\x1f\xf8\x99\x59\xb5\xf0\x68\x50\xbf\x37\xdd\xce\x7c\x55\x35\x4d\x21\x74\xcd\xba\x0f\x7d\xe3\xe2\x80\x14\xec\x96\xd5\xb7\xb7\x2a\x92\xf0\xe0\xe2\x78\x18\xde\x25\x46\x94\x2f\x9c\xd1\x4a\xd8\xed\x77\x40\xfb\xfb\x23\x0f\x82\xcb\x3b\x7d\x72\x4e\xd5\x45\xef\x46\x8f\x23\x20\xdf\x19\x7d\x3a\x8e\xba\x3d\x0c\xbf\xde\x49\x5c\xa6\x95\xc9\x72\xf6\x14\x5a\xa2\xae\x40\xcc\x58\x6f\x09\x07\x5b\xbc\x4a\xb9\xe0\x18\xa5\x4d\x5d\x89\xd3\xc9\x85\x7c\xd1\xd8\x13\xb6\x95\xa8\xa1\x84\x63\x9b\xf9\x9b\x9c\x7e\x74\xb0\xfe\xb1\x11\x48\x05\x01\xf9\x0e\xf2\x83\x68\xc8\xf0\x35\x6f\x2d\xbe\xb3\xaf\x01\x3d\x81\x8d\x71\x1f\xf4\x4c\xfb\x81\x4a\xf7\xdd\x54\x8b\x19\x9f\x5c\xa6\x7a\x6e\xeb\x9e\xf1\x65\x26\xc1\xd1\x41\x0b\x8e\x0e\x2a\x0f\x23\x9e\x04\x09\x11\xce\xc3\x8c\x9d\x8b\xc3\x18\x25\xc7\x1b\x9f\x4f\x47\xf0\x8f\x38\x89\x23\x7e\x44\x09\xf9\x62\xd4\x8a\x59\x98\xc3\x34\xf3\x61\xf3\x29\xe6\xcd\x16\xd5\x1e\xc7\xe2\x0b\xb3\xc4\x05\x30\x4a\xd2\xc7\xd7\xe2\x91\x88\xd1\x33\x4c\xdb\x34\x2b\x0e\x82\x6e\x4f\x6d\x06\xc3\x53\xd9\x39\xae\xd3\xdc\x99\xa3\x2a\x70\xdb\x2f\x4c\xc1\xc1\x53\x9f\x77\x71\x69\x2c\xc1\x30\x41\x6f\x4a\x8f\x00\x49\x97\xce\x17\x6b\x8c\x7f\x36\x45\x48\xa6\x12\x3b\x62\xd2\x77\xa8\x27\x20\xe5\x81\xbc\xd4\x9e\xc3\x9b\x84\xe1\x87\x88\xf1\xfa\x60\x90\xcb\xd7\x03\xea\x4c\xc3\x15\x36\x1a\x69\x88\xef\x0a\xb8\xd0\x84\xe9\x25\x56\x5c\x77\x67\xa1\x60\x17\xe3\x7b\xf6\x1a\x0e\x51\x4b\x8a\xc4\x71\xc7\x76\xe6\x6b\xd6\x8d\x51\x3d\x32\x72\xaf\xab\x75\x5e\x4e\x60\xe9\xc6\x5c\x36\x1c\x91\x7c\x51\x1d\x83\x5e\x7a\x08\x57\xcd\xd7\x77\x15\x56\x33\x0e\x54\x42\xbd\x19\x74\x32\x62\x6b\x06\xf2\x99\x1a\x06\x5d\x9c\xac\xe2\x2b\x3a\xc9\x2f\x76\xae\x16\xee\x9d\xc1\x73\x0e\x83\xdb\xce\x39\x24\x0a\xef\x61\xe5\xc2\xae\x33\x45\x96\xb7\xe9\xe2\x77\xf5\x0c\x1d\x62\x9d\x7b\xaa\xfa\x63\x7d\x6b\xcb\xee\xb6\x5e\x64\x78\x6e\xb2\x5b\xeb\x49\xe2\xdb\x52\x8c\xd9\x0f\x66\x94\xf6\x28\xd7\x68\x57\x25\xce\xdc\xba\x07\x12\x27\xfc\xdb\x05\xa5\xc3\xc1\x97\xb6\xb8\x87\xe0\x89\x28\x6d\x02\x1c\x89\x67\xfd\x77\x77\x36\x34\x18\x4b\xc0\x10\x03\xdc\xb6\xe8\x0a\x3f\x57\xfd\x05\x23\x08\x4e\xb1\xc3\x61\x30\x19\xe8\xea\x07\xaf\x08\x5f\xb9\x60\xc4\x7d\xcb\x1e\x09\x1c\xd8\x98\xdd\x2d\xd4\x8d\x49\x37\x34\x7b\x4e\x54\xcf\x96\x8e\x0c\x28\x6c\xf7\x8e\x19\x7a\x10\xf5\xe2\xf3\x63\x0c\x37\x21\x79\xc0\x79\xbf\xc3\xf3\xfd\xee\xe5\xe6\x5f\xf1\x3b\x64\x0a\x12\xa3\x3c\x5b\x35\x6d\x43\xd3\x23\x51\x5f\x34\x6e\xf9\x0b\x4b\xeb\x26\x0a\xc0\x46\x7d\x9b\xed\x35\x52\x8f\x95\xb9\x40\x32\xc9\x0f\x1c\xb6\xc7\x97\xea\x9b\x3e\xdf\x58\x19\xb6\x3c\x2e\xd4\x5e\x7d\xc3\x19\x56\xea\xd4\x32\x82\x92\x5a\xa6\x99\xb3\x2f\xbd\xde\x5a\x04\xf0\xa5\xa6\x04\xb0\x38\x87\xe0\x50\x2a\x84\xae\xfd\x2e\xe3\xa1\x22\xe6\x83\x24\xa7\xaf\x91\x9c\xde\x70\xf2\xb8\x05\xeb\x95\x2b\x36\xe8\xd4\xb1\x72\x7c\xbd\x7e\x58\xe6\x39\xdf\xc2\x1f\xc2\x1b\xe6\xd6\x65\xbe\x1b\xe1\xed\x25\x25\x8e\xb0\x06\xc8\x31\x02\x00\x7b\x1c\x0b\x61\xa9\xaa\x80\x62\x15\x96\x78\x45\x49\xc7\xa0\x71\x44\x3f\x84\xc7\xc3\xfa\x47\x4a\xe8\x9e\x3d\xec\x95\x1e\xaa\x8c\x7a\xd5\xcc\xff\x8e\xd7\xe0\x15\xfa\x52\x7e\x06\x50\xf3\xa6\xe9\xf9\x6d\xca\x1d\x8b\x5b\x70\x9d\x12\x34\x3d\xb3\x74\x16\xb7\x16\x1f\x46\x98\x12\xe8\x31\xaa\x04\xfa\x38\xae\xb6\x1c\x1d\x8f\xda\x6a\xf7\x0b\x7e\x36\xbf\x73\x0d\x5e\x5c\x73\x54\xbd\x6b\x97\x31\x6a\x71\x54\x32\xa4\xd0\x61\xe1\xa9\x96\x17\x24\x44\x94\x93\x4d\x9f\x71\xce\x9d\x6d\x8f\xca\x86\x8d\x8f\x8a\x4f\xad\x14\xbc\xb5\xc1\x36\xf3\xf9\x7e\xf1\xa1\xec\xf9\x3e\xce\x3a\xc3\x11\x70\x58\xd7\x95\x81\xa5\xcf\x00\x96\xbe\x24\xb0\xf4\x46\x9e\x74\x1f\xd7\x4a\x9b\xce\xb6\xec\x73\x1c\xe5\x07\xb5\xbc\x38\xa3\x19\xe0\xe4\x22\x9f\x2a\x05\xeb\x4c\xa6\x52\xb6\xae\x42\x16\x7c\x82\x1a\xf4\xb1\x79\x11\xbc\x4f\x1d\xc8\x54\x6d\xac\x06\xc8\xee\xb7\xb8\x5d\xc8\x9b\x13\xac\x18\x50\x1f\xde\x4a\x4a\x00\x8b\xe0\xd9\x04\x6b\x3c\x12\xa7\xd6\x88\xa2\x4d\xe0\x37\x31\xa3\x14\x0e\xe6\x81\x85\x71\x11\xdc\x15\x5f\xfc\x9d\x02\xdc\xe5\xb2\x98\x8e\x42\x5a\xf3\x06\x68\x2d\x0f\xe1\xb4\xd1\x4e\x50\x29\x6c\x45\x34\x35\x71\x6c\xd7\x18\xd4\x44\x73\x70\x22\x82\x5f\xbb\x45\xa0\xe6\x34\x85\xfd\xec\x53\xc3\x0a\x26\xd2\x2b\x64\x56\x49\x31\x79\x0b\xcf\x68\xd9\xb7\xe5\x45\x51\x4a\x24\x2d\x7a\xf7\x58\xd3\xec\xde\xa8\x8b\xb6\xa4\xe9\x61\x34\x0d\xad\x11\x82\xa9\xf9\x94\x0c\x9e\xed\x52\xdf\x12\x81\x94\x90\x90\x72\x84\xb4\x09\x4b\x43\x6b\x30\x31\x7c\x50\xc3\x6b\x68\x14\xc1\xe8\x8e\x3e\x4a\x63\x91\x7f\xbf\xf0\x5d\x1a\x3f\x9e\x00\xcb\x38\x8b\x8e\xf1\x5b\x75\x59\x88\xd0\x61\xe0\xe0\x7c\x80\x60\x06\x57\x1c\x47\xa0\x38\x9c\x0e\x9f\x51\x0e\x0e\x1e\x0d\xe9\x38\xe2\xc3\xfb\xef\xea\x6b\x37\xaa\x21\x28\x13\x3c\x9a\xcf\x1e\x8e\x72\xd3\x72\x0a\x45\xde\x3e\x68\x18\x72\xef\xfb\x00\xfa\xce\xc3\xa5\x18\x17\xd3\xcf\x8e\xfd\x5f\x79\x79\x2d\xec\x80\x7f\x7f\xed\x48\xfb\xff\x21\xef\xaf\x0d\x6d\xb3\xee\x01\x36\x3c\x30\x35\xc3\xdd\x94\x78\x25\x47\x47\x57\xd1\x8a\x46\x89\x70\xa5\x22\x21\x3e\xc4\x47\x92\x37\xfc\x9a\xcd\x57\xec\x36\x58\xa4\xc3\xf6\x82\xeb\x44\x51\x6b\x52\x62\x1c\x90\x3a\xee\x82\xa4\x8c\xcf\x8b\x24\x5d\xed\x11\xa9\x86\x23\x2d\xd5\x7e\x34\x83\x51\x42\x0f\x69\x2c\x6d\x18\x3d\x13\xe6\x24\x5d\xdb\x83\x2e\x0f\x56\x77\xd4\x6d\x29\x25\x81\x0e\xec\xaa\xd2\x34\x3f\x51\xc8\x60\x30\x92\x12\x46\xaa\x93\x14\x79\x9d\x08\x6f\x70\xca\x97\xa6\x8f\x3d\x30\x82\x3e\x6b\x35\x83\xb6\x83\x5a\x01\x35\xcd\xaf\x82\xde\x0c\xdd\x48\x25\x15\x57\x78\xd8\xe7\xb5\xeb\x35\x65\xa7\x2f\x18\x73\xfc\x39\x49\x81\xca\x5f\xc0\x19\x8d\x35\xfc\xf3\x37\x61\x7a\xf0\xa6\x11\x72\xdd\xa3\x46\x3a\x32\xde\x62\x34\x5a\x0e\xb6\x16\x8d\xf0\xf9\x8c\xdd\x6b\xb4\xfb\x7d\xdf\x56\xf3\x3d\x9f\x92\xa9\x37\x00\x13\xb6\xb8\x1e\xb8\xbc\x11\x6c\xb7\x37\xaf\xf8\x6b\xfd\x3a\x0e\x3b\x78\x03\x79\x00\x27\x91\x79\xac\x7f\x12\x97\xc7\xaa\x80\x91\xd9\x01\xc8\xd1\x53\x04\xb1\x65\x06\x9b\x75\x39\x2f\x11\xe2\x4f\x45\x7a\x7d\xaa\x39\xdd\xb6\xdf\x59\x18\xe7\xeb\x8b\x9b\xab\x3b\x26\x90\x41\x75\x22\x00\x19\xcc\x06\x67\xe9\x8c\x20\x2b\x98\x16\x7d\xfb\xab\x97\x67\x99\xe4\xdd\xab\x9b\xd7\xd7\xf4\xb9\x68\x6f\xe5\xc0\x49\xeb\xf8\x50\xed\x18\x4c\x5f\xcf\xe4\xaa\x28\x05\xb0\x7f\x41\x8a\xcd\x3c\x9f\x4c\x90\xa6\x57\x2d\xdc\x54\x5c\x9d\x5e\x40\xf9\xa3\xa4\x90\x96\xb4\x69\x44\x1f\xb1\x67\xf7\x7d\x27\x68\xa0\x8d\x3e\xbb\xaf\x86\x59\x5d\x0f\xfc\x6c\x24\x7b\x01\xef\x3a\xab\x27\x08\xf7\x30\x5c\x5b\xfa\x98\x98\x4e\xc4\x68\xcf\x8b\xa1\xb1\x9f\xb9\xbd\x2f\x5c\x54\xe1\x96\x3c\x78\x1d\xf2\xcb\x9c\x23\xc2\xca\x82\xcd\xeb\xae\xde\x4e\x5e\x19\x8f\x4b\x44\x90\x99\xac\x73\x7b\x33\x20\xae\xda\xbf\x11\x31\x2a\x11\xbd\x1e\x10\x97\x9a\x76\x3a\xb8\xeb\xe1\x00\x31\x41\x98\xea\xef\x2c\xec\xaa\xfa\xc7\x86\x76\x85\xcd\x77\x3b\xc7\x77\x82\xf7\x1c\x40\x28\x01\xc8\x47\x59\x3c\x01\x04\x91\x5d\x37\xa8\x47\xae\xaf\x84\x40\x7c\x8b\x45\x01\x86\xbc\x4b\x93\x9b\xe5\x92\x23\xdb\x70\x78\x34\x0d\xaf\x80\x40\x37\x17\xec\x0f\x6a\x25\xe5\x52\x56\xc6\xb6\x08\xe8\xf6\x3c\xa6\x73\xbd\xa9\xf5\x16\x89\x2c\xd4\x19\x78\xbb\x77\x0f\x8a\xbe\xdd\x43\x75\x6d\xc3\x2c\x6d\x88\xb3\xc2\x46\xb0\x1b\xb6\xa4\x64\x5a\xd8\xf1\x60\x2b\x7c\x4b\xc9\xc4\x14\xfb\xb5\x43\x30\x1b\xf8\x17\x99\xc4\x5b\x0e\xca\xe0\x78\x61\x01\xaf\xde\x71\x21\xea\xf7\xb8\x04\xf5\xfb\x08\xb8\x1c\x39\xdb\xce\x71\x8d\x5f\xc2\x70\x5c\x8f\xd9\x81\x4d\xc9\xc8\x06\x2c\x69\x43\xfa\x0b\x71\x50\xcc\x3d\x61\x9c\xdb\x91\xc4\x24\x69\x10\x64\xb8\xfd\xf9\xd4\x70\xc3\xf1\xa9\xe1\xe6\xe9\x53\xb5\x63\x83\x1e\x74\xdd\xc6\x26\xe2\xfa\xfa\x75\x3c\xdb\x3e\x37\x78\xfa\x81\x3d\x61\xee\x71\x9c\xc4\x15\xe9\xb3\xf7\x52\xbe\xab\xf4\x5d\x50\x42\xb1\x19\xe2\x4f\x53\x87\x75\x74\xbf\x6f\xaa\xbe\xfc\x71\x50\x85\xb1\xcc\x68\xc9\x54\x8b\x23\x88\x31\x76\x19\x3f\x14\x97\xca\x0d\xcf\xaa\x2d\x6d\x97\x3a\x0b\x9e\x6d\x1b\x11\xb3\x67\xb9\x8e\x94\x43\x76\x6b\x1d\x63\x0f\xf7\x36\xc8\x20\x75\xbd\xef\xe5\x55\x2b\x76\x3a\x7b\x6b\xd5\x3c\x43\xb2\xef\xa1\x44\x77\xb4\x68\x8f\xea\x50\x6c\xfd\x43\xb0\xc6\x57\x35\x7c\xd0\xad\x08\x86\x82\x8b\xc2\x08\x90\xc3\xfd\x7f\x13\x5c\x1b\x36\x30\x7b\xad\x12\xf6\x87\xd1\xc3\x96\x30\x3c\xe8\xbb\x96\xc6\x18\xe4\xc6\x13\xbb\x7b\x67\x1b\x35\xb6\xcb\xad\x28\x38\x7d\xa7\xaf\x61\x5d\x77\xfd\x26\x8e\xee\x9f\x43\x8c\x0a\xbd\xe5\x3c\xff\x4c\xfc\xb8\xb0\x5d\x96\x74\x93\x68\x97\x91\x26\x27\xf1\xf7\x7d\xb9\xa7\xca\xcb\x7a\x05\xd2\xf9\x33\xff\x4c\x5f\xe3\xa7\x9b\x2b\xb9\x65\x04\xdd\x9b\x7d\x9b\x9f\xd8\xbd\x23\xa8\xe0\x94\xe2\x66\xe9\xb3\xbb\x73\x80\xe4\x90\x33\x5f\xe0\xf7\x74\x07\x15\x76\x2c\x6f\xc6\xf9\x46\x50\x44\xe7\x4d\x40\x4c\x2f\x7f\x79\x7d\x39\x80\x9c\x58\xa0\x9a\x33\xb1\xa0\x35\x67\x62\xf9\xca\xc1\x91\x1b\x02\x0e\x8b\xa6\x47\x20\x90\x47\x07\x20\x34\xe4\xcf\x81\x41\x3c\x93\x15\x29\xb5\x15\xf9\x4e\x56\x8c\xd2\x99\xfc\x8e\x81\x82\x17\x42\x04\xca\x1e\x08\x19\xb5\x5a\x87\x6d\xd6\x72\xe8\xe1\xf9\x81\x38\x24\x04\xfc\x40\x1c\x7a\x27\xbb\x67\xd0\xa4\x1e\x7f\xac\x0a\x7d\x4b\x45\xe0\xaf\x34\xc9\x40\x0d\xc4\xd7\x6c\x10\x5a\xb5\xeb\x26\x11\x6e\xe5\x64\xb8\x33\xfc\x8a\xa6\x4e\x17\x22\xaf\x17\x81\xf5\xcb\x90\x9f\xc9\x94\x12\x06\xbc\x5a\x38\xc4\x98\xf9\xea\xc5\x99\x7f\x3b\x05\x96\xae\xc1\x60\x36\xd5\xb2\x74\x76\x31\x1d\xcd\x6b\x4a\x8b\x80\xd7\x7d\xbf\xeb\xec\xe6\x28\x5e\xfa\x48\x2f\xe9\xc7\x60\x10\x61\x55\x3a\x92\x51\x4d\xbb\x0a\xb6\xca\x00\x2f\x92\x30\x8d\x71\x83\x56\xbe\x1d\x80\x2b\xe3\x1e\xb2\x5b\x7b\x7f\x3b\x58\x21\xfe\xdd\x5c\xbf\x3f\xbb\xd6\x79\x5f\x9e\x6c\x99\xa1\x74\xe7\x62\x18\xec\x5c\xe6\x9b\x30\x5b\xb4\x12\xc5\x8a\xff\xdd\xf0\xa9\xb1\xcb\x09\xd7\x9e\xa5\x75\x44\x7b\xc5\x5e\xee\xde\xe8\xa7\x87\xf7\xbe\x0c\x82\x26\xcb\x98\x88\x64\x1d\x03\x94\x9f\xca\xc5\x3e\x38\xc4\xf8\x45\x7e\xab\xd5\xd0\x57\xd3\x98\x2b\xe2\xbe\x46\x14\xf3\x2b\x49\x09\x60\xa6\x42\xd9\x59\xd7\xe1\x50\x69\x8e\x95\x47\xdb\x77\xcd\x43\x59\x62\x28\xf3\xef\x30\x9f\x0a\xf9\x99\x6d\xe4\x2a\xc6\xc0\xe5\xc3\x60\x43\x29\x24\x4c\x43\x38\x9c\xc0\xbd\xc6\xf2\x26\x3a\x6e\x59\xcd\x8e\x59\xd6\x6e\x16\xc0\x42\x16\x0f\x5e\xfc\x93\x3e\x48\xfe\xe7\x1c\xba\x92\x77\xe2\x41\xf1\x7e\xf0\xc0\x91\x19\x3b\x03\xa7\x9d\xe8\x3a\xd0\xfd\x4e\x2f\x02\xd5\x41\x04\x2c\xf9\x55\x8c\x9e\x2e\xb1\x10\xa4\xdf\xfb\x10\xa4\xd1\x6b\xa3\xc3\x08\xe9\x2e\x62\x35\x6a\x65\x2f\x28\x89\x86\x1f\xf4\xe0\x51\xd7\x2e\x1e\xdd\x0f\x83\x51\xb3\x4d\x2b\x8e\xf3\x1a\x55\x29\xa3\xb3\xa8\xde\xbf\x69\x24\x6d\xf9\x1d\xd6\x2b\x86\x1b\xa9\x9a\xc3\xc2\xba\x50\xd7\x5a\xc3\x30\x2a\xad\x21\x2a\x8a\x0e\x1a\x56\xa8\xc1\x66\xc7\xf5\x0d\x02\x8d\x07\xc1\xd4\x9b\xfa\x6b\x3a\x36\x19\x3a\xf3\x37\x8d\x71\xfa\xd5\xdd\x72\x21\x7a\x14\xfb\xf6\x7b\x40\x0b\x32\xa3\xd3\xd3\xe9\xc9\x03\x77\xce\xf9\x32\x92\x9f\x45\xfa\x71\xf7\x34\xc6\x94\x31\x9c\x46\x0d\x70\xfc\x43\x10\x8d\x16\xf7\x10\x25\xa3\xea\x34\xea\xa2\xc4\x00\xfe\xc1\xbd\xe1\x92\xbc\xe3\xc0\xa3\xef\x93\x7c\xc5\x63\xa2\xbf\x09\x9e\x4e\x12\x8f\x68\xd0\x28\x7d\x26\xf2\x93\xbf\xbe\xe7\x8a\xbf\x27\xed\x9c\x98\x26\x42\x7f\x7e\xbf\x45\xc2\x96\xf4\x54\x62\x45\x9c\xb0\x46\x02\xbf\xd9\x85\x9f\x05\x7e\x16\xf9\x2d\x7e\x1d\xf0\xeb\x50\x96\x1f\xa4\x30\xb8\x2a\x15\x27\x4d\x77\x8d\x94\x5b\xfc\xe6\x58\x96\xfc\x53\xda\xd1\xb0\xdd\xf6\x03\x01\x47\xb9\x39\x4d\xb7\x1f\x94\x2e\x8f\x2c\x3f\xf1\xef\x2d\xdf\xe7\x13\xc8\x5b\x4d\xc2\x17\xa5\x70\xf3\x9a\x24\x9f\xf7\xc1\x1a\x49\x81\xd7\x0a\xe5\x9b\x52\xb9\x1f\x9a\x28\x9f\x94\xd6\xe6\x87\xcc\xf7\x4b\xbf\x90\xea\x7b\xa5\x5f\x84\xde\xa2\x6d\x76\x1c\x7c\xf0\xbd\x7b\x08\xcd\x3f\x81\x73\x4e\x79\x1a\x60\x05\x11\xe7\xf8\x12\x23\xbf\x36\x25\xcf\x31\xf2\x15\xbf\x59\x62\x41\x41\xab\x7a\xb7\x77\x3a\xa3\x8f\x5c\x2b\x60\x3e\x4a\x8b\xb8\xc5\xf2\xbb\x16\xf2\xe8\x0f\xcd\x6e\x36\xc7\xbe\x07\x5d\xb4\xab\xfe\x51\x7e\xfb\x6f\xff\x06\x70\xfa\xfc\xf7\x7f\x4f\x2f\x9e\x7d\x97\x96\x9f\x38\xe6\x54\x97\x6e\xf3\x4f\xd5\x76\xbf\x35\x28\xfa\xf9\x3c\x02\xe4\x8b\x7d\x70\x70\xd4\xa3\x02\x7d\x91\x15\xe7\x03\xff\x27\x00\x00\xff\xff\x00\x8c\x00\x45\xc0\xa4\x00\x00") +var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xeb\x72\xdc\x48\xae\xe6\x7f\x3e\x05\xdb\x13\x5e\xdb\x11\x72\x39\xba\x7b\x6f\xd1\xd1\x76\xaf\x2c\xb5\x2f\x73\x2c\x4b\x63\xa9\x67\x76\xd6\xe1\x60\xb3\x8a\x54\x15\xc7\x55\x64\x35\xc9\x72\x59\x73\xe2\x44\xec\x03\xec\x03\xec\xbe\xde\x79\x92\x05\x3e\x00\x79\x21\x59\x92\xdd\x33\x71\xfe\x48\xac\x4c\xe4\x0d\x89\x44\x02\x48\x24\x32\xdf\x6e\xb3\xa2\xec\x16\xe9\xd3\xf4\x38\xdd\xe6\x55\xbd\x2e\xbb\x2e\xed\xca\xf5\xf5\xe3\x55\xd3\xf5\x65\x91\xbe\xac\x7a\xfa\xdd\x7e\xaa\x16\x65\x92\xac\x9a\x4d\x49\xa0\xaf\xe8\x5f\x52\xe4\xdd\x6a\xde\xe4\x6d\x41\x09\xa7\xf6\x9d\x94\x9f\xb7\xeb\xa6\x65\xa0\x9f\xe5\x2b\x59\x95\xeb\x2d\x97\xa1\x7f\x49\x57\x2d\xeb\xac\xaa\xe9\xe7\x25\x7d\xa5\xaf\x6b\x49\x69\x76\xbd\x25\x9d\xef\x7a\x49\xdb\x6d\x2d\xe9\x97\x6d\xd2\x96\xcb\x8a\x7a\xd3\x52\xd2\x3b\xfd\x4c\xf6\xe5\xbc\xab\x7a\x6e\xe9\x2f\xf2\x95\x7c\x2a\xdb\xae\x6a\xb8\xf6\x3f\xcb\x57\xb2\xcd\x97\x0c\x70\x41\xff\x92\xbe\xdc\x6c\xd7\x39\x0a\x5c\xe9\x67\xb2\xce\xeb\xe5\x4e\x60\xde\xe8\x67\xb2\x68\x4b\xca\xca\xea\x72\x4f\xa9\x27\xf8\x31\x9b\xcd\x92\x1d\x21\x21\xdb\xb6\xcd\x75\xb5\x2e\xb3\xbc\x2e\xb2\x8d\x0c\xf3\x17\x4a\x4f\x35\x3d\xa5\xf4\x94\xd3\x31\x84\xb2\xa0\xa1\x66\x79\xa7\xe3\x20\x5c\xd2\xc8\xf3\x2e\x41\x55\x75\xbe\xb1\xd2\xfc\x99\x94\x9b\xbc\x5a\x33\xd6\x1e\xf3\x07\x75\xbc\xeb\xf6\x0d\x70\x7b\xa1\x9f\x84\x84\xac\xbf\xd9\x96\xc0\xc1\xe3\x2b\xfa\x4a\x16\xf9\xb6\x5f\xac\x72\xee\xa7\x7c\x25\x04\xb4\x6d\x08\x19\x4d\x7b\x03\x38\xfb\x91\x34\xed\x32\xaf\xab\xbf\xe7\xbd\x20\xe8\x3c\xf8\x99\x6c\xaa\xb6\x6d\x18\xb7\x67\xf8\x48\x68\xe8\x19\xd7\x43\x29\x6f\x09\x0b\x41\x2d\x9c\xb3\xa9\x96\xad\xa0\x91\x33\xcf\xf0\x8b\x6b\xe1\xbc\xeb\xa6\xfd\xa8\x19\x2f\xf8\x73\x50\x94\x3a\xa1\xb9\x71\xfb\x79\x4d\x88\xd7\xdc\x33\xfc\x88\x00\xba\x24\x2f\x36\x84\xca\x6d\x5e\x97\x8c\xa3\x63\xfe\x45\x78\xa1\x5f\x49\xbe\x58\x34\xbb\xba\xcf\xba\xb2\xef\xab\x7a\xc9\xc8\x3e\x96\xa4\xf4\x52\x93\x92\x20\xcf\xa5\xdd\x34\x3b\x37\x9d\x94\xfe\x57\xfa\x99\x5e\xc8\x4f\xc9\x0b\x0a\x21\xd3\x95\xe4\x91\x74\xd9\x75\x59\x16\x32\x96\x2e\x7d\x41\xdf\xc9\x76\xb7\x5e\x13\xd6\x7e\xdb\x95\x5d\xcf\x85\x2e\xe8\x37\x8d\x5f\x7e\x27\x55\xd7\xd1\x07\x25\xbf\xc6\x47\x42\x53\x57\x2f\x30\x98\x13\x7c\x24\xc9\xfb\xae\xcc\xdb\xc5\xea\x43\x22\xff\xd1\x57\xfe\x60\xda\x3b\x34\xa9\x4c\x48\x4a\x44\xd2\x82\x35\x90\x2c\x9a\x82\x7f\x9c\xd0\x3f\xaa\xba\xaa\xbb\x3e\x5f\xaf\x3f\x24\xfa\xc1\x60\xf2\x25\x13\xd0\x57\x3d\xb0\xa0\x89\xe9\x65\x5f\x6e\x3b\x9e\xc1\xf4\x45\xd5\x76\xfd\xe3\xbe\x22\x62\x7d\xb7\xab\x93\xa2\x59\x7c\xa4\x65\xc0\x4b\x1a\x2d\xbf\xbe\x4e\x09\x59\x0f\x68\x21\xb4\xbb\xba\x26\xf4\xa4\x2f\x1b\x42\x19\x35\x53\x51\xfb\xa7\x80\x3e\x4a\xb7\xeb\x32\xef\x08\xa4\xcc\x8b\xf4\xc7\x3c\xed\xf3\x76\x59\xf6\x4f\xef\x65\x73\x5a\x7e\x1f\xef\xa5\xab\xb6\xbc\x7e\x7a\xef\x7e\x77\xef\xd9\xcb\x1d\x15\x5b\x57\x75\xd9\xfd\xf8\x24\x7f\x96\x2e\x72\xca\x21\x34\xde\xa4\xf3\xf2\x9a\x57\x1b\xb5\x95\x12\x95\xd7\x4b\x5e\x69\x37\xfd\x8a\x1b\x24\x4a\xa0\x8f\x2e\xe5\xa5\xfe\x4d\xc2\x13\x40\xac\x20\x2b\xe6\xc6\xd6\xd0\x21\x24\xb7\x34\x01\x67\x37\x97\x7f\x7a\x73\x94\x5e\x10\x6f\x5b\xb6\x25\xbe\xe9\x0f\x95\xf8\x3e\xa5\xd1\x5e\x55\xa7\xcf\x67\x09\x95\x35\x84\x9c\xe6\x7d\x3e\xe7\xbe\xbb\xd9\xe7\x4c\x59\x84\x2e\x0f\x4b\x91\xb9\x25\x38\x63\xd7\x47\xd3\x32\xb5\x90\xa9\x0e\x5d\xfe\xae\x8e\xb7\xcc\x03\x28\xdd\x61\xf6\x42\x70\x46\x55\xa5\xaf\xdf\xbe\x3d\x3f\x7d\x9e\x96\xf5\x92\x30\x93\xee\xab\x7e\x95\xee\xfa\xeb\xff\x9e\x2d\xcb\xba\x6c\xf3\x75\xb6\xa8\x18\x29\x2d\x11\x6c\x4a\x58\x92\x21\xce\x92\xae\x5b\x13\x8b\x02\x15\x5c\x5e\xbe\x49\xcf\x98\x12\xb6\x79\xbf\x42\x47\xfa\x55\xd2\xfd\xb6\x66\x44\xb9\x06\xaf\x56\x65\x8a\xc5\x00\xa0\xe6\x7a\x88\x97\xb4\xd0\xbe\xce\x92\xb2\x6d\x33\xe2\xa0\xfd\x0d\xa3\x59\xeb\x3c\x04\x2d\xd5\x11\xb5\xd7\x4d\x4f\xd3\x98\xa2\x9c\x54\x51\xd5\x9f\xf2\x75\x55\x10\xb2\x3d\x42\xe2\xb2\x48\x2c\x1a\x9a\x37\x2e\x4d\x94\xd9\xec\x31\xd4\x7c\x41\x1b\x40\x97\xde\x9b\xdd\x03\xc7\xbd\xf7\xf8\xde\x2c\xa9\x9b\x4c\xb8\x04\xf3\xe6\xa2\xea\xf2\x39\xf1\x69\xd9\x37\x5a\xe3\x7a\x7f\x65\xfa\x91\xae\x28\x44\x1a\x41\x30\x6e\x79\x2f\xc2\x16\xc0\xc4\x95\x13\xc3\x06\xb3\x51\x36\x13\x8e\xdd\x78\x92\x9b\x5f\x61\x4b\x2e\x61\x34\xe6\xc4\x26\xcc\xa8\xeb\x78\xbb\x5d\x57\x0b\x69\xfa\xa5\xe4\x79\x42\xe3\x9d\x59\x91\x12\xc2\x81\x50\x2c\x2f\x20\x17\xea\x35\xb3\xad\x34\xe2\xf3\x28\xbf\x2a\x69\xe5\xac\x76\x4b\xd9\x9d\xd6\xcd\xae\xf8\x06\x0c\xc5\x66\xce\xf3\x93\xf4\x5d\x43\x1d\x06\x75\x38\x00\xdf\xc4\x31\x31\x06\x16\x06\xda\x72\xd3\xf4\x8c\x38\x2d\x56\xd1\xf4\xec\x2b\xca\xa4\x91\x76\xf9\x27\x62\x8b\x7d\x23\x4b\xb2\xa0\x25\xb7\xe0\x8a\x89\x83\xed\x68\x47\x97\x65\x41\x7c\x44\x96\x86\xa5\xc5\x34\x08\xa8\xcd\x8e\x56\xd3\x8a\x2a\x63\xc4\xb3\x44\x42\x55\x4e\xf5\x13\x43\xa2\x7a\xb0\xca\x69\xe5\x36\xb4\x79\xf2\x44\x9f\xe2\x43\x7f\x87\xf5\x53\xaf\xf2\xeb\x6b\xea\x55\x47\xab\xe2\x55\xba\x58\x37\xb4\xa4\x7e\x79\xf7\xa6\xe3\x05\xb3\xca\xb6\x4d\x0b\x49\x84\xb2\x2e\xe8\xd3\xa5\x05\x88\x66\x88\x7a\xb7\x99\xd3\xaf\xfd\xaa\x22\x46\x0d\xb4\x73\x09\x96\x92\x28\x95\x9a\xd8\x75\x34\x85\x47\x29\x2d\x61\x1a\x01\xa1\x0c\x04\xc0\x63\x30\xaa\x63\xf0\x6b\xa2\xb1\x5d\x4b\xcb\x69\xd5\xf7\x5b\x6b\xf9\xd5\xd5\xd5\x85\x34\xed\x52\x6f\x6b\x3b\x0f\x28\x03\x73\xb0\x66\xd9\xa8\x4e\x9b\x7a\x06\x22\xd9\xb5\xeb\x01\xfd\xd0\x58\x2d\xe7\x00\x5e\xb8\x0b\x4f\xf8\xcf\xa5\x47\x0f\xf0\xdc\x91\xd4\xb7\x07\x35\x11\x8e\x4b\xc8\x29\x44\xd4\xcd\x96\xeb\x0d\xa8\xfa\x5c\x13\x3c\x29\x43\xb6\x71\xf9\x22\xe1\x50\x2e\x64\xca\x60\x97\xde\xd0\x80\x95\x8d\x5e\x9e\x11\x1a\xc0\x4b\x91\x7a\xdd\x36\x1b\x4a\x7d\x41\xff\x7c\x82\xef\xfe\x19\xd7\x07\x98\xbc\x28\x88\xcb\x77\x47\xe9\xbb\x17\x27\xe9\x7f\xf9\xfe\xbb\xef\x66\xe9\xeb\x9e\x57\x22\x13\xe7\xdf\x98\xa8\xe8\x53\x44\x2d\x07\x4a\x1c\xab\x27\xba\xbb\xc7\x2b\xeb\x5e\xfa\x23\x72\xff\x47\xf9\x39\x27\x11\xb1\x9c\x2d\x9a\xcd\x33\xe6\xaa\x9b\x9c\xd6\x3e\xe7\x10\xb9\x2a\x1d\x5f\x96\x75\x41\x1f\x2a\xb0\x69\x5e\xc0\x0e\x34\x3f\x10\xdf\x44\x70\xcd\x16\x4d\x7d\x5d\xb5\x3c\xa0\x9f\x6b\x50\x83\x89\xb4\xb4\x5d\x23\xc7\xa4\x22\x42\x1a\x71\x90\xea\xfa\xc6\x83\x62\xa8\x6f\x39\x51\x27\x34\x11\xaa\xcb\x54\x44\x77\x58\xbe\x14\x62\xe4\x79\x3b\xa7\xe1\xb5\x86\xef\xce\x23\xbc\xb9\xbe\xe6\xbd\xd6\x76\x09\x6d\xe1\x5c\x52\x65\xc3\x08\x41\x88\x18\xb7\x10\xca\x4f\x95\x88\x4f\x4e\xdf\xa6\xe5\x27\xa2\x36\xe6\x7a\x6d\x53\xec\x16\xa0\x30\x86\x3d\x62\x66\x4d\x2c\xa2\xa3\xb5\xb1\x90\x7d\x25\x60\x12\xdc\x35\xe6\x44\x0b\x02\x22\xde\x60\xcc\x9a\x04\xc9\x4f\xc4\xf9\xdb\xa0\x89\x97\x96\xa4\xbd\x1f\xc1\x8e\x3a\xe5\x4a\xf0\xc8\x17\x34\xe3\x44\x15\xd2\x8b\x4e\x3a\x25\xd9\x44\xee\x44\xc7\x3b\xd2\x50\xf2\x82\xfa\x32\xbf\x01\xdf\xe9\x98\x18\x8a\xf2\x3a\xdf\xad\x7b\xdf\xaf\xc1\x26\x62\x2d\x5d\xb2\x92\x14\xe6\x4d\x16\x18\x75\x10\xd4\xd3\x0d\xcb\x12\x19\xd6\x24\xe7\xc8\x66\xc3\xf4\x2a\x5a\x88\xed\x3b\xc4\x9e\x4a\x4c\x4f\xe6\x45\x7e\x9d\x2f\x93\xfc\xe3\x7c\xd7\xec\x3b\x91\x7c\x52\x6c\xb5\x5c\xa3\x55\xc0\xa2\xc2\x74\x5f\x66\x89\x8a\x4b\x99\xaa\x6b\xd9\xa7\x0a\xca\x90\x23\x57\xa9\x52\x55\x38\xe6\x6b\x7f\x66\x00\xd6\xb2\xba\xc9\xb2\xae\x37\xe7\x3c\xc8\xce\x29\x43\x82\x73\x1e\x2e\x5a\x60\x11\x8e\x66\xe9\x53\x05\x36\xaf\x04\x03\xbc\x10\xd5\xa0\x69\x6a\xaa\x2b\x4b\xd4\x40\xe5\x9f\x50\x9d\x28\x33\x53\x05\x41\x65\x76\x13\xfd\x78\xbb\x2f\x1a\xc8\x0e\xd8\x4b\xa8\xb4\xa1\x75\xb0\xaf\xa7\x6d\xb5\x5c\x11\x6f\x6d\xf6\x47\x82\x94\xfd\xaa\x29\x79\xfd\xbc\x3e\x7d\xfa\xad\xf4\x63\xc9\x3b\x8b\x2b\xc4\x7b\x52\xbe\x23\xe2\x22\x8c\x29\x19\x4b\x17\xdc\xde\x0e\xc8\x91\x2a\x22\x40\x43\xe5\x6f\x24\x4a\x38\xa6\xa1\xbc\x22\xcc\x53\x26\xe1\x61\xa4\xf4\x40\x81\x54\x49\x3f\x5b\x36\x50\x61\x4c\xb2\xe7\x7d\x92\x34\xe1\xae\xcf\x96\x55\x9f\x5d\x33\xd3\xe2\x3a\x5f\x70\x59\xde\xb6\x29\x27\x7d\x40\x59\x0f\x52\xe2\x7c\xa4\x97\x15\x3f\xa4\xf7\x3f\xa9\xac\xf8\x3d\x73\xa3\x8c\xd6\x4f\xb5\xc6\x64\xa8\x62\xd4\x96\x22\xaa\x9a\xf6\xed\xe4\xb5\x6e\xb7\xc5\xae\xa6\xa2\xa1\xd3\x03\x8a\x66\x5f\xf3\xba\x03\xdb\x25\x0e\x53\x2d\x2a\xda\x2d\xe6\x55\x9d\xd3\xd6\x6e\xb5\x80\x9d\xdf\x27\x6a\x78\x7b\x7e\x05\xc0\x65\x33\xdf\x55\xeb\xc2\x00\x66\x89\x89\x8f\x24\x3c\xea\xbc\x87\x02\xb5\x25\x55\xd2\x97\x45\xd3\xb2\x2c\x82\xd1\x58\xc1\x03\x42\x50\xcb\xc2\x05\x92\x2b\xd6\x64\x00\x8b\x72\x4e\x5e\x61\x34\xd0\xc4\x43\x49\x63\x69\x06\x14\x53\x75\xf5\x83\x1e\x3d\x5d\xec\xa8\x2d\x9a\x74\x4e\xa6\x82\x5d\xfa\xf8\x19\xfd\x4d\x58\x36\x12\xde\xbf\x1c\x23\x9e\x33\x53\xc9\xdc\xc9\x2a\x8c\xba\x1a\x91\xb7\xa3\x2e\x23\xde\x60\xac\x61\x7f\x8d\x04\xba\x9d\xd0\x2b\x1b\x4a\xd6\x34\xad\xe5\x37\xf4\xc1\x3a\xdb\x72\x8d\x49\xc8\x7b\x55\xac\x1a\xc2\x1b\x13\xc8\x91\x2c\x97\x6b\x1a\x1a\x73\xd1\x3e\xff\x58\x42\x17\xa3\xdd\xfe\x3d\x5b\x80\x3e\x24\x3b\x91\x3e\x9b\x75\xe1\x34\x1d\xd0\x74\xd3\x0e\x0d\x18\x1e\xc8\xd1\x6b\x47\x62\xf6\x62\x95\x39\xfb\x11\x23\xa5\x2f\x3f\x63\xdf\x47\x96\x37\x27\x31\xb1\x73\x56\xb2\xb9\xc1\x74\xf1\x20\xce\x6e\xfc\x6c\x91\xec\x49\x4b\x84\xd4\xd8\x79\xc3\x58\xfb\x54\x3a\xa8\x93\x30\x35\x2e\x40\x75\x91\x94\xac\x55\xc5\x76\x06\xca\x12\x63\x88\xe6\x8a\x41\xa4\x4b\xc0\xc4\xd4\xf8\x05\x5e\x47\xf3\xa9\x3a\xfd\x8c\x26\x06\x06\x03\x6b\x99\x38\xe2\x8d\xac\x8b\xa0\xcd\xe4\xbd\x1a\xc6\x3e\x24\x06\xf7\x2e\xce\x27\x6e\x42\xca\xbf\x37\x3e\x65\x36\xbb\x66\x84\x82\xdd\x44\x19\x8a\x17\x26\x56\xe5\x96\xe5\x8e\x4d\x07\xb2\x58\xb3\x8e\x7d\xa3\x92\xb3\x23\x90\x9f\x84\x55\x13\xc5\x10\x83\xfb\x26\xe9\x1a\x5e\x70\xd9\x57\x56\xf1\xbc\x22\x52\x40\xf9\x78\x9b\x13\xab\x18\x09\xb8\x3c\x7d\xb4\xca\x6e\x8e\x62\x9d\x6a\x95\x77\xc4\xbe\x49\x4a\xd0\x62\xc5\xcc\x74\x5b\x9e\x76\xd2\xe4\xb0\x66\x60\xc9\x03\x95\x4b\xc9\xa6\x1d\xee\xbf\xdc\x43\xe1\x70\xda\x8a\x93\x9a\x20\x13\x85\xa2\xd3\x44\x9b\x84\xb0\x4d\xc9\x82\x73\xb6\x11\x03\x9a\xfc\x4a\xcf\xca\x84\x36\xc2\x25\x2d\x68\x23\xd8\xa7\x6c\xf7\x58\x42\xbf\x50\x7a\x65\x80\xb2\x0f\x59\xb0\x42\x58\xca\x4f\x66\xb1\x24\xce\xb0\x87\x51\x88\xd6\xf6\x08\xfd\xb4\x59\x51\xf6\xcc\x58\xba\x48\x07\x10\xf2\x3a\xe2\x16\x1e\x89\xc7\x29\x9b\x1e\x43\x28\x15\xb6\xfd\xb0\xb8\x00\x73\x8d\x1f\xe7\xcf\xee\x77\x3f\x3e\x99\x3f\x73\xbc\x75\xb1\x2a\x17\x1f\x85\xfe\xaa\x7a\xde\x7c\x86\x4a\x0b\x13\x09\x69\xd3\xbc\xc6\xee\x17\x29\xa9\xb8\x2d\x34\x2a\xe2\x05\x54\x8c\x10\xcf\xb9\xd1\xa4\x51\x67\x98\x65\xcc\xcc\x60\x9b\xf5\x4d\x40\x8f\x46\x4d\x54\x05\x5a\xd2\x9c\x84\x26\x93\x97\x20\x56\x83\x87\x3e\xe6\x54\xa6\x5f\xec\x16\x9e\x80\x31\xea\x75\xb5\xa9\xfa\x11\x01\x31\x3b\xca\x95\x10\xd5\xa4\x66\x18\x45\x5d\xc0\x09\x50\x42\x4c\x9d\xaa\xa1\xed\xd7\x88\x6a\x9f\x93\xbe\xf5\x7d\x4a\x84\xb4\xa3\xcd\x8c\x47\x46\xfd\x24\xae\x9e\xf3\xfe\x4d\xba\x56\xde\x65\xbb\x5a\x91\x5b\x16\x46\x52\xaf\x2a\xec\x35\xdc\xae\x11\x7e\x00\x65\xf8\x57\x95\x21\x7d\xe8\xf0\xfe\x68\xa6\x26\x30\x14\xe3\x0d\x80\x3b\x54\xb1\x78\x9b\x4f\x4e\x21\x31\xc8\xba\x14\x15\x19\x18\x60\x38\x9e\x6e\xd2\xb3\xfc\x1c\x92\xb2\xf6\x91\x52\x30\x2d\xf3\x5d\xdf\x37\xac\xbe\xac\x99\x76\xa4\x8c\xf5\xfa\x04\x80\xd0\xc8\x7c\x7d\x3a\x23\x1e\x4f\xc2\x8f\x4b\x53\x27\x32\x22\x5a\x66\x00\x62\x08\x67\xc5\x6f\x30\x3a\xdd\x31\x1d\x58\x21\x26\xa7\xbc\xbe\xf1\x56\x10\xf4\x82\x1b\xec\xa7\xfb\xf2\xb0\x2d\x1f\xf9\xde\xb8\x95\x83\x12\xd6\x23\x29\x1e\xac\xaa\x77\xc8\x15\x4b\xac\xad\x3d\xdb\x00\xd5\x9e\xe9\xe9\xa3\x8d\xd1\x8b\x7c\x5e\x1f\xc4\x66\x49\xfa\x2c\x80\x68\x1a\x05\x4a\xcf\x06\x6d\x79\xcd\x71\x8c\xc1\x3e\xee\xb2\xdf\xc7\xfa\xa6\xc9\xba\x95\x68\xe9\xd6\x3d\xd2\xf0\xeb\x65\x64\xde\xc2\xf1\x09\x88\xee\xbf\xf2\x6e\xc9\x03\xfd\x90\xe8\x6c\x94\xc1\xa2\x50\x6a\xb5\x9c\x89\x75\xc4\xf0\x26\xd3\xfd\xb9\x6c\x59\x0b\x04\x50\x3c\x5b\x87\xb0\x18\x0f\xc2\x71\x50\x2f\x0a\x38\xee\xa9\x49\x47\x26\x1c\x70\xaf\x9b\x22\xa7\x6e\xdf\xc0\x60\xfd\x57\xda\x9d\x6a\x1c\x05\x34\x09\x65\x88\x36\x7a\x86\x0f\x02\x65\xd5\xf8\x43\xc2\xfb\xff\xdb\x81\x4c\xcb\xdb\x9b\xa6\x05\xc2\x15\xb2\x7e\x8e\x44\x55\x37\x94\x8b\x09\xf9\xf7\x5d\xe9\x8f\x3c\xf0\xe5\xc6\x74\x79\xf9\xea\xca\x74\xdd\xcb\x57\xe9\xc7\x52\x2b\x7f\xd5\xf7\xdb\xee\x17\xd8\x3d\xc4\x88\xc1\x16\x8f\x8b\xfc\x86\x25\x4e\x49\xd6\x1f\xc8\xb8\x2a\xf3\x8d\xf6\x92\x3f\xa5\x8a\x63\xda\x8a\x35\x91\x3f\x69\x87\x0e\xec\x69\x09\x64\x2f\x1b\x82\x08\x62\x2a\xf3\x38\xdd\xa7\xd4\xf3\x94\x5f\x47\x46\xc0\x5f\x93\x7c\xbd\x25\xf5\x8c\x85\x9f\x00\x0c\xf6\xae\xb9\x6a\x69\x29\x40\x40\xc1\xbb\x0d\xcd\xfc\x02\x5a\x29\x15\x78\xf8\x38\x7b\x14\xd8\x3f\xe3\xca\x0a\x5a\xda\xbf\xab\x42\xfe\x66\x09\x39\xac\xb7\xab\xfe\x6e\xa3\x88\xaa\xe3\x74\xe2\x94\x04\x01\x79\xd4\x43\x39\x20\x6c\xea\x2c\x9b\xf6\x6c\xfe\xa2\x04\x92\x7f\xa3\xaa\x37\xf9\xe7\xbb\x0a\x6e\x9a\x89\x72\xc2\xc0\x7c\x21\x63\x53\x3a\xc4\x78\x59\x10\x3c\x1b\xb8\x0e\x42\xd3\xd4\x33\x48\xfd\x91\x76\xe4\xda\x81\xfd\x22\xbf\x53\xfc\xfe\xc1\x4e\xd7\x68\xfb\x53\xed\x21\x75\xe7\x6c\x24\x58\x14\xcc\xed\xa1\x05\xcc\x3c\x93\x08\x35\x03\x47\xce\xb0\x44\xa8\xd2\xe6\x16\x2a\x9b\x1f\xa0\x24\x11\x49\xcd\xfc\x91\x60\xc6\xfb\x7b\xc6\x12\x77\x1d\xca\xd5\x6e\xe7\xb7\x5d\x11\x10\x72\x30\x94\x8d\xcb\x0d\x16\xdc\xc1\xe2\x24\xc6\x4c\x94\x3e\x1f\x9b\x90\x0f\x94\xef\x69\xc9\x4c\x54\xe0\x56\xd2\xc1\x82\x32\x99\x28\x44\x23\x2f\x46\xbc\x60\x5c\x90\xc1\x48\xe7\x5b\xaf\xcb\x25\xdb\x1a\xad\xe1\xa8\x35\x25\x21\xda\xc2\x04\x2c\x24\x20\x8f\x61\x37\x59\xe1\xbc\x86\x1a\x8c\x9b\xa3\x58\x77\x64\x13\x0c\x55\xd5\xe2\x58\x37\xd0\x20\xb5\x1b\xca\xd1\x37\xac\x2c\x75\x3b\xde\x50\x58\xb1\x12\xc9\x2a\x9e\x0d\x16\x17\x50\x55\x89\x26\x0e\x57\x4f\xb4\xc8\xda\xe6\x5d\xf5\x03\xec\x2b\xab\x0e\x6d\x0d\xe3\x8a\xb5\x72\x07\x74\xa8\x5a\xa7\x0d\x97\x9f\x2b\xd8\x6d\x5f\x56\x6c\x0f\x84\x3e\xec\xcc\x00\xc8\x9b\x25\x6b\x62\x06\xac\x77\xc9\xa8\x44\x06\x6f\x3e\xb1\xda\xca\xed\x71\xae\x94\x13\x3b\xae\x0e\x8a\xe7\x59\x35\x6b\x9c\xfe\x94\xc5\x11\x09\x26\x5c\x82\xfa\x09\xb6\x91\xaf\xf7\xf9\x4d\x07\x03\x91\x71\x1c\xb6\x59\x4b\x71\x66\x27\x24\xb6\x2c\xd1\xab\xf0\x64\x84\x56\x9c\x61\x82\x4d\xfc\xbc\x79\x38\xe1\x62\x0f\xdd\x18\xdc\x42\x4d\x4e\x9f\x82\xed\x57\xf7\x1a\xd6\xeb\x59\x0b\x66\xfd\x44\xb2\x83\x8a\x70\xe4\xa8\x9c\x7f\xa2\xec\x11\x0b\x75\xd4\x0c\x8b\x58\xc4\x8f\x05\xd7\x24\xb5\x12\x66\xd1\xa5\xc0\x50\xb2\xa3\xfa\x1f\x8b\x4c\x5f\x11\x0e\x59\x47\xf4\xb6\x03\xde\x9b\x68\x56\xcc\xb2\x2f\xe9\xd0\xfc\x93\xae\xa7\x25\xc0\x98\xb6\x73\xfc\xbf\x06\xf2\x45\x8a\x5c\x2c\x31\xa0\xa9\x5b\x55\xdb\xb4\x81\xb5\x38\x44\xa1\x27\xdb\x40\x30\xe6\x33\x8c\x12\x3a\x03\x9b\xcd\xdb\xbc\xee\xae\x4b\xd8\xcf\x37\xe9\x35\x1f\x15\xcf\xb4\x69\x96\xb3\xe5\x3c\xff\x40\xcb\xa2\x7f\xa1\xe9\x70\xb7\xc0\xdc\x05\x13\x15\x37\x2d\x07\x2a\xb0\xd1\xa2\x0f\xc0\xaa\xaf\xa9\xb3\x3e\x30\x99\x8d\x50\x00\x59\x37\x3a\x1e\xb3\xde\x7c\x2a\x43\x44\x5c\xff\xde\x91\x07\x58\xd7\x23\x02\x39\x57\x89\xa7\x49\x1a\x85\xa9\x06\xa7\xbb\xf3\x9b\x78\xf4\x5c\x34\x38\x32\xa7\x35\x52\x6a\x2b\xbc\x30\x78\xad\x0c\x2a\x84\x89\xc6\x6b\x38\x89\x1c\xaf\x67\x73\xea\xe2\x62\x15\xad\xce\x2b\xe4\xa4\x92\x33\x5a\xa0\xc9\x7b\x6e\xfa\x43\x22\x07\xec\x99\xb3\xc5\x9f\xc8\x81\xbb\x48\xa8\x6a\x5b\xef\x53\x33\xc0\xf3\x09\x89\x15\x11\x73\xfb\xad\x25\xab\xda\xac\x55\x5d\xf2\xb7\x86\x64\x08\x98\xd4\xff\x48\x5f\x2c\xb3\xd7\x49\x74\xaa\x38\xb0\x91\x40\x2c\xae\x7a\x5e\x61\x17\xb4\x30\x48\x8c\x39\xd6\x14\x52\xd1\xc1\x1d\x60\xb6\x79\x61\xdf\x34\x1f\x39\x33\x3d\x5e\xda\xf2\xa5\x70\x62\x43\x7b\x61\xdf\x09\x6b\xf8\x9b\x19\x36\x07\x16\xa7\x71\x3a\x11\x6c\x09\x0f\xee\x77\x0f\x78\xc2\x2c\x6f\x16\xc0\x6f\xf3\x9e\xd8\x62\x2d\x8a\x95\x70\xa8\xb0\xa8\x66\xbb\x2a\xdc\x31\x36\xd7\xc2\x2e\x1f\x82\x8a\x0f\x89\xf7\x44\x31\x27\x94\x29\x6b\xb0\xb2\x98\x4e\x65\xde\x7f\xa1\x4f\xb5\xe6\x80\x7d\xe1\x43\x15\x6c\x1c\x20\xdb\xa9\x1f\xbc\x62\x82\x9f\x89\xda\xbf\x62\xe3\x97\x92\xf7\xd3\xf4\x54\x3e\x4c\x55\xdf\x55\x18\x53\x55\x24\xc9\x16\x78\x0f\xfc\x66\x74\x22\x5c\xa7\xd5\x3f\xca\x1b\xe0\xdb\xe1\xce\xce\xae\x1a\x52\x88\x09\xd7\xce\x84\x20\x05\xf0\x91\x44\xa0\x66\xb2\x65\x19\xfa\x67\x1d\x9c\x77\xf1\x29\x0e\x6b\xcd\x04\xb6\x2f\xe7\x29\xdb\x7a\x89\x70\x48\x9b\xd3\x81\x6e\x72\x52\x04\x3f\x55\xb9\xb3\x2a\xd1\x6c\xb1\x67\x8e\xee\xa2\x2f\xd8\x2b\x07\x67\xe8\x63\xf7\x31\x3e\x90\xd2\x33\x9e\x37\xfa\x99\xec\xb6\x7c\x68\x12\x0c\xf8\x17\x24\xb8\x01\xc7\xf9\x81\x7e\x85\xa1\x5b\x31\x27\xcd\x08\x78\x61\x4a\x17\x9c\x5b\x66\xb6\x7c\x26\xdc\xc2\x74\x09\x15\x43\x10\x6f\x31\x01\x8b\x51\x9f\x18\x20\x53\x8e\x71\x31\x7c\xda\x19\xd3\x55\xb3\x4f\xd7\x55\xfd\xb1\x53\x6c\x0e\x8d\x36\xb0\x47\x11\x11\xee\xc4\x5d\x48\x3e\xc7\xde\x49\x76\xba\x34\x58\xe1\x76\x06\x25\xe7\x6c\xc7\x48\x9e\x84\xf5\x2a\xb7\x9d\x83\x5d\x97\x2c\x26\x83\xa9\xd9\x99\x1d\x8d\xb2\x69\x3a\xb5\x7e\x7a\x26\xc2\x69\x30\x92\x28\x94\xe2\xdc\x41\xe8\x94\x1c\xdb\x49\x21\xd6\x54\x62\x67\x7b\xd6\x01\xac\xd0\xac\xda\x88\xb7\xdf\x2f\x76\xf2\x87\xf9\x71\xda\x01\xb2\xe1\x4b\x12\xf7\x3e\x3c\xf4\x78\xdb\xd8\xb9\xa2\x71\x43\xcb\x3c\xb2\x4d\x5f\x30\x80\x2d\x3b\xea\xec\x90\x3e\xb4\x02\xb3\xdf\xdf\x41\x26\x46\x04\xe1\x59\x90\x4c\xbc\x63\x10\xcd\x3a\x12\xed\x4e\xf4\x24\xc2\xe5\x33\x66\x83\xfc\xb7\x38\xb5\x73\x46\x02\x56\xb0\xb3\x01\x88\x2a\xe0\x11\xe4\xa4\x04\x6d\x6d\x1d\x94\x9e\x07\xbd\x1f\xad\x15\x2b\xb7\x27\x2c\x84\x03\x57\xea\x2e\x66\xe6\xbe\xc3\x66\x54\x39\x02\x84\x9f\x85\xf8\x9a\xd4\x38\x3f\x94\x2a\x08\x55\x50\x30\x3a\xaf\x57\x1c\x0b\xf7\x61\xeb\xbf\x38\x1b\x3a\x00\xf5\x37\x8c\xf5\xc7\xd2\x9c\x16\x42\x46\xb6\x6d\x89\x3c\x68\xa3\x1d\xd8\xcb\x46\x2c\x2c\x62\x57\xe0\x56\x0d\x4e\xe0\x3d\x97\x22\x8d\x51\xeb\x62\x7e\x8f\x2f\x4b\x71\x36\x1f\xa2\x63\x16\x75\x35\x59\x99\xb3\xcb\x15\x16\xed\x3a\x49\x3f\x84\x71\xe9\x70\x4f\x35\x65\x00\x60\xc3\x51\x06\xdf\x4f\x58\xff\x30\x1a\x15\x3b\x8c\xff\x56\xb5\x78\x40\xb8\x73\xb9\x88\x81\xa4\xa7\xe0\x28\x34\x6f\x62\x94\x36\x7e\xf2\xd3\xb0\x71\x3f\xe1\x3f\x0f\xec\xd9\x32\xb8\x98\xde\xbf\x49\xa8\x4b\xa0\xc6\xd2\xd9\x5a\x0a\x4c\xf3\xc0\x02\xc6\x60\x21\x88\x9a\x17\x5d\x72\x16\x19\xdc\x61\x3a\xff\x2a\x23\x3b\xef\xdd\xff\x04\xfb\x7a\xd4\x96\xb3\xaf\xfb\x5e\x0e\x96\x03\x77\x6f\xb0\x73\x8e\x16\x06\x65\x40\x8e\x50\x92\x0e\xa4\x03\x25\x6a\x27\x24\x70\x33\xa2\x9b\x30\x86\x28\x09\xa2\x84\x52\x03\xb6\x10\x16\x54\xe1\x3d\x04\xd7\x3f\x51\x54\xba\x91\x11\x38\x9e\xf8\x63\x68\x62\x84\x15\x81\x85\x7b\x1e\x6d\xcc\x22\xc5\xaa\x66\xb7\x61\x44\xc8\xd9\xb9\xf3\xe4\x1a\x1d\x8f\x1d\xa9\xfa\xb3\xaa\x96\x2b\x1a\x57\xb5\xe1\x73\x63\x90\x93\x1d\x4e\x7a\xed\x94\x7f\x11\x43\x69\x96\x35\xdb\xa2\xb8\x05\x71\xdd\x72\x1b\xcc\x8f\x5d\xdf\x36\xf5\xf2\xd9\x69\xc3\x6a\x23\x5b\x74\x78\x13\xfc\xe9\xc7\x27\x9a\x4e\x4c\x93\xe7\x90\xfd\xfc\x5e\x56\xfd\xab\xdd\xfc\x41\x97\x2e\xd9\xf1\x14\x27\x2a\x79\xe0\x8e\xaa\xce\x02\xe2\x57\xb7\xaf\x1d\x5a\xe0\x9c\x4a\x0b\xbd\x6b\xd6\xb4\x4a\xe2\x22\xcd\x66\x23\xf3\x4b\x1b\xc0\x46\x20\xd1\x7f\xf8\x17\x94\x35\x30\x57\xb6\x8a\x1f\xaa\x70\xe6\xc8\xdc\xcf\x8f\x4e\x9b\x89\x7b\x91\x9d\x44\x05\x2e\x06\xc6\xb1\x69\xdd\x07\xdb\x06\xdb\x48\x52\x57\x0c\x82\xc2\xb8\x18\x26\x92\xcd\x4e\xde\x44\x63\x46\x16\x68\x02\xa8\xc3\xca\x53\x51\xea\x89\x48\x4c\x9c\x66\x6d\x8a\xac\x50\xb2\xb1\x5a\x48\x2b\xa0\x5f\xde\x2b\xcc\x24\x0b\xc1\xd7\x1b\x73\x98\x60\x07\xab\x5c\x19\x9b\x8c\x5e\xd9\x9a\x8d\x20\x60\x6c\x8a\x13\xcf\xd9\x86\x30\x53\xbc\xcd\x7a\x11\x32\x35\x71\x4c\x12\xc6\x26\x24\x49\x9a\x06\xb3\xed\x2f\x64\x6a\xa3\x76\xfd\xc0\xad\xb9\x2f\xe0\x6b\x18\xd3\x31\xd0\x41\x63\x81\x6d\x44\x67\xea\x8d\x5a\x42\x90\xc1\x4e\xad\x5e\xeb\x79\xdb\xe8\x79\x57\x6a\x89\x98\x13\x52\x73\xfa\x32\x5a\xcc\xdc\x09\xb8\x21\x8a\x9b\x0d\x8c\x2b\xff\x2d\x2d\x72\xe2\x04\x7d\xf3\x91\x88\x69\x5c\x04\xe9\x87\x0a\x39\x0e\x63\xba\x86\xf2\x97\x63\xcf\x1e\x86\xda\x87\x1e\x32\x1f\x64\x31\x01\x67\xd1\x5a\x9d\xab\x93\x58\x86\xe0\xe2\xcd\x5e\x21\x85\x70\x12\x65\x04\xea\xcf\xe3\x38\x00\x49\x58\x35\x03\xc1\x7c\xcb\x1f\xfa\x3b\x9c\x96\xa8\xfe\x60\xb9\x10\x03\xdf\xd5\x01\x03\x15\x72\xc8\x04\x15\x6e\x90\x17\xa4\x4a\xc2\x9f\xf1\x58\x2a\xbc\xe2\xec\x4e\x9d\x79\xf5\xac\xde\x8a\xbc\xd4\x44\xac\x01\x00\x0a\xc2\x3b\x87\x08\xfc\xf2\x56\x05\xab\x45\xfd\x30\xd4\x53\x11\x73\x40\x54\x67\x2c\x73\x25\x7e\x19\xe9\xf1\xc5\x6b\xda\x33\x5c\x83\x56\xe9\xcf\x39\x49\xd2\xd2\x85\xbd\xb3\x68\x30\xb1\x0d\x79\xae\x93\xf9\xa5\xb8\x19\x50\x51\x12\x4b\xdc\x0d\x6a\x34\x20\x19\x4c\x9c\x2f\x38\x2e\xbb\xc0\xca\x23\xad\xa1\x27\xc3\xdd\xca\x0d\xf5\x1b\xc2\xac\xb3\x35\xf2\xd2\xda\xde\x30\xff\x0f\x5c\xb0\x72\xc1\xd0\x1e\x1c\x7c\xe0\xfb\x45\x90\xb0\x74\xa4\xbc\x84\x5b\xc7\x3f\xac\xc3\xca\x41\xc2\xa9\x0c\xd9\xc8\xe4\x64\x7a\xa6\x32\x59\x6c\x8a\xb3\x6c\xad\x9e\x78\xcc\x77\xf1\x19\x26\x7c\xaf\x87\xdf\xc2\x65\xc2\x51\x05\xa4\x7c\x31\xd9\xac\xa3\x68\x69\x7a\xc0\x6f\x52\xd9\x08\xc5\x8b\x81\x5b\x11\xed\x42\x29\x22\x70\x0d\xa6\x5a\xf6\xe5\x9a\x7d\x7a\xb5\x75\x7f\x5c\xa9\x43\x8f\x4e\xf0\x15\x28\xd0\x44\x4b\x2f\xe2\x0a\x2a\x42\x33\x9d\x55\x46\x10\xb4\xdc\x70\x68\x2f\xaa\xbc\xed\xd7\x27\xc7\x6f\xdf\x9e\x5f\xf9\x6d\x9a\xd7\x41\x5d\x90\x30\xf1\x8d\xf3\x82\x1b\xf5\xcb\x7c\xe1\xdc\x04\xc6\x10\xde\x1b\x4f\x4b\x1c\x82\x0b\xd9\x94\xd5\x4e\x9f\xcb\x06\xbc\xa7\xe1\xbe\x18\x2f\x8f\xfa\x5f\x1c\x9a\xbf\xe4\x3d\xcb\x37\x1f\x12\x33\x76\x9f\xf3\xff\x24\x3c\x2f\x08\xce\x68\xb0\xf4\xfc\x51\x8e\xf7\xb8\xa7\x0e\x34\xc5\xe8\xfc\x00\x4c\x7a\x97\x43\x35\x22\xdc\x37\xd8\x2b\xae\x53\x1c\x4e\x1f\xb1\x39\xb4\x69\xb1\x60\x18\xb9\xbb\xba\xfa\x6d\x07\x01\x8d\x15\x23\x62\x1e\xec\x5c\x39\xaf\xd6\xb2\xa1\xfc\xd9\xfd\x90\x74\xfe\x1a\x78\x85\x07\x8d\xd3\xaf\x1f\xbb\x2d\xfb\xa6\xd2\xde\xd0\x3d\xbd\xb7\xab\x52\xb6\xae\xb1\x7f\xd6\xbd\x67\xa4\xc6\xf0\x91\x35\x4d\x1f\x41\x3c\x0b\xaa\xe3\x2b\x61\xbe\xce\x87\xaa\xb1\x52\x7f\xb1\x8e\x3e\xe5\xeb\x5d\x6c\xb8\xe0\x75\xc3\x65\xba\x47\x09\x8a\xaa\xf5\x76\x78\x9d\x0c\x79\xe6\x17\xce\x79\x70\x0e\x47\xea\xc4\x50\x82\x8b\x1f\xf9\xba\x17\xbb\x6d\x1a\xa0\x82\xd7\x25\x5a\x2d\x43\x74\xeb\xf9\x9a\x5b\xfe\xdd\xa2\xad\xe0\xdc\x2e\xe9\x7c\x79\x30\x0d\x2e\x0e\xba\x44\xdf\xee\x25\x11\x0d\x8d\x69\xb6\xac\x7a\xd2\x57\xf9\x0a\x13\x5c\xa1\x13\x5a\x73\xb4\x0d\xe0\xda\xa1\x7c\x59\xca\xa8\x28\xef\x98\x02\x0b\x7b\x13\xcb\x69\x4a\x3e\xfc\xa1\xbf\x27\x4a\x29\xa0\x5d\x7a\xe4\xa3\x83\x86\xf4\xf5\x8a\x57\xcd\x6b\xfa\x47\x3b\xa2\xc8\xcf\xf1\x1c\x8b\x70\x88\x4a\xd4\x38\x22\x1a\xac\xab\x47\x1d\xd4\x74\x56\xd4\x33\x2d\x98\x17\xf5\x9e\x56\xf3\x33\xd0\x86\x84\xf4\x39\x12\xf4\xae\x21\xf5\x84\x66\xe1\x93\xc8\x12\x72\xfb\xf0\xb5\xa5\x3c\x64\xfd\xe9\xd1\x01\xa3\xec\xf0\x64\xf3\xeb\x6d\xb3\xc3\x1a\x6e\x37\xd1\xb2\xb3\x4e\xc6\x06\xf7\x54\xdd\xba\x22\x87\x80\x44\xef\x42\xda\x95\x30\x77\x19\x52\xee\x84\x85\xb9\x87\x97\x95\xd9\x0f\xf2\x78\x75\xc1\x23\x72\x4e\xab\xe3\xde\x33\xc1\x99\x2d\x2d\xab\x55\xa7\xe0\x4c\xaf\x63\x06\x73\xa0\x10\x33\x5c\xdf\xc8\x4c\x7d\x64\x6f\x17\x56\xcd\xd4\x14\x32\x0d\x15\x71\x42\x95\x46\xf2\xe0\x4a\xc8\x93\x97\xaf\xaf\x70\x21\x84\x66\x0c\x0e\xfc\x76\xeb\x85\x1d\x66\x67\xae\x4e\x3b\x5c\x03\x88\xf9\xd8\xbe\x96\x44\x2d\xc7\x89\xd0\xfb\xe2\x73\x08\x73\xdc\xc9\xc3\xdb\x43\x89\x2c\x4d\x5b\xef\xba\x50\xaf\xdd\x8a\xc7\x75\x10\xf6\x63\x8f\x97\x3a\x6e\xa3\x06\x98\x0e\xdd\xca\x98\x31\x17\xbc\xb3\x6c\x6f\x32\xb6\x8f\x62\x33\xd9\xde\xf8\x84\x60\xd7\xa5\x8c\x2a\x02\x76\x1e\x03\x17\xc0\xec\xbf\xff\x9f\xff\xfb\xf8\x84\x3b\x7e\xd2\xb7\x6b\xfa\x52\xa1\x26\x81\x23\x17\xbb\xce\x41\xc4\x91\x06\x90\xb9\xae\xb6\x72\x5b\x7a\x81\x9a\x5d\x13\xe9\xf9\xbf\x24\x32\x1d\x8e\x5a\x40\x74\xb8\x42\xcd\x19\xb4\x1d\xfd\x04\xae\xdd\xdf\x7e\x91\x92\x2f\x5b\xb3\xee\xf9\x0d\x49\xc3\x7b\xf5\x47\xf8\x45\xbe\x12\xfb\xfd\x17\xfc\xda\xb1\x93\xb0\x38\x3f\xf0\x47\xa2\xbf\xf8\xc0\x24\xd1\xdb\xbc\xcc\x5e\x13\x56\x45\x94\x36\x48\x0d\x09\x79\xe1\x6f\x3b\x1e\xa5\x68\xd0\x4f\xd3\x3f\xf1\xaf\x14\x17\x39\x75\x28\xcc\x62\x1c\xbf\x00\x05\x0e\x98\x4e\xe8\xf4\x0a\x1e\xaa\xae\xe7\x9e\xbf\x88\x8f\x5c\x30\x93\xea\x1c\x67\x80\x7c\x47\x25\xd9\xee\xd8\xa5\x86\x69\xc8\x5a\xbb\xa0\x14\x5c\xf8\xe1\x44\xde\xc9\x83\x1a\xdc\x69\x5a\x54\x07\x9a\xa7\xee\xca\x85\xad\xc9\x2d\x10\x59\xde\x1e\xc4\x3e\xc1\xf3\x9c\x86\xac\xe2\x68\x92\x38\xce\xa7\x1c\xaf\x6f\x4b\x48\xd9\xf4\x4f\xf3\x70\x45\xb1\xcf\x71\x04\x23\x40\xb4\x02\xfe\x53\x7a\x45\x29\x0a\x51\x86\x59\x89\x82\x22\x7f\x78\x91\x98\xaf\x1d\x8f\xaf\x1b\xaf\xf3\x79\x89\xe4\x37\xf8\xa0\x75\x49\x8c\xbc\x27\xdc\xc3\x38\xe4\x7e\x24\x3c\xf8\xaa\x17\x1a\xc7\x57\xa2\xde\xfc\x72\xf8\x26\x9f\x09\x8e\x36\xda\x9c\x5d\x5b\xdf\xe5\x7b\xf9\x49\x88\xd1\xfb\xc8\xaf\xe4\x4b\x92\xe1\x28\x2d\xa0\xf0\x93\x76\xf0\x10\x9b\x74\xa1\x5d\xd8\x77\x62\x1d\x98\x8d\x3b\x62\x39\x83\xeb\xd0\xe9\x62\x90\x7f\x2d\xca\xdf\x0b\x56\xfd\x2c\x2d\x07\x93\x4e\xcd\x7d\xcb\xa5\x6f\x68\xb5\x8a\xfd\xff\x4c\xbe\x5c\x4e\x21\xfe\x90\xa7\xd8\xe2\x34\xcd\x1c\xd7\xcf\xf9\xbf\x4b\x25\x4a\xd4\x85\x49\xff\x9d\x13\xb8\x44\x0b\x60\xad\x4f\xee\x5f\xfb\xe4\xd9\x70\x2e\x82\xac\x9a\xe5\x85\x39\x0e\x5a\x68\x51\x21\x3f\xcc\x5e\x10\xfe\xdb\xcc\x95\x3f\xe1\x9f\xe9\x7a\x54\x8b\x9b\xdc\x70\x6e\x07\xcd\x84\x30\xd4\xd4\x24\x98\x34\x17\x42\x4a\x8b\x9b\x29\x60\x92\xf4\xeb\x08\xf6\x9c\x12\x42\xd2\x8a\x2a\x66\x19\x75\x50\x33\xc4\xd6\x69\x78\xda\xff\xf8\x8a\x10\x04\x77\xfd\x1c\xf7\x33\x00\x92\x6e\xe6\x13\xa0\x6c\x3f\xf1\x70\x34\xf0\x21\x90\x9a\xf8\x1c\xa7\x19\xce\x9e\x9f\x1f\x9a\xda\xe1\x04\x49\x66\x46\x82\xd1\xa2\x74\xd7\x1c\x00\x04\xd1\x82\x6f\xee\x47\xcd\xb8\xca\xb4\xb1\xa8\x3e\x20\xb4\xcf\xe7\x94\x7d\xbf\x00\x36\x5d\x61\xc6\x95\xcf\x12\xd4\x59\x26\x2d\x2e\x76\xec\xb4\x9a\xa3\x2a\xc3\x3c\x92\x82\x32\x91\xeb\x04\x11\x4e\xc6\x5b\x4f\x94\xb8\x95\xa2\x86\x30\x07\x6b\x1e\xd1\x8d\x96\xbc\x65\x7a\x3d\x04\xdf\x75\x3f\x5c\xf5\x81\x72\x2a\x86\x41\xf8\x1a\xe7\xcc\xf8\x32\x8c\xe3\x9f\xc7\xf0\xc2\x00\x0f\x9d\x02\xed\x34\x82\x07\xed\xde\x2c\x36\xb8\xae\x16\x6a\x4c\x99\x2a\x24\xb3\x5c\x64\xf3\x1b\x2d\x23\xf3\x8c\xeb\x85\x07\x8a\x6c\xd8\x91\x03\xfb\xba\x16\x39\x73\x09\x13\x45\x3a\xbd\x9e\xcc\xf7\x83\xc7\x39\x33\xde\x82\xe0\xe8\xc1\xbc\xa9\x9b\x04\x61\x2a\x05\xc8\x39\x3e\xa6\x40\xc4\xc4\xa8\x46\x02\xde\x05\xc4\xc3\xde\x0e\x25\x27\x1b\x66\xef\x15\x57\xe2\x0d\x7c\x59\xda\x2f\x28\xc7\x8e\x9e\xcc\x57\xc5\xa2\x7c\xd6\xc0\x0d\x14\x3f\x6f\x69\xc7\x17\x90\x86\x46\x25\x78\x25\x61\x16\x08\x44\xbe\xd3\xfb\xef\xbf\xfd\xd0\xf1\x34\x78\x63\xfd\xfb\xef\x3e\x90\xa0\x74\xff\xfd\xf7\x1f\x60\xa5\x1f\x15\xce\xae\xd9\x48\x35\xae\x01\x05\x0d\x7a\xdb\x96\x9f\xaa\x66\xd7\x89\x28\x88\x4f\xcf\x1f\x3e\xcb\x54\x7c\xee\xe3\x25\xee\xae\x49\x0f\x56\x78\xe1\xb2\xe2\x15\x5e\xef\x36\x99\x8e\xb1\x13\x0e\x60\xbf\x5c\x71\xc3\x40\x96\x73\x93\xbf\xba\xdf\x3c\xdc\xaa\xe0\xc1\x52\xe7\x4d\x3e\xfc\x83\xfc\x7a\x86\x81\xf0\xd0\x7f\x75\x2d\x35\x81\x7d\xff\x4a\x6e\x7a\xb3\x68\xee\x4e\x1a\x6e\xca\x7e\x16\x73\x25\x8b\x3a\x82\x2e\xc7\x59\xda\x8b\x18\x44\x9d\x61\x91\x63\xe0\x6d\x09\xc4\x18\xdc\x3b\xfc\x1c\x64\x0e\x2b\x13\xa0\xa9\xda\x94\xd5\x7a\x2a\x39\x19\xe4\x0b\xae\x15\x53\xb2\x0d\x7d\x1d\x9a\xa4\x4b\xae\x0e\xfb\xf9\x95\xb5\x88\x3c\x41\xa2\xea\xb5\xab\xe7\x9a\x30\x5e\x2f\x60\x0b\x86\xb9\x9c\x87\xaa\xee\x90\x02\xfd\x95\x4d\x6c\x1b\x8d\x99\x74\x81\x0f\x4b\x96\x4b\xac\xea\xbb\xee\x68\x33\x32\x54\x69\xa2\x5d\x6b\x22\x45\x80\x74\x2c\x70\x6c\xbb\xca\xc4\x27\x26\x9c\x14\x81\x56\x75\x66\x2e\xf0\xaa\x2b\x10\xb3\x64\x37\x2f\x19\x11\x91\x11\xdf\xde\x54\xdb\xe7\xc1\x9b\x66\xd1\x81\x5a\x70\xd7\x48\xa7\x34\x5c\xad\x65\x01\x83\xc6\xcf\xf4\xcf\xe1\x75\xe0\xba\x62\xfd\xe3\x56\xa8\xfb\xf4\xcf\x92\x64\x5f\xb4\x45\xe7\xf7\xed\x38\x7f\xd1\xac\x1b\xbf\xaf\xe3\xd7\x10\x40\x6c\x91\xf7\x8b\x81\x6c\x26\xd9\x9e\xb6\x75\xf5\x82\x70\xe3\x9d\x47\x20\x27\x06\x23\x19\x03\xc7\xac\x38\xd3\xdd\xc9\x90\x0e\xe2\x66\x86\xc5\x06\x18\xd7\xa2\xee\x4d\x00\x75\xc6\xd0\x49\xb0\x29\xab\xb7\x48\x19\xa1\x95\x9b\x65\xf6\xd0\x3d\x80\xcf\x79\x03\xc3\xb7\xd6\x7c\xd8\xce\x3d\xdd\xb4\x57\xbd\xa5\xa7\x77\x1c\xa8\x89\x12\xc4\x2b\x6a\x9b\x13\xe9\x89\xbf\x88\xea\x12\x9c\xa2\x6e\x32\xdd\x34\x9c\x0d\xd4\x80\xfb\x7d\x93\x3a\x2d\x0c\x01\xbd\x78\x23\xc8\x53\x2e\x6c\xb7\xd1\x40\xfe\x5a\x7e\x36\xa8\x16\xd7\x8f\x9f\xc2\x33\x6d\xd8\xa0\xb6\xf0\x34\xd5\x2f\xcd\xd7\x2d\xce\x29\x8e\x2f\xf0\x5b\x3b\xa1\x30\xc4\x9b\xdb\xb2\xdb\xad\xb1\x07\xe0\x20\x50\x7e\x5c\xcb\x11\x96\x01\x21\x26\x92\x98\x1c\xac\xad\x80\x91\x4b\xc4\x24\xf5\x4c\xe0\xdc\x79\xb9\xc8\xe1\x84\x9a\x2b\x6b\x5e\x71\x8c\x26\x3f\x7a\x02\xe1\x08\x0f\x56\x3f\x7b\xf5\x86\x71\xae\x98\x6d\xb9\xea\xcd\xb2\x32\xc0\xd4\xbc\xec\xf7\x3c\x75\xe2\x29\xc0\xc8\x15\xb3\x45\xf7\x43\xb8\x19\x13\x07\x7b\x82\x36\x9e\xf0\x8e\x5c\x28\x37\xfb\x03\x7e\x08\x4f\x53\x54\x0e\xe4\xf5\x50\xed\x55\x10\x2c\x68\x9b\x54\xa6\x38\x9c\x7f\x6d\x4a\x6a\x14\xbb\x78\x61\x2a\xa4\xf0\xd6\x1f\xf9\xea\x98\x31\x4f\x7c\x13\x11\xb3\x27\x80\xa6\x7f\xef\xd2\xb5\x7e\xd4\xa4\x9b\xb5\x35\x23\x69\xff\x58\xf5\x54\xfa\x3f\x7f\x30\x1a\x25\x69\x3f\x0b\xd9\x25\xe8\xd3\xff\x8c\xa0\x86\x9a\xb3\xcf\x13\xfb\x2d\x08\xaa\x34\x2f\xc1\x42\xf3\x75\x63\x25\x52\x11\xd4\xb8\x8b\x00\x92\xa1\xc7\x5c\xe1\x4c\x52\xaf\x49\x8b\xe7\xb5\xae\xd8\x74\xa7\x3d\xb3\x08\x35\x90\x62\x5b\xdf\x12\x53\x8d\xcb\xb9\x1a\x55\xeb\x16\xb7\xc2\xc4\x6b\x5b\xaa\xe0\x88\x50\xb4\x3e\xec\x8c\x8f\x7e\xb9\x13\x84\xe9\xba\x14\xb6\xd8\x79\xc7\x6d\xc6\x22\x15\x82\x51\x2b\x60\x59\x6e\xf9\xe6\x75\x06\x23\x39\xba\x11\x86\x90\x60\x33\xa8\x0d\x9c\x21\x1e\x0f\x46\x2f\xd6\xa8\x41\x57\x82\x6a\x61\x7f\x3e\x54\xf3\x83\xfe\xf6\xba\x6d\x85\xca\x95\x07\x5e\x90\x7c\x18\xb6\xae\x38\x52\x8f\x2d\x2d\x33\x4d\x1c\x6c\x72\x2a\xaa\x58\x68\xf7\x22\x1c\x35\x12\x86\x00\x1e\x2d\x55\x1f\x4d\xe8\x70\xc9\x63\x72\xa7\x56\x1e\x08\x6a\x57\xeb\x02\x41\x29\x98\xde\x98\x04\x7f\x1d\x8f\x57\x09\xed\xd0\x58\x43\x96\x52\xcb\xae\x19\xcd\xf5\xc3\x3f\xdc\x2f\x1e\xc9\x22\x83\x37\xcb\xe8\x14\x83\x13\x05\x9d\xe1\x0e\xc5\x63\xae\x3a\xdc\x13\x66\x66\xc8\x8c\x9c\x81\xe8\x7b\xf6\x6b\x12\x18\xca\x02\x93\x8e\x57\x81\x83\xec\x09\x7d\x3d\xc8\x9d\xd6\xd9\x87\x00\x85\xb7\x84\xdc\xef\xa2\xb6\x9b\x8c\x48\x37\x53\x85\x8a\xd8\x3d\x13\x32\x7e\x0d\xbb\x60\x9a\xc4\xb0\x6a\x27\x93\xc7\x23\xa2\xad\x75\xce\x3c\x5e\x6e\xbf\x0a\x0f\x0d\x8c\x83\x44\x02\x7a\x43\x42\x4f\x6d\x75\x7f\x8e\xaa\x1f\xb0\xe0\x49\xec\x98\x54\x85\x2b\x9a\x61\xc6\xc4\x61\x5a\x98\xeb\x07\x7d\x4a\x23\x66\x73\x5c\xfa\xd0\x22\x4c\x3d\x8a\x07\x59\x8a\x7b\x30\xff\x0f\x33\x5c\x58\x10\xad\x2a\x93\xa9\xd7\x1a\x51\xb9\xa6\xf8\x70\x19\x47\xee\x82\xe3\x83\x1b\xaa\xee\xf1\x66\xf3\xb8\x28\x1e\x4c\x8c\x3a\x90\x4c\xdc\xb0\x07\x3e\x4e\x6a\x04\x18\xb0\xb1\xa0\xa6\x40\xcc\x9b\xc6\x1d\x03\x44\xf3\xf4\x0b\xef\xd0\x25\x1f\x53\xa5\x85\xc7\x9b\x90\xae\x9f\xbb\x8e\xd9\x73\xb3\x25\xb4\x3b\xbf\x09\x66\x15\x72\x71\x2e\x1c\xc9\x40\x40\x0e\xb2\x06\xf7\x7b\x6f\xed\x9e\x3b\x1c\x51\x69\x8b\x58\xeb\xe6\x00\x4a\x24\x2a\xdc\x41\x84\x04\x82\xa9\x47\xaa\x13\x4e\x27\x00\xa7\x44\x53\xdf\xf6\x3f\x53\x3c\x9d\x6a\x7c\x8a\x04\xee\x12\x50\xa7\x22\x90\x5a\xda\x4c\xe8\x1b\xf7\x31\xe4\xcb\x67\x05\xb1\x4d\x54\x06\x08\x7e\x7b\xb0\x55\xd3\x7c\x94\xf8\x2e\x73\x7c\xfa\x9c\x25\x47\x34\x94\x4c\x8e\xdd\xf7\x2a\xce\x25\xb1\xaf\x5a\x84\x91\x4e\x9f\x73\xc2\x44\x17\x0b\x9e\xe3\x36\xfb\xbb\x98\x04\x4f\xf1\x2b\xfd\x5f\x4c\x18\x0e\x44\x2f\x53\x9c\x5b\x3c\x9f\x4b\xbe\x52\xe1\x72\xd5\x0d\x3e\x68\x4a\xbd\xf6\xc7\x6d\xa9\x9f\x38\xb3\xf3\x2f\xbb\xea\x30\x75\xc5\x21\xbe\x77\x39\xf3\xb5\xbb\x9b\x5b\x7c\x22\xa3\x9f\xe7\x76\xf9\x6b\x0c\xe6\xce\x43\xfd\x85\xaf\xf8\x44\x88\xbd\xb4\x6a\xf1\xef\xc6\xa5\x2f\xbe\x1c\xd6\x60\xc3\x0a\x6f\x9a\x11\xdd\xb9\x60\x81\xaa\xf0\x42\x09\x87\xcf\x53\x17\x74\x0f\x51\x72\x71\xed\x93\xa5\xa6\x4e\x4e\xbf\xf5\xfa\x9a\x5c\x82\x10\x45\x3d\x77\xca\x73\x87\xc3\xfe\x89\xad\x0f\x26\x68\x17\x6b\x45\x6e\x51\x58\x57\x91\x17\x4c\xef\xe0\xe6\x0f\x30\x1d\x1c\x28\x0f\x00\x0d\x29\xe7\xc4\x3f\xc4\x29\x4f\x8a\xe5\xd1\xcd\xb9\x3e\x30\x20\x89\x23\x0d\x9f\x93\xb9\x1e\x31\x7b\x2a\xdb\x1e\x77\xd6\xc6\x68\x67\x1f\x7a\x5a\x40\xd9\xb7\xd4\xcc\x63\xc8\x4a\x12\xde\x10\x83\x90\xf5\x57\x5d\x07\xf8\x80\x6f\x21\xfb\x0a\x7e\xaa\x8a\x1d\x51\x1f\xcf\xc5\x6d\xf5\x7e\x17\xd7\x4b\x2b\x1e\xe7\xd8\x07\xeb\x1e\xcc\x27\x84\x08\x17\xfb\x16\x97\x16\xaf\xfd\x5d\xdc\x6e\xaa\x65\x66\x42\xce\xd8\xa0\x38\xc0\x9d\xda\xd4\x5f\x4a\x0b\x59\x95\xf0\x21\x78\x37\x89\x03\xb2\x89\x49\x3f\xa4\xa3\xf9\x88\xb1\x25\x17\x1d\x9d\x54\x75\xa7\x7f\xd5\x88\x10\x06\x58\x1a\xd4\x07\x84\x05\x5e\x50\x36\xfb\x3c\x7c\x8e\x99\xa6\x71\x79\x4d\x3e\x0f\x49\xa2\xaa\x17\xeb\x1d\xfc\x39\x99\x19\xb1\x50\x7f\xa4\x3c\xf8\xc8\x19\x35\xe5\x7a\x57\xe0\x30\xe7\x79\x60\x13\x61\x76\xd0\x57\x38\x02\x08\x02\x5e\x8f\x9a\xf6\xb7\xce\x8e\xbc\x83\x91\xf3\xbc\x60\xb9\x93\xfd\xaa\xea\xa2\xdc\x72\xd0\x46\x76\xb0\xbd\x96\xdd\x56\x78\xfe\x1d\xad\x7e\x77\x5b\xab\xe2\x17\x35\xd5\xac\x79\xeb\xe9\x35\x6e\x2c\x5a\x8e\xb4\x7c\x47\x6b\xdf\x5b\x6b\xe1\x96\xf5\xb1\x2c\xb7\x41\x13\x71\xf7\x83\xdb\x0b\x60\x9e\xb1\xe3\xd3\x04\x47\xd3\x0b\x7a\x76\xa3\xf7\x00\x13\x8f\xa2\x89\xf8\xa3\x79\xdd\xcd\xee\xb8\xcc\x34\x5e\x20\x66\x81\x44\x78\x70\x58\x21\x1d\x0c\x5b\x60\xb2\x80\x73\xc3\x7f\xd4\x58\xf2\x44\x55\xe2\x97\x3a\xf0\xf6\xf1\x57\x7c\x5d\xd7\xac\x40\x7b\xb8\x7b\xb1\xeb\x61\x3a\xe1\x72\xe8\x40\xd9\xaf\x3b\x24\xd6\x54\xbc\xf9\x79\x3c\x27\x41\xf2\xe1\x02\x03\x1f\xfa\xa8\xae\xd8\x87\x3e\xe8\xa0\x50\xd1\xa1\x7a\x4e\x26\xeb\x50\xca\x0b\xa7\x96\x6f\xf2\x57\xb8\xb3\x9d\x69\x68\x2c\x0d\x6d\x3f\xbc\x34\xad\xb9\xfb\x55\x13\x04\x37\x11\xc7\x7e\xec\x45\x61\x47\x66\xf1\x58\xf7\x22\x9e\x28\x5e\x54\x58\x19\x48\x31\xb6\xb7\x98\x28\x03\x95\x77\xb3\xa3\xad\x73\x5d\x7d\x84\xa1\x8a\x08\x53\xa2\xe4\x9e\x5f\x5e\xc1\x3a\x45\x0b\x80\xf6\xd1\x25\xf3\xdd\xf4\x2f\xab\xb2\x46\xe0\x46\x0e\x56\xab\x8c\x68\xb1\xe0\xfb\x38\x55\xad\xb1\xed\xf6\xa5\x79\x49\xd7\xc5\x5a\xd8\x56\x78\x63\xcb\xa4\x07\xb1\x52\xa5\x08\x48\xcb\x2b\xad\xdb\x96\x0b\x92\x89\x67\x7c\xea\xd4\xd6\x88\xf2\xef\x62\x8f\xdf\xea\x8b\xe3\x46\x02\xa7\x18\x36\x66\x05\x68\x51\x94\x84\xc6\x59\xdd\x83\x47\xe8\x19\x82\x4e\x49\xc1\x86\xe1\xdb\x64\x60\xf0\x57\x71\xce\xad\x98\x5d\xa7\xea\xca\x71\xdb\x9d\x87\x83\x7d\x08\x63\x0b\x4a\xd3\x77\x88\xc2\xc3\xaa\x66\xde\xae\x60\xc6\x84\x09\x90\x6e\xdb\x88\xbb\xe4\x3b\xfd\x1c\x03\x89\xb6\xc4\x3d\x79\x25\x5f\x63\x90\xad\x06\xfe\x71\x21\x80\xc6\x20\xf3\xa6\x60\xfd\xe7\x39\xfd\x1b\x0b\xd1\x2e\xa4\xbc\x49\xd2\x20\xce\x2d\x5f\x36\x97\x43\x5e\xce\x20\x74\x97\xeb\x6b\x09\x1c\xc0\x96\x23\xa8\x7b\x62\x88\x63\x27\x5d\x89\x89\xc9\x3e\x5d\xa8\x40\xaf\x8e\xe1\x56\x04\x62\x7c\x85\x56\x36\xbd\x66\x1a\xde\x1b\x1c\xf6\x09\x87\x06\xd6\xaf\xd7\x22\x83\x60\x1a\xa0\xdc\x4a\x40\xb6\x23\xde\x5a\x58\x2f\xb4\x63\x3c\xdb\x80\xb6\x12\x84\x8d\x2f\xfc\x10\x51\x23\x16\x87\x81\x88\x0c\x2b\x6e\x50\x81\x8f\xae\xc5\xaf\x06\xb1\x01\x61\xe3\x1e\xa9\x7f\x33\x23\x48\x3c\x9b\x47\x10\xfe\x90\x11\x40\x76\x93\x68\xb8\xcf\x28\xb8\xd7\x15\x5e\x45\xeb\x21\xe0\x28\x51\xac\x7f\x74\x54\x43\xab\x89\x95\x95\x39\x85\x19\x59\x03\x63\x26\xe3\x8a\x5d\x19\x83\xd5\xcd\xdb\x34\x09\x47\x22\x45\xb7\xe5\x32\x6f\x0b\x8b\x50\xa2\x9c\x86\x6f\x69\x80\xa3\x84\x17\x52\xf3\x35\x29\xdf\x5a\x05\x71\x46\x02\xf9\xc8\x5e\x49\x34\xdf\x2c\xe3\x98\xbd\x81\xa5\xc5\x42\xd8\x18\xdf\x89\x23\xe6\xb2\xdb\x32\xbf\x11\xe6\x65\xed\x60\xc8\x0f\xff\x78\x79\xfe\xf6\x28\xfd\xfc\x78\xbf\xdf\x3f\xe6\xe2\x8f\x77\xed\x9a\x6f\x8f\x15\x1c\x01\xe5\x7f\x9e\xbd\x39\x4a\xcb\x7e\xf1\x68\x46\x8a\x7a\x1b\x9b\xb7\xd4\x67\x13\xc7\x02\x4c\x5d\x2c\x3a\xfe\x7e\xf6\xa4\x2b\x46\xe3\x88\x87\x81\xb3\xc2\x0d\x92\x67\xcf\x7c\x2f\x74\x32\xc5\x07\xc3\x2b\x87\xe5\xa2\x2d\xe1\xba\x80\x8f\x20\x63\x4d\x3a\xc1\xd4\xcd\xf7\x21\x48\x45\xed\x68\x37\x5e\x2f\x34\x8e\xf9\x00\xc4\x4e\xea\x4e\x70\x46\xe7\x32\x31\x71\x6e\x5b\xe1\xd0\x6c\xdd\xaa\xd9\xad\x8b\x98\x63\x12\xce\x74\x22\xca\xe2\xa7\x61\x61\xb8\x16\x22\x10\xf1\xd3\xf4\x8f\x6c\x29\xe2\x89\x12\xda\xe2\x2c\xa3\x2d\x00\xcf\x86\x85\x11\x2b\x2f\x10\x8c\x69\x00\x12\x03\xd0\x04\x73\x9f\xe7\x84\xf3\x51\x25\xaa\xbf\xb1\xcf\x43\x9f\x6e\x9c\x3e\x07\x5a\x93\xea\xc6\x45\x62\x3b\xdd\x74\xb6\xe1\x45\x7c\x0d\x25\x18\x7a\xbe\x34\x23\xd6\x14\x1e\x52\xf1\xab\x9c\x44\x51\xc0\x1f\x01\xca\x5c\x24\x74\xf4\xf4\x6b\x17\x8c\x29\xd5\xe0\x90\xe5\x30\x23\x88\x16\x50\xf6\xb8\xa7\x3d\xb5\x16\x45\xa3\x76\xb3\xe6\x57\x8f\xf1\x37\xdd\xe1\x44\x32\x91\xab\x2d\x11\xf7\x00\xeb\x88\x65\xae\xfd\x70\x17\x1b\x8a\x5b\xca\x9b\xbc\x28\xa3\xbc\x69\xb4\x5d\x2b\xe0\xa0\x8d\xd1\x2e\xa9\xd2\xf1\x58\xe6\xf7\x2d\x1c\x12\x08\xc4\xc3\x26\xd3\x51\x5a\xc0\x14\xdc\x0f\x3c\x75\x69\xb1\x78\x65\xab\x14\x7c\x37\x5e\xa2\x8c\x10\x59\x47\x21\x47\x65\x41\x2d\x3e\x8f\x67\x10\x5c\x6b\x65\x17\x7e\x73\x77\x1f\x5d\xea\x0d\x45\x68\xa9\xd5\x2e\x68\xc9\x45\xb2\x41\xe6\xf0\xe1\x86\xe1\xca\x26\x59\x4d\x9e\xfe\x39\x91\xaf\x10\x5b\xdb\x75\x73\x63\xf7\x9e\x4f\xf1\x4b\x03\xa3\x84\x23\xf3\x60\x3a\x28\x0f\x19\x18\x5f\x9a\x2c\xae\xee\xaf\x41\x60\x4f\x15\x71\x6b\xd6\x77\x51\x94\x60\x42\x35\x26\x32\x78\x4f\x74\x6f\xe2\xea\xac\x83\x1a\x5e\xf2\x3d\x75\x2d\x1c\xb8\xe4\x1b\x17\x0d\x2f\xfa\x06\x45\xbf\xe0\xa2\x6f\x8c\xa4\xf1\x35\x5e\x3f\xd4\x2f\xb8\xc9\x3b\x35\xe8\xb1\x5c\x3b\x85\xf8\x89\x02\x53\xd2\x6d\x11\x8e\xed\x0b\x6e\xf4\x0e\x34\xdb\x2f\x11\x70\xa7\x7a\xe2\x51\x12\x20\xf7\x2e\x8b\x6f\x51\x5d\x5f\xcf\xe6\x6d\xb3\xef\xf8\xda\x2c\x5e\x41\x60\x2e\xcb\xbf\xd3\x4b\xfc\x16\x10\x3e\x86\x07\x51\xc8\x87\x24\xaa\xb7\xcf\x53\x3d\xd9\x93\x44\x9c\x81\x0e\x23\xb0\x9f\x52\x8e\x9c\x87\xbe\x25\x4d\xec\xd8\x72\x66\x52\x84\x36\xba\x7d\xc6\x5f\xb8\xf0\x0b\xeb\x33\x1b\x4b\x51\xe8\x92\x53\x14\x8c\x3f\x0d\xe1\xb6\x2b\xc1\xd1\x4c\x4e\x8c\x45\x7c\xf5\x96\x23\x10\x96\xc1\x11\x18\x11\x43\x05\xf9\xd4\x83\x84\x17\xfb\x08\xc2\x70\xe9\x21\x14\x41\x58\xf4\xcf\x5f\xbf\x95\x9f\xf0\x1e\xd7\x40\x3b\x70\x1f\xe7\x83\xeb\xc4\x7c\xd2\x67\x53\xbe\xe9\x96\x27\x97\x07\xc4\xcc\x61\xcf\x96\xe1\x97\x83\x28\xda\xfc\x1a\xc7\x40\xfc\xdf\xa5\x92\x0c\xec\x8b\x5d\xb4\xe5\xe3\x61\x31\x42\x8e\xa0\xfa\x12\x1f\x2e\x5d\x8f\x71\xf8\x9f\x4b\xcb\xe1\x3e\xf1\x34\x18\xb9\xc7\x88\x9d\xd3\x13\xdd\xdd\xef\xd2\xae\x62\xdb\xa9\x12\xe8\xa0\x41\x50\x87\x8f\x78\x0b\xda\xc1\x43\x5e\x06\x41\x3b\xb4\xbb\xbb\x4b\x9b\x75\x2d\xd7\x07\x2d\x0f\x6a\xab\x05\xfb\x8a\xca\xf8\xb0\xb7\x66\x0d\xf6\x57\x23\x28\x1f\xbb\xff\x22\xbc\x71\xc1\xa2\x00\x47\x33\x60\x73\x50\xb7\x9a\x0d\x27\xc2\x99\x33\x15\x67\x29\x7e\x3b\x28\x93\x0c\x99\x5c\xb2\x4d\x11\x08\x87\x42\x40\xe1\xb6\x72\x96\xb7\x1f\xf9\x5d\x00\x38\x77\x59\x05\xfb\x56\x03\x34\xf1\xff\x70\xc6\xf4\x3d\x8a\x0b\xf9\x1a\x35\x18\x3b\x64\xa3\x34\xec\x01\xc6\x4c\x5d\x01\x96\x66\x45\x24\x7b\x23\x5f\xf2\xd8\xda\x90\x32\xc6\xb7\xd8\x29\xef\xf1\x70\xde\x02\x78\x87\xe8\xbf\x94\xff\xfe\xbf\xff\x1f\x9b\x4b\x1b\xda\x2d\x11\x72\x42\xa3\x36\xfa\x79\xb7\x3b\x67\xfe\x05\x95\xc7\xe0\xd1\x41\x47\x04\xfd\xa9\x46\x71\xa0\xaf\x11\x8d\xf2\xd3\x02\x46\xdf\xec\xe2\x36\x20\x72\x28\x89\x9e\xcc\x71\xf4\x38\xac\xc3\x88\x2a\xd3\x3d\xc2\x45\x8d\xb3\xc9\xc5\xa4\xa1\xe7\xbd\x12\xdd\xf4\x96\x92\xbc\x6f\xda\xe5\x07\x1f\x5b\xd4\x4d\x44\x14\x57\x14\x9a\xa1\x87\x31\x84\xbd\x64\xf2\x1b\x3f\x62\x25\x9a\xb6\x84\x5f\x86\x4b\x96\x5d\x72\x9d\xd9\xe5\x21\x09\x36\xa8\x47\xd2\xd1\xeb\x82\xb8\xd3\x63\x46\x48\x93\xd7\x8a\x44\xcf\x4a\xf9\x36\x0a\x7f\x70\x3c\x48\x7e\x0f\x8d\xe9\x44\x4e\xb9\x5e\x23\x81\x16\x20\x12\x10\xeb\x14\xb7\x70\xf8\x7f\x82\x08\x73\x6a\x29\xe3\x54\xfd\xd2\xf4\x41\x14\xbb\xe8\x25\x80\xe0\xb2\x13\xa2\x5b\x46\xe1\xfd\xb9\x72\x60\x65\xe2\x98\x7c\x14\xf3\x14\x28\x44\xea\x6d\xd0\xd1\x25\xd8\x07\x6b\x1c\x8d\x68\xc8\x24\x18\x9c\xd9\x35\xaa\x16\x21\x0e\x73\x8b\x88\x9b\x75\xe4\xab\xd9\xcd\x7c\x33\x01\x6d\xaf\xe4\x0c\xdd\x17\xc3\xf3\x3a\x73\xa2\xf2\x9f\x04\x9e\x0f\x09\xaa\xae\x0b\x76\x73\x94\xf1\xc9\xe9\x9a\x24\xf9\x75\xa4\x8f\xa1\x22\x96\xb9\x7e\x3a\x70\x03\x74\x1c\x9d\xf6\xeb\xef\x80\x8e\xeb\xb8\xfd\x16\xe8\xef\x3d\xbe\x9d\x8e\x3c\x17\x1a\x9d\x06\x21\xe8\x5c\xd6\x54\x2c\xba\xdf\x73\x98\x1a\x83\x06\xa2\x4c\x84\x02\x57\xd3\x97\x1a\xed\xf5\x8c\x96\x28\xf5\x1f\x3b\xa2\x8d\x63\xb2\x0e\x7b\x3d\x0a\x9a\x16\x75\xfa\xeb\x82\xa7\x1d\x3c\xeb\x8c\x78\xc5\x50\x09\x1b\x45\x40\xc0\x00\x6f\x2d\x12\xc7\x43\x08\x3b\xec\xcc\x6e\xc1\xd9\x99\x5a\xe2\x25\x12\x82\xd8\x92\xef\x0e\x87\x70\xe0\x70\xe2\xb6\xb8\x08\xc3\x5e\x32\x8f\x71\x37\x11\xc2\x4e\xde\x5a\x22\xdc\x07\xe3\xf3\xed\x7f\x24\x56\xc2\xf4\x01\x00\x2b\x69\x7b\xb3\x4d\x61\xd7\x34\xfc\x79\x8d\x9f\x85\x7c\xc3\x97\x68\x01\x9e\xd1\x7a\xcc\xed\xf0\x0e\x5b\x3f\xec\x34\xc7\x7d\x11\xae\x3d\xd3\xf3\x2e\x0b\x93\x34\x48\xf7\x2c\x0f\x9e\xc0\x7a\xa2\xe7\x81\xe4\x37\xe4\x91\xc9\x9c\x61\xf9\xb8\x8d\xd8\xf1\xde\x52\xdd\x19\xcc\x19\x3e\x5c\x3a\x61\x6d\x51\xe2\xda\xfc\x89\x7c\xb9\x1c\x55\x86\x34\xae\xb2\xef\x84\xc4\xcc\xc5\x65\x99\x20\x55\x77\x3b\xc5\x35\xdf\xf6\xa5\x49\xb9\xd9\xf2\x14\xe6\xa9\x33\xc7\xd1\x34\x09\xa0\xca\x83\xda\x2b\x88\xb0\x3f\x0c\xeb\x92\xb7\x4f\x74\xd7\x7c\xdb\xec\x13\xd9\x32\x67\xf0\xff\x97\x18\xaf\x9a\x12\x77\x49\xd2\x58\x88\xd0\x00\x3c\xa9\x44\x37\xd0\x10\x2d\xe3\xfc\xc1\x55\x7a\xec\x18\xee\x12\xbd\x85\x6c\x66\x09\x11\xb7\x43\x70\xe3\x98\x05\xef\x90\x38\x66\x5a\x2b\x24\x4c\xdf\xac\x88\x8a\x51\xbb\x21\xc4\x97\x34\x8c\x47\x6e\x87\xcd\x1d\x99\x01\x0a\x11\xfd\xd4\x32\x26\xa1\xcb\xa4\x15\x7d\xb9\xd4\xfa\xe1\x1e\x0f\xf3\xfd\x08\x21\xbe\xa4\x1f\xdc\x0a\x3c\xaa\x31\x89\xb7\xf5\x87\xb4\x37\x0d\x50\x18\x9d\xb4\x0f\xbb\xe8\xef\x7f\x5f\x05\xfb\x34\xbc\x3b\x8a\x81\xdc\xc1\xf6\xde\xf1\x86\x29\x39\x72\x0a\x3b\x21\x1a\x88\x13\xce\x64\xec\xa2\xbb\x97\x38\x5c\xd7\xb9\xa4\x03\x0d\xdc\x6b\x3c\xd8\xe4\xae\x23\xfd\xf2\xa2\x1c\x64\xab\x33\x95\xe7\x24\xf3\xee\x0d\x57\xe0\x2c\x6a\x8f\xc8\x75\xe1\x96\x01\xc1\xce\x66\xb2\x90\xf8\xf5\x6e\x8d\x33\xab\x0b\x5a\x1d\x57\xe6\x58\x35\xa0\x1c\x8b\x1e\xc3\x19\xef\x0c\xa5\xb2\xc0\x1a\xca\x4c\xf9\xc8\x64\x55\x77\xf6\x0f\xa8\x4d\x7e\x13\x79\xd7\xc0\x19\x78\x13\x3f\xf3\x7a\x8b\x01\x65\xdc\x15\xbf\x6b\x4b\x50\x78\x47\x30\x07\xad\x26\xb3\x70\xa9\x8f\x09\xc4\x93\xdd\xb2\x85\x57\xbf\xcd\x35\x33\x8b\x80\x14\x50\xe1\x0f\x6e\x94\xee\x75\x41\xcf\x0d\x70\xbc\x4b\x15\x3d\xb8\x8d\x29\x7c\x45\x07\xc0\x36\x6e\xef\x01\xd8\x82\xdc\xe5\xa2\x6e\x04\x2c\xe0\xb6\x8e\xe8\xb3\x80\x5f\xde\x11\xf0\x8d\x2f\xec\xc8\x91\xf5\x42\x03\x2a\x17\xc5\xe4\xfa\xbf\xad\x7f\x03\x35\x07\xc4\x19\x45\xec\x1e\x10\x7c\xf4\x8c\xb9\x23\xfa\xc0\xcf\xcc\xaa\x85\x47\x83\xfa\xbd\xe9\x76\xe6\xab\xaa\x69\x0a\xa1\x6b\xd6\x7d\xe8\x1b\x17\xc7\xf9\x60\xb7\xac\xbe\xbd\x51\x91\x84\x07\x17\x87\x19\xf1\x2e\x31\xa2\x7c\xe1\x8c\x56\xa2\xb8\xbf\x07\xda\x3f\x24\xee\x7d\x3a\x5e\xca\xf6\x9d\xc8\x93\x95\x72\x4e\xd5\x45\xaf\xea\x8f\x03\x6a\xdf\x1a\xcc\x3c\x0e\xe2\x3e\x8c\xe6\xdf\x49\xcc\xab\xa5\xc9\x72\xf6\x2a\x60\xa2\xae\x40\xcc\x58\x6f\x08\x07\x1b\x3c\x06\xbb\xe0\xb8\xb6\x4d\x5d\x89\xd3\xc9\x99\x7c\xd1\xd8\x13\x8c\x29\xdb\x4a\xcc\x03\xbc\xe5\x2e\xb1\x06\x35\x85\x63\x0d\x26\x7d\xd3\x43\xa0\xb8\xe2\xff\x3f\xa4\xf7\x8b\xc4\x0f\x1d\xa6\x41\xb6\x10\xa9\x94\x20\xdf\x41\x7e\x10\x79\x1b\x8e\xe8\xad\xc5\x12\xf7\x35\xa0\x9b\x30\x40\xee\x82\x6e\x6b\x27\x51\xe9\xae\x9b\x6a\x31\xe3\x63\xcd\x54\x0f\x75\xdd\x93\xe0\xcc\x41\xf8\xf9\xad\x82\x9f\xdf\x92\x07\x44\x8f\x82\x84\x68\x42\xc2\x8c\xad\x0b\x80\x19\x25\xc7\xbb\xa2\x4f\x47\x90\x94\x38\x89\x23\xa3\x44\x09\xf9\x62\xd4\x8a\x99\x9f\xc3\x34\x73\x70\xf3\x29\xe6\xea\x16\xd5\x1e\x07\x41\x0c\xb3\xc4\x3f\x30\x4a\xd2\x47\x0a\xe3\x91\x88\x45\x34\x4c\x5b\x37\x4b\x0e\xb8\x6f\xcf\xdf\x06\xc3\x53\xc1\x3a\xae\xd3\x7c\x9d\xa3\x2a\x70\xa5\x31\x4c\xc1\xa9\x54\x9f\x77\x71\x69\xac\xcf\x30\x41\xaf\x83\x8f\x00\x49\xd1\xce\x17\x2b\x8c\x7f\x36\x45\x48\xa6\x2f\x3b\x62\xd2\xb7\xf1\x27\x20\xe5\x21\xc9\xd4\x9e\x8d\x9c\x84\xe1\xc7\xc1\xf1\x4a\x67\x90\xcb\x77\x07\xf8\xa2\x0a\xe2\x44\x36\x1a\xdd\x89\x2f\x12\xb8\x98\x90\xe9\x39\x96\x63\x77\x6b\xa1\x60\x8b\xe3\x60\x02\x1a\x87\x52\x4b\x8a\x38\x72\xcb\x5e\xe7\x6b\xd6\x5d\x53\xdd\x35\x82\x77\xc2\x3a\x2f\x44\xb0\xe8\x63\xfe\x1c\x8e\x48\xbe\xa8\x8e\x41\x2f\x3d\x84\xab\xe6\xeb\xbb\x0a\x93\x1a\x47\x63\xa1\xde\x0c\x3a\x19\xf1\x3c\x03\xb9\xa3\x86\x41\x17\x27\xab\xf8\x8a\x4e\xf2\xcb\xb6\xcb\x85\x7b\x8f\xf3\x94\xe3\x0f\xb7\x73\xe6\x78\xbc\xc1\x95\x0b\xbb\xb3\x15\x99\xe5\xa6\x8b\xdf\xd6\x33\x74\x88\x15\xf2\xa9\xea\x0f\xf5\xad\x2d\xbb\x9b\x7a\x91\xe1\x59\xd6\x6e\xa5\xc7\x8c\xef\x4a\xb1\x74\x3f\x98\x51\xda\x93\x5c\x23\x8c\x95\x38\x90\xeb\x1e\x48\x88\xfa\x87\x0b\x4a\x87\xf7\x2f\xed\x7f\x8f\xc1\x13\x51\xda\xa4\x3b\x92\xdd\xfa\x47\xb7\x36\x34\x18\x4b\xc0\x10\x03\xdc\xb6\xe8\x0a\x3f\x21\xff\x05\x23\x08\x8e\xb8\xc3\x61\x30\x19\xe8\xea\x07\xaf\x08\x5f\x54\x61\xc4\x3d\x64\x77\x05\x8e\x28\xcd\xbe\x18\xea\xe3\xa4\xbb\x9d\x3d\xbb\xab\x07\x4f\x07\x06\x14\xb6\x7b\xcb\x0c\x3d\x88\x7a\x71\xf7\x18\xc3\x4d\x48\x1e\x55\xdf\x6d\xd9\x1f\x37\x75\xaf\xa9\xff\x82\xdf\x21\x53\x90\xa0\xf7\xd9\xb2\x69\x1b\x9a\x1e\x09\x6d\xa3\x81\xf0\x5f\x5a\x5a\x37\x51\x00\x06\xec\x9b\x6c\xa7\xe1\x88\xac\xcc\x19\x92\x49\xb8\xe0\xd8\x44\xbe\x14\xb6\x68\x2b\xc3\x66\xc9\x85\x1a\xb3\xb1\x67\x5b\xa9\x63\xcb\x08\x4a\x6a\x99\x66\xce\x8e\xf6\x7a\x35\x13\xc0\xe7\x9a\x12\xc0\xe2\x90\x82\xe3\xc5\x10\xba\x76\xdb\x8c\x87\x8a\xc0\x16\x92\x9c\xbe\x41\x72\x7a\xc5\xc9\xe3\x16\xac\x57\xae\xd8\xa0\x53\x87\xca\x71\x0c\x81\x61\x99\x17\x1c\x6a\x60\x08\x6f\x98\x5b\x95\xf9\x76\x84\xb7\x57\x94\x38\xc2\x1a\x20\xc7\x08\x00\xec\x61\x2c\x84\xa5\xaa\x02\x5a\x57\x58\xe2\x35\x25\x1d\x82\xc6\xf9\xfd\x10\xbe\x66\x51\xf1\x40\x09\xdd\xb3\x87\xbd\xd2\x13\x97\x51\xaf\x9a\xf9\xdf\xca\x45\xdf\x19\xf4\xb9\xfc\x0c\xa0\xe6\x4d\xd3\xf3\x1b\xae\x5b\x16\xb7\xe0\x57\x25\x68\x7a\x6e\xe9\x2c\x6e\x2d\x3e\x8e\x30\x25\xd0\x63\x54\x09\xf4\x61\x5c\x6d\x38\x22\x21\xb5\xd5\xee\x16\xfd\x8e\x16\xa8\x6b\xf0\xec\x92\x23\x19\x5e\xba\x8c\x51\x8b\xa3\x92\x21\x85\x0e\x0b\x4f\xb5\xbc\x20\x21\xa2\x9c\x6c\xfa\x84\x73\x6e\x6d\x7b\x54\x36\x6c\x7c\x54\x7c\x6a\xa5\xe0\x5d\x17\x36\xa8\xcf\x77\x8b\x8f\x65\xcf\x97\x75\x56\x19\xce\x87\xc3\xba\x2e\x0c\x2c\x7d\x0e\xb0\xf4\x15\x81\xa5\x57\x30\xd1\x4c\xd4\x4a\x9b\xce\xa6\xec\x73\x9c\xf3\x07\xb5\xbc\x3c\xa1\x19\xe0\xe4\x22\x9f\x2a\x05\xd3\x4d\xa6\x52\xb6\xae\x42\x16\x7c\x82\x1a\xce\x61\xdd\x51\xc1\xfb\xd8\x81\x4c\xd5\xc6\x51\x6b\x64\xf7\x5b\xdc\x2c\xe4\xb9\x13\x8e\x63\x43\x7d\x78\x27\x29\x01\x2c\x34\x09\x82\x35\x1e\x89\x23\x6d\x84\x2f\x27\xf0\xab\x98\x51\x0a\x07\xf3\xc0\xc2\xb8\x08\xee\x82\x6f\xfc\x4e\x01\x6e\x73\x59\x4c\x07\x21\xad\x79\x03\xb4\x96\x87\x70\xda\x68\x27\xa8\x14\xb6\x22\x6a\x9c\x78\xbd\x6b\xf0\x6f\xa2\x39\x78\x18\xc1\xe9\xdd\x42\x7f\x73\x9a\xc2\xde\xf9\x24\xb7\x82\x89\xf4\x0a\x99\x55\x52\x4c\xde\xc2\x93\x6d\xf6\x6d\x79\x51\x28\x16\x49\x8b\xde\x07\xd7\x34\xbb\x54\xea\x42\x4a\x69\xba\xbe\xc3\xab\xaf\xbb\xc2\x8d\x1d\x2f\xd9\xb1\xf7\xeb\xbb\xf0\x41\xe7\xb7\xa1\x87\xfb\x55\x83\x51\x06\x03\x8b\xbd\x7e\x6c\x98\x77\x5f\x6c\x9d\x69\x1d\x61\xe8\x12\x1d\x19\x04\x64\x73\x7c\x19\x3c\x55\xa7\x0e\x30\x02\x29\xe1\x40\xe5\x9c\x6b\x1d\x96\x86\xf6\x62\xea\xc0\xa0\x86\x37\xd0\x6c\x02\x2c\x8f\xdf\xf6\x85\x75\x99\x15\x7b\xf1\x62\x86\x6d\x16\x5e\x66\xbb\xda\x5e\x94\x31\x32\x38\xf4\x88\x93\x85\x8d\xfe\xc2\x77\x9c\x3c\x2e\x02\x4a\xc1\x61\x7b\x4c\x23\x55\x97\x85\x44\x31\x8c\x3a\x9d\x0f\x88\x84\xc1\x95\x4e\x22\x50\x9c\xbe\x87\x4f\xa6\x07\x27\xab\x46\x38\x38\xc3\x64\x4f\xea\x4c\x9d\x09\x47\x35\x04\x65\x60\xd2\x13\xc2\x66\x17\x4e\xb9\x4a\x3a\x85\x22\x6f\x00\x35\x0c\xb9\xf7\xb0\x00\x7d\xeb\xe9\x59\x8c\x8b\xe9\x67\xfa\xfe\x43\x5e\x2a\x0c\x3b\xe0\xdf\x2b\x3c\xd0\xfe\x3f\xe5\xbd\xc2\xa1\xf1\xb9\x8b\xbb\x32\xe1\x71\x76\x3c\x7c\xb4\xe0\x80\xbb\x19\x3f\xe8\x36\xc3\xe5\x9d\x98\x9b\x45\x67\x7b\x11\x57\x43\x89\x90\x5b\x21\x21\xf6\x72\x40\x92\xb7\x8c\x9b\x51\x5c\x0c\x5b\x60\x54\xc3\xf6\x82\xfb\x56\x51\x6b\x52\x62\x1c\x0d\x3d\xee\x82\xa4\x8c\x0f\xd4\x24\x5d\x6d\x32\xa9\x86\xae\x2d\xd5\xc0\x36\x83\x61\x46\x4f\xb1\x2c\x6d\x18\x26\x15\xf6\x36\xe5\x2b\x83\x2e\x0f\x38\x4b\xd4\x6d\x29\x25\x91\x20\xec\x2e\x97\x32\x2f\xcd\x0a\x7a\x2f\x29\x61\x0c\x42\x49\x91\xd7\xc0\xf0\xc8\xad\x7c\x69\xfa\xd8\x27\x25\xe8\xa4\x56\x33\xe8\x5c\x50\x2b\xa0\xa6\x99\x63\xd0\x9b\xa1\x63\xad\xa4\xe2\x52\x13\x7b\x01\x77\xbd\xa6\x6c\xf5\x61\x73\x8e\x2c\x28\x29\xb0\x73\x14\x70\xcf\x63\xb3\xc6\xe9\xdb\x30\x3d\x78\x20\x0c\xb9\xee\x69\xb0\x09\x98\xc0\x63\x24\x6f\x39\xb0\xe1\x0f\x1a\x04\x26\x78\x28\x8c\x2f\x20\xc9\xb3\x23\xdb\x35\xf7\x97\x83\x5f\xe3\xb4\x81\x0d\xb6\xbc\xbd\xe7\x78\x1b\x08\x67\xaf\xc4\x66\x96\xe2\xe9\x29\x6f\x59\x28\x32\x79\x2b\xd7\xd0\x4b\xd8\xc2\x35\x5c\xec\x73\xf6\x71\x0a\x40\x0a\x7b\x57\xd9\x8f\x28\xef\xfb\xb6\x9a\xef\xf8\x08\x53\x5d\x35\x78\x51\x8a\x5f\x88\xcb\x1b\xc1\x76\x3b\xbb\xb2\x70\xa9\x5f\x87\x61\x07\xef\x9d\x0f\xe0\x24\xfc\x93\x75\x4b\x82\x3f\x59\x15\x38\x01\x70\x00\x72\x2e\x18\x41\x6c\x78\x73\xc8\xba\x9c\x97\x27\xf1\xd6\x22\xbd\x3c\xd6\x9c\x6e\xd3\x6f\x2d\x74\xf9\xe5\xd9\xd5\xc5\x2d\xb4\xc4\xa0\x4a\x13\x80\x0c\x08\x83\xb3\x94\x38\x90\x15\x50\x88\xfa\xc7\xa8\xf3\xb6\x6a\xe0\xf0\xb0\x11\x62\xeb\xa6\xe1\x6e\xdb\xa1\xe5\x69\x17\xda\xce\x2a\x0e\x62\xcf\xbe\xd6\x52\x66\x96\x9e\xed\xd6\x7d\xc5\x0e\x5b\xd6\x9a\x3a\x0d\xf1\xa3\xe4\xe5\x36\x6f\x2d\xce\x26\xc2\xda\xa4\x0f\x8e\x1e\xcc\xa2\xd5\x97\xf5\xf2\x1a\x9c\x3c\xcc\x77\xf5\xe6\x92\x3e\x17\xed\x8d\x9c\x59\xea\x48\x3f\x56\x5b\x06\xd3\xf7\x7c\x79\xc0\x94\x02\x58\x79\x7f\xdf\x96\x0a\x1f\x6e\x95\xed\xa7\x6a\xe1\x08\xe6\xe2\xf8\x0c\x26\x02\x4a\x0a\x17\x9f\x36\x8d\x40\x3c\x26\xa4\xf9\x4e\xd0\x74\x34\x91\x90\x66\x0c\x84\x1f\xb2\x65\x47\xf2\xad\x21\x30\x8c\x18\x32\x94\xa4\xf4\xb5\x43\xc5\xf4\x48\xaa\x88\xa1\x03\xe1\xc2\xb3\xb6\xa1\xf0\x17\x17\xb9\xcb\xed\x7b\x16\x31\xb3\x70\xe7\x1a\x3c\x7b\xfb\x65\x6e\x3a\x61\x65\x81\x94\x71\xdb\xa0\x27\x83\x17\xc4\x25\x22\xc8\x4c\xf8\xab\xbd\x0c\x12\x57\xed\x5f\x82\x19\x95\x88\xde\x08\x19\xe1\x75\xc2\xfd\xe5\x16\x97\x97\xa0\xf6\xc1\x7e\x1f\x57\x7c\xd7\xb6\x2f\x66\x33\x33\x57\xb9\x23\x23\x35\x57\xc5\x27\x47\x0a\x9b\x6f\xb7\x6e\xdb\x08\x1e\x7f\x01\xd9\x06\x20\x9f\x84\xe1\x04\x10\xb4\x08\xba\x41\x3d\x72\x1f\x2b\x04\xe2\x6b\x59\x0a\x30\xdc\x7a\x34\xb9\xb9\xbe\xe6\x90\x53\x1c\xb7\x50\xe3\x85\x20\x02\xd5\x19\x3b\x38\x5b\x49\xb9\x65\x98\xb1\xfd\x0c\xf6\x28\x1e\x93\xbd\x1b\xfa\x0e\x89\xac\x00\x18\x78\xbb\x73\x0f\x2e\xbf\xdb\xd5\xa2\xda\x04\x59\xda\x10\x67\x85\x8d\x40\x7a\x69\x9b\xa6\xb7\xe7\x09\x02\xd1\xe5\x1d\x25\xd3\x9e\xd6\xaf\x1c\x82\xf9\x50\x6a\x91\x49\x20\xf4\xa0\x0c\x8e\xc4\x16\x70\x53\x1f\x17\xa2\x7e\x8f\x4b\x50\xbf\x0f\x80\x8b\x0f\x85\x6d\xfc\x97\xf8\x25\x4c\xda\xf5\x98\x3d\x32\x95\x1a\x6d\xc0\x92\x36\xa4\x9b\x10\x07\xc5\xdc\x13\xc6\xa9\x1d\xa3\x4d\x92\x06\x41\x86\xd2\x8b\x4f\x0d\xe5\x05\x9f\x1a\xca\x3e\x3e\x55\x3b\x36\xe8\x41\xd7\xad\x6d\x22\x2e\x2f\xdf\xc4\xb3\xed\x73\x83\x77\x62\xd8\xb5\xeb\x1e\x07\x30\x5d\xd2\x7e\x70\x2f\xe5\xcb\x77\x8f\x82\x12\x8a\xcd\x10\x7f\x9a\x3a\xac\xa3\xfb\x6d\x5d\xf5\xe5\xf7\xf7\x70\xca\x7d\xaf\xaf\x8a\xf9\xbd\x47\xe1\xba\xa9\xe0\x6b\x1f\x2c\x9c\x6a\x71\x00\x3d\x4e\xcf\x8e\x9e\x95\x4c\xe5\xe2\x72\xd5\x96\xb6\xbf\x9f\x04\x2f\x3d\x8e\x48\xda\x6f\x03\x8e\xa0\xc3\x2d\xc0\x3a\xc6\x17\x37\xda\x20\x23\x23\x79\xa1\x97\x87\xf0\xd8\x97\xf2\x9d\x55\xf3\x1c\xc9\xbe\x87\x12\x7c\xd5\x82\xb1\xaa\x9f\xbc\xf5\x0f\xb1\x54\x5f\xd7\xb8\x5a\x61\x45\xec\xb1\x5e\x98\xc4\x46\xef\xfa\xc2\x16\xa6\xcf\xfa\x6a\x01\x8c\xdd\x59\x1a\xce\x78\xc0\xa1\x71\x61\x38\x60\xdc\x29\xaa\xfe\xce\xd1\x36\xf9\xd5\x45\x3f\xec\x33\xd2\x5b\x37\xbb\x0d\x1e\xf5\xbb\xe4\x78\x63\x78\x96\x71\xd4\xad\x2d\x49\xfa\x79\xd8\x23\x24\x38\x26\x24\xd7\x05\xf9\xae\x44\xb6\xd6\xc3\x28\xb9\x52\x88\x1b\x13\xe9\x1b\x9c\x3e\x39\xec\xd0\x26\xe4\xc5\xd2\xa8\xd0\x3b\xce\x73\x62\xec\x44\x61\xbb\x69\xec\x48\xc5\x6e\xf2\x4d\x92\xca\x6f\xbb\x72\x47\x95\x97\xf5\x12\x64\xfa\x27\xfe\x49\xe2\x0e\xff\x74\x08\x92\x2b\x7a\xb0\x4d\xf1\xc5\x80\xa7\x76\x69\x0f\x26\x2a\x4a\x71\xb4\x70\xa7\x5c\x12\xcc\x4c\xb8\x0b\x9c\xe1\xf7\x74\x07\x15\x76\xac\x9a\xc4\xf9\x36\x8b\xb4\xa6\x9a\x60\xee\x5e\xfd\xfc\xe6\x7c\x00\x39\xc1\x0c\x34\x67\x82\x79\x68\xce\x04\xab\x90\x83\x55\x37\x04\x1c\xa6\x4e\x8f\x40\x20\x0f\x0e\x40\x08\xda\x3b\x51\x80\x92\x27\x2b\x52\xd2\x2f\x88\xb2\xe4\x72\x8c\x10\xbd\xfc\x8e\x81\x82\x57\x8b\x04\xca\x1e\x2d\x1a\xb5\x5a\x87\x6d\xd6\x72\x28\xe8\xb9\x8e\x78\xf3\x04\x5c\x47\xbc\xe1\x27\xbb\x67\xd0\xdb\xb6\xf9\x54\x15\xfa\xc8\x93\xc0\x5f\x68\x92\x81\x1a\x88\xaf\xd9\x20\xb4\x6a\xd7\x4d\x22\xdc\xca\x49\xaf\x27\xf8\x15\x4d\x9d\x2e\x3f\x5e\x2f\x02\xeb\x57\x20\xbf\x4b\x2c\x25\x0c\x78\xb9\x70\x88\x31\xf3\xee\xcb\x13\xff\x9e\x13\x2c\xc1\x83\xc1\xac\xab\xeb\xd2\xd9\x8d\x75\x34\x6f\x28\x2d\x02\x5e\xf5\xfd\xb6\xb3\x6b\xd7\x78\x7d\x28\x3d\xa7\x1f\x83\x41\x84\x55\xe9\x48\x46\x35\x6d\x2b\xd8\xf2\x03\xbc\x48\xc2\x34\xc6\x0d\x5a\x77\x87\x00\x5c\xb7\x87\x21\x8f\x5b\xb6\x8e\x71\xda\x0a\xf1\x4f\x9a\x7b\x59\xc0\xb5\xce\x32\xc0\x64\xcb\x0c\xa5\xbb\x24\xc3\x60\x97\x34\xc7\x9e\xd9\xa2\x95\x10\x70\xfc\xef\x8a\xbd\x2a\x5c\x4e\xb8\xf6\x2c\xad\x23\xda\x2b\x76\x72\x71\x4d\x3f\x3d\xbc\x0f\x4d\x2f\x68\xb2\x8c\x89\x70\xf6\x31\x40\xf9\xb9\x5c\xec\x82\x43\xbe\x9f\xe5\xb7\x5a\xd5\x7d\x35\x8d\xf9\xf1\xee\x6a\x3c\x65\x70\x21\x29\x01\xcc\x54\x1c\x48\xeb\x3a\xbc\x91\xcd\x2b\xf9\x60\xfb\xae\x79\x28\xb3\x0c\x65\xce\x51\xe6\x73\x24\x3f\xb3\xb5\xdc\x63\x1a\xf8\x4b\x19\x6c\x28\xf1\x84\x69\x88\x25\x15\xf8\xa6\x59\xde\x44\xc7\x2d\xab\xd9\x32\xcb\xda\xce\x02\x58\xa8\x0f\xc1\x53\xa4\xd2\x07\xc9\xbf\xcb\x1b\x32\x79\x2f\x1e\x46\x1f\x06\x8f\xae\x99\x21\x3e\xf0\x78\x8b\xee\xd2\xdd\xef\xf4\x16\x5d\x1d\x84\x8f\x93\x5f\xc5\xe8\x09\x24\x8b\x43\xfc\xad\x8f\x43\x1c\x3d\x83\x3c\x7c\x26\xc1\x85\xad\x47\xad\xec\x42\x28\x4f\x62\x04\x3d\x78\xd2\xb5\x8b\x27\xf7\xc3\x88\xf4\x6c\x2f\x8d\x83\x3d\x47\x55\xca\xe8\x2c\xb4\xff\xaf\x1a\x4e\x5f\x7e\x87\xf5\x8a\x51\x4f\xaa\xe6\xd8\xd0\x2e\xde\xbd\xd6\x30\x0c\x4d\x6d\x88\x8a\xc2\xc6\x86\x15\x6a\xc4\xe9\x71\x7d\x83\xd7\x06\x82\x17\x15\x9a\xfa\x6b\x3a\x36\x19\x3f\xf7\x57\x0d\x74\xfc\xd5\xdd\x72\xf1\xad\x14\xfb\xf6\x7b\x40\x0b\x32\xa3\xd3\xd3\xe9\xc9\x03\x01\x1b\xf8\x26\x9f\x9f\x45\xfa\x71\xfb\x34\xc6\x94\x31\x9c\x46\x8d\x72\xfe\x5d\x10\x92\x1a\x97\x78\x25\xa3\xea\x34\x64\xa9\x04\x02\xff\xce\x3d\xe4\x94\xbc\xe7\xe8\xc3\x1f\x92\x7c\xc9\x63\xa2\xbf\x09\x9e\x73\x93\xeb\x04\xa0\x51\xfa\x4c\xe4\x27\x7f\x7d\xcb\x15\x7f\x9b\x76\x25\x31\x4d\xc4\xcd\xfd\x76\x83\x84\x0d\xa9\xd6\xc4\x8a\x38\x61\x85\x04\x7e\x47\x10\x3f\x0b\xfc\x2c\xf2\x1b\xfc\xda\xe3\xd7\xbe\x2c\x3f\x4a\x61\x70\x55\x2a\x4e\xca\xf9\x0a\x29\x37\xf8\xcd\x81\x60\xf9\xa7\xb4\xa3\xb1\xfb\xed\x07\xa2\xf5\x72\x73\x9a\x6e\x3f\x28\x5d\x5e\x7f\x7f\xea\x1f\x82\xbf\xcf\x27\xf4\x37\x9a\x84\x2f\x4a\xe1\xe6\x35\x49\x3e\xef\x83\x35\xf6\x2b\xab\x50\xbe\x29\x95\xfb\xa1\x89\xf2\x49\x69\x6d\xbe\xcf\x7c\xbf\xf4\x0b\xa9\xbe\x57\xfa\x45\xe8\x2d\xda\x66\xcb\x91\x3b\x3f\xb8\xc7\x19\xfd\x3b\x58\xa7\x94\xa7\xd1\x89\x10\xae\x91\x6f\x00\xf3\xab\x75\xf2\x4e\x2c\xdf\x8f\x9d\x25\x16\x51\xb7\xaa\xb7\x3b\xa7\x9f\xfa\x70\xce\x02\xe6\x43\x1c\x89\x4f\x39\x3f\x6e\x23\x2f\x7f\xd1\xec\x66\x73\xec\x7b\xd0\x7b\x59\x19\x78\xf8\xaf\xff\x0a\x70\xfa\xfc\xb7\x7f\x4b\xcf\x9e\x3f\x4a\xcb\xcf\x1c\xb0\xad\x4b\x37\xf9\x67\x68\x05\x0a\x45\x3f\x5f\x44\x80\x7c\x2b\x16\xde\xc1\x7a\x0c\xa5\x4f\x45\xe3\xec\xe9\xff\x07\x00\x00\xff\xff\xf0\x3b\x58\xd6\xcc\xac\x00\x00") func confLocaleLocale_enUsIniBytes() ([]byte, error) { return bindataRead( @@ -4379,12 +4379,12 @@ func confLocaleLocale_enUsIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 42176, mode: os.FileMode(420), modTime: time.Unix(1441638740, 0)} + info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 44236, mode: os.FileMode(420), modTime: time.Unix(1445210776, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_esEsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\x4b\x6f\x1c\xc7\xb2\xe6\x5e\x80\xfe\x43\xd9\x17\x82\x6d\x80\x6a\xc1\xf6\xbc\x60\xa8\xe4\xa1\x28\xca\xd2\x8c\x1e\xbc\x22\xe5\x83\x3b\x86\xd1\xae\xee\x4a\x36\x4b\xaa\xae\xea\x53\x0f\x52\xad\x8b\xbb\x98\xbf\x31\x3b\x2d\xbd\x10\x30\x17\x67\xe7\xcd\x01\xcc\x3f\x36\xf1\x45\x44\xbe\xaa\xaa\x9b\xf2\x39\xe7\xce\xc2\x16\xbb\x32\xf2\x15\x99\x19\x19\xef\xcc\x36\x9b\x79\x6e\xda\x65\xfa\xba\x4a\x5a\xd3\x5c\x16\xcb\xa2\x4e\x72\x93\xfc\x50\x74\x49\xd6\x77\x75\x92\x95\xf5\x9b\x2c\xaf\x93\x6d\xd2\x16\x55\xb2\xac\xd7\x9b\xb2\x58\x66\x04\x55\x99\xf6\xf6\xad\xdb\xb7\x2e\xea\xb5\x49\x9f\x56\xf4\xe1\xf6\xad\x3c\x6b\x2f\x16\x75\xd6\xe4\xe9\x49\x56\x99\x12\xed\x2c\xeb\xaa\x6b\xea\xf2\xf6\x2d\xf3\x6e\x53\xd6\x8d\x49\x8f\xf9\xdf\xac\xa1\x9a\xa6\xdc\xa4\x87\xdb\x3e\xcf\x6e\xdf\x6a\x8b\x55\x35\x2f\x2a\x6a\x88\x06\x90\x35\x34\x94\xb6\xb8\xfe\x4b\x45\x05\x35\xfd\x2e\xe7\x51\x39\x0f\x50\x21\x12\x01\xf8\x2e\xf9\xe6\xf7\xff\x9b\x6c\xb2\xb6\x4e\xee\xb7\xeb\xac\x2c\x1f\x2c\x7b\x53\x75\x19\x20\x33\x06\xc9\xeb\xfb\xf7\xa4\x44\x7b\xab\xfb\x2e\x3d\x32\x4d\x13\xf5\x86\x82\x7e\x93\x9e\xf6\xed\xb2\x29\x36\x4b\xf9\xda\x98\x55\xd1\x76\xa6\x49\x5f\xf1\x1f\x0d\xcd\xf4\xca\x2c\xda\xa2\x33\x34\xcf\x55\x51\x65\xc9\x9f\xcc\xe2\xf6\xad\x4b\xd3\xb4\x84\x96\xf4\x47\xfc\xcb\x15\x37\xd9\x8a\x40\xae\x3f\x00\xe6\xf6\xad\xce\x10\xee\x32\x54\x2a\xb3\xaa\x2b\xca\x92\xbe\xd1\x5f\xab\x1e\x50\xcf\x0c\xfe\x78\x63\x6e\xdf\x5a\x36\x86\x80\xe6\x95\xb9\x4a\x8f\xe8\xcf\x26\xa9\x7a\x73\x59\xcf\x66\xb3\xdb\xb7\x7a\x5a\xa1\xf9\xa6\xa9\xcf\x8b\xd2\xcc\xb3\x2a\x9f\xaf\x81\xd1\x13\xd3\xd0\x07\xcc\xb4\x6f\xfb\xac\x29\xb0\x56\xeb\xeb\x0f\xad\x4c\xc7\xe4\x84\xb7\x79\xd6\xa6\x4f\x73\x42\x48\x71\x4e\x8b\x47\xab\x49\xeb\x58\x63\xf5\xd0\x62\x95\xd1\x0a\xbe\xa8\xd7\x8b\xc6\x04\x8d\xd0\x8a\xad\xb3\xa2\x4c\x8f\xea\xa6\x31\x75\x62\x4a\xb3\xec\x1a\x9a\x55\xb1\xac\x31\xb1\xb6\xbd\xaa\x69\x9d\x8f\xb0\xbc\x59\x6b\xae\xff\x3d\x03\x9e\xe6\xdd\x76\x83\xdd\xb0\x6a\x4c\xcb\x8d\xf1\xd8\x69\x4e\xd9\xa6\x5b\x5e\x64\xe9\x91\xfc\x8b\x9e\x1b\xb3\xa9\x09\x85\x75\xb3\x25\xb4\xea\x9f\xe8\xb5\x6e\x56\x59\x55\xbc\xcf\x3a\xa0\xf2\xa5\xfe\xd0\x85\x58\x17\x4d\x53\x37\xe9\x71\xbb\x31\x6f\x08\x94\x50\x34\x47\x33\xe9\x0b\xf4\x92\x34\x61\x33\x28\x5b\x17\xab\x06\xf8\x46\x71\x96\x3c\xc7\x2f\x6d\x08\xa5\xe7\x75\xf3\x56\x6b\x3e\xa6\x3f\x69\xb4\x65\xf2\x6a\xd8\x04\x8d\x46\xab\xd7\x83\xa1\x64\x15\x2d\x1b\x97\x1f\xe6\xeb\xa2\xc2\xbe\xa0\xb5\xf2\x50\x72\x3e\x32\x94\xcd\x37\x38\x0d\xfe\x4c\x64\xae\x82\x36\x96\x2d\x97\x75\x5f\x75\xf3\xd6\x74\x5d\x51\xad\x5a\xa0\xf5\xbc\x58\xf5\x8d\xb6\x83\x4a\x65\x96\xc8\x96\xa6\x65\xdd\x01\x76\xfb\xd6\xb6\xee\xdd\x06\x49\xcf\xfa\x64\xc3\x5b\x43\xbf\xbb\x6a\x54\xb0\xf4\x35\x79\x04\x3c\xdb\x76\x7e\x6e\x4c\x9e\x1a\x2c\x69\xce\x47\xa7\xaa\x3b\x9c\x47\x6a\x79\xd3\x97\x25\x21\xfb\xcf\xbd\x69\xbb\x36\x3d\xad\x89\x08\x14\x5d\x9f\xcb\xd8\x1a\xd3\x15\x38\x15\x45\xdb\x52\x79\x7a\xd2\x2f\x62\x1a\xb1\xcc\xaa\x25\x21\xe0\x88\xff\xc1\xd1\xbf\x7d\xeb\xa7\x96\xb6\xf6\xf2\xe2\x67\xcc\x06\x7f\xa4\x0f\xe9\xc8\x65\x0d\x6f\xf3\x5d\x5b\x03\x9b\x35\x7d\x6d\xb7\x27\x77\xc6\x94\x87\x36\x36\x0d\x92\xba\xa9\x73\x93\x1e\x5d\xff\x25\x2f\x56\xbc\xb9\x7f\x2a\xaa\xb6\xa3\x13\x4f\x9d\xe8\x5f\x04\x8e\x7f\xed\xac\xbb\xa2\x2b\x71\x86\xdb\xda\xa2\xb8\x08\xca\x93\x4d\xdd\x24\x9b\xa6\x58\x9b\x26\x4b\x2e\xcd\x7b\x0c\xec\xcf\x3d\x9d\xfa\x79\xbe\x10\x9a\xf9\x43\xbd\x6a\x93\xca\x2c\x89\x7c\x10\xa9\x79\xbe\x3d\xfd\xe7\x67\x07\xc9\x49\xdd\x76\xb4\xff\xe9\xef\xa4\x4e\xe8\xff\x54\xe1\x5b\x9a\x14\xd5\x91\xee\x8e\x22\xd4\xa3\xdf\x45\x26\x87\x25\xcf\xba\xba\x15\x48\x1c\xa3\xb3\x62\x53\x4f\x14\x5f\x50\xfb\xe9\x21\xb5\xd1\x35\x32\x8b\x18\x2d\xd3\x47\x93\xda\x1c\x1c\x73\x9a\xec\xb8\x5f\x90\x64\x6a\xec\x84\x26\x7e\x9e\x5d\xd2\xff\x7b\xa2\x53\xc5\xd2\xd0\xf1\x4f\xd6\x35\x2d\x43\xf2\xf4\xc5\x8b\x97\x8f\x1e\x62\xff\xf0\x8e\x1c\xcd\x85\xd6\x30\x5b\x12\xad\xa4\x8d\xd1\x77\xe7\xff\x6d\xbe\x32\x15\xa1\xaf\x9c\x2f\x0b\xa2\xce\x8d\x22\x89\xd0\xd1\xb6\x25\x51\x2f\x5a\xaf\xe7\x35\x91\xa3\xd3\xd3\x67\x18\x79\x77\x91\xbe\xea\x79\x87\xff\xb9\x04\x9e\x75\x38\xf8\xc6\xc7\x13\x1b\xa5\xb8\xac\xa7\x86\x8f\x3f\x3c\xb2\x89\xac\xcf\x89\xda\x76\xdb\xb9\xb6\xc4\x6d\x3f\xcb\x92\x46\x9a\x1a\x57\xd7\xba\xb4\xe3\x93\x4d\x6f\xe8\x33\xed\x73\x3a\xcf\x97\xd9\xf2\xfa\x63\x36\xc3\x6e\xb2\x33\x99\x5c\xc5\x1f\xa4\x90\x6f\x4e\xda\x14\x74\xa4\xe9\x5e\x1d\x63\xfc\x50\x2f\x4f\x39\xf5\x0a\xe2\xb1\x5e\x25\xd9\x9f\xfb\xeb\x8f\xc0\x76\xe5\xaa\x75\x7d\x4c\x7b\x0e\x92\xdf\x3f\x64\x65\x07\x2a\xbf\xa4\xc3\x54\x7f\x26\x07\x66\xee\xd0\xc7\xa8\x0a\x88\x21\x1a\x79\x95\x15\xef\x93\x2f\x5f\xd5\x75\xf7\x55\x00\x6e\x7b\x3e\xa3\x35\x68\x93\x92\xfe\x0b\xaa\xe1\x07\xd6\xbc\xb5\xec\x00\xa1\x8b\xae\xa8\x26\xcf\x9a\xeb\x0f\x55\x62\x2a\xa0\x88\x46\x58\x34\x74\x33\xa0\x02\x4e\x6e\x4f\xd7\x27\xb6\xe3\xe1\xa2\x29\x1a\xcc\xc3\xdd\x26\xb6\xc8\xf6\x79\xec\xca\xfc\x09\xea\x80\xc5\x84\xa8\xa1\xa1\x7b\x3c\x03\xc2\x78\x3e\xaf\xb2\xeb\x8f\xef\x87\xf4\x99\xa6\x6f\xde\x98\x65\x8f\x55\x02\xca\x71\xc4\x6a\xba\xb1\xaa\xf4\x51\x0d\xf2\x5a\xdb\xdf\xae\xc3\x16\xdc\xcc\x39\x0d\x36\xe3\xb6\xdb\xe4\xf5\xab\x67\xad\xec\xca\x65\x59\x57\xd4\x0e\x0e\xfc\xe9\xe9\x13\xde\x9e\x17\x73\xfa\xd5\x11\x2d\x33\x4d\x87\x0d\xfa\xc4\x7f\xb4\x2d\xbe\xb8\xfe\x8d\x68\x03\xe3\x77\x23\x60\xe0\x4b\x7a\xe1\xa3\x72\x69\xeb\x20\xc9\xaf\x7f\x7d\x63\xca\x1a\x08\x5b\xd0\x75\xbf\xac\xa5\x4b\x22\x20\x74\x50\x8a\xcb\xcc\x76\x79\xd1\x75\x9b\xa8\xcf\x27\x67\x67\x27\xc1\x67\xb7\x4d\xa4\x14\xf8\x2f\x13\xa2\xc7\xb4\x0c\xcb\x9e\x2e\x55\x5a\x15\x60\x2c\xf3\x5b\x6c\x26\x7b\xac\x6f\xca\x94\xa6\xaa\x5b\x30\x1b\x6e\x41\x2a\xfe\x83\x28\xc2\xc0\xee\xe1\x7f\xa7\xb4\x08\x04\x59\xae\xfa\x8a\xb6\xc9\x92\x39\x85\x36\x62\x15\x5a\x3e\x3a\xf5\x06\xb7\xf9\xae\xb3\xf3\x72\xb3\xe4\x52\xe5\x38\x76\x91\xc9\x32\x39\x0d\xf8\x53\x61\x4b\x68\x4d\xd6\x84\x1e\x26\x89\xa7\xcf\xcf\x4e\x92\x27\xf4\x97\x7e\x3c\x6f\xea\x75\xfa\xc8\xb4\xb9\x09\x3e\x38\x92\x62\xd6\x74\xdc\x2b\xec\x5f\x6a\x98\xfb\x3d\x48\x5e\x3d\x3e\x4a\xfe\xf3\xb7\xdf\x7c\x33\x4b\x4e\x98\x04\xd0\x3a\x12\x7b\x59\xd2\x11\x05\x60\x4f\x7c\x1e\x6f\x76\x4f\xeb\xc6\xac\xd1\x01\xd1\x7c\xa1\x1c\xb2\x3e\xc4\x64\xac\x89\xbe\x24\x9f\x0b\x19\xf8\x3c\xb9\xcf\x7d\xfd\x77\xf3\x2e\x23\x66\xd0\xcc\x88\x0f\x7b\x30\x03\x37\x41\x17\x76\x23\x47\x27\x1e\x9a\xb2\x5f\xc7\x11\xfb\xa5\xe0\x53\xa4\x5e\x8f\x89\x36\xe1\x79\xd7\x39\x93\xea\x66\x9d\x3e\xc9\x16\x44\xd2\x31\x42\xda\x0c\x47\xf2\x51\x71\x2c\x43\xf6\x4c\x2e\xaf\x06\x58\x80\xf3\x6d\x54\xad\x4d\x5e\xd4\xc2\x49\x7a\xf6\xc4\xad\x07\xad\x91\x01\xaf\x81\xa5\x32\x3b\xaf\xbc\x53\x7b\x44\xb6\xc9\x4b\xea\xab\x75\x6b\x4b\xa4\xb3\x3e\x3f\x2f\x8b\xca\xc8\xf5\x70\xa8\x67\x84\x2f\x20\xdc\x14\x24\x84\x50\x73\xe6\x9d\x6c\xe0\x10\x96\x4e\xc9\x86\x78\xf7\x47\xfe\x60\x01\x7f\x8f\x5e\xd0\xa5\xbe\x2c\xfb\xd6\x1e\x19\x6e\x06\x47\xb6\xa9\xf3\x7e\xa9\x24\xb5\x0b\x28\xe0\xb2\x6f\xc0\x10\xb4\x46\x0e\x32\x53\xbb\xb2\x5e\x66\x25\xef\x03\xd0\x99\xa2\xcd\x16\xc4\x81\x13\x3f\x79\x99\x11\x4a\x06\x5d\xba\x6d\xfa\x83\x96\x8f\x6b\x8c\x87\x6a\x61\x41\xd5\xfb\xac\x24\x3e\x83\x36\xdf\x79\xcf\xfb\x80\x36\x6c\x8b\x03\x42\x37\x40\x9e\x85\x63\x95\x2a\xbc\x00\x0b\xc3\xf2\x1b\xee\xdf\x55\x86\x72\x1c\x54\xc0\x28\x91\x6d\xb1\x31\x4b\xad\xc1\x85\xb9\xc1\x41\xaf\x83\xf9\xc8\x5e\x69\x84\xf5\x0e\xc6\x76\x48\x72\xe0\x5d\xbf\x2d\xa6\xc0\xc7\x13\x82\xf0\x78\x57\x41\x6a\xde\x95\x3a\x92\x03\x9c\x29\x19\x8c\xe3\x83\xb1\x13\x36\x75\x0e\x12\xb6\x64\x99\x47\x58\xdd\x96\xe5\x87\xac\x9d\x29\xeb\x45\x02\x86\x0a\x82\xf3\xcb\x82\xe4\xa3\x60\x73\x78\xc1\xf0\x54\x05\xc3\x9a\x98\xd0\x55\x26\x77\x05\x53\x30\x92\xcb\x12\x15\xc6\xda\xe9\x06\x75\x16\xa7\x18\x5f\x84\xbb\xb2\x56\xa4\x82\x2e\x54\xc4\x0c\xd2\x70\xb5\xa5\x03\x86\xbc\x2c\x70\x81\xd1\x62\xd1\xa2\x54\x38\xa6\x6b\xec\x20\xb4\x23\xd3\x92\x3a\x38\x3a\xb6\x1e\x93\xe3\x9a\xfe\xbc\x67\x91\x34\xb3\xe2\x82\x32\xea\xc2\x63\xbe\x00\x41\x91\x2b\x92\x2f\x4b\xc1\x0f\x88\x51\x20\xe1\x46\x88\xcc\x2e\x48\xbe\x4e\xd6\x45\xbb\x26\x5c\x7b\xbc\xf3\x5d\x41\x54\x61\x95\x25\x4f\x1f\xa5\x5f\x13\x7e\xe8\x07\xa3\x9c\x78\xdc\x4b\x22\x28\xab\x42\xee\xfa\x41\x6b\xb4\x8e\x24\x4d\x92\x1c\x90\xd9\xfd\x2f\xa3\xdc\x75\xb4\x41\x56\xdc\xc8\x0e\xc3\xb6\x6c\xcd\x5d\x02\xa7\x15\x96\xa6\x18\x58\x25\x5f\x51\x29\x93\xae\x26\x89\xe0\xa4\x8d\x3d\xa2\xab\x4a\x02\xf3\x15\xf1\x0c\x56\x1c\x68\x94\x69\xa3\xe5\xeb\xe6\xab\xa2\x9b\x9f\x83\xc0\xe6\xe9\x63\x02\x84\x06\x04\xb4\x62\x21\xfb\x8c\x08\x36\x09\xde\x75\xf2\x05\x81\x7d\xf1\x5d\x72\xe7\xd2\x32\xab\xdf\x82\x52\xce\xe9\x7c\x15\x25\x4e\x07\x84\xac\x4b\x55\x04\x80\xa9\x6c\x6b\xdc\xe1\x99\xe5\x33\x0f\xf8\x08\x0a\x8f\x8d\x65\xc6\xa9\x45\xf3\x0b\xda\x1a\x58\x2b\x92\xe0\xa0\xd6\x40\x19\x61\xe8\x0e\xed\xb2\x17\x2f\x81\x59\xd7\x24\x7d\x5d\xd5\x8b\xbe\x28\xf3\x19\xe6\x74\x49\xd4\x21\x87\x5c\xa2\x7b\x07\xbc\xee\x98\x39\x1f\x71\xbd\x15\x6f\x2e\xbe\xc7\xe8\xce\x97\xe9\xd8\xc6\x3c\x53\x19\xf3\xcd\x8d\xe3\xc6\x42\x1e\x93\x9a\xa1\x8a\xd7\x1f\xa8\xa6\xb6\xe3\x18\x3e\xe0\x85\x2e\x41\x92\xf1\x8e\xe3\xcd\x48\xd8\xa6\xdd\xa7\x5c\x1c\x90\x1a\xb3\x27\x3a\xba\x60\x07\x13\x6d\xe9\xa1\xeb\xb9\xd3\x26\x77\x1f\xd0\xff\x09\xf7\xd9\xa5\x91\xab\x6d\x65\x17\xed\x18\x3a\x02\x2c\x9a\x32\xab\x63\x39\x25\x9e\x67\x74\xe6\x76\xe2\x6d\xea\xb0\xe9\xad\x39\x9a\xb9\xdd\x62\x6d\x0f\x4e\xb6\x4d\x1f\x16\xa6\xba\x34\x15\xdd\x77\x9f\x25\xc4\x62\x65\xa0\x0d\x24\xb2\x12\xb9\x60\xa2\x42\x6d\x02\x1b\x17\xd9\x96\xa8\x02\xed\x05\x22\x0a\x84\x0b\xec\x48\x62\x1e\xe9\x64\x5e\xff\xda\x74\x86\xae\x01\xdc\x0c\xd7\x1f\x69\xe1\x0c\x33\x55\x3f\x41\xf3\x46\xa2\x6d\x2f\x32\x44\x5d\xe6\x60\x49\x87\xa7\x2a\xa9\xa7\xd8\x14\x2f\x26\xda\x8a\xd1\x21\x6a\xaf\x0a\x5a\xae\xb9\x53\xe7\x01\xc3\x9d\x79\xd7\x91\x04\xbf\x5e\x14\xf6\x20\xf0\x27\x21\xed\x8f\x2c\x24\x31\x0d\x5b\xde\x39\x6d\xfa\xbc\x68\x43\x7e\xbd\xc5\x19\x2e\xe9\x6c\xd4\xb8\x31\x2e\x8d\x42\x85\x10\x74\x92\x5d\x39\xe0\xa9\x29\x92\x7c\xa4\xa5\x97\x03\xc5\x0a\x95\x89\x36\x48\x8a\x9f\xcb\xdf\xb7\x6f\x31\x19\x67\x9d\x24\xc8\xfd\x1d\x56\x3f\x88\x5a\x62\x46\xab\xcc\x7a\x10\xe9\xf8\x98\xee\xcb\x3e\x16\x78\x18\xab\xaa\xa7\xfc\x59\xd5\x10\xe9\xab\x21\x00\x11\x44\xa8\x2d\xbc\x9a\x6e\xae\xea\x1b\x55\xd7\x81\x34\x8b\xca\xe8\x48\xf5\x35\x8e\x07\xbb\x30\x1b\xf0\x6d\xeb\x76\x95\xfe\xfe\xd7\x7f\x21\x79\x87\x36\x06\x04\x65\x47\xcc\xbf\x27\xd9\x4e\x54\xa0\x56\x27\xf9\x99\x53\x81\xfe\xb1\x56\x8e\xab\xf2\xfa\xc3\x7b\xa2\x6d\x9f\x0d\x2f\x6c\x51\x21\x92\x70\x9c\x3e\x23\xb2\x04\x9d\x20\xed\x47\xbe\x28\xdc\x6d\x2d\x07\x93\x68\xcf\x85\x72\x7d\x79\x4d\x3c\xb1\x25\x58\x07\xbc\xf6\x19\x84\x04\xa8\x01\x46\x17\x39\x36\x04\x61\xac\x18\xb3\x16\x18\x35\x08\x73\xd0\xf1\x2c\x79\x16\x88\x0e\xcc\x48\x86\x2c\x29\x44\xd7\x68\x54\x55\x3c\x2c\x61\x0d\xd6\x66\xbd\x40\xdb\x86\x56\x8b\xce\xc8\xaf\x74\xec\xd7\xc4\xfb\x12\xf3\xbd\x22\xda\xe3\xae\x8c\x27\x26\xa9\x4b\x62\x3b\xa1\x00\x5d\x17\xa2\x9a\xb6\x5b\x1e\xb0\x26\x80\xfd\xfd\xaf\x4f\xe8\x34\x3a\xf0\xae\x0f\xc1\xbf\x77\x9a\x62\x22\x6e\x57\x04\xfb\x42\x25\xd8\x78\x15\x68\xe4\xd7\x1f\x99\x43\x32\x72\x29\xcf\xdc\x3d\x26\x4c\x13\x33\xd8\xc0\x84\x5d\x91\xd7\x95\x68\x4c\xed\x99\x15\x05\x7a\x80\x8f\x16\x74\x82\x88\xc7\x25\x14\xda\x24\x7b\xdd\x5f\x3c\xb8\xd3\xde\xbf\xb7\x78\x30\x58\x9f\xf5\xa6\xe9\xcd\x22\xc3\xb8\x17\x44\x5a\xcd\x1b\x26\x5d\x56\xb3\x67\x2a\x66\x45\x68\x0e\xc4\x66\x32\xd3\x72\x27\x4f\x30\x40\x2b\xeb\x41\xcb\x6f\x3a\x39\xe8\x34\x34\x96\xc7\x59\xcf\xe7\x38\x15\xcb\x36\xc9\x4d\x1b\xef\x59\xde\x16\x8c\xb1\x09\xc2\xc3\xfc\xa1\x91\x93\x68\x0f\x8e\xf0\x71\x5c\xc5\x1d\x19\x46\x4b\x59\x90\x20\x33\xbd\x5d\xb1\x19\x98\xc5\x82\x22\x92\x6f\x0f\xde\xc1\x84\x9a\xeb\x8f\x42\x94\x30\x32\x26\xd8\xdc\xfa\xd2\x8d\x2c\xa7\x31\xb7\x05\xf0\x70\x0e\x66\x9f\x95\x87\x11\xfa\x4c\xbb\x81\xca\xef\x5b\xda\x24\x15\x71\x3f\xd8\x63\x17\x59\x3b\xef\x2b\x5d\x0b\x93\xcb\x36\x7e\x42\xe4\x8a\xef\xe6\xe9\xb9\x26\x5f\xba\xd5\xf9\x4a\xee\x32\x9c\x2a\xbb\x9e\x38\x52\xa7\x05\xbe\x53\xdb\x90\x3a\x8a\x05\xc8\x7e\x5f\xed\x5c\x7b\xaf\x28\x69\xf9\xc2\x60\x9d\x02\xd1\xbb\xb5\x1c\x1c\xde\x38\x01\x5f\x71\x40\x0d\xbf\x27\xb1\xbd\x58\xbe\x55\xc9\xc7\xad\x77\xb2\xa8\x3b\xd1\x0f\x30\x9e\xed\x74\x1c\xb8\x68\xa1\x78\x2b\x30\x46\x41\xf2\x77\xcc\x31\xc6\xaf\x15\xe1\x99\x15\x6a\x99\x70\x75\x06\x6a\x85\x4f\x10\x9d\x15\x45\x99\xb5\xd7\x40\x05\x51\xd1\x95\xec\x4f\x14\xb6\x1d\x46\x8b\x41\x77\x76\xcc\xab\x8c\x07\x1d\x8e\xf9\xcb\xc6\x7c\xa5\xa3\xe6\x8b\x8a\xbb\xe2\x12\xde\x22\xd4\x07\x91\xa4\x25\x6d\x2d\x6a\xd4\x2a\x13\x97\xb1\x21\xa3\x0d\x69\xc1\x2b\x5b\x05\xfa\x80\x3e\x06\xb5\x5c\x04\xeb\x9e\xa3\x1d\x0a\x48\xd1\x45\x8f\x97\x12\x67\xf8\xdd\xa6\x00\xbd\x4c\x74\xe2\x09\xb7\x53\xcf\x86\xbd\x5b\x8d\x05\xcf\xf4\x68\x30\xd3\x66\xcf\xc8\x5c\x03\x5d\x5d\xcf\xdb\x0b\x28\x96\x88\xb9\x29\xeb\x6a\x05\xc5\xfd\x78\xda\x5e\xf5\x09\x39\x92\x78\x7d\x70\x51\xc9\x7f\x11\x5e\x83\x84\xe6\x0c\x7a\xf4\xad\x69\xd3\xd3\xeb\x8f\xb7\x6f\x55\x35\xf1\x1a\x74\x0d\xd7\x39\xb4\x03\xc7\x79\xd1\xa9\x5e\x1f\x1a\x0f\x02\x7c\x4d\x8d\xbc\xd8\xc1\xe7\xe3\x4a\x8d\xcb\xca\xd8\x78\x73\xcc\x6b\xfb\xe8\xa6\x1d\x73\xfb\xd6\xc9\xa4\xac\xf0\xca\xb0\xfe\xfc\xc7\xde\x94\x97\xd8\x45\x06\xc6\xbc\x45\xd1\x8c\xd6\xf9\xf4\xf4\xc9\x19\x4b\x31\x91\x92\xf6\xa8\x24\xa6\x92\x25\x49\x28\xfd\x9e\x74\xdd\xa6\x7d\xdd\xd0\x56\x63\x85\xd7\xeb\x57\xcf\xd0\xed\xb6\xac\xb3\xfc\xb5\x57\xac\x31\x03\x7f\xfb\xd6\x99\xc9\xd6\xc3\x99\x41\xce\xdc\xd0\x58\x49\x8a\xbe\x18\x60\x04\xb2\x55\xe3\x6d\x4a\x2c\x2c\x1d\xef\x12\x5d\x44\x03\x1e\xcb\x53\x5e\x8c\x35\x6c\x19\xfb\x65\x52\x7f\x5d\xcf\x7e\x21\xba\x5b\x6e\x2e\x32\x66\xe9\x1c\x2c\x04\xd7\x40\x5f\xef\x95\x08\x87\xe5\x79\x56\xf5\x6b\xd3\x40\x83\x47\x1b\x14\xb5\xbe\xbc\x3b\xff\x6a\xd0\x4e\x4e\xa7\xdc\xb6\x85\xca\x5c\x17\x04\x4c\xdb\x24\x26\x9c\xdb\xa1\x0b\x19\x5a\x7b\xe1\x91\x89\x44\x11\x08\x11\x22\xac\x2b\xeb\xb1\x6b\xba\xa2\xde\x10\xb5\xa4\x0e\x12\x26\x80\xb8\x5b\x54\xab\x5a\x11\xc3\x2f\xba\xcc\x5f\x70\xe7\xbc\x37\xe3\x0e\xa1\x22\xcf\xd6\xd9\xf5\xbf\xd7\x44\x8b\x01\xc6\xec\xfc\x08\x94\xf9\x55\x56\x2f\x97\xbc\xb9\x5b\x48\x11\x7e\xf6\x5c\x31\x7b\xb7\xaf\x22\x6c\xa6\x30\xac\xbe\xa3\xf3\x3d\xae\x2c\x84\x2f\x58\x06\x65\xc9\x26\xe9\x9e\x8a\x0b\xa8\x07\xf5\xeb\xb8\x16\xb6\x55\x08\x54\xbd\x25\x46\xa3\x52\x40\x91\x70\x20\x36\xd6\x15\x91\xca\xbc\xfe\xce\x59\x58\xe9\x4a\x56\x69\x0e\xc2\x96\x7e\xb4\x04\x46\xf0\x3f\x0b\x48\x83\x17\xcd\x9e\xc5\xb4\x60\x44\xb1\x2a\xf0\x24\x05\x1b\xdb\x66\xa1\xe1\x78\xbe\xa0\x0b\x62\xde\x65\x6f\x4d\x95\xfe\x0b\xa8\x1a\xd8\x3c\x2c\xa2\x95\x3f\x98\x45\xc4\x37\xb1\x68\xa8\x79\x6f\xbe\xb7\x6e\x28\x58\x8e\xeb\x13\xa7\xb6\xb7\xfa\xc0\x56\x3b\xd1\x42\x47\xc7\x74\xff\x08\xe4\xd0\x4e\x54\x95\x65\xe6\x6a\x84\x82\xfc\x53\xef\xb6\x6d\x66\xa5\x5d\x60\x06\x6b\x50\x94\xa5\x59\x41\x25\x6e\xc7\x82\x05\xab\x86\x64\x83\x17\x05\xfc\x7d\x78\x50\xad\xb8\xc9\x9c\x89\x5b\x08\xb7\xa8\x7e\x0b\x4c\x4b\x83\x7e\x95\x1d\x24\xb7\x04\xce\x80\x7e\xa1\x81\x40\x03\xc0\x43\x0b\x98\x23\xaa\xba\xba\xfe\x8d\x79\x5a\x27\xb8\x62\x48\x1d\xab\x53\x8b\xbc\x76\xea\x04\x51\x9b\x9b\x68\x56\xc1\xca\x4e\xf5\x48\x7b\x1c\x0a\x83\x7f\x68\x97\xc4\x3d\x6e\x0a\x30\xb3\xd3\x5d\xba\x5b\xfe\xef\xe8\x30\x96\x0e\xac\xa3\x06\x0e\x17\xef\xa8\x50\xef\x51\x54\xb9\x78\x60\xe0\x4c\xf2\x76\x9b\xc1\x0b\xa4\xed\x20\xea\xca\xfc\x87\x6a\x12\xe2\xf9\x0b\x90\xa0\x0e\xfc\x0b\x71\x2d\x30\xc3\x88\x5e\xe4\xfa\xb7\x12\xcc\x06\xf1\xa9\x24\x00\xa9\x96\x55\xf7\x8d\x28\xb8\xed\xc4\x49\xcc\x7a\x04\x5a\xc6\x3d\xd2\x45\x58\x43\x9e\x8a\x11\xe3\x59\x19\x98\xb9\xde\x9a\x6d\xcc\xcd\xb0\x0a\x6b\xcd\x17\xc6\x26\x5b\x8a\xce\xff\x92\x2e\x08\x58\x01\x84\x39\xe4\x5b\x93\xae\xcc\xef\x58\xea\xa6\x63\x08\xb9\x8f\x41\xb6\xae\x49\x31\x98\xdb\x2b\xea\x92\xa6\x33\xae\x7f\x00\x7d\x37\xc9\x36\x6d\xbf\x66\x2d\xaa\x68\x8a\x1c\x35\x4c\xf6\xae\x13\xf4\xaf\xed\xf5\x47\x28\x29\xe9\xba\x8d\x55\x42\x72\xe1\x62\x46\xcb\x50\x0f\x44\xf7\x0a\x9c\x71\x80\x7b\xf1\x26\x39\xb3\x62\x08\x5a\x23\x7e\xc0\xe3\x89\xe9\x62\x5f\xe1\x18\xc1\xc1\x26\x52\x1e\x1c\x58\x39\x1c\xc3\x58\xd4\xf0\x2b\x2a\xf9\xf2\xa4\x6d\x51\xb5\xe7\x84\x07\xfe\x2d\xfe\x04\x2c\x41\x71\xaf\x10\x2c\xe0\x44\x12\x75\xea\xd7\x53\xc8\x99\xf4\x16\xfb\x96\x44\xfd\x65\x10\xf2\x60\x9f\x83\x58\x57\xbb\x6d\xc2\xfa\x66\xd7\x21\x36\xd8\x60\xaa\x4c\xbd\x62\x6a\x89\xa5\xed\xed\x1d\xf0\x29\x73\x75\x9d\xed\x9d\x6d\x88\x65\x36\x73\x71\xd7\xf1\x7a\x44\x24\x92\x05\x19\x6b\x5a\xb4\x8a\xf8\x03\xbe\x92\x09\x41\x35\x6d\x2c\x74\xb0\x4d\x44\xe9\x9e\x07\xe3\x10\x73\x3d\xad\x17\x04\xfa\x05\x8d\x67\x79\x11\x9c\x45\x28\x33\x89\x5d\x60\x1d\x28\xf5\x57\x54\xc1\x51\x64\x06\x16\xa3\x83\x7e\xe7\x22\xab\x56\x66\xae\x16\x1e\x51\x7c\x61\x9f\xaa\x05\x85\x06\x69\x8d\x39\x30\xe2\x39\xf8\x65\xdf\x76\xf5\x7a\x5f\xb5\x91\x3a\xf2\xf6\xad\x37\x74\xb3\xce\xeb\xca\xfa\x97\x81\x3c\x98\x2a\xf0\x83\x29\xcc\x50\x0f\xc5\x32\x57\xd1\x6d\x45\x74\x86\x8e\x22\xd9\x5c\xff\xc6\x6e\x37\xd0\x65\x94\x65\x7d\x65\x1a\x62\xd5\x0d\x31\x5a\xc4\x29\x42\x63\x06\x7e\x90\x08\x1f\x6c\x34\x5d\x06\x12\xd4\x5a\x48\xe8\x3d\x4f\x45\x36\xcc\xd9\x71\x06\x3c\xfc\x8c\x2f\x15\xc8\x22\xcd\x25\x8e\x90\xa7\x49\x5f\xdc\x69\xbf\xd0\xa5\x92\xe2\x8c\x99\x0a\x5f\x69\x93\x75\x44\x64\x2b\x91\x02\x79\x28\x5c\x9f\x3e\x37\x7a\x45\x56\xa3\x8b\x89\x1b\x75\x42\x32\x51\x00\x12\xfc\x85\x59\x61\x5f\x21\xf1\x5c\xa2\x65\xb1\xce\x4d\x27\xea\xd9\x34\x6d\x2d\x50\x7a\xd3\xa6\xcc\xcb\xb7\x6a\xbe\x67\x3d\x1a\x21\x12\x5e\x4b\xa7\xfc\xc3\x88\xa7\x06\xd0\x06\x85\x4c\x9b\x1e\x46\xde\x8d\xac\x7d\x1c\x6a\x1e\x89\xc8\x1a\x08\xb5\x96\x14\x5b\x2d\x1f\x21\x3a\x7d\xfd\xfa\xe9\x23\x8c\x78\xc3\x1e\x50\xf3\x78\xb0\xc9\x89\xac\x50\xed\x66\x21\x16\x9e\xb3\x69\xc9\xda\xb4\x76\x49\xd9\xf9\xd2\xc0\x52\xd3\xb7\xd8\x1b\x2c\xfa\x75\x24\x91\xb5\xac\xc6\xa9\x62\x63\x6c\x63\x4a\xfe\x33\x43\x39\x18\x18\x6f\x4f\x54\x0a\x13\x9a\x18\x6b\xa8\x3a\x54\x28\x35\xe0\x15\x33\x1c\xe1\xcb\xeb\x5f\xad\x47\xd4\x95\x59\x60\x71\xe1\xfe\x15\xda\x6d\x8e\x44\x45\x14\xba\x42\x8a\x61\x4b\x7c\x21\x61\x2f\x65\x33\xe2\x33\x18\x4e\xbd\x88\xd3\x6f\xa0\xbf\x76\x88\x39\x64\x85\x3e\x15\x37\x89\x5d\xd0\x18\xc2\xe9\xd0\x9d\x33\x9b\xaa\xc0\x32\x5b\x73\x78\x19\xcf\xdc\x51\xdc\xed\xdb\x98\xb0\xd8\xca\xf7\xf0\x08\x5a\xd6\x24\xe4\xc5\x5c\x2d\xea\xb6\xc5\xe5\xef\x6b\x1f\x24\xbf\xff\x95\xf1\xc8\x56\x14\xa2\x64\x15\x41\x7e\x9f\x08\x6d\x53\x8e\x50\xfc\x29\xb0\x7a\x59\x60\xba\x35\x55\xc9\xd7\xa8\x5f\xad\xba\x75\x7a\x33\xab\xed\xd0\x26\xd9\xca\x26\x6d\x4f\xfa\xd2\x19\xb9\x6b\x63\xd2\x63\x6d\xa3\x87\x42\x78\x4e\x02\x1b\x72\x3d\x5d\xc5\x6a\x1a\x54\x1b\x67\xe0\x0c\x32\x74\x55\x19\x58\x9d\x03\x13\xf7\xf2\xa2\xae\x5b\xd5\x87\xcb\x08\x4e\xb1\x9d\x79\x6e\xaa\xd4\xb4\xa0\xba\xc4\x7e\xa0\x76\x0f\x4c\xf8\x7c\x1c\xba\x3a\x90\xb8\x89\x6f\xd3\xb1\x32\x6d\x99\x17\x6b\xf8\xce\x1e\x7b\xcf\x30\xab\x19\xf5\x92\x14\x83\x40\xd5\x55\xd5\x83\xe9\x7a\x5b\xdd\x0b\xac\xed\x96\xb5\x4d\xd7\xbf\x55\xce\x48\x1e\xa2\x8c\x78\xfc\x76\x53\x57\x05\x81\x0b\x33\x64\x94\x89\xb1\xba\xe8\x66\x36\x98\x98\xdb\xba\x93\x26\x25\x7f\x25\xdc\xbc\x9f\xdd\x1e\xf5\xc4\x4e\xed\x30\x91\x36\xa3\x2e\xf3\x69\x97\x10\x69\x5b\x1c\x5a\x1d\x80\x98\x28\xa6\x35\x46\x5e\x82\x18\x37\xe3\x85\x86\x6c\x36\x1a\xd8\x60\xce\xae\xaa\xcc\xd1\x9f\x9b\xc1\x14\x13\x92\xbd\x18\x9b\x60\xb2\x23\x07\x70\x7b\x24\xaa\xe1\x68\x19\x2d\x2c\x8c\xb5\x56\x51\x64\x5d\x51\x26\x35\x45\xea\xaf\xab\x35\x7e\xc0\xcd\xcf\xfe\x4c\xf9\x27\xd4\x15\x99\xcf\xd2\xea\x49\x61\x8f\x18\x1d\x92\x8d\x37\x19\x93\x27\x76\x9a\x7c\xcf\x47\x9e\xcf\xcf\x04\x91\xde\x82\x05\x07\xaf\x26\xe4\x17\xdf\x20\x97\x13\xbb\x94\x35\xdb\xf4\xc4\xb6\xe6\x3e\xa9\x9e\xfd\x39\xed\xf3\x4c\x35\x11\x1b\x0f\x24\x57\x92\xc2\xd8\x8b\x09\xb6\xf0\x9c\xcf\xa3\x7c\x3f\x24\xac\xd1\xd8\x15\x95\x37\x8a\xac\x52\x3d\xae\xba\x1f\x6c\x1e\xd9\x36\x20\x3a\xdc\x6c\xcf\xb0\x24\x75\xc2\xa2\x11\xa9\xb2\x3f\xd1\xa2\xb1\xa1\x51\xbd\x23\x84\x7d\xaa\x41\x23\x1a\xcc\x2c\x9c\x4b\x70\xef\x44\x33\x88\xae\x68\x3d\xba\x8c\x9d\xc9\x73\xab\xbb\xce\xb1\x23\x7e\xdf\x85\x8c\x09\x7a\x85\x74\x64\xd1\xcc\x65\xc2\xc4\xc8\x65\xd4\x3a\x59\xa4\x2c\x5a\xb1\x42\x2f\x5d\x7d\xa7\x2f\x1f\xde\x1f\x89\xee\x84\x90\x01\x60\x21\x0b\x5c\x7b\x05\x7f\x79\xe8\x8f\xde\x2f\xd9\xbf\x06\x9d\x29\xfd\xbf\x0f\x13\x4f\xb5\x7a\x10\x9a\xb5\x32\x84\x69\x7c\x7f\xff\x9e\x16\xcd\x40\xaa\xdb\xbe\xec\x98\xb4\x83\x65\x4d\x56\xfd\xf5\xc7\x4c\xb0\x7d\x3f\x4b\x2e\x1a\x73\x9e\x7e\x7e\xa7\xfd\xfc\x81\xb8\xcd\x36\xc1\x80\xef\xdf\xcb\x1e\x24\x10\x27\xcb\x7e\x29\xc8\x88\x2a\xc0\xd7\xa2\x84\x89\x06\xab\xd6\xeb\xb9\xd4\x6a\x33\xbf\xa9\x43\x84\x39\xd9\xd1\x71\x7e\xa1\x86\x46\x6d\xd5\xb0\xbf\x5b\xad\x37\xc3\x5b\x86\x59\x97\x51\x4f\x2d\xf3\x9c\xb6\x15\x66\x08\xb8\x95\x58\xc1\x34\x68\x40\xcd\xa0\xec\x72\xe3\x55\x45\xb6\x81\x09\xed\xb2\x14\xca\xb0\x84\xc8\xf2\xf0\xdc\x56\x70\xdb\xef\xf7\x0f\x4a\xa7\xed\x0c\x85\x51\xd6\x2d\x97\xc5\x5b\xee\x33\x47\x09\x80\x1c\x4f\x07\xec\x6c\xb8\x10\x4c\xd9\x43\x88\xa7\x82\x8d\x67\x63\xd4\x59\x30\xd9\x7c\x87\xa5\x4a\xb3\x62\x9c\x29\xdd\x40\x2a\xeb\xdb\x94\x5c\xd6\x25\xbc\x9b\x98\xe5\x21\x22\xde\x28\x3e\xe0\xcd\xc1\x56\x09\xdd\x8e\x24\x78\x98\x2c\x60\x93\x26\x7a\xf4\xd3\x7e\x16\x76\xe5\xa8\x84\x4c\x29\x17\x8c\x5f\xff\xfa\x8e\xe4\xa1\xcf\x04\x69\x34\xab\x43\x7b\x0e\x21\x3b\xb1\x4a\x85\x57\xee\xb5\x5d\x57\xa6\x27\xa2\x32\x61\x7f\x7e\x86\x23\xae\xc0\xc9\x52\xca\x06\x64\x4e\xa4\x82\x55\x4e\xdc\x28\x79\x4d\x3a\x5c\xee\xfe\x44\xca\x9a\xd8\xb1\x81\x35\x17\x3a\x44\x2c\x92\x2a\x66\xda\xe4\xbf\x26\x39\x1d\x0b\xb8\x16\xd5\x6f\x69\x43\xc6\x4d\x10\x17\x80\xaf\x51\x13\xf5\xee\x26\x3c\x39\x11\x41\xc6\x13\x93\x58\xa4\xf1\x04\xc1\xf9\x0e\x44\x64\x04\x1b\xd8\xd1\x11\x50\xcd\x5d\xd5\xa7\x28\xc8\xe5\xf5\xc7\x6a\xd9\x97\xf5\x24\x11\xe9\xab\x45\x51\xb1\x84\x79\x59\x00\x8a\x19\x37\xfe\x16\x32\x06\xd4\x9d\x76\xe6\x66\x9e\xbb\x1a\x79\x16\x12\x4e\x76\x05\x6f\xe7\x8c\xa6\x60\xbe\xc0\xcf\x19\xbe\x31\x6d\x38\x14\x7f\x71\xcb\xae\x41\x46\x13\xa2\xa3\xee\x19\xb6\xb6\xd0\x21\xa1\xe6\x5c\x5b\x57\xa5\xd5\xab\x5d\x1a\x94\xaa\xb9\x2a\x9e\x2c\x9b\x07\x95\x04\x58\x42\x90\x37\xbb\xcb\x69\xfc\x87\x27\x4f\xad\xcb\xff\x4c\xf8\x2b\x59\x67\x6e\x90\x7d\x8f\xc5\xf0\x1f\x3a\x6d\x4a\x9f\x89\x3a\xdf\x55\xd6\xdd\x5d\xaf\x28\x5c\x81\xa1\x08\x20\xed\x55\x03\x9b\x92\x0e\xdf\x4d\x33\x9e\xe2\x64\xa9\xac\x80\xe1\xb3\x55\x8b\x63\xa5\x1f\x0c\x5b\x71\x79\x18\x4c\x0b\x2b\x87\x85\x01\x81\x49\x0e\x23\x8d\xdb\xb2\xde\xa8\x69\x58\xb0\x2a\xdb\xd9\x37\x66\x97\x64\x96\x10\x1d\xb3\xe4\xa2\x4d\x58\x77\xe3\x4c\xd6\x9e\x6a\xc9\x2c\x02\xfe\x25\x58\xfd\x49\xe2\x75\x66\xfb\xd3\x2d\x60\x85\x9c\x1d\x55\x65\x59\x4e\x0b\x4b\x47\x44\xb5\xbf\x6b\xd0\x43\x6f\x34\x67\x96\x26\x80\x9c\xa5\x71\xf0\x12\x50\x54\xb4\xb5\xaf\x4e\x53\xfd\xeb\x98\xd0\x85\x13\x0c\x88\x1c\x5d\x4d\x3b\x7b\x1f\xd2\xbc\x3a\xa4\x79\xc9\x0b\x5e\x29\x76\x4f\x31\x6a\x83\xb7\x42\x54\x07\xd9\xe0\xfa\x57\x61\x88\xb2\x40\x9f\x11\x1c\x6c\x1c\x31\x1d\x93\xf5\xc1\xb0\x47\x3d\x70\xc2\x50\x08\xeb\x7e\x91\x85\xca\x02\xab\x6d\x23\x34\xb8\x1a\x18\x08\x3b\xbc\x33\x5a\xb2\x8a\x75\xe3\x5b\x5a\x7b\xcb\x51\xbc\x78\xe9\x38\x08\x2f\x40\xb1\x3f\xcf\xd2\x34\x9f\x79\x27\xcf\xc1\xd0\xbc\xab\xa7\x0e\x52\x95\x09\x31\x98\x3a\xa4\x86\x20\xec\x4f\x14\x4f\xc6\x02\x07\x64\x5c\xc6\x4e\xe3\x11\x63\xb1\xd5\xeb\xf8\x39\xf0\xde\x9f\x16\xf5\x59\x3d\x05\x3d\xdd\xcf\x24\x7f\xb1\xf2\xfe\xc4\x6b\xd5\x03\x53\x57\x78\x78\xa3\x98\x36\x6f\x0c\x53\xee\x0b\x87\x73\xd5\x80\xc3\x6d\x95\x95\xd0\x10\xbb\xc0\x4f\xae\xad\xd9\x4b\xa4\x83\x42\x74\x6d\xd6\x44\x60\x16\x25\x0b\x15\x16\xd1\x24\xc5\xc2\x74\xeb\xf9\x35\x38\xc6\xb5\x05\x4b\xaa\xdb\xf4\x47\xfd\x93\xae\x38\xfd\x8e\xcf\x41\x10\x88\x19\xba\x76\xde\x6f\x37\x44\x14\xe8\xc2\xa3\x6d\xfb\x79\x5f\x50\x71\x9e\xc0\xfb\xef\xf3\x07\x24\xaa\x5c\x4a\x6c\x2d\x41\x3c\x08\x9b\x43\x7c\xa5\x6d\xf3\x4b\x6e\x74\x89\x9d\x59\xef\x50\x88\x00\xbc\xfd\x8a\xd5\x88\x6f\x45\x39\xfd\x04\xbb\xc2\xc7\x66\x46\x1e\x02\x0c\xc5\x11\x1e\xd6\xe9\xce\x02\x72\xbc\x07\x17\x8f\x66\x26\xae\xd4\x68\x85\xd0\x25\xa3\x11\xf7\xd0\x4b\x8f\x10\xd1\x7a\x73\x63\xba\x38\x96\x96\x47\x01\xc1\xf4\x1d\xa1\xbb\xe9\xd3\xbc\xa8\xd7\x59\xf0\xc5\xf6\xe5\x94\x1f\xc6\xe9\x26\x66\xab\xa2\x83\x65\xbb\xa1\x01\x22\xa8\xae\x6a\x4d\xfa\x0c\xff\x72\xf0\xa2\x7e\x19\xd5\xcf\x30\x1c\x92\x1c\x2f\x34\xd2\xa8\x74\x35\x68\xe2\x39\xbb\xbc\xe1\x1f\xfb\x73\xa2\x7f\xdc\xf7\x1b\x1b\x72\xcc\xc4\x42\x07\xd4\x68\x4d\xb8\x21\x90\xcc\x5f\x74\xea\xc7\x25\x74\x84\x55\x3d\x02\x89\x60\x08\x3b\x9c\x9c\xb5\xee\xae\x3d\x51\xbd\x0f\xb6\x8c\xf3\x8e\xe4\x75\x94\x15\x8a\x76\x7d\x6e\xce\x33\x92\x1e\x54\x3b\x9f\xbe\x82\x42\x3e\x88\x49\xb0\x91\xbe\x73\xd8\xbd\x9a\xcb\x0c\x0e\x66\xf2\x07\xa3\x40\x0a\xbf\x04\xe7\x04\x11\xef\xab\xdd\x2a\xeb\x69\xcb\xe3\x3f\x40\x83\xbd\xbf\xe9\x1d\x7a\xec\xca\x40\x7f\xd5\x23\x4c\xcf\x08\x29\xe1\xd0\x8a\x26\x0c\x70\x5e\xc9\x8d\x1d\xc6\x7f\x86\x81\xcb\x21\xc0\xce\x03\xab\xba\xe2\x2a\x3e\xb6\x38\xaf\xc9\xa2\xec\xcd\xe7\x0f\x04\x81\xee\xcc\xda\x46\x79\xb5\xb8\xb7\xc1\x72\x29\xc0\x0c\x31\x60\x44\x42\xf3\xbc\xc1\xfd\x75\x24\x11\x61\xde\x4d\x67\x07\xa0\xa3\xb5\xa1\x7f\x91\x75\x72\xf0\xb1\x64\xf7\x7e\x78\x7a\xc6\xfe\x1f\xea\x6d\xce\x21\x37\xe2\x4c\xaa\xc1\x42\x33\xdf\x81\xb5\x55\x32\x90\x0f\x7d\x2c\xb5\x96\x73\xc8\x3e\xf0\xc6\x9d\xc4\x6b\x05\xe3\xa0\x45\x21\x17\xb4\x34\x4c\x4f\xe4\xef\xc4\x51\x11\x8e\x1a\xa3\xed\x7f\x9e\x32\xe9\x8f\x0d\xca\xc3\xe5\x3f\x70\xc6\xcd\x36\xe1\x4b\x8d\xc9\x1a\xdf\x6c\x9b\xed\xbc\x2c\xaa\xb7\x74\x99\x81\x67\xa2\x2f\xf0\xb4\x23\x8e\x60\x8e\x22\xfd\xca\xa1\x06\x08\x13\xd8\x64\x1b\xc3\x8c\x2c\x38\x2c\x93\x4b\xf1\x90\x1b\x43\x1b\x40\xb3\x6e\x83\x91\xb8\x6e\xc5\x52\x86\x82\x4f\xb0\x93\xd9\x4b\x96\xd1\xc5\x42\x96\x7e\x3e\x47\x58\xe2\xdb\xcf\x03\x11\x9c\x93\x32\x40\xde\xfe\x0c\xfc\xfb\x15\x3b\x88\x3c\x32\x6f\x32\xb6\xa1\x5e\x16\xab\x82\x39\x7b\xf9\xfe\xa3\xfd\xd9\xc3\xeb\xbd\xf1\x76\x91\xdc\xda\x99\xc4\xf4\x64\xed\x4e\x8d\xe0\x35\x15\x0a\xcb\x02\x98\xb2\x65\x55\x12\x53\x59\x3a\x22\x84\x21\x18\xb0\x4c\xfa\x03\x6b\x17\x5e\x5d\x7f\xd8\x14\x48\x17\x21\x13\xef\x2e\x8a\x56\x49\x8c\x6c\xc5\x9d\x74\xc8\x66\x0a\x20\x64\xaf\x11\xbf\xe1\x6f\x8d\x6a\x98\x3a\x40\x43\x2e\x4a\x92\x73\x8c\xfa\xc1\x70\xc4\x07\xc7\xc0\xc3\x79\x0a\x9b\x29\xbc\xa0\x4e\xe8\xab\xde\x1a\xd1\xad\xc9\x9b\x4e\xc2\xf8\x76\x35\x78\xfb\x56\x40\x00\x89\xd7\x6f\x8c\x49\xaf\xff\x77\xb3\x40\xbe\x0c\x35\x5c\x22\xcb\x43\x97\xad\x5a\x06\x01\xe5\x3d\xee\x0a\x12\x4c\x3a\x08\x77\x02\x62\xb4\x0c\x26\x4f\x82\x0b\xca\x35\x1c\xdf\x87\xc8\x6b\x1c\x3f\x22\xf4\x4b\xf0\x21\x12\xcd\x0f\x61\x79\x61\xca\xa8\xea\xba\x28\xa1\xff\x27\xae\x91\x08\x82\xfd\x13\xdb\x71\x4d\xf4\x0c\x89\x07\xf8\x5f\x5c\x3a\xa5\xc9\x5a\x36\x4f\xca\x1f\xb4\xba\x30\xdb\x34\xd9\x15\x8d\xea\x4a\x7f\xd1\x3a\x71\x34\xff\x13\xfa\xf7\xfa\x2f\x0d\xab\x0d\xb9\x80\xbd\xf5\x01\x0b\x67\x7d\x0f\xcf\xac\x17\x9f\x96\x13\xfb\x17\x6b\xc1\xa5\xd7\xd9\x68\x14\xb6\x20\x4a\x25\x90\x8c\x8a\xcf\x21\x9c\x4a\xa1\xff\x08\x7a\x5c\x37\x29\x13\x62\xff\x75\x4d\x74\x0b\xa6\x85\xe7\x74\x27\x4b\x56\x0e\x2d\x80\x82\x3f\x7d\x6c\x38\x89\x85\xfd\x26\x11\x14\x87\xb8\xa2\x8a\xb0\x11\xda\x75\x1c\xd6\xdd\xda\x02\x17\x8a\x80\xe4\x1e\xa2\xd8\x09\xf3\x17\xf8\xc2\xd9\x78\x45\x82\xc2\x0a\xac\x06\x95\xf3\x99\x31\x93\x20\x4b\x5a\x8d\x66\xae\xad\x3c\x2b\xd6\x4c\x5d\xa6\x41\xdd\x52\xfb\x95\x1e\xf6\xe6\x41\xd0\xe3\x34\x98\xf4\xe8\x21\x6d\xa7\xd3\xd0\x24\x49\x54\xf3\x89\x9e\x89\x74\x2d\xe8\x62\x1c\x4f\xa7\x6e\xe1\x75\x3d\x55\x61\x89\x1c\x2e\xf9\xa0\x02\xdd\x78\xc8\x7d\x62\xd2\x43\xfc\xcb\x9a\xe5\x89\xd1\x3a\x28\x3b\xd8\x4c\xa1\x87\x08\x70\x80\x98\xff\x08\x48\x88\x8c\xd2\x94\x62\x72\x41\x75\xc1\x64\xcd\xed\xaa\x8e\x01\xe6\x1b\x58\x05\xe3\x58\x1e\xbb\x6a\x9c\x1a\x23\xea\x51\x1b\x95\x7e\xcd\xb0\x51\x46\x71\x97\x2d\xd2\x3b\xf9\x18\xa9\x8c\x50\x5b\x3a\xc2\x20\x1d\x42\xc4\x6a\x48\xf3\xa3\xd1\x86\xa5\xc4\x21\xcd\x99\x37\xec\xd2\x17\xea\xab\x6d\x07\x12\xf2\x8c\xa3\xca\xfb\x36\xdd\x10\x24\xe8\xc3\x01\x8b\x09\xce\xf3\xa4\xc3\xca\xc3\xf5\x67\xf6\x72\x02\x68\x55\x10\x50\xd0\x81\x5f\xdf\x11\xb4\xe3\xc9\xa6\x0a\x66\x88\xf7\x52\x7a\x7b\xe6\x2c\xf3\x45\x48\x79\xa7\x2a\xb5\x9a\xa1\x87\xd8\x80\x6d\xdd\xfb\xc1\x22\xa8\x67\xb2\x86\x2c\x7c\x3e\x5f\x6c\xb9\x02\x96\x5e\xe6\xb6\xab\x02\x38\x05\x42\x11\xc2\x49\xb9\x02\x47\xcd\xb0\xe6\x33\x06\x6e\xe1\x1f\xfe\xb2\xa1\xd1\x8e\x67\x8e\xb2\x19\x32\x17\xb5\xb4\x02\xe2\x0b\x24\x7a\xd1\xd1\xac\x18\x12\xbb\xd7\x42\x42\x4a\x58\xf5\xf5\x34\x20\x35\x43\xad\x88\xd1\xd4\x9b\x81\xf3\xcc\xb5\xaf\x6c\xce\xd4\x68\xe8\xb2\xb1\x35\x9f\xe1\xef\x44\x1a\x2b\xb7\x89\x7c\xcd\x27\xab\xad\x89\x16\x83\x3a\x43\xeb\xce\xe3\xa3\x1f\x90\xfe\x27\x36\xbf\xef\xc6\x55\x30\x92\xe5\x60\x54\x03\x27\x8d\xd7\x24\xd5\x73\x96\xdc\xf9\xe9\xeb\x9f\x25\x04\xdb\x9b\x36\x7e\xfa\xe6\x67\x62\xad\xee\xfc\xf4\xed\xcf\x2d\x58\xab\x71\xed\xf9\x79\xf6\xd6\x4c\x34\xc1\x35\x1d\xf8\xa6\x31\x97\x45\xdd\xb7\xce\xdf\xc2\xdf\x3b\x8e\x9a\xbc\xeb\x5c\xe9\xa9\x8d\xf9\x18\xd0\x05\xd6\x95\x1c\x4a\x5f\x31\x55\xc8\x6d\x64\xaf\x50\x05\xdf\x6c\xbf\x9e\x2b\x2a\x5a\xa6\x1a\x82\x08\xf1\x47\xb2\x0d\x48\x39\xc4\x9c\x2e\xfd\xc5\xa1\x0a\x58\x28\x72\xe0\x80\xe6\x64\x19\xcd\x7f\x92\x5f\x0f\x78\x7a\xc0\xc8\x2f\xbe\xab\xda\xd9\x46\x54\x27\xef\x2d\x38\xc0\x08\x47\xf1\xa3\xed\x7a\x36\xa0\x68\x92\x14\x48\xd2\x7a\x0d\x8a\x74\x6c\x11\x08\xf1\x53\x47\x3a\x0d\x07\xdd\x18\xc6\x90\x80\x91\x70\x8d\x4c\x26\xc3\xc2\xb8\x2d\x05\x9a\x6a\x4c\x09\xb5\xdd\x42\xe3\x72\xc1\x38\x63\x4b\xf0\xfd\x47\x71\x25\x23\xd2\x36\xa8\x37\xdd\x3e\x7f\xb0\x15\x61\x59\x88\xad\x3d\xe7\x76\xd6\x20\x5a\x4c\xb8\xc5\xea\xe3\x09\x19\x7b\xe7\x71\x1e\x38\x82\xff\xa3\xbd\x6c\x98\x15\x52\x8e\xc8\x7d\xe5\x98\x86\x74\x10\x29\x6e\x37\xeb\x58\xa7\xa6\x25\x36\x00\x8f\x84\x09\x92\xd1\x8c\x71\xc9\xd9\xa0\x3d\xeb\xfa\xa2\x1b\x80\x16\xd5\xdc\xc6\x4a\xb0\xbc\xc1\xaa\xfc\xbe\x2a\x9a\xd6\x24\x3a\x4b\xda\x64\x88\xaf\x56\x6b\x30\x9c\x12\xc4\xe9\xc3\x58\x47\x4c\x1b\xd8\x17\xd9\x2b\x59\x67\xe2\xf3\xd1\x59\x7b\x33\xaf\x73\x74\xd0\x4d\x5e\x74\x2e\x52\xc6\xe2\x7d\xe8\xcd\x63\x87\x9c\x5d\x42\xe8\xe1\x00\x66\xf7\x51\x6e\xdc\x2e\x8c\x58\x19\xdd\xfa\x02\xb3\xac\xcb\x1a\x31\xbd\x65\x3d\xc1\x18\x58\x10\xa8\x56\xe9\x1c\x8f\xb9\x42\x01\xf0\xa7\x80\x8f\x7b\x70\x97\x8d\xd9\x09\xa9\x31\x35\x41\x29\x51\x9f\x39\x56\xdd\x0f\xcb\x34\x84\xe8\xb9\x3a\x87\x38\xc5\xed\x88\xef\x08\x9a\x1a\xd8\x01\x6e\x00\x1d\x1a\x32\xcb\x90\x49\xe9\x69\x66\xac\xb4\xb6\x01\x96\xa2\xd9\xb7\x86\x46\xb8\xea\x4c\xdd\xe7\x91\x9b\xdd\x94\x6d\x73\x7a\x24\x56\xf7\x6f\x47\x2c\x43\x1a\x1a\x34\x55\x4c\xc3\xa9\xa4\xed\x44\xe4\x83\xbd\x6c\x58\xe0\xc1\xf6\x22\xd1\x86\x35\xa9\xed\x0e\x38\x99\xaf\x03\x86\xc6\xae\x51\xe9\xd1\x5a\xe3\xe9\x08\xa3\x6a\xa2\x19\xdd\x34\x9f\x57\x4b\x1b\xfe\xdc\x34\x32\xc3\xd9\xb0\x75\xa4\x0e\x48\xf1\xbf\x51\xb7\xf2\x6f\xba\xb4\x3d\x52\x6b\x16\x46\x6f\x53\x95\x73\x1f\xd3\x2f\x00\x34\x2c\xef\x0a\x04\x11\xfb\xc6\x40\x2f\xd1\xa6\x2f\x9c\xfd\xc9\x54\xe2\xeb\x93\x43\x36\x67\xa5\x85\x44\x3b\xd8\x2a\x24\xfa\x13\x47\xc3\xda\x13\xe9\xdb\xba\x70\x01\x97\x30\xdc\xb9\xb1\xd0\x7d\xc1\xc1\x92\x98\x9c\x43\x84\x0d\x65\xa9\x5c\x93\xf0\xc3\x0e\x73\xdc\xa5\xbf\x44\xf1\x20\x11\xb2\xe0\x74\x22\x01\x56\x41\x9b\xdf\x85\x57\x3d\x11\xc0\x7b\xdc\xee\x3d\xdc\xf7\xb9\x12\xc3\x7f\xe2\x1f\x4a\x12\x15\x85\x22\x3a\x48\x1a\xc2\x50\x2a\xb7\x00\x7c\xda\x65\x41\x73\xde\x63\xe7\x7d\x2b\x46\x50\xf4\x92\x2b\x21\x66\x2d\xec\x7d\xc4\x20\x5a\xb2\xcb\x7f\x83\x58\xdb\xaf\xdf\xba\xaf\xb6\xe9\xb5\x69\x56\xf6\xb6\x97\x1e\xb4\x6d\xcc\xe9\x6f\x6e\x9d\x6a\xfe\xa7\x9f\xdd\xce\x24\x09\x63\x6e\xc9\x2a\x9f\xda\xa3\x90\xc6\xc6\x50\x03\xa1\xde\x17\x41\x27\xd0\xa6\x87\x56\x17\xed\xdd\xc8\x1c\x94\x5e\xcb\xb4\x1f\x78\x52\x41\x02\x3b\xdc\x88\x8d\x5a\xfa\xa2\x45\x64\x3a\xcd\xae\x40\xd6\x63\xa1\x8c\x0c\x5c\xb0\x65\x59\x74\xcc\x62\x94\xa5\x8f\xfb\xa2\xb5\x72\x87\xdf\x3e\x5a\xf8\xfb\x87\xe3\x51\x67\xe2\x61\x62\xbd\x90\x62\x5b\x9e\x6d\x82\xb8\xd6\x8c\xce\x09\xdb\x40\x61\x04\x72\x69\xed\xc6\x63\xdf\x66\x4e\xc5\x5c\x05\x8e\x89\xad\xdd\xec\x1a\x25\xee\x2c\x87\x9c\xd8\x30\x20\x72\xb9\x64\xa6\x7a\xeb\x8f\x78\x56\xcd\xd9\x0a\xc0\x73\x90\xcd\x20\x39\xb0\x08\x7f\x6a\x0e\x88\xb0\xc3\xd9\x7d\x1c\x7e\x5c\x32\xb8\x70\x94\x61\xe3\xac\x47\x1f\xb4\xff\xc2\xaa\x83\x77\x74\xa1\xf1\x91\x41\x2f\x3a\x3b\xd5\xac\xb1\xf3\x56\x59\x20\x78\x49\x4f\x64\x29\xec\x39\xeb\x5e\x76\x77\x3e\xce\x71\xd8\xb2\x63\xce\x58\x41\xe7\x62\x6c\xd9\xbf\xa5\x1c\x6c\x83\x98\x5c\x3c\xb6\xc7\x32\x3e\xc4\xa1\x26\xcd\x69\x7d\xea\x50\x29\x12\x94\x4f\x4b\xec\x01\xc0\x0e\xa9\x7d\x08\x91\x5b\xde\x9d\x23\x71\xc2\x01\xd4\xf3\xbc\x27\xf4\x83\xe4\x40\xd2\x3d\x67\x8f\x6f\x9a\x38\xd2\x85\x8d\x86\x22\x49\xfc\xc6\xcd\x7b\xc9\x20\x9e\x1b\x5d\x6e\x8b\x0b\x92\x47\x91\x4d\x84\x18\xb2\xc4\x97\x0a\x22\x6d\x9c\x49\x33\xbc\x4b\x67\x71\x1f\x21\x49\x9c\x46\x94\xb0\x40\x67\xd7\x1f\xbb\xbe\xac\xa3\x92\x09\x63\x5d\x58\x6a\x27\xff\x38\x9c\x78\xf2\x65\xad\x19\xe8\xbe\x1a\x4c\xd6\x04\xfa\xec\xa8\xc8\x25\xdc\xd1\x06\xe7\x92\xe7\x0d\x36\x22\x9b\xf1\x4d\xbc\xbd\x22\x0c\xc7\x71\x98\x07\x3e\x84\xf5\x8b\xed\xdd\xf5\xfa\x6e\x9e\x7f\x31\x85\x89\xd8\x5f\xc0\x15\x8b\xa5\xc9\x7a\x09\x00\x74\x48\x56\x82\x96\x02\xce\x6c\x07\x4a\x01\x11\x2c\xe0\xeb\x56\x38\xde\x05\x71\xbc\xec\x00\xee\x10\x6a\xb3\xa8\xb9\x71\xf0\xda\x72\x78\x68\x75\xde\x57\x70\xc7\xcb\x24\xca\xbe\x0e\x7c\xe7\x87\x6b\x3c\x64\x7b\x83\xb2\x01\x3f\x78\xc3\x80\x9d\xbf\x18\x87\xa6\x31\x57\xc4\x11\xbe\x31\x9a\xac\x57\x0b\x33\xd4\x7b\xf0\x14\x33\x97\x8d\x6f\x66\x12\xca\x85\x0a\x2c\x3c\x2b\xca\x64\xd0\xf7\x1e\xb8\x49\x0c\x39\xcd\xed\x88\xa5\x0c\x1c\xaf\xa6\x9c\x48\xa6\x46\xb0\x63\x6f\xec\x75\x1e\xe1\x60\xac\x89\x14\xc2\x92\x01\x5b\x0b\x66\x92\xb3\xb1\x4d\x25\x3b\x23\x07\x10\xd9\xa2\x20\x8f\x0f\xdf\xe8\xf2\x63\xd8\xc0\x45\x5d\xbf\x6d\xd3\x3f\x99\x05\xff\x11\x14\xac\x8a\x4e\xca\x90\x54\xf4\xc9\xa0\x90\xf8\xcb\x62\x39\x99\x08\x19\x38\x7b\x78\xfd\xa1\xe5\x10\x27\x07\x9f\x83\xe3\x6d\xe6\xef\xa1\x4a\xfc\x5f\x35\xef\xd5\xe4\x84\xa6\xbd\x6a\xea\x00\x8a\x03\x54\x4e\x91\x93\x26\x79\x29\x99\xb5\x82\x42\xf5\xda\x77\x7d\xee\x0c\x48\x08\x51\x20\x7e\xef\x30\xf8\x88\xc1\x58\x7c\x64\xce\x2e\x0a\xda\x86\x5c\x96\x5c\x15\x74\x11\x64\xe7\x30\x68\x27\x17\xf5\x55\x02\x2b\x86\x88\x0d\xec\x74\x94\x74\x17\x81\xad\x6a\x3b\x0b\x1a\xb7\x31\x74\xe9\x99\x0b\xa6\x03\x2d\x11\x29\x98\x9d\x36\x46\xa0\xea\xc2\xe6\xe1\x87\xa6\x30\x92\x71\x39\xe8\xd3\xc6\xb2\x0c\x92\xca\x12\x1f\x5b\xe5\x9a\x1e\xae\xb5\x5e\x4d\x83\x6c\x70\xd6\x49\xda\x75\xce\x09\xb2\x39\x62\x17\xec\x4f\x2b\xc6\x77\x44\x15\x96\x6a\x56\x0b\x2d\xa5\x12\xc5\x3c\x15\xdc\x3d\x72\x9c\xf5\x8b\x3b\x08\xb5\xe2\x49\x45\x96\xe9\x01\xa8\x4d\x65\x2f\xfe\x9d\x08\xda\xf5\x27\x20\xee\xfa\x40\x32\xaf\x6c\x93\xcb\xde\xc0\x24\x0a\xcb\xfe\x87\xf6\xe6\xe8\x52\xf5\x7c\x54\x4f\xa0\xa9\x55\xe3\x8c\x99\x74\x28\xe7\x5f\xa7\x77\xe1\x91\xb6\xdb\x57\x8c\xce\x28\xc7\x2a\x8f\x70\x45\xfd\x84\x8b\xb5\xb7\x97\x6f\xa8\x17\x18\x76\xe1\xc5\x60\x3b\x72\xf9\xfc\x3e\xad\xaf\x71\xc8\xfc\x96\xba\xee\x4c\x2e\x85\x72\x97\x71\x34\xa7\x0f\x28\xe6\xf8\xc9\x02\x97\x5b\x54\x73\x72\xa8\x20\x7a\xaa\xb6\xf0\x5c\x97\x46\x53\xbf\x5f\x3a\x15\x53\x40\x1b\x55\x89\x62\xdd\xbe\x22\xc6\xf0\xbb\xf1\xaa\x87\x18\x97\x90\x56\xcf\x46\x7a\xdf\xb3\xe4\xe4\xf5\xf1\xa3\x63\xef\x81\xd6\x18\xe2\xea\x3a\x28\x80\xc6\x7b\x2e\x42\xef\xb0\xc9\x80\xa8\xc3\x1b\x25\x83\x48\x1d\xba\xbc\xc1\xa9\xc9\xa5\x48\xb3\x6e\xe7\xc3\x03\x79\x20\x69\x49\xb7\x86\x13\xdf\x85\xfc\x3e\xd1\xc7\x83\xe1\xdd\x70\x60\x99\x5b\xab\x72\xc5\xf5\x51\x0f\x4e\xea\xd2\x86\x35\x08\xac\x90\x65\x8e\xfe\xdc\x33\x41\x76\x72\x00\xe2\xe0\x17\x39\xe1\xfa\x65\x63\x10\x0f\x86\xbe\x5a\xb8\x54\x45\xb4\xeb\x0a\x9b\x11\x3a\xf2\x52\x2b\x88\xa2\x10\x1b\x99\x6b\x8a\x29\x8e\x77\x31\xee\xb2\xbc\x69\x48\xdf\xec\x19\x92\xf8\x9c\x4d\x8d\x48\x06\x62\xcf\x3c\x52\x5c\xad\xfb\x12\x62\x92\x71\x51\x19\x7b\x7b\xfd\x56\x7a\x15\x51\x7b\x9d\x69\xe6\x0f\xdf\xc3\x60\x12\x61\x1a\x47\xe0\x42\x74\xaf\xe3\x31\x57\x3e\x94\xd3\xc5\x2b\x5b\xd9\x73\xb6\xfb\x2a\x0a\xbc\xa6\x11\x2a\xe4\xc2\x94\xca\x81\xbb\x0f\x33\x37\xfb\x22\xc8\xc6\x67\x52\x14\xab\xaa\x77\x08\xd5\xab\x0e\x74\x9d\xbd\x25\x59\x63\x7c\x15\x4d\xb5\x26\xbe\xc5\x39\x7c\x44\x37\xf6\x96\x1a\x8d\xd3\x32\x25\x2e\x44\x3c\x67\x0d\x0b\xed\xfa\xf1\x38\x63\x4f\xd0\x9d\x1e\xa0\x0e\x1e\x21\x00\x9e\x2d\x81\x3d\x5f\x43\x43\x64\x86\x47\xfe\x30\xec\xa9\xe4\xd0\x7d\x1a\xc7\xf5\x38\xba\x19\x9c\xa9\x70\xb0\xc8\x93\xce\x69\x28\x77\x36\xe5\x6f\x21\x26\x0b\x93\xad\x70\xce\x88\x82\xb3\x01\xcc\x25\xa1\x5d\x18\x74\x1d\x67\x05\x28\xb3\x61\x4e\xf8\x28\x79\x53\x10\x91\xb4\xde\x39\x6a\xcc\xfe\x4a\xb8\x33\x87\x2d\xe5\xd6\x86\x5c\x9c\x5c\xab\x60\xb1\x2d\x3b\xa7\x9e\x6d\xb4\xb1\x33\xf7\x6c\x0c\x1d\x8c\x77\xf0\x9a\xab\x6d\x3a\xb3\x66\x18\xf5\xb6\xec\x39\x51\x1b\xe1\x86\x36\x08\x09\xf0\x38\x2e\xa8\x76\x09\x53\x0e\xa4\x78\xf1\xa4\x4f\x8e\x62\xb8\x32\x84\x69\x37\xd4\xb6\xaa\x7f\x0e\x24\x6e\xac\xe1\x14\x68\xec\xe6\x68\xf0\x5e\x05\x68\xf4\xc9\xcb\xd3\x33\x1a\xdb\x12\x52\x70\x5f\xb9\x50\x07\xce\x67\xae\x39\x38\xc0\x67\x9f\xb0\x60\xba\x90\x63\xce\x79\x0e\xc2\x7b\x88\x33\x1d\xc6\x61\x4e\x7b\xfd\xa6\xc4\x4b\x89\xba\xb2\x68\xd2\x98\x25\x87\x4d\xc5\xb7\x57\x62\x3b\xd6\x66\x8c\xf9\x21\xec\x4e\x69\x43\x01\xf7\xcb\x1a\x7c\x27\xd1\x67\x71\xc5\x29\xd8\x27\x7f\x42\xc6\xd8\xdd\xbb\x97\x34\xfe\x14\xf7\x37\x14\x2e\x86\x4d\xcc\xac\x8a\xe4\xc4\x2e\xce\x24\x0c\x94\x58\x2d\xac\x38\xed\x06\xd0\xd9\x04\x90\xc8\xa6\x48\xdd\xb9\xcc\x16\x46\x02\x99\x47\x40\x1b\xc9\xcd\x95\x6a\x8e\xae\x09\x88\x45\x9d\x6f\xd3\xa3\xde\x34\x1b\xcd\x13\x68\x7d\x7c\x46\x12\x8a\xdf\xf7\x4e\x54\x61\xdf\x6b\x6c\x28\x92\x75\x45\x69\x50\x58\x5a\xc7\x94\xaf\x06\xe8\x81\xf5\x01\x34\x22\x72\xf3\xfd\x21\x2e\xbc\xad\xbd\x9f\x2f\xb4\x35\xf6\xf7\xcb\x65\xf7\x97\x59\x90\xa3\x4f\x42\x74\x24\xe2\x84\xbd\xf8\x9b\x30\x5a\x34\x4e\x0a\x1e\x5d\xf0\x3a\x7a\x36\xc7\x04\x21\x0f\xdc\xa3\x77\x4d\xe5\x28\x27\x24\xe3\x26\x0e\xa6\xe6\xc7\x6b\x24\x39\x61\xc0\xb1\xbc\xc1\x83\x45\x35\x8c\x1b\x6f\x82\x9c\xaf\x5c\x2c\x79\xc5\x92\x20\x17\x27\xf3\x9e\xd8\x8e\x8c\xe3\x89\xe1\x0c\xdd\xe0\x9f\xc4\xdb\xdd\x82\x8d\x82\xe2\xa6\x80\xf5\x9e\xd4\x3a\xa1\xc4\x36\x00\x0c\x88\x9c\x9e\x9f\x5d\x04\x43\x34\xd9\x20\x1b\x56\x91\x9d\xc5\xeb\x01\x6f\x55\x56\x13\xf3\x1a\x22\xc1\xaf\x86\x0c\xbb\xd8\x28\xa1\x51\x48\x2b\xbb\x6c\xe8\x2c\xcc\x92\x33\x1b\x8a\x61\xb7\x83\x23\x5e\x0d\x49\x10\xd7\xbf\x86\xca\x22\x61\xff\x3a\xbc\xb1\x01\x77\x49\x10\x12\x4b\x45\xbf\xfc\x1f\xa7\x2f\x5f\x1c\xe8\x08\xdf\xdd\xbd\xba\xba\xba\x8b\x8a\x77\xfb\xa6\x84\x9d\x24\x37\xb9\x0e\xf9\x00\xcf\x0b\x3c\x30\xdd\xf2\xfe\x3d\xfa\xf7\x2b\x7d\xc7\xa0\x75\xd6\x94\x09\x12\xa7\xdb\xee\xef\x23\x6b\x7a\xe6\xc2\x97\x26\xc6\xc7\x4f\x17\x36\xf6\x6d\x0e\x42\x1f\xbd\xb0\x6e\x96\x0d\x0d\xe4\x94\xff\x89\x0a\xca\x6c\xf9\x76\x4f\x5a\x87\x11\x28\xf1\x5b\x55\x38\x28\xfc\x1e\x43\x05\xc6\xd2\xa0\x8c\x17\x53\xf6\xcc\xef\x7f\xfd\x67\x2c\x96\xbd\x82\xa2\x35\x82\x30\x08\x6e\x91\x48\x12\x7c\x67\x5a\xab\x09\xd7\x4d\xf7\xfd\xa8\x45\x76\x22\xad\xab\x72\x2b\x69\xe6\x91\xb1\x49\xb6\x8d\x2c\x2f\x8a\x75\x35\x67\xa3\xba\x9c\xfd\x12\x52\xcb\x96\xed\x5f\xa9\x3a\xfc\xd6\x4e\xc8\x01\x95\x0f\x83\x3e\x06\xf5\x25\x47\x43\xfa\x08\x2f\x92\xac\xa1\x9c\x22\x19\xb1\xb1\x22\xad\x26\x17\xad\x27\xaa\x05\xfe\x6d\x3b\x0a\x05\x51\x0f\xd9\xca\x87\x04\x44\xd6\xbc\xc9\x7a\xc9\x6c\x12\x09\x29\x1c\x67\xa7\xd1\x23\x8f\x2b\x11\xc9\xc5\xaf\x24\x1b\x88\xee\xe1\xf1\xe6\x64\xb2\x92\xb1\x62\xfc\xdd\x39\xc8\xfb\x33\x1f\x1c\x5c\x87\x78\xe5\x4a\x1c\xf1\x02\x49\x84\x51\x25\x8b\x95\x11\x20\x25\x4c\x47\x76\x70\x89\xce\x99\xd8\xde\x33\x63\x7a\xe5\xd8\x2d\x4f\xaf\xc6\xf7\xbe\xc2\x4e\x75\x15\x70\xf8\x34\xfc\x3f\x8d\xfb\x51\x91\xc6\xf6\xa3\x5a\xcc\x71\x1f\xe2\x2c\x85\xcb\xbd\x40\x86\x2e\x83\x3b\x15\x79\x73\x11\x0b\xea\x5c\xbb\x22\x1e\x30\x3e\xb6\x13\x54\x56\xce\x92\x27\xb4\xcc\x52\x4a\xe6\x32\x1b\xbe\xc0\xe4\x33\xf2\x9d\x38\x45\x25\x8e\x07\xe7\xc0\xb3\x38\x3b\xdc\xe0\x98\x4a\x74\xa0\xc6\x36\x0e\xca\x86\x2f\xff\x0c\x4f\x38\xc9\x47\x95\xe8\x9b\x23\xcd\x1f\xc9\xa7\x65\xbd\x8d\x32\x05\xd1\x90\x89\x2b\xa2\xfb\xd6\xac\x7a\x33\x98\xa2\x07\x4f\x0f\xf3\x9c\xe0\xf0\x33\xf9\x9f\x66\x1b\xea\xc4\xea\x79\xd8\xea\xbf\xd4\xc4\x72\x51\xc3\xd5\x17\x5d\x42\x4d\x98\x9c\xe4\xbf\x6d\x22\x10\x09\x41\x44\xb2\x59\x6c\xd5\x98\x18\xe5\x54\xc4\xb8\x03\x8b\xa3\xde\x1f\xb9\x2e\xf4\xd6\xee\x58\x1d\x06\x00\x18\xbc\xf2\xd9\xa0\xa6\x8f\x74\x0f\x6a\x5e\xd1\xfd\x9a\x40\x3a\x4b\x50\xcc\x0d\x64\x25\x4e\xf4\x56\x8d\x70\xf9\xf0\x80\x84\xb1\xeb\x2f\xcc\x55\x30\x53\x6b\xaf\xd0\x31\x08\x32\x14\x14\xd9\x85\xb6\x9f\x4d\x4f\xd9\xb1\xca\x8f\x78\x6f\x4f\x63\x7d\x02\xde\xc6\x6d\x71\x25\x44\x0a\x84\x63\x61\xdd\xac\x88\x6d\x34\xa3\x52\xb5\xb2\xb9\xa8\x50\x5a\xc3\xd2\xbe\x54\x0a\x34\xb4\xc9\xa3\x3a\xd9\xd2\x7a\x5e\x91\x08\x0f\x05\xae\xcd\xce\xf3\xfd\x0d\x03\xb1\xf8\x08\x10\xeb\xd0\x20\x07\x76\x84\x08\x24\x4e\x3f\x3f\x9f\x91\xb4\x77\xd5\x22\xde\xbb\x6f\x96\xfe\xe5\x4c\x7e\xd6\xc6\xbe\x72\xc7\x70\x20\x55\xb4\x2b\x36\x59\x8e\xd8\x32\xfe\x24\x76\xd0\x54\xfe\xd1\x6f\x6c\x61\x8e\x5f\xa9\x08\x0d\xcd\x65\xf2\x88\xa0\xa6\x2d\xcb\x33\x6d\xa2\xbd\xa8\xaf\xe6\xf8\x8b\x43\xd9\xdb\xf4\xb9\xb0\x8e\xac\x22\xcb\x91\xec\x9c\x78\x1b\x39\x44\x04\x63\xeb\x00\x52\x19\x51\x51\x55\xd8\xeb\x2a\x48\x08\x73\x27\x77\x1c\xb2\xd7\xd0\x31\xbd\xd0\x1f\xb0\x89\xe6\x85\x30\xbf\x1e\x62\x1b\x96\xab\x60\xe4\x8b\x2d\x1a\x89\x34\x3c\x7c\xfa\x42\x7f\x71\xcc\x01\x67\x9f\x42\xd0\xc1\x63\xe9\x54\x52\xe9\x72\x08\xc3\x6c\x22\xa6\xc1\x16\x49\x1c\x09\xff\xad\xbe\xdc\x0a\xe3\x41\xf2\x26\x3b\xef\xac\x73\x52\xe3\xbf\x6f\x1a\x63\x6b\x9e\x34\xe6\xee\xa8\x9e\x24\x72\xe6\x90\x54\xfa\xd7\x7f\x67\xd3\x9d\x51\xa7\x2a\xfb\x31\x83\x28\x94\xfa\xa9\x87\x28\x13\x8f\x0d\xda\x5b\x77\x5a\x0d\x3d\x61\xfd\x6a\x33\xea\x90\x77\xd5\x3c\x7c\x34\x31\x79\xdc\xdb\x57\xa3\x04\xa6\xcb\x56\x13\x29\x2c\xbc\x47\x99\x87\x63\xde\xf1\x91\x24\xd4\x8b\xeb\xbb\x28\xb5\x65\xbd\x12\xa3\xa2\xe3\x0e\xc4\x6e\xc9\xdf\x24\x2b\x0d\xe2\x9f\xe4\xf1\xc8\x66\x36\x5a\x90\x79\x44\x20\x75\x2c\x23\x3c\x5a\x36\x13\xb4\x6b\xbe\xce\x03\x39\x02\xbb\xc9\x32\xdc\xd1\x2d\xf4\x3c\x6b\xde\xe6\xf5\x55\x25\xde\x7a\xb6\xa1\xab\xa6\xe0\xdc\xe5\x92\x3b\x3a\x5a\x48\x7e\x7c\xe8\x47\x96\xcf\x4e\xf0\x2b\x1b\x77\x1f\x3a\xf2\x4b\x1b\xa0\x34\x2e\x17\xb8\xa5\xde\xb6\x1a\x78\x65\x70\x74\x47\xc8\x23\x4d\xdc\x88\xbe\x83\x39\xdc\x3a\xe3\x44\x0e\x54\x76\x77\xb4\xb4\x41\x05\x1f\x23\xe8\xb6\x80\x0a\x80\x6b\xe4\x12\x62\xcf\x33\xb6\xbd\x90\x90\x69\xc5\xcd\xe0\x65\xac\x70\x14\x58\x18\x66\xdb\x64\x81\xc6\xa8\xe7\xc7\x58\x64\xff\xab\xeb\x62\x32\x3e\x07\x2c\x95\xda\x93\xa0\x26\xe9\x51\x4b\x76\xdf\xcd\xf5\xba\xd1\xdc\x8d\x71\x12\x16\xad\x65\x93\xf4\xfa\x7d\x25\x49\x03\xeb\x66\xf5\x73\x90\x2c\x78\xf4\x40\x0a\x6d\x9e\xc1\xf3\xb2\x1e\x76\x6f\x28\x76\x9c\x87\x33\x08\xc6\xc6\xbb\xbb\x2e\x1a\x5b\x13\x6e\x4a\x36\xa1\xa0\xc1\xc9\x57\xf2\xac\x7a\x6a\xd0\x34\x0b\x80\x74\x92\x77\xe6\xfa\xdb\x06\x19\x8c\x34\x87\x94\xf2\xe3\xc8\x29\x2a\x81\x21\x83\x49\x72\x18\x9c\xfa\xc8\x07\x4e\xf7\xf0\x64\x32\xf5\x46\x92\x15\x42\xb1\xd0\x72\x42\x58\xbc\x9d\xd9\xd6\x6b\x03\xf3\xea\x53\xfc\xcc\x1a\x7d\xf1\xaf\xe0\xfc\x19\x26\x5b\x13\xef\xc8\x29\x67\x11\x47\x86\xac\x93\xaa\xbc\x6c\x53\xd5\x57\xba\xef\x51\x3a\xcb\xf8\xdd\x95\x20\x4c\x0f\x4d\xfa\xf0\x3c\x51\xdf\x1e\x6b\x0a\x75\x20\x74\xc2\xc3\xc3\xa7\x50\x0e\xd4\x0b\xb6\x0e\x17\xee\xab\x64\x17\x47\xf3\xc4\x84\xf9\x9e\xe5\x38\x58\x67\xe8\x26\xd1\x42\x4d\xb1\xab\x39\xa7\xbc\xd7\xb0\xae\x80\xeb\xd1\x47\x66\x1e\x57\x22\xef\x43\x9d\xc8\xfb\x37\x68\xe7\x7b\xad\x21\xa6\x9c\xd6\xb1\x2e\x2a\x75\x56\xc4\xa1\xf3\x33\x16\x81\xa9\x87\xd0\x0b\xd9\x53\xb4\x96\x71\x53\x37\x46\x42\x8f\x74\xc7\xff\xd8\x7c\x9e\xd3\xad\xef\x08\x88\xfe\xbb\xbc\x10\xf6\xa4\xa4\x0c\x55\x7e\x81\xe9\x9f\x33\x53\xba\xb2\x5d\x29\x2a\xff\x11\x7e\x01\x84\x82\xf1\xb5\x19\x1d\xc4\xe4\x79\x90\x82\x72\x47\xf5\x89\x54\x94\x23\xf4\xfe\x7f\xc9\x49\x69\x46\x69\x82\x77\x1b\xad\xf6\xa7\x3d\x1c\xa1\xe1\xe6\xec\x87\x3b\xbd\x01\x06\x84\x6d\x28\x04\x0f\x12\x9b\x68\xfe\xaa\x1b\x2a\xa9\x1f\xc7\x1e\x8b\xef\x18\x17\x93\x46\xe0\x83\x41\xe2\x93\xa1\xf1\xd9\x66\x3d\x69\xcd\x67\x3b\xcd\x5e\x37\x26\x40\x19\x8e\x1e\xf4\x71\x3a\x0b\xca\xf8\xb2\x9b\xaa\xeb\xb9\x8b\x7a\xb8\x48\x7f\x53\x6e\x94\x29\x2b\x92\x35\x35\x5d\x59\x4b\x92\x38\xac\x8a\xe1\x56\x9e\x82\x73\xae\x97\xa1\x5a\x6b\xfc\x3e\x71\x88\xcc\xe9\x2d\x7a\xfb\x96\xde\x45\xc2\xbc\x2c\x53\x9f\x81\x37\x2e\xb0\x94\xda\xd9\xb3\xd9\x64\x2b\x66\xe6\x00\x16\x1f\x90\xe9\x76\x47\xc1\x74\x2b\xa3\x2e\x27\x62\x5a\x6c\x91\xda\xfd\x9e\xcb\xcd\xe9\xbf\x53\x8b\x4b\x93\x95\xe9\xcb\x25\x8c\x51\x8d\x2f\x10\x19\x36\x74\x52\xd4\x02\x62\x8d\xa0\x18\xb3\x79\xc1\x7d\x81\x5e\xea\x36\x44\x80\xae\xf1\xf7\x1c\x6f\x68\xd8\xdd\x91\xb5\x58\xa3\xc4\xb7\xbc\x18\x85\xbb\xfe\x9d\xa6\xcb\x5a\x24\xe1\x68\xfa\xdd\xa8\x0b\x3c\x8d\xa5\x3c\x03\x27\xe4\x06\xaf\x30\x43\xaa\xeb\xf4\x35\x87\xdd\xd8\x4f\xa3\xa1\xca\x67\x30\x7e\x9a\x00\x2c\x3d\x74\xae\x0d\xcf\x88\x34\x10\x41\x99\x00\x8a\xd2\x61\xe8\x15\x6d\x13\xd4\x19\x7e\x57\x55\x92\x04\x0c\x5f\x7d\x9b\xd9\xb6\x98\xe1\x1f\xf7\xc8\xdc\x7b\xd8\x67\x08\xb7\xa7\xd3\xd2\x98\x71\x67\x07\x9c\x9e\x5e\x78\x6e\x49\x10\xc1\x2a\x4e\xf6\xa9\x2c\x83\xb1\xc8\xa3\x84\xa3\xb1\x0c\x82\xa4\xc6\xb0\x7b\xc6\xe3\xbb\xe3\xd0\x04\xf4\xb9\x6f\x74\x99\xcb\xf9\x19\xf8\x91\x30\x0d\x08\xc7\x69\xb3\x37\x84\xfd\x55\xd6\xd9\x2b\x1f\x31\x5c\x50\xee\xef\xb8\xf2\xa5\x98\xcf\x46\x3b\xe2\x85\x9e\x0d\xbd\x8f\xb8\x83\xa9\xdc\x69\x9f\x4a\x32\xb6\xb6\x09\x5b\x81\x84\x03\xb3\xbc\x98\xf4\x79\xf3\xb5\xc4\x58\x32\x24\x33\x32\x74\xcb\xf6\xea\xe1\x6d\x47\x5c\xe8\x1f\xe2\x28\xa4\x82\xcd\x1b\x06\x9e\xf8\xa1\xcb\xc2\x68\x06\xcd\x42\xf1\xc6\x2c\xa4\x92\x0f\x4b\x62\x9f\xdb\xe3\x39\x1c\x47\xd0\x6c\x7c\x5f\x34\x7b\x00\x47\xeb\xcc\x57\x02\xdc\x0d\x9c\x21\x18\xf7\x40\x6b\x68\x16\x91\x93\x5c\xc8\x85\x60\x21\xd7\x1e\x41\x11\x3f\xad\x89\xf6\x24\xbd\x9a\x7f\x05\xde\xbe\x01\x30\x79\x66\xc3\x01\xba\xd8\x2a\x3b\xdd\x51\x1c\xc4\x90\xb5\x08\x68\xc8\x70\xc7\x85\x13\x95\xdd\x1c\xba\x5a\xd9\x4d\xa3\xd4\xc8\x6d\x90\xef\xf8\x48\xb9\x09\x06\xcf\x05\x3b\xf2\x33\x7a\x65\xdf\x3f\xda\x31\xa0\x44\x7f\xdb\x90\x1c\xb9\xba\x61\x50\x4c\x9e\xb6\x21\x11\xca\x3e\x69\x6c\xfa\x48\xef\xdf\x34\xb6\xc3\x1d\xe7\x6a\xf7\x08\x0f\xc2\x01\x6e\x77\x12\xa5\x4f\x19\xf8\xce\xd7\x14\x26\x0e\xaa\x3b\x51\x5e\xfd\xeb\x4e\xd5\xab\xd0\xa9\x76\x58\x51\x5d\x81\xd4\x0d\xd6\x5e\xca\xbe\xd1\x8a\x9f\x2e\xe7\xc4\x30\xce\x57\x36\xf4\x91\x72\xcf\xe2\xb6\xf6\xcd\x17\x98\xa6\xec\xb4\x5d\x2e\xa3\x38\x37\x72\x73\xfd\x2b\x32\x63\x85\x8f\x6d\xfc\xc4\xcb\xf4\xf3\xed\x5b\xee\x0d\xd7\x34\x78\xa3\x15\x26\xd4\x36\x7d\xad\xae\xf9\x2c\x57\x33\x41\x53\x59\x6b\xf0\xe0\xc1\xbe\x67\x28\xfa\xee\x42\x1e\xf0\x60\x49\xea\xd0\x3f\xe7\x61\xf3\xc5\x80\xaa\x8d\x68\xbd\xba\xdc\xa5\x87\x97\xba\x43\xca\xe4\x14\xd3\x42\x50\xe0\xba\xae\xd0\x7c\xfa\x5c\xfe\xf5\x0c\x2b\xf4\x6e\x41\x92\x15\x8e\x72\x0f\xa2\xdb\x83\xa9\xb2\xc6\x19\x0f\xdd\x08\x33\xeb\xf4\xd2\x21\x08\x33\xf7\x56\xb6\x74\x5e\x15\x51\x23\x5b\x8c\x88\xf5\xdc\x7d\x2b\x0d\x89\x2f\x82\x8e\x2c\x1e\xf6\x44\xe7\x73\xd8\xd9\x21\x06\xc5\x6f\x2e\x6b\xbe\x50\xff\xb2\x13\x32\x5e\xe7\xc8\x78\x1d\x3c\x73\xe2\xbf\x0d\x5f\x7d\xf1\x25\x9a\x51\xd9\x66\x21\x8e\xca\xe2\x5b\xdd\x7f\x97\xe4\x4d\x79\xfc\xd1\x65\x6a\x8a\xbe\x66\xcb\x71\x97\x42\x94\xa3\x4f\x91\x93\x6a\x30\x38\xef\xaa\x1a\x7d\xd6\x77\xdd\x39\xec\x2b\x67\xed\x99\x64\x9d\x0d\x81\x5a\xf7\x6a\x49\xf8\x55\x9f\xfb\x8d\x67\x29\x0a\xfa\xf0\x9b\xbc\x99\xef\x9f\x57\x0f\xcb\xac\xcc\x11\x37\x6b\xa3\x2a\xc2\xaf\x2e\x28\x3a\xfc\x38\xaa\x2b\x14\x26\xfa\x84\x97\x11\x60\x26\xf3\xd9\x2c\x62\x04\xe6\x6f\xfa\x4a\x9e\xdb\x9a\xd8\x8b\x13\xba\xf6\x97\x4e\x08\x9d\xae\x21\x4f\x35\x4b\x7e\xbc\xa6\xdf\x70\x12\xa3\x29\xb8\xa6\xaf\xd2\x63\x11\xaf\x22\x08\x70\xfd\xd5\x5c\x93\xf4\xd6\x9c\x9c\xce\x26\xc3\xd1\xb7\x55\xfb\x5c\xb0\xf9\x12\x0f\x18\x26\x6d\x51\x79\xc7\xec\xfd\x0d\x45\xde\xab\x37\x37\xe6\x42\x7f\x77\x5e\xd7\xbe\x33\xbd\xf6\x21\xe1\x76\x22\x7a\xa9\xa8\xdc\x7a\x4e\xc6\x2b\x4d\xed\xa6\xb3\xe0\xed\xa7\x35\xe5\x73\xc0\xef\x6e\xe9\x6f\x18\x34\x2b\x60\x25\xb1\xa2\x89\x87\xab\x0c\xab\x4b\xba\x38\x48\xfb\x79\x53\x5b\xe1\x78\x6f\x68\xea\x8f\x0c\x1b\xef\xe1\xaf\x96\xf6\xd5\x6c\xdd\x42\xfc\x10\xbc\xa1\x6b\x38\x78\x44\x80\xc8\x5c\xdf\xb8\x14\xd8\xbb\x46\x1e\x36\x37\x31\xe2\x68\x94\x3c\x44\xab\x13\x18\x3f\xf2\xa6\x03\x10\x5a\xac\xdd\xc7\x27\x8b\x48\xc8\xb6\x5a\xce\xf9\x31\xf6\xf6\x82\x2d\xf2\xaf\x8c\x7b\x0e\x14\x51\xb0\x9a\x58\xf3\x8b\x19\x95\xdf\x93\x5c\x60\xc5\x7b\xc3\x86\xec\xf6\x8b\x2f\x69\x3b\x54\xfa\x54\x58\x6b\x5c\xe2\x5f\xd5\xfb\x0a\xf9\xd5\x3c\xd8\x54\x06\x75\xec\xfb\x25\x3c\xb1\x99\xc0\x7f\xb5\x7f\x20\x53\xbb\x6b\x40\xd0\xed\x2a\x35\x32\xe4\x6e\xdf\x2a\x05\x1d\x04\x0e\x24\xd1\x74\xfd\x0e\x13\xc5\x4b\x98\x36\xd8\x2b\x8a\x86\x6b\xf0\x25\xfb\x05\xc9\x53\x8e\xea\x96\x6b\x9c\xb6\x91\xb7\x41\xdf\xf9\xf7\x22\xbd\xb2\x2f\xf2\x4f\xdc\x85\x8b\x70\xa8\x13\x9b\xe1\x8f\x8c\xf3\x46\x5c\x45\x77\x34\xf4\xe2\x0d\x75\xdf\x11\xcb\x94\xbe\xe6\x7f\xe4\x3e\xd7\x54\x93\x11\x65\xeb\x1b\x98\xd7\xe7\xab\xba\xa9\x7b\x12\x64\x4c\xfa\x43\xdd\xe0\x0f\x5a\x21\x91\xe0\x62\xc6\xc1\xc2\xb3\x2d\x68\x3b\xef\x39\x91\xdc\x6b\x11\xe0\x9f\xe3\x5b\x91\x69\xbd\xb0\x56\x57\x77\x59\x69\xeb\x40\xcb\xbe\x64\x0b\xcd\x19\x3e\x87\x35\x5f\xa9\x8a\x3e\xe2\x39\xb4\x5a\xbd\xe8\x32\x1a\x5f\x9e\x5a\xe0\x97\x0b\x36\x34\x46\xb0\x9b\x9a\xb3\xaa\xce\x4b\x42\x6e\xbf\x99\x63\xea\x84\x73\xe2\xbd\x37\x42\x27\x1e\x5e\xff\xd6\xd2\xa6\x96\xdc\x17\x27\x3d\x60\xe3\x13\x3c\x18\xe3\xb8\x05\x1d\x62\x30\xea\x89\xea\xc8\xd9\x32\xae\xfa\xac\x58\x18\xeb\xdc\x3c\x51\xd7\xa2\xf6\xc2\x64\x9b\x18\xb1\x4f\xe8\xcb\x04\x56\x19\x70\x17\x76\x6c\xb5\x29\x2c\x85\x15\x8b\xbc\x34\xa3\x4a\x4f\xf5\x0a\xd8\x59\x89\x1d\x71\x46\xd5\x88\x3a\xd2\x88\x77\x55\x52\x86\x66\x3c\x44\xc5\xcb\xb8\xb7\x7a\x41\xf4\x91\xae\xbd\x97\xf4\xaf\xfa\xd0\xc3\x5d\x96\x8a\x42\xd0\x45\x5d\x77\x10\xbb\x36\x60\x67\xd9\x87\x32\x40\x1d\x42\x0b\x0b\xc9\x0c\xfc\xd0\xc2\x0d\x18\x5a\xaa\xb2\x07\x89\x5c\x7b\x0a\x89\x6b\x24\x98\xa5\x2e\x9b\x1e\x62\x32\xdd\x50\x51\xbf\xc7\xb6\x80\xce\xd1\xf3\x53\x82\xdc\x5b\xd5\x75\x3c\xaa\xe6\xba\x8e\x77\x29\x49\x21\x17\x66\x67\xe7\x26\x6c\xe5\x08\xa0\xfb\x2b\x4f\x77\xcf\x15\xa7\xfb\x97\x07\xcc\x60\x10\x59\xf4\xcb\xb7\xa6\x43\x8c\xe4\xc5\x9c\x9d\x3b\x7c\x63\x27\x16\x28\x79\xc8\x40\xc9\x13\x02\x4a\xce\x00\x64\x5b\x8d\xf6\x0a\x5d\x9c\x6b\x24\x90\x80\x23\x4f\xb0\x12\xfc\x45\x05\xa9\x57\xd1\xa5\xf8\x50\x2e\x45\xd7\x58\x2c\x03\x91\xf0\xd6\xcc\x55\xce\xd1\xe3\x0c\x5e\xd1\xb5\xfc\xb2\x6b\xc4\x25\xb0\x6f\x06\x72\x5a\x62\xf3\x2a\x46\x0d\x42\x26\x93\xcb\x7d\xb9\x25\x7e\xd0\x8b\x67\xec\x56\xb8\x2c\xad\x04\x35\x39\xc6\xb0\x21\x7e\xbd\x83\x1a\x62\xf2\x2c\xe4\xc1\xfa\xb2\x94\xc9\xf5\xff\x91\x57\x4f\x7f\x38\x1a\xd3\x4f\x5b\xe7\x24\xa3\xd5\x4e\x84\x78\x42\x54\xde\x01\xbb\xc9\x70\x46\xf7\x03\xdb\xb1\x08\xac\x74\x4e\x27\x86\xeb\x8c\xa1\x75\x00\xca\x29\xa9\x99\x1e\x20\x2a\x75\x4b\x98\x8f\x3e\x6f\x41\x9b\xd7\x94\xd4\x7d\x25\x16\x5e\x7e\xe0\x42\xef\x37\x2f\x9c\x4b\x35\x7e\x57\xcd\x9a\x83\xd8\x3a\x2e\xfe\x47\xee\xf5\x41\x81\xf2\xf2\x83\xfd\x64\xd9\xda\x5c\xdf\x75\xc3\x86\xd2\x92\xa9\xbc\x5b\x52\x24\xcc\x5e\x2c\xeb\x4b\x89\x26\x20\x94\xcc\x83\xae\xa9\x28\xf3\x93\xb6\xce\x12\x80\x78\xae\xbd\x6c\x8a\x95\x3e\xd4\x10\xe7\xbb\x16\x50\xce\xd9\x2c\x66\xd8\xa8\x36\xcb\x6f\x43\x99\x48\x11\xb3\xb3\xb1\x1d\xef\x07\x1e\x97\xf6\xfd\x40\xa1\x78\x3e\xeb\xff\x0d\xe6\x47\x3f\x41\x6f\x51\x14\xaf\x95\x18\xf5\x45\x3b\xf7\xa8\x3e\x0e\x1e\x16\x08\xc2\x2d\x98\x80\x7b\x70\xc6\x7f\x08\x3a\xd6\x9c\x65\x53\xab\xc3\x36\x78\x04\x3f\x30\xe3\xb4\xaf\x05\x89\xa3\xe5\xed\xe2\x78\xa9\x1f\xe0\x0f\x38\x85\xab\xf1\x6b\x8c\x8a\xab\x78\xa2\x7b\xcd\xab\x31\xe8\xd4\x6b\xb3\xfe\x95\xdb\xff\xa0\x77\x75\xc3\xae\xed\xeb\xba\x83\x9e\xff\x63\xde\xd7\x95\xf7\x42\x67\x1c\xbf\x77\xe3\xf9\x1e\xbb\x1e\x0d\x4e\x2f\x7f\x19\xf8\xd7\xf0\xb7\xa1\x9d\x41\x5c\x17\xa9\x9c\x4f\xed\x27\x74\x1d\x1f\x6b\xa9\xba\xe3\xed\x8a\xc1\x98\xe4\xd3\xc8\x0c\x2a\x9f\x39\x1d\x38\x11\x3e\x49\x08\x2e\x2e\xe4\x52\x82\x58\x09\xd6\xa0\x35\x78\x14\xca\x7d\x9e\x4a\x4f\x2d\x2a\x45\x3d\xff\x37\x4f\xc5\x53\x00\xd1\xde\x49\x65\xe4\xd9\x09\x5f\xbb\xa3\x7d\xe5\x08\x50\x16\xd3\x0c\xad\x10\x4e\x52\x3e\x05\xd9\x5e\xe5\x83\xbc\x98\x99\xbb\x58\x03\xf9\x3a\xe9\x48\x15\x4c\x21\xf2\x9a\x3f\x9c\xea\x9b\xc1\x06\x34\x6e\x12\x70\xe8\xe3\x2e\x5f\x2f\xea\xb6\x4b\x9f\xd4\xc8\x35\x24\x1f\x10\x4f\x86\xdc\x4d\x4d\xe7\x60\x58\x25\x93\x57\xe9\x43\xfa\x37\x79\xf4\x22\xfa\xec\xde\x83\xe4\xc2\x13\xfd\xe5\xa6\x87\xcb\x8a\xf3\xbe\xbd\x86\xa1\xe7\x94\xf3\x6b\xe3\xc2\x76\x78\xca\xba\x8e\xa4\xcb\x1e\xe6\x5e\xcc\xe1\x50\x7e\xd9\x64\x0e\x63\x28\xba\xea\x63\x40\x64\xba\x2f\x8b\x00\x6d\x0e\x54\x9e\x1e\xb4\x70\xd3\x6f\x0f\x72\x15\xc9\x31\x27\x43\x7c\xcc\x7f\xbb\xc6\xd8\x58\xa1\xe5\x7c\xd3\x0d\x00\xd6\x20\xc3\xf3\x36\x4b\x9f\x93\x2c\x97\x27\xa7\x87\xb6\xa0\x5d\x77\x1b\x79\xab\x61\x72\xf5\x92\xd3\xe7\x67\x27\x21\x2c\xaf\x03\x3e\x26\xe1\x62\xa0\x24\x58\x90\xa8\x96\x3e\xc1\xda\x95\x6d\xfa\xc4\xc6\xd0\x25\x47\xc5\x39\x8b\x3f\x67\xcf\x4e\x5d\x1b\x6f\x8b\x0d\xa0\xf4\x2d\xf5\xf4\x25\x1c\xa8\xe4\xd9\x12\x7d\x7f\x5d\x46\x14\x54\xd9\xc0\x1a\xc6\x51\xb9\x66\xe4\x17\x77\xaa\xd1\xba\xc9\xc9\xe1\xf3\xc1\x50\x38\x49\x56\xc3\x69\x34\x09\x5d\x34\xa8\x52\x47\x85\xa9\xdf\xb5\xf9\x35\xdd\x09\x29\x36\x6c\xc5\x6d\xcd\x9b\xda\x1d\xbd\x30\xd1\x10\x6e\x8e\x91\x03\xd0\xf4\x19\x88\x2f\xce\xc1\xab\xe0\xd6\xc5\xc9\x5f\xa1\xe1\xd9\x0b\xfd\x8d\x6e\xe8\x2e\x6c\xc9\xe5\x1a\x1e\xde\xf7\x61\xdb\xe1\x8d\xf8\xe9\xb3\x99\xc8\x5a\x92\xed\x83\x9c\x0b\xa5\x98\xf4\xdb\xb9\xb1\x9a\x75\xab\x8f\xfd\x73\x8c\xa2\xd1\xd7\xdd\xfd\x7c\x91\xe8\x6d\xac\x4a\x64\xd2\x62\x33\x50\x8d\x68\x8d\x6c\xb3\x99\x50\x58\x1f\xfa\x27\xb3\x22\x48\x6a\x1c\x0e\xf7\x6d\xe0\x91\xb4\x0b\x34\x88\xd8\xdb\x01\x35\xa4\x85\xfa\xb9\x3e\x3f\x27\x61\xca\x20\xa5\xa8\x41\x02\x29\x3a\x70\x74\xe2\x8f\xd8\xe6\x16\x55\x2f\x5a\xde\xf0\xd0\xe7\xb0\x26\x64\x05\xe7\x50\x17\xc9\x9a\x3c\xab\x57\x22\xa7\x70\xb9\xab\xd6\xf4\xfa\x76\x7d\xc0\x83\x2a\x9b\x1f\xb6\x0e\x30\x3f\x82\x1d\x30\xb8\xaa\x1b\x92\xb6\xfd\xdb\x25\xc9\xe8\x6d\x28\xbb\x32\x30\x28\x2d\xe7\xf2\xae\xc2\xb0\x0a\x2b\xc2\x1e\xdb\xd8\xe2\x63\xf0\x9a\x1d\x3c\x8a\x5d\x6d\x9a\xdc\x27\x55\x85\xf2\xa5\x5e\xf9\x4e\xe1\xb9\x31\x08\xd6\x3c\xe5\x6f\xc1\x1c\xe0\xf7\xaa\xfb\x90\xf1\x72\x18\x1f\xdc\xa7\xe2\x18\x1b\x70\xed\x7e\x05\x16\x3b\x77\x1a\xd6\xfc\xa1\x5a\xcc\x1e\x41\xac\x0d\x2b\x05\xd7\xb2\xff\x18\xdc\x81\xfe\x63\x74\xa7\xfb\xcf\xe1\xfa\x85\xdf\xdb\xb6\x0c\xb7\xcd\xe9\xb3\xa9\x42\xf7\x9c\x55\x8b\xd0\x4d\x66\xae\x3f\x47\x4e\xe3\x15\x9d\xaa\xcf\xbf\x0a\x6b\x38\x3c\x0f\x3f\x4e\x35\xd1\xfe\x99\xb6\x9d\xf9\x36\x68\xc1\x12\xef\x1b\x4e\xe3\x32\x98\x83\xa5\xdb\xf1\x5b\xbc\x08\x32\x85\xdd\xc5\x7a\x98\xf8\x0c\x3b\x35\xbe\xf0\x95\x7a\x1c\x5d\xa9\xc3\x23\x62\xaf\x83\xe8\x80\xf0\x4e\xb5\xd7\x81\x1d\x33\x42\x83\x04\x5c\x6d\x4e\x74\x6f\x77\x75\xe5\x62\x84\x1e\xd6\x9d\xe3\x40\x07\x75\x6d\x66\x66\x9b\xa9\x99\x03\x2c\xfc\xd0\x69\x47\xfc\x68\x1f\xac\xe4\x74\xcb\xb2\x1d\x25\xe3\xb2\x6b\x84\xe7\xcd\x0e\xf2\x78\xca\xb3\x0b\xae\xc6\x9b\x26\x6b\x5f\x43\x67\xa5\xcf\xe0\xfd\x74\xd0\x7d\xfa\x7e\xfd\x2b\x93\x63\xfb\xd8\xb9\x12\x2b\x09\x33\x45\x08\xcd\xbc\x64\x73\x8e\xbf\xc9\x7f\x2c\x72\x39\xd2\x2e\x54\xcb\xcd\xb5\x35\x9d\x7f\x31\x3b\xa8\xfc\xca\x48\xf0\x0f\x1c\x1e\x8e\x82\xd7\xb3\xa9\xe3\x9d\xad\xd9\xe0\xf6\x9d\xa7\xc9\x27\x60\xd3\x1a\x24\xcf\xf4\xd4\xa3\xa9\x56\x60\x6e\xb2\x75\x76\xfd\xef\x1a\x8a\x2d\x3a\x40\x89\x04\xf5\x1b\x41\x62\x44\x59\xab\x41\xe4\x90\x0e\x1f\xff\x2b\x90\xc4\xd1\xaf\xfc\x16\xdf\xcd\xa9\xfc\x38\xe6\x54\x82\x45\xdb\x7b\xed\x3c\x67\x80\x21\x7c\xc4\x8d\xcb\x33\xfe\x51\xb9\xdd\xbe\x74\xda\x6a\x6c\x5d\xfb\x7e\xfd\x93\xe3\x67\x2f\x87\xb0\x53\x94\x42\x8b\xc6\x94\x45\x0b\x26\xc9\x88\x58\x3d\xa7\xa7\xc2\x06\xcf\x01\xe4\xce\x49\xc8\x46\xdc\x47\x20\x65\x4b\x0e\x2a\x10\x3b\xb3\x11\x46\x17\xb1\x3c\xb9\x68\xd7\x76\x01\x4f\x3f\xad\xb6\x0b\x9a\x7e\x70\xee\x5e\xb9\x48\xa7\x21\x5b\x23\x0e\x41\xfb\xc6\x3d\x3c\xb3\xb6\xce\xa6\xa9\xf1\x94\x25\x8b\xa0\x97\xc6\xf8\xb1\x0f\x2b\x58\xc0\x3d\x3b\xc6\x35\xe1\xe7\x40\x07\xa0\x18\xb2\xc2\xc2\xd1\xa1\x60\x48\x07\x70\x3e\xa5\x8a\xa3\x02\x1a\x96\xb7\x2c\xe0\x30\xdb\xe9\x79\x89\xea\xae\x96\x0e\xa5\xa2\x82\x8c\xf0\xda\x59\x1d\x66\xc9\xca\xc0\xc1\xec\xcb\xe2\xdc\x0c\x74\x9d\xf6\xc4\x4f\xe1\xe0\xa2\xeb\x36\xad\xe6\x10\xb8\xfe\x0b\x75\xc0\xef\xa7\x0d\x67\x7b\x43\xa3\x83\xe1\x6f\x0a\x56\x74\xef\x5e\xbc\xa7\x6b\x92\xc5\xab\x11\xbc\xde\x54\xa9\x13\x2b\x18\xf4\xfa\x43\x08\x6b\x0f\xe3\xaa\x51\xda\x1a\x1c\xc8\x1f\xf4\x5b\xc4\xaf\xec\x5e\xdb\x90\x45\x01\x64\xc8\x67\x69\xa9\x73\x21\x9a\x2d\x1b\xba\x7d\xce\xc4\x21\x03\x0b\xd6\x20\x2d\xb9\x2d\x8c\x4e\xbd\xfd\xd8\xd2\x5e\xcf\x7b\xa8\xc2\x68\xfc\x79\x16\x40\xf3\x9b\x1a\xfa\xba\x3c\x91\xb3\xf7\xbe\xc8\x3d\xc8\x41\x5f\x83\xc7\x38\x6c\xb1\x79\x07\xfb\xb5\x19\x6b\x85\xc3\x16\x6a\x96\x60\x4e\xe4\x61\x7a\x36\xe2\x84\x3c\xa3\x85\x9b\x4a\x6e\x6b\x07\x4e\x28\x04\xa5\x6a\x82\x3b\x72\x7a\x0c\xc1\x6e\x30\x41\x1f\xce\x29\xcb\xfa\x3d\xc9\xcf\x39\xb2\xd0\x04\xb7\xa9\x4b\x40\xe6\x1c\x9f\x6c\xb5\x80\x33\x0b\x3f\xcd\xbf\x4e\x23\x9e\xd6\x96\x4d\xcc\xc5\x16\xd5\x9b\xf4\xe5\x66\x16\x82\xb2\xb8\x13\xc8\x79\x55\x74\xbb\xf3\x13\x81\x6a\x96\xb8\xc9\xe3\x13\x9e\x71\x4b\x30\x27\x3f\xc7\x6f\x54\x86\x4e\x7d\x9a\x4b\x37\x0a\x11\xbd\xd3\xda\xe0\xd0\xca\xa5\xb9\x0c\xfd\xf6\xe8\x3b\xb6\x92\x5a\x2e\x6d\x56\xf4\xaf\x7d\x56\xf4\x6c\xdf\x4b\x30\xee\xf5\x0d\x6a\xf5\xa2\x78\x5f\x5b\x7f\xcc\x60\x08\xf7\xda\x66\x79\xef\x4e\xf8\xac\x06\xa7\x5f\x8f\x52\xce\xc7\x6d\xca\xec\xe4\x85\x92\x5f\x82\x07\x3c\x82\x17\x42\x5c\xe3\xa2\x8a\x93\xf6\x91\xa6\xde\xbf\xdc\xa1\xcd\xc4\xa9\xf1\x15\x43\x51\x4e\xf2\xb0\x39\x4d\x7d\x3f\xd1\x5a\xf4\x6e\x8a\x3e\x10\x73\xfd\x17\xf5\xab\x0e\x06\xf9\x69\x83\x9b\xc8\xc3\xfd\x4b\x90\x2e\xfc\x0f\x0f\xcf\xe5\xb3\xe3\x95\x90\x5f\x45\x53\x60\x80\xb1\x9b\xa6\x2e\xf0\xe4\xea\x06\xbb\x85\x93\x99\x74\xd9\x2a\x58\x54\x6c\x56\xfa\x72\xc3\xd2\x66\x7b\x57\x56\x9f\x5d\xf8\xc6\xe5\xcc\x47\x20\x7b\x99\xd9\x37\x0f\x1c\xc9\x86\x5f\x5b\x9b\x7c\x63\x63\xc2\x79\xf7\x77\x75\x5d\xd2\xde\xcf\x56\xb4\xd3\xb2\x25\x1e\xb9\xc4\xfb\x96\x08\xd5\xc8\xfd\x73\xe5\x38\x7b\x57\xa9\xfe\xf9\x75\x9b\x7e\xcd\x2e\x79\xf0\xfd\x40\x42\xf1\xaf\xd7\xf4\x81\xce\x17\xb4\x72\xfc\xfb\x82\x7e\x03\x56\x7e\xe5\xf4\x0b\x2f\xd6\xcb\xaf\x2b\xae\x0c\x4d\xae\xd6\x25\x92\x4c\xb5\x89\x8a\xf0\xcf\x2d\xfd\x60\x06\xf4\x0e\x87\xf6\x11\x65\xcf\xf9\xb5\x11\xed\xaf\xd5\x0c\xe6\xd4\x97\xbc\x42\x22\xdd\xca\xe7\x8b\xba\x6f\xf8\x23\xbf\x02\xcb\x9f\xf2\x6c\xcb\x5f\xf8\xc5\x7c\xfe\x72\x65\xcc\x5b\x6d\x11\x83\xd0\x06\x89\xb9\xbe\x90\xf6\x4c\xab\x43\xd9\x9a\x4c\x5a\xc3\x70\xe4\x53\x93\x5d\xcd\xed\x98\xec\x80\xe4\xab\x1d\x91\x0e\x87\x31\x9b\x37\xf5\x06\x69\x88\x7f\xf6\xcf\xdb\xda\x57\x04\x4f\xfb\xeb\x5f\xcb\xce\xb0\x47\xd6\x9f\xfb\xeb\x8f\x09\x6f\xce\x56\xe3\x4b\x97\x88\xf9\x6e\x9c\xaf\xd6\x8c\x03\x6f\x39\xbd\x78\x51\x6d\x7a\x95\xc1\x5f\x8c\x22\x28\x87\xf5\x12\xeb\x4e\xdf\x89\xd7\x33\x0b\xfd\xb4\xdc\xf3\x05\x5d\xa5\x78\x69\xdc\xb1\xfa\xa5\x7b\x01\xf8\xcb\x7f\xfd\x57\x7e\x5c\xa1\x78\x6f\xfe\xed\xdf\x92\xe7\x0f\xbf\x4a\xcc\x3b\x24\xa5\x4c\x8c\x87\xa7\xcb\xfc\x1d\xcc\xad\x04\xbb\xce\xde\x3d\x8e\xc0\x39\x3c\x9c\x3d\x9e\xd9\x80\xe4\x54\x5e\xda\x3e\xf0\xf2\xff\x02\x00\x00\xff\xff\x32\x79\x97\xab\x61\xb6\x00\x00") +var _confLocaleLocale_esEsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\xbd\xcd\x8e\x1c\x47\x92\x27\x7e\x27\xc0\x77\x08\x71\x40\x48\x02\x8a\x29\x48\xfa\x7f\x2c\x04\xa5\x7a\x8b\xc5\x92\xa8\x05\x3f\x6a\x58\x45\x0d\x66\x05\x21\x15\x99\xe1\x95\x15\x62\x64\x44\x76\x78\x44\x91\xc9\xc1\x1c\xf6\xbe\x0f\xb0\xd8\x1b\x8f\x3a\xf0\x30\xe8\x9b\x2e\x0d\xa8\xde\x64\x9f\x64\xed\x67\x66\xfe\x15\x11\x99\x45\x75\xf7\x40\x80\x58\x19\x6e\xfe\x65\x6e\x6e\x6e\x66\x6e\x66\x9e\x6f\xb7\x8b\xc2\xd8\xd5\xfc\x65\x9d\x59\xd3\x5e\x97\xab\xb2\xc9\x0a\x93\x7d\x57\x76\x59\xde\x77\x4d\x96\x57\xcd\x2f\x79\xd1\x64\xbb\xcc\x96\x75\xb6\x6a\x36\xdb\xaa\x5c\xe5\x04\x55\x1b\x7b\xf7\xce\xdd\x3b\x57\xcd\xc6\xcc\xbf\xaf\x51\xef\xee\x9d\x22\xb7\x57\xcb\x26\x6f\x8b\xf9\x59\x5e\x9b\x0a\x0d\xad\x9a\xba\x6b\x9b\xea\xee\x1d\xf3\x66\x5b\x35\xad\x99\x9f\xf2\xbf\x79\x4b\x55\x4d\xb5\x9d\x1f\xef\xfa\x22\xbf\x7b\xc7\x96\xeb\x7a\x51\xd6\xd2\x52\xde\xd2\x58\x6c\x79\xf3\x97\x5a\x0b\x9a\xbe\x9b\x9f\x98\xb6\x1d\x15\xf4\xdb\xf9\x79\x6f\x57\x6d\xb9\x5d\xc9\xd7\xd6\xac\x4b\xdb\x99\x76\xfe\x82\xff\x68\x69\x50\xaf\xcd\xd2\x96\x9d\x99\x9f\xdd\xbc\x5b\x97\x75\x9e\xfd\x8b\x59\xde\xbd\x73\x6d\x5a\x4b\x73\x98\xff\x80\x7f\xb9\xe6\x36\x5f\x7b\x98\xbb\x77\x3a\x43\x13\xcd\x51\xab\xca\xeb\xae\xac\x2a\xfa\x46\x7f\xad\x7b\x40\x7d\x5f\x94\xcd\x86\x3e\xac\x5a\x43\x20\x8b\xda\xbc\x9e\x9f\xd0\x9f\xed\x6c\x36\xbb\x7b\xa7\x27\x34\x2e\xb6\x6d\x73\x59\x56\x66\x91\xd7\xc5\x62\x83\x59\x9f\x99\x96\x3e\x00\x21\xbd\xed\xf3\xb6\x04\x42\x37\x37\xef\xac\xcc\xc3\x14\x34\xf7\x45\x6e\xa9\x65\x43\xbd\x5d\x12\x86\x09\xe5\x84\xec\x06\x28\x46\x8b\x75\x4e\x68\x7e\xd6\x6c\x96\xad\x89\x1a\x21\xac\x6e\xf2\xb2\x9a\x9f\x34\x6d\x6b\x9a\xcc\x54\x66\xd5\xb5\x34\x9b\x72\xd5\x60\x42\xd6\xbe\x6e\x68\x2d\x4e\xb0\x04\xb9\x35\x37\xff\x91\x03\x41\x8b\x6e\xb7\xc5\x92\xad\x5b\x63\xb9\xb1\xba\x37\xd7\x04\xbf\xca\xb7\xdd\xea\x2a\x9f\x9f\xc8\xbf\xe8\xb9\x35\xdb\x86\x70\xd7\xb4\x3b\xc2\xa7\xfe\x89\x5e\x9b\x76\x9d\xd7\xe5\xdb\xbc\x03\x0a\x9f\xeb\x0f\x5d\x81\x4d\xd9\xb6\x4d\x3b\x7f\xca\xff\xdc\xbd\x43\xc8\x59\xa0\x99\xf9\x33\xf4\x92\xb5\x71\x33\x28\xdb\x94\xeb\x16\x78\x46\x71\x9e\x3d\xc5\x2f\x6d\x08\xa5\x97\x4d\xfb\x4a\x6b\x7e\x4b\x7f\xd2\x68\xab\xec\xc5\xb0\x09\x1a\x8d\x56\x6f\x06\x43\xc9\x6b\x5a\x2e\x2e\x3f\x2e\x36\x65\x0d\x82\x20\x12\x0a\x50\x42\xc4\x39\xca\x16\x5b\x50\x6c\xa0\xdb\xdc\x57\xd0\xc6\xf2\xd5\xaa\xe9\xeb\x6e\x61\x4d\xd7\x95\xf5\xda\x02\xad\x97\xe5\xba\x6f\xb5\x1d\x54\xaa\xf2\x6c\xd5\xd3\x0a\x82\xa0\xf7\x80\xdd\xbd\xb3\x6b\x7a\x4f\x20\xf3\x8b\x3e\xdb\x32\x69\xe8\x77\x5f\x8d\x0a\x56\xa1\x26\x8f\x80\x67\x6b\x17\x97\xc6\x14\xf3\x6f\xe9\x7f\xbc\x76\x4d\x87\x0d\x43\xcd\x6e\xfb\xaa\x22\x4c\xff\xb9\x37\xb6\xb3\xf3\x33\xfa\x45\x98\x92\x5f\x77\xef\x94\xd6\xd2\x5f\xb4\xe8\xab\x92\x28\x4c\x2a\x60\xc5\xeb\x15\xcd\xf9\x84\xff\xc1\x8e\xbc\x7b\xe7\x47\x4b\x74\xbc\xba\xfa\x09\x13\xc0\x1f\xf3\x87\xb4\xbd\x94\xb2\xf7\x51\x03\xe8\x73\xfe\xd2\x51\x24\x77\x15\xf5\x44\xdd\x34\x85\x99\x9f\xdc\xfc\xa5\x28\xd7\x4c\xcf\x3f\x96\xb5\xed\xf2\xaa\xa2\x4e\xf4\x2f\x02\xc7\xbf\x6e\xa2\x5d\xd9\x11\x6a\xce\x72\xdb\x38\xac\x96\x51\x79\xb6\x6d\xda\x6c\xdb\x96\x1b\xd3\xe6\xd9\xb5\x79\x4b\x6c\xa7\x59\xbd\xa2\x4d\x07\x7e\x42\x23\x39\x2f\x33\x9a\xf4\xcd\xbb\xcc\xfc\x62\x56\x7d\x47\x5b\xb0\xc9\xbe\x6b\xd6\x96\x36\x0d\xff\xfd\x88\xa1\x8f\xb8\x99\xcb\xfc\x9a\xfe\x5f\x99\x3c\xfb\x3a\xcf\xba\xbc\x5d\x9b\x6e\x7e\x6f\xb1\xa4\x9d\xfe\xea\x5e\x76\xd5\x9a\xcb\xf9\xbd\xfb\xf6\xde\x37\x68\x30\xb7\xd9\x96\x38\x62\x6e\xbf\xfe\x2c\xff\x26\x23\xa6\x20\x4b\xbe\xca\x37\x4b\x30\xac\x3a\x2f\xf2\xcc\xd4\x0c\x99\x6d\x85\x8d\x7c\x04\x9c\xfd\xb9\x27\xe6\xb3\x28\x96\xc2\x66\x79\x20\xfc\xd1\xd0\x4e\xee\x89\x1d\x2d\x73\xd9\x85\x45\xde\xd1\x74\x9f\xee\xce\xff\xf9\xc9\x51\x76\xd6\xd8\x8e\xf6\x27\xff\x4d\xff\xa3\x16\xbe\xcc\x9a\xec\xa2\x7c\xf4\x90\xd6\x81\xda\x12\x0c\x9d\x24\x04\x82\x46\x92\xc6\x04\x12\x9b\xfd\xa2\xdc\x36\x13\xc5\x57\xd4\xcb\xfc\x31\xfd\x6f\xb8\x86\xd3\xac\x83\x5a\x1b\xb0\xa1\x2a\x9f\xe8\x51\x97\xe1\xcc\xa3\xb7\x27\xfe\x59\xae\x0c\xb1\xa7\x6c\xd3\x10\xcd\x64\xdf\x3f\x7b\xf6\xfc\xd1\x43\xd0\x37\xef\x98\xd1\x2c\x88\xe0\xf2\x15\x31\x71\xc2\x70\xdf\x5d\xfe\x97\xc5\xda\xd4\xb4\xd6\xd5\x62\x55\xd2\x12\xd0\xa2\x33\x92\x08\x11\xd6\x56\xc4\x5d\x89\xb8\x9e\x36\xb4\xae\xe7\xe7\x4f\x30\xf2\xee\x6a\xfe\xa2\xe7\x1d\xf8\xe7\x0a\x98\xd7\xe1\xe0\x1b\xb3\x0f\x50\x75\x79\xdd\xb8\xde\x53\xf4\x8f\x70\x4d\x87\xce\x82\x8e\x82\x6e\x87\x15\xe4\xc6\x9f\xe4\x59\x8b\xb6\xf2\xdb\x6a\xd3\xde\xcc\xb6\xbd\xa1\x52\xd0\x44\x9b\x5d\xe7\xab\x9b\xf7\xb9\xb6\x59\xd6\xd7\x79\x55\x16\xb4\x90\x0e\xab\xa7\x15\x55\xd8\x87\xd8\x41\x83\x38\x54\x81\x93\xac\xa2\xa2\x08\x5b\xf7\x66\xf7\xb2\xba\xcc\xee\x3d\xb8\x47\xdd\xd4\xcd\x42\x38\x1b\x0e\xa1\xa2\xb4\xf9\x92\x0e\x24\x39\x1f\x5b\xe1\xdc\xcf\x5c\x7b\x44\x9a\x57\xf9\x92\x56\x09\xe3\x24\x1c\x29\x54\x23\x67\x3e\x8e\x36\x26\x55\xe1\x6d\x29\x77\x2c\x9a\x36\x41\x93\x63\xa6\x4a\x40\x4f\x72\x91\x00\x84\x86\x46\x55\xf7\xe2\xe8\xee\x1d\xb7\xe8\x93\xa4\xfe\x9d\x14\xb2\xa4\x42\x3b\x8a\xb8\x33\xc9\x31\x63\xe2\x3c\x56\x61\x45\x18\xb8\x82\x04\x02\xad\xb3\xfc\xcf\xfd\xcd\x7b\xcc\x38\xa0\xbe\xeb\xd3\x63\xe4\x28\xfb\xfd\x5d\x5e\x75\x38\xb0\x57\xc4\x24\x9b\x8f\x84\x11\x2e\x3c\xa5\x31\x55\x45\xe7\x1a\x1a\x79\x91\x97\x6f\xb3\x4f\x5e\x34\x4d\xf7\x69\x04\xee\x7a\xbe\x20\x72\xb5\xbc\x76\x51\x35\xfc\xc0\xf6\xb0\x4e\xfc\xa2\xe5\x27\x71\xa3\x2d\xf2\xf6\xe6\x5d\xad\xac\x85\x46\x58\xb6\x74\xc8\xa3\x02\x38\x72\x4f\x22\x10\x76\xee\xa9\xb0\xba\x96\x65\x86\xcc\xef\x63\x57\xee\x3a\x26\x1a\x73\xe2\x47\x6d\x56\x24\x49\xd1\xe8\x85\x90\xe8\x74\x33\xb6\x11\xa2\xe6\x49\xbd\xc8\x6f\xde\xbf\x1d\x9e\xb7\x84\x03\xe3\x7a\x02\xde\xc1\x8c\x48\x12\x22\xb9\xed\x51\x83\x55\x6d\xdc\x6f\xdf\xa1\x85\x08\x79\x49\x23\x96\x0d\x63\xb3\x97\x2f\x9e\x58\xd9\xc5\xab\xaa\xa9\xa9\x1d\xb0\xe1\xf3\xf3\xc7\xbc\x9d\xaf\x16\xf4\xab\xa3\xc3\xcb\xb4\x1d\x36\xf4\xe3\xf0\xd1\xb5\xf8\xec\xe6\x37\x62\xfc\x8c\xe4\xad\x80\xd1\x5f\xb6\x17\xe1\xb5\x90\xb6\x8e\xb2\xe2\xe6\xd7\x5f\x4c\xd5\x00\x6b\x60\xe6\xab\x46\xba\x24\x3a\xa7\xad\x52\x5e\xe7\xae\xcb\xab\xae\xdb\x26\x7d\x3e\xbe\xb8\x38\x8b\x3e\x7b\x5a\x91\x52\x2c\x42\x95\xd1\xa1\x4a\x6b\xb1\xea\x49\x48\xa2\xa5\x01\xc6\xf2\x40\x67\x33\x21\xb4\xbe\xad\xe6\x34\x55\xa5\xc3\x7c\x48\x87\x54\xfc\x07\x51\x84\x81\x7d\x86\xff\x9d\xd3\x22\x10\x64\xb5\xee\x6b\x6c\x7e\x96\xfc\x6c\x22\xfa\x59\xde\x3f\xcd\x16\x7b\x7c\xdf\x06\x7a\xbe\x5d\x71\xa9\x4a\x90\xfb\x0e\x94\x2a\x3b\x8f\x94\x02\x11\x33\x69\x4d\x36\x84\x1e\x3e\x3c\xce\x9f\x5e\x9c\x65\x72\x82\xf0\xc7\xcb\xb6\xd9\xcc\x1f\x19\x5b\x98\xe8\x83\x67\xc1\x66\x43\xec\xb1\x06\x11\x53\xc3\xdc\xef\x51\xf6\xe2\xdb\x93\xec\xff\xfd\xf2\x8b\x2f\x66\xd9\x19\xf3\x01\x5a\xc7\xcc\x36\x15\xed\x53\x00\x82\xeb\x30\xc5\x87\xb3\x61\x2c\xea\x1e\x11\xc3\x15\xf6\x21\xeb\x43\x42\xe3\x86\x98\x66\x76\x4f\x78\xc1\xbd\xec\x6b\xee\xeb\xbf\x9a\x37\x39\x09\xf5\x66\x46\x7b\xe4\x9b\x19\xa4\x43\x12\xc0\x5a\xd9\x3f\xe9\xd0\x54\x9c\x3e\x4d\xc4\x69\x05\x9f\x3a\x1a\x75\x9b\x68\x13\x41\x09\x59\xf0\xd1\xd6\x6e\xe6\x8f\x3d\x73\x25\x62\x38\x91\x8f\x8a\x63\x19\x72\xd0\x56\x78\x35\x20\xd5\x5d\xee\x92\x6a\x36\x7b\xd6\x88\x66\x10\xc4\x4d\xbf\x1e\xb4\x46\x06\xb2\x23\x96\xca\xec\x15\x0e\xce\xdd\x16\xd9\x65\xcf\xa9\x2f\xeb\xd7\x96\xf8\x67\x73\x79\x59\x95\xb5\x91\xe3\xf4\x58\xf7\x08\x1f\xd8\x38\x59\xe9\x14\xa0\xe6\xcc\x1b\x21\xe0\x18\x96\x76\xc9\x96\x94\xb0\x47\x61\x63\x01\x7f\x8f\x9e\x91\xc4\xb6\xaa\x7a\xeb\xb6\x0c\x37\x83\x2d\xdb\x36\x45\xbf\x52\xbe\xda\x45\x6c\x70\xd5\xb7\x90\xf6\xac\x91\x8d\xcc\x2c\xaf\x6a\x56\x79\xc5\x74\x00\x3e\xa3\x07\x18\xe9\x07\xd7\x39\xa1\x64\xd0\xa5\x27\xd3\xef\xb4\x7c\x5c\x63\x3c\x54\x07\x0b\xd6\xde\xe7\x15\x0b\x65\x59\x43\xab\x9a\x5d\xf6\x4c\x0c\x44\xb5\x16\xbb\x84\xce\x82\x22\x9f\x65\x81\x6f\x4b\x3d\x5e\x85\xa5\x61\xcd\x19\xc7\xf0\x3a\x47\x39\x76\x2b\x60\x94\xd3\xda\x8c\x91\x40\x2c\xaa\x30\xd8\xe5\x0d\x26\xb9\x69\x58\x15\x81\x90\x5a\x69\x63\x84\x1b\xa2\x7f\xa2\x1a\x62\xa4\xd4\x4e\x34\xe5\xe4\xcc\x8e\x86\x7f\x4c\xfa\xf9\x83\x40\x39\x53\xe0\xe3\x39\x43\xa9\x7f\xe0\xcf\x77\x10\xae\x8e\xf3\x08\xdb\xae\xe1\xf1\x24\x27\xf4\xb6\x29\x30\x4e\x91\x02\x44\x02\xb0\xac\x32\xe6\xe0\x33\xa6\xe6\x3e\x9d\xee\xe8\x28\x07\x64\xee\xd4\xc8\x14\x44\x47\xf4\xc2\x89\xc0\x2c\x06\x49\x0d\x85\x10\xd6\x87\x71\x0c\x86\xea\x46\x3a\x53\xb1\x9a\x54\x59\x35\x1b\x2c\xae\x4b\xd2\xc1\x23\xb2\x15\x83\x84\x10\x3d\xeb\xf7\x59\xb3\xac\xca\x75\x2e\xa7\x18\x77\x40\x9a\x7f\xa6\xea\xbe\x9d\x6e\x50\x87\x7a\x0e\xb4\x24\x0b\x5a\x35\xba\xd2\xe0\x58\x35\xe9\x20\xad\x93\xf8\xed\x11\x43\x5e\x97\x38\x5a\x59\x45\xc8\x6b\x30\x90\x0d\x68\x1b\xed\x08\x36\xa5\x0e\x36\xb5\xab\xc7\x07\x45\x43\x7f\x7e\xe6\x26\x3c\x73\x8a\xa9\xaa\x84\xa2\x3f\x3c\x03\xab\x93\xc3\x9b\x8f\xf1\x5b\x85\xb3\x2c\xbf\x6a\x68\xb6\x9b\xd2\x6e\x68\x89\xc3\x72\xf3\x29\x46\xfc\x6a\x9d\x67\xdf\x3f\x9a\x7f\x4e\xf8\xa1\x1f\xbc\xd2\xa4\x5a\x5d\x13\xab\x5b\x97\x22\x8a\x0c\x5a\xa3\x35\xd9\xdc\xbc\x23\xa5\x33\x77\x3b\x53\x46\xb9\x8f\xe9\x80\x12\xfc\xc8\x8e\xe3\xb6\x5c\xcd\x7d\xa6\x8d\x81\x24\x99\xa8\x22\xca\x58\x93\x52\x66\xaa\x6d\x96\xc0\x49\x1b\x07\x8c\x24\xaa\x80\x2e\xd6\x24\xcd\x38\x2d\xb4\x55\x99\x92\x96\xaf\x5b\xac\xcb\x6e\x71\x09\xd6\x4f\x3a\x37\x01\xc2\x20\x06\x2e\xb6\x14\x3a\xa3\xa3\x84\x75\xca\x8f\x09\xec\xe3\xaf\xb2\xfb\xd7\x4e\xed\xf8\x12\x3c\x7c\x41\x3b\xbb\xac\x40\xfd\x50\xe7\xaf\xd5\xd4\x04\x99\xd7\x36\x90\x2e\x72\xa7\x31\xc4\xca\x28\x96\x19\xac\x04\xcd\x2f\x89\x34\xb0\x56\xcd\x25\x94\x7c\x88\xbb\x74\xb2\x66\xf7\x89\xca\x9e\x3d\x07\x66\x7d\x93\xf4\x75\xdd\x2c\xfb\xb2\x2a\x66\x98\x93\xe8\x16\xa4\x59\x28\xed\xa8\x18\x3e\x5e\x9a\x54\xc9\xa8\x99\xb8\xf8\x84\x25\x69\x44\xa6\xe3\x1a\x0b\x32\xaf\x53\x80\xa4\x85\xd6\xcb\x89\xb1\x08\x4c\xcd\x50\xc5\x9b\x77\xd8\xdb\xd2\x8e\x17\x45\x81\x17\x3a\x9e\x57\x57\xb1\x34\x2a\x22\xd5\x40\x69\x4f\x05\x27\x1d\x5d\x44\xc1\xc4\xd2\x88\x6b\x53\xf3\x36\x7b\xf0\x0d\xfd\x9f\x70\x9f\x5f\x1b\x39\x74\xd7\x6e\xd1\x4e\x61\x86\xc2\xa2\xa9\x2c\x3d\xd6\x38\xd3\x79\x26\x7b\x6e\x2f\xde\xa6\x36\x9b\x9e\xe7\xa3\x99\x3b\x12\xb3\x3d\x64\x6c\x3b\x7f\x58\x9a\xfa\xda\xd4\x74\x12\x7f\x94\x91\xf0\x97\x83\x37\x98\x7a\x45\xec\x82\x99\x0a\xb5\x09\x6c\x5c\xe5\x3b\xe2\x0a\x44\x0b\xc4\x14\xd4\x80\x41\x62\x2d\xed\xcc\x9b\x5f\xdb\x8e\x8e\x09\x3e\xb3\x6e\xde\xd3\xc2\x19\x16\xf7\x7e\x84\x21\xf6\x27\x52\xe4\x45\xc5\x69\xaa\x02\xc2\xf2\x70\x57\x65\xcd\x94\x00\x15\x14\x7e\x57\x31\xd9\x44\xf6\x75\x49\xcb\xb5\xf0\xc6\xdd\x05\xab\x9f\x6f\xba\xf9\x89\xda\x3e\x78\x23\xf0\x27\x39\x51\x1e\x39\x48\x12\x67\x76\x4c\x39\x76\xfe\xb4\xb4\xb1\x26\x61\xb1\x87\x2b\xda\x1b\x0d\x0e\xaa\x6b\xa3\x50\x31\x04\xed\x64\x5f\x0e\x78\x6a\x8a\x14\x33\x69\xe9\xf9\xc0\x84\x47\x65\x62\x77\x94\x62\x31\x3e\xd2\x77\x66\xe3\x6c\xa2\x06\xbb\xbf\xcf\x56\x2f\xb1\x85\xcd\x68\x95\xd9\xe2\x26\x1d\x9f\xd6\xa4\xf8\xa5\xfa\x18\x63\x55\xad\xd6\x3f\xa9\xf5\x6b\xfe\x62\x08\x40\x0c\x11\xd6\xb2\x60\x0a\x5e\xa8\xa1\x50\x4c\xc2\xcc\x9a\xc5\x38\x79\xa2\x96\x41\x2f\x1d\x5e\x99\x2d\x24\xca\x8d\x5d\xcf\x7f\xff\xeb\xbf\x92\x26\x46\x84\x01\x93\x87\x67\xe6\x7f\x22\xd5\x53\x0c\xe2\xce\xec\x4d\xca\xa7\x6d\xc0\x0a\x16\x7f\xac\x95\xd3\xba\xba\x79\xf7\x96\x78\xdb\x47\x43\x39\x41\x8c\xd5\xa4\xba\xcf\x9f\x40\x32\xa9\x3b\x9c\x55\x47\x89\x11\x40\x36\x66\x64\x23\x20\xe9\x24\xf3\xe6\x9d\x23\x5e\xfb\x1c\xea\x0b\x4c\x2a\x23\xf9\x01\x04\x41\x18\x2b\xc7\x12\x0d\x46\x0d\xc6\x1c\x75\x3c\xcb\x9e\x44\x4a\x0d\x8b\xb8\xb1\xb0\x0c\xcd\x3a\x19\x55\x9d\x0e\xcb\xb2\x68\xb0\x31\x9b\x25\xda\x36\xb4\x5a\xb4\x47\x7e\xa5\x6d\xbf\x21\xa9\x9c\xd4\x82\x35\xf1\x1e\x7f\x64\x3c\x36\x59\x53\x91\x40\x0c\x53\xfb\xa6\x8c\xcd\x14\x02\x6b\x22\xd8\xdf\xff\xfa\x98\x76\xa3\x07\xef\xfa\x18\xfc\x4f\xfe\x32\x82\x98\xdb\x6b\x82\x7d\xa6\xba\x75\xba\x0a\x34\xf2\x9b\xf7\x2c\x98\x19\x39\x94\x67\xfe\x1c\x13\x59\x8d\x45\x7f\x60\xc2\xad\xc8\xcb\x5a\x6c\xf3\x6e\xcf\x8a\xe5\x27\xc2\x87\x05\x9f\x20\xe6\x71\x5d\x62\x54\x79\xf6\xf5\xf2\x9b\xfb\xf6\xeb\xcf\x96\xdf\x0c\xd6\x67\xb3\x6d\x7b\xb3\xcc\x31\xee\x25\xb1\x56\xf3\x0b\xb3\x2e\x83\x19\x88\xd5\x12\xa2\x08\xcd\x81\x44\x32\x16\x5a\xee\x17\x19\x06\xe8\xb4\x50\x5c\xfa\x18\x35\x0d\xd1\xd0\xd8\x52\x40\xf5\x23\x49\xc5\x89\x4d\x5d\xe3\xc9\x9f\x09\xd7\x38\xc2\x55\x11\xd8\x59\xc7\x59\x1a\x35\xb2\x01\x5d\x05\x11\xdf\x18\xb7\x7e\xa7\x30\x36\xaa\x92\x34\xab\x69\x2a\x05\x0d\xb0\x64\x45\x7d\xc9\xa1\xc1\x84\x4b\x18\xb9\x79\x2f\xbc\x08\x48\x65\x3e\xcd\xad\x0b\xda\x40\xa7\x05\x09\x05\xb6\xc4\xf4\x2f\xa1\x7d\xb0\xa9\x3a\xc1\x9a\xb1\x5b\x18\x98\xbf\x24\xda\xa8\x49\xe8\x01\x69\x5d\xe5\x76\xd1\xd7\xba\x04\xa6\x10\xea\x7d\x4c\x5c\x8a\x8f\x64\x26\x8a\x11\x6f\xcd\x3e\xf1\x8b\xf2\xa9\x1c\x61\xd8\x4c\x6e\x19\xb1\x93\xce\x4b\x7c\xa7\xb6\xa1\x06\x95\x4b\x70\xfb\xbe\xde\xbb\xe4\xc1\x72\x63\xf9\x9c\x60\x23\x07\xb1\xb9\x8d\xec\x17\xa6\x97\x48\x9c\x38\xa2\x86\xdf\x66\x2b\xc2\xcf\x2b\x55\xc5\xfc\x32\x67\xcb\xa6\x13\x83\x05\xe3\xd9\x4d\xc7\x83\x8b\x6d\x8c\x29\x80\x31\x0a\x4e\xbf\x67\x8e\x29\x7e\x9d\x4d\x81\x25\x20\xcb\xfc\xaa\x33\xb0\x73\x7c\x80\x2e\xaf\x28\xa2\x93\x9f\xeb\x15\xb0\x89\xd4\x74\x12\x87\x8d\x04\x6a\xc3\x68\x31\xe8\xce\x8d\x79\x9d\xf3\xa0\xe3\x31\x7f\xd2\x9a\x4f\x75\xd4\x7c\x3e\x71\x57\x4e\xb5\x68\xd1\x07\x71\xa2\x15\x91\x16\x35\xda\xb8\x63\x3d\xbd\x29\xb3\x31\x0b\x78\xe1\xaa\xc0\x40\xd1\xa7\xa0\x4e\x78\xe0\x9b\x8e\x84\x42\x01\x29\x37\x1f\xe3\xa5\xc4\xd6\x7d\xb3\x2d\xc1\x26\x33\x9d\xb8\xa8\x43\xcd\x6c\xd8\xbb\x33\xa1\xf0\x4c\x4f\x06\x33\x6d\x0f\x8c\xcc\x37\xd0\x35\xcd\xc2\x5e\xc1\xd2\x45\x32\x4d\xd5\xd4\x24\xb0\xf6\xc5\x78\xda\xc1\x20\x0b\x9d\x96\x44\x7c\x08\x4f\xd9\xff\x27\x22\x06\x90\xfd\x93\x6e\x5e\x9c\x76\x6e\xe7\x46\xbb\x46\x36\xf6\x68\xab\x03\x5a\xa4\x70\x3a\x87\xcb\xcb\x12\x94\x6b\x27\x69\x69\x2f\xde\xdf\xae\xf2\xd1\xec\xfc\x39\xe2\x64\x2b\x7f\x3a\x38\x9e\x55\xd0\x66\x58\x7a\x81\x4b\x66\xd1\x14\x39\xa6\xb1\x33\x76\x7e\x7e\xf3\x1e\x86\x72\x12\x94\x48\x86\x68\x0a\x18\x5d\x4e\x8b\xb2\xd3\xbb\x30\x18\x92\x08\xf0\x25\xa1\xe2\xd9\x1e\x25\x05\xf2\x40\x5a\x56\xa5\x77\x9c\xa7\x3c\xeb\x47\xb7\xd1\xfd\xdd\x3b\x67\x93\x8a\xce\x0b\xc3\x17\x38\x3f\xf4\xa6\xba\xc6\x5e\x30\xb8\xec\x5e\x96\xed\x88\x5a\xcf\xcf\x1f\x5f\xb0\x0a\x96\x18\xc0\x4f\x2a\x92\x88\x59\x0d\x86\x2d\xf5\x71\xd7\x6d\xed\xcb\x96\x36\x0c\xdb\x11\x5f\xbe\x78\x82\x6e\x77\x55\x93\x17\x2f\x83\xbd\x92\xb5\x8f\xbb\x77\x2e\x4c\xbe\x19\xce\x0c\x4a\xf2\x96\xc6\x7a\x4c\x42\xcf\x00\x23\x50\x0c\xdb\x70\xf5\xca\x9a\xde\xe9\x3e\xbd\x4b\x2e\x62\x52\x65\x30\xe8\xe0\x86\x2f\x90\x7f\x9e\xbc\x1b\x68\x66\x3f\x13\x49\x55\xdb\xab\x9c\xe5\x51\x0f\x3b\xb8\x08\x09\x66\x99\xe3\xea\x32\xaf\xfb\x0d\x51\xdd\x8a\x4d\x31\xa8\xf5\xc9\x83\xc5\xa7\x83\x76\x0a\xe2\x55\xae\x2d\x54\xe6\xba\x60\xc3\xda\x26\x69\x10\xdc\x0e\x49\x13\xb8\x3c\x12\x01\x9f\x68\x8b\x40\x88\x9d\x62\x5d\xf9\x8e\xa0\xa1\xf3\xf5\x17\xe2\xf9\xd4\x41\xc6\x6c\x1c\x07\xa3\x1a\xab\x6b\xd2\x56\xc4\x44\xfc\x33\x0e\xcc\xb7\x66\xdc\x21\xae\x1f\xf2\x4d\x7e\xf3\x1f\x0d\x9d\x28\x00\x63\x5d\x64\x04\xea\xaf\x7f\x48\xad\xc1\x16\xb5\x50\x81\xc2\xec\xb9\x62\xfe\xe6\x50\x45\xbe\x26\x20\x3d\xfe\x0d\x71\xa9\x71\x65\x61\xdf\xd1\x32\xa8\x3c\x39\xc9\xbd\x55\xd7\x41\x3d\x58\xb5\xc7\xb5\x40\x56\x31\x50\xfd\x8a\xa4\xa4\x5a\x01\x45\x3d\x83\xce\xdb\xd4\xc4\xf0\x8b\xe6\x2b\xef\x88\x40\xf2\x84\xaa\xa2\xd0\x14\x9d\x71\x48\xd9\xa4\xe0\x7f\x16\x31\xb8\xa0\x57\x8e\xef\x9c\x52\xbe\x5b\x83\x3d\x94\x7c\x41\x3d\x8b\xfd\x2b\x16\x4b\x3a\xe6\x16\x5d\xfe\xca\xd4\xf3\x7f\x05\x6f\x06\x6f\xc1\x22\x3a\xe5\x89\xe5\x5b\x7c\x93\xdb\x22\xbd\x12\x5f\x1c\xac\x1b\x6b\xc5\xe3\xfa\x24\x66\x1e\xac\x3e\x70\x69\x98\x68\xa1\xa3\x6d\x7a\x78\x04\xb2\x69\x27\xaa\xca\x32\x73\x35\x42\x41\xf1\xa1\x27\xf4\x2e\x77\xaa\x3a\x30\x83\x35\x28\xab\xca\xac\x71\xd3\xe0\xc6\x92\x5c\x66\x56\xd1\x08\x58\x39\x89\x37\xaa\xd3\x95\x59\xbe\xf2\x0b\xe1\x17\x35\x90\xc0\xb4\x2a\x1b\x56\xd9\x43\x36\x62\x96\xa4\xe6\x5b\x76\xab\x89\xcc\x17\x3c\xb4\xf8\xb0\xb2\x24\x92\xff\xc6\x02\xb9\xd7\xba\x31\xa4\x8e\xad\xd4\x65\xd1\x78\x5b\x88\xdc\x46\x98\x64\x56\xd1\xca\x4e\xf5\x48\x34\x0e\x6b\xc7\x3f\xb4\x4b\x92\x81\xb7\x25\x24\xf1\xe9\x2e\xfd\x99\xf9\x77\x74\x98\xaa\x36\xce\x9f\x09\x9b\x8b\x29\x2a\x36\xda\x94\x75\x21\x8e\x4a\xd8\x93\x4c\x6e\x33\x38\x49\xd9\x0e\x7a\xba\xcc\x7f\x68\xe3\x21\x85\xa5\x04\x0b\xea\x20\x85\x95\xb0\x74\xb7\x6a\xd4\xb9\xf9\xad\x82\xc8\x44\xd2\x36\x69\x6f\x6a\x99\x56\xba\x91\x7b\x03\x37\x71\xd2\x11\x1f\x81\x97\x71\x8f\x25\xdb\xeb\x9b\x01\x62\x82\x40\x86\xdb\xc3\x57\x66\x97\xca\x64\x6c\x7f\xdb\xf0\x81\xb1\xcd\x57\x72\x95\x72\xcd\x62\xc9\x4a\x45\x5c\x3e\x35\xe9\xc8\xfc\x8a\x4d\x06\xbd\x18\xb0\x19\x64\xe7\x9b\x64\x4f\x0e\x7f\x44\x5d\xd3\x74\xc6\xf5\x8f\x70\x83\x40\x8a\x99\xed\x37\x6c\x02\x16\x33\x97\xe7\x86\xd9\xc1\x75\x82\xf1\xd8\xde\xbc\x87\x85\x95\x8e\xdb\xd4\x9e\x25\x07\x2e\x66\xb4\x8a\x8d\x58\x74\xae\xc0\x57\x0d\xb8\x17\xa7\xab\x0b\x27\x87\xa1\x35\x92\x07\x02\x9e\x98\x2f\xf6\x35\xb6\x11\xfc\xd0\x12\xcb\xc7\x91\x33\x22\x60\x18\xcb\x06\x7e\x77\x15\x1f\x9e\x44\x16\xb5\xbd\x24\x3c\xf0\x6f\xf1\xc1\x61\xf5\x8f\x7b\x85\x7a\x04\x5f\xab\xa4\xd3\xb0\x9e\xc2\xce\xa4\xb7\xd4\x05\x2b\xe9\x2f\x87\x86\x8a\x6b\x4f\xe8\xa4\x8d\x27\x13\x36\x96\xfb\x0e\x41\x60\x83\xa9\x32\xf7\x4a\xb9\x25\x96\xb6\x77\x67\xc0\x87\xcc\xd5\x77\x76\x70\xb6\x31\x96\xe5\xf6\x9d\x15\x96\x64\x3d\x12\x16\xc9\xea\x98\xbb\xb1\x75\xb7\x08\x47\x7c\x24\x13\x82\x1a\x22\x2c\x74\xb0\x0b\x4e\x45\x61\xd2\xdc\x9d\x38\x26\x2d\x96\x34\x9e\xd5\x55\xb4\x17\x61\x89\x25\x71\x21\x13\x0f\x8e\xae\xac\xa3\xad\xc8\x02\x2c\x46\x07\xe3\xd4\x55\x5e\xaf\xcd\x42\x2f\xce\xc4\x6a\x07\x3a\xd5\x8b\x27\x1a\xa4\xbb\x23\xc3\xdd\xa8\x87\x5f\xf5\xb6\x6b\x36\x87\xaa\x8d\x6c\xa9\x77\xef\xfc\x42\x27\xeb\xa2\xa9\x9d\x24\x0e\xf6\x60\xea\xc8\x77\xac\x34\x43\x23\x1a\x2b\x08\x65\xb7\x13\x03\x00\x0c\x2c\xd9\xf6\xe6\xb7\x25\x0c\xbf\x30\xc4\x54\x55\xf3\xda\xb4\x24\xaa\x1b\x12\xb4\x48\x52\x84\xb9\x0f\xf2\x20\x31\x3e\xdc\x6b\x75\x39\x58\x90\x75\x90\x30\xda\x9e\x8b\x86\x2b\xe2\x3e\x64\xf8\x19\x1f\x2a\xd0\x2b\xda\x6b\x6c\xa1\xc0\x93\x3e\xbe\x6f\x3f\xd6\xa5\x92\x62\xb9\x79\x0b\x95\xb6\x79\x47\x4c\xb6\x16\x5d\x96\x87\xc2\xf5\xe9\x73\xab\x47\x64\x3d\x3a\x98\xb8\x51\xaf\xea\x6f\x71\xa3\xd7\x89\xb0\xc2\xfe\x75\xe2\xe0\x47\xcb\xe2\x7c\x00\xcf\xd4\x01\x70\xfa\xaa\x43\xf9\x8d\x9d\xb3\x2c\x6f\xd5\x2b\x82\x8d\x80\x84\xc8\x02\x5f\xf8\x87\x11\x2f\x18\xa0\x0d\xd6\x24\x3b\x3f\x4e\x3c\x75\xd9\x74\x3a\x34\x9b\x12\x93\x35\x50\xcd\x1d\x2b\x76\x26\x4a\x42\xf4\xfc\xe5\xcb\xef\x1f\x61\xc4\xdb\x1e\x4b\xb1\x48\x07\x9b\x9d\xc9\x0a\x35\x7e\x16\x72\x3d\x75\x31\x6d\x1f\x30\xd6\x2d\x29\x3b\x12\x1b\x5c\x33\xf5\x16\xb4\xc1\x0a\x6c\x47\x1a\x99\x65\x1b\x54\x9d\xde\x71\xb7\xa6\xe2\x3f\x73\x94\x43\x80\x09\xd7\xb4\xca\x61\x92\x9b\x5b\x18\x6c\x54\xb5\x36\x90\x15\x73\x6c\xe1\xeb\x9b\x5f\x9d\x17\xe1\x6b\xb3\xc4\xe2\xc2\x51\x32\xbe\x74\x3a\x11\x5d\x71\x9f\xab\x30\xae\xa1\xf9\xea\xf5\x09\xee\xa3\x83\x8a\xd3\x6f\x61\x7c\xf7\x88\x39\xe6\xdb\x08\x2a\x6e\x33\xb7\xa0\x29\x84\x57\x52\xbd\xcf\xa7\xda\xef\x72\x57\x73\x78\x18\xcf\xfc\x56\xdc\xef\x02\x9c\xb1\xda\xca\xe7\xf0\x08\xda\xd9\xcc\x4e\x21\xf6\xb1\xa3\xa2\xf3\x34\xc1\x02\xe4\xac\x34\x99\xba\xe2\x33\x50\x24\x83\x95\x81\xc4\x4a\x3c\x8f\xed\x61\x59\x1e\x14\x79\x31\x56\x12\xe9\xf6\x7c\xcb\x87\x3f\xa0\x25\x4f\xb8\x90\xba\xfb\xde\x84\x7b\xb8\xbb\xd9\x63\xe1\x1d\x67\xd1\xc5\x7a\x33\x5d\xc5\x99\x3c\xd4\x2c\x68\xe0\x26\x33\x74\xe2\x19\x5c\xc5\x47\x97\xff\xab\xab\xa6\xb1\x6a\x8f\x97\x11\x9c\x83\x22\x99\x98\xd4\xa8\xea\x40\x75\x95\xc2\x40\xdd\x32\x4e\x78\xc3\x1c\xfb\x3a\x50\x9a\x49\xf4\xd2\xb1\x32\x7b\x58\x94\x1b\x78\x87\x9f\x06\x1f\x43\x67\x99\x0d\xca\x10\x83\xd4\xe2\x9d\x97\x4e\x37\xdc\x15\x3e\x83\x35\x70\xc7\x66\xaf\x9b\xdf\x6a\xef\x1e\x10\xa3\x8c\xc4\x74\xbb\x6d\xea\x92\xc0\x45\x9e\x31\x2a\x87\x78\x37\xbe\xd9\x60\x62\x9e\xfa\x26\xaf\xb4\x02\x57\xbf\x9d\x24\x3d\x99\x05\x7e\xa5\xf7\x40\x89\x41\xa2\xa9\x8a\x69\x67\x19\x69\x5b\x5c\xb7\x3d\x80\x5c\x91\x0c\x8c\x3b\x30\x7d\x2c\x12\xb0\x70\xcd\x5b\x8f\x2b\x4c\x68\x0d\xe3\x7e\x83\xa2\x90\xcf\x46\x33\x19\x20\xc9\x57\x15\xa4\x84\x9d\x36\xc0\x49\x46\xfa\x16\xa3\x1f\x82\x75\x12\xbf\xc0\x4c\x8b\x90\x3b\x1a\x2d\xe3\x91\x15\x30\xeb\x8c\x43\xce\xab\x67\xd2\x3a\xa4\xae\xec\x5a\xe3\x3b\x9c\xf6\xec\x1a\x56\x7c\x40\x5d\xd1\xf3\x1c\x7f\x9e\x54\xf0\x48\xb8\xa1\x0d\xbf\xcd\x99\x25\xb1\xbf\xee\x5b\xe6\x11\xbc\xe1\x26\x18\xf3\x8e\xdd\x64\xac\x63\xb9\xf8\x06\x5d\x9c\x44\xa4\xbc\xdd\xcd\xcf\x5c\x6b\xfe\x93\x1a\xff\x9e\xd2\xc6\x70\x4e\x8a\xdb\x00\x24\xc7\x90\xc2\xb8\xc3\x28\x8c\x9b\x0a\xc1\x7e\xb5\xc0\x0f\x7d\xd2\x4b\x2b\xad\x23\x93\x3e\xae\x62\x65\xe3\x83\x74\x5c\x1b\x64\x30\xc2\x02\xce\x27\xf1\x42\x67\xd7\x32\xa9\x19\x19\xa8\x3f\xac\xd1\x59\xf6\xfb\x5f\x49\x60\x31\x72\x94\x09\x03\xfd\xd3\x68\xc4\x8e\x02\x7f\x7f\x77\x5a\x4d\x0e\x8d\x08\xd1\x96\x85\x17\x8c\x87\xc4\xf8\x11\x9c\x1e\x0a\xde\x35\x82\xcf\x63\xa2\x36\x1a\x9b\x92\xe0\xad\xa3\x94\xea\x69\xd5\xc3\x60\x8b\xe4\x12\x0b\x6a\xd6\xed\x17\x57\x7e\x12\xfe\xea\x0a\x42\xd3\xdf\x72\x6b\xb5\xa5\x01\xbd\x21\x1a\xfb\x90\x4b\xab\x59\x3c\xea\xe8\x34\x4e\xc6\x3a\xa4\x03\x70\x43\xc6\xc3\x24\x2b\xd4\x7d\xe9\x85\xb4\xb0\x33\x63\x71\x0d\xbd\x42\x67\x74\x08\xe5\x32\x11\xed\x98\x42\x59\x81\x10\x0d\xad\x2a\xad\x38\x16\xac\x7c\x7d\x4f\x6a\xd6\xb1\x13\x3d\x92\x33\xdd\x12\xb1\x58\xc4\xaa\x27\x0e\xf3\x1a\xc1\x36\xb0\xaa\xbd\x5d\xb1\xa7\x16\x3a\xd3\x23\xf5\x6b\x98\xc8\xeb\xf5\x37\xf1\x4d\x65\x8e\x38\xac\x3f\x7d\xfd\x99\x16\xe1\xf0\xb3\x7d\xd5\x31\xdd\xaf\xfb\x9b\xf7\xb9\xba\x25\x3f\xee\x97\x82\xe0\xaf\xf3\x28\x40\x42\x9c\xb5\xdb\x68\xd0\x1c\x25\x01\x45\xbb\xea\x57\x82\x90\xa4\x02\x5c\x68\x2a\x5c\xc1\x61\xa1\x7a\x62\x1f\x12\x55\x01\xc9\xdc\x3b\xe7\x3a\x3a\x8e\x31\xe7\x55\x6b\x2f\x18\xc7\x06\x2c\xf5\x43\x80\xa9\xdf\x5d\x6d\x30\xbc\xd3\x27\x74\x3d\x95\xc1\xb1\x48\xee\x5a\x61\x79\x89\x5b\x49\xed\x6f\x83\x06\xf4\x8a\x9b\xdd\xa9\x82\x25\xcd\x35\x30\x61\x7c\x97\x42\x19\x96\x9c\x47\x7a\x13\xa1\x34\x11\x6d\x78\x3d\x03\xdd\x0c\x45\x8f\x50\xda\xcb\x47\xbb\x5c\x99\x26\x90\x13\x58\xa6\x9b\x8d\x67\x9a\x0f\xa1\xbd\x0b\x36\x4e\xc6\xa8\x4b\xf9\x24\x02\x67\x94\xa0\x98\xa3\x85\x91\xd4\xce\x71\x2d\xbb\x6e\x2a\xb8\xae\xe5\xbc\x4e\x95\xfa\xea\xc1\x79\xbc\xe0\xaf\x41\x5c\x74\xcc\x2e\xe1\x75\xa3\x7e\xc3\xe4\x9f\xc4\xfd\x0d\x79\x9c\xe0\xfd\xe6\xd7\x37\xa4\x34\x2a\x83\xa3\xb9\x1d\xbb\x6d\x09\x05\x93\xed\x4e\xbc\x7e\x2f\xdd\xea\xb2\xda\x2d\x76\x25\x0e\x14\x62\x38\x44\x45\x38\x85\x53\x05\xad\xdc\xeb\x9d\xb8\x80\x15\x17\x5e\x5e\x99\x0e\xe2\x53\xd8\xa0\x32\x3e\x37\x36\xe8\x2f\xc2\x85\x48\x08\x55\xeb\x95\xcd\xfe\xff\xac\xa0\xbd\x02\xe7\xb1\xe6\x15\x91\x65\xd4\xc4\x05\x3e\xa8\xd6\xb3\xb7\x56\x60\x28\xa2\xe0\x05\x76\x92\xaa\x7a\x81\x25\x78\x87\x90\x84\x91\x80\x72\x3d\x27\x01\x9b\xdc\x57\x7d\x8a\x87\x5c\xdf\xbc\xaf\x57\x7d\xd5\x4c\xb2\x91\xbe\x5e\x96\x35\x6b\xde\xd7\x25\xa0\x58\x1a\xe6\x6f\xb1\xf0\x44\xdd\x69\x67\x1e\x5f\x85\xaf\x51\xe4\x31\xeb\xe4\xc8\x03\xbb\x60\x7c\x45\xf3\x05\x7e\x18\x65\x2c\xd7\x1c\x4b\x78\x82\x93\x81\xa1\xbb\x0a\xcb\x51\x9f\x1b\x57\x5b\xb8\x90\xf0\x73\xae\xad\x0b\x61\xa3\x35\xb0\xb2\x08\x76\x40\xbb\x24\xdc\x9f\x7d\xef\x02\x4a\x66\x22\x9e\xca\x22\x72\x55\x76\x6a\x17\xbf\x8d\xd8\x73\x59\x5a\xcf\xd4\x77\xb2\x76\x71\x14\x7a\xfa\xe0\x60\xeb\x22\x0d\x4a\xda\xab\x07\xb7\x6a\x3a\x50\x3f\xa1\x74\x32\x93\xa5\x82\x6b\xc3\x1b\xa7\x11\x77\xdc\x30\x18\xbe\x8d\xe7\x61\x30\xbb\xab\x33\xa9\x3b\x92\x14\xb2\xe3\xc4\xe6\xb8\x6a\xb6\x7a\xc5\x2f\xf8\xe3\xd6\xa2\xc6\x1c\xf2\x69\x6b\xbf\x7b\xe6\x18\x82\xcd\xd8\x7a\xe5\x5d\x0f\x02\x63\x92\x59\x04\xd6\x14\xaf\xf3\x24\x7f\xba\x70\xfd\xe9\x62\x3b\x1d\x71\x4f\xd5\x29\x9e\x65\xf6\x0e\x7a\xe8\x4c\xe8\xa5\x37\x02\x28\x8c\x3a\x62\xb3\xa9\xc6\x36\xa1\xfa\x34\x17\x8b\x27\x98\xca\x6b\x7b\x7b\x9f\x12\xda\x3c\x43\xcb\x9e\xf1\x4a\xb1\x77\x91\x51\x5f\x0a\xa7\x83\x76\x50\xad\x6e\x7e\x15\x59\x27\x8f\x2c\x3a\xd1\x16\xc6\x66\xd2\x31\xb9\x1b\x79\xb7\xa9\x23\x67\x1a\x85\x70\x6e\x34\x79\x6c\x2e\x89\x65\xdd\x3e\x72\x6e\x64\x71\x97\xd1\x92\xd7\x7c\x3b\xb0\xa3\xb5\x77\xd2\xc3\xb3\xe7\x41\x5a\xf0\xfa\x27\xbb\x63\xad\x4c\xfb\x51\xf0\xd1\x1d\x0c\x2d\xa8\x70\xb1\x40\x3f\x9c\x81\xfa\x13\x8f\x64\xfe\x74\x32\x0e\x38\xe2\xd1\x32\x76\x0b\xc7\xf2\x2c\xba\x64\x08\x73\x60\xda\x3f\xa2\x85\x15\x07\xf4\x54\x18\xbf\x7b\xe7\x47\x58\x2a\x7f\x22\xf5\x95\xaf\x2f\xce\xc2\xbd\x42\x74\xd9\x17\x6f\xde\x24\x12\x36\x5c\x07\xaa\xa4\x85\xcd\xb9\x6e\x21\xbc\x5a\x95\x16\xac\x78\x4e\x45\x6e\x8e\xb6\x61\x6f\x9f\x0e\x26\xe1\x8d\xd9\x10\x83\x59\x56\xac\x62\x39\x44\xdf\xfc\xc6\x51\x3d\x1e\xdb\x33\xf8\x35\xda\x92\x15\xfd\xdd\xfc\x07\xfd\x93\xce\x2f\xfd\x8e\xcf\x51\x74\x91\x19\x7a\xe6\x7e\x6d\xb7\xc4\x14\xe8\x34\x23\xb2\xbd\xd7\x97\x54\x5c\x64\x70\xde\xbc\xf7\x0d\x29\x6e\xb0\x80\x52\x4f\x04\xf1\x4d\xdc\x1c\x02\xb1\x5d\x9b\x9f\xec\xb3\x27\x05\xb6\x08\x70\xfb\x29\x1b\x52\x5f\x89\x79\xfe\x31\xa8\x22\x04\x71\x27\x3e\x12\x0c\xc5\xa1\x43\xce\x67\xd2\x01\x72\x20\x11\x17\x8f\x66\x26\x9e\xf0\x68\x85\xd0\xe5\xc3\x70\xe1\x14\x1d\x10\x22\x76\x7f\x6e\x4c\x17\xc7\xf1\xf2\x24\x65\x00\x7d\x47\x6c\xbf\x8f\xeb\xf7\x5f\x7c\x48\xb1\xb3\x1d\x19\x6f\xda\x99\xad\xcb\x0e\x77\xfb\x2d\x0d\x10\xd1\xad\xb5\x35\xf3\x27\xf8\x97\x43\x9e\xf5\xcb\xa8\x7e\x8e\xe1\x90\x1e\x7d\xa5\x21\x6c\x95\xaf\x41\x13\x2f\xd8\x63\x11\xff\xb8\x9f\x13\xfd\xe3\x64\xdf\xba\x9c\x04\xcc\x2c\x74\x40\xad\xd6\x84\x23\xc6\xa2\xac\x4b\xf5\xc0\x53\x3e\xc2\x96\x32\x81\x44\x94\x8d\x1b\x4e\xc1\xf7\x0e\xbe\x3d\xb9\x7c\x18\x90\x8c\x77\x6e\xe5\x75\x94\x15\x4a\xa8\xbe\x30\x97\x39\xa9\x0a\x7a\x3f\x31\x7f\x81\x2b\x89\x2d\x5f\x52\x71\xbc\x8b\x4b\x09\xb0\xc0\xcd\x5f\x7b\x9d\x23\xda\x5b\xfe\x60\x14\x48\xe1\x27\xc4\x37\x59\x7b\xfb\x74\xbf\xd1\x7e\xfa\xee\xf5\x1f\x60\xc3\x3f\xdc\xf4\x1e\x4b\x7e\x6d\x60\xfe\xeb\x11\x04\xea\x62\x59\x8e\x53\x1f\x18\x4d\x6d\x90\x86\x60\xc7\x19\x0e\x62\x80\xbd\x1b\x56\xad\xe5\x75\xba\x6d\xb1\x5f\xb3\x65\xd5\x9b\x7b\xdf\x08\x02\xfd\x9e\x75\x8d\xf2\x6a\x71\x6f\x83\xe5\x52\x80\x19\x82\x0b\x89\x85\x16\x45\x8b\xf3\xeb\x44\x42\x0d\x83\xa3\xd2\x1e\x40\xd9\x41\x21\x56\xcf\x79\x78\x84\xf8\xc4\xcf\xbe\xfb\xfe\x82\x9d\x5f\x34\x4e\x80\xc3\xb8\xc4\x0d\x58\x03\xd0\x66\xa1\x6d\x77\x51\xcb\x40\x21\xa6\xb6\xd2\x5a\xde\x95\xfe\x28\xdc\x6c\x65\xc1\x9e\x9a\x46\xc3\x0a\xa7\xa0\x55\x61\x56\x22\x7f\x67\x9e\x81\x70\x24\x22\x51\xfe\xe5\xfc\xb4\x95\x2b\xe7\xe8\xd2\x78\xb8\xf2\x08\xfa\x75\x77\xbb\x96\xed\xe2\x2d\xf3\x34\x3e\xd6\xb6\xbb\x45\x55\xd6\xaf\xe8\x24\x83\xc0\x14\x7d\xf1\xc2\x00\x4a\x4c\x11\x03\xab\xbb\xcb\x19\x50\x98\xfd\x9f\xff\xf9\xbf\x1e\x9c\x64\xb4\x43\x4e\xba\xb6\xa2\xbf\x3a\x88\x03\xdb\x1d\x81\xc3\xf1\x12\x4e\xb4\xf8\xa9\xed\x73\xc0\x09\x82\x45\xb6\xf9\xd6\xb0\xe4\xbb\xe2\xd6\xa5\x78\x28\xd4\xa1\x0d\xac\x96\x52\xd3\x48\xc3\x77\x0a\x2c\x43\xc1\x33\x3c\xd6\xf3\x0f\xe6\x40\xe0\x44\x2d\xd0\xd2\x3f\x82\xc0\xff\x9a\x3d\x6d\x1e\x99\x5f\x72\xbe\x8c\xbe\x2e\xd7\x25\xab\x02\xf2\xfd\x07\xf7\xb3\x47\xec\x43\x1b\x2e\x98\x0a\x77\x61\x27\x77\x78\xee\x02\xaf\x95\x35\x9a\x0b\xa3\x66\x25\x4d\xa5\xbb\x3a\x4b\x99\x35\xed\x34\xc2\x10\x6e\x02\xcd\xfc\x3b\x36\x4b\xbc\xb8\x79\xb7\x2d\x91\x42\x46\x26\xde\x5d\x95\x56\x39\x95\x50\xf4\x5e\x76\xe6\x32\x93\x10\xb2\x37\x88\xe2\x09\x87\x4f\x3d\x4c\x55\xa2\x81\x37\x15\x29\x46\x46\x1d\x8a\x38\xee\x87\xd3\x6e\xc0\x0b\x0d\x84\x19\x9f\x73\x67\xf4\x55\x0f\x9f\xe4\xf0\x65\x02\x96\x30\xd3\x7d\x0d\xf2\x90\x68\x0e\x1c\x4e\x3f\xbf\xa0\xe9\x84\x26\x76\x19\xfd\xe2\x82\x23\x62\xda\x06\xc1\x3b\x54\x11\x79\x1d\x56\xaf\x32\xa4\xab\x81\xdc\x85\xff\x22\x56\x4c\x5a\x47\x6b\xcc\xfc\xe6\x7f\xb4\x4b\xa4\xe1\xd1\x4b\x64\xe4\x04\xe8\xf2\xb5\x65\x10\x9c\x01\xa7\x1d\x9c\x32\x3b\x28\x94\x02\x62\xb4\x0c\xd7\xcf\x04\x17\x95\x4f\x25\x13\x41\xf6\x91\x51\xd6\x91\x2a\x5f\x9a\x2a\xa9\xba\x29\x2b\x5c\xe4\x90\xfc\x4a\xac\xc9\xfd\x09\x8a\xde\x10\x67\xc5\xbe\xe1\x7f\x81\x04\x9e\x1d\xae\x8a\xe5\x0f\x22\x10\x5c\xa1\xb5\xf9\x6b\x1a\xd5\x6b\xfd\x45\xb8\xe1\x6c\x24\x8f\xe9\xdf\x9b\xbf\xb4\x6c\x96\xe4\x02\x0e\xfb\x00\x2c\xa2\x3e\x02\x3c\x0b\x81\xbc\x75\xcf\xdc\x5f\x7c\x9d\x21\xbd\xce\x46\xa3\x70\x05\x49\x2a\x94\x6c\x54\x7c\x09\x85\x58\x0a\xc3\x47\x9c\x0c\xb4\xe1\xf9\x48\x08\x5f\x37\xb4\xfd\x71\x47\xf4\x94\xa4\x83\xfc\x17\x13\x0a\x70\x53\x33\xff\xd6\x70\xc0\xa4\xfb\x26\xa1\x38\xc7\x38\x2c\xcb\xb8\x11\x22\x5c\x4e\x5f\x60\x5d\x81\x8f\x69\x41\x26\x22\xb1\x22\xc5\xf9\x57\x42\xe1\x6c\xbc\x22\x51\x61\x0d\xa1\x87\xca\x79\xdb\x99\x49\x90\x15\xad\x46\xbb\xd0\x56\x9e\x94\x1b\x66\x50\xd3\xa0\x7e\xa9\xc3\x4a\x0f\x7b\x0b\x20\xe8\x71\x1a\x4c\x7a\x0c\x90\xae\xd3\x69\x68\xd2\x69\xea\xc5\x44\xcf\xc4\xfd\x96\x74\x44\x8f\xa7\xd3\x58\xf8\xf1\x4f\x55\x58\x21\xdf\x54\x31\xa8\x40\x67\x2f\xd2\x35\x99\xf9\x31\xfe\x65\xcb\xf5\xc4\x68\x3d\x94\x1b\x6c\xae\xd0\x43\x04\x78\x40\xcc\x7f\x04\x24\x7c\x4a\xd9\x52\x39\xb9\xa0\xba\x60\xb2\xe6\x6e\x55\xc7\x00\x8b\x2d\x2e\x79\xd3\xa0\x30\xb7\x6a\x9c\xda\x27\xe9\x51\x1b\x95\x7e\xcd\xb0\x51\x46\x71\x97\x2f\xe7\xf7\x8b\x31\x52\x19\xa1\xae\x74\x84\x41\xda\x84\x70\xd6\x96\xe6\x47\xa3\x8d\x4b\x49\x56\x5b\xb0\x94\xda\xcd\x9f\xa9\xf7\xbf\x1b\x48\x2c\xbd\x8e\x2a\x1f\x22\xba\x21\xc8\xa0\x0f\x5c\xb5\xfa\x4a\x89\x88\x3c\x6c\x61\x48\x04\x79\x36\x1a\x07\x81\xac\x4b\x02\x89\xfa\x08\x4b\xdc\x0e\xa1\xbd\x80\x38\x55\x30\x43\xec\xa0\xb2\xdc\x0b\xef\x28\x51\xc6\xcc\x77\xaa\x92\xd5\xbc\x62\x24\x4c\xec\x9a\xde\x0f\xd5\x42\x4d\x2b\x27\xab\xc8\xe2\x17\x8b\xe5\x8e\x6b\x60\xf9\x01\x0f\x49\x7e\x4f\x0d\x48\x1c\x84\x22\x04\x27\x73\x0d\x8e\xc1\x62\x2b\x6b\x0a\x6c\x11\x76\xf0\xbc\xa5\xf1\x8e\xe7\x8e\xb2\x19\x8e\x2e\xdb\xcd\x9f\x8a\x73\x96\xd8\x60\x47\xf3\x62\x48\x90\xb0\x83\x84\xd2\xb2\xee\xc7\x08\x60\x40\x6a\x86\x5a\x91\x2b\xf0\x70\xa9\x5f\xe4\xbe\x7d\x15\x97\xa6\x46\x43\x27\xce\x54\x4d\x71\xb5\xbe\xbd\x3e\x82\xfb\xc1\xab\x61\xf0\xe7\x81\xe2\x8c\x46\x74\xe7\x9e\xa1\x72\x7f\xbe\x82\x91\xb4\x1e\xa3\x1a\xd8\x77\xbc\x3a\x73\xdd\x75\xd9\xfd\x1f\x3f\xff\x49\xd6\x27\x5c\xad\xfc\xf8\xc5\x4f\x24\xab\xdd\xff\xf1\xcb\x9f\xf8\x46\x65\x5c\x7b\x71\x99\xbf\x32\x13\x4d\x70\x4d\x0f\xbe\x6d\xcd\x75\xd9\xf4\xd6\x7b\xc2\x84\x53\xc8\xf3\x96\x37\x9d\x2f\x3d\x77\x31\x45\x03\x2e\xc1\x36\x9c\x63\xe9\x2b\xe5\x11\x85\x0b\x18\x17\x1e\x11\x9a\xed\x37\x0b\x45\x85\x65\x1e\x22\x88\x10\x4f\x31\xd7\x80\x94\x43\xfd\xea\xe6\x3f\x7b\x54\x01\x0b\x65\x01\x1c\xd0\x9c\x9c\xe4\xfa\x4f\xf2\xeb\x1b\x9e\x1e\x30\xf2\x73\xe8\xaa\xf1\xd7\x32\xc7\x7d\x1d\xe9\x17\xfe\x0e\x69\x36\xe0\x6b\x92\xda\x4c\x12\x11\x0e\x8a\x74\x4c\x09\x08\x49\x55\x27\x3a\x7c\x0f\xdd\x1a\xc6\x8c\x80\x91\xb2\xbf\x6c\xcb\x51\x61\xda\x96\x02\x4d\x35\xa6\xec\xda\x91\xce\xb8\x5c\x30\xcd\x58\x12\x3c\xff\x51\x1c\xc9\x88\xb4\x0d\xea\x4d\xc9\xe6\x0f\xb6\x22\x82\x0b\xc9\xc7\x97\xdc\xce\x06\x7c\xab\x91\x84\x69\xb0\xd9\x05\x5e\xc6\xfe\x92\x9c\x65\x92\xe0\xff\x68\x2f\x5b\x16\x88\x9c\xc4\xa5\x1f\x39\xc8\x64\x3e\xc8\x3b\xe0\x68\x74\x6c\xe2\xd3\x12\x17\xce\x49\x4a\x09\xe9\x8d\xc6\x84\xb8\x22\x68\xad\x7d\xd9\x0d\x40\xcb\x7a\xe1\x82\x57\x58\x6f\xe1\x9b\x85\xbe\x2e\x5b\x12\xd0\xdd\x65\x5a\x53\x23\x5a\x5f\x23\x40\x32\x0e\xd5\x15\x27\x1e\xe3\x7c\x63\x5d\xa0\x68\x72\x51\x3a\x08\xa3\x74\x77\xdb\xbc\xd0\xc9\x0e\x37\x45\xd9\xf9\xe0\x25\x87\xf8\xa1\x77\x96\x1b\x74\x7e\x0d\xf5\x89\x03\xe2\xfd\x47\x39\x78\xbb\x38\x88\x68\x74\xf8\x0b\xcc\xaa\xa9\x1a\xc4\x88\xd3\xff\xf7\x83\xc0\xd6\x4b\x1b\x78\x2c\x1c\x0a\x40\xd8\x06\xbc\xcf\xa3\xf3\x6c\x2c\x55\x48\x8d\xa9\x09\x4a\x89\xba\x31\xf2\x5d\xc2\xb0\x2c\x44\x75\x79\x23\xf2\x48\xf2\x88\x5a\x19\xdc\x49\xdc\x02\xea\xfd\x4b\xc4\x49\x1a\x3a\x74\x10\x53\xfa\xd4\x5f\xc4\xea\x2d\x83\xbb\xd1\x84\xd7\xd5\xd4\x71\x9e\x38\x3d\xc2\xd7\x7d\x78\xfd\x30\x3d\x12\x67\x7a\x70\x23\x96\x21\x0d\x6f\x4e\x55\x51\xc3\x8e\x24\x4a\x22\xd6\xc1\xfe\x4f\xac\xf2\x80\xb2\x48\xb9\x61\xab\xae\xdd\x03\x27\xf3\xf5\xc0\xb0\x1e\xb6\xaa\x3f\x3a\x0f\x00\xda\xbe\xa8\x9a\x69\x26\x4a\x4d\xb3\x67\x89\xd6\x9d\x57\x21\x7b\x0a\x25\xad\x23\x0b\xc5\x1c\xff\x1b\x75\x2b\xff\xce\x57\xae\x47\x6a\xcd\xc1\xe8\x09\xaa\x9a\xee\xb7\xf4\x0b\x00\x2d\x6b\xbc\x02\x41\x0c\xbe\x35\x30\x6e\x58\x16\xbe\xe4\x6f\x8d\x12\x77\x10\xdd\x15\xa4\x17\xb6\xb8\x48\x57\xcf\x80\x33\x5c\x7c\xba\x3e\x67\xd9\x13\x0c\xdf\x4f\xd5\x85\x0e\xd5\xbe\x15\xf8\xbd\xc7\xd9\x37\xe7\x3f\x27\xf1\x37\x09\x3a\xe0\xbd\x62\x34\x9d\xa4\x6f\xf3\xab\xf8\x00\x27\xf6\xf6\x19\xb7\xfb\x19\x4e\xf1\x42\x59\xdd\x3f\xf1\x0f\x65\x78\x8a\xa4\x58\x3d\x88\x35\x6f\x07\xc0\x5b\x59\x96\xac\x60\x2a\xba\xec\xad\x5c\xae\xa2\x97\x42\xd9\x2c\xdb\x7c\xbf\x46\xe4\xaa\x63\xaa\xfc\x37\x58\xb1\xfb\xfa\xa5\xff\xea\x9a\xde\x98\x76\xed\xce\x70\xe9\x41\xdb\xc6\x9c\xfe\xe6\xd6\xa9\xe6\xff\xf3\x93\xa7\x3d\xd2\x22\x16\x8e\x6b\xf2\xbe\x3c\x89\x59\x68\x0a\x35\x50\xdc\x43\x11\xf4\x7e\x3b\x3f\x76\x96\xef\xe0\xc2\xe7\xa1\xf4\xd0\x25\x12\xe0\x49\x45\x79\x2b\x71\xde\xb5\x7a\xaf\x98\x2c\x22\x33\x61\xf6\x29\x2a\x38\x96\x8e\x1d\xe1\xa3\xeb\x34\xdc\x9c\x39\x74\xcc\x52\x94\xcd\xbf\xed\x4b\xeb\xd4\x8a\x40\x3e\x5a\xf8\xfb\xbb\xd3\x51\x67\xe2\xb2\x12\xe2\x59\xd3\x0d\x2d\x4d\x90\xa8\x9a\xd3\x4e\xe0\x1b\x57\x5c\x39\x49\x3a\x17\x67\xcb\x4f\x9a\xdb\xe5\xde\xa0\x5d\x47\x5e\xa4\x2c\x04\x6a\x84\xce\x55\x1e\xdd\x53\x0e\xdd\xde\x0a\x49\xb0\xf6\x2a\x6c\xe2\xbc\x5e\xf0\x9d\x03\xcf\x21\x36\x0f\x13\xfe\xf4\xf2\x21\xc1\x0e\xa7\x75\xf2\xf8\xf1\x89\x0d\xe3\x51\xc6\x8d\xb3\xd5\x7e\xd0\xbe\x4f\x5c\xb9\xa7\x0b\x8d\x47\x8d\x7a\xd1\xd9\xa9\x01\x8e\xbd\xd1\xaa\x12\xc1\x62\xba\x23\x2b\x11\xba\xd9\xbe\xb2\xbf\xf3\x71\x6a\x53\xcb\x9e\x3e\x63\x3b\x9e\x8f\xcc\x66\x7f\x99\x6a\x40\x06\x29\xbb\xf8\xd6\x6d\xcb\x74\x13\xc7\xd6\x32\x6f\xd9\x69\x62\xc3\x47\x54\x3e\xad\x95\x47\x00\x7b\x34\xf3\x21\x44\xe1\x24\x72\x8e\x7c\x8a\x07\xd0\x2c\x8a\x9e\xd0\x0f\x96\x03\x6e\x7a\xc9\x1e\xf6\x34\x71\x64\xbd\x1b\x0d\x85\x84\x7e\x16\x6c\x87\xcd\x7b\xe1\x39\x9d\x1a\x9d\x5e\xcb\x2b\x52\x37\x91\x79\x86\xc4\xad\x2c\x94\x0a\x1e\x5d\x58\x4f\x3b\x3c\x2c\x67\x69\x17\xc2\x11\x0f\xe1\x49\xc4\x9b\x8b\x9b\xf7\x5d\x5f\x35\x49\xc9\xc4\xcd\x60\x5c\xea\xe6\xfe\x6d\x3c\xef\xec\x93\x46\xf3\x28\x7e\x3a\x98\xab\x89\xac\xde\x49\x91\x4f\xce\xa4\x0d\x2e\x24\x5b\x21\x2e\xa4\x5c\xde\x42\xf1\x1e\x4b\x10\x9c\x86\xbd\x1e\x85\x88\xe1\x8f\x77\x0f\x36\x9b\x07\x45\xf1\xf1\x14\x26\x52\xe7\x04\x5f\x2c\xd7\x5a\xce\x25\x01\xa0\x43\xae\x12\xb5\x14\x49\x5d\x7b\x50\x0a\x88\x68\x01\x5f\x5a\xcd\x6b\x4c\xd2\x2c\x3b\xeb\x7b\x84\xba\x5c\x80\x7e\x1c\xbc\xb6\x1c\x8d\x5b\x5f\xf6\x35\xdc\xfb\x72\x49\xcd\x10\x67\x7b\x1b\xae\xf1\x50\xa4\x8d\xca\x54\xd6\x7b\xaa\x4c\xfe\x96\x01\x7b\xcf\x33\x8e\x04\x64\xb1\x87\x03\xaa\x53\x34\x39\x17\x1a\x16\x96\x0f\xe0\x29\x95\x1e\xdb\xd0\xcc\x24\x94\x7a\x2c\xa8\xe0\x28\xb2\x26\x73\xc1\xd0\x7b\xe4\x93\x31\x14\x25\x77\x23\x99\x31\xf2\xe7\x9a\xf2\x58\x99\x1a\xc1\x1e\xda\x38\xe8\xa9\xc2\xb1\x6f\x13\x89\xcd\x25\x21\xbf\x16\xcc\x24\xf3\xa8\x9d\x4b\x8e\x51\x8e\xd7\x72\x45\x51\xce\x27\x3e\xd0\xe5\xc7\xb0\x81\xab\xa6\x79\x65\xe7\xff\x62\x96\xfc\x47\x54\xb0\x2e\x3b\x29\x43\x7e\xdc\xc7\x83\x42\x12\x20\xcb\xd5\x64\x7a\x76\xe0\xec\xe1\xcd\x3b\xcb\x11\x65\x1e\xbe\x80\x48\xdb\x2e\xde\xc2\x5a\xf8\xdf\x1b\xa6\xd5\xec\x8c\xa6\xbd\x6e\x9b\x08\x8a\xe3\x81\xce\x91\xbf\x28\x7b\x2e\x59\xd8\xa2\x42\x8d\xb0\xf0\x7d\xee\x0d\x1e\x89\x51\x20\x21\x07\xb8\xd3\xf9\xa3\x31\x3a\xf9\x30\xe8\xd8\x37\xea\x42\x15\xe7\x17\x3e\x66\x11\x3c\x44\x74\x5b\xf6\x0c\x19\x81\xaa\x47\x5c\x80\x1f\x5e\x94\x51\xe7\x1c\x5b\xeb\x02\x8d\x06\x79\x91\x49\x7c\xad\x0b\x4d\x21\x68\x9d\xeb\xd4\x20\x63\xa0\xcb\x88\xeb\x3b\xe7\x74\xfd\x1c\x18\x0d\xa9\xc7\xca\x0d\x3f\x82\x37\x2b\xbd\x74\x8b\xef\x64\x25\x58\x7c\x2a\x86\x7e\xe4\x80\x1b\x16\x75\x10\xd1\xc6\x93\x4a\xae\xbf\x07\xa0\xee\xf5\x0b\xf1\x10\x45\x6c\x74\xa0\xfc\xb4\xeb\x23\x49\xd3\xb3\xcb\xae\x7b\x83\x0b\x53\xb8\x0f\xbc\xb3\xb7\x07\xf1\xaa\x23\xa5\xba\x1b\x4d\xad\x1a\xe7\x7b\xa5\x05\x5e\x7c\x3e\x7f\x00\xb7\xb7\xfd\x0e\x69\xb4\x37\x39\x24\x7c\x84\x2b\xea\x27\x5e\xac\x83\xbd\x7c\x41\xbd\xe0\xda\x17\xae\x12\xae\x23\x9f\xf3\xf1\xc3\xfa\x1a\x67\x26\xd8\x51\xd7\x9d\x29\xa4\x50\xce\x30\x0e\x9a\x0d\x71\xdb\x1c\xa6\x5a\xe2\x50\x4b\x6a\x4e\x0e\x15\xcc\x4e\x4d\x11\x41\xd8\xd2\xa0\x75\x24\x82\x51\xbb\x51\xc4\x13\xd5\x30\xe2\x7c\xcb\x12\x79\xf0\xab\xf1\xaa\xc7\x18\x97\xc8\xe1\x20\x3d\x06\x07\xb7\xec\xec\xe5\xe9\xa3\xd3\xe0\xe6\xd6\x1a\x12\xe6\x3a\x98\x75\xc6\x34\x97\xa0\x77\xd8\x64\xc4\xcc\xe1\xf2\x92\x43\x57\x8e\xfd\xea\xe0\x39\xe5\xd3\xe8\x39\xf7\xf5\xe1\x86\x3c\x92\xa4\xba\x3b\xc3\xc9\x11\x63\x31\x9f\xf8\xe2\xd1\xf0\x4c\x38\x72\x32\xad\xb3\x9f\xe2\xd8\x68\x06\x3b\x75\xe5\x72\x79\x09\xac\xb0\x63\x0e\xb2\x3d\x30\x41\x76\xa7\x00\xe2\xe4\xa5\x85\x91\x7f\x99\x0b\xf5\x3c\x1a\x3a\x84\x65\x7c\x5f\x5d\x0b\x0e\x35\xa9\x79\xe2\x0a\x57\x12\x47\x21\xe9\xb1\xd0\x34\x64\x1c\x62\x64\xfc\x21\x79\xdb\x90\xbe\x38\x30\x24\x71\x6c\x9b\x1a\x91\x0c\xc4\xed\x79\xa4\x41\xdb\xf4\x15\xb4\x23\xe3\xc3\x3c\x0e\xf6\xfa\xa5\xf4\x2a\x1a\xf6\x26\x8f\x12\xf3\x4b\x0f\x83\x49\xc4\xa9\x3e\x81\x0b\x31\xa8\x8e\xc7\x5c\x87\x88\x59\x1f\x16\xee\x54\xce\xd9\xfe\x23\x28\x72\xc2\x46\x74\x96\x8f\x0c\xab\x06\x3e\x45\x2c\xd4\x1c\x8a\xf2\x1b\xef\x49\x31\x97\x8a\x70\x9d\x18\x4d\x3d\xe8\x26\x7f\x45\x2a\xc6\xf8\x28\x9a\x6a\x4d\x1c\x98\xf9\x81\x80\xad\x3b\xa5\x46\xe3\x74\xc2\x88\x8f\xc4\x2f\xd8\xb0\x42\x54\x3f\x1e\x67\xea\x6e\xba\xd7\xcd\xd4\xc3\x23\x88\x20\x88\x23\xb8\xaa\xd7\x10\x13\x99\xe1\x49\xd8\x0c\x07\x2a\x79\x74\x9f\xa7\x81\x42\x9e\x6f\x46\x7b\x2a\x1e\x2c\x52\xfd\x73\xaa\xd2\xbd\x4d\x85\x53\x88\xd9\xc2\x64\x2b\x9c\x9a\xa3\xe4\xa4\x0b\x0b\x49\x7a\x18\xc7\xb6\xa7\xc9\x17\xaa\x7c\xf8\xac\x41\x92\xe9\x2b\x0a\x71\xda\xec\x1d\x35\x66\xff\x5a\xa4\x32\x8f\x2d\x95\xd2\x86\xd2\x9b\x1c\xab\x10\xad\x9d\x18\xa7\xee\x73\x44\xd8\xb9\x7f\x69\x8a\x36\xc6\x1b\xb8\xe6\x35\x2e\xf7\x5d\x3b\x0c\x34\x5c\xf5\x9c\xd5\x8f\x70\x43\x04\x42\x7a\x3b\xb6\x0b\xaa\x5d\x23\x6b\x1b\x24\x23\x71\xd7\xcf\x4e\x52\xb8\x2a\x86\xb1\x5b\x6a\x5b\xad\x3e\x47\x12\x72\xd6\x72\xbe\x3c\xf6\xa5\x34\x9d\x5a\x86\xcf\x9e\x9f\x5f\x64\xc8\x42\x5d\xe4\x92\xed\xc8\x84\x6c\xfc\x9a\xea\x04\xf2\xf5\x19\x2b\xa4\x4b\xd9\xe6\x9c\x4e\x22\x3e\x87\x38\x1b\xa6\x38\x54\xd5\x50\xe3\xdb\x5b\xbc\xaa\xbe\x73\xa1\x55\x0e\x4d\x30\xf1\xc5\x38\x57\x7c\x8f\xc2\x20\xa7\x30\x3f\x84\x1d\x9a\xa7\x99\xcb\x28\xd0\x20\xc4\x71\xac\x62\xf0\x91\x44\x9f\xc5\xc9\xa6\x64\xbf\xff\xa9\x90\x9e\xbd\x9d\x07\x05\x43\x47\xba\x4f\xa7\x18\x36\x31\x73\x86\x91\x33\xb7\x36\x93\x30\x30\x5d\x59\x5c\xcd\xd8\x2d\xa0\xf3\x09\x20\x51\x49\x91\xdd\x75\x95\x2f\x8d\xc4\x9a\x8f\x80\xb6\x92\x01\x6d\xae\x99\xd0\x26\x20\x96\x4d\xb1\x9b\x9f\xf4\xa6\xdd\x6a\x4e\x49\xe7\xbd\x33\x52\x4c\x02\xd9\x7b\x0d\x85\xfd\xbb\x41\x4f\xa4\xe2\x8a\xad\xa0\x74\xac\x8e\x19\x5f\x03\xd0\x23\xe7\x6a\x68\x44\xd3\xe6\xe3\x43\xdc\x84\xad\x3b\x9e\xaf\xb4\x35\x76\x06\x2c\x84\xf8\xab\x3c\xca\xe7\x28\x01\x3f\x12\xd5\xc2\x91\x02\x6d\x1c\x9f\x9b\x26\xb3\x4f\xce\x77\x1d\x3d\xdf\xb0\x44\x61\x15\xdc\x63\x70\x7f\xe5\x30\x29\xa4\x89\x8f\xd3\xd7\xa7\x02\xcb\x2f\x78\x35\xad\xc1\xa5\xc5\x2f\x51\x5a\x60\x2e\x96\xec\x6d\x59\xfc\xd2\x0c\x44\x4f\x50\x24\xe3\x78\x62\x38\x43\x57\xfb\xc7\x29\xb5\x3b\xb0\x51\x6c\xdd\x14\xb0\x1e\x93\x5a\x27\x56\xd4\x06\x80\x11\x8f\x53\x25\x7d\x1f\xbf\x10\xfb\x35\xb8\x86\x33\x5f\xe7\xe9\x7a\xc0\x2d\x96\x8d\xc3\xbc\x86\xc8\x01\xad\x41\xda\x3e\xd2\x4a\x58\x14\xed\x32\x18\x49\x3a\x42\xdc\x85\x0b\xf7\x70\xe4\xe0\x79\x57\x4b\x0a\xc4\xcd\xaf\xb1\x8d\x48\xa4\xbf\x0e\xaf\xc4\xc0\x97\x12\x7c\xc4\x31\xd1\x4f\xfe\xdb\xf9\xf3\x67\x47\x3a\xc2\x37\x0f\x5e\xbf\x7e\xfd\x00\x15\x1f\xf4\x6d\x45\xc2\x21\x7d\x2c\x74\xc8\x47\x78\x1b\xe3\x1b\xd3\xad\xbe\xfe\x8c\xfe\xfd\x54\x1f\xe1\xe0\x7c\xd4\x1c\xab\x3e\xc1\xe1\x94\xec\xfe\x3e\xae\xa6\x7b\x2e\x7e\x26\x65\xbc\xfd\x74\x61\x53\xff\xe9\x28\x82\x32\xe8\xe8\x66\xd5\xd2\x40\xce\xf9\x9f\xa4\x80\xf4\xe6\x57\x07\x92\x67\x8c\x40\x49\xdc\xaa\xe3\x41\xe1\xf7\x18\x2a\xba\xff\x8c\xca\x78\x31\x85\x66\x7e\xff\xeb\x3f\x63\xb1\xdc\x09\x94\xac\x11\x74\x41\x08\x8b\xc4\x92\xe0\x10\x63\x9d\xfd\x5b\x89\xee\x4f\xa3\x16\xd9\xc3\xb4\xa9\xab\x9d\xbc\x44\x80\xbc\x58\x42\x36\xb2\xbc\x28\xd6\xd5\x9c\x8d\xea\x72\xa6\x54\x28\x2d\x3b\xbe\xe8\x9a\xab\x37\x70\xe3\x75\x1c\x70\xf9\x38\xb0\x64\x50\x5f\xd2\x68\xcc\x1f\xe1\x39\x9d\x0d\x0e\x0c\x52\x11\x5b\xa7\xd1\x6a\x22\xda\x66\xa2\x5a\x74\x35\xb5\xa7\x50\x10\xc5\xb1\x02\x4d\xb8\x34\x65\x63\x64\x3e\x89\x82\x39\x7c\x6a\xa7\x91\x23\x2f\xab\x11\xc3\xc5\xaf\x2c\x1f\xe8\xed\xf1\xe6\xe6\xec\xa4\x92\x52\x64\xfc\xdd\xbb\xe0\x87\x1d\x1f\x6d\x5b\x8f\x76\x15\x49\x3c\xeb\x02\x43\xc4\x45\x4a\x9e\x5a\x22\xc0\x48\x98\x8b\xec\x11\x11\xbd\x9f\xb1\x3b\x65\xc6\xdc\xca\xcb\x5a\x81\x5b\x8d\x0f\x7d\x85\x9d\xea\x2a\x12\xef\x69\xf8\xff\x32\xee\x47\xf5\x19\xd7\x8f\x9a\x2e\xc7\x7d\x88\x33\x15\x8e\xf6\x12\x59\xd0\x0c\x4e\x54\x64\x58\x46\x5c\xa9\xf7\xd6\x4a\x04\xc0\x74\xd3\x4e\xf0\x58\xd9\x49\x81\xcd\xb2\x3c\x29\xd9\xe1\x5c\x80\x04\x33\xcf\xc4\x19\xe2\x1c\x95\x24\x52\x1c\x81\x6a\x7b\x8c\x61\xd2\xb4\xc4\x1f\x6a\xf4\xe4\xa0\x6c\xf8\x68\xd5\x70\x7f\x93\x72\x54\x8b\x91\x39\x31\xf7\x91\x72\x5a\x35\xbb\x24\x1b\x13\x0d\x99\x64\x22\x3a\x6d\xcd\xba\x37\x83\x29\x06\xf0\x34\xf0\x7f\x6f\x25\x76\x7b\x0f\x5d\x3c\x93\xac\xd0\x9e\x62\x7c\x1e\x64\xd7\x48\xe1\x1b\x49\x14\xb6\xf4\x8a\x63\x62\xf4\x53\xe1\xe8\x1e\x2c\x0d\xa9\x17\x4a\x92\xa8\xe5\xea\xd6\xae\x6f\x0f\xa4\x4f\xaa\xde\x66\xcc\x1b\x87\xc8\x3f\xc9\x5d\x2a\x95\x41\x6b\xe0\x47\xe3\x6b\x8d\x7c\x8f\xa0\x19\xa1\x62\x2c\x57\x1f\x5e\xa3\x89\xaa\x7b\xb2\x8c\x4c\x4d\xd8\x1a\x1f\x70\x5a\x4f\x1b\xf8\x26\x6c\x01\x9c\xae\x9c\x0d\x67\xdc\xe4\x9e\x3c\x22\x07\x47\x18\x30\x78\x32\x31\xaa\x3d\x61\xf6\xc8\xd7\x7f\x79\x39\x23\x05\xf2\xb5\x45\x44\x7a\xdf\xae\xc2\xf3\xbd\xfc\xce\x93\x7b\xd3\x93\xe1\xc0\x00\x89\xa6\xb6\x79\x81\x98\x38\xfe\x24\x37\xaa\x73\xf9\x47\xbf\xf1\x5d\x75\xfa\x38\x4a\x7c\x65\x5d\x65\x8f\x08\x6a\xfa\x8e\x7a\xa6\x4d\xd8\xab\xe6\xf5\x02\x7f\x71\x7c\xbd\x9d\x3f\x15\x71\x94\xad\x6e\x05\x72\xec\x93\xbc\x24\x5b\x93\x60\x5c\x1d\x40\xaa\x70\x2b\xd6\x0f\x77\x04\x46\x69\x7d\xee\x17\x5e\xea\x0e\x46\x3f\xe6\x42\xfa\x03\xb7\xab\xf0\x24\x6a\x38\x63\x85\x83\xd8\xc5\xe5\x6a\xe7\x09\xc5\x0e\x8d\xc4\x70\x1e\x7e\xff\x4c\x7f\x71\x84\x02\xe7\x0d\x43\x88\xc2\xb7\xd2\xa9\x24\x41\xe6\x80\x87\xd9\x44\x04\x84\x2b\x92\xc0\x15\xfe\x5b\x3d\xbf\x15\x26\x80\x14\x6d\x7e\xd9\x39\x47\xa6\x36\x7c\xdf\xb6\xc6\xd5\x3c\x6b\xcd\x83\x51\x3d\x49\xb5\xcd\xa1\xb4\xf4\x6f\xf8\xce\xb7\x80\x46\x7d\xaf\xdc\xc7\x1c\xea\xd5\x3c\x4c\x3d\x46\x99\xf8\x7e\x90\x6c\x73\xdf\x6a\xac\x0b\xef\x89\x76\xd4\x21\x53\xd5\x22\x7e\x22\x36\xfb\xb6\x77\xcf\xa8\x09\x4c\x97\xaf\x27\xb2\x6b\x04\xc7\xb3\x00\xc7\xf2\xe8\x23\x49\x85\x98\xd6\xf7\xd1\x75\xab\x66\x2d\xfc\xc8\xcb\x1c\xc2\x2b\xf8\x9b\xf0\x16\x04\x5c\x71\xd2\x3b\xce\xa2\x35\x58\x90\x45\xc2\x5e\x75\x2c\x23\x3c\x3a\xd1\xf5\x35\xe9\x1b\x8b\x4d\x11\xe9\x26\xa0\x26\x27\xc4\x27\x67\xdb\xd3\xbc\x7d\x55\x34\xaf\x6b\x71\xea\x73\x0d\xbd\x6e\x4b\xce\x9d\x2f\x59\xbf\x93\x85\xe4\x37\xaf\x7e\x60\x9d\xef\x0c\xbf\xf2\x71\xf7\xb1\xdb\xbf\xb4\x61\x90\x87\xd2\x25\xe4\x71\xbc\xdf\x55\x83\xfc\x0d\x29\xf1\x04\x19\xc0\x49\xc6\xd1\x57\x7f\x87\xa4\x33\x4e\x35\x41\x65\x0f\x46\x4b\x1b\x55\x08\xb1\x8d\x9e\x04\x54\xa9\xdc\x20\x23\x14\x33\x1e\x3e\x01\x48\x71\x75\x2a\x6c\xf4\x54\x5c\x3c\x0a\x2c\x0c\x0b\x83\xb2\x40\x63\xd4\xf3\x1b\x40\x42\xff\xea\xe1\x98\x8d\xf7\x01\x6b\xba\x6e\x27\xe8\xed\xf6\xa8\x25\x47\x77\x8b\xbc\xc2\x61\xb2\xd3\xac\x9b\xe9\xb1\xa6\xb5\x5c\x7a\xe5\x40\x57\x92\xee\xb1\x69\xd7\x3f\x45\x69\x9e\x47\xef\xf2\x10\xf1\x0c\xde\xcf\x0e\xb0\x07\x43\xc8\xd3\x0c\xaa\x51\x10\x39\x1e\x16\xf7\x51\xe4\x33\x1f\xed\x86\xc4\xac\xe2\x2a\x36\xe8\x8f\xe3\xcd\x44\x88\x2c\x22\x77\x77\xb8\x27\x99\x66\x2b\x19\x1f\x61\x37\xb0\x9c\x55\x17\x2f\xea\xda\x66\x63\x70\x69\xfa\x3d\x7e\x22\xba\x85\x73\x9b\x96\x9c\x6c\xc3\xe4\x1b\x12\x0e\x39\x6f\x2f\x02\xc0\x90\xba\x53\x4d\x93\x76\xae\xd6\x48\xff\x3d\xc9\x09\x9a\xbe\xbc\x13\x85\xe8\xa1\xc9\x10\x9a\x27\xc6\xd9\x53\xcd\x43\x0f\x5c\x4d\xf8\x6d\x84\x3c\xd4\x91\xf5\xc0\xd5\xe1\xc2\x43\x95\x1c\xe2\x35\x8f\x4c\x9c\x34\x5b\x28\xd3\xf9\x2f\xb7\xee\xb0\xd6\x3c\xc5\x9a\x91\x2a\x78\xfa\x6a\x5a\x34\xdf\x63\x88\xca\x3c\xad\x45\x9d\x87\xb1\x90\x49\x29\x6a\xe7\x4f\x5a\x43\x64\x03\xeb\x05\x0c\x55\x2a\x6b\x12\xc1\xf9\x45\x93\xe8\x22\x87\xd0\x0b\xd5\x52\x6c\x92\x69\x53\xb7\x06\x53\x8f\x2c\xc3\xff\xd8\xa4\xa8\xd3\xad\xef\x89\xa9\xfe\xbb\x7c\x0b\x0e\xe4\xf5\x8c\x2d\x7a\xe3\x04\x9f\xbe\x74\x5f\xa6\xcf\xbf\xeb\xbe\x3f\xad\x73\x38\x0d\xe3\x90\x1b\x7c\x40\x36\xc6\xa1\x5f\x01\x21\xfb\x1f\x94\xfa\x73\xb8\x72\x13\x0a\xea\x87\xa4\x96\xd4\xbc\x92\x53\xa4\xe0\x64\xf5\x3c\x0a\xb2\x09\x12\xe8\xa1\x6b\xfd\x01\x0f\x1b\x2a\xb4\x83\x34\x28\x2a\x90\xdf\x52\x29\x60\x6c\xdf\xd5\xad\x19\xa7\x98\x9e\xba\xcd\x3d\x1a\xa4\x49\x19\xde\x22\xbb\x1c\x29\xd6\x7c\xb4\xf7\xfe\xea\xd6\x74\x29\xc3\xd1\x83\x15\x4e\xe7\x4c\x19\x1f\x31\x53\x75\xc3\x99\xde\x0c\x29\xf0\x6f\xca\xa4\x32\x75\x1d\xe4\xb4\xe0\xd7\xee\x4a\x48\x1c\x4e\x45\x19\x92\x77\xff\xbc\xeb\x64\x6c\xa0\x1a\xbf\x95\x1d\x23\x73\x62\x59\x24\xbf\x94\x1c\x3b\x22\x32\xac\xe6\x21\x63\x71\x5a\xe0\x98\xb2\xbf\x98\xe6\xbb\x57\xb9\x2f\x8e\x60\x5b\x7e\xc4\x66\x7e\xb6\xa7\x60\xba\x95\x51\x97\x13\x21\x27\xae\x48\x2f\xf0\x9e\xca\x21\x19\xbe\x53\x8b\x2b\x93\x57\xf3\xe7\x2b\xdc\x2a\xb5\xa1\x40\xee\x10\x63\x2f\x43\x2d\x20\x81\x04\x46\x2e\x97\x47\x3d\x14\xe8\xf9\xed\x9c\xf8\xe9\xc4\x7e\xcb\x49\x92\x0d\xfb\x2b\xb2\x45\x6a\x94\x5e\x98\x17\xa3\xf4\x27\xbd\xb7\x5a\xb9\xab\x45\x38\x8a\x7e\x35\xea\x02\xef\xa0\xa9\x78\xc0\x09\xcc\x21\x16\xcc\x90\x1a\x7c\xfe\x92\xa3\x62\xdc\xa7\xd1\x50\xe5\x33\xc4\x2d\x4d\x0c\x36\x3f\xf6\x3e\x0a\x4f\x88\x7d\x11\x67\x99\x00\x4a\x92\x67\xe8\x69\xec\x12\xd6\x19\x7e\xde\x57\x72\x01\xd8\xc1\x13\x7f\x33\xd7\x16\x8b\xd9\xe3\x1e\x59\x66\x8e\xfb\x8c\xe1\x0e\x74\x5a\x19\x33\xee\xec\x88\xd3\xf9\x8b\xa4\x2b\x19\x25\xd8\x5c\xc9\x4e\x91\x55\x34\x16\x7d\xb4\x7f\x38\x96\x41\x0c\xd3\x18\xf6\xc0\x78\x42\x77\x1c\x5a\x20\x8f\xb1\xed\x1f\x5d\xee\xf3\x7e\x46\x0e\x21\xcc\x03\xe2\x71\xba\x24\x0d\x71\x7f\xb5\xf3\xda\x2a\x46\xb2\x15\xcc\xf4\x7b\x4e\x77\x29\xe6\xbd\x61\x47\x62\xcf\x93\xa1\x1b\x11\x77\x30\x95\x69\xed\x43\x59\xc6\xce\x35\xe1\x2a\x90\x48\x6e\x56\x57\x93\xce\x6b\xa1\x96\x5c\x7b\x0c\xd9\x8c\x0c\xdd\x49\xb8\xba\x79\xed\x48\xe0\xfc\x43\xa2\x83\x54\x70\x59\xc6\x20\xfe\x3e\x8c\xee\x6f\xd3\x66\x61\x22\x63\x69\x51\xd9\x87\x63\xb1\x4f\xdd\xf6\x1c\x8e\x23\x6a\x36\x3d\x2f\xda\x03\x80\xa3\x75\xe6\x23\x01\x7e\x03\xfe\x4a\x17\xe7\x80\x35\x34\x8b\xc4\xdb\x2d\x3a\x12\xf8\x65\xc7\x4d\x40\x50\x22\x3a\xeb\x4b\xca\x62\x1b\x0b\xa6\x30\xf7\x66\xc2\xe4\x9e\x8d\x07\xe8\xa3\x9f\xdc\x74\x47\x71\x0c\x43\xb9\x29\xe2\x21\x43\x8a\x8b\x27\x2a\xd4\x1c\xfb\x4c\x39\xa2\x51\x6e\xe4\x09\xe4\x2b\xde\x52\x7e\x82\xd1\xdb\xd0\x9e\xfd\x0c\x49\x32\x0b\x8f\x9c\x0c\x38\xd1\xdf\x36\x24\xcf\xae\x6e\x19\x14\xb3\xa7\x5d\xcc\x84\xf2\x0f\x1a\x9b\xbe\xc8\xfc\x37\x8d\xed\x78\xcf\xbe\xda\x3f\xc2\xa3\x78\x80\xbb\xbd\x4c\xe9\x43\x06\xbe\xf7\xf5\x89\x89\x8d\xea\x77\x54\xc8\xba\xe2\x77\xd5\x8b\xd8\x3b\x76\x58\x51\x7d\x7a\xd4\x9f\xd5\x1d\xca\xa1\xd1\x9a\x5f\xd0\xe7\xfc\x2f\xde\xe9\x35\x36\xf3\xfa\x37\x90\xad\x7b\x23\x07\xd7\x4c\x6e\xda\x3e\x3c\x39\x79\xdc\x71\xd5\xde\xfc\x8a\x3c\x5a\xf1\xe3\x24\x3f\xf2\x32\xfd\x74\xf7\x8e\x7f\xb0\x77\x1e\x3d\xc8\x8b\xcb\x50\x3b\x7f\xa9\xbe\xf5\xac\x42\x33\x43\x53\xb5\x6a\xf0\x40\xc4\xa1\x67\x3b\xfa\xee\x4a\x1e\x3c\x61\x95\xe9\x38\x3c\x7f\xe2\x72\xba\x80\xab\x8d\x78\xbd\xfa\xce\xcd\x8f\xaf\x95\x42\xaa\xec\x1c\xd3\x42\xd8\xde\xa6\xa9\xd1\xfc\xfc\xa9\xfc\x1b\x04\x56\x92\x80\x2d\x9e\x04\x5c\xb3\x00\x46\x33\xcd\x35\xe1\x2b\x7f\xba\xf9\xdf\x9c\xe2\x15\xe9\x35\x3b\x12\x94\x2e\xf0\xff\xaf\xb2\xfb\x05\x5b\xb0\xdd\xcc\xd9\x00\x8c\x17\x83\x44\xca\xf5\x66\xe2\x18\x84\xa5\x7e\xa7\x5f\x7a\xc7\x89\xa4\x91\x1d\x86\xca\x66\xe7\xde\x4a\x43\xe2\x6e\xa0\x43\x4e\xe7\x33\xd1\xf9\x02\x57\xe9\x50\x94\xd2\x97\xb7\x35\xed\x68\x78\x22\x0b\x8f\x86\x16\x78\x34\x34\x7a\x2f\x26\x7c\x1b\x3e\x9f\x13\x4a\x34\x01\xb3\xcb\x57\x9c\x94\xa5\xc7\x7d\xf8\x2e\xc9\x9b\x8a\xf4\xa3\xcf\xd4\x94\x7c\xcd\x57\xe3\x2e\x85\x5b\x27\x9f\x12\x37\xd4\x68\x70\xc1\x19\x35\xf9\xcc\x71\xcf\x9a\x18\xb1\x60\x63\x96\xa4\xa9\x8d\x81\xac\x7f\xfe\x25\xfe\xaa\x8f\x3e\xa7\xb3\x14\x7b\x79\xfc\xed\xb2\x37\xce\x87\x92\x1f\xd9\x8f\xcb\x9c\x32\x92\x36\xeb\xe2\x25\xe2\xaf\x3e\x94\x39\xfe\x38\xaa\x2b\xac\x27\xf9\x84\xf7\x29\x70\x91\x17\xd4\xdc\x14\x81\xc5\x2f\x7d\x2d\xef\x96\x4d\xd0\xe2\x84\xe9\xfb\xb9\xd7\x4e\xa7\x6b\xc8\x83\xdd\x92\x66\xaf\xed\xb7\x1c\x0f\x3f\x05\xd7\xf6\xf5\xfc\x54\xf4\xae\x04\x02\xea\x40\xbd\xd0\xac\xbe\x0d\xe7\xb8\x73\x99\x6c\xf4\xa9\xdd\xbe\x10\x6c\x3e\xc7\x4b\x90\xa4\xc4\xd7\xc1\xf5\xfa\x70\x43\x89\x7f\xea\xed\x8d\x39\x4f\xd5\xfd\xe7\x78\xe8\x4c\xe5\x01\xa8\xbe\xe9\xfb\xa4\x36\x88\x38\x21\xe2\xda\x11\x9d\x03\xb7\x1f\xd6\x54\x48\x1b\xbf\xbf\xa5\xbf\x61\xd0\x6c\x84\x95\xfc\x8c\x26\x1d\xae\x4a\xb2\x3e\x77\xe3\x20\x7b\xe8\x6d\x6d\xc5\xe3\xbd\xa5\xa9\x3f\x32\xec\x75\xd9\x2d\xd6\x2b\xf7\x76\xba\x92\x10\x48\x13\xb9\xa2\xab\xe8\x85\x01\x62\x73\x7d\xeb\xd3\x64\xef\x1b\x79\xdc\xdc\xc4\x88\x93\x51\xf2\x10\x9d\xb1\x20\x1b\xbd\x96\xa7\x03\x10\x5e\xac\xdd\xa7\x3b\x8b\x58\xc8\xae\x5e\x2d\xf8\x49\x7e\x7b\xc5\x37\xed\x2f\x8c\x7f\x57\x15\xe1\xad\x9a\x9f\xf3\xe3\x19\x95\x7f\x26\x89\xbc\xca\xb7\x86\xef\xa2\xed\xc7\x9f\x10\x39\xd4\xfa\xe6\x5a\x72\x9d\xcb\xb4\x20\xec\x57\x13\x67\x53\x19\x4c\xb2\x6f\x57\xf0\xb5\x66\x06\xff\xe9\xe1\x81\x4c\x51\xd7\x80\xa1\xbb\x55\x6a\x65\xc8\xdd\xa1\x55\x8a\x3a\x88\xbc\x44\x92\xe9\x06\x0a\x13\x8b\x4c\x9c\x7d\x38\x58\x90\x86\x6b\xf0\x09\xbb\xfe\xc8\x9b\x98\xea\x78\x6b\x7c\x6c\x35\x93\x41\xdf\x85\x87\x37\x83\x39\x30\x71\x41\xdc\x87\x8b\x78\xa8\x13\xc4\xf0\x47\xc6\x79\x2b\xae\x92\x33\x1a\xb6\xf1\x96\xba\x27\x61\xc2\xcc\x5f\xf2\x3f\x72\x9e\x6b\xda\xca\x84\xb3\xf5\x2d\x6e\xbb\x17\xeb\xa6\x6d\x7a\xd2\x70\xcc\xfc\xbb\xa6\xc5\x1f\xb4\x42\xa2\xda\xa5\x82\x83\x83\xe7\xab\x99\xdd\xa2\xe7\x2c\x70\x2f\x45\xb3\x7f\x8a\x6f\x65\xae\xf5\xe2\x5a\x2c\xd0\xb8\x3a\xb0\xb4\xaf\xf8\x96\x86\x25\x9c\xb8\xe6\x0b\x35\xd3\x27\x32\x87\x56\x6b\x96\x5d\x4e\xe3\x2b\xe6\x0e\xf8\xf9\x92\xef\xfd\x12\xd8\x6d\xc3\xc9\x59\x17\x15\x21\xb7\xdf\x2e\x30\x75\xc2\x39\x09\xe5\x5b\xe1\x13\x0f\x6f\x7e\xb3\x44\xd4\x92\xb6\xe2\xac\x07\x6c\xba\x83\x07\x63\x1c\xb7\xa0\x43\x8c\x46\x3d\x51\x1d\xb9\x56\xc6\x55\x9f\x94\x4b\xe3\x82\x24\x27\xea\x3a\xd4\x5e\x99\x7c\x9b\x22\xf6\x31\x7d\x99\xc0\x2a\x03\xee\xc3\x8e\xab\x36\x85\xa5\xb8\x62\x59\x54\x66\x54\xe9\x7b\x3d\x02\xf6\x56\x62\xaf\x9a\x51\x35\xe2\x8e\x34\xe2\x7d\x95\x54\xa0\x19\x0f\x51\xf1\x32\xee\xad\x59\x12\x7f\xa4\x63\xef\x39\xfd\xab\x5e\xf2\xf0\x88\xa5\xa2\x18\x74\xd9\x34\x1d\xf4\xb1\x2d\xc4\x59\x76\x93\x8c\x50\x87\xe0\xc1\x52\x12\x0c\x3f\x74\x70\x03\x81\x96\xaa\x1c\x40\x22\xd7\x9e\x42\xe2\x06\x79\x6a\xa9\xcb\xb6\x87\xfe\x4c\x27\x54\xd2\xef\xa9\x2b\xa0\x7d\xf4\xf4\x9c\x20\x0f\x56\xf5\x1d\x8f\xaa\xf9\xae\x53\x2a\x25\xf5\xe4\xca\xec\xed\xdc\xc4\xad\x9c\x00\xf4\x70\xe5\xe9\xee\xb9\xe2\x74\xff\xf2\x12\x1c\xae\x81\x96\xfd\xea\x95\xe9\x10\x05\x79\xb5\x60\x5f\x8b\xd0\xd8\x99\x03\xca\x1e\x32\x50\xf6\x98\x80\xb2\x0b\x00\xb9\x56\x13\x5a\xa1\x83\x73\x83\xcc\x10\xf0\xab\x89\x56\x82\xbf\xa8\x86\xf5\x22\x39\x14\x1f\xca\xa1\xe8\x1b\x4b\x75\x20\xd2\xea\xda\x85\xea\x39\xba\x9d\x21\x2b\xfa\x96\x9f\x77\xad\xf8\xfd\xf5\xed\x40\x81\xcb\x5c\x52\xc4\xa4\x41\x24\x0a\x93\xc3\x7d\xb5\x23\x79\x70\xee\x73\x85\xb1\xef\xe0\xaa\x72\x1a\xd4\xe4\x18\xe3\x86\x58\xe1\xa3\x86\x98\x3d\x0b\x7b\x70\xae\x25\x55\x26\x3a\x60\x93\x7d\x77\x32\xe6\x9f\xae\xce\x59\x4e\xab\x9d\x09\xf3\x84\x0e\xbd\x07\x76\x9b\x63\x8f\x1e\x06\x76\x63\x11\x58\x55\x40\x33\xa9\x33\x86\xd6\x01\xa8\xa4\xa4\x37\xf6\x00\x51\x75\x5c\x02\x79\xf4\x3d\x0c\x22\x5e\x53\x51\xf7\xb5\xdc\xf2\xf2\x8b\x18\x7a\xbe\x05\xad\x5d\xaa\xf1\xeb\x76\xee\x9e\x88\x6f\xc8\xc5\x1d\xc8\x3f\xe3\x28\x50\x41\x7f\x70\x9f\x9c\x58\x5b\xe8\xeb\x7a\x20\x28\x2d\x99\xca\x97\x25\x45\x22\xec\xa5\x46\x00\x29\xd1\xcc\x81\x92\x32\xd0\x37\xc5\xbe\xc7\xfe\x85\x7e\x8e\xeb\xd9\xa9\x6f\x6d\x14\xe5\xa3\x53\x6b\x5d\x82\xad\xbc\x0a\xce\xd9\x61\x96\xf1\x0d\xa3\x64\xf8\x3f\xec\xec\x37\x73\x95\x93\xa4\x51\x3a\x45\x56\x43\xc4\x9b\x4d\x5c\x8d\xd8\xbc\x9e\x3c\xdf\xea\x60\x39\x0b\xb5\x5c\x07\x27\xd5\x59\x8b\x1c\x6a\x66\x9c\xaa\x8b\x19\xc9\xb9\x66\xeb\xda\xdb\xae\x7f\x70\x4e\x6d\xf6\x8f\x48\xa2\xe5\x78\x89\x7c\xb3\xf5\xb1\x12\xb6\xcc\x38\x92\x96\x43\x6e\x42\x7e\xfb\xf1\xf3\xcc\xde\xba\x3c\x7c\x69\xf2\xb4\x72\x2f\x4d\x0a\x4b\x0f\xaf\x23\xdc\x72\xab\x1c\x90\x17\xee\x52\xc5\x4b\x26\xa5\xad\xd2\x2e\x02\x2d\x9d\x46\x0f\x30\x44\x21\x23\x7c\x42\x05\x70\x26\xb0\x18\x74\x6c\x33\xcc\xa7\xc8\x8f\x1d\x0d\x10\xc0\xc1\x92\xe1\xa1\x16\x24\x14\x98\xf7\x83\x17\x16\xbf\x83\xff\xe1\x14\xae\xc6\xef\x76\x2a\xae\xd2\x89\x1e\xbc\x58\x4e\x41\xa7\xde\x25\x0e\xef\x21\xff\x27\xbd\xc0\x1c\x77\xed\xde\x61\x1e\xf4\xfc\x9f\xf3\x12\x73\x84\x9e\xd8\xd1\xf4\xdc\x3f\x23\x32\xf5\x96\x53\xfa\x92\x95\x3c\x4e\x3b\xe3\x28\xc6\x5b\x79\xe0\xd8\x5b\x6a\xc0\xe1\xf8\xcb\xc0\x0f\x89\xbf\x0d\x2f\x69\xc4\xdb\x92\xca\x99\xb3\x7d\x40\xd7\x29\xeb\x93\xaa\x7b\x9e\x09\x19\x8c\x49\x3e\x8d\xee\x90\xe5\x33\xa7\x4c\xa7\xc3\x41\x92\xa6\x8b\x2f\xbd\x94\x20\x64\x84\xad\x8c\x24\x02\x56\xb9\xff\x3c\x95\x7f\x5b\xec\xb1\xca\x9d\xa6\xa7\x32\xb0\xc0\x4f\x31\x27\x69\x03\xb9\x86\xd2\x60\xd8\xe7\x6d\xb9\x36\xa1\x3c\x9e\x9a\x7c\x8a\x32\xd8\xca\x07\x79\xd1\xb5\xf0\xa1\x16\xf2\x75\xd2\xcd\x2c\x1a\x78\x12\x34\x30\x3d\x38\x86\x1b\x30\xde\x69\xc8\xa1\x93\xbf\x7c\xbd\x6a\x6c\x37\x7f\xdc\x20\xc1\x92\x7c\x40\x38\x1d\x12\x56\xb5\x9d\x87\x61\x73\x55\x51\xcf\x1f\xd2\xbf\xd9\xa3\x67\xc9\xe7\xc9\x27\x4d\x01\x38\x09\xe5\x1f\xb1\x2d\xae\xd9\x16\x40\x8b\xf5\x55\x36\x7e\x5c\x34\xaf\x36\xf0\xbf\x51\x37\x48\xbc\xed\xd0\xf0\xa3\x1c\xcd\x0c\x6f\x03\xf1\x73\x75\xab\x38\x47\x24\x9f\x74\x21\x67\x03\xe2\xcb\xcd\xb5\x66\xb6\x53\x4c\x43\xa2\xe0\xbc\x7a\x0f\xd5\xd0\x9c\xa8\x70\x41\x92\x88\xc0\x69\xc6\x8f\x9e\x45\xa5\x1e\xe5\x5d\xd7\x96\xcb\x1e\xd7\xfa\xc0\xfb\xb1\xfc\x72\x0e\xfb\x63\x28\x92\xdc\x52\x40\x3c\x5c\x50\x95\xc5\x44\x83\xf2\xcc\xa4\x83\x9b\x7e\x67\x92\xab\x48\xb6\x3f\x49\xf3\xd7\x4c\x8d\x91\xaf\xa6\x46\x50\xc7\xc9\x41\x22\xa0\x1b\x1c\x42\x0b\x9b\xcf\x9f\x92\xaa\x5e\x64\xe7\xc7\xae\xc0\x6e\xba\xad\xbc\xe8\x31\x4d\x82\xd9\xf9\xd3\x8b\xb3\x18\x98\x69\x09\x1f\xb3\x98\xa0\x50\x12\x11\x55\x52\x4b\xbd\xe5\x34\x00\xc5\x3a\xe2\xb4\x38\x7a\xc4\x0f\xce\xee\x01\xfd\x60\x49\x01\xf9\x93\x5a\xd2\x1e\x70\x67\xa4\x69\xad\x0b\xe9\x45\x63\x97\x23\x00\x3e\x01\xe4\x14\x42\x5c\x27\x3c\xf8\x25\x5a\xd1\x0d\x6b\xa5\xb1\xab\x48\x6b\x96\x7d\x7c\xf4\xf1\x2c\xdd\xdf\x8b\xae\xb2\xf3\xc7\x2e\x9e\x33\x3b\x29\x2f\x59\x4f\xbf\x78\x72\xee\x91\xf1\xaa\xdc\x02\x6a\x81\xb8\x21\x92\xff\x9e\x63\x96\xf2\x4c\x0f\x3e\x78\xd4\x46\x55\xb6\xb8\xcf\xe5\x00\x71\x33\x72\xe2\x3c\xd7\xc0\xf1\xec\xec\xf8\xe9\x60\x28\x9c\xa6\xcd\x89\x9b\x18\x54\xa5\xa3\x42\x42\xd8\x07\x2e\x81\xab\x67\x58\xe5\x96\xfd\x10\xac\xf9\x25\xa0\x3c\xce\x75\x05\x09\x60\xe4\xcb\xb6\x87\x25\xa5\x12\x50\x9e\x12\x4d\xe4\xe4\xa6\xb2\x90\xe7\xb2\x69\x60\xcb\xa0\x5e\x22\xe0\x46\xaf\x40\xc6\xef\x20\x46\x4c\xf5\x16\x27\xbc\xbd\x63\x9a\x76\xbc\x8b\x5b\x8e\x25\xa4\x3f\x80\x95\xa1\xcb\xde\x21\xa8\x85\x70\x7f\x76\x47\x88\xb2\xaf\xde\x5e\x25\x78\xad\x0d\x66\x38\xc8\xb6\xba\x27\x66\x26\x6a\x70\xf4\x1a\xe5\x1e\x94\xed\x8d\x95\x11\xa4\x3b\x2b\xe2\xe4\xed\xe7\xc0\x9a\xa8\x35\xf2\xed\x76\xe2\x8e\xe7\x38\x3c\x56\x97\x40\x52\xe3\x08\x19\xb1\x91\x77\xdf\x3e\xd0\x28\x8e\x75\x0f\xd4\xf0\x88\xd4\xcf\xcd\xe5\x65\x45\xba\x3e\x72\xe7\x1a\x64\x53\x23\x1e\x56\xd6\x58\x78\xf3\x26\xad\x5e\x5a\xde\x7a\x30\x81\xb2\xf1\x70\x0d\x9f\x6a\x1f\xdf\x9d\x3d\x69\xd6\xa2\xda\x73\xb9\xaf\xd6\xf6\x6c\x06\x6b\xdd\xc5\x81\x73\xff\xf7\x2c\x3d\x82\x0b\x43\x80\x71\x48\xd4\xe7\x78\x08\x2c\xba\xb5\x4d\xd3\x85\xb7\x83\xb2\xd1\xb3\x6c\x6e\x69\x70\x09\xbb\x5a\xc8\x43\x22\xc3\x2a\xcc\xf7\xbe\x75\x21\xf7\xa7\x50\x5f\x3a\xbc\xba\xe6\x6b\xd3\xec\x3e\xa8\x2a\x0c\x96\xcd\x3a\x74\x0a\x37\xa8\x41\x0c\xf3\x39\x7f\x8b\xe6\x00\x7f\x71\xa5\x68\x46\xcc\xe0\xdc\xf9\x5e\x1c\xca\x93\x63\xcf\x2d\xc1\x72\x2f\xa9\x61\xd1\xdd\xe1\xff\x08\xa6\xa0\xb8\x52\x24\xb0\x85\x8f\x91\x6c\x14\x3e\x26\xd2\x5e\xf8\xcc\xe3\x9c\x18\x8d\xb5\x55\x4c\x37\xe7\x4f\xa6\x0a\xfd\x4b\x72\x16\x11\xcd\xac\xaf\xdd\x43\xfa\xee\x35\x9d\x4d\xf7\x3e\x8d\x6b\x78\x3c\x0f\x3f\xfa\x26\xa4\xb6\xfd\x33\x91\x9c\xf9\xf2\x5e\xb6\xcb\xee\xd1\x31\xba\x8c\x5a\x71\x67\xc9\x2d\x5b\x72\x15\x53\x9e\xb3\x5a\x24\x0f\x5c\x23\xfe\x1a\xf7\x95\xce\x65\x2b\xe4\x9e\xc2\x53\x4e\x53\xaf\x91\x0f\xf7\x89\x3b\x9d\x92\x5d\xc2\xd4\xea\x4e\x27\x37\x66\x44\xb8\xa9\x4d\x44\xec\x6f\x24\x20\x75\x4d\xed\x43\xdd\x1e\x36\x9d\xd7\x4a\x06\x75\x5d\x26\x72\x97\x99\x9c\xe3\x84\xc2\xd0\x89\x2a\x7e\x70\x2f\xc3\x8e\x2c\x16\xbe\x11\x3d\x54\xc5\xe4\x29\x2e\xdc\x6a\x2b\x92\x43\x80\xbe\xdf\xfc\xca\x3c\x9a\xcb\x7c\x3d\xc6\x97\xda\x7a\x9e\x25\x46\x9e\x0f\x45\x12\x07\x7c\x96\x6f\x91\x73\xda\xac\x5e\xa5\xa8\xaa\x24\x11\x6e\xdb\x2c\x03\x95\x5f\xe4\x1b\x3a\x1d\x9b\xec\xe9\xcd\xfb\x1a\x16\xc0\xc2\xb8\x87\x97\x87\x53\xd9\x92\x9e\x95\xfb\x59\x9c\xc8\xef\xc0\x31\x25\x06\x1c\x91\x68\x8b\x8a\xaf\x61\x83\x60\xf3\x43\x59\x08\x5b\xf1\x11\x8f\x1e\xd7\xd6\x74\x41\xda\x8f\x2a\xbf\x30\x12\x43\x07\x0f\xa6\x58\x55\xa0\xe1\xed\x6d\xcd\xe5\x9d\xd8\xbb\xa3\x43\x4a\x44\xad\x41\x02\x7d\x4f\x3d\x9a\x7a\x0d\xa9\x55\x31\x01\x0c\x34\x62\xbb\x97\x30\xed\x80\x63\x09\xe0\x66\x6b\x24\xf1\x64\x62\x00\xfc\xaf\x40\x92\x96\xb9\x0e\xe8\xd8\x2f\xb8\xfd\x30\x16\xdc\xa2\xc5\x3f\x78\xf6\x3d\x65\x80\x21\x7c\xa2\x2b\xb2\x4a\x98\x96\x3b\xca\xa0\x1d\xdf\x80\x1e\x72\x5d\xc1\xc7\xa7\x4f\x9e\x0f\x61\xa7\xb8\x95\x16\x8d\xb9\x9b\x16\x4c\xb2\x32\xf1\x56\x98\x9e\x0a\x3b\x2a\x0c\x20\xf7\x4e\x42\xb6\xd0\x21\x26\x2d\x9b\x69\x50\x81\x4e\xc5\x2d\x3f\x67\x80\x7f\xa1\xbe\x1c\x02\x9e\x7e\x59\x71\x1f\x34\xfd\xe0\x64\xda\x72\x9a\x4f\x43\x5a\x23\x1e\x7e\x87\xc6\x3d\xe4\x19\xae\x0e\xed\x4f\xbc\x64\xcb\x66\x91\x6b\x63\xc2\xd8\x87\x15\x1c\xe0\x01\x8a\xf1\x4d\x84\x39\xd0\x06\x28\x87\x9a\x81\x08\xa6\x28\x18\x6e\x7b\xec\x4f\xa9\xe2\x77\xbe\x46\xb7\xae\x4a\x78\xc0\x77\xba\x5f\x92\xba\xeb\x95\x47\xa9\x5c\x1d\x24\x78\xed\xdc\xdd\x43\xc5\x46\xfc\xc1\xec\xab\xf2\xd2\x0c\xee\x28\xdc\x8e\x9f\xc2\xc1\x55\xd7\x6d\xad\xa6\xf7\xb8\xf9\x0b\x75\xc0\x6f\x28\x0e\x67\x7b\x4b\xa3\x83\xe1\x6f\x4b\xbe\xa0\xda\xbf\x78\xdf\x6f\x72\xb6\xe7\x0c\xe0\xf5\xa4\x9c\x7b\x2d\x8b\x41\x6f\xde\xc5\xb0\x6e\x33\xae\x5b\x3d\x15\xa2\x0d\xf9\x9d\x7e\x4b\x64\xa6\xfd\x6b\x1b\x8b\x49\x80\x8c\x65\x3d\x2d\xf5\x3e\x81\xb3\x55\x4b\xa7\xdf\x85\x38\x52\x61\xc1\x5a\xbc\x04\xe0\x0a\x93\x5d\xef\x3e\x5a\xa2\xf5\xa2\x87\x85\x97\xc6\x5f\xe4\x11\x34\x3f\x5d\x43\xe7\xcf\x1b\x5c\xda\xfc\x60\xde\x86\x22\xff\xee\x0d\x7d\x8d\xde\xbc\x71\xc5\xe6\x0d\x04\x56\x33\xbe\xcd\x89\x5b\x68\x58\x87\x38\xe3\x7f\xe5\xf2\x35\x96\x5b\x1d\xdc\x54\xba\x69\x37\x70\x42\x21\x38\x55\x1b\x9d\xd1\xd3\x63\x88\xa8\xc1\x44\x7d\x78\x2f\x4b\xe7\xaf\x28\x3f\x17\x48\x10\x15\x9d\xca\x3e\x35\xa0\x77\x58\x74\xd5\x22\xe9\x30\xfe\xb4\xf8\x7c\x9e\xc8\xd5\xae\x6c\x62\x2e\xae\xa8\xd9\xce\x9f\x6f\x67\x31\x28\x2b\x6f\x91\xb2\x3a\xbc\x0a\xaa\x32\xab\xd7\x89\xb7\xb9\x70\xc3\xd5\x75\x05\xe1\xe8\xa7\xf4\x89\xda\x24\x77\x82\x64\xb7\x4e\x22\xad\xef\x5b\x17\x63\x5d\xfb\x04\xb4\x71\x1d\xfa\x0e\x52\x52\x25\xd4\x3d\x53\xf0\x79\x78\xa6\x20\x3f\xf4\xe0\x92\x7f\xec\x86\x5a\xbd\x2a\xdf\x36\xce\xc1\x3a\x1a\xc2\x67\xb6\x5d\x7d\x76\x3f\x7e\xc5\x86\xdf\x43\x48\xde\x80\x48\xdb\x94\xd9\xc9\x83\x40\x3f\x47\xef\xe5\x44\x0f\xf2\xf8\xc6\xc5\x3c\x2c\xed\xe3\xdd\x88\xf0\x50\x8e\x36\x93\xbe\x55\xa1\x18\x4a\x1e\x09\x88\x9b\xd3\xb7\x28\x26\x5a\x4b\x9e\x29\xd2\x77\x98\x6e\xfe\xa2\x81\x12\xd1\x20\x3f\x6c\x70\x13\x89\xf1\x7f\x8e\xf2\xf7\xff\xe1\xe1\xf9\x4c\x93\xbc\x12\xf2\xab\x6c\x4b\x0c\x30\xf5\xbb\xd6\x05\x9e\x5c\xdd\x88\x5a\x38\xd3\x50\x97\xaf\xa3\x45\x05\xb1\xd2\x97\x5b\x96\x36\x3f\xb8\xb2\xfa\xd2\xc9\x17\xfe\x11\x0b\xe4\x83\x50\x39\x37\x8f\x58\x36\xfc\x51\x6d\xf6\x85\x4b\xad\xc0\xd4\xdf\x35\x4d\x45\xb4\x9f\xaf\x89\xd2\xf2\x15\x1e\xba\xc5\x1b\xb7\x88\xbd\x92\x7b\xf1\x1c\x2f\x2a\x63\xef\xbd\x9e\xeb\x9f\x9f\xdb\xf9\xe7\xec\x4a\x0b\x9f\x2d\x64\xf8\xff\x7c\x43\x1f\x68\x7f\xc1\xfc\xca\xbf\xaf\xe8\x37\x60\xe5\x57\x41\xbf\x0a\x84\x16\xf3\xaf\xd7\x5c\x19\xb7\x0b\x5a\x97\x58\x32\xd5\x26\x2e\xc2\x3f\x77\xf4\x83\x05\xd0\xfb\x1c\x96\x4b\x9c\xbd\xe0\xb7\x7d\xb4\x3f\xab\x4f\x0a\x50\x5f\xf2\xe6\x8f\x74\x2b\x9f\xaf\x9a\xbe\xe5\x8f\xfc\x08\x34\x7f\x2a\xf2\x1d\x7f\x41\xff\xf2\xe5\xb5\x31\xaf\xb4\x45\x0c\x42\x1b\x24\xe1\xfa\x4a\xda\x23\x61\x5c\xbe\xed\x4c\x2e\xad\x61\x38\xf2\xa9\xcd\x5f\x2f\xdc\x98\xdc\x80\xe4\xab\x1b\x91\x0e\x87\x31\x5b\xb4\xcd\x16\x89\xc1\x7f\x0a\xaf\x5b\xbb\xa7\x3b\xcf\xfb\x9b\x5f\xab\xce\xb0\x27\xe5\x9f\xfb\x9b\xf7\x19\x13\xa7\xd5\xd8\xf0\x15\x52\x27\xb4\xde\xc7\x72\xc6\x41\xf3\x9c\xf0\xbf\xac\xb7\xbd\xda\x01\x9e\x8d\xa2\x9f\x87\xf5\x32\x17\x1f\xd3\x49\x18\x03\x1b\x1e\x68\xb9\x17\x4b\x3a\x4a\x4f\x41\x75\x4e\xd4\xaf\xfc\x03\xe0\x9f\xfc\xdb\xbf\xf1\x6b\x27\xa4\x3b\xfd\xfb\xbf\x67\x4f\x1f\x7e\x9a\x99\x37\x48\x17\x9b\x99\x00\x4f\x87\xf9\x1b\x28\x49\x04\xbb\xc9\xdf\x7c\x9b\x80\x73\x96\x05\x0e\x61\xe0\x7b\x51\x6f\xb8\xd3\xf6\x81\x97\xff\x1b\x00\x00\xff\xff\xff\x81\xdd\xcc\x2e\xbe\x00\x00") func confLocaleLocale_esEsIniBytes() ([]byte, error) { return bindataRead( @@ -4399,12 +4399,12 @@ func confLocaleLocale_esEsIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_es-ES.ini", size: 46689, mode: os.FileMode(493), modTime: time.Unix(1441457542, 0)} + info := bindataFileInfo{name: "conf/locale/locale_es-ES.ini", size: 48686, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_frFrIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x7d\xcb\x8e\x1c\x47\x97\xde\x9e\x00\xdf\x21\xa5\x01\xdd\x24\xd0\x2c\x42\x92\x6f\xf8\xa1\x92\x4c\x36\x29\x91\xbf\x9b\x97\x61\x53\x1c\xd8\x82\x50\xca\xaa\x8c\xee\x4e\x31\x2b\xb3\xfe\x8c\xcc\x6e\x36\x07\x03\x78\xfb\xbf\xc5\xc0\x0b\x5b\x9c\x85\x57\xb3\xf3\x6e\xfa\x4d\xfc\x24\x3e\xdf\x39\x27\xae\x99\xd5\x94\x34\x98\x05\xd9\x95\x71\xbf\x9c\x38\x71\xee\x51\xee\x76\xab\xca\xd8\xcd\xf2\x87\xb6\xb0\xa6\xbf\xa8\x37\xa6\xa8\x4c\xf1\x7d\x3d\x14\xb6\x6c\x6d\xb1\xeb\x6b\xcb\x29\xc3\xf5\x3f\x0d\xa6\x28\xc7\xa1\xbb\x7f\x7e\xfd\x71\x6d\xfa\xb3\xeb\x8f\xc5\xa6\xab\xe8\x7f\xd3\x16\xdf\x77\xb7\x6f\xdd\xbe\x75\xde\x6d\xcd\xf2\xe1\x66\x33\x9a\xba\xb9\x7d\xab\x2a\xed\xf9\xba\x2b\xfb\x6a\xf9\xa6\x5c\x37\xa6\x1c\xd1\xcc\xba\xeb\xab\xdb\xb7\xcc\xfb\x5d\xd3\xf5\x66\xf9\x44\xfe\xf6\x54\xd5\x34\xbb\xe5\xc3\xba\x32\xb7\x6f\xd9\xfa\xac\x5d\xd5\xed\xf2\xa8\x6b\x5b\xf3\xbe\xee\x5a\x4a\xea\x36\x75\xd9\xac\x26\x39\x45\x79\x61\x36\xc5\xd8\x16\xfd\xf5\x47\x8b\x1e\xa4\x60\xf1\xa7\xe2\x4b\x53\x5c\x7f\x1c\xca\x9d\x29\xbe\xb6\xdb\xb2\x69\xbe\x29\x2d\xf2\x4c\x8f\xd2\x9b\x6e\xbb\x1b\xcc\xd7\x0f\x24\x47\x7b\xec\xc6\x61\xf9\xf8\xfa\xe3\x26\xea\x15\xc9\xe3\x6e\x79\x44\xad\xc7\x15\x6f\xdf\xea\xcd\x59\x6d\x07\xd3\x2f\x4f\x0e\x4c\x2b\x1f\x3c\x8b\x4b\xb3\xb6\xf5\x60\x96\x27\xf4\x5f\xf1\x77\x66\x7d\xfb\xd6\x85\xe9\x2d\x35\xb6\x7c\x2b\x7f\x6f\xdf\xda\x95\x67\x66\xf9\x8a\xfe\xbb\x7d\x6b\x30\xdb\x5d\x53\x52\xf1\xe7\xb4\x8c\xbf\x36\x94\xd2\x94\xed\xd9\x88\x02\xc7\xf8\x41\x09\x9b\xde\x50\x81\x55\x6b\x2e\xdd\x28\xda\x6e\xbc\xa0\x99\x2e\x16\x8b\xdb\xb7\x46\xda\xb1\xd5\xae\xef\x4e\xeb\xc6\xac\xca\xb6\x5a\x6d\xb1\xa8\xaf\x38\xa1\x18\x87\xba\xa9\x2d\xd5\x1e\xfb\xc2\x0c\xc5\xae\x19\xad\x4c\xc9\x54\xb4\x86\xab\xd2\xca\x32\x6e\x06\xd9\xc1\xa1\x6c\x87\xe2\x2f\xe8\x53\xda\x6d\x4b\xda\xcb\x17\xdd\xb6\xa8\x0e\xa2\x96\x68\xeb\xb6\x65\xdd\x2c\x9f\xdc\xc7\x1f\xcc\xc6\xda\x4b\xda\x52\x9a\xc2\x80\xed\xc5\x37\xaf\xcf\x6a\xb8\xda\x19\xf4\x70\x5a\xf7\x5b\xf3\x81\x66\x52\xee\x86\xcd\x79\xb9\x3c\x92\xbf\xe8\xa6\x37\xbb\x8e\x96\xab\xeb\xaf\x96\xaf\xaf\x3f\x9e\x5e\x7f\xec\x4d\x3b\xd4\x86\x9a\xed\xfa\xb3\xb2\xad\x3f\x94\x03\x96\xee\x25\x7f\x58\xfe\xb8\x7d\x6b\x5b\xf7\x7d\xd7\x2f\x9f\xd7\x7d\x57\xd3\x70\x68\x65\x56\x68\x87\x86\xca\xeb\x52\x64\x2d\x21\x7f\x5b\x9f\xf5\x58\x66\x2e\xd2\x34\xa6\x78\xce\x09\xdc\x1c\xf2\x4f\xbb\xfe\xdd\x7c\x7d\x9a\xfc\x93\xed\xba\x2f\xdb\xcd\xb9\xd9\x52\x92\x94\xa7\xd1\x85\xb6\xb2\xd1\x95\x2d\x6d\x1f\x97\xf8\x1e\xad\xf4\x45\x63\x6c\x52\x86\x36\xa1\xac\xb6\xb4\x01\xbb\xb2\x35\xcd\xf2\x21\x7e\x03\x7c\xb4\x81\x72\xb3\xe9\xc6\x76\x58\x59\x33\x0c\x75\x7b\x66\x09\x54\xfa\x72\x7b\xfd\x2b\xc1\x97\x2d\xaa\xb1\x38\x52\x08\x9c\xcb\xbf\x7d\xeb\xaa\x1b\x3d\x40\x2c\xdf\x76\x94\x58\xc8\x97\x66\xf9\x5a\x6f\x3b\x3a\xda\x71\x4d\x9e\x99\x5d\x9d\x1a\x53\x2d\xbf\x6b\xc6\xf7\x34\xf3\x72\x33\x8c\x65\x53\x13\x7c\x50\xfe\x6e\x6c\x1a\x5a\x68\x02\x10\x3b\x58\x3a\xb7\x34\xe0\x9a\x5a\xc7\xec\x5e\x53\x2a\x90\x03\x95\xaa\xad\xa5\x02\x80\xc0\x75\x73\xfd\xeb\x56\x1a\xde\xd0\xf2\x61\xa6\x6d\x3b\x36\x38\x24\xb7\x6f\xfd\x48\x67\xb5\xdf\x9c\xff\x84\x69\xe0\xc7\xf2\xb5\xa1\x05\xee\xf1\x8f\xe1\x7a\x3f\x60\x00\x32\x97\x3f\xc4\xf0\xc8\x5d\x86\x1e\xa9\xbb\xae\x02\xe0\x55\x0c\xc9\x3f\xd6\xad\x1d\xe8\x90\x53\x57\xfa\x6b\xf9\x4c\xfe\xea\x7a\x0f\xf5\x40\x4b\x85\xb4\x7e\xdc\xf0\xfe\x00\x8c\x5f\xf5\x66\x5b\x5f\xff\x4a\x13\x4c\x4b\x63\x01\xe8\x68\xaf\xaa\xb5\x20\xcd\xef\xbb\x33\x5b\xb4\x84\x34\x8c\xc5\xb9\x2f\x9e\x5f\x9d\xfc\xed\xf1\x61\xf1\xaa\xb3\xc3\x59\x6f\xe8\x77\xd1\x8d\x05\xfd\xa1\xbc\xaf\x68\x5e\x54\x4d\xfa\x4b\x36\x95\x56\xb1\x2c\xd6\xa5\xa0\xd9\x8a\xce\x24\x9d\x73\x2b\x85\x71\x86\xde\xd0\x7f\xc8\x79\xa4\x25\x1e\xfb\x12\xe7\xd4\xcd\xf2\xe9\xf5\x3f\x03\x1e\xa6\x0b\x93\x1c\xcd\xc7\x34\x27\x39\x9a\xd4\x6c\x38\xda\xdc\xf5\xb4\x61\x2a\x03\x7c\x4c\x2d\xbe\x35\x63\x4d\x50\xfe\x41\xb1\x09\xc3\x73\xb1\xed\x18\xa9\x3c\x7b\xf1\xe2\xe5\xe3\x47\x82\x82\x29\xf5\x17\xc3\x08\x7e\x43\x53\x23\x9c\xf2\x2b\xa6\x36\x0e\xa7\xff\x79\x75\x66\x5a\xd3\x13\xf2\xde\xd4\xc5\x8e\x60\x50\xd6\x88\x16\xc3\xda\x86\xf0\x55\xc5\xd8\xcf\x14\x27\x27\xc7\x18\xf2\x70\xbe\x3c\xa2\xa3\x56\x03\xfb\xfe\xa5\xc1\x52\xeb\x40\x9e\x00\x55\x6e\xf8\x10\xe2\x18\x9c\xd6\x9b\x73\x20\xf3\xf9\xc5\x8b\x96\xdc\xf4\xfd\x8a\xd0\xec\x70\xb5\xd2\xf6\xb8\x8f\x63\x1a\x27\x77\x33\xdf\x80\xab\x5f\xb4\x74\x7e\xcc\x38\x14\x04\xde\x04\x0b\x17\x74\x3d\x2d\x00\x55\x6e\x4a\xd3\xcd\xa4\x43\x4f\x0d\xf4\x25\x0e\x10\xdd\xa2\x04\x1e\x74\xa4\xe9\x8a\x4d\x96\xfc\xe0\xe1\x6e\xd7\xd4\x1b\x77\xe2\x35\xdb\xcd\x94\x20\x6e\xd3\xd7\x17\xb4\xe6\xa7\x0c\x82\x3c\x65\x5a\xdf\x56\x6a\x5f\xf0\xa9\xee\x22\x8c\x52\xd4\xb4\xb4\x9f\xc9\xa9\x91\xe9\xc5\x8b\xf5\xba\xdc\xd4\x34\x8d\x6a\x82\x19\x7d\x71\xd7\xf1\x9b\x6e\xb4\x72\xa0\xe3\x82\x96\x69\x81\x8a\x50\x14\x5d\x10\x16\x34\x42\xd7\x82\x36\x20\xf4\x77\x46\x77\x3b\x21\x07\xf4\x8f\x43\x3b\xd2\x65\x09\x28\x7c\xd2\xe2\x32\xc4\x75\x99\xc0\xa3\xcb\x77\xdd\x1d\xc7\xf7\x0a\xad\x3c\xf5\x52\x5e\x10\x4e\x2f\x08\x05\x5e\xff\x6a\x8b\xeb\x7f\xc4\xce\xec\x19\x3e\x6e\xb4\xeb\x8f\xef\xe9\xe4\x8d\x74\x0d\xf3\x42\xe3\x7c\x75\x74\x2b\xb5\xcb\xc7\xfc\xc7\xb8\x6f\xd7\xe1\x91\xa1\xf6\xca\xd3\x53\xba\xf2\x04\x71\x55\xdd\xb8\x6e\xf8\xc4\x1f\xfc\xf0\xfa\x98\x40\xf0\x29\x83\xe5\xf9\x6a\xd7\xf5\xc3\x92\x3e\xe9\x20\xf7\x43\x48\x72\x0d\x21\xb5\x68\xc7\x2d\x11\x41\xc5\xe5\x39\x41\x62\x01\xe4\x8a\xfa\x4c\x42\x51\x6a\x4d\xb0\x6f\x09\xd1\x1e\x52\x3f\x74\x3e\x0a\x9a\x1b\x03\x61\x31\x74\x58\x4a\x90\x43\x5c\xfc\x94\x6e\xf7\xb1\x07\x50\x9d\x0f\xc3\x4e\xfa\xe5\xd6\x9f\xbe\x79\xf3\x2a\x4a\x74\x3d\xbf\x18\xb7\xb4\x04\x1d\xdf\xb4\x28\x46\xe8\x98\xc0\xa9\x0c\xe0\x54\x80\x80\xc1\x92\x94\x0b\x81\xac\xb1\x6f\x96\x98\xdc\x3c\xdc\x51\xee\x6f\x5d\x1d\x8c\xe8\x01\xfe\x3b\xc1\xda\xd3\xf8\x89\x50\x1a\x4c\x4b\x67\xfe\xc0\x30\x31\xc0\x27\xa3\xdb\xa1\xf1\xd9\xa3\x71\x5a\x6e\xc6\x66\xa0\xce\x4f\xad\x52\x11\x73\xc8\x90\xd0\x65\xa0\x42\x9f\x13\x5a\xa5\xeb\xb4\xaf\x71\xe1\x6d\x69\x2d\x02\xc6\x2b\x4e\x9e\x63\x85\x38\xf5\xb4\xef\xb6\xb8\x01\x2e\x4c\x0b\x22\xa6\x32\x51\xba\x9b\xde\xc3\x8a\x9a\x97\x43\xde\x1c\x10\xf9\x79\xfd\xb1\xaa\x01\x78\x87\xc5\xeb\xef\x8e\x8a\xff\xf0\xd5\x97\x5f\x2e\x8a\x13\xc0\xe0\x48\xd0\x56\x6a\x61\x5a\xca\xbe\x07\xb4\xd9\x9a\x4e\x94\x39\x24\xf2\x12\x50\x4a\xe8\xa7\xeb\xb7\xe5\x50\x7c\x4e\x27\xfa\xf3\xe2\x6b\x9e\xcc\x7f\x31\xef\x4b\x14\x5a\x10\x8d\xf8\xcd\x02\x94\x00\xdd\xc1\xbd\x9e\x08\x5e\x20\xe9\xfb\x49\xe8\xdb\x17\xca\xa9\x28\x46\xd5\x33\xc5\x1d\xd9\xb9\xda\x08\x5d\x45\xb4\xf6\x50\x03\xde\x68\xeb\x94\xd4\x12\x28\x20\xb2\xc5\x93\xa5\x42\xb7\xf0\x7a\xb7\x1d\xad\xfe\x55\x5c\xeb\x05\x52\x1c\xec\xd0\x95\x56\x3c\xa7\x72\xb6\xe8\xcd\xf5\xff\x66\x72\x91\xc1\x79\xa5\x8c\xc1\xfc\x7e\x71\x19\xa1\x31\xd1\x00\x71\x08\xc8\xd0\x2a\xd4\x46\x77\x7a\xda\xd0\x69\x14\x5c\xef\xbb\xa6\xcd\x05\xda\x3f\xef\x7a\x5b\x44\x24\x77\x5c\x98\x20\x7f\x47\xd4\x37\xd1\xe4\xb6\x0c\xd5\x8e\x1e\xbf\x38\x2c\xb6\xd7\xff\xb4\x35\xa0\x5a\x89\xba\xa9\xe4\xde\x5e\x14\x6f\x00\xf8\x82\xc1\xb0\x7d\xb4\x77\x1b\xe3\x11\x16\x10\x58\x5f\xaf\x47\xbe\x1e\xa8\x62\xd3\x6d\x4a\x80\xac\x9e\xc6\x15\x11\x84\x17\xe5\x50\xf6\xcb\xc7\x7a\x3c\xbf\xd7\x04\x07\x8f\xd3\xa2\x6e\x7c\x79\x05\x22\xc4\x8b\xcd\x68\x07\xc2\xd7\x3a\x88\xc3\x82\x48\x88\x42\xb2\x69\x85\x08\x7f\x8f\xc4\xf7\x94\x95\xa9\x8a\xf5\x55\x01\x10\xb1\x84\xd1\x69\xf9\x4e\x4b\x3a\x22\xd1\xa8\x74\x0f\x85\x0e\xce\x16\x02\x30\x38\x36\x4c\x85\x55\x07\x35\x5f\x1a\x3b\x39\xd9\x73\xb5\xe7\x17\x73\x5f\x1b\x04\xe9\x66\x6c\x64\x2d\xcb\x40\xa1\xd2\x36\x5b\x5c\x88\x17\xb8\x58\x36\xc2\x8f\x60\xcf\x85\x2d\xb2\x0b\x25\x90\x88\xfa\x57\x4e\x6d\x75\x51\x13\xe7\xf2\x98\x0e\x48\x5b\xf1\x95\x60\xc2\x66\x0b\x35\x40\x18\xa7\x06\xdd\xc7\xed\x80\x37\xb2\xf3\x8d\xe8\xf8\x4f\x68\x58\xba\xc7\x74\xaa\x2d\xda\x52\xf8\x01\x1f\x63\xc2\xe8\xf8\x26\x69\x5c\x9b\x8b\xe2\x98\x7e\x5e\xd4\xb6\x96\x39\x94\x6d\xd7\x5e\x11\x79\xca\x17\x3c\x0e\x79\xe7\xaa\x30\x46\x75\xd5\x98\x9e\x71\xe3\x7d\x60\x92\x23\xb5\x70\x74\xbc\xd2\xd4\x42\x10\xbe\xc5\x1d\xda\x1e\x94\xb8\xbe\xe9\x54\x17\x6b\x43\x28\x83\xa9\x8c\x4d\xc6\x44\xca\xba\xd2\xc0\x92\x6b\xb0\xbc\x02\x06\x6b\x0e\x9e\x3d\x2e\x96\xc5\x17\x74\x98\xfa\x12\x08\x5e\x6e\x44\xae\xc1\x2c\x38\x8e\x39\x8d\x34\x19\xc7\xec\xe1\x14\x76\xa1\x78\x98\xec\xa1\xab\x11\xb1\x78\xc9\x4d\xed\xf8\x93\x19\xa4\x04\xf2\x9a\xf1\x4c\xc8\xf6\x3c\x9e\x1c\xea\xb8\xac\x34\x94\x72\x8c\x4a\x86\xaf\xce\xe8\xca\x76\xb4\xb8\xde\xe0\xe0\x88\xed\xb0\x3a\xab\x87\xd5\x29\x10\x63\xb5\x7c\x43\x13\x2c\x01\xad\xb2\x13\x5b\x86\xa3\xe2\x73\x2a\xf1\x39\x6e\xba\xf3\x0e\xe7\x99\xb8\xfd\x3b\x17\x8e\x5e\xfc\x0a\x48\x6e\x45\x47\xad\x6e\x70\x06\x94\x09\x52\x2e\xbc\xd8\xd1\x95\x56\xa3\x0a\xf6\x9d\x48\x89\x8a\x37\x89\xd0\x01\x71\xa4\xfd\x99\xa7\xfb\x16\x85\xa7\x7b\x09\xaa\x1a\xf4\x84\x6c\xc6\x98\xae\xa9\x75\xdd\xf2\xb9\xe9\x00\xc0\x35\xb3\x82\x44\xb1\x6c\x08\x18\xc2\xfd\x71\x07\x47\xa2\x6e\x2f\x88\x8b\xaa\xc0\x33\x28\xa8\xe4\xe4\xff\x84\x7c\xad\xdb\x4d\xd7\xf7\x04\xd2\x56\xe7\xe6\xda\x08\x24\x9e\x50\xc9\x7b\xc9\x23\xad\xe0\xd6\xc6\xd3\x5e\x58\x1c\x02\x1e\x62\xb9\x52\xb8\xa3\x6a\x04\x9f\x04\xb9\xb4\x01\xbc\x26\x4d\x0a\x96\xc4\x0a\x1a\x88\x55\xee\xd8\xe2\xfe\x37\xf4\x3f\x2d\x37\xc1\xb8\xdc\x43\x67\x6e\xb7\x4e\x1c\x51\x68\x94\xac\x96\xec\xb1\xf7\xa4\x49\xb2\x61\x6e\x52\xc9\x31\xca\x01\x38\x3e\x2c\x1e\x80\xfd\xf4\xc2\xfa\x08\x50\xd9\x71\x03\x56\x6c\xf9\xa8\x36\x2d\xa1\x01\x3a\xcb\x9f\xd1\x15\x47\x47\xd2\x12\xec\x50\xe9\x73\xaa\x6c\x88\x36\xc7\x29\xbf\x40\x7a\x79\x45\x7b\x4c\xc3\x22\xcc\xc0\x20\x48\x98\x7a\x4b\x0b\xf5\xe1\x3e\xe7\x42\x6c\x42\x2b\x4a\x45\xdc\x29\x46\x32\x13\x3a\x3f\x42\xd6\x45\x5c\xe5\x28\xa4\x7b\xd7\x54\x20\xcf\xf2\xb3\x04\xf6\x2f\x17\x95\xb8\xc2\xe9\x51\xb1\x97\x35\xed\xca\xca\xcb\xcc\x56\x4c\x5e\xbd\x1f\x96\xc4\x9d\x6d\xc0\x37\xf3\xdd\x27\x69\xbc\xdf\x91\x4c\xed\x11\xcb\xd4\xb6\x57\x0c\x1e\x76\xf9\x7c\x42\xc2\xe3\xd4\x12\x0f\xbb\xee\x7a\x3e\x4c\x5a\x2e\x23\xf3\xa3\x22\xa0\xd0\xa8\x39\x62\x32\xa4\xb5\x4c\x7e\x41\x59\x22\x85\x91\x5c\x11\xc5\x50\x3a\xe3\x69\x96\x01\xbe\xa5\x5f\x0c\x25\x4e\x24\xb0\xa0\x1d\x66\x09\x84\x74\xfd\xac\x15\x92\xd9\x33\xfa\xb5\x88\x0a\x7e\x54\xc1\xe0\x4f\x2a\x03\x58\xe6\xf3\xa0\x22\x84\xff\x20\x39\x08\x92\xb1\x95\xca\x4c\x22\x39\x9d\x13\xe6\x1c\x65\xf2\x3a\xa2\x06\x77\x20\xb8\xb6\xf6\x0c\x57\xe1\x2f\x74\x62\x3d\x56\x27\xf0\xff\xb6\x50\x91\x98\x03\x80\xcf\xbc\xe8\x71\xae\x05\x62\xf3\x2d\xce\x39\xd8\x97\x83\x80\xd8\xbf\x2d\x1e\x8a\xac\xf1\xc3\x7d\xda\xb3\xcf\xf2\xfb\x58\x44\x76\x54\x92\x2f\xe3\x8e\xb0\xcb\x21\xdf\x38\xe9\xf5\x42\x04\x41\x0b\x16\x07\xd2\xb9\xca\x5d\xda\xf4\x37\x42\x4d\x80\x10\x4a\x06\x68\x1c\x64\xe7\x03\x64\x19\x21\xb2\x09\x25\x81\x81\x03\x19\x47\x3d\x67\x94\xe3\x8e\x08\x98\xe7\x42\xac\xda\xe2\x49\x36\xa4\x72\x3a\x20\xc3\x97\xfe\xd6\x80\x19\x5a\xd1\xce\x9f\x18\x10\x3d\x74\xf6\x6a\x66\xce\x9f\x77\xf5\xed\x5b\x44\x65\x9c\x11\xde\x99\xa7\x72\x3b\x41\xc9\x52\xca\x7c\xa2\xd4\xbf\xfc\xe3\xb7\x5e\x2c\x4b\xb8\xec\x92\xb0\x85\x5e\xd2\xba\xf2\x0a\x02\x60\xfb\x06\xe6\x06\x16\xfe\xc6\x12\x32\x88\xe9\x60\x4b\xb3\x71\x9b\xf0\x43\xeb\x44\xaa\x85\x23\xd2\xe3\x0a\x40\xea\x32\x69\xc2\x28\xdd\x15\xfd\xa5\x84\xaf\xd7\xdf\xdc\xb1\x5f\x3f\x58\x7f\x13\xed\x06\xad\x45\x4f\xa4\x34\x75\x2e\x1c\xfa\xba\xbb\xfe\x3f\x03\x23\xc2\x1e\xf2\xa1\x9d\x50\xd8\x10\xa9\x13\xa4\xd0\x02\x12\xd5\x85\xcc\x3b\x95\x20\x25\x2b\xe4\x10\x26\x42\xfb\x32\xf8\x66\x26\x44\x87\x23\x8a\xe4\x56\xcd\x24\xe1\xc4\x2f\x28\xb6\x11\x22\x4f\xce\x9c\x3b\x1f\x8e\xf8\x96\x96\xc3\xd9\xe0\xe5\x68\xea\x6d\x3d\x4c\x21\xf3\xa2\xb3\xc5\xe0\x6e\x61\x2b\x52\xc1\xfa\x42\x96\xc6\x02\x44\x87\xbe\xdb\x15\xa7\x34\x47\xc2\xa9\x2d\x88\xc0\xb0\x24\xd8\x0b\x62\xe0\xae\x40\xdd\x61\xe2\x5f\x15\x04\xa4\xa3\x10\x8a\xe7\xa5\x5d\x8d\xad\xae\xb4\xa9\x04\x2c\x1f\x75\xed\x2f\x58\x85\x3b\xf6\x50\x07\x39\xe1\xc4\xee\xfa\xb5\xbf\x07\x3a\x8b\xef\x2a\xd9\x1f\x6d\x0b\x20\x59\x9c\xd4\x82\xde\x95\x12\x63\x76\x86\x08\xa7\x0d\x1f\x52\x6d\x29\xdf\xe8\x0e\xda\x83\xf1\xbc\xa4\x73\x83\x1a\x0c\x14\x8c\x77\x0f\xb0\xf3\x35\xdd\x0c\xbb\xdd\x88\xeb\xc2\x8e\x8c\x8c\xd7\xc4\x6e\x50\xb5\x4d\x7d\xbf\x62\x6e\x43\xc8\x5f\x5a\x4b\x9d\xcc\x51\x03\x12\xed\x03\x4b\x67\x76\x82\xec\x00\x41\x82\xa0\xe6\x40\xcd\x71\xc5\x4c\xc0\x30\x06\x81\xd0\xfa\x28\xa1\x28\x84\xd5\xd6\x7b\x5a\x0a\xe1\x42\x25\x98\x74\xb3\xc3\xa6\x02\x4c\x30\x0e\x0c\x67\xd8\x33\x9a\xbb\xfd\x3d\x37\x1e\x88\xf4\x74\x3c\xb4\x65\x84\x47\x06\xc2\x78\x4e\xb8\x44\xa8\x64\x9b\xc9\xf6\x6d\x7c\x4c\x5f\x47\x35\x1c\x63\x17\x5f\x6c\xee\x96\x67\xb1\x6c\x80\x2b\x7c\x4e\xb6\xc0\x53\x2d\xb4\x17\x74\x13\xd4\x34\x9a\x45\xde\xa1\x97\x57\x4c\x96\x37\x1d\x88\xc0\x4f\x3a\x74\xdf\xc6\xd0\x75\x2b\x7b\x0e\x69\xcb\x71\x5a\x46\xe4\x50\x22\xda\x20\x0c\xf6\x1f\x13\x71\x26\x50\xec\x76\xdc\xca\xfd\x4f\x1c\x6a\x09\xb1\xf2\x95\xb1\xcb\x97\x23\x61\xb9\x16\x3a\x08\xa8\x00\xba\x0a\x4c\xf6\x73\xfc\xa9\x55\xde\x0d\x3e\x8b\xca\xfe\x40\x03\x7b\xb1\x87\xe8\x7e\x4d\xf7\x5d\xc8\x9b\x48\xeb\x9e\xf0\x2e\x3a\x29\x86\x3b\xe5\xaf\xe6\x69\xf4\xd7\x26\xd5\xbe\x4c\x77\xe5\xe4\xe4\xe9\x1b\xe6\x17\x82\x18\x78\x43\xfb\x02\xa1\xd4\xed\x5b\x4f\x87\x61\x67\x7f\x50\xc1\x11\x8b\x7c\xd0\xd3\x15\x38\xd6\x1f\xbc\x38\xc9\x7a\x79\x31\x8b\xf9\x70\x7f\xbf\x31\xe5\x36\x9a\x1e\x50\x42\xbd\xa3\xce\x1e\xd2\x8d\x1d\xa5\x83\x81\xe9\xbd\xc6\x84\x59\x93\x27\x11\x8b\x20\x72\x8f\x32\xe3\x58\x02\x57\x68\x58\xff\xf3\x73\xf1\x62\x22\x9b\x2d\x7e\x26\xbc\xd7\xec\xce\x4b\x26\xa3\x7c\x41\xda\x52\x66\x09\xa5\x20\xf3\xab\xd1\xa6\x72\x85\x43\x88\xf3\x4c\x0f\x88\xb2\x00\x3e\x02\x00\x82\x53\x53\xdc\xbd\xbf\xba\x57\x38\x52\x33\x6d\xbd\xa2\x53\xfa\x07\x7b\x38\x9c\x6f\xbf\x1b\x85\x09\x26\x52\x73\xe0\xde\x6c\xfd\xc1\xc4\x7d\xb8\x0e\x44\x32\x3a\x94\xc0\xb2\x7c\x87\xd8\xc5\xcf\x50\x8c\x11\x11\x1d\xd7\xb8\x63\xe7\xa0\x17\x0d\x6f\xcb\xf7\x37\x17\x2d\xdf\xbb\xa2\x82\x92\x5c\xb9\x0c\x0d\xf9\xf3\x4a\x05\x21\x4a\x74\xc5\x00\x21\x49\x5e\xfb\x8e\x2e\xeb\x56\xf3\x9f\x10\x6b\xc3\x34\x3c\x58\x6b\x22\xc4\xff\xe4\x95\x83\x2b\xcf\xf8\xe0\x5c\xaa\xa6\xb0\x60\xa1\x01\xa5\xda\x5d\x27\x0c\xdb\x22\x3a\xc9\x11\x43\x93\x9d\x64\x48\x29\xcb\x14\xbf\x54\x59\x91\xa4\x65\x6c\xa0\x34\x1e\x14\xa0\xab\xb5\x31\xc4\x59\x97\xef\x4c\x3b\xd5\x85\xe2\x16\x07\x05\x09\x15\xb9\x2a\xad\x56\xb3\x95\x4c\xae\x54\x4c\xea\x11\xd9\x33\x5f\xed\x20\x11\xf2\xa7\x95\x06\x3a\x6a\x7b\x6a\xe9\xb1\xcb\x2a\xc8\x3e\x72\x61\x9a\x5c\xe5\x31\x89\xee\xa4\x16\x96\xd9\x09\x55\x07\xe8\x3a\x83\x24\xd7\x75\x85\x15\x6e\x9d\x0a\xc3\xf5\x02\x54\x59\xb3\x52\x26\x83\x7a\x10\x60\x7d\x55\x0f\x76\x11\x2d\xa7\xdf\xb6\xb0\xd1\xd3\x65\xed\xd2\x1b\x27\x70\xc3\x98\x06\x5a\xed\x59\x83\x1d\x71\xc4\x3c\xba\x19\x4a\x4c\x84\x39\x3c\x68\x5b\x82\xc5\x9b\xf0\xc9\x56\xd0\xfd\xde\xe6\x09\x6a\xc1\x35\x7f\xba\x7d\x6a\x99\x68\x27\x5a\x6c\x58\x1d\x40\x2e\x20\x1d\x7e\xaa\x7d\x7f\x8d\xee\x6f\x3d\x59\x8b\xd9\x56\x3d\x67\x4f\x94\xa0\x1d\x40\x31\x24\xca\x7f\x22\x16\x90\x6e\x14\xba\x9b\xd2\x0e\x60\xed\x64\x6e\x99\x1c\x00\x0c\xd1\xfb\x4d\x33\x82\xf2\xb4\x2c\xe6\x27\x56\xb5\xc5\x68\x40\xe2\xf7\x26\xdd\xfc\x64\xc6\x8b\xe2\x59\x23\x58\xea\x4a\x15\x39\x63\x2b\xd2\xe0\xac\x1c\x73\x85\x3a\x7f\xa8\x56\xde\x99\xab\x88\x30\xa8\xb7\xc4\xf7\xd9\x7a\x2d\xa8\x4d\x70\x88\xbb\xcd\xdd\x15\xc5\x82\x08\xe6\xbd\xc1\xda\x10\x49\x4b\x17\xae\x6f\x4a\x74\xb2\x20\x0d\xc7\x68\x31\x21\xb9\x41\x5b\x35\xf3\x2f\x26\x6b\xd0\x49\x94\x69\x6d\x5b\xd0\x8d\xc4\x05\x0d\xac\xfa\xc0\xae\x12\xfc\x61\xb2\x7f\x19\x0f\x58\xca\xd3\x18\x5e\xff\x45\x01\x8d\xc9\x7d\x6a\x90\x68\x55\xbf\x79\x2c\x35\x68\x41\x99\xd1\x12\xf6\x90\xcd\xd1\xdd\xe7\xe4\x23\xd7\x7f\xdd\x9c\x13\x91\xce\x37\xe0\x39\x00\xd0\x4b\xde\xff\xa4\xcc\xb2\xa5\xad\x68\xb0\x31\x62\xd3\x20\xc2\x2b\x65\x6e\xf0\x87\x28\x16\x53\x0c\xdd\x08\x2a\xd9\xca\x6d\xe1\x96\x16\x8a\x38\x1a\x2e\x1d\xe4\xdd\xf5\x3f\xd3\xe8\x58\x12\x59\x19\x90\xbf\xd4\x21\xcc\x6e\x98\xcb\xb4\xe3\x8e\xca\xd3\x4d\x84\x63\x86\x04\xba\x61\x5b\xcb\x27\x02\xc3\x95\x01\x80\x38\x87\x09\x43\xd6\xbf\x9e\x74\xdf\x3f\x58\x26\xba\xac\xac\xea\x4c\xce\x69\x08\xca\x31\x21\x21\xc6\x5e\x87\xb2\x32\x32\x1c\xa8\xd0\x07\x19\x40\x18\x8d\x23\xf7\xb5\x11\xc5\x8b\xd9\x7a\x08\x2d\x9c\xa0\xc5\xdf\xb2\x2a\x19\xfe\xfd\xa3\x6b\x13\x6f\x0f\xab\x75\x94\x34\xcf\x37\xb3\x74\xd8\x94\x75\x20\x58\x0e\xde\x71\x51\x88\xfb\xa3\x16\x33\x4a\xac\x6e\xa3\x8d\x83\xd2\xb6\x27\xb8\xad\xc3\x58\x3e\xa0\xbe\xb3\xf9\xc1\x18\x86\x92\xd9\x64\x31\x4a\x89\x4e\xfd\x71\x59\xa8\xa1\x0a\xb1\x24\x38\x3d\xd9\xb1\x27\x2a\x14\x83\x86\xe4\xe4\xbc\x6c\xcf\xcc\x4a\xf5\x1d\x47\xfc\xc5\x0b\x21\xea\x8b\x8b\xba\x2c\x9c\x8a\x03\xca\x2c\x5f\x41\x74\x1a\x69\x3d\xbf\x71\x52\x97\xd9\x3c\x11\x9f\x47\xb6\x25\xbf\x10\x90\xac\xba\x96\xee\x1c\xda\x5d\xc8\x59\x1a\x13\xd9\x78\xd4\x66\x2a\xe6\x61\x26\xb3\x1e\x54\x55\xc5\x26\x28\x22\xbb\x05\xf9\x04\x51\x41\xd3\x74\x97\xa6\xb7\xcb\x87\x6b\x26\x42\x21\x8f\xa4\xfe\x09\xb3\x02\x66\xf9\x5b\xca\x40\xa2\xc8\x65\x44\x82\x81\x65\x00\x2d\xbe\xe0\xdb\x08\x8c\x45\x7f\x41\x75\xf4\x62\x3b\xb8\x63\x0f\x18\xed\xb1\x35\x59\x7f\xc1\xdc\x47\x28\xbe\x2b\x01\xb6\xad\xf0\x67\x3c\x00\xa6\xbb\xeb\x53\xa9\xe8\x2e\x3c\xe1\x46\xb0\x08\xd4\xa6\x4d\xef\xb6\x85\x5a\xbf\x88\x15\x0e\xed\x85\xb3\xd5\x79\xa5\x56\x3a\x7b\x84\xee\x8a\xdb\x2c\x71\x3d\x58\x0a\xa6\xd2\x45\x30\x85\xa5\x83\xe5\xdb\xfb\xe2\x04\xdf\xe3\x7b\x56\xec\x3a\x2d\x2f\x2d\x50\xf4\xc1\x67\xca\x2e\x33\x69\x5e\x45\x5c\x2e\x4c\xd6\x3c\xf0\x37\x41\x36\x30\xd6\xd5\xf2\xd9\xe3\x9c\x55\x81\x35\x10\xed\xc5\x66\x95\x8e\xbe\x78\xc5\xa9\x7e\x52\x4e\x23\x12\xf3\xf1\x4a\x6e\xb0\x94\x59\xf7\x13\x84\x1a\xad\x76\x19\x88\x8f\x78\x05\xc3\xb9\x82\x56\xaf\x51\x31\x44\xe9\x04\xc3\xc4\x95\x13\x02\xaa\xf9\xae\xe4\x5a\x03\x94\x80\x45\xb7\x83\x11\x06\x9f\xc6\xbf\x33\xeb\xc2\xb0\x5a\x9b\x45\xcf\x80\x6e\x60\x70\x91\x8e\x9d\xc2\xaa\x49\xd5\x20\x2d\xcf\x9a\xd6\x62\xce\x8c\x0f\xea\x42\x56\xc2\x1d\x43\x6f\xe8\x99\x97\x71\x57\x41\x08\xe9\x2d\xae\xf4\xb6\xc2\xd0\x99\x0d\x0c\x2b\x9f\x96\xf4\x82\x6a\x5d\xb9\x6d\xcd\xf6\x0e\x2c\xfc\x60\x41\x0e\xf2\xaf\x7f\xc5\xb9\xd5\xc3\x17\x99\xe4\xb5\x19\xbd\x24\x3d\x41\x84\x96\x95\x95\x0d\x98\x12\x58\xae\x82\x5c\x61\x5e\xe9\x3f\x38\xfb\x8f\x86\xd0\xbc\x5b\xed\x53\x1e\xd8\x45\x74\x11\x2c\x58\x0c\x5d\x13\xe5\xde\x17\xdf\xb2\x74\x8d\x3f\x96\x3e\x75\xce\xe2\xcb\xc8\x55\x9d\xa2\x10\xaf\x0c\x3e\x78\x28\xe8\x43\x55\x7a\x25\x83\xc1\x7c\xa5\x60\xae\xc0\x57\xc1\xce\xd1\xc6\xaa\xd5\x04\xe7\xc8\x1a\xc5\xf2\x4c\xf6\xda\x69\x65\xb1\x38\x5d\x67\x55\x60\x2c\xfd\x9f\x5c\x7f\x6c\x0c\x2b\x8f\x5b\x91\xca\x88\xcc\xa7\x70\x35\x74\xcf\xb4\xf4\x73\xea\xb1\x37\x61\xb0\xb4\x2c\x7f\xee\x46\x2e\x26\xba\x5c\x37\x42\xc6\x0f\xab\x7a\xcb\x76\x9c\xc6\x9b\x2a\x45\x9a\xa4\x44\xd3\x82\xbb\x92\x0b\x2f\x20\x43\xc8\x66\x1b\x14\x59\x0f\x59\xbe\x53\xce\x2c\x14\x74\xdb\xc4\xc0\x00\xe9\x1f\x16\x91\x78\x2e\x50\x52\x8b\x6c\x2e\x1e\xfc\xde\xc6\xc8\xdb\x49\x77\x6f\x00\x46\x0f\x62\x11\x9e\xaa\x94\xc0\xca\x45\x0c\x5d\x53\xed\x11\xe6\x8a\x36\x49\x6c\x29\x7d\x09\x27\xb2\x4f\x1b\x99\x61\x18\x62\x4b\x53\xa7\x98\x8a\x59\x84\x6c\x84\x7e\xae\x49\x3d\x77\x04\xd2\x09\x0a\x61\xb0\xc3\x48\xf8\xde\xdd\xf1\x45\xc0\xaa\xe1\xd1\xab\x99\x4d\xef\x4d\xde\xbc\xe0\x38\x6a\x9a\x57\x89\xb9\x2d\xeb\x98\x2c\xeb\xe5\x35\x6a\x1e\xaa\xd9\x91\x85\x68\xe9\x4a\x1a\x2d\x29\xfc\xda\x7e\x0c\xaa\x64\x69\x09\x5c\xf6\x9b\x90\x27\xcc\x33\x1c\x19\x12\xd0\x23\xf3\xd2\x84\xf6\xcb\xfe\x8a\x70\x91\x6b\xd2\xa7\xa9\x94\x99\xa8\xf3\xd3\x1a\xf2\x30\xa8\x60\x4d\xd4\xb7\xbb\x3d\xb4\x9c\xbf\x43\xa0\xfa\xad\xf8\xa8\x49\xc6\xc3\x5f\xd8\x28\x89\x61\xbd\x75\x96\xb3\xb9\x6c\x57\x2a\xe5\x15\xe6\xb2\x57\x89\x48\x1f\x3b\xe4\xc5\xf8\x8d\xe7\x68\x33\xd9\x62\x79\x83\x18\x9f\xc8\x7f\xd3\x6f\x58\x1e\x3f\x15\xe3\xd7\xf3\x52\x7c\xac\xf0\x7e\xe1\x7d\xc3\x4c\x0f\xe0\x6e\xb4\xf9\x50\x16\xf1\x4c\xd2\x93\xe8\x85\xd3\x6e\xb4\x25\xd6\x21\x07\x53\x40\x98\x42\x92\x27\x0c\x22\x58\xda\x04\x1a\x01\xfd\x80\x27\x8a\xd7\x1f\x24\x84\x50\x14\x0c\x5d\x47\x86\x26\x0e\x5c\x84\xbc\x86\x09\xc6\x2a\x6e\x24\x48\x99\x67\x6e\x82\x13\x4f\xa5\x6e\xb0\xa5\x36\x28\x56\xa9\x31\x3a\x8f\xc0\x51\x35\xed\xf1\x07\x25\x42\xd1\xab\x22\xf0\xaf\xed\xd0\x77\xed\xd9\x37\x8f\xd4\x42\xe2\xa0\xa4\xab\xf3\xdb\xaf\x1f\x68\x32\x2e\x19\x3b\x36\x90\xc5\xb7\xdc\xe5\xd9\x58\x57\x0a\xdc\x5f\x97\xc5\x79\x6f\x4e\x97\x9f\xdf\xb1\x9f\x7f\x53\x9c\x89\xc9\xa5\x33\x45\x71\xe3\xfe\xfa\x41\xf9\x0d\xe8\x78\x1c\xe1\x6e\xac\xd4\x56\x39\xad\xba\xf3\x76\xca\xbc\xf2\x6c\xe0\xc8\xb6\xa8\x5c\x7b\x11\xa0\x78\x6e\x0d\x95\x0a\x93\x0d\x88\x24\x2b\xc7\x91\x69\x5c\x10\xac\x7a\x6a\xc7\xed\x6c\x2c\x6a\x71\x8d\xf0\xa5\xcd\x8d\x10\x38\x67\xd5\x14\xe5\x08\x9f\x0a\x6a\x55\xa9\x7b\xe1\x35\xa8\x11\xd7\x40\x24\xd2\x95\xad\x46\x86\x8c\x68\xe0\x4b\x9a\x46\xe6\x21\xc3\xc3\x1f\xb1\x0f\xfe\x60\x7a\x36\x9b\xe9\xda\x0c\x14\x4d\x02\x8b\xac\xde\x14\x14\x80\x35\x8a\x10\x80\x9b\x13\xe7\x82\x72\x42\x83\xff\xd5\x5c\x15\x8f\x35\x61\x5a\x44\x00\x92\xf3\x89\x1a\x39\xaf\x05\xfe\xa8\x44\x71\x49\x7c\x12\xc1\xd3\xb6\xa3\x1b\xbe\xe4\x9f\xf0\x9b\xa8\x60\x2a\x2a\x68\x93\xa8\x74\xd1\x28\xab\xae\x6b\x51\x3c\xee\x90\x50\x5c\x96\xcc\xb1\x16\x8e\x4c\xf9\x76\xa6\x5b\xb7\x06\xae\xb7\x73\x36\xdc\x31\x90\x17\x62\x28\x55\xa1\x05\x40\x2d\x5e\x7d\x26\x6b\x07\x76\x46\xcf\xa6\x38\x6e\xd8\x41\x76\xee\x31\xe4\x25\x6c\x3a\xee\x48\x2e\xa0\x0c\x94\xa1\xcb\x3d\xf0\x35\xb8\xcd\x4d\x51\x3a\xf6\x46\xd0\x4b\x0b\x9a\x9b\x77\x65\xc0\x65\xad\xe7\x13\x84\x0e\x6f\xc9\x04\x74\x88\xe1\xef\xd9\x5e\x88\x56\xe0\x3f\x39\x49\x8d\xe5\x9b\x1b\xc6\x34\xdd\x3b\x82\xc9\xa8\xa9\x37\x58\x52\x4e\x15\x03\x55\x9a\x19\x9d\x3c\x0c\x1d\xb5\xcb\x2b\x1b\x23\x16\xe1\x2e\x22\xb4\xd2\x3b\x46\xc3\x0a\xa3\xe1\x11\x83\xf5\x4a\xf2\x14\xa1\x10\x00\x46\xf8\x44\x4c\xc4\x14\x93\xee\x69\x28\x45\x28\xb1\x9d\xc6\x3c\x3a\x19\xdb\x75\xdd\x56\xb0\xc0\x13\xdf\x1e\x97\xe2\x77\x54\xcd\x9f\x42\xa7\xce\x41\xa8\xaa\xb5\xcf\x18\x99\x0a\x34\xad\x78\x85\xe2\x99\xff\x62\x44\x18\xe4\xec\xb0\x9c\xe5\x19\x38\x55\x31\x05\x57\x43\x04\x5f\xb3\x75\x95\x3d\x89\xc0\x6d\xe8\x9e\x58\xdd\x0e\xfe\xcd\x50\x7a\x0e\x23\x61\xd7\x54\x45\xb0\x5f\x0e\x05\x11\xd1\x04\x85\xb2\x4d\x04\xc0\x32\x38\xca\x12\xb3\xf2\xe2\xe1\xab\x67\x58\x02\xdf\xad\x2e\xbe\x5c\xd0\x4c\x02\x1c\xb0\x55\x4c\x3b\x1c\xc2\xba\x09\x2b\xc9\x63\x10\x9b\x32\x90\x92\x32\x99\x8d\x30\x3d\x13\xdc\xee\xe0\xa7\x8d\x74\x52\x3a\x09\x3f\xe7\x99\xf9\xce\x16\x91\xfd\x20\x3e\xff\x45\xbc\x1a\x61\x41\x1d\x60\x2b\x2a\xcf\xee\xbb\xe2\x33\x18\x54\xd0\x35\xab\x46\x19\x7c\x9d\xee\xc2\x15\xdd\xce\x37\xea\x77\x29\xb6\x06\x10\x0a\xaf\x65\xa2\x49\x4d\xf4\xe8\x34\xd0\x05\x30\xaa\x6c\x13\x70\xc6\xc2\xcb\x80\xd8\x64\x96\x31\x6d\x13\xc1\x49\xc0\x6f\xaf\xb8\x3f\x82\xad\x87\xb2\x53\xbc\xbd\x11\xb6\x9b\xad\x35\x45\x79\x3b\xd7\x8c\xdb\x70\x6e\xe6\x93\x08\xb0\x3b\x2d\x22\xbe\xff\x26\xf4\x17\xcf\x2a\xf0\xa1\xb3\xbd\x7a\x44\x28\x3d\x67\x88\x10\x0a\xc0\x83\xa1\x10\xbb\x0d\x74\x22\x3c\x86\xe2\xe1\xc8\x26\x9d\x5a\xb9\xa4\x8b\x85\x8f\x9a\xf6\xee\x4c\x12\x66\xa5\x0e\x5a\x46\x6d\x11\x12\x21\x24\xd3\xba\x2a\x1b\x13\x43\x94\x53\x56\xfa\x5e\x88\xb3\x03\x8d\x63\xa3\x8c\xa1\x17\x00\x00\x15\x39\x62\xe3\xd9\xeb\xd7\xd7\x7f\x7d\xfb\xe4\xf5\xc9\xb3\x47\xc7\x4f\x02\xad\xf1\x59\x30\x6b\xcc\xc6\xe7\x54\xa8\x2c\x40\xe6\x7e\xe1\xe9\xc3\x46\xb6\x49\x41\xb5\xbe\x3c\x09\x25\x82\x59\xca\xa4\xac\xa2\xc9\xdf\x36\x27\x06\xd9\xc6\xc1\xfe\x26\x66\xbd\x6f\xdf\xfa\x11\x52\xb4\x9f\x88\xd7\x62\x51\xfe\xab\x58\xcc\x1e\x29\xa4\xf6\xa8\x94\x83\xc2\xca\x79\x9e\x50\xd7\x44\xd4\xa3\xd7\x43\xaf\xd7\x38\x10\x73\x95\x1d\xb3\x38\x17\x7d\xe9\xb5\x90\xa0\x98\x06\x08\xce\x3f\x6e\xbb\x9e\x2d\xa0\x4d\x58\xe8\xb1\x05\xd5\xe2\x57\x78\x01\xe3\x30\x62\x45\xe9\xde\xa2\xcb\xef\xad\xfb\x09\xea\x84\xd3\x91\x1c\x38\x7b\x27\xc4\xd6\xad\xdb\x95\x20\x86\xe8\x92\x58\x7e\x3e\xd6\x04\x8a\x84\x0e\xcd\xfb\x81\xc9\x37\x58\x20\x51\x27\x54\xe2\x9b\xb8\x25\x38\xf4\xb9\xe6\xee\x8a\xa0\x12\x07\x84\xcf\xd7\x45\xd9\x10\x2a\xe4\xf3\x24\x82\x0f\x3e\x4f\xa8\x61\xef\xb1\xb4\xef\x9d\xc8\x9a\x3f\xe1\x07\xc8\x05\xd9\xf1\x20\xc9\x60\xe7\x03\xce\x9b\xcc\xeb\x87\xd6\xcf\xcb\x6e\xe8\x92\x82\x10\x40\x55\xd8\x40\x43\x1b\x95\xa7\xda\xb2\x70\x55\xb1\x3c\xbc\x49\x8a\x24\x22\x13\x6f\x4e\x86\xb7\xa8\xf7\x14\xf5\x29\xae\xbf\x13\x03\xe1\x46\xb1\x38\x23\x50\x3a\x6b\xbb\x1e\x92\x08\x56\xd3\xd3\xb9\xa4\x7b\xc7\x2c\x8f\xf1\x17\x86\xed\x9a\xe0\x2b\xe6\x62\x91\xd8\xd9\xca\xd5\xe9\x4d\x59\x11\x64\xbd\xe6\x3f\xee\x33\xeb\xba\x2c\x24\xb9\x70\x8e\xae\xac\x0e\xe9\x56\x80\xee\xe5\x33\xb5\xd5\xf8\xa0\x78\x2f\xf8\xfc\xd1\x81\x40\x75\xda\x67\x1e\x30\xdb\xd3\x87\x16\xd4\xee\x4f\xf4\x01\xde\xe0\x2f\x03\x6d\xb5\xa4\x57\x29\xf9\xf2\x91\x0a\xc6\x61\xdc\x86\xe3\x45\xa3\x70\x8e\xa4\x2b\x16\xdb\x12\x50\xd0\x80\xe4\x47\xc3\xe6\x95\x5b\x36\x6a\x2c\xee\x32\x7f\x77\xef\x66\xb9\x71\x15\x20\xf6\xdf\x46\x84\xec\xdb\x5f\x88\xa3\x26\x64\x4d\xe3\x70\xbe\x7c\x11\x3c\x0f\x41\x4d\x3e\x4c\x0c\x2b\xd4\xeb\x35\x75\x22\x8c\x3c\x5f\xe3\xfc\x99\xb3\x27\x52\x85\x36\x3d\x7f\x38\x78\xc5\x9a\x0e\x10\x9d\x3e\x59\x21\x7f\xfa\x5c\x73\xbc\x31\xe8\x46\x70\x7a\xb6\x31\x5a\x6a\xb1\x69\xba\x96\x10\x62\xc5\x22\x80\xe0\x9c\x33\x16\x9c\xb1\xa7\x9c\x43\x9c\x84\x8a\x23\xcb\x0f\xcc\x3c\x75\x50\x7a\xf0\xfd\xb3\x37\x60\xfd\x20\x3c\x50\x2f\x3f\x47\x14\x38\xb7\x0f\xd7\xbe\xd3\x43\x72\x7a\x62\x59\xcd\x29\xb4\xfe\xad\xea\x20\x0f\xf9\x37\x33\x5d\xb8\x53\xa9\xf9\xf6\x00\xa8\xb6\x75\x52\xbc\xa2\x82\xb4\x4d\x35\x45\x40\x01\xb4\x4b\x8c\x20\x2a\x88\x14\x2e\x58\xed\x08\xd5\x4e\x84\x3b\x56\x04\xe9\xa7\xea\x33\xa0\x74\x89\x0a\x9f\xb8\x4d\xa9\x28\x00\xee\xb6\xc5\x53\xc4\x90\xed\x5d\x7f\xac\xa0\xb9\x21\x0e\xb0\x94\x3b\x6c\x77\xb5\x6a\xea\xf6\x1d\x5d\x5b\x3b\x26\x87\x37\x74\x5e\xdf\xd1\x55\xbf\x42\x96\xa6\x3a\xf1\x45\xc1\x37\x95\xb9\xbf\x2b\x91\xca\x36\xc2\xf4\xa3\xe2\x52\x2c\x4c\xe6\xa5\x57\xc0\x48\xb8\x74\x07\x9e\xbc\x59\x10\xb4\x7e\x5b\xbc\x65\xd7\x8a\x0f\xe0\xaf\x45\x41\xb5\xfc\x7c\xb5\x26\x6c\xf4\xee\xf3\x98\xdf\x6e\xb8\x7a\xcf\xac\xf9\x67\x20\xd6\x2f\xd9\x72\x03\x96\x3c\x0d\x8c\xb4\xc7\xfa\x02\x17\x97\xa4\x9e\xe8\xd7\x08\x2a\xb6\x27\x4c\x33\xd4\x0a\x53\x44\xf6\x19\x51\xf8\x80\x38\xc0\x3c\xd9\x83\x3b\xc3\xd0\xcc\x70\x31\xc4\x28\xb3\x55\xc5\x08\xf4\x2f\x23\x56\x86\x85\x0a\x38\xf9\xde\x8d\xa8\xe8\x69\x39\x80\xc4\x65\xfa\x40\x4d\x02\xd2\x8f\xc7\x1d\x73\xe2\x3d\x51\x18\x39\x54\x47\xb6\xc8\x8c\x86\xd5\x53\x21\xc2\x4f\xed\xac\x77\x39\xfc\x90\xe0\x90\x1f\x7b\x37\x40\xb9\x02\xe3\x25\x00\x9a\xf4\x7c\xd2\x8d\x5b\x91\x3d\xe7\x88\x2e\x80\x23\x30\xdb\x4c\x53\xb7\x6f\xa5\x18\x90\x88\xfa\xde\x18\x68\xc4\x68\xef\x15\x93\xab\x26\x11\xe1\x03\x86\xf2\xcc\xba\xa2\xb6\xf8\x77\xc5\x9b\x12\x4e\x19\xba\xaa\x21\x07\x4a\x48\x2a\x28\xb9\x33\x2e\xdf\xf0\x15\xa7\x14\xfa\x9f\x7d\xc3\xe1\x31\x0e\x0e\x79\x4d\x0c\xd3\xf2\x09\x3b\xae\x0c\xec\x2d\xbe\x05\x7a\x27\x9a\x9d\xaa\x5f\xff\x15\xb1\x1a\x18\x08\xb7\xdb\x7a\x60\xce\x6d\x5b\x33\x21\xc5\x0e\x41\x8d\x29\x2d\x7a\x61\x0d\x93\xd3\xa9\xb0\x26\xa5\x2f\x2f\x97\xaf\xcb\x4b\xfd\xa2\xed\x62\xb7\xf1\xa7\xfc\xb7\xe6\x78\x06\x9c\xc1\xb6\xe9\x28\xfb\x56\x1c\x83\x8a\x50\x87\xe0\x7b\x5b\xf2\xb1\x39\xae\xe1\x52\x86\xcf\x56\x41\x48\x87\xb3\x98\x1d\x96\xcb\x9c\x38\xb1\x3b\x8e\x77\x5a\xf4\x14\xfc\xea\x9b\x1e\xd0\xd0\x87\x54\x20\xf3\xae\x27\x38\x15\xfd\x9a\x4b\xde\x8a\xfb\xe3\x52\xdd\x20\x43\x06\xc8\xec\xe5\x63\xb9\x0e\x35\x49\x7c\x0a\x5e\x41\x8c\x00\xac\xb0\x95\x33\xe0\x72\x09\x32\x29\xf7\x35\xae\x8b\xad\x3b\x1d\x6a\x98\x8f\xd0\x12\x8e\x2d\x8b\xbc\xe8\x43\xee\x62\x66\xe7\xa2\xdc\x16\x54\x07\x15\x10\x53\x6c\xa0\x44\x2d\x96\x94\xda\xd0\x06\xf6\x2b\xd7\xd2\xe9\x29\x2b\xba\x71\xc1\x85\xf2\x69\xb3\x1e\x36\x14\x34\xf2\x3e\x43\xbe\xef\x37\x2f\x25\x7d\x86\x82\xbe\xdb\xb9\xc2\xdd\x8e\xb8\xa1\x50\xf6\xe5\x78\xd1\xd7\x7b\x8a\x12\x66\xb0\xb0\x58\xce\x46\x68\x8b\x53\xc3\xe6\xc7\xe9\x44\xe8\xde\xc4\xb9\xa4\x43\xc7\xd4\x26\x4b\x9e\x67\x86\xe9\x8b\x1d\xe1\xb3\x70\x9f\xf9\xb4\x7d\xb1\x17\xdd\xb4\x8c\xa0\xa1\x08\xeb\x10\x2e\x63\x37\xe1\xca\x04\x51\x67\xdc\xa2\xee\x9c\x8f\x65\x31\xbf\x79\x52\x6a\xc5\xd6\x09\xb1\xa3\x8b\x58\x02\xb9\x1a\x1c\xb8\x21\x19\x88\xb6\xee\x87\x33\xdb\x3e\xaf\xfb\x50\xae\x97\x77\xaa\xe2\x25\x4e\xc5\x10\x5a\xc1\x3a\xbb\xbc\xef\x78\x6d\x7d\x1e\x1d\x5c\x38\x33\x48\x0f\xb4\xfe\x79\xb3\x71\x3e\x51\x5b\x2b\x21\x29\x55\x89\x16\x86\x51\xd8\x40\xeb\xd2\x28\xf3\xea\x7b\x81\x30\xcf\x9f\x74\xf1\x4b\xd9\xc0\x40\x3e\x6e\x3d\xaf\x1c\x00\x83\x7f\xcc\x16\x38\xab\xa9\x40\xd4\x38\xed\xba\x27\x8e\x1f\xe6\xdb\xaf\xd5\x3c\xbd\x37\x97\xb1\x80\x97\x94\xa2\x6c\xef\xef\xbf\x8b\x70\xf7\x5c\x15\xab\x51\x63\x88\x8e\x20\xde\x7e\xf9\xb7\xa3\x5a\xd7\xb3\xfd\x7f\xa9\xa3\x9f\xaf\x2b\x90\x50\xad\xd6\x57\x5c\x15\xb0\x70\xfd\xf1\xae\xb1\xf7\xf8\xc6\x42\x2b\xb3\xd5\x80\xa3\x68\xd5\xe0\x56\x89\x6a\x4c\x21\x69\x1a\xc4\x38\x79\x1d\x0b\x4b\xee\x37\x3d\x93\x3c\xd3\x9c\x05\x18\x07\x3b\x2c\x5f\x81\xc6\x50\x39\xeb\x6c\x39\xc0\xb6\x2b\x47\x37\x1d\x5d\x06\x0f\xda\xc9\x2a\x72\xc9\xde\xa0\x11\x91\x77\x10\xb1\x1b\xf4\xa5\x7d\x84\x62\xe7\x46\x42\xd7\x98\xaf\xc6\xa6\x53\xa1\x42\xac\x77\x9d\xad\xbc\xed\xec\xc0\x0a\xb8\x56\xc7\xa8\x1f\x33\x6b\x1f\x3a\x73\x15\xa4\x37\x5f\x23\x39\x7f\xbc\x3f\x4b\xf9\x55\xdc\xf9\xf1\x8b\x9f\x2c\xdc\x92\x83\xaa\xe4\xc7\x2f\x7f\x22\xea\xed\xce\x8f\x5f\xfd\x64\x41\xba\x4d\xeb\xae\x4e\xcb\x77\x66\xc9\x97\xda\xa0\x0d\x60\x7b\xb9\xa2\x2f\x4d\xe4\xe6\x45\x4d\x1b\xc9\xc1\x8f\x0a\x7f\x53\xb5\x09\xb2\x79\x3f\x48\x36\x88\xbf\xb2\x9d\xe0\x09\x16\xb2\xcc\xa1\x89\x4a\xf3\x32\x34\xd1\x8e\xdb\x95\xce\xd9\x02\x8b\xe8\x6f\xc8\x47\xc2\xc0\x34\x11\x4c\xd5\xb0\x3c\xf0\x4b\xc4\x1a\xc2\xb2\xa8\x2b\xac\x00\x4d\xc9\x51\xb2\x7f\x23\x5f\xdf\xc8\xf4\x0e\x92\x15\x81\xfe\x5e\x35\x2d\xcf\x9a\xc4\x02\x8b\x68\xbd\x4d\xd7\x3b\x97\x07\xe8\x60\x16\x19\xa2\x93\x40\x36\x98\x40\x04\xc6\x92\xa5\x63\x4a\x8a\xb0\xac\x4b\x47\x1e\xca\xf7\x86\x17\x4a\x0a\xd2\x7d\xdf\xf1\x3d\x96\x67\xa7\xed\xf9\x62\xf3\x4d\x2a\x32\x77\x80\x94\x04\xc3\x72\x8b\x99\x6f\x06\x2d\xe4\xe7\x72\x1b\x4e\x56\x71\x6e\x11\x3f\x4f\x16\x51\x06\xa9\xdb\xd1\xf3\xe0\x00\x57\x7f\x60\x3b\x84\xfc\x21\x2a\xfa\x14\x6d\xfd\x4c\x7f\x4d\x0f\xa2\xb7\x12\x91\x03\x97\x2a\xc0\x88\x15\xa5\x90\x6b\xc3\x8d\x5d\x70\x0f\xe8\xe0\xe7\x00\xd4\x1d\x87\x01\x63\xba\x34\x5a\x33\xf6\x5e\x90\xd8\x4e\x01\x82\xe7\x64\x74\x9a\xe7\x5c\xda\x88\x8f\x21\xc6\xd0\x98\x10\x04\x46\xc4\x7e\x60\x56\x11\x78\x28\x41\x2c\xce\x13\xcc\x39\x46\x30\xaf\xa3\x9e\x46\x30\xb9\x83\xce\x53\xa4\xa1\x04\x71\x70\x5b\x56\xd1\x30\x63\x53\xf6\x8b\x72\x56\xdf\x91\xeb\x62\xa2\x20\xcd\xbc\x21\x3d\x6c\x24\x8b\x6c\xaa\x7a\x88\xbc\x5d\xdc\xd2\x8b\x09\xd0\x11\xff\x09\x43\xa6\x6e\x97\x4f\xe2\x88\x69\x9a\x21\x17\xf5\x10\x5c\x52\xc6\xe2\x18\x49\x59\x81\x4d\xd7\x10\x9d\x7c\x04\x81\xa8\x78\x39\xce\x17\x82\xe4\x96\x4e\xbb\x90\x9b\x59\x6e\x38\x1f\x8c\x11\x22\x15\xb0\xc0\x59\x5e\x9e\xa7\x77\xfd\x57\x84\xe0\xc8\x87\x9b\x5b\xce\x65\xd9\x89\x23\xd0\xc6\x7b\x53\xcd\x0d\x39\x28\x49\x63\x01\xf2\xcd\x65\x63\xf5\x60\x24\xee\xf6\x46\xac\x50\xaa\x9c\xa9\x38\x57\xcc\xe2\xe4\xb6\xaf\x5b\x89\x5e\x32\x31\xa9\x7b\x1f\x2d\xc6\x0d\x52\xe7\xf9\xc1\x04\x3d\xf2\x1a\x66\xf5\x5e\x9a\x9d\x2b\x8b\x95\x3b\xc4\xd1\xa4\x2b\x82\xd0\x0a\x8b\x3d\x45\x53\x57\x7a\x0b\x06\x4e\x54\x8b\xcd\xd9\xf2\x5e\xdb\x25\x95\x2a\x28\x0b\x1d\x9f\x0a\x34\x76\xca\x36\xf8\xc2\xf5\x4b\xd0\x00\x35\xe1\x18\xc3\x4a\x31\x83\xea\x25\x6d\x51\x9f\x8b\xbc\x53\x38\xe8\x2f\xf1\xdf\x64\x34\xf2\x77\xa9\x7f\x5d\xb6\xde\xc2\xca\x7b\x7f\xc7\x5f\x3a\x3c\x57\x84\x6e\x0a\xda\xe7\xb1\xa1\x7b\x49\x28\x46\x08\x0c\x39\x3e\x0e\x3c\x2a\x47\x11\x1c\xba\xa2\x84\xad\x88\x12\x62\x31\x8e\xf4\xf7\x86\x98\x4c\x03\x25\xae\xe6\x89\x8a\x87\xf3\x8a\xb5\xd9\x94\xa3\xd5\xa8\x02\x90\x9d\x9e\x9b\xb2\x0a\x8b\x83\x22\xe6\xc2\xb4\xbe\x79\x18\x7b\xc7\xd1\xdd\x96\x3f\xfb\xd6\xcb\x06\x02\xdc\xab\x02\xb6\xf4\xac\x74\xe2\x02\xd4\xc3\x70\x09\xad\xd0\x40\xed\x99\x62\xb8\xec\x54\xe6\x63\xff\x14\x13\x0d\x84\x32\x1f\x70\x0f\x0f\x40\x39\x54\x8a\x3e\xff\x86\x3f\x14\x89\xea\x62\x3a\xb6\x05\x7f\x8a\x58\x6c\xe0\x4a\x30\x5e\x90\x2d\xbf\x64\x23\x0d\x9a\x2e\x41\x38\xd1\x09\xe8\xa6\x52\xdc\x6d\x05\x95\x7f\x0d\xd7\x42\x87\xab\xf9\x37\xe4\xaa\x9d\x4f\xff\xca\xa7\xbb\xe6\xb9\x29\xa5\x20\xa4\x17\x49\xf9\xd7\xb5\x4e\xb5\xff\xfd\x4f\x1e\x7e\x89\x8d\x59\xc5\x68\x18\x9a\x25\xff\x91\x16\x8a\x24\x0d\x43\x52\x9f\xc5\xe1\x00\x27\x0f\xae\x95\xcb\xd6\x8b\x9d\x40\x84\x87\x4e\xf4\x21\x04\x26\x85\x24\xab\x62\x31\xde\x42\x1a\xf1\xce\xf4\x40\x04\xba\x90\x54\xae\x77\xd6\x49\xf1\xaa\x2c\x9f\xf3\x9f\x18\x58\x34\xe3\xcd\xa4\x51\xaf\x2e\xd4\xe5\xcb\xcc\x26\xa4\x05\xa2\x7d\x4b\x3a\x19\xac\x53\x7d\x4c\xbf\xbd\x62\x66\xbe\x29\x29\x49\xb8\xd0\x70\xec\x2c\x45\x37\xa8\x04\x99\x5f\x8c\xcc\xc2\xa9\x2d\xdb\x15\xeb\x19\x78\x18\xb2\xa1\xff\x0d\x4e\x7d\x65\xeb\x27\xcd\x71\x4c\xb3\x99\x17\xdd\xcc\x4a\xc5\xad\xb2\xd4\x7e\xbe\xe1\x83\xe1\xe6\xa6\xdd\xa1\x1c\xf8\x68\x95\xbd\x58\x84\x35\x35\x42\x7c\xb8\xe3\xe4\x84\x35\xfb\x7b\x74\xf1\xc7\x64\x73\x47\xeb\x45\x7d\x05\x82\x26\xd1\x02\x75\x0d\x56\xc9\x76\x0d\xc7\x1c\x4b\xb7\x32\x3d\xe4\xbc\xad\xd9\x61\x8b\x25\x72\x89\x5c\xe8\xcf\xe0\x66\x93\xdc\x39\xb6\x3d\xca\x9e\x65\xdd\xf3\xfc\x6a\x79\xc7\xc9\x4c\xd2\x9e\xbb\x15\x6d\xf7\x8a\x99\x24\x27\xba\x05\x66\x80\x90\x67\x73\x7e\xfd\xb1\x64\xb1\x65\x36\x18\x95\xd8\x4c\x7b\xf1\x14\x75\x3a\x37\xba\xb0\xd6\x40\x8c\x50\x7a\x80\xa2\xfd\xc0\x32\x3b\x66\xdb\xd5\x9a\x4f\xdd\x4c\xd8\xcc\x20\xe6\x91\x17\x69\x1f\xb9\xcc\x65\xba\x56\x42\xd5\xbc\xa9\x87\x3e\x1d\xf6\x54\xab\x17\x67\xba\x15\x78\x9c\x4f\xbd\xb8\x1b\x22\xa9\xdd\xcb\xe6\x6b\xca\xde\x89\xb9\x92\x1c\x1f\x83\x46\x5b\x5d\xc9\xa9\x61\xf3\x64\x09\x65\x26\x06\x63\x93\x75\x66\x5d\x96\x73\xe5\x3c\x2c\xea\x26\xf6\x43\x15\x6b\x50\x4b\x84\x69\x71\x50\xb2\x00\xe5\xfe\x76\x7b\xff\x97\x5f\x0e\xe6\x96\x28\x50\x08\x46\xd6\x28\xb5\x2e\xe3\xf0\x48\x13\x6a\x21\x6a\x25\xa6\xc3\x20\xbf\x9d\xae\x33\x4a\x44\xdb\x2a\x2e\x0b\x08\x5d\x99\xca\xfe\xa1\xcb\x02\x71\xe0\x6f\xfe\x78\xd3\x5b\x61\xd6\x88\x78\x1e\x5d\x78\xd3\x33\x18\xe9\xd0\xf1\x34\xec\xb6\x9a\x4d\x2d\x33\x74\x8f\xb2\x32\x37\xf0\x1b\x87\x7c\xd3\xc2\xcc\x5a\x2a\x67\x6b\x93\x92\x8f\xce\x9c\x62\xda\x5d\x4a\x3a\x86\xc2\x1b\xd7\xb3\x11\xd8\x29\x0b\x9b\x13\x8a\xac\x34\x1a\xa6\x12\x23\xef\x26\x70\x03\xc5\x38\x37\x82\xc9\xa4\xdd\x7c\x6f\x22\x1d\xe7\x83\xde\xba\xd4\x85\x78\x03\xd8\xe5\xcb\x9d\x2a\x08\x7c\x4e\x14\xdb\x86\xaf\xde\xe8\x2b\x2a\x75\xde\x75\xef\xec\xf2\xef\xcc\x9a\x7f\x44\x19\x67\xf5\x20\x79\x08\x85\xf9\x34\xcb\x24\x3a\xab\xde\xec\x89\xd7\x2b\x54\x58\x54\xb8\x62\x25\xff\xea\x03\x64\x8a\xff\xbd\x13\x75\x8d\xa4\x45\x85\x82\xef\x89\x0b\x2e\x15\x65\xaa\x21\x7f\x88\xe4\x2b\x3e\x27\xf1\x64\xc5\x00\x1e\xba\x23\x51\x3a\x8b\x1d\x0d\xdf\xd7\x92\x97\x98\x3f\x9c\x77\x97\xb8\x3e\xde\xe9\x56\xf2\x3d\x0b\x2b\xb3\xa0\x90\x5f\x44\x8d\x8b\x4b\x1c\xa2\x85\x06\xdf\x38\x07\x12\xde\xe5\x6e\xa6\xbc\x9a\xbc\x49\xa5\x5f\x7b\x01\x3a\xa7\xd4\x14\x1e\x54\x7c\x45\x33\x4f\xe0\xdc\x93\x10\x41\xb2\x86\x89\x06\x14\x6b\xdd\x77\x20\xd2\xaa\x2c\x72\x40\x3c\x76\x8e\xdd\xcc\x0e\xbd\x20\x63\xac\xa8\xf2\x77\x9d\xa8\xf1\xe5\xa6\x4b\x7d\x78\xcb\x88\x43\x76\x63\x6d\x09\xe9\x01\x38\xe1\x76\x14\x37\x3e\x71\xa3\x9a\xaa\x09\xb3\xb2\xaa\x9c\x1c\x06\x11\x6c\x8a\xef\x06\xfc\x36\x7a\xc2\x85\x1c\x66\x0c\xae\x1b\xc5\x49\xc7\x41\x47\xae\xff\xaf\x48\x8f\x34\x02\xd5\x74\x81\x61\xee\x4f\x47\x6a\xf5\xc5\xf2\x7e\x01\xaa\x84\xf7\x18\x37\xa0\xb3\xe9\xaa\x4f\x09\xbd\x5d\x16\xbc\x02\x4c\xdd\x03\xcd\xd5\x17\x75\x35\x96\x0d\x07\x21\xbc\xb1\xd9\x2f\xe3\x66\x11\xbf\x00\x26\x10\x7b\x9b\x6e\x8b\x38\x84\x37\xb3\x21\x54\xe6\xaa\x1b\x0f\x10\x32\xad\x55\x73\x1c\x23\x35\xe6\xe7\x03\xe4\xe3\x82\xda\x09\xc1\xc3\xb2\x87\xc2\x3b\xf6\xc5\x08\x4a\x6d\xdc\x60\xab\x25\xf6\x67\x9e\xf4\xfa\xd3\x74\xdd\xe3\x95\xe2\x53\x11\xe8\x34\x67\xbf\x74\xf4\xf0\xc5\x8b\x97\x6f\x82\x85\x18\x0c\x31\x5b\x02\x3d\x33\xdd\xf2\x64\x85\xb2\xe6\x78\xb1\xbc\x42\xb1\xb9\x52\x8b\x62\x9e\x3a\x31\x61\xfd\x95\x70\x6f\x8e\x04\x0e\x47\xee\x10\x2e\x2d\xcd\x58\x21\x97\xe3\xef\x12\xa5\x7c\x28\x02\x2b\x0e\x1f\xb1\xd5\x80\x4c\x6d\x6a\x02\x18\xf0\x5c\x97\xae\x6a\x36\x54\xb6\x40\xc0\xf4\x9f\x4d\x7a\x2e\x6a\x75\xb5\xdc\x1c\x06\xcb\x28\x99\xc8\x5a\x98\xcb\x2d\x5c\xf2\x2b\x43\x44\x17\xc7\x4c\x28\x4f\x07\xe6\xc0\x05\xb1\x7f\xaa\xd3\x2f\xf7\x77\xda\xc3\x71\xc9\xcc\xf5\xea\xcc\x0f\xc1\x1c\x9f\xc3\x09\x1e\x36\x45\x74\xc8\x3e\xd5\xd9\x57\xd2\x59\x6c\x08\xf9\xce\x98\x5d\xd4\x43\x3a\xf8\xc3\x62\x27\x90\xa6\x68\x32\xd8\xac\xcd\x6c\x11\xf3\x50\xbc\x50\x05\x81\x1d\x73\x0a\xfb\x90\xb4\xbf\xed\xf4\x66\x82\xa8\xdf\xec\x75\xb2\x9a\x1e\x05\x11\x1d\xbe\x98\xc3\x51\x51\xf1\x6d\xf9\x8e\x68\xee\x19\xfc\x3c\xd7\xa4\x58\xe4\x56\x41\x1e\x09\xb7\x09\xef\xef\xcc\xde\x1e\xfb\x86\x95\x9a\x4a\xde\x60\x22\xe9\x6b\xc0\x60\x3e\x06\xcd\xd4\xbd\xc7\xa5\xb3\xee\x7b\x6f\x1d\xbf\x86\x6e\x19\x92\x8a\xce\x3b\x21\x1e\xa7\x40\xcd\x7c\x23\x47\x49\x65\x4f\x73\x24\x7b\x88\xa8\x0a\x35\x3b\xc2\xaf\x24\xbe\xd9\x34\xb2\x42\x64\xbf\x27\x24\xb1\xf3\xd7\x89\x1e\x54\xc8\x06\xba\x29\x7b\x90\xd1\xa7\x30\xa4\x44\x98\x81\xda\xb0\x8d\x65\x7a\xcb\x2d\xb2\x85\xb8\x14\x9a\x24\x5e\x37\x25\x53\x72\xf2\x45\x2e\x15\x47\xc3\xb0\x54\xcf\x85\xe2\x2d\x10\x3a\xb0\x47\xc0\x54\x19\xab\xf8\x87\xc1\x81\x81\x90\x05\x0f\x94\xd8\x38\xdc\x6b\x44\x89\x5d\x5c\x7f\x54\x97\x69\xaa\x2e\x51\x76\x6b\xf6\x84\x43\xf0\x2b\x8e\xb6\x5d\x1c\x6b\x2d\xd1\xe2\xc7\x15\x76\xc4\x3f\x70\xcb\x59\xe5\x43\xb1\x72\xd2\x20\x09\x17\x88\x06\xa3\xc1\x03\x9c\x90\xee\xd5\xcb\x93\x37\x1c\x46\xf3\xbc\x84\x4c\x0c\xf7\x3a\x4c\xbb\xbc\xd1\xd3\x29\x1d\x97\x96\x3d\x00\x16\xc5\xc3\x9d\xc4\x66\xbc\x0f\xf1\x40\x09\x6d\x11\x14\x47\x4c\xa7\x8a\xc7\xd0\xcd\xb6\x48\x7e\x89\xbe\x87\x0d\x90\xfa\xfb\xf8\xb5\xd4\x05\x0f\x82\x59\x35\xd1\x9e\xae\x7a\x5e\x72\x6a\xd1\xad\x25\x12\x1b\x6e\x90\x2a\xf1\xf5\xc5\x88\xbc\x81\xd7\x5a\x03\x8b\xaf\xab\x42\x0d\x59\x6e\xf4\x63\xd9\x3b\x04\x07\xe5\x3a\xda\x4f\x3a\xb4\xe4\x2d\x2d\x9c\x94\xc0\x8b\x06\x66\x4a\xc0\xe7\xd4\xc2\x02\x54\x7e\xcc\x94\x11\x46\xcc\x2e\x9f\xca\xdf\x99\x12\x3b\x89\x2a\xb5\xd4\xe8\x52\x33\x25\xd6\x5d\x75\xb5\x7c\x44\xff\xcd\x90\xe3\xb2\xd4\x88\xec\xfb\x54\x76\x12\x8f\xd6\xb0\x4e\xba\xa9\x55\x31\xca\x7a\x48\xa4\x37\x63\x2d\xbe\x53\x12\x0a\x58\x2a\xb0\xc8\x74\x00\x99\xa5\xca\x6c\x61\xb6\x4a\x4e\x10\x33\x39\xe7\xc3\x12\xc2\xbc\x09\xa3\xa8\x2e\xe5\x6a\xeb\x13\x39\x54\xa6\xbe\xb9\x26\xc1\x9c\x3a\x70\xd6\x29\x28\x0f\x56\xe3\x2c\x63\x34\xca\x69\x83\x06\x3c\x3d\x44\xa2\x79\x0f\x9b\xd7\x58\x63\xa8\x5a\x77\xf0\x67\xb8\x03\x3a\x0b\x17\x6e\x78\x8a\x69\x76\x03\xe7\x18\x3a\xcf\x1c\x0b\x0b\xda\x21\x70\x9e\xbe\x7d\x6d\x7b\x6e\x3c\xb1\x91\xf8\xd3\x14\xbc\x5d\x91\xcc\x81\x6c\xa6\xa4\xde\x79\x5a\xc1\xbb\x4b\x1b\xe9\xdd\x2b\xb6\xe7\xf0\x9a\x73\x54\xbf\x19\x39\x88\x88\x15\x28\xc2\x49\x58\x11\x08\x8b\x83\xd3\x47\xbb\xa3\x8e\x72\x6c\x3d\x39\x70\x30\xf3\x2a\x72\x6d\x4f\x11\x15\xa5\x6e\xfa\x7a\x30\xb9\xe7\x6f\xd0\x9b\x38\x5c\x26\xe1\x78\x9a\x48\x5a\xe2\x83\xf5\xaa\x29\x44\x88\x1c\xb8\x11\x07\x92\xbb\x7f\x3e\x79\xf9\xe2\x50\x47\xfd\xfe\xfe\xe5\xe5\xe5\xfd\x10\x6e\xdb\xde\x1f\xfb\x06\x2a\xe1\xca\x54\x3a\x9b\x43\x04\x92\xff\xc6\x0c\x9b\xc5\xd7\x0f\xe8\xc7\xbd\x45\xc1\x4a\x7e\xc4\xe5\x8e\xf8\x70\xc8\x10\xd9\x7c\x0c\xb6\xe6\x6a\xc8\x79\x33\xa2\x63\xfc\xa6\xbe\x2d\x0e\xe9\xe5\xe8\x4e\xcf\x61\xf4\x5a\xc0\x4c\x78\xb7\x98\x00\x00\x2c\xa4\x96\xc5\x1b\xe7\x59\x18\xd8\x58\xb3\xe9\x8d\xba\x50\x54\x13\x1e\xc8\x36\xe5\xe6\x5d\x08\x6b\xf0\x83\xfe\x98\x94\xa8\xa9\x61\x1e\xd7\x33\xfa\x81\xdb\x60\x52\xc2\x29\x05\xe9\xff\x28\x0f\x3a\x0e\x3d\x64\x7f\x8b\x9d\xc3\xce\xff\x2a\x3b\x0f\xd6\xcc\xa1\x46\x88\xb3\xee\x4b\x00\xac\x0d\x36\xe4\x5c\x44\x16\x59\x33\x6c\x92\xd9\xb5\xcd\xd5\xf2\x87\xd6\x05\xde\x16\x7f\x52\xde\x3a\x64\x3b\x98\xbc\x4b\xa0\xe0\xec\xfe\xee\x2d\x26\x2d\x71\x5c\xc6\x40\xfa\x2f\x9f\x15\x30\xe7\xf6\x7c\x47\xc8\x89\x7d\x27\xb2\x36\x24\x92\x01\x21\x3e\x42\x58\xa0\x55\xf1\x55\x5c\xc2\x67\x4c\x5a\x9b\xa9\x11\xab\x58\xf6\xe4\xca\x5a\x89\x8d\xe7\x21\xc2\xd1\xd3\x7d\x5a\xa8\xfd\xce\xec\x82\x2c\x5f\xd1\x7f\xf3\x4b\x25\x8f\xe3\x80\xc2\xa1\x2f\xf6\x5e\x8b\x08\xe7\x18\x07\x70\xd0\x06\x0e\x04\x71\x3a\x49\xf6\x0f\x85\xc4\x87\xd9\x85\xf3\xbf\xfe\x48\x17\x25\x74\x66\x11\xf5\x22\x98\x86\xf1\xa3\xdf\xce\x94\xa6\x03\xce\x61\x84\x93\x13\x93\x0e\x1c\x66\xc8\x48\xc5\x6b\x8e\x04\x0b\x78\xcd\xd5\x99\xa2\x36\xad\x92\xf4\xe4\x4a\x47\x56\x3e\x33\xec\x8b\xeb\x25\x11\xe4\x4d\x89\x0e\xb1\x3f\x5a\x29\xb5\x80\x08\x3a\xc7\x35\x7c\x73\x6c\xd7\x7a\x13\xa7\xe4\xc8\xf2\x50\x92\xf3\x9a\x61\x6f\xac\x8c\x1c\xa7\x80\x90\x1d\xb5\x99\x3a\x4d\x9f\xa0\x14\x9b\x70\xd7\xb8\x62\xd5\x9f\x40\x90\x91\x38\xe4\xf5\x49\xb4\xa5\xc9\x79\x15\x7f\xba\x3f\x8b\xa3\x60\x96\x97\xbf\xe0\x92\x1f\x75\xe2\xcb\x5a\x31\x2b\x28\x53\x81\xca\xae\xe9\xae\xe2\x10\x39\xea\x33\xd1\x74\xb5\x1a\x4d\x24\x33\x0d\xe5\xa7\x6e\xdd\x78\x09\x69\xbe\x26\xdb\x93\x87\x8e\xe2\x58\xff\xde\x4f\x5f\xf4\x15\x1b\x6d\x28\x1e\x42\xc2\xd9\xc5\x2a\x81\x99\x59\x4c\xfd\xb5\x7d\xa1\xdf\xe2\x6c\x9e\xf5\x3c\x71\x1c\x5e\x64\xed\xc5\x7e\xe7\xf3\x83\xff\x0d\xfe\xe7\xc9\x02\xdf\xe8\x5a\x9e\xb7\xfd\xdb\xdc\xcc\xe7\x96\x69\x4e\xf0\x5d\x7e\x6a\x1b\x67\xea\x4f\x05\xe2\xde\xe9\x3a\x1f\xac\x17\x91\x7b\x9a\x42\x5d\x4b\x7c\xbc\x1c\x89\x05\x91\x1f\x83\xfd\xe2\xf1\x1b\x07\x16\x2d\xe2\x8d\x5b\xeb\x59\xd8\xe9\xc2\x21\x08\xf8\xe9\xe9\x62\xdd\x77\x97\x16\x8e\xdd\x78\x92\x04\x62\x6a\x38\xf0\xd5\xbc\x60\x27\x9c\xa6\xe5\x60\x44\x00\x0b\x43\xfe\xa3\x69\xa2\x9a\x14\xef\xe2\x81\x81\x96\x93\x59\x97\x9b\xbe\xb7\xe0\xa9\x86\xc7\x54\x80\x05\x8c\x2e\x36\x0d\x3f\xd0\x84\x5a\xf6\xbc\xbb\x5c\xe1\x17\xfb\xa6\x5b\x18\x46\xcb\x13\x20\x4c\x86\x23\x89\x2b\xbb\xd2\x48\x90\xfd\x71\x97\x24\xe2\x6e\xa8\x4f\x9a\xf5\xfa\x11\x1b\x84\x75\xbc\x00\xae\x30\x95\x65\x90\x8a\xf2\x23\x3f\xc5\x3b\x55\x2c\xb2\x08\x65\xdc\x9a\x11\x2e\x7a\xf4\xec\x85\x7e\xb1\x0f\x81\x3e\xad\x27\x4e\x04\x3a\x0a\x09\x4f\xcb\xa2\xa3\x85\xf7\x55\xd0\x17\x1f\x83\xfb\xc2\x42\xfc\x43\xf8\x77\xb0\xb9\xbe\x70\x0f\x43\xba\x52\x55\x5f\x9e\x0e\x74\x0f\x77\x08\x0e\x17\x67\xd0\x28\x5d\x6d\x58\x4f\xde\xdf\x05\x67\x88\x50\x88\x96\x0b\xdb\x70\xc2\x7f\x42\x72\x6a\xc5\xe4\x52\x4b\x70\x68\xcb\xb0\x16\x61\x89\x22\xe7\x05\xdc\x56\x77\xac\x3a\x2f\xe9\xc9\x98\xef\x9a\xa1\x68\xe5\xdf\xdf\xf3\x60\xe5\x0a\x10\x41\x91\xb0\x1a\xf4\x1d\x67\x32\x05\x7b\x04\x50\xf9\x97\x7f\x4c\x2b\x39\xef\x34\x7e\xa7\xc1\x8a\x4e\x8f\xc9\x93\xd8\x1d\x8b\x35\x88\x2c\x0d\x88\xfc\x6d\x10\xc4\x47\x6c\xf3\x16\x93\x2d\x5a\x45\x58\x58\xb1\xe7\xec\xbc\x1c\xb9\x7b\x49\x9c\xcd\x6a\x5b\x79\x16\x48\xc0\x2c\xbe\x1b\x09\xe1\x6c\xcb\x9e\x88\x91\xbb\xf6\x9e\xd8\xc8\xb9\x36\x2e\xc1\x66\x20\x00\x64\xaf\xae\xb9\x7e\x4b\xf9\x85\x1c\xec\xe7\x45\x6d\x47\x89\x5d\x3d\xed\x3a\xb6\xbd\x7f\x8d\xf7\xa0\xe0\x29\xca\xaf\x63\xe8\xf5\xe0\x2a\x80\x8a\x07\x59\x79\xc4\x0f\x96\x00\x43\xfc\xbf\xff\xf1\xbf\xe6\x40\x48\x4e\xd4\xb3\xa6\xb0\x07\xe5\x19\x04\xcc\x2c\x83\xf2\xef\xa4\xf4\xa0\xaf\xb6\xf2\xc4\xc9\x6c\x75\xf7\x20\x99\x32\x3f\xec\x7b\xc4\x1c\x9b\x90\x62\x00\x12\xd7\x18\x18\x5b\x28\x0c\xea\x4a\x24\x8b\xaa\x37\x6e\xa5\x1f\xbc\x2a\x2b\xaa\xd8\x32\x7e\xcd\x29\xea\x14\x7b\xc2\xd4\xa6\xda\x58\x7a\x78\xc3\x0b\x24\x72\x5a\xc2\xcb\x23\x7c\x2c\x67\x0e\x0f\xb3\xdc\xee\xf8\x78\x35\xf2\x9e\x1d\x77\x80\xba\x52\x03\x28\x0d\xb1\x88\xcb\x31\x2a\x2f\x00\xb0\xf1\x3e\xa0\x00\x48\xaf\x31\xe2\x1a\x12\xdd\xe5\xf6\xad\x1f\xbb\xfe\xec\xa7\x28\xd2\x6f\xf2\x5c\x48\x97\x3c\x20\x1a\xca\xcc\xf8\x64\x33\x60\x4f\x23\x03\x4f\xdd\xb2\x81\xe2\x82\x63\xb6\x06\xd3\x94\x80\x43\x9e\xa8\x4e\x22\xe1\x37\x69\x93\xcc\xc4\xca\x1d\xe7\xcc\x06\x27\xd1\xa4\xe2\x90\x46\x1c\xa8\x4e\xb8\x08\xc4\x0d\x8d\x5c\x3e\xd2\xd9\xb1\x77\x9c\x50\xc7\x55\x6c\x37\x7f\xfb\xd6\xce\x74\xbb\x46\x82\xc8\x11\xf5\x6f\x39\x42\x2c\x9e\x6b\xb4\xdd\xd6\x40\x59\xfa\x8c\x3f\x85\x0b\xff\xcb\x48\xc0\x2a\x31\x90\xe1\x39\xc6\xb1\x68\xe1\x61\x86\x90\x90\x2a\xaa\xc5\xcb\x24\x88\x57\xeb\x93\x6f\x0c\x37\x19\xf9\xef\xa1\xd1\x78\xfc\xc1\x37\xe6\xaf\x1a\xcd\x1c\x4b\x39\x35\xdd\x08\x51\x92\x35\x0a\xb3\x2b\xce\x19\x37\x94\x8f\x5c\x6f\x39\x4e\x71\x1c\xcc\x4b\x0e\x86\x73\x7c\x50\xd7\x25\x8d\xee\xec\x62\x50\xc5\x46\x65\x3e\x32\x34\xfa\xf3\xd6\x42\x1a\xc4\xcc\x87\xc0\x6e\x42\x64\x76\x2e\x0c\xfd\x94\xe0\xfa\x88\x5d\x6e\x6b\xc6\x9f\xde\x71\x56\x8e\xb4\xef\x5d\x40\xee\x3e\xaf\x8c\xd3\xc3\x6a\x4c\x82\x1b\xfc\xa4\x53\x20\xfb\x37\x0a\xb7\x99\xc9\xd1\xff\x15\x56\x03\x7b\xa2\x43\xc6\x32\xca\x2c\x4c\xa4\xcf\xda\x13\x2f\xf2\xf7\x6b\xf1\x69\x36\x3c\x82\x97\xe9\xf1\x14\x2d\xb4\xd9\x5b\x5e\x45\xa3\x07\x49\x35\x47\x2b\xfa\xea\xbf\x3d\x00\xe4\x66\x12\x79\x37\x0b\x03\xb9\x67\x66\x21\xc0\x48\x6c\x16\x91\xc2\x81\xa7\xe0\xf6\x6a\x9c\xa6\x21\x4a\x33\xac\x99\xb3\xd1\xd3\xf0\x22\xd3\x09\x4c\x6b\xa9\xa1\x04\xaf\x49\x64\x46\x3d\xad\x3a\x8d\xd1\x31\x31\xc3\xfe\x6d\x51\x47\xf6\xe8\xd4\x26\xe1\x47\x3e\xec\xd7\xad\x69\x0d\x60\xa5\x99\x18\x24\x9f\x58\x27\x8f\xcb\x66\x22\x2b\x3b\x39\x4a\x12\x60\x25\xb0\x19\xfb\xf6\x3f\x92\xcc\x0b\x6b\xcd\xc2\x44\xaf\x6d\x21\xfc\xe1\x64\x38\xee\x49\x23\x0d\xea\xa6\xcb\x32\xcc\xbf\x42\x1b\x96\xad\x32\x73\xd0\xc8\xd6\x8b\x82\xfa\x85\x62\xd8\x2c\x5d\x38\xda\x34\xd9\xa1\xc5\xd7\x86\x1d\x24\x24\x86\x48\x54\x48\xb4\xd0\x08\x86\x38\x97\x9e\xd7\xce\xba\x98\xf5\xf1\x70\x99\xaa\x44\x94\x8b\x29\x24\xd3\xd6\x6f\x4c\xd9\x2c\x9f\x97\x10\x63\xf5\x21\x43\x54\x45\xcb\x27\x12\x8f\x3d\xa4\xf3\x93\xb2\xf0\xc2\x1b\x86\xb8\xb8\x5e\x98\x62\x67\x53\xee\x84\x48\x6e\x27\xc1\x5f\x79\xb1\x6b\xbd\x4d\x23\x4a\x59\xe3\xbb\x13\x23\xf6\x01\xe4\xfe\x9f\x26\x0d\xe3\xb9\xa5\x63\xd8\xbb\x49\x68\x29\x4a\x53\xa0\xd2\x9b\x78\x01\x9f\x13\x5a\x18\x75\x3d\x71\xa9\xd9\x68\x25\x11\x54\x95\x86\xdb\x5a\x3e\x94\x0b\x86\xe8\xf6\x63\x68\x54\x42\xcd\xa8\x50\x1a\xf5\xd5\xdd\x42\xf2\x3a\x62\x59\x48\x98\x53\x09\x28\x23\x26\x32\xe2\xcb\x54\x79\x97\x7d\x3b\x81\xa7\x85\xeb\x85\x29\xf3\xe9\x58\x98\x54\x8f\x47\x13\x97\x9b\x1f\x0e\xdf\x83\xbf\x56\x38\x36\xe5\x48\x23\x2a\xd6\xb5\x69\x13\xdb\x24\x88\x0d\x79\x8a\x4c\x25\xb3\x9d\xa5\x74\xc2\x6a\xd5\x1b\x06\x29\x4f\xe4\xa5\x83\xcc\xdf\x74\x9c\x96\xfc\xe4\x30\x67\xc7\x76\x18\x0f\x2c\x8e\xaf\xdc\x48\x74\x0a\x2c\x2e\x91\x05\x2a\x36\x13\x4f\xf7\x48\xc1\x1d\x06\x7d\x53\xf8\x05\x29\x31\x7f\x33\x4b\x9e\x58\x06\x4d\x88\x93\xe3\xd8\xd4\x8c\x35\x29\x7e\x42\x6d\xc0\xb8\xcd\x7e\x83\xb0\x44\x0c\xc0\xd2\x09\xd6\x6b\x73\x9c\xa3\x69\x48\xb4\xdf\x83\x95\x9a\x9c\xf4\x90\x89\x64\x04\x29\x4a\x1e\xa7\xe4\xe1\x0d\xe4\x80\x64\xbb\x90\x5d\xa0\x4d\xf3\x2b\x2d\x6b\x09\xc2\x37\xa6\xea\x14\xdb\x44\x16\x03\x0e\xf1\x4c\xda\x9c\x0f\x5e\x95\x91\x89\x69\x8d\xe8\xd2\x70\x70\x95\x86\xb1\x52\x3d\xeb\x56\x27\xcd\x8f\xac\x96\xfc\x7c\x00\xed\xa8\x44\xe3\xe4\x27\x04\xfc\x5b\xdf\xde\xf8\x40\x0d\xed\x02\x1c\xc5\xfd\x3a\x72\x42\x67\xbd\x4f\xec\xb5\x48\x70\x48\x0e\x43\xd9\x79\x80\x7d\xf8\x10\x5e\x59\x35\x6d\x04\x46\x7c\x22\xc2\x2e\xff\x49\x42\x7b\xbb\x49\xc5\x6f\xcd\xfe\x3e\x7c\xf3\x87\x87\xe4\x4f\xe6\xa7\x06\xc5\xb6\x25\x78\xb8\x82\x23\x55\x7f\x12\xb7\xfc\xe1\x01\xed\x3b\x5d\xfb\x97\xea\x30\x1e\x1b\xb5\xba\x1f\x95\x7c\x62\xe4\x37\xf0\x74\x0a\xc0\x7b\xce\x46\xd0\x45\xc5\xe7\x23\x0d\xad\xc2\xba\xe5\xac\x01\xb5\x28\x92\xa8\x2c\xc1\xeb\x2f\xb4\xde\x76\xad\x88\xc5\xdb\x61\x2e\x8a\x58\xdd\x3a\x81\x55\xf4\x66\x48\x78\x81\x42\xdf\x08\x16\x91\x01\xaf\xeb\x4f\xb7\x6f\xf9\x17\x41\x97\xd1\x8b\x9f\x6b\x7e\xf1\x93\x1f\x8e\x5e\x46\xa1\xf9\x25\xc2\xbf\x37\xbb\x9c\x84\xfa\xbf\xf9\xcd\x05\x7d\xc7\x42\x19\x97\x87\xd9\xb3\x16\x56\x63\xe4\x9d\x09\x51\xea\x5e\x75\x45\x94\x1d\xb6\xb8\x23\x1e\x09\xa2\x82\x93\x2b\x3b\x68\x28\x81\x6d\xd7\xa2\x2f\xac\x14\x2c\x90\x84\x6e\x85\xc4\x4b\xc2\x94\x70\xf0\xca\xf7\x03\xc7\xf9\x91\xd0\x80\x6e\xa6\x2c\xf3\xa5\x75\x22\x1a\xee\x44\x7f\xc9\xbb\x0f\xa1\x84\x37\xb1\x04\xdf\xe6\x6d\x2f\x92\x36\x68\x20\x66\xcb\x22\xe6\x51\xe2\xcb\xe0\x80\x16\xcf\x31\x28\xd0\x41\x6e\xa0\xb3\xfd\xae\xa0\x73\xe7\x27\x35\xf2\xa7\x79\x39\xf6\xa6\x7f\x0a\x05\x11\xa4\x2b\x44\x90\x4e\x5e\xf6\x38\x8c\xd2\xe3\x2b\x21\xc9\x90\x40\xc5\xfe\x51\x8b\x38\x2b\xdd\x99\x38\x07\x11\x92\xea\x24\x05\xb1\x90\x92\x04\x31\x22\xce\x92\x70\x68\xe3\x94\x60\xbf\x9f\x0c\x29\xf2\x8e\xcf\xd2\xf7\xc5\x6e\x4d\xba\x09\xef\x6c\xc4\xc9\x12\x27\x2c\xed\x3e\x0a\xe3\x93\x76\xa4\xaf\x59\x0a\x8f\x58\x23\xfc\x45\x9c\xaf\xda\xd1\xac\x79\xe7\x5c\x10\xa7\x8a\xeb\x6f\x9c\x32\x5c\xff\x4f\xf6\x7f\x44\x03\x71\xba\xa2\xb8\xd9\xb2\x78\x2f\xac\xb6\xc6\x49\xa9\xe2\x22\x4e\xff\xb0\x98\x85\xca\x34\x10\xf3\x41\x00\xd1\xf9\xd2\xf2\xf8\xaf\x7f\xea\x77\xbe\x50\x3f\xb6\xc4\x0b\xc0\x85\x75\x48\x8b\xc0\xed\xa7\x5d\x69\xe4\xdb\x4e\x02\xc3\x11\xf6\xd6\xa7\x1d\x6d\xe1\xde\x92\xe4\x75\x7d\xc9\xe7\xda\xde\x5c\xdf\x5f\xb3\x1c\x22\x44\x72\x5c\xcd\xe8\x5d\x5a\x7f\xf9\x4e\x38\xf7\xd0\xb8\x5e\xde\x62\x7c\xc4\x1c\x94\xf2\xb6\x36\xa2\x64\x3c\x75\xe5\x20\x4d\x6d\x95\xec\x6f\x6b\xc9\x0f\xf7\x99\xe4\xa9\xc3\x73\xda\xe4\x1f\x1a\x36\xcb\x2b\x11\xdc\x09\x2e\xd2\xe9\x80\x9d\x5c\xd4\xe5\xea\xe9\x48\x50\xea\xcd\xed\xc5\xab\xfc\xe9\xd6\x7e\xe7\x04\xf0\x88\xfa\xd9\x46\x9f\x5b\x86\xb5\xab\xbc\x5c\xa0\x86\x51\x04\xdd\x83\xbc\x94\xb4\x7f\xc8\x71\x0b\x29\x40\xb8\xe7\x8a\x40\xa5\xf1\xb0\xfc\xfb\x2a\xf2\xe2\x9e\x74\xb6\x7f\x6c\x84\x5e\xae\xda\xcd\x8a\x1f\xec\xb6\xe7\xac\x4b\x27\x94\x77\x9f\x49\x1b\x31\xad\x70\x11\x27\x0f\x16\x54\xe0\x81\x84\xc7\xaa\x3f\x18\xd6\x2b\xdb\x83\xe2\x6e\xe9\x9c\x26\x94\xcc\x10\x64\x4a\x85\xec\x7d\x46\xd0\x17\x9d\x7f\x8d\x11\xe4\x26\xe1\xd7\x7b\x37\x0f\x60\x6e\x2f\x32\x0c\x1d\x6d\x40\xef\x46\x3b\x4c\xcd\xa4\x67\x7b\x89\x0c\x42\xd2\xb9\x7a\x30\x15\xe9\x88\x22\x9c\x60\x1a\x5e\xc5\x4b\x7d\x97\x23\x3d\x40\x86\xc2\x2e\x9f\xc6\x47\x37\x9c\x79\x6c\x3d\x7d\x21\x04\xd2\x28\x27\x66\xdb\xb7\x12\xf1\x18\x23\xf7\xac\xdc\x58\x9d\x3a\x13\xc3\xa9\x09\xf0\xf0\x02\xe9\xc9\xf0\xeb\xb4\x6f\x99\x92\x6b\x17\x52\xe2\x9e\x06\x00\x9b\xfe\xe5\xe3\x91\x95\x44\x08\x56\x89\xd3\x60\x8a\x13\x64\x8f\x29\xca\x23\x6e\x02\x34\xd6\x59\xd7\x53\x7f\x74\x4b\x2c\xbf\x77\xbf\xac\xbe\x09\xd2\x64\x48\x4e\x6b\x10\x41\x4a\x64\xdf\x6a\xe4\xc0\x6a\x3f\x44\x11\xda\x9f\x43\x5d\xc2\x4e\x3f\x5a\x3d\xae\x3d\x74\x43\xd9\xb8\xba\x10\x46\x6f\x44\x83\xe1\xea\x70\x3e\x47\x66\xe6\x07\xee\xe3\xaa\x5a\xa9\x5b\x83\xbb\x89\xeb\x50\x0a\x5e\xa8\x8f\xcb\xf2\xd3\x9f\x08\x5b\x45\x0b\x3c\xee\x56\x58\x0e\xd0\x55\xee\xe1\x3d\x7d\x12\x41\x31\xf9\x2b\x2e\x9c\xae\x4b\x36\xc2\xac\x85\x83\x87\x8d\x93\x4b\xfb\xe9\xce\xd4\x46\x00\x92\x49\xdf\xc7\xf5\xda\xcb\x36\xe7\xea\xba\xf5\x3d\x37\xe5\x6e\x66\x75\xdf\x94\x04\xbe\x4f\x29\x2f\x81\x3e\x2e\xbc\x77\x81\x42\x9d\xb9\xb5\x8a\xeb\xd6\x15\xb1\xaf\x73\xf5\x10\x71\x11\xf8\x6b\x6f\x45\x36\xa3\x99\x87\x83\x4f\x0f\x59\xd5\x85\xf3\x43\x6e\x78\xc1\x32\x60\xe0\xda\xdd\xfa\x17\xc2\x8f\x44\xb8\xd2\x5f\x3a\xd5\xf3\xfd\xac\xbb\x6e\x00\x53\xb5\x03\x05\xcb\x86\x92\xf9\x92\xbe\xaa\xa1\xe9\x74\xc5\x32\x32\x96\x6a\xec\x5d\x57\xae\x38\xb3\xa2\x5b\x44\x72\xa5\xee\xfa\x91\xb9\x5e\x3b\xd3\x27\x0e\xfd\x89\x2f\x50\x3c\x3f\xa1\x1a\x37\x36\xe1\x7b\xcf\x6b\xb9\x01\x24\x5b\xb3\xdd\x94\x74\xe0\x7f\xdf\x10\x8e\x4a\x8e\x6b\x79\x53\x23\xb3\x83\xe0\x7a\xb3\xa3\x90\x37\xba\xa0\xbc\x58\x8f\x9b\x77\x66\x80\xb7\xe0\xf9\x8a\x0d\x2a\x42\x53\xf2\x70\x17\x7b\x1c\x00\x43\x09\x5b\xc6\x1c\x1a\x1b\xd7\x51\x0d\xe4\x49\xf3\xc9\xad\xba\xa1\x8d\x19\x4a\xb6\x9c\x89\xb7\x86\x92\x3c\x8b\x71\x34\x3b\xac\x0e\xb1\x03\x56\xca\xd6\x94\xfe\x24\x87\x56\xa2\xd3\x2d\x4f\x28\xb3\x3f\xa5\xe3\x73\xe6\x76\x1c\xfc\x97\xdc\xf1\x9b\xab\x0d\x4c\x21\xa0\xd4\x13\x41\x3f\x0d\xc2\x4a\x0c\xae\xb8\x02\x3f\x73\x41\x15\x04\x51\x8b\x45\x48\xf4\x46\xe8\xf7\x47\x53\xa4\xe9\x4a\xbf\xe2\xf8\x07\xd4\xac\xe0\xca\xd9\x82\x3b\x94\xf1\x25\xe7\x3a\x96\x12\xe1\x8d\x8d\xb9\xb2\xda\xa3\xc3\x5e\x7c\xab\xa2\x84\x32\xcc\xe2\xd8\xa3\x4f\x3e\x10\x24\x9a\x66\xf9\x3d\xdd\x8f\x0e\xb6\x52\x76\x5a\x6a\xf0\x9b\x61\x4e\x25\x33\x89\xe9\xea\xa2\xbc\x6b\x59\xa5\xfc\xdd\xb7\xa3\x56\x2b\x79\xee\x8c\xbd\x63\x35\x27\x04\x89\x8a\xc4\xb8\x92\x27\x74\xdb\x63\xbd\xf9\x5d\xaa\x5a\xe3\x6a\x18\x3d\x9f\x9c\x1a\xf7\x68\xe3\x4c\xc6\x8b\xad\x97\xd8\xe1\x00\xff\x27\x01\xa2\xa5\x20\xc7\x39\x16\x35\xa5\xb1\x49\xed\xa6\x23\xfe\x4b\x38\x99\xb8\xa2\x1a\x7b\x0b\xa3\xe6\xd7\xf4\x8f\x3e\x6f\x17\x66\xe0\x57\x38\x76\x99\x3f\x4a\xd6\xb6\xb6\xab\xb0\x9c\x21\x80\x3e\xbf\x85\x2f\x8b\x1b\x97\xe4\xe5\x0d\xa5\x9c\x98\x98\xb7\x2e\xd3\x6e\xe7\xaf\x8d\xeb\x2a\x40\xeb\x0c\x87\x06\x26\x8a\xa2\xa6\x54\x6c\xcc\xf0\x12\xbf\x66\xee\x6c\xff\x04\x44\x58\x9e\xd5\x77\x8e\xd6\x86\x1b\xca\xfc\x72\x45\x36\xc5\x92\x12\xcc\x22\xa4\xf8\x0d\x5a\xcd\x6c\x85\x26\x0f\xa6\x4e\x66\x9f\xbc\x93\xea\x65\xad\x7f\xf0\x49\xd4\xb8\x53\xf7\x68\x6c\xe8\xb3\x0c\x9d\x6d\x83\xf0\x3b\x15\x93\xeb\xcb\xb0\xa5\xbe\xb8\x76\x56\x8e\x8c\x96\xc7\xe8\x01\x54\x90\x94\x6e\x50\x4c\x39\xe2\x15\xcb\x05\xbb\xe5\xed\x3b\xc4\x99\xdc\x8b\x2b\x84\x83\xc9\x9f\xb9\xf5\x08\x27\x4e\x8c\x47\x54\x66\xc6\xe7\x71\x7f\x77\xb9\x28\x4d\xea\xec\x7d\x94\x21\x1e\x8b\x7c\xe7\x5a\x47\x49\xe5\x38\xd8\xcc\x77\xd6\x17\x35\x84\xa6\x2e\x03\xa1\xaf\xf9\xc9\x30\xe3\x3b\x9b\x09\xc3\x2c\x22\x3d\x3d\xcc\x7b\xc7\x1e\x1f\x6d\xeb\xaa\x20\xf8\x4b\x6c\x18\xed\xad\x60\xf6\xa0\x12\xad\xe5\x67\x25\xdf\x51\x24\x52\x49\x90\x07\x1d\x3d\x26\x74\xc9\xb3\x06\x41\xd1\xd8\x23\xbb\xf5\xd9\x7e\xb9\x50\x64\x7b\x33\x57\x26\x37\x2c\x97\xd4\xf3\xce\x0e\xcb\xa7\x74\x02\x7c\x0a\xe2\xe5\x2e\x5f\x75\x88\x67\x23\x09\x2c\x15\xa9\xda\xe5\x23\xc8\x40\x1e\xbf\x48\x92\xfd\xe3\x85\x9c\xf9\x4a\xbf\xfc\xb4\x70\xcf\x70\xe8\x30\x38\xb7\x80\x48\x20\x76\xa6\x78\xc4\x01\x21\x74\xe0\x74\xec\xeb\xf5\x08\xe5\x2a\x63\x59\xfd\x94\x67\xa7\xaf\x3f\xb6\x61\x29\x43\x49\x3b\xf6\x93\xc2\x6a\x80\x76\x5a\x6e\x6b\x66\x5c\xf2\x3a\xf2\xa4\x9e\xaf\x80\x33\xe8\xde\x19\x94\xa2\x12\xb0\x4c\xc6\x29\xe1\xca\x7c\x23\xac\x1d\xd0\x7c\xbe\xab\xb2\x02\x5b\x60\xda\x95\x2d\x97\xcf\xa1\x92\x2c\x4e\x1e\xba\x0c\xbb\x1d\x76\xf2\x4c\xc1\xcc\xd6\x15\x27\xcf\xdf\xbc\x8a\x4b\x86\x9d\x98\x64\xf9\x2d\x49\x72\xf4\x71\xd0\x01\xcf\x2c\xba\x77\x44\x09\x1b\x9e\xd7\xa7\xc4\xbf\x30\x09\xf3\xe6\xf8\xc4\x37\xf3\xae\xde\xa1\xa8\xbe\x15\xbe\x3c\xa1\x6f\xe4\x17\x6f\xf9\xdb\x6f\x3e\x34\x4c\xe2\x2d\x9b\x18\xaa\x9e\x48\x5a\xf1\xea\xe1\xf3\xac\x7b\x0e\xce\x24\xe1\x0c\xa1\x68\x75\xd7\x22\x9f\x2a\x98\xc6\x71\x00\x72\x3d\x0d\xf5\x0e\x92\x98\xd6\x9a\xba\xf1\x07\x2d\x09\x9e\xc8\x08\x36\x35\x94\x99\x05\xf7\x40\x51\x4c\x9e\x9e\x96\x83\x65\xd2\x93\xb5\xc7\x08\x27\xbe\xb9\x6e\xba\xa2\xe3\xa6\xc2\x55\x75\xd3\x48\xf3\x53\x3c\x13\x1b\x03\xda\xa5\xd9\x73\xaa\x57\x1d\x9f\xfb\x19\x7b\x96\x4f\xd5\x89\x94\x57\xc9\xfc\x26\xda\xc9\xa3\xf4\x25\x1d\x91\x9e\x38\x51\xc4\x9c\xa6\xc3\x01\x82\x86\x68\xe7\xe2\xe5\x6e\x97\x89\x7a\xa3\xf7\x96\x93\x52\xd4\xaa\xb3\x08\xbf\xb9\x60\x70\xc1\xdb\x53\x28\xc7\x64\x9a\xdc\x9d\x9e\x22\x08\x18\xa2\x4e\x22\xb6\x30\x8b\x69\x7a\x7b\x9f\x0d\x73\x43\x5d\x5a\x0e\x80\x6d\xcf\xa8\x1d\x14\x1e\xbf\xbc\x5f\xba\x03\x54\xf2\x93\xb6\x6d\x19\xb8\x2d\x62\xa0\x3b\x1f\x96\x9e\xdb\xe8\x47\x7d\xfe\xfc\x49\x8b\x10\x9e\x20\xa7\x92\xd7\xa1\xa3\x62\x61\x2c\x30\x88\x14\xd9\x75\x3c\x15\xbe\x55\x7b\x62\x61\xe5\xe5\x8d\x27\x5b\xb6\x73\xe6\xc3\xfb\xba\xdc\x20\xa4\xd9\xf4\xd5\x22\xb7\x51\x10\x83\x6c\x56\xf2\x04\xc0\x27\x5a\xf8\x4e\xa5\x89\xac\x4c\xe2\x13\xa9\x8d\xd0\xfc\x7f\x5f\x0b\xba\x3a\x61\x14\x6c\xd1\x90\x3a\x56\x9d\x70\x5a\x34\x47\x98\x67\x2a\x74\xf2\xba\x69\xb4\x28\x6c\x6f\x7e\x7e\x79\xd3\xe7\x56\xb3\x5a\xef\x81\x49\x16\xfd\x3d\x52\x2d\x95\x73\xbe\x88\xab\x45\x97\x70\x48\x8c\xef\xbd\x90\x1a\xee\xef\x90\xc6\x23\xde\x33\x22\x6b\x9b\x68\x8b\x4f\x4e\x8e\xe7\x32\xfd\x3b\x4c\x9f\x23\x56\xee\x19\x9d\xe4\xcf\x8b\xd1\x3b\x51\xde\x8b\xab\xe4\x1b\x90\xe7\x85\xa6\xec\x5f\x1a\x62\x76\xbe\x9a\x6f\xc9\x61\xf0\x9b\x0e\x71\xbd\x31\xd1\x0e\x09\xfa\x4e\xdf\x96\xcd\x1f\xd7\x49\x1e\x93\x85\x57\x79\x78\x97\x36\x3f\x5c\xee\x3a\x48\x8e\xd6\x41\x08\x7b\x9b\xcc\x8d\xbd\x61\x34\x47\x18\x7a\xba\xa3\x07\x28\x60\x83\x5b\x4c\xb1\xa6\x33\xc8\xe8\xcf\xcc\x37\xe2\x42\x00\xbb\x90\xc0\xec\x54\x10\x6e\xa3\x97\x6b\x42\x03\xe5\xd0\xf9\xb0\x67\x6f\x23\x5f\x03\x6d\x82\xe7\xce\x46\xde\x57\xcb\xe7\xf4\x5b\xaf\xa3\x17\xdd\x8c\x0a\xd8\xdd\x7e\x22\x69\xc9\x5f\xf3\xa6\x5b\x98\x65\x2b\x95\xbe\x94\x1d\xd0\x9b\xb8\x75\xc2\x41\x64\xd5\xb0\x46\xe5\xb8\xde\xd6\xaa\x59\x64\x8f\x11\x75\x04\xf5\xb3\xb2\x66\x08\x0f\x39\x47\xf5\x08\x27\xd4\xfa\x7e\x94\x0d\x6f\x4f\x3f\x76\x0f\x4c\x83\xae\xcd\x9a\xf6\x8d\x3a\x97\xf3\x59\xe8\xf0\x9e\x96\x5a\x98\x60\x6b\xa4\x3e\x4d\x7b\x46\x90\x79\xdc\xe1\xa5\x2d\x11\x81\xd3\xa1\x03\xe2\xc0\x2d\xca\xaa\x88\xe8\x1c\x89\x4f\x26\x8b\x20\x68\xd7\x96\x4f\xde\xef\x6a\x07\x7b\x04\x03\x17\x5d\x1d\xb6\x3e\xa3\x4a\x5e\x48\xf0\xb9\xf0\x04\x31\x53\x30\xd1\xfe\xdc\x70\x33\xf1\x96\x8d\x7d\x5e\x7c\x42\x71\xa7\xd9\x0e\x64\xe9\x60\x75\x09\xb8\x3e\x7d\x72\xfc\x32\x2f\x3c\x41\x0f\x9a\x3e\x83\x4c\x34\x67\x2f\xf2\x10\x2d\xe3\xec\x5c\x58\xcd\x98\x15\xdc\x37\x0b\x81\xbf\x7d\x4b\xa2\x92\xc1\xa4\x6c\x59\x95\x3b\xa1\x64\xe9\xaf\x18\x44\xee\x29\x39\x79\x17\xcc\xee\x2b\x09\x61\x08\x41\x32\x7b\xdf\x4e\xcb\x58\x21\x5d\xf6\xa2\xef\x13\x67\xd1\x9b\x95\xdf\xf5\x1d\xe2\x38\xf4\xcb\xef\x5c\xcc\x13\x81\xbc\xbc\xbc\x2b\x97\x77\x20\xc7\x22\xaa\x1c\x46\x4d\x10\x5e\xa7\x04\xee\x11\x27\xe5\xc7\x1b\xa7\x4f\x0a\x47\x87\xdb\x6a\xe1\x80\x0c\xce\x36\x7e\xb1\x44\xd4\x17\x56\x0c\x62\xb7\x6c\x5e\x4d\x7d\x6a\x56\x99\xa2\x27\x9f\xd3\xf9\x30\xec\xac\xf8\xdb\xf3\x83\x5e\x11\x9a\xcf\x67\x11\x9a\x8b\x0f\xda\x64\x46\xbb\x9a\xe5\xbe\x7b\x76\xe1\xe0\xd9\x56\xdf\xd7\x49\x0a\xeb\x45\xb2\x74\xe4\xbf\x96\xeb\xeb\x29\x41\x75\xd6\x2b\x16\x8c\x0f\xd1\xf7\x9a\x98\xd0\x1b\xfb\xa0\x35\x27\x2d\x50\x36\xa2\x9f\xa2\x02\xde\xb2\x66\xb1\xe9\xe9\x9e\x78\xa3\xc6\x0a\x47\x3d\x47\x7b\xd4\xac\x70\x58\x5d\x8a\xa5\x52\xd5\xc8\xd1\xd4\xca\xd6\xe3\xf4\xa8\x86\x33\xc6\x61\x99\xaf\x4b\x0d\xaf\x36\x84\x07\x1b\x42\xae\x79\x6f\x60\x8e\x90\xeb\x99\x22\x5a\xcf\xc6\x4d\x75\x4e\x28\xa8\x0f\xa3\x1b\x79\xdd\xdd\xe6\xe4\xa1\xab\x31\x13\x21\xd5\x4d\x86\x96\x95\x90\x8e\xd1\x67\x5b\xc5\xf1\xae\xe7\x4d\x9c\x1b\x9b\x2b\x99\x76\xe3\x6d\x97\x9c\xb1\x90\x7c\xae\x10\xf1\x65\x6a\xce\xe4\xca\x46\x04\x55\x9c\xb4\xfa\x62\x99\x51\xaa\x2e\x77\x3a\x0b\x97\xd3\xed\x96\xb1\x69\x48\xa8\xc0\xfc\x4c\x88\x51\x80\x87\x6a\x9c\x18\x7f\xbf\xc5\x23\x8c\xc6\xd8\xf8\xe7\xa7\xf4\x95\xc4\x52\x83\xab\xe6\xaf\xf1\xa5\xbe\x8b\x77\xac\xf3\x58\x6c\x7d\x60\x44\xf9\x5d\xc5\x41\xcf\x92\x20\xd8\x5f\x84\x60\xd7\x08\x81\xbd\xff\xc1\x10\xff\x10\x03\x0f\x47\x22\x64\xe8\x83\x0e\x6e\x04\x0f\x6c\xbf\x79\x70\x27\x7e\x65\x41\x6c\xd1\xd3\x88\xe2\x69\xab\x32\x49\x79\xc5\xe2\xe7\x52\x03\xf8\x83\x21\xf1\xf6\x4d\x49\x0f\x22\x23\x93\x4e\x10\x88\x3c\xbc\xe6\xa0\x2d\xa5\x61\xd0\x55\xda\x9e\x06\xa6\x8e\xdb\xd3\xe8\xe6\x33\xcd\x25\xef\x6b\xfc\x5c\x86\x77\x57\x54\xc6\xfb\xbb\x06\x37\x13\xbd\xf9\x67\x8d\xb0\xfd\xfb\x87\xe6\x03\xc0\xe9\x5e\x44\x21\xdf\x66\x00\x44\xf6\xd9\x46\xf1\x76\x66\x61\x86\x63\x7e\x0c\xe5\x19\xda\x2b\xcf\xa8\xa5\x9b\xf7\x35\x69\x66\xba\xab\x1a\x5b\xff\xcb\x38\x14\xba\x84\xf9\x47\x10\xb3\x2f\xd3\x87\xd5\x08\xe8\x11\xf6\x9a\x40\xbe\x3c\xa3\xf9\x8c\x54\xb0\x14\x0c\xc6\x0f\x2c\xc2\x69\x01\x3e\xc0\x30\x38\xe5\xeb\x33\xbc\x05\x8d\xf3\x76\xb9\x8c\xbf\xbf\xb0\xcb\x2f\x0a\x8b\x67\xc6\xa9\xe0\x1d\x6a\xfc\x8b\x2d\x25\x6c\xeb\x16\x5e\x2c\xfc\x7d\x4e\xdf\xfc\x22\xa8\x7c\x56\xf4\xc9\x12\x13\xfe\xba\xe4\xda\xcc\x95\x6b\x6d\xc2\xce\x54\xbf\x23\x58\xe7\xef\x2b\xfa\x2a\x5b\xfe\x2d\xbd\xf0\x0b\x14\xda\xa1\x94\x91\xce\x38\x5d\x7f\x72\xf2\x39\xb0\x24\x12\xb9\x73\x49\xc3\x83\xed\x48\x12\x01\x3b\x52\x2e\x8d\x79\xa7\x4d\xf2\x28\xb4\xc9\xae\x1d\xce\xa5\x45\x37\x92\x2b\x53\x4a\x73\x70\x22\x44\x42\x5f\x5e\xae\xdc\x90\xdc\x78\x24\xd5\x0d\x48\xff\xf2\x82\x57\x7d\xb7\x43\x04\xdb\x9f\xc2\x43\xab\xee\xa9\x3a\x68\xac\x3a\x38\x68\x83\x50\xf0\x3e\xfa\xf5\xa6\x66\x0f\x6d\x36\xa4\xf9\x20\x2c\x08\x1d\x86\x06\x86\x48\xf0\x53\x86\x2a\xc1\x85\xa8\xae\xdb\xdd\xa8\x1c\xf5\xdb\xf4\x4d\x4c\xd0\xc6\x49\x2d\xa6\xf3\x7d\x27\xec\x17\x54\xf0\xf3\x51\xfa\xb0\x1f\x01\xc6\x6a\x4d\x77\xed\xb1\x89\x9f\xb0\x45\x1c\x19\x82\xf4\xbb\x7f\xff\xf7\x1c\x4f\xbf\xfe\x60\xfe\xe1\x1f\x88\x7d\xb8\xc7\xca\x10\x66\x1f\x9a\xd2\x15\xda\x96\xef\xeb\x6d\x29\xa5\xe9\xf7\x77\x51\x85\x47\xf7\xd8\x47\x99\x0d\x82\x59\x89\x93\x84\x6c\x89\x02\x03\xfc\xff\x00\x00\x00\xff\xff\x67\x9f\x11\x0c\x62\xb3\x00\x00") +var _confLocaleLocale_frFrIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\xbd\xdd\x6e\x1c\x47\x96\x27\x7e\x2f\x40\xef\x90\xad\x81\xfe\xb4\x00\xaa\x04\xdb\xff\xfd\x80\xe1\xb2\x57\xa2\x64\x5b\x0d\x4a\x66\x8b\x94\x06\x58\xc3\x28\x27\x2b\x83\x64\x5a\x59\x99\xe5\x8c\x4c\x4a\xd4\x60\x80\xbd\x6d\x60\x1f\x60\x2f\x07\x73\xb1\x6b\xcd\x00\x7b\x35\x77\x73\xd7\x7c\x93\x79\x92\x3d\xbf\x73\x4e\x7c\x66\x16\x25\x7b\x7b\x16\xe8\xb6\x58\x91\xf1\x79\xe2\xc4\x89\xf3\x1d\xe5\x76\xbb\xaa\x8c\x5d\x2f\x5f\xb6\x85\x35\xfd\x65\xbd\x36\x45\x65\x8a\x6f\xeb\xa1\xb0\x65\x6b\x8b\x6d\x5f\x5b\x2e\x19\xae\xff\x69\x30\x45\x39\x0e\xdd\xfd\x8b\xeb\xf7\xa7\xa6\x3f\xbf\x7e\x5f\xac\xbb\x8a\xfe\x6b\xda\xe2\xdb\xee\xf6\xad\xdb\xb7\x2e\xba\x8d\x59\x3e\x5c\xaf\x47\x53\x37\xb7\x6f\x55\xa5\xbd\x38\xed\xca\xbe\x5a\x9e\x94\xa7\x8d\x29\x47\x74\x73\xda\xf5\xd5\xed\x5b\xe6\xed\xb6\xe9\x7a\xb3\x7c\x22\xff\xf6\xd4\xd4\x34\xdb\xe5\xc3\xba\x32\xb7\x6f\xd9\xfa\xbc\x5d\xd5\xed\xf2\xa0\x6b\x5b\xf3\xb6\xee\x5a\x2d\xea\xc6\x61\xf9\xf8\xfa\xfd\x3a\x2b\x1e\xb7\xcb\x83\xfe\xfa\xbd\xe9\x8b\xb1\xa5\x09\x6d\xb6\x03\xf5\xd1\x9b\xf3\xda\x0e\xa6\x5f\x1e\xef\xd5\xad\x5d\xf7\x75\x4f\x85\x6f\xcc\xa9\xad\x07\xb3\x3c\xa6\xff\x14\x7f\x6b\x4e\x6f\xdf\xba\x34\xbd\xa5\x9e\x96\xaf\xe4\xdf\xdb\xb7\xb6\xe5\xb9\x59\x1e\xd1\x7f\x6e\xdf\x1a\xcc\x66\xdb\x94\x54\xfd\x19\x2d\xf2\xd7\x86\x4a\x9a\xb2\x3d\x1f\x51\xe1\x10\x7f\x50\xc1\xba\x37\x54\x61\xd5\x9a\x37\x3a\x85\xc5\x62\x71\xfb\xd6\x48\x70\x5c\x6d\xfb\xee\xac\x6e\xcc\xaa\x6c\xab\xd5\x06\x4b\x3d\xe2\x82\x62\x1c\xea\xa6\xb6\xd4\x6a\xec\x0b\x33\x14\xdb\x66\xb4\xb2\x0e\x53\xd1\x9a\x57\xa5\x95\x65\xaf\x07\x81\xeb\x50\xb6\x43\xf1\x0b\xc6\x92\x7e\xdb\x92\x20\xfc\xbc\xdb\x14\xd5\x5e\xd4\x13\x01\x74\x53\xd6\xcd\xf2\xc9\x7d\xfc\x83\x55\x58\xfb\x86\x00\x4d\x53\x1f\x00\x74\xfc\x66\xa0\xac\x86\xab\xad\xc1\x08\x67\x75\xbf\x31\xef\x68\x05\xe5\x76\x58\x5f\x94\xcb\x03\xf9\x17\xc3\xf4\x66\xdb\x11\x98\xba\xfe\x0a\xd0\xde\x5e\xff\xcb\x70\xfb\x56\xd7\x9f\x97\x6d\xfd\xae\x1c\x00\xac\xef\xf9\x87\xe5\x1f\xb7\x6f\x6d\xea\xbe\xef\xfa\xe5\xb3\xba\xef\x6a\x9a\x08\xc1\x62\x85\x1e\x68\x92\xe3\x25\xf6\xdc\xf7\x81\x2f\x9b\xfa\xbc\x07\x48\xf9\x63\xd3\x98\xe2\x19\x17\x70\x47\xf8\x7e\xd6\xf5\xaf\xf5\x63\x61\x36\xa7\x7d\xd9\xae\x2f\xcc\xc6\xb4\xda\x9c\xa6\x11\x9a\x66\xd3\x28\x5b\xda\x19\xae\xf1\xed\xf5\x7b\x42\xa9\xa2\x31\x36\xa9\x43\x70\x2e\xab\x0d\xc1\x78\x5b\xb6\xa6\x59\x3e\xc4\xdf\x84\x23\x6e\xf8\x72\xbd\xee\xc6\x76\x58\x59\x33\x0c\x75\x7b\x6e\x09\x0b\xfa\x72\x73\xfd\xeb\xd0\x53\x3f\xd5\x58\x1c\x28\x66\xcd\x7d\xbf\x7d\xeb\xaa\x1b\xfd\x9e\x2f\x5f\x75\x54\x58\xc8\x2f\xfd\xe4\x5b\xbd\xea\xe8\x4c\xc5\x2d\x79\x65\x76\x75\x66\x4c\xb5\xfc\xa6\x19\xdf\xd2\xce\x96\xeb\x61\x2c\x9b\x9a\x50\x80\xbe\x6f\xc7\xa6\x21\x88\x12\x0e\xd8\x81\x06\xa5\x5f\xc5\x0b\xfd\x75\xfb\x56\x6d\x2d\xfd\x05\xdc\x3a\x6d\xae\x7f\xdd\x48\x7f\x6b\x82\x1a\x16\xd8\xb6\x63\x83\xa3\x75\xfb\xd6\x0f\xd6\x94\xfd\xfa\xe2\x47\xcc\x1e\x7f\x2c\x5f\x18\x82\x6b\x8f\xff\x33\xc6\xce\x6d\x39\xb0\x6d\xf9\x32\xc6\x31\x1e\x2c\x8c\x45\x03\x75\x15\x90\xa9\x62\xec\xfc\x81\xce\xd9\x50\x36\x0d\x0d\xa2\x7f\x2d\x9f\xca\xbf\x0a\xe0\xa1\x1e\x08\x36\x28\xeb\xc7\x35\x6f\x48\xb1\x25\xd0\x14\x4d\x49\xa0\x32\x9b\xfa\xfa\x57\x02\x9a\x79\x4b\x07\x7c\x94\x06\x55\xb7\x7e\x4d\x27\x09\x94\x01\x07\xb9\x2e\x2e\xbb\xd1\xba\x1a\x74\x3c\xbe\xed\xce\x6d\x71\xde\x5f\xff\x23\x91\xac\xeb\x7f\x28\x1e\x73\xf5\xfd\x62\x43\x0b\xab\x81\xf5\x0d\x1d\x7a\xf4\xfe\x65\x49\xc7\xa8\x3f\x37\xc3\xf2\xce\xea\x94\xce\xf0\xeb\x3b\xc5\x45\x6f\xce\x96\x77\xee\xda\x3b\x5f\xd1\x2e\xad\xaf\xdf\x57\x63\x6f\xbe\x7c\x50\x7e\x55\x94\xc3\x40\xd8\x56\x5f\x32\xd2\x15\xe5\x25\x8e\x1f\x75\xb5\xe9\xaa\xfa\xac\x26\xa4\xfa\x65\xec\x6a\x9c\xc7\x82\xc6\xb4\x1d\x11\xc9\x0a\x44\x72\x4d\xbb\x8b\x53\x76\x6e\x8a\x3f\x00\x9a\xbf\x8c\x44\x61\x56\xd5\xa9\x50\x56\x9e\x27\x17\x9a\x7e\x28\x9e\x5d\x1d\xff\xe9\x70\xbf\x38\xea\xec\x70\xde\x1b\xfe\x9b\xfe\x43\xf5\x3f\x2f\xba\xb1\x38\xa9\x1f\x3f\xa2\x0d\xa1\xa6\x02\xae\x04\x09\x79\x35\xa7\xa5\xd0\xe3\x8a\xc8\x04\x91\x1c\x2b\x95\x71\xac\x4f\xe8\x3f\xf8\xf2\x48\x6b\x3c\xf6\x35\x2e\x68\xb0\xe5\x77\xb4\xad\x66\x6e\x5f\x13\x6a\xf1\xd8\x14\x47\x42\x2d\xa8\xdb\x40\x6d\x78\xe8\x69\xc7\x54\x47\xb7\xe7\x95\x19\x6b\x3a\x95\xef\x94\xc0\xf1\xf9\x23\xb0\x31\x9d\x7b\xfa\xfc\xf9\xf7\x8f\x1f\x11\x34\xcd\x1a\xa5\x3f\x1b\xbe\x09\xd6\xb4\x34\x22\x73\xbf\x62\x69\xe3\x70\xf6\x9f\x57\xe7\xa6\x35\x7d\xd9\xac\x68\xf7\x18\x31\x18\x52\x04\x0c\x6b\x1b\x22\xa1\x15\x13\x62\x53\x1c\x1f\x1f\x62\xca\xc3\xc5\xf2\x80\x48\x43\x8d\x5b\xe0\x97\x06\xe0\xd6\x89\x1c\x52\xcf\xfc\x01\x87\xf6\xac\x5e\x5f\x60\xdb\xe6\x41\x37\x03\x78\xd3\xf7\x2b\xa2\xfb\xc3\x15\x76\x8f\x47\x89\xfa\xfb\xa8\x4e\x8a\x96\x30\xc1\x8c\x43\x41\xf7\x25\xe1\xdf\x25\x5d\x69\xda\x6f\xdd\x5e\xd2\xa9\xae\x68\x67\x1d\x68\xa9\xef\xd6\x43\x77\xd2\xf1\xc9\x53\xdf\xdb\x5b\xba\xd8\x5a\xc2\xcc\x5a\xc8\x5a\x0c\xba\x3b\x8b\x3b\x18\xfa\xce\xfd\x3b\x34\x4c\xdb\xad\x84\xc6\xe1\xda\xa9\x68\x87\xe9\xde\x5d\xc9\x5d\x28\x74\x8e\xe8\x0f\x9d\x21\x74\x0a\x32\xfa\x0e\x37\x43\x41\x57\xb8\xa5\xee\x08\xe9\xa9\xf7\x3d\xd3\x6a\x7d\x39\x02\xcc\x04\xac\xb3\xfb\xb5\xe0\x41\x12\x70\x39\xd2\xaa\xa8\x74\xc8\x9b\xef\xef\x9e\x82\xa9\xad\x07\x0d\x46\x4d\xc0\x73\xfb\x96\xdb\xfc\x29\xda\x13\x39\x27\x78\xf4\x25\x48\xa3\xe1\x43\x4f\xc4\x9a\xb8\x96\x04\x39\xf7\x1e\x6e\xb7\x4d\xbd\x76\xb4\x5c\x3f\x3b\x9c\x78\xca\x2c\x00\xd6\x7b\xc6\x64\x86\x57\xd6\x78\xe0\x5f\x32\xbd\xee\xa2\xbb\xa2\xa8\x09\x09\xff\x20\x84\x51\xd0\xe0\x09\x98\x81\xb5\xb4\x7c\x51\xae\x6b\x5a\x4a\x15\x5d\x6e\xbe\xa2\x1b\xf2\x04\x70\xc6\x5e\x69\x15\xcb\x2c\x15\x6d\x09\x6e\x74\x0b\x56\xab\x63\xe8\xd2\x2e\x9c\x13\x8b\x44\x5b\x80\x31\x41\x8b\x47\x62\x69\x70\x46\x9f\xb4\x43\x2f\x40\x4f\x4e\xab\xfb\xee\xf1\x3d\x66\x04\x08\x79\x6a\x90\x2d\xba\x8a\x0b\xba\xd0\xae\x7f\xb5\xa0\x8c\x84\x5c\x61\xca\x2f\xae\xdf\x9f\xe1\x82\x24\x2a\x87\x4b\x96\xf0\xf4\xbd\x50\x54\x1a\x0b\xc0\x05\xf5\xe9\x88\x8d\x68\x97\x8f\xf9\x1f\xe3\x7e\xbb\x01\x0f\x0c\xf5\x57\x9e\x9d\x11\x8f\x62\x78\x85\x55\x37\x9e\x36\x20\xe7\xd5\xde\xcb\x17\x87\x74\x40\xbf\xe3\x43\x7b\xb1\xda\x76\xfd\xb0\x3c\xa2\xff\xa0\x2c\x14\xf9\x8e\xf6\xe8\x12\xe3\x6d\x18\x37\x34\xa3\x8e\xb1\x05\xb5\x89\x52\xf2\xff\xf1\x59\x16\x47\xd4\x9e\x2e\x4d\xdd\x28\xb0\xa9\x58\x2b\x75\xba\x8f\xe6\x4d\x49\x37\x13\xcd\x1e\xb8\x24\x94\x23\xc1\xe8\xb2\x38\xeb\x5a\xbe\x70\x5a\xb9\x54\x69\x76\x17\xc3\xb0\x8d\xa6\xf7\xdd\xc9\xc9\x51\x54\xe8\x26\xf8\x7c\x32\x2f\x60\x5a\x19\x30\xad\x00\x37\x0a\xc8\x95\x0b\x41\xba\xb1\x6f\x96\x80\xc1\x3c\x4a\xd2\xd7\x8f\x05\x22\x66\xf4\x00\xff\x39\xc6\x16\xd1\x22\xe5\xfc\x13\xe1\xdc\x33\xcc\xe4\xf1\xa1\xe9\xb6\xe8\x7c\xf6\xd4\x9c\x95\xeb\xb1\x19\x68\xf0\x33\xab\xdc\xe1\xdc\x8d\x32\x16\xc7\x81\xe7\x7f\x66\xac\xa5\x2b\xac\xaf\xc1\xe5\x6c\x08\x16\xe1\xda\x28\x8e\x9f\x01\x42\x5c\x7a\xd6\x77\x1b\x70\x01\x97\xa6\x95\xdb\x31\x2a\x77\xcb\x7b\x58\x51\xf7\x42\xce\x88\xa2\xbc\xdd\xd2\x0d\x5b\x03\x3f\xf7\x8b\x17\xdf\x1c\x14\xff\xe1\xf3\xcf\x3e\x5b\x14\xc7\x40\xd5\xb1\x05\x31\x91\xca\x04\xca\xbe\x07\x52\xda\x9a\x0e\x9b\xd9\x97\x0b\x96\x58\x48\xe2\x0a\x37\xe5\x50\xdc\xa1\xc3\x7e\xa7\xf8\x92\x17\xf3\x5f\xcc\xdb\x12\x95\x16\x44\x90\xbe\x5a\x80\xfd\x23\xc6\xab\xd7\x83\xc3\x00\x92\xb1\x9f\x84\xb1\x7d\xa5\x9c\x3b\xe6\xfb\x6e\xa6\xba\x93\x21\x56\x6b\xe1\x97\x49\xb2\xf1\x28\xa5\x2c\xb4\x60\x41\xb5\xf7\x24\x21\x9a\x32\xd2\xaa\xed\x08\xfa\x57\x71\xab\xe7\x28\x71\xb8\x43\xbc\x41\xf1\x8c\xea\x81\x37\xb8\xfe\x5f\x2c\x06\x00\xb1\xc1\x2b\xf2\x96\xcc\xef\x97\x43\x7e\x33\x70\x07\x24\x8f\xe1\x83\x36\xa1\x3e\xba\xb3\xb3\x86\x0e\xad\x5c\x98\x7e\x68\xda\x5c\xdc\x9d\x17\x5d\x6f\x8b\x48\x7e\x8a\x2b\x13\xe6\x6f\x49\x94\x7a\x1c\x1f\x1d\x53\x1c\x3c\x7e\x4e\x1c\xd5\xf5\x3f\x6d\x0c\xa4\x11\x62\x96\x2a\xe1\xdd\x16\xc5\x09\x10\x5f\x48\x1c\xb6\x8f\xf6\x6e\x6d\x3c\x5d\x03\x9d\xeb\xeb\xd3\x91\xef\x31\x6a\xd8\x74\xeb\x12\x28\xeb\xae\x24\x62\xfa\x2f\x4b\x62\xca\xf2\xe1\x1c\x36\x7e\xab\xdf\xa7\x2d\x66\xa6\xe9\x2a\xcb\x49\xa1\x39\xe8\x5c\x08\x11\xad\x1c\x7a\x8b\x79\xec\x17\x83\xa3\xc9\x52\x1f\x35\x69\xae\x44\x11\x1a\x3a\xc7\x17\x25\x24\x5a\x66\xce\xb9\x4e\x44\x55\x2d\x2e\x58\x94\x13\x5d\x39\x23\x88\x47\x0b\x49\xee\xd6\x6c\x31\x40\xdb\x91\x88\x13\x91\xac\x4a\xa5\xd0\xad\x72\xb6\x33\xad\xe7\xe1\xbf\xab\x0f\x3a\x1c\x66\x6c\x74\x35\x41\x92\xe1\xc9\xd2\x15\x7b\x89\x6b\x4a\x6f\x6d\xa0\x89\x5c\xdb\xa0\xed\x74\x68\x31\xb2\x93\xfb\x04\x43\xde\xf1\x56\x3b\x11\x30\xad\xe2\xe6\x45\xc7\xae\x15\x46\x85\xb9\x18\xc1\x61\x6d\xa3\x8c\xfc\x1e\x6b\x07\x32\x06\x82\xcf\x55\x04\xcc\x85\x32\xc8\x24\x8c\xaa\xa0\xbf\xba\xac\x49\x80\xd6\x01\x7a\x26\x09\x1e\x47\xa5\x67\x22\x94\x35\x84\x15\x5e\x0b\xd8\x6c\x3b\xdf\x89\xce\xf5\x98\x40\xa3\xa8\xa9\x38\x60\x14\xed\x21\x56\x9b\x00\x21\xbe\x27\x1b\xd7\xe7\xa2\x38\xa4\x3f\x2f\x6b\x5b\x0b\x1c\xcb\xb6\x6b\xaf\x48\xa6\x52\x76\xa9\x67\xcc\xe6\x26\x7c\x11\xb8\x66\xcc\xcb\xba\xf9\x3e\x48\x57\xbf\x70\x32\xa7\xca\x7f\x22\x10\x08\x0f\xb6\x57\x3a\x06\xec\xd4\x10\xa5\x63\xfe\x72\x07\xa3\x55\xa4\x97\x7c\x79\x05\xc2\xdb\xec\x3d\x7d\x5c\x2c\x8b\x4f\x89\x06\xf4\x25\x80\x2f\xf7\x3d\xb7\x60\x3d\x0d\xa8\x13\xcd\x34\x99\xc7\x2c\x4d\x11\xd1\xb6\x78\x98\xe0\x91\x6b\x11\x69\x1c\x12\x3e\x24\x63\xf8\x62\x5a\x0a\xc9\x90\xc9\x63\xf8\xec\x55\x0e\x42\x8b\xe2\xba\xd2\x51\xaa\xc0\x50\x09\x72\x75\x4e\x0c\x89\x13\x23\x95\x3f\x81\x62\xc6\x0e\xab\xf3\x7a\x58\x9d\x81\x9e\x57\xcb\x13\x5a\x60\x09\x34\x96\x9d\xd8\x08\xa2\xde\xa1\x1a\x77\x70\x41\x5f\x74\x20\x43\xc5\x17\xc5\xdd\x4b\x27\x2b\x7c\x0e\xda\xbc\x22\x2a\x50\x37\x40\x75\x15\xd8\x55\x19\x54\x6c\xe9\x26\xae\xd1\x04\xfb\x4e\x8c\x52\xc5\x9b\x44\x54\x8c\x69\x84\x71\x0c\xff\xa2\xf0\x32\x4f\x44\x42\x84\xd0\xbb\xae\x4e\xeb\x96\xcf\x6e\x07\x04\xae\x59\x6d\x41\xfc\x98\x88\x8b\xee\xda\xbb\x8b\x63\xe9\x64\x03\x92\x0c\x14\x55\x72\xd1\x6f\x22\x1e\xd4\xed\xba\xeb\x7b\x42\x69\xab\x6b\x73\x7d\x04\xa6\x55\x24\x24\x9e\x0d\xe0\x4e\xc8\x45\xe7\x61\xe8\x30\xa3\x5e\x18\x42\x6d\xe3\xc0\xe3\x99\x4b\xc0\x87\xf0\x67\x7d\x91\xf1\x97\x04\x6a\xea\x85\x90\x17\xbc\x19\xc0\xd2\xa4\x98\xb9\x1e\x46\xba\xc0\xa9\x33\x5b\xdc\xff\x8a\xfe\x4b\x10\x27\x34\x97\x1b\xf4\xdc\x6d\xd8\xb1\xe3\x7a\x8d\x8a\x3e\xf2\x79\xec\x3d\x53\x95\xec\x99\x5b\x57\x72\x92\x72\x1c\x8e\xcf\x8b\xc7\x61\xbf\xbc\x00\x22\xc1\x2b\x3b\xae\xe9\x86\xb0\xcb\x47\xb5\x69\x89\x12\xd0\x71\xfe\x03\x5d\xce\x23\x6e\x84\x0d\x4e\xfc\x05\x35\x86\xd4\x85\x83\xce\x5a\x87\xf2\x8a\xb6\x99\xa6\x45\xc4\x81\xb1\x70\xbf\x28\x37\x04\xa8\x77\xf7\x45\x27\x31\x30\xa2\x50\x15\x77\x90\x51\xcc\x2c\xda\x0f\xd0\x89\xfe\x48\x62\xb7\xc8\x23\x5d\x53\x81\xb1\xcc\x8f\x13\x2e\x98\x5c\x79\xe7\x2a\xa7\xa7\xc5\xbe\xa9\x69\x57\x56\x5e\xb7\xba\x62\xc6\xf0\xed\xb0\x24\xe1\x7c\x0d\x7d\x0f\x93\x72\x29\x63\x7e\x3f\xd2\xbd\x3e\x62\xdd\xeb\xe6\x8a\x31\xc4\x2e\x89\xdf\x4b\xa5\x01\x8b\x83\xdb\xd0\x91\xe8\x7a\x3e\x4f\x5a\x2f\xad\x53\x44\x55\xc0\x5b\x52\x77\x24\x39\x49\x6f\x99\xba\x8d\x3e\x89\x76\x50\xbe\x8a\x8a\x90\xca\x99\x54\xb3\xae\xf8\x15\xa8\xe9\x5d\xd6\x5a\x89\x2a\x6b\x41\x3b\xcc\x0a\x33\x19\xfa\x31\xa4\xcf\xcb\x8e\x65\x54\x96\xa2\x18\xa4\xaa\x3d\xfe\x51\x15\x57\xcb\x7c\x11\x54\x85\xe8\x1f\xd4\x5d\x41\x41\xbb\x52\xfd\x5e\xa4\x2b\x76\x1a\xca\x83\x4c\x67\x4c\x4c\xec\x16\x7c\xe2\xc6\x9e\xe3\x3a\xfe\x99\x4e\xac\xa7\xea\x84\xfb\x5f\x17\xaa\xa1\x75\xbb\x4f\x72\xa2\xed\xd6\x75\xd9\xac\xe6\x7a\x38\xea\x68\xdf\xe8\x7f\x10\x4b\xf6\x02\x61\xff\xba\x78\x68\xd1\x8a\x3a\x69\x58\x6b\x94\xf2\x04\xa2\x41\xa6\x9a\xcc\x10\x74\x44\x5d\xf6\xf9\xc6\x49\xaf\x17\x62\x4c\x5a\x08\x70\xd0\x86\x79\x99\x87\xfe\x8d\x48\x13\xd0\x83\x8a\x59\xb4\xcf\x0e\x07\xb8\x49\x22\x64\x13\x6e\x06\x13\x07\x31\x8e\x46\xce\x18\x5e\xf0\x42\xcf\x84\xc7\xb6\xc5\x93\x6c\x4a\xe5\x74\x42\x86\x2f\xfd\x8d\xd9\x9c\xa2\x6f\x43\x17\x34\x98\xb4\x4b\xd6\x67\x40\xf0\xe8\xea\xdb\xb7\x88\xd3\x39\x27\xa2\x33\xcf\x9c\x77\x42\x92\xa5\x96\xf9\x40\xad\xbf\xfc\xc3\xd7\xde\x34\x40\x84\xec\x0d\x91\x0a\xbd\xa4\x15\xf2\x8a\x02\x10\x6a\x07\x16\x62\x16\xfe\xc6\x12\x56\x8c\xd9\x77\x4b\xab\x71\x9b\xf0\xb2\x2d\x5a\xc5\x16\x27\x5b\xc4\x0d\x40\xd4\x65\xd1\x44\x4e\xba\x2b\xfa\x97\x0a\xbe\x3c\xfd\xea\xae\xfd\xf2\xc1\xe9\x57\xd1\x6e\x10\x2c\x7a\x51\x24\x8a\x28\x7b\xda\x5d\xff\xef\x81\xa9\x20\x4d\x69\x6d\xb6\x22\x18\x00\xe9\x09\x53\x08\x80\xc4\xf9\xe1\xe3\xdd\x4a\x28\x92\x6a\x4c\xb1\x10\xda\x97\xc1\x77\x33\x61\x3a\x1c\x53\x34\x74\x01\xef\x53\xa4\xa5\x09\x4a\x5b\x67\x31\x11\xa6\x53\x0e\x9f\x6b\xe3\xe4\x07\xa9\x19\xce\x09\x83\xa6\xa9\x37\xf5\x30\xc5\x52\x9c\xd6\xc1\xdd\xc8\x56\xb4\xd9\xf5\xa5\x80\x49\xf8\xed\xbe\xdb\x16\x67\xb4\x5e\x22\xae\x2d\x98\xd2\x00\x1e\xec\x0b\xc9\xa0\x57\xe0\xf4\x00\x84\xcf\x0b\x42\xd8\x51\x18\xd7\x8b\xd2\xae\xc6\x56\xa1\x6e\x2a\x41\xd1\x47\x5d\xfb\x33\x20\x72\xd7\xee\xeb\x24\x27\xc2\xe4\x27\x7e\x1f\xee\x81\xe7\x12\xdd\x13\xef\x95\xf6\x05\xf4\x2c\x9c\x76\x59\xb9\x32\x96\xc8\x88\x89\x5a\xf3\x81\xd5\x9e\xf2\x4d\x27\x9a\x4d\x58\x7c\x51\xd2\x19\x42\x0b\x46\x90\x46\x75\x68\xc4\x26\xd2\x15\xb1\xdd\x8e\xb8\x37\xec\xc8\x54\xf9\x94\x24\x26\x6a\xb6\xae\xef\x57\x2c\x30\xd9\x85\xc2\x52\x17\x73\xd0\x80\x5d\x7b\xc7\xba\x27\xde\xe7\x9e\xb1\x49\x88\xd5\x1c\xda\x39\xc1\x9e\x99\x19\xa6\x26\xb0\xad\x1c\x24\xdc\x85\x68\x0b\xf4\xc2\x96\x4a\xb8\x59\x69\xfb\xdd\xea\xb0\xa9\x40\x19\xcc\x03\xd3\x19\x76\xcc\xe6\x93\xfe\x9e\x9b\x0f\x54\xbb\x3a\x1f\xda\x32\xa2\x29\x43\x5d\x36\x4e\x75\x46\x64\x65\x93\x99\x9d\x6c\x7c\x64\x5f\x44\x2d\x9c\x6c\x1a\xdf\x70\xee\xba\x67\xeb\x42\xc0\x2b\xfc\x9c\x6c\x81\x67\x5f\x68\x2f\xe8\x56\xa8\x7b\xd6\xee\xa4\x03\x7a\x95\xcb\x04\xbc\xe9\x44\x04\x7f\xd2\xa9\xfb\x3e\x86\xae\x5b\xd9\x0b\x28\x8c\x72\xcd\x26\x6b\xdc\xbc\x76\xf6\x3f\x26\xba\x59\x90\xdb\xcd\xb8\x11\x46\x00\x10\xfb\x51\xcf\x19\x2e\x25\x77\xc8\x3c\xf6\x97\xc9\x69\x4b\xce\x25\xea\x0b\x87\xbc\x93\x94\xa4\x1b\xfe\x21\xa8\xcf\x2d\xd6\x53\x7f\xc7\x1d\x1d\x8f\x22\x52\x88\x16\x27\xa1\x31\xfb\x85\x67\x9d\x64\x71\x5d\x55\x62\x75\x57\xc6\x2e\xbf\x1f\x6b\x68\xa2\x89\xcb\x81\x5d\x0e\x96\x93\x2b\xa8\xee\x79\xb2\x5c\x19\x42\x2d\xd5\x7d\x49\x13\x79\xbe\x43\xba\x78\x41\x17\x7b\xf8\x36\xba\xfb\xff\xf6\xad\x27\x0c\x05\xa7\x5f\x72\x3c\xd3\xd1\xbc\x18\xf2\xc2\xa4\xf6\xce\x29\xb2\x1d\x1f\x7f\x77\xc2\x22\x51\xb0\x72\xac\x09\xdd\x44\x61\xf9\xdd\x30\x6c\xed\x4b\x55\xe9\xb1\x32\x0e\x23\x5d\x35\x5d\x59\xbd\xf4\x8a\x3e\xeb\xcd\x21\xac\xa7\x85\x68\x7a\x62\xca\x4d\xb4\x30\x50\xba\x7a\x4b\x83\x3d\x24\xa6\x24\x2a\x87\x8c\xd6\x7b\x03\x26\x4b\x5f\x4f\x22\x29\x48\xc0\x5e\x66\x42\x59\x10\x7c\x0d\xdb\x5d\x7f\x2a\x9e\x4f\xec\x0d\xc5\x4f\x84\x36\xcd\x96\x64\x77\xb0\x89\xbe\x22\x61\x2a\x4b\xbd\x52\xb1\xca\xec\x08\xdc\x60\x1f\xba\x58\xd3\xe3\xa0\xb0\xd2\x83\xf0\x9a\x8e\x9f\x29\x3e\xb9\xbf\xba\x57\x38\x56\x3a\xed\xbd\x22\xe2\xf3\x3b\x47\xd8\x9f\xef\xbf\x1b\x45\xce\x27\x56\x7a\xe0\xd1\x6c\xfd\xce\xc4\x63\xb8\x01\x44\xb5\x3d\x94\x38\x10\x7c\x4d\xda\xc5\x4f\x30\x48\x93\x90\x10\xb7\xb8\x6b\xe7\x0e\x25\x3a\xde\x94\x6f\x6f\xae\x5a\xbe\x75\x55\x85\xd2\xba\x7a\x19\x75\xf5\x64\x88\x2a\x42\xc9\xeb\xaa\x01\x43\x92\x6f\xed\x6b\xe2\x47\x5a\xfd\xfe\x84\xa4\x37\x96\x51\xa0\x3d\x20\x41\xe3\x0b\x6f\x8e\x5f\x79\xd9\x0e\xe4\xc6\x29\x59\x58\x2f\x42\xa5\x76\xdb\x89\x4c\xba\x88\x08\x54\x24\xb0\x65\x04\x0a\x5a\xb1\x32\x25\x9b\x55\x56\x25\xe9\x19\x1b\x28\x9d\x07\x97\x83\xd5\xa9\x31\xc4\x4d\x94\xaf\x4d\x3b\xf5\x3e\xc0\xe1\x04\x93\x0c\x57\x11\x35\x26\xaf\x66\x1b\x19\x77\x8c\x5d\x0b\xa7\xdc\x5f\xb0\x87\xc1\x7c\xa3\xbd\xc4\x2e\x93\x0e\x35\xd0\x41\xdb\xd1\x4a\x0f\x5d\xd6\x40\x76\x91\x2b\xd3\xd2\x2a\x4f\x47\x74\x1f\xb3\x69\xe1\x5a\x04\x6e\x9d\x43\xc3\xee\x86\x8a\x8d\x76\x7e\x14\xd0\xff\x5a\xb4\x5d\x29\x06\x81\xc3\xec\xab\x7a\xb0\x8b\x08\x98\x7e\xd3\xc2\x36\x4f\x81\xda\xa5\xd7\x68\x10\xf7\x59\x89\x47\xbd\xf6\xec\x31\x12\x89\xfc\x3c\xbb\x99\xfb\x41\xb4\x55\x3c\x69\x5b\x42\x80\x0d\xf4\x54\x54\xec\x37\x74\x4c\xd8\x0a\x6d\xc0\x87\x7b\xa6\x3e\x89\x15\x24\x30\x13\x6f\xc5\x2a\x0f\x19\xea\x43\xfd\xfb\xfb\x69\x77\xef\x09\x14\x66\x7b\xf5\x1a\x0b\xf3\x96\x28\x25\x18\xa0\xc4\xcd\x86\x78\x1f\x94\x1b\xc5\xea\xa6\xb4\x03\x44\x56\x59\x5b\xa6\xdf\x80\xac\xf7\x76\xdd\x8c\x60\xaa\xc5\x38\x45\x22\x78\x8b\xd9\x40\x7a\xe9\x4d\xba\xed\xc9\x8a\x17\xc5\xd3\x46\xa8\xd3\x95\x5a\xe0\xc6\x56\xf4\xf3\x59\x3d\x96\x76\x75\xfd\xb0\x89\xbd\x36\x57\x11\x9f\x53\x6f\x48\xa4\xb5\xf5\xa9\x90\x34\xa1\x1d\x9e\x27\xd0\xab\x89\x15\x2c\xac\x53\x80\xd4\x46\x3c\x03\x5d\xb1\xbe\x2b\x76\x37\x60\x4e\x77\x8c\x80\xe9\xf4\xb6\x35\x8b\x66\x26\xeb\xd0\xe9\xf8\x09\xb6\x2d\xd8\x60\x12\xf0\x06\x36\x46\x61\x57\x09\xf3\xb0\xd8\x5f\xc6\x3d\x56\x60\x35\xe2\xf9\xb0\x28\x60\xc3\xba\x4f\x1d\x12\xeb\xed\x37\x8f\xb5\x21\x2d\x18\x4d\x02\x21\x74\xbd\x10\xc4\x9d\xde\xe7\xfa\xcf\xeb\x0b\xb3\x96\x9b\xef\x02\xd2\xba\xb7\x85\x7c\xa1\x4a\x00\x4b\x5b\xd1\x60\x63\xc4\x87\xe8\x55\xc4\x09\xf1\x3f\xc4\x80\x19\xa8\xf1\xc1\xf4\x5b\xb9\x25\x1c\x68\xa1\xbb\x0f\x88\x4d\x42\x05\xa6\x52\x19\x70\xf3\x34\x20\xdc\xce\xc4\x38\x30\x6e\xa9\x3e\xdd\x40\x38\x60\x28\xa0\x9b\xb5\xb5\xac\x3e\xc0\x74\x65\x02\x90\x35\xe0\x49\x94\x8d\xaf\x67\xdc\x8f\x0f\x69\x90\x2e\x29\xab\x56\xac\x0b\x9a\x82\x0a\x83\x28\x88\xe9\xd6\xbe\x40\x46\xa6\x03\xef\x90\x41\x26\x10\x66\xe3\x98\x38\xed\x44\x29\x62\x06\x0f\x61\xed\x13\x82\xf8\xff\x04\x2a\xf1\xc6\xb0\x89\x4d\x65\x8c\x7c\x1b\x4b\x47\x41\xd9\x1e\x05\x40\xf0\x5e\xf7\x99\x39\x25\x92\xf8\xd8\xf4\x49\x93\x83\x6d\xbd\x27\x8c\xad\xc3\x5c\xde\xa1\xbd\x4a\xdd\x3c\x07\x71\xe2\x59\x89\x57\x58\x74\xde\x0f\xcb\x42\x3d\xc5\x48\xb6\xc2\xb9\xc9\x0e\x3c\x71\x9c\x98\x34\xd4\x41\x17\x65\x7b\x6e\x56\x6a\x7b\x3a\xe0\x5f\x0c\x08\xb1\x1f\x5d\xd6\x65\xe1\xec\x4c\x30\x2c\xfa\x06\xeb\xd1\x0e\xdd\x26\x6d\xe7\xb7\x4c\xda\xb2\xbc\x2a\x36\x81\xc8\xb9\xeb\x67\x42\x8f\x55\xd7\xd2\x3d\x43\xfb\x0a\xe5\x51\x63\x22\x6f\xab\xda\x4c\x75\x57\xcc\xee\xd7\x83\x9a\x0d\xd9\x07\x4c\x14\xd2\x60\x98\xa0\xff\x68\x9a\xee\x8d\xe9\xed\xf2\xe1\x29\xb3\x9d\xd0\xb0\xd2\xf8\x44\x53\x81\xad\xfc\x5b\xea\x40\x47\xca\x75\x44\x2d\x03\x30\x80\xef\x5e\xf0\x0d\x04\xe1\xa0\xbf\x34\x95\xbb\xcc\xf6\xee\xda\x3d\x26\x78\x34\x47\x7c\xe1\x2b\x39\x54\xdf\xc2\x2d\xaa\x6f\x45\xd0\xe4\x09\x30\xa7\x5d\x9f\x49\x43\x77\xc9\xa9\x19\x08\x16\x93\x6e\x63\xd3\xfb\x6c\xa1\x7e\x68\xe2\x06\x47\x7b\xe1\x9c\xe5\x8e\xd4\x4d\x6e\x87\x25\x41\xa9\x9a\x25\xf1\x0d\xa0\x10\x47\x02\xd6\xb6\x01\x74\xd6\xc0\x2d\xe4\x18\xbf\xc7\xb7\x6c\x64\x77\x16\x77\x02\x50\xf4\x83\x4f\x93\x5d\x66\xfa\xc9\x8a\xc4\x75\xb8\x83\x7a\xe4\x6f\x82\x92\x63\xac\xab\xe5\xd3\xc7\xb9\x58\x02\x77\x3c\xda\x8b\xf5\x2a\x9d\x7d\x71\xc4\xa5\x7e\x51\xce\xcc\x33\x95\xcb\x18\xc8\x6e\x3f\xc1\x9a\x11\xb4\xcb\xc0\x70\xc4\x10\x0c\xe7\x0a\x16\xd6\x46\xf5\x29\xa5\x53\x75\xef\x17\x25\x91\x1e\x71\x46\xe3\x56\x03\x0c\xb2\x45\xb7\x85\xaf\x0c\x9f\xc6\xbf\x35\xa7\x85\x61\x17\x03\x56\xa6\x03\xbb\x41\xbb\x45\xe5\x77\x06\xb7\x42\xb5\xed\xb4\xbc\x6a\x82\xc5\x9c\x8b\x2c\x4c\xb7\x6c\xdd\x3c\x84\x0d\xd7\x8b\x2b\xe3\xb6\x82\x50\xea\x5d\x1e\xf5\x9e\xc2\xd4\xc5\x59\xce\x43\x3e\xad\xe9\x85\x4b\x85\xdc\xa6\x66\x5d\x14\x6b\x71\xd8\x41\xcc\x8a\xd0\xb9\xf0\x87\x2f\x72\x7b\x6d\x33\x1e\x49\x46\x82\x5e\x30\xab\xeb\xd4\x52\x42\xa7\xe2\x09\x39\xa7\x0b\x98\xcc\x4a\x62\xf0\x5b\xf1\x3b\xac\xba\x56\x8c\xc7\x0d\x91\x78\x98\xb1\x8b\x9e\x90\x09\x84\x15\xe2\x4c\xaa\x2b\x13\x6d\x21\xe1\xf1\xc8\xa2\x25\xff\xd1\xcf\xb9\x5d\x3a\x43\x6a\x42\x3d\xbc\x4d\x7e\xef\xa1\x50\x8e\xc4\x4c\x3d\xdf\x28\x78\x8d\x30\xfd\xdf\x3a\x56\x58\x2d\xc5\x10\x13\xd9\x42\x0a\x07\x44\x6c\x73\x30\x9f\xaf\x2f\xba\xce\xaa\x02\x5c\xc6\x3f\xbe\x7e\xdf\x18\x71\x87\x11\xcd\x92\xe8\xad\x0a\xd7\x42\xb7\x4b\x6b\x3f\xa3\x11\x7b\x13\x26\x4b\xa0\xf8\x63\x37\x72\x35\x88\xc1\xc4\xc9\xe9\x0c\x99\x34\xac\xea\x0d\xbb\x47\x1b\xef\x78\x97\x18\xd7\x23\xb3\x11\x2e\x48\xae\x2c\x4e\x6b\xe9\x6a\x83\x61\xee\x21\xeb\xa8\xca\x19\x40\xc1\xc5\x80\xa4\x15\xd0\xfb\xfd\x22\x52\x31\x06\xf6\x69\x91\xad\xc5\x63\xde\xab\x98\x6e\x3b\x6d\xf5\x0d\x78\xe8\xb1\x2b\x22\x51\xea\x0e\x3a\xd1\x27\x74\x4d\xb5\x43\x39\x2d\xa6\x31\xf1\x63\xf6\x35\x9c\x09\x22\xed\xa4\x67\xb5\xc5\x2a\xa9\xf9\xc2\x0c\xe5\x56\x34\x18\x5e\x13\x3d\xaf\xaa\x0a\x42\x45\xec\xfd\xed\x4c\x73\xb1\x18\x91\x2d\xcb\x03\x28\x69\xe7\xce\x58\x0a\x15\x61\x24\xd4\x89\x90\xe5\x2b\x10\x63\xb6\x8f\x8f\xde\xd6\x6e\x7a\xef\xf3\x39\x37\x67\x06\x2d\x4b\x64\xd6\x09\x62\xd6\x6b\x74\xd4\x9f\x5b\x3f\x47\x2e\xdd\xa5\xab\xe9\x14\x5d\x22\xd3\xed\xa6\xb8\xca\xc0\x96\x8d\xf9\x48\x62\x0b\xd7\x1a\xc7\xb6\x04\x72\xca\xd2\x36\x5d\x13\x65\x7f\x45\xb4\xcb\x75\xe9\xcb\x54\x3d\x47\x7c\xfc\x59\x0d\x45\x20\xec\xd0\x26\x1a\xdb\xdd\x36\x5a\xcf\xdf\x39\x61\xfe\xf4\x15\x64\x96\xbf\xd0\xfc\x55\x4e\x87\x06\x48\x96\xb3\xa1\xa3\x94\xd7\x96\x65\x87\x0b\x2c\xb5\x2c\xa3\x45\x60\xed\x4a\x5e\x6a\xdd\x8a\x37\x15\xaf\xd4\xeb\x83\x27\xf6\x00\xde\xe0\xc6\x19\x0b\x1c\xb9\xeb\x8b\xaf\x27\x33\x70\x48\x73\x98\x4c\xd4\x9f\x2b\x1d\x1e\xe0\x8e\x11\x08\x16\xaf\xb2\xaa\x18\xc7\x05\x22\x0f\x7f\x66\x4f\x3a\xa6\x0c\xad\xf3\xf1\xcf\xb5\xf9\xd2\x28\x6f\x30\xf7\x79\x95\x18\x74\x80\x9a\xcb\x97\x71\xcf\xa9\x3e\x64\x2f\xc3\x99\x72\x6a\xce\x01\xa7\x13\x4b\x3a\x7f\x15\x4b\x0e\xcd\x7f\x53\xb7\x42\x48\xe0\x89\x4e\x73\x18\x6d\xae\xe5\x5e\xc4\xcb\x4a\x89\x98\xb7\x4d\xb8\x09\x97\x00\x4a\x7e\x58\x71\xce\xf4\x3c\x79\x76\x2a\x3a\x51\xeb\xc0\x59\x61\x1c\xc8\x90\xf1\x66\x80\xf1\x12\x3e\x8c\x91\xed\xc0\xac\xd5\x33\xb3\x85\x8b\xbd\x1d\x54\xd1\xe7\x3a\xb9\x11\xa9\x8e\x3d\x6f\xbf\xc6\x2e\xd8\x60\x60\xa7\xce\x88\x2a\x81\xbc\xc3\x99\xf3\x9d\xb2\xee\x18\x55\xef\xbe\x2f\xed\xd0\x77\xed\xf9\x57\x8f\xd4\x59\x66\xaf\x24\x86\xe3\xeb\x2f\x1f\x68\x31\x0c\x94\x76\x6c\x60\x8a\x69\x79\xc8\xf3\xd1\xbb\x83\x7e\x59\x46\x0e\xff\xc5\xb9\xf8\x13\x3b\xcf\x28\x37\x6f\x76\xff\x27\xe9\x07\x84\xac\x1b\xab\x5e\x3c\x7c\xd2\xa6\x5b\x1f\x67\xc1\x90\x67\x4f\x5e\x76\x49\xe7\xd6\x8b\x80\xd2\x73\x30\x0c\x4e\xb0\xf4\x35\xd2\x41\x1d\x46\xce\x9d\x41\x01\xed\x79\x44\xb7\xb3\xb1\x52\xca\x75\xc2\xac\x0e\x77\xf2\xb2\xcd\x9b\x29\xe1\x15\xb9\x1e\x3c\xbe\xca\x44\x22\xa1\x51\x27\xae\x83\x48\xf5\x2d\x5b\x8d\x0f\x32\x23\xb6\x1a\x62\x66\x1e\x33\xc2\x71\x2f\xa3\xb3\xe4\xd4\x12\x2c\x0d\x64\xa8\x38\x3d\xf7\x4a\x08\x01\xa3\x88\x0c\xba\x35\xed\x24\x84\xb1\x66\x3e\xaf\x3c\x4f\x07\xfd\xbc\x22\x1a\x18\x7c\x00\xbd\x7b\xf4\x47\xd2\xbd\xc9\x98\x0e\x14\x07\xd9\x30\xbb\x68\x1d\xe4\x40\x3d\x9e\x12\x4d\x66\x07\xd9\xbc\xc7\x50\x31\x31\x1b\xea\x98\x5b\xac\x19\x75\xe0\xcf\xef\x05\x42\xf0\x42\xa6\x28\x9d\x5c\x28\x84\xa6\x85\xb0\xc2\x1b\x33\x80\xd5\xd1\x23\xea\x57\x3f\xc1\x9e\xa2\x62\xbc\x65\x10\xfc\x27\xa7\xdc\xb2\xcc\xf7\xc0\xb5\xaa\x7b\x4d\x68\xf9\x57\xe9\x2a\x90\x1c\x91\xd6\x22\x82\xd3\x3b\xc1\xcd\x8a\xe0\xe6\x49\x86\xf5\x9e\x14\x29\xa9\xa1\xbd\x8f\x28\x8d\xf8\x32\x2a\xa9\xdd\xd1\x51\x4a\x6a\x62\x4f\x9e\x79\x42\x33\xb6\xa7\x75\x4b\x3b\x51\x8b\x53\x46\xef\x4a\xc2\x26\x8b\x12\x28\x0c\x2a\x63\x36\xe0\x43\x65\xcc\x98\xcc\x96\xdc\x68\xc5\xe0\x8c\x57\xfe\xb3\x11\xb5\x9a\x73\xd6\x73\xee\x89\x90\xfc\x25\x02\x42\xbd\x55\x7c\xcb\xd6\x35\xf6\x2c\x14\xf7\xa1\x5b\x65\x05\x50\x7f\xe4\x6e\xf7\x23\x77\x25\xb0\x65\x4a\xe8\xa0\x54\x84\x37\xbd\x73\x7a\x14\xdb\x89\xdb\x45\xbd\x88\x30\x9f\xf7\x10\xe0\x60\x53\xd9\x7b\x78\xf4\xd4\xc5\x02\xf8\xc9\xe8\x96\x08\x5b\x23\xee\x9e\xec\x4d\x05\x5b\x20\x31\x92\x18\x9a\x67\x26\xee\x88\xe0\xda\x65\x89\x6b\x11\x2d\x67\x84\x28\xe9\xb6\x8d\xac\x7c\xba\x34\x0f\x89\x19\x28\xcc\x56\x91\x5d\x32\xd6\xf3\xd3\x32\x13\x0f\x66\x87\xba\x1e\x22\xd9\xf9\x84\x2f\x0e\x5d\xca\x7a\xea\xf9\xfa\xdd\x86\xab\xbd\x9d\xef\xd4\xef\x5d\xec\x48\x52\xb8\xf8\x1a\x62\x35\xd5\xbb\xd3\xb4\x05\x5d\x18\xa3\xea\x8e\x81\x7d\xac\x1c\x0e\x84\x50\x56\x19\x91\xc2\x18\x7b\x76\xd0\xc3\x7c\x36\x3b\x1a\x4d\xe9\x62\xbe\x8a\x1b\x48\x63\x95\x45\x3b\xdc\x40\x1b\xe3\x95\x84\x2b\x22\x1f\xec\x83\x3c\x61\xf1\x7c\x8f\x7d\x78\x5c\x60\x12\x5d\x5f\x22\x7f\x96\x23\xad\xdb\xcb\x67\x70\x31\x89\x55\x3d\x7c\xf2\x74\x0a\xce\xaa\x3e\xab\xd4\xd1\x3a\xaa\x1c\x48\xb4\xbb\x2c\x1a\xf8\x89\xb1\xa7\x37\xdb\xcb\x35\x12\x90\x10\x78\xad\xc2\xb7\xd7\xaf\x80\x32\x39\xae\xe4\xe9\x8b\x17\xd7\x7f\x7e\xf5\xe4\xc5\xf1\xd3\x47\x87\x4f\x02\x53\xf2\x87\xe0\x0a\x9b\xcd\xcf\xd9\xa4\x59\x33\x6f\xc3\xd6\xe6\x0b\x51\x8f\xdd\xec\x32\x5c\xa7\x0b\x72\x75\x95\x6a\x7e\xdc\x9a\x6e\xd8\xce\xdb\xb7\x7e\x80\x92\xf2\x47\x92\x67\xd9\x46\x72\x14\xdb\x2f\x22\x0b\x9f\x3b\xb7\x89\x12\x33\xb6\x00\xba\xf8\x2b\x1a\x9a\x64\x20\x71\x1c\x70\x06\xa3\x3d\x61\x8c\xb7\x2c\x11\x5e\xf6\xa5\x37\xeb\x82\xb5\x1a\x60\x91\x78\xbf\xe9\x7a\xa8\x01\x00\x7d\x07\xe8\xb1\x05\x7b\xe3\x21\xbc\x80\x37\x21\x89\xfb\x44\xcc\xe8\x8a\x7c\xe5\xfe\x04\x1b\xc3\xe5\x28\x0e\xda\x13\x6f\xf6\x92\xad\xdb\x96\xe0\x9a\xe8\xce\x58\xde\x21\xfa\xd8\x9b\xaa\x80\xd7\x24\xf3\x79\xf0\x5a\xa3\x41\xa8\xc6\x57\x71\x4f\x88\x4f\x76\xdd\x7d\x02\x6f\x71\x11\xa1\x9d\xa3\xbb\xa0\xc8\x25\x2d\x55\x9c\xd6\x55\xd1\xe4\x0f\x16\x9a\xdb\x7b\xac\x59\x7d\x2d\x1a\xfd\xe3\x75\xdd\x8a\xde\x2c\xb8\x38\xf0\x57\x8e\xb2\x79\x12\x87\x40\x73\xa4\x0d\x7f\x9b\xac\xec\x65\x1b\x0c\x7a\xe8\x10\xaa\x96\x28\xd4\x6e\xad\x0a\x6b\x3a\x80\xae\x29\x00\xc4\xdb\xc4\x28\xf3\xd8\x44\xc1\x09\x5c\x8c\x50\x77\x1f\xe6\xee\x4b\x7c\x2c\x6e\xa4\x43\x12\x1d\xbe\xea\x7b\x6c\xb1\x38\x27\x04\x3b\x6f\x3b\xe0\x09\x1d\x50\xba\xa2\xcc\xf2\x10\xff\xae\x43\xc1\x5c\x37\x2c\xc7\xc5\xe1\x9a\xae\x4d\x6f\xca\x8a\x30\xed\x1b\xfd\xf4\x82\x7f\xba\xe2\xf9\x09\xc1\x5d\x4a\x62\xf6\xf9\xbe\xd6\x16\x70\xb7\x58\x01\xff\x97\x4f\x23\x47\x98\x75\x40\x0a\xcf\x32\x6b\x5b\x0d\x27\xf1\x4b\xb3\x61\x10\x66\x55\xd4\xb9\x54\x2c\x33\xde\xab\xd4\x6f\x63\x65\xce\x4a\x12\x48\xd4\x5e\xb1\x7c\xa4\x26\x8a\x28\x8e\xc4\x05\xcf\xaf\x58\x81\x4e\x68\x43\x33\x93\x3f\x1a\x76\xdd\xdd\xb0\xc3\x6c\xf1\x09\x4b\x8c\xf7\x6e\xd6\xe0\x47\xc6\xf5\x7f\x1f\x65\xbe\xef\x7f\x21\x31\xeb\x50\xfd\x8d\xc3\xc5\xf2\x39\xb8\x50\x0b\xa5\x31\x4b\x3a\x0f\x13\xa7\x16\x8d\xf7\x4f\xe3\x93\xa3\x98\xff\xf8\xfb\xcc\x31\x15\x7d\x4d\x9b\x1e\x55\x9c\xd1\xe2\xb4\x19\x0d\x1d\x54\x81\x90\x3f\xa8\xae\x3b\xde\x12\x0c\x93\x9d\x2c\xfd\xbe\x58\x37\x5d\x4b\x54\xb3\x62\xa1\x3f\x04\xab\x8d\x05\x7f\xd8\x51\xcf\x51\x57\xc4\xab\x07\x7f\x1b\xac\x39\x0d\xd8\x7b\xf0\xed\xd3\x13\x08\x92\xd0\x4b\x68\xe0\xb0\xbb\x6c\x5d\x18\x94\xeb\xdf\x59\x81\xb9\x3c\x71\xd9\xe7\x12\x82\x7c\xab\x16\xe0\x7d\xfe\x9b\x45\x38\xb0\xdc\xd4\x7d\xbb\x07\x7a\xdc\x3a\x75\x6a\x51\x41\xed\xa9\xd6\x3a\x50\x09\xda\x1f\xa6\x21\x15\x14\x15\x97\x6c\xf4\x85\x79\x2d\x22\x2f\x2b\x6b\x9a\x33\x0d\x46\x99\x46\x05\x5b\xa5\x4c\x01\xa5\x03\x7b\x09\x15\x2b\xd8\xc5\x77\x2c\x4d\x96\x72\xcd\x6d\xaf\x56\x4d\xdd\xbe\xa6\x9b\x6d\xcb\x0c\xb4\x2f\x89\x78\x68\xfa\x52\xc5\x95\xd5\x13\xe6\x08\xf0\x2d\xfe\xed\xbf\xff\x8f\xfb\x07\x45\xd7\x17\x07\x43\xdf\xd0\x5f\x43\x07\x3e\xec\x8a\xaa\x13\x31\x78\x0d\x5f\x56\xfc\xd4\xfe\x9d\xc1\xad\xe0\x6b\xd1\xdc\xdf\x96\x28\x65\x0f\x76\x0c\xc2\xb5\xd8\x30\xc0\x5b\xa8\xa8\x95\xe8\x0e\x1c\x82\xf3\xa6\x43\x73\xfe\x75\xf1\x8a\x63\x7f\xde\xdd\x9c\x31\x00\x4c\x11\x6c\x1d\xac\x30\xf8\x03\x04\x85\x37\xec\x77\x03\x3f\xac\x06\x21\x04\x63\x7d\xc9\xd9\x46\xb8\xf4\x58\x7f\x8d\xe0\x95\x7b\xa8\x71\x6b\xc5\x4a\x62\x2e\x8d\x18\xef\xc0\x89\x00\x62\x9c\xfd\xe2\x49\x9a\xf6\x82\x65\x40\xc6\x3c\x95\xff\xaa\x98\x56\x13\x5f\x4f\x90\x61\x55\x07\x68\x87\x0f\xcf\x83\xf5\x82\x73\xa9\xc8\xf2\x87\x8b\xda\x2a\x9d\xc2\xef\x98\xea\x25\x3e\xf2\x4c\xe8\x35\x82\x26\x22\x69\x8e\x01\xf6\xb7\x27\xe1\x27\x32\x96\xc4\xf1\x36\xb0\x8c\xc1\xd7\x0c\x18\xaa\x57\x5b\x37\x2a\xf7\x16\xa1\x90\xc7\x60\x0e\xb3\x9b\x76\xc2\x33\xa0\xc9\x72\x50\xf9\xf2\x84\xe6\x5d\x84\xe4\x14\x05\xfd\xe2\x0f\xfb\x04\x69\x53\xb2\x5e\x70\x83\xc8\x98\xf5\xeb\x02\x99\x5a\xfa\x3f\x00\x5e\xb7\x6f\xa5\x14\x97\x04\x8d\xde\x18\xd8\x42\x09\x53\xf4\x52\x51\x1b\x32\xa2\xe4\x87\xf2\xdc\xba\xaa\xb6\xf8\xff\x8a\x93\x12\x31\x46\xba\x07\xe1\x0b\xcc\xcf\x54\x51\xbe\xce\xa4\xdd\x40\x9a\x8e\x49\x7a\x8e\xa6\x3c\x25\xd1\x6e\xf9\x84\xe3\xb0\x88\xea\x22\x26\x02\x2e\x82\xc4\x14\x53\xf3\xeb\x3f\x43\xa5\xcf\x28\xbb\xd9\xd4\x03\xcb\x98\x9b\x9a\x79\x3c\x8e\x6f\xe3\x25\xa2\xcf\xd3\xc8\x8e\xc9\x36\xb4\xbe\x7c\xb3\x7c\x51\xbe\xd1\x5f\x04\x24\x4e\xdd\xf1\x1d\xff\x5b\x73\xb6\x18\xfe\xc0\x71\x16\xa8\xfb\x4a\xe2\xdc\x8a\xd0\x86\x4e\xc3\xa6\xe4\xe3\x7a\x58\x23\xb0\x13\x3f\x5b\x45\x38\x9d\xce\x62\x76\x5a\xee\xe3\x24\x91\x88\x93\xcd\xa7\x55\xcf\x20\x59\x9f\xf4\x40\xa2\x3e\x94\xe2\xf2\xa0\xa3\x4f\xf7\x05\x5b\x56\x5d\xf1\x46\x82\x90\x97\x1a\x8c\x1c\x3e\xc0\x92\xb3\x7c\x5c\x0e\x51\x91\xc4\xc7\x1c\x41\x0f\x02\x6a\xb4\x91\x13\xe3\xbe\x12\x42\xd3\xd7\x17\xb8\x9e\x36\xee\x2c\x69\x90\x09\x12\xf6\x38\x51\x31\xca\x67\x12\xbe\x2e\x66\x76\x2e\xfa\xda\x82\x1d\xa2\x0a\x12\x59\x00\x42\xac\xd5\x92\x5a\x6b\xda\xc0\x7e\xe5\x7a\x3a\x3b\x63\x17\x07\x5c\xa8\xa1\x7e\xda\xad\xc7\x0d\x45\x8d\x7c\xcc\xf0\xdd\x8f\x9b\xd7\x92\x31\x43\x45\x3f\xec\x5c\xe5\x6e\x4b\xd2\x5a\xa8\xfb\xfd\x78\xd9\xd7\x3b\xaa\x12\x1d\xb1\x70\xba\xcf\x66\x48\xdc\x91\x61\x0f\xfa\x74\x21\x74\x4f\xe3\x68\xd3\xa1\x63\x1e\x98\x15\xe8\x33\xd3\xf4\xd5\x62\x61\x8d\xad\x12\x54\x5c\xb2\xb0\x31\x81\xbb\x6f\x23\x20\x88\xeb\xfa\xaa\x42\xd1\x22\x02\xa6\xb6\x5c\xb6\x3c\xcd\x6d\xb7\xee\xa6\x4f\x2d\x34\xbf\xa1\x52\x6b\xc5\xbe\x2a\x71\x20\x97\x78\x84\xb9\x16\x9c\x50\x27\x99\x88\xf6\xee\xa7\x33\xdb\x3f\xef\xc5\x50\x9e\x2e\xef\x56\xc5\xf7\x38\x29\x43\xe8\x05\xb0\x77\xdf\xbe\x61\x78\xfb\x6f\x74\x98\xe1\xb1\x2d\x23\xd0\x9e\xe4\xdd\xc6\xdf\x89\xe3\xc3\x95\x0f\xcb\xa0\xd8\x55\xc3\x34\x52\xde\x76\xd2\x7c\x27\x62\xe6\xdf\x27\x43\xfc\x5c\x36\x88\xfb\x88\x7b\xcf\x1b\x07\x64\xe1\x3f\x66\x2b\x9c\xd7\x54\x21\xea\x7c\xba\xf9\x85\x7c\x99\x1f\xc2\xb3\x9f\x73\x1f\x16\x08\x08\x54\x8a\xee\xb3\x76\x6c\x23\xd2\x3e\xd7\xc4\x6a\xca\x2e\x62\x4a\xae\xba\x71\xf9\xa7\x51\xe3\x47\x38\xc2\xa5\xd4\x85\xcc\xb7\x15\xa4\xa8\x56\xa7\x57\xdc\x14\x68\x71\xfd\xfe\x13\x63\xef\x69\x8a\x8b\x71\xbe\x19\x48\x18\xad\x0e\x41\xc4\x68\xc6\x6c\x9b\x96\x41\xf3\x94\xb7\xb1\x88\x55\x38\xe9\x99\x13\x9b\x7e\x59\xe0\xba\xb4\x04\x47\x30\x2c\xaa\x47\x9e\xad\x07\x34\x77\xf5\xe8\x22\xa4\xbb\xe2\x41\x3b\x81\x22\xd7\xec\x0d\x3a\x11\x8b\x3b\xf1\xde\xc1\x9a\xde\x47\x14\x78\x6e\x26\x74\xcb\xf9\x66\xec\x4d\x17\x1a\xc4\x56\xf9\xd9\xc6\x9b\xce\x0e\x6c\x69\x6d\x75\x8e\xfa\x63\x06\xf6\x61\x30\xd7\x40\x46\xf3\x2d\x92\xa3\xc8\xfb\xe3\x28\xe2\xdd\x1f\x3e\xfd\xd1\x16\xa7\x57\x91\x35\xe8\x87\xcf\x7e\x24\x56\xf0\xee\x0f\x9f\xff\x68\xc1\x07\x4e\xdb\xae\xce\xca\xd7\x66\xc9\x77\xde\xa0\x1d\x60\x7b\xb9\xa1\xaf\x4d\xbc\xeb\x65\x4d\x1b\xc9\x19\xe7\x0a\x7f\x91\xb5\x09\xdd\x79\x3b\xc8\x67\x70\x92\x65\x3b\x21\x19\xac\x1e\x9a\xa3\x18\x95\x7e\xcb\x28\x46\x3b\x6e\x56\xba\x66\x0b\x82\xa2\x7f\xa7\xc4\x56\x0b\x21\xe3\x0d\xcb\x3d\x0f\x22\x0e\x6b\x2b\x8b\xba\x02\x04\x68\x49\x8e\x2d\xfe\x1b\xf9\xf5\x95\x2c\x6f\x2f\x81\x08\xbc\x3b\xd4\x98\xf4\xb4\x49\x5c\xf3\x88\x8f\x5c\x77\xbd\x0b\xea\x81\x99\x69\x91\xd1\x3c\xc9\x38\x86\x05\x44\x68\x2c\x9f\x74\x4e\x49\x15\xd6\xd2\xe9\xcc\x43\xfd\xde\x30\xa0\xa4\x22\xb1\x03\x1d\x6f\x6a\xfe\x39\xed\xcf\x57\x9b\xef\x52\xe9\xba\x43\xa4\x24\xfd\xa0\x03\x66\xbe\x19\x04\xc8\x3b\x72\x59\x4e\xa0\x38\x07\xc4\x3b\x09\x10\x65\x92\xba\x1d\x3d\x4f\x0e\x78\xf5\x3b\xb6\x43\xb8\x23\xe2\xd0\xcf\xd0\xd7\x4f\xa2\xb1\x62\x7e\x95\xc5\x06\xa7\xc8\x5b\xcb\x34\xe1\x07\x5c\x87\xc0\x55\x6a\xf9\x11\x03\x62\xbc\x9f\x02\x8e\x77\x9c\x87\x91\xb9\xd8\x08\x84\x1c\xd7\x22\x49\xf8\x02\x42\xcf\x29\x1b\xf5\x9b\x8b\xe7\x24\x19\x89\x84\x57\x63\x42\x4e\x27\xd1\x5f\x42\xa0\x46\xd6\xb5\x84\xce\xb8\x30\x48\x17\x32\xc3\x72\x94\x86\xd6\xc1\x35\x13\x56\x5e\x35\x15\x76\x2d\xa2\xe4\x83\x9e\x5b\x6d\x28\x2e\x22\x20\x8a\xdb\x4d\x4c\xc2\x59\x54\xa5\x47\x95\x04\xe6\xa6\xaa\x87\x28\x02\xca\xed\x44\xe6\x2f\xe6\xe6\x4c\xe3\x2e\x43\x4c\x6d\xf8\x20\x77\xf8\x10\xa2\x95\xc6\xe2\x10\x45\x59\x85\x75\xd7\x10\x5b\x7d\x00\xd5\xae\xc4\xf8\xce\x57\x82\x0e\x9a\x4e\xbf\x70\xa7\xd9\xd7\x70\x5e\x98\x42\x44\x56\x6f\xc1\xbb\xbc\x3e\xaf\xef\xfa\xcf\xc8\x9b\x93\x4f\x37\x77\xb1\xcc\x3e\x27\xd1\x61\x6b\x1f\x3f\x38\x37\xe5\x5d\x76\x90\x9b\xea\xc6\x36\xcc\x48\x71\x1f\xd9\x3c\xae\xdf\x9f\xab\x62\x5a\xfc\x27\xed\xd4\x49\x26\xf6\xbd\x7c\x1b\x01\xe3\x06\xfd\xf9\xfc\x64\x82\xe9\xfc\xd4\x34\x91\x5e\x3e\xb7\x15\xab\x30\x89\xa3\x4a\xe7\x8f\xc8\x0c\xab\x6f\xc5\x04\x59\x7a\xa7\x0d\xaf\x78\xb6\x3b\xea\x7b\x83\x9d\x34\xaa\x60\x05\x75\x62\x2d\xc8\xda\x19\xb3\x4d\xa2\x52\x90\x94\x19\xea\xbc\x32\x06\x48\xb1\x3c\xeb\x15\x81\xd1\x98\x8b\x7c\x50\xa4\xa7\x40\x0e\x02\x33\x99\x8d\xfc\xeb\x27\xe2\xbe\xeb\xb5\xac\xb2\xfa\x37\xf4\x4b\xae\x82\x53\x27\xb5\x4b\x35\xba\x3e\x68\xb3\xc7\x86\x2e\x2b\xe1\x28\xa1\xd4\xe4\xcc\x56\x08\x24\x1e\x45\xb9\xe9\xaa\x0e\x17\x60\x8f\x58\x51\x24\x83\xf2\x8d\x73\x55\x94\x45\x0f\x29\x57\x0d\x27\xa5\x18\x15\xe8\xdf\xb5\xf1\xa9\x5c\x52\xf0\x58\x89\xab\x07\x6e\x84\xa5\x22\x2a\x20\xce\xc6\xb9\xfc\x89\xba\xbf\x0a\x4e\xef\x19\x28\x45\xd1\x83\x84\x19\x20\x32\x3a\x02\x3b\xa8\x23\x1b\x45\xc4\x4a\x10\xe9\x7c\xc0\x23\x3c\x00\x3f\x51\x81\xad\x20\x2a\xfa\x37\xfc\x43\x69\xa9\x82\xd4\xc9\x35\x46\xe5\x88\x58\xdd\xe0\x2a\x31\x81\x90\xbd\xbf\x84\x9a\xf2\x6c\xb4\xaa\x60\xc7\x48\x95\x92\x71\x1b\x53\x77\x53\x7c\x89\xe8\xda\xaf\x94\x7a\xf3\xdf\x92\x34\xc4\x95\x7f\xee\xcb\xdd\x30\x74\x7a\xce\x1d\x8b\x21\xa3\x51\x87\x3a\x16\xe1\xf4\x5f\x65\x2c\xea\xe5\xff\xff\xd1\xa3\x37\x09\x40\xab\x98\x4c\xc3\x84\xe6\x7f\xa4\x95\x22\xbd\xc5\x90\xb4\x87\xee\xc3\x3a\x5b\x82\xf5\xbe\x8d\xbe\x8e\x32\x03\x84\x41\xbc\xbe\x10\x95\xd4\x2b\x3b\x20\xb7\x45\xb4\xcb\xf1\x16\xc8\x49\x51\x97\x6b\x16\xba\x23\xa2\x43\x75\x05\x3c\x8b\x14\x84\xcb\x6f\x1c\xd0\x62\x3c\xd3\x6f\x42\xba\x92\x31\x9c\x11\xd5\xc3\x7a\xea\x6c\x22\xdd\x10\x47\x5d\xd2\xf1\x62\xe3\xf2\x21\x67\x98\xd3\x30\x55\x6f\xa8\x9a\xed\x17\xb6\xd1\x51\xb2\x76\xf5\x65\x6d\xbd\xf3\x8d\x8d\xc9\xee\x5e\x42\x21\x89\x0a\x7f\xd3\xf5\xaf\x03\x4d\x28\xdb\x15\x5b\x5b\x78\x15\x51\xce\x23\x55\x2f\x07\x08\x55\xb3\x10\x8a\xb3\x17\x71\xf0\xfc\x8d\x50\x8f\x87\x65\x9b\xc6\xdc\xc8\x41\xb7\x1d\x0d\x9e\xf8\x77\xee\x18\x7e\x4d\x4c\x7b\xad\xc7\x5c\xb2\x48\x9d\x35\x40\x69\x39\xd7\x38\xcb\x8a\x66\x37\x4c\x63\x77\x8a\xd4\xbd\x0e\x7f\xcf\x2a\x54\xbd\x7a\xda\x3b\xa4\xa5\x88\x93\x92\xa2\x6f\xfc\x29\xa7\xad\x4a\xc9\x42\xac\x73\x4c\x34\x5f\x7f\x84\x6c\x9e\x7c\x9d\x53\x42\x44\x9f\x67\x15\x11\xf9\xf7\x6a\x79\xd7\x69\x85\xd2\x91\xbb\x55\x35\xd2\x96\x80\x82\x39\x55\x76\x89\x5d\xdd\x83\x7f\xf8\xf5\xfb\x92\x15\xb3\xd9\x64\x54\x02\x9b\x8e\xe2\x85\x82\x74\x6d\x74\xc7\x9e\x5e\x98\x12\xaa\x19\x66\xca\xdf\xf1\xa6\xb1\x12\x42\x1d\x5d\x34\x78\xca\x88\x17\x41\x74\x9b\xa7\x63\xe4\x1a\xa4\x29\xac\x84\x11\x3b\xa9\x87\x3e\x9d\xf6\xd4\xa0\x1a\x7f\x74\x10\x78\x9c\x2f\xbd\xf8\x24\x64\x6c\xbc\x97\xad\xd7\x94\xbd\x53\xe4\x25\x5f\x7c\xd2\x28\xed\x75\x25\x67\x92\xfd\xef\x25\x65\xa2\x1c\xdd\x09\x9c\xd9\x3a\xe8\x02\x93\xf7\x81\xdf\x51\x54\xb5\x78\x2e\x5b\x62\xa6\x8b\xbd\x92\x49\xc6\xfd\xcd\xe6\xfe\xcf\x3f\xef\xcd\x81\x28\x76\xf6\x60\x18\xa5\x3e\x80\x9c\xcf\x6c\x42\x9f\xa2\x5e\x62\xd6\x11\xc8\x3e\x85\x33\x6a\x44\xdb\x2a\xe1\x38\x6c\xe4\x4d\x6c\x21\xb0\x0e\x82\x9f\xf1\xcc\x4a\xbc\xe9\xad\xc8\x9b\xc4\xf0\x8f\xb5\x9e\xda\x73\x84\x79\xd0\xb9\x33\x1c\x84\x9d\x2d\x2d\xe3\xcc\xa3\x4f\x59\x3a\x83\x1b\xa7\x7c\x13\x60\x66\xbd\xea\x33\xd8\xa4\x1c\xaf\xf3\x65\x99\x0e\x77\x83\xb3\x8f\x8c\x6c\x04\x77\x88\x86\xe7\xbc\x2d\x1b\xd1\x86\xa9\xd2\x4b\x99\xde\xb3\x9b\x98\xdc\xb9\x19\x4c\x16\x3d\x71\xf9\x99\xe1\x76\xe7\x33\xaa\xbb\xd2\x85\x84\xbb\xd8\xe5\xf7\x5b\x35\x81\xf8\x2f\x51\x26\x2a\x66\x07\xa2\x5f\x51\xad\x8b\xae\x7b\x6d\x97\x7f\x6b\x4e\xf9\x8f\xe8\xc3\x79\x3d\xc8\x37\x64\xe6\xfd\x2e\xfb\x48\xfc\x6c\xbd\xde\x91\x0c\x5e\x92\xb1\x45\x95\x2b\xf6\xaf\x58\xbd\x83\x86\xf4\xbf\x76\x42\xc7\xa5\x2c\xaa\x14\xe2\xaa\x5c\x36\xb8\xe8\xa3\x46\xaa\x84\x34\xf1\x12\x4f\x15\x2f\x56\x82\x35\x60\x0d\x4b\x23\x9c\x62\x1f\x94\xe0\x73\xa2\x92\x68\x1c\xd3\x04\x9e\x96\xf6\x15\xfc\x8e\xf7\x75\x08\x36\x7d\x3f\x90\x84\x7e\x22\x85\x71\x88\x01\x75\xe8\xe1\x83\x4a\x67\xea\x0b\xfa\x69\xa3\x5f\xfb\xd4\xb7\x42\x64\x68\x89\x86\xce\xa2\xdc\xf3\x58\x59\x89\xc5\xca\xed\xcc\x80\x7b\xdf\xe1\xe6\xad\xb2\x9c\x18\xf1\xdc\xf9\x91\x00\x0e\x59\x07\x13\x65\xc5\x51\x62\xdb\x89\x93\x84\xdc\x7a\x69\x94\x7a\xc4\xbc\xfb\xb9\xb6\x04\x3a\x20\x2a\xc2\xeb\xe2\xce\x27\xe1\x82\xb4\xbe\xcc\xf3\x29\xab\xab\x86\x5b\xc9\x29\x8f\x28\xe0\x52\xac\xb3\x75\x4f\x74\x91\x73\x04\x22\x4e\xa9\x38\xee\x38\x4b\xd0\xf5\xbf\x8a\x04\xa4\xb9\xe3\xa6\x00\x46\x98\x0a\x1d\xaf\xd5\xa7\xcb\xfb\xc2\x4e\x99\xbe\x82\x97\xa1\xcf\xfd\x68\xeb\xd8\x51\x34\x5d\xa9\xb8\xec\x27\xc0\x27\x7a\x58\x5f\xd6\x74\x7b\x34\x37\x0e\xf7\x99\x1b\x4e\xfd\x49\xcc\x6f\x1c\x33\xdb\x5e\x04\x3d\xaa\xb6\xfc\x0a\x6e\x7c\x25\x82\xec\xcc\xbb\xd9\x29\x80\x54\xa9\xca\x23\xb0\xe2\x46\xbd\x33\x69\x58\xc9\x72\x67\x45\x33\x4a\xd8\xaf\x59\x34\xbd\x6f\x9d\x66\xf6\x0e\x4c\xde\x17\xd3\x3d\x8a\xa0\x5a\x4c\x54\x05\xce\xed\x2c\x76\xa7\x0a\xee\x7d\x72\x61\x96\xb8\x27\xd4\x31\x7f\x47\xdf\x04\xc2\x9b\xb4\x10\xb9\xb7\x61\x38\x98\xfb\x04\x23\xc8\xac\x7d\x6d\x35\x4d\xb4\x32\xf1\xdf\x22\xee\x3e\x10\xec\xfd\x44\x8f\x0b\x18\x7b\x27\xce\x38\x63\x1f\x47\x5f\xef\x9e\x26\xbb\x86\x10\x1c\x8e\xeb\xf8\xec\xfa\x90\xd5\x75\x94\x42\x17\x0c\x3f\x52\xf3\xb1\x5f\x9a\x64\x72\x63\xc7\x33\x62\xda\x2a\xde\x0b\xc2\x16\x78\xbc\x24\x82\xc3\x87\x86\xfe\x6c\x76\x68\x76\x5f\x99\x0c\xed\x32\xa8\xbb\x8b\x45\x1c\x6d\x39\xda\x01\x2f\xb7\x7c\x70\x99\x9f\xf3\x58\x6a\xb4\x71\x59\xbc\x90\x8f\x86\x31\x3c\xf3\xd9\x73\xcb\x89\xd6\x12\xc5\x02\x41\x73\xe4\xc3\xe9\xfd\x53\x11\x8d\x7a\xdb\x89\x3f\xa2\x48\x5d\xb1\x0b\x85\x80\x74\xb1\xfb\x12\xf0\xb7\xa9\xde\x7c\xb0\x86\x98\x9d\x51\x8a\xd3\xc3\x23\xea\xd4\xe7\x73\x27\x33\xaa\xbe\x29\x5f\x13\x4f\x3f\x43\xf3\xe7\xba\x14\x3f\x6b\x1f\xb3\xd2\x5f\xff\x8b\x78\xaa\x79\x17\x3a\xbd\xee\x7d\xfa\x80\x69\x28\x52\x74\x7b\xc7\x8e\xb1\x37\x38\xc4\xfa\x16\x08\xa2\x08\xb8\x0c\xe7\x81\x38\x04\x2c\xc2\xf1\x1b\xda\x78\xa0\x3a\xb8\x24\x0d\x5d\xd0\x4a\x3c\xcf\xde\x6c\x3a\x4e\x61\x3a\xd3\xc9\x41\xd2\xd8\xe3\x62\xb2\xa9\x48\x4e\x52\x73\x3e\x89\x95\x64\x40\x9c\x26\x28\x99\x3c\x8b\xe0\xc2\xb8\xa2\x17\x80\xb2\x89\xaa\x5c\x7a\x06\xb7\x59\xd6\xad\x18\xd6\xd2\xa7\xb4\x76\x91\x01\xe2\x8d\x30\x41\x31\xdc\x94\x2f\xca\xf9\x25\xb9\xb9\x1c\xd3\xc4\x9a\x4f\x97\x63\xbc\x00\xcd\xed\x91\x52\x59\xe6\x2a\xc1\x93\x08\x6a\xe9\x7a\x2b\x4f\xa3\xf4\x03\x2e\x4f\xc2\x05\x3a\xb8\x9a\x7f\x00\x21\xd5\x9c\x3e\xbc\xe6\x30\x51\x48\xf5\x1c\x61\x50\x1c\x6a\x2b\x71\x8c\x88\x1b\x10\xa9\x5c\x8b\x7a\x26\x6d\xbc\x2f\xee\x6a\x9a\x6b\xe4\x12\x2e\x64\x9a\x83\xc3\x69\x08\x8e\xbe\x3f\x3e\xe1\x44\xbb\x17\x25\x54\x86\xa0\x81\xf0\xd1\xf3\xfe\x6b\x67\x74\x7e\x5a\x0e\xff\x58\x14\x0f\xb7\x92\xba\xf5\x3e\x14\x84\xfc\xe0\x0b\x8c\x6d\xcc\x18\x4b\x20\xd9\xcd\xce\x60\x1e\x44\xdf\xc2\x09\x4b\xc3\xc0\x3c\x2c\x15\xe0\xab\x79\x56\x7e\x0a\xfb\xbc\xfe\x0c\x4b\xaf\x55\x8a\xcb\x32\xca\xda\x31\x61\xec\xe1\xbb\xba\x77\xe1\x1d\x82\xc4\xa3\xf6\x52\x14\x3a\x37\xc5\x38\xed\x9c\x48\xc4\xd9\xbb\x19\x7c\x44\x88\x67\xde\xdf\xc2\xe9\x2b\xa0\x9d\xc0\x83\x62\xb3\x55\x10\xd8\x6d\xd9\x08\xc7\x7f\xcc\xd4\x11\x61\xd0\xe2\x8d\x0c\xf4\x62\xff\xf2\x0f\x33\x95\xb6\x92\xaa\x6d\xa9\x29\xdb\x66\x6a\x9c\x76\x15\xfc\x09\xfb\xed\x9c\x58\x20\xb0\x87\xe6\xec\x3b\xd9\x60\x3c\x89\xc6\xe6\xfd\xa6\x56\x1b\x33\x9b\x74\x51\xde\x8c\xb5\xdc\x3d\x92\x43\x5c\x1a\xb0\xae\x79\x10\x85\x2f\x37\x94\xab\xa1\xe4\x02\x71\x5f\x74\x71\x4d\x21\x27\x64\xae\x43\x4c\x95\x54\x93\xa4\xf6\x8b\xe9\xc4\xd9\x1c\xa3\x88\x53\xe3\x88\x63\x36\x2a\xf1\x83\xff\x3c\xdb\x47\xa1\x79\x8b\xe7\xcd\x62\xe3\xab\xde\x85\xe0\x47\x70\x57\x74\xc8\xcb\x55\x20\xae\x50\x3f\xf3\x33\x1b\xb4\xdd\x9c\x61\x0e\x96\x35\x5c\x73\xbe\x7f\xed\x7b\x6e\x3e\x71\xa4\xc0\x77\x29\xbe\xbb\x2a\x59\xb8\xe1\x4c\x4d\xbd\x1b\xb5\x81\xcf\x4b\x60\x64\x74\xef\x23\x30\x47\xee\x04\x16\xcf\x3f\x40\x33\x44\xfd\x0c\xca\xe1\xb4\xcf\x1c\x0a\x05\xba\x11\xed\x8e\xca\x4d\x9c\xb4\x66\xe0\xc7\x1b\x2a\x13\x78\x85\x94\x7e\x51\xe9\xba\xaf\x07\x93\x47\xcb\x07\x93\x93\x23\x71\x92\xec\xaa\x89\xb4\x36\x9e\xcf\xcb\x18\x14\x78\x59\x70\xf8\xd0\x27\x7f\x3c\xfe\xfe\xf9\xbe\xce\xfa\xed\xfd\x37\x6f\xde\xdc\x0f\x6f\x05\xd8\xfb\x63\xdf\xc0\xba\x5e\x99\x4a\x57\xb3\x8f\x87\x33\xbe\x32\xc3\x7a\xf1\xe5\x03\xfa\xe3\xde\xa2\x60\x7f\x89\x4c\x93\x4b\x74\x96\xad\x2a\x1c\x6e\xa0\x0e\xb6\x37\xd3\x3f\x26\x7b\x1a\xd9\xe4\x68\x61\x4e\x05\xf5\x20\x46\xaf\xa3\xcc\x24\x4d\x8c\xf9\x02\xe0\x42\xea\x33\xbe\x76\x71\xa8\x41\x9c\x36\xeb\xde\x68\x1c\x4d\x35\x91\xbf\x6c\x53\xae\x5f\xaf\x6e\x7a\x31\x2f\xab\x5a\xd3\x08\xe9\xf3\x2d\xf5\xfa\xfa\x5f\x5a\x33\xa9\x98\xd8\x57\xa3\xaf\x60\x82\xf5\xd8\xfd\x09\x7b\x09\x5c\xf8\x55\x70\x01\x64\x5b\x61\xc3\x8a\xb6\xfb\x92\x6a\x6e\x8d\x2d\xba\xc8\x08\xaf\x74\xc3\xbe\xb4\x5d\xdb\x5c\x2d\x5f\xb6\x2e\x87\xbf\xc4\x23\xf3\x66\xe2\xb3\xc3\xd2\x4f\x08\x39\x9c\xcf\xe5\xbd\xc5\xa4\x27\x4e\xeb\x4a\x7f\xf6\x57\x6c\x1c\x5b\xfe\x71\xaf\xac\xa3\x07\x07\x9c\x7c\x03\x16\x36\x0e\xaa\xc9\x7a\x91\x34\x22\xcb\x23\x28\x5d\x07\x58\xbb\x37\x1d\x87\xb3\x4b\x46\x74\x91\xf4\x41\xe1\x7e\x0e\xbd\xcf\x74\x12\x2b\x55\x77\x7c\x15\x00\x8a\xd3\xed\x3e\x3f\xa9\x55\x9e\xb3\x16\x91\x63\xd0\xa7\x40\x5a\x1e\xd1\x7f\xe6\xc1\x27\x6f\xaf\x81\x3d\xa2\x5f\x62\x62\x8a\xc3\x33\x02\xa5\xe0\x1c\x2a\x9c\x97\xe5\x6c\x52\x1c\x5e\x15\x8b\x8e\xbc\x7b\xe4\xe4\xfa\x3d\xee\x54\xdc\x03\x81\xf5\x11\x7a\x64\x55\xaa\x93\x2d\x4e\x19\x42\x50\x26\x26\x4b\x39\x27\xea\x50\x64\x86\x07\x55\xea\xe7\xf8\xb7\x40\xfd\x5c\x9b\x29\x01\xd4\x26\xc9\x48\xae\x76\xe4\x56\x35\x23\x26\xb9\x51\x3e\xc0\xab\x88\xc3\x17\x38\x04\xe4\xb3\x41\x2e\xab\x43\xc7\x61\x78\x9f\xb2\xe4\x60\xf3\x54\x92\x53\x9d\xd1\x78\x40\x46\x0e\x59\x20\xdb\x4f\x71\xd1\x72\x20\x47\x1a\x8a\x7f\x8c\x7a\xec\x82\xef\x03\x4b\x67\x74\x59\xd2\x9b\x04\x58\xfe\x51\x22\x47\xb3\x6f\xf9\x5b\x57\xf9\x69\xbf\x28\x11\xe2\xb9\x3c\x28\xe9\xca\x4d\x40\xb5\x6d\xba\xab\x38\x33\x95\x06\xc8\x34\x5d\xad\x3e\x28\xc9\xb2\x42\xfd\x69\x5e\x00\x6a\xf9\x78\xbe\x25\xbb\xfe\x87\x81\xe2\x77\x43\x7c\xa2\x07\x31\xa5\xac\xb5\xa3\x78\x0a\x89\x50\x18\x5b\x2b\x66\x56\x31\x0d\xf8\xf7\x95\x3e\x26\x5b\x41\x36\xf2\x24\x56\x7c\x91\xf5\x17\x27\x2e\x98\x9f\xfc\x47\x24\x30\x48\x00\x7c\x63\x6e\x82\xbc\xef\x8f\xcb\x53\x30\x07\xa6\x39\x46\xbe\xfc\xd0\x36\xce\xb4\xbf\x21\x61\x41\x3e\x59\xaf\xbd\xcf\xe3\x73\x9d\x8e\x5e\x93\xc2\x9b\xe0\xbd\x85\xcb\xf0\x63\xb8\xfc\xb9\x89\x45\x40\xbc\x71\x6b\x6f\xe0\xfa\xf1\xa0\xc0\xd9\xd9\xe2\xb4\xef\xde\x58\xc4\xff\xe3\x39\x26\x68\xd0\x11\xd8\x59\x33\xc0\x8e\xb9\x4c\xeb\xc1\x53\x03\xfe\x9b\xfc\x8f\x96\x89\x0d\x5f\xc2\xcd\x07\x46\x5a\x2e\x66\x9b\x76\xfa\x76\x8b\x67\x24\x1e\x53\x05\x56\x69\xba\xbc\x50\xfc\x94\x1d\x5a\xd9\x8b\xee\xcd\x0a\x7f\x71\x66\x03\x0b\xaf\x74\x79\x4e\x88\x39\x73\x14\x71\x63\x57\x1b\x05\xb2\x3f\xee\x76\x44\xda\x96\xb3\x89\xd3\x40\xd0\x03\x32\x00\x5c\x65\xaa\xcb\x28\x15\x7d\x8f\xe2\x57\xe9\x6b\xa4\xdc\x08\x75\x1c\xcc\x88\x16\x3d\x7a\xfa\x5c\x7f\x71\x00\x87\x3e\x29\x2b\x11\x1c\x3a\x0b\xc9\x03\xcd\x01\x22\x0b\x1f\x28\xa2\x8f\x18\x87\xd8\x91\x85\xc4\xf4\xf0\xdf\xc1\xb9\xfd\xd2\xbd\x75\xec\x6a\x55\x7d\x79\x36\xd0\x9d\xdb\x41\x9d\x15\x7f\xa0\x59\xba\xd6\xf0\x4d\xbd\xbf\x0d\x91\x28\xa1\x12\x81\x0b\xdb\x70\xcc\xff\x84\xe2\xd4\x27\xcc\x95\x96\x10\xdc\x96\x01\x16\x01\x44\x51\xe4\x08\x28\xfa\x5d\xab\xf1\x6a\xee\x6d\xd5\xd9\xa1\x19\x8b\x56\xfe\x19\x5a\x8f\x56\xae\x02\x89\xf2\x89\xf4\x41\xbf\xe3\x8f\xcc\xd4\x1e\x00\x55\x20\x3f\xc6\x8d\x5c\x28\x22\xb3\x37\x56\xcc\x8d\x68\x9d\x44\xe0\xb1\x71\x93\xf5\x06\x51\x8c\x14\x5c\x5d\xc4\xd5\x71\x31\xd9\xa2\x55\x44\x85\x95\x7a\xce\xae\xcb\x71\xc0\x6f\x48\xd8\x59\x6d\x2a\x2f\x15\x09\x9a\xc5\xd7\x20\x11\x9c\x4d\xd9\x13\xe7\xf1\x89\xbd\x27\x2e\x87\xae\x8f\x37\x90\x3c\x90\x71\xb5\xd7\x90\x6d\xbf\xa5\xfc\xda\x16\xf6\xf3\xb2\xb6\xa3\x44\xc1\x4e\x87\x8e\x83\x1c\x5e\xe0\x49\x3c\xc4\x0f\xf3\x33\x3b\x7a\x3d\xb8\x06\x60\xec\xc1\x57\x1e\xf0\xe3\x47\xa0\x10\xff\xf6\xdf\xfe\xe7\x1c\x0a\xe9\x75\xde\x14\x76\xaf\x3c\xc7\x53\x98\xac\xad\xf2\x6f\x2e\xf5\x60\xa6\x36\xf2\x5c\xd2\x6c\x73\xf7\x26\xa3\xca\x43\xec\x2f\xc1\x42\x9c\xf0\x5d\x1c\x78\xad\x9d\x41\xd6\x85\x26\xb7\xae\x58\x03\xe9\x4c\xda\xad\x8c\x83\x67\xcc\xc3\xc3\xc3\xfe\x41\xbb\x68\x50\xec\x09\xb3\x96\xea\xb2\xea\xf1\x0d\x4f\x19\xc9\x69\x09\x4f\x18\xf1\xb1\x9c\x39\x3c\x2c\x85\xbb\xe3\xe3\x2d\xdc\x3b\x76\xdc\x21\xea\xaa\x6c\x10\xae\x7c\xa5\x99\x4d\x71\x39\x46\xf5\x05\x01\xd6\x3e\xe0\x17\x08\xe9\x0d\x58\xdc\x42\xac\x10\xb7\x6f\xfd\xd0\xf5\xe7\x3f\x46\x49\xb5\x93\x77\x87\xba\xe4\xe1\xec\x50\x67\x26\x56\x9f\x11\x7b\x9a\x84\x7b\x1a\xae\x0f\x12\x17\x02\xf6\x17\x3e\xaa\x10\x59\x74\xa3\xc0\x97\x74\x68\x0e\xf6\x13\x3e\xb5\x8a\x43\x06\x6e\xdf\xda\x9a\x6e\xdb\x48\x76\x45\xe2\xc3\x2d\xe7\x4b\xc6\x1b\xbf\xb6\xdb\x18\x18\x59\x9f\xf2\x4f\x91\x9a\x7f\x19\x09\x93\x24\x17\x38\x62\xea\x38\x33\x33\x62\xef\x90\x26\x55\x35\xae\x78\x7f\x08\xd9\x9b\x7d\xf1\x8d\x29\x58\xa3\x80\x48\x74\x1a\xcf\x3f\x44\x08\xfd\x59\x73\xfa\x03\x7c\x53\x97\x8f\x90\x2d\x5c\xb3\x91\xbb\xea\xfc\xe1\x86\xfa\x51\x10\x34\xe7\xeb\x8e\x13\xd6\x09\xd6\xba\x98\x0f\x0d\xea\xd2\x2c\xe7\x2e\xfb\x6c\xec\x20\xe7\x33\xa4\x63\x3c\xd7\xf1\x91\x26\xea\xf3\x3e\x4f\x4d\x78\x9f\x80\x2b\x23\x14\x50\x08\x71\x24\xcc\xb6\xb5\x04\x80\x3a\xa3\x9f\x9c\x37\x3f\xba\xe0\xc3\x7d\x86\x8c\xb3\xd9\x6a\x22\x89\x1b\x22\xd6\x53\xa4\xfa\x77\x4a\x41\x9b\xa9\xc3\xff\x2f\xbc\x0d\x76\x64\x4c\x8d\x95\x8a\x59\xea\x54\xff\x69\x47\x0e\xd5\xdf\x60\xfd\x4f\x6b\x84\x24\xaa\xb1\x5b\x42\x0a\x4f\xcf\xa6\xec\x36\xc0\x88\x47\x01\xb5\xfa\xe8\x94\xa9\xce\xab\xa0\xda\x9d\x29\xb5\xc9\x41\x9e\xaf\x21\xcb\xc6\x79\x98\xe6\x4c\xd6\xac\x33\x9a\x54\xd9\x64\xdd\x7d\x4c\xba\xce\xdd\xf6\xfa\x26\x23\x7d\xb9\xe0\x3b\xcd\x1d\xa3\x39\x5f\x6e\x6c\xe5\xe1\xd6\x94\xb1\x4d\x77\xda\x74\x9a\x80\x65\x62\x13\xfe\xb8\x94\x32\x3b\x4c\x68\x93\xdc\x32\xef\x76\x9b\xd2\xb4\x05\xa8\xd7\x4c\x82\x99\x0f\xc0\xc9\xd3\xbc\x99\x7c\xe4\x76\xce\x9e\x1d\x64\x85\x45\x71\x30\x2b\x89\x44\x1a\x77\x91\x8f\x19\xc5\xbc\x71\x05\xf9\xab\x54\xeb\xe2\xde\x38\xd3\xd4\x7e\x41\x7f\x25\x04\x30\x25\xe6\x01\x6c\xde\xe9\x75\x42\x10\xf4\x8a\x90\x6b\x7f\xbd\x74\xa9\x9c\xd3\x62\x47\x3e\x5f\x18\x0e\x1a\x11\x9b\x74\x54\xa9\xe7\x37\x7a\x90\x18\x74\xae\x3c\x6f\x9d\x0d\x31\x1b\xf7\xe2\x3e\xaa\xcd\x50\x2e\xb0\x50\x4c\x5b\xbf\x36\x65\xb3\x7c\x56\x42\xf1\xd4\x87\x0f\x62\xae\x5c\x3e\x91\x57\x0c\x42\x39\x31\x1a\x54\xfc\x27\xc9\x3d\x1f\x8a\xf5\x62\x15\xdf\x1d\xce\x30\xeb\xef\xfc\xd8\x44\xc9\xc0\xae\xf5\xd6\x8d\xd8\x5d\x7d\x15\x81\xa4\xa9\x77\xe0\xd9\xbf\x98\x74\x8c\xf7\xd7\x0e\xe1\x4f\x27\x09\xc3\xa8\x4c\x91\x4a\x6f\xec\x05\xe2\x70\x08\x30\x1a\x8e\xe3\x4a\xb3\xd9\x4a\x21\x58\x23\x4d\xad\xb6\x7c\x28\x17\x11\x31\xdf\x87\xb0\x94\x84\x96\x51\xa5\x34\x6d\xb2\xbb\xad\xe4\xb9\xd4\xb2\x90\x3c\xc1\xc1\x3a\xcf\x6a\x75\xe4\x7e\x1d\xb7\x9c\x42\x51\xac\x6a\x29\x3e\x2d\xdc\x28\xcc\x5e\x4f\xe7\xc2\xfc\x76\x3c\x9b\xb8\xde\xfc\x74\xf8\xbe\xfc\xb5\xc2\xb1\x91\x2c\x57\xa7\x12\xaa\x10\xfc\x9d\xa0\xe8\xe3\x25\x32\xab\xcb\x7e\x9c\x32\x08\x5b\x51\x6f\x98\xa4\x3c\x98\x99\x4e\x32\x7f\xe4\x75\x5a\xf3\x83\xd3\x9c\x9d\xdb\x7e\x3c\xb1\x38\x37\x79\x23\x9e\xd7\x1d\x87\x91\x95\xaa\xfb\x9a\xf5\x4a\x91\xa9\xdc\x94\xee\x42\x6a\xcc\xdf\xe0\xf2\x8d\x8f\x92\x9d\x30\x31\x87\xb1\xfb\x9a\xb8\xc8\xb8\x05\xb5\x81\xe2\x36\xbb\x9d\xcc\x12\x59\x9e\x55\x0c\x6c\xc6\xe6\xc0\xb8\x69\xa2\xbb\xdf\x42\x95\x26\xf7\xa5\x2c\x24\x63\x5c\x51\xf3\x30\x65\x23\x6f\x60\x1b\xe4\xb3\x4b\xca\x06\x1e\x36\xbf\xd2\xb2\x9e\xa0\x41\x63\xee\x4f\xa9\x4d\xe4\x20\xe0\x08\xcf\xa4\xcf\xf9\xcc\x64\x19\x3b\x99\xb6\x88\x2e\x0d\x87\x57\x69\x8e\x32\xb5\x9f\x6e\x74\xd1\xfc\xea\x72\xc9\x8f\x6e\x88\xaf\x5b\xd1\xc8\xcb\xcc\x3e\x77\xa7\xf7\x35\x70\x0f\x84\x2e\xe6\xc6\x75\xbc\x86\xae\x7a\x97\xee\x6a\x91\xd0\x90\x1c\x87\xb2\xf3\xc0\xa6\x90\xe0\x06\x67\xda\x08\x8d\xf8\x44\x84\x5d\xfe\x42\xd2\xe2\xbb\x45\xc5\x8f\x4f\xff\x36\x7a\xf3\xbb\xa7\xe4\x4f\xe6\x87\x26\xc5\xae\x24\x78\xee\x85\x33\x41\x7e\x90\xb6\xfc\xee\x09\xed\x3a\x5d\xbb\x41\xb5\x1f\xcf\x0d\xfe\x6d\x3b\x49\xc9\x07\x66\x7e\x83\xec\xa7\x08\xbc\xe3\x6c\x84\x44\x34\xf1\xf9\x78\x1c\x3c\x5c\x27\x4d\xd5\x75\x48\xd2\xe1\x84\x10\xc8\xd0\x6f\xdb\xb5\xa2\xd5\x6e\x35\x69\x8e\xeb\xad\x6e\x9d\xa6\x29\xf2\x33\x0b\x2f\xb6\xe8\x43\xe1\x22\xeb\x33\x2c\x49\xda\xf7\x6f\x02\x2f\xa3\x37\x7f\x4f\xf9\xcd\x5f\x18\x42\xed\x32\x7a\xca\x42\x5e\xc4\x20\xb2\xf3\x4e\x5f\xcb\xc8\x9e\xc6\xb8\xf9\x8d\x12\x7d\xf7\x45\x85\x9a\x87\xd9\x33\x30\x56\x93\x1e\x9e\x0b\x23\xea\xde\x75\x46\x26\x23\xf6\xbf\x23\xf9\x09\x81\x96\xc7\x57\x76\xd0\x0c\x0b\x9b\xae\xc5\x58\x80\x11\x9c\x8c\x84\x57\x25\x16\xd6\xe2\x01\xc3\x73\xb0\x55\x66\xc3\x09\x72\x35\x6b\x2e\x17\xfa\xac\xb9\xc8\x24\x3a\x10\x2b\x74\x82\xff\xe2\x29\xa1\x8a\x55\xd0\x0e\x1a\xac\xd0\x25\x58\x12\x6f\x77\xac\x7f\xc9\x5b\x2a\xa1\x46\xb7\x35\xbd\x83\x43\xf0\xb5\x48\xfa\xa0\xc9\x9a\x0d\xeb\x8f\x47\xc9\xdc\x83\x83\x5b\x3c\xc3\xc4\xc1\x1f\xb9\xc5\xcc\x8e\xbb\x82\x8d\x9d\x9f\xa9\xc9\xdf\xf0\xe6\xb7\x9a\xfc\xc3\x42\x78\xa9\xb4\xc2\x4b\xa5\xc9\x6b\x39\xfb\x51\x79\x7c\x55\x24\x1f\x24\x8d\xb5\x7f\x28\x26\xfe\x94\xee\x5e\xfc\x05\x7e\xb3\x75\x52\x82\x9c\x54\x49\x81\x38\x2c\x67\x45\x38\xcc\x71\x49\xec\x86\x1a\x4d\x29\x72\x48\xcd\xca\x77\xe5\xef\x4d\x86\x09\x6f\xd7\xc4\xc5\x92\xf1\x2d\x1d\x3e\x4a\x90\x94\x0e\xa4\x8f\xf2\x8b\x6c\x5c\x23\x89\x48\xfc\x5d\xed\x9c\x59\xf7\x2e\xa8\x21\x2e\x95\x28\xe9\xb8\x64\xb8\xfe\x47\x0e\x14\x45\x07\x71\xb9\x92\xbe\xd9\xba\x48\x67\x5a\x5b\xe3\xe4\xd6\xb8\x8a\x33\x2e\x2c\x66\xb1\x32\x4d\xd3\xbd\x17\x50\x74\xbe\xb6\x3c\x11\xee\x1f\x04\x9f\xaf\xd4\x8f\x2d\xc9\x08\x88\xf6\x1d\xd2\x2a\x08\x37\x6a\x57\x9a\xfd\xb8\x93\x14\x7f\x44\xd5\xf5\xdd\x57\xf7\x66\x80\xfa\x8b\x7c\xcf\x67\xdf\xde\xdc\xde\x5f\xbf\x9c\x5d\x45\xbe\xb8\x96\xd1\x03\xd6\x91\x27\x6f\x76\x29\x87\xce\xf5\x52\x17\x67\xa3\xf8\x15\x55\x1b\x71\x38\x9e\xeb\x72\x98\xa6\xbe\x49\xf6\xe3\x7a\xf2\xd3\x7d\x2a\xdf\x34\x36\x3c\xed\xf2\x77\x4d\x9b\xf5\x9d\x48\x9b\x85\x68\xf2\x74\xc2\x2e\xf2\xdc\x7d\xd5\xd3\x91\x90\xdd\x9b\xfb\x8b\xa1\xfc\xe1\xde\x7e\xe3\x02\xce\xeb\x61\x75\xbe\xd6\x47\xd9\xe1\xf4\x2a\xaf\x7b\xa8\x23\x14\x61\xf7\x20\x9e\xe6\xbb\xa7\x1c\xf7\x90\x22\x84\x7b\x02\x0c\xdc\x1b\x4f\xcb\xbf\x59\x24\xef\x56\xca\x60\xbb\xe7\x46\xe4\xe5\xaa\x5d\xaf\xf8\x59\x7f\x7b\xc1\x86\x72\x22\x79\xf7\x99\xe5\x11\x27\x09\x97\x56\x74\x6f\x41\x15\x1e\x48\xe2\xb1\xfa\x9d\x61\xa3\xb1\xdd\x2b\x3e\x29\x5d\x80\x86\xb2\x1f\x42\x4c\xa9\x92\xbd\xcf\x04\x9a\xbd\xdc\x45\xd9\x0d\x36\x94\xe8\xeb\xbd\x9b\x27\x30\xb7\x17\x19\x85\x8e\x36\xa0\x77\xb3\x45\xd5\x8f\x59\x66\xe4\xda\x91\xae\xd5\xa3\xa9\x68\x4d\x94\xe0\x04\x4d\x59\x15\x83\xfa\x13\xce\x8a\x01\xdd\x4a\xd9\x0a\x4f\xa1\xd9\x2a\x8d\x7f\x2f\xd4\x5d\xdd\xd9\xd3\x3b\xd0\x52\x39\xf5\xe2\x2e\x48\xc4\x73\x4c\x74\x7d\xf9\x8c\x0a\x71\x8b\x9a\x20\x0f\x03\x48\x4f\x86\x87\xd3\x2e\x30\x25\xd7\x2e\x3b\xf0\xd3\x04\x06\x3a\x5c\xcb\xc7\x23\x5b\x80\x90\x76\x14\xa7\xc1\x14\xc7\xf8\x3c\xa6\x24\x8f\xa4\x0c\x70\x60\xe7\x5d\x8f\x78\xdc\xd6\x2c\xbf\x75\x7f\x59\x7d\x37\xa7\xc9\x88\x9c\xb6\x20\x46\x95\xd8\xc1\xd5\xc8\x29\xeb\x5e\x46\xc9\xfb\x9f\xc1\x16\xc2\x01\x46\xda\x3c\x6e\xcd\xec\x8a\x6b\x0b\x65\xf6\x5a\x2c\x20\xae\x0d\x7f\xa7\xa6\xf4\x65\xe4\x6c\x5c\xa1\xa9\x36\xea\x4e\x21\xf5\xc4\x6d\xa8\x44\x1e\x63\x0e\x75\xf9\x01\x5d\x24\xff\x22\x00\x8f\xdb\x15\xc0\x01\xde\xcb\x3d\x63\xa9\x0f\x66\x28\x25\x3f\xe2\xca\x29\x5c\xb2\x19\x66\x3d\xec\x3d\x6c\x9c\x5e\xdb\x2f\x77\xa6\x35\x92\xb5\x4c\xc6\x3e\xac\x4f\xbd\xce\x73\xae\xad\x83\xef\x85\x29\xb7\x33\xd0\x3d\x29\x09\x7d\xbf\xa3\x6f\x09\xf6\x71\xe5\x9d\x00\x0a\x6d\xe6\x60\x15\xb7\xad\x2b\x12\x6b\xe7\xda\x11\x47\x8d\x77\xa9\xed\xce\x86\xec\x23\x33\x8f\x07\x1f\x9e\xb2\xda\x02\xe7\xa7\xdc\x30\xc0\x32\x64\xe0\xd6\xdd\xe9\xcf\x44\x1f\x89\x71\xa5\x7f\xe9\x54\xcf\x8f\x73\xda\x75\x03\x84\xad\x2d\x38\x58\x76\x8c\xcc\x41\x7a\x54\xc3\x8c\xe9\xaa\x65\x6c\x2c\xb5\xd8\x09\x57\x6e\x38\x03\xd1\x0d\x72\xf2\xd2\x70\xfd\xc8\xd2\xb0\x9d\x19\x13\x87\xfe\xd8\x57\x28\x9e\x1d\x53\x8b\x1b\xbb\xf0\xa3\xe7\xad\xdc\x04\x92\xad\xd9\xac\x4b\x3a\xf0\xbf\x6d\x0a\x07\x25\xe7\x1e\xb9\xa9\x93\xd9\x49\x70\xbb\xd9\x59\xc8\xbb\x77\x30\xda\x9c\x8e\xeb\xd7\x66\x40\x64\xe2\xc5\x8a\xbd\x25\x42\x57\xf2\x18\x1e\x07\x1e\x80\x42\x89\xe8\xc6\x52\x1c\xbb\xc9\x51\x0b\x7c\x93\xee\x93\x5b\x75\x4d\x1b\x33\x94\xec\x16\x13\x6f\x0d\x15\x79\x11\xe3\x60\x76\x5a\x1d\x71\x5f\xfd\x4a\xc5\x9a\xd2\x9f\xe4\xd0\x4b\x74\xba\xc5\x24\xc3\xb1\x9b\x4e\xce\x99\xdb\x71\xa4\x2a\x93\x3b\x7e\x7d\xb5\x86\x9f\x03\x8c\x82\x62\x00\xa0\x49\x68\x90\x5e\xdc\x80\x65\x39\x6a\x20\x84\x5a\xdc\x3d\xa2\x17\x77\xbf\x3d\x98\x12\x4d\x57\xfb\xa8\xa4\x93\x86\x6e\x85\x56\xce\x56\xdc\xa2\x8e\xaf\x39\x37\xb0\xd4\x08\xcf\xaf\xcc\xd5\xd5\x11\x1d\xf5\xe2\x5b\x15\x35\x54\xa8\x96\xf8\x1e\x7d\xf6\x83\x30\xd1\x34\xcb\x6f\x35\x99\x56\xa5\xde\xcd\x41\xe4\x96\x16\xfc\x18\x9f\x33\xd5\x4c\x92\xec\xba\xd4\xfe\x5a\x57\x39\x7f\xf7\xdb\x71\xab\x95\xbc\x23\xc8\x91\xb8\xfa\x25\x24\xd4\x8a\xd4\xbb\xf2\x4d\xf8\x36\xd5\x2d\xf8\x16\x9a\x88\x50\x33\x10\xfa\x62\xf6\x18\x96\xf4\x53\x1a\x04\x7a\x76\xb5\x7c\x82\x87\xb0\xbc\x11\x3c\x7a\xf2\xb5\xda\x33\x3e\x57\xd5\xc6\x9b\x00\x13\x4f\xeb\xb0\xea\x69\xec\x15\xe7\xd4\x9a\xa4\x0c\x98\x46\x8d\x49\x1f\xa9\x53\x91\xae\x9b\x25\x0c\xf1\x31\x13\xff\x1f\x3b\xf3\xc2\xb0\xab\xcd\x79\xb5\xc5\x0c\x6b\x6c\xd2\x45\xd3\x91\x7c\xb8\x9a\xf7\x16\xbf\xa1\x43\xff\x78\x9e\x73\x14\x96\x67\x65\xee\x37\xfa\x14\x7f\x9c\x7f\x40\xf3\xf0\xfb\xe5\xfc\xee\x97\x31\x03\x34\x3c\x22\xc5\x19\x09\x0e\x12\x14\xaa\xed\x2a\x60\x4d\x78\x1c\x82\x73\xbe\x08\x0e\xc5\x35\x19\x8b\x42\x2d\xa7\x25\x67\x0c\xcd\x9c\x00\xca\x59\x5c\x63\xe3\x3c\xe2\x34\x98\xf7\x8b\xba\x52\xad\x39\x1f\x8b\x32\xca\x12\xef\xfc\x17\xe5\x24\xb0\x3a\xaf\xef\x9c\x48\x81\xe8\x9a\x79\x70\x45\x4e\xd0\x52\x12\xbc\x47\xa4\xfa\x0d\x46\xdd\x0c\x42\x93\x57\x96\x27\xab\x4f\x1e\x57\xf6\xaa\xe6\xdf\xf9\x9a\x72\x3c\xa8\x7b\x69\x3a\x8c\x59\x86\xc1\x36\x41\xf7\x9f\x5a\x09\xf6\xa3\x57\x7e\x68\xd5\xe7\xe5\xc8\xb7\xcf\x18\xbd\x9d\x1c\xc7\xa4\x2e\x12\x90\x64\xd1\x5c\x7e\xd8\x0f\x27\x6a\xc0\x1b\xba\x0b\x8e\x63\xdc\x45\xee\x32\x2d\x22\x37\x08\x24\x8c\x7f\xe6\x7e\x3a\x5c\x38\x71\xd3\x51\x0d\x24\x53\xae\xdd\xc3\x05\x8a\x26\xb5\x77\xbe\x56\x12\xcf\x42\x7e\xe7\x16\x5b\x29\xe5\x9c\xed\x2c\x9b\xd7\x97\x35\x14\xce\xee\x03\xd2\xb4\xf3\xa3\x7b\xc6\x0f\x36\x93\x04\x5c\x54\xa3\x4a\x50\x92\x59\x1f\xe1\xbf\xa9\x55\xc9\x2d\x22\xa7\x2c\xd6\xf5\x82\x5c\x3d\xb3\xaf\x22\x0a\xb5\x9b\x25\x4a\xda\xd2\x2f\x56\x7e\x47\xf9\x6f\xa5\x40\x1e\x99\xf5\x97\x88\x2b\x9e\xf5\xc5\x8a\x96\x14\x39\xef\xef\x1c\x9b\x2b\xa6\x0a\xab\x5d\x55\x73\xdf\x7b\x29\xbd\xe8\xec\xb0\xfc\x8e\xb6\xd5\x97\xc0\xbb\x64\x79\xd4\x21\x1b\x91\x14\xb0\x6e\xa9\x6a\x97\x8f\xa0\x49\x7a\xfc\x3c\x29\xf6\x2f\xa6\xf2\xc7\xf4\x8d\xd4\x99\x6a\x8e\x6e\x3f\x7c\xf5\xe4\xc5\xc9\xd3\xe3\xe3\x27\xcf\x9e\x3c\x3f\x29\xbe\x28\x0e\x4c\xd2\x96\xc9\xa5\x1d\xba\xf5\x6b\x8d\xca\xe5\xc4\x03\x9c\x73\x66\x51\x3c\xd7\xbb\x42\x5f\x4e\x68\xb2\xa6\x2e\x7b\x26\x13\xc1\x4e\xad\xcd\xc0\xbf\x9a\xf0\xe6\x9c\xc5\xdb\xc6\x88\xbf\x93\x6e\x03\x58\x0a\x4e\xa8\x17\xb1\x0f\x60\x0b\x49\x80\x2d\x24\xc7\x5e\x54\x91\xe0\x10\x57\x0b\xe0\x28\x89\x3e\xd6\xa7\x23\x8c\xf0\xd8\x8e\x87\xfa\x53\x1e\xf5\xbf\x7e\xdf\x06\xfc\x08\x35\xed\xd8\x4f\x2a\xab\xb7\xe1\x59\xb9\xa9\x59\x90\xcd\xdb\xc8\x6b\x9c\xbe\x01\x76\xdc\xbd\xcd\x2a\x55\x25\xd5\x5f\x32\xcb\x6f\xb8\xc8\xf7\xc5\xc6\x24\xad\x96\xb2\x30\x59\xcd\x0d\xae\xa8\x95\x2d\x97\xcf\x60\xca\x2e\x8e\x1f\xba\x0f\x76\x33\x6c\xe5\x41\x92\x1d\xf8\x59\x1c\x3f\x3b\x39\x8a\x6b\x07\x3c\x9b\x7c\xf2\x08\x97\x7c\x51\xb7\x33\x0d\x19\xb1\x0e\x6f\xfd\x6d\xc6\x3c\xd4\x6c\xd5\x8f\x61\x0e\x88\xec\xd1\x75\x26\x39\x49\xd9\x44\x20\x9d\x4b\x9c\x5e\xcd\x76\x2d\x57\x86\x20\xb2\xe8\x29\x37\x1a\x98\x28\x95\x0b\x47\x65\xaf\xda\xba\x3f\x1f\x69\x90\xbf\xfc\xf3\x7e\xf1\x97\x7f\x5d\xa4\xa7\x7e\x35\xe0\xbd\x5d\xf7\x0a\x35\xdd\x85\x17\xf5\xd9\x99\x32\x6f\x27\x87\xc7\x1e\x0e\xaf\xeb\x2d\xaa\xae\x10\xdc\x43\x1c\xe0\x73\x99\x66\x78\xf7\x34\xaa\xbb\x85\x8d\x55\xc2\xc3\x13\x7f\xeb\x63\x29\x2b\x8e\x1e\x3e\xcb\xe6\xc0\xd9\xd1\x1c\x93\xb9\x3c\x70\x9a\x7a\x7e\x3e\x46\x53\xaf\x79\xe2\x55\x6f\xa1\x73\x6c\xad\xa9\x1b\x0f\xe0\x24\xa5\x6a\xfe\xee\xfe\x4d\xd4\x29\xf0\xcf\x39\x7e\x28\x33\x64\x22\xf2\x9b\x32\xac\xfc\x20\x6d\xde\xea\x2f\xff\x7c\xd7\x12\x8c\x6f\x8e\x26\x59\xa4\x04\x76\x87\xef\xdb\x1c\xd2\x7e\x84\xbf\x5b\xdc\xb3\x63\x8a\x5c\xd5\x0f\x03\xc6\x43\x74\x26\xbb\x0d\xbf\x25\xbc\x8b\x76\x2b\x77\xc5\xd7\xc2\xbc\x23\xc0\xc7\x34\x8d\xac\xc6\x31\x4f\x38\x75\x0b\xf0\x6e\x63\x5f\x27\xdd\xd4\xe9\x0b\xc4\xbb\xc0\x77\x63\xb0\x8a\xa8\x3a\x9d\xde\x70\xce\x74\xe9\x70\x59\x5f\xaa\xe0\xea\xe5\x76\x9b\x5d\x73\x0f\xc3\x93\x74\x49\xad\x4b\xce\xfd\xd7\x07\xc0\xec\xaa\x98\x84\x9f\xce\x55\xca\x2f\x4c\x2d\xee\xce\xce\x1a\xfa\x8d\x6c\xba\xc8\xa1\xce\x3a\xd5\xde\xde\x67\x17\xf9\xd0\x96\x40\x8b\x93\xd7\x33\x43\x01\x71\x07\x02\xa1\xbe\x20\xcf\x9e\xe9\x78\xd8\xbd\x2d\x83\x6a\x64\x2c\x5e\x74\xfe\x75\x0e\xee\xa3\x1f\x59\xc3\xd5\x23\xee\xbe\x17\xb1\xf5\x65\x2c\xe9\x45\xd5\xc2\x5c\xe0\xfd\x2c\x86\xa6\x78\x29\xcc\xd8\xf5\x5d\x37\xc8\xb3\x47\x4f\x36\x1c\x71\xe0\x9d\x4b\x03\x67\xe7\x76\x07\x8a\xca\xf5\x4a\x9e\x3f\x99\x6d\xf6\xa2\x5c\xd7\x2d\x67\x23\x71\x6f\x85\xb1\xb9\x97\x29\x89\x76\x42\x8b\xfe\x6d\x3d\x28\x48\xc2\x2c\xd8\x17\x29\x0d\x62\x3c\xe6\xb2\x68\x61\x70\xc0\x56\xf4\x66\x60\x69\x1e\x39\xec\x69\x8e\x9f\xbc\xd3\x73\x20\xac\x4e\x77\x20\x22\x2b\xe7\x1f\xa9\x1d\xd9\xc5\x3e\xc5\xcd\x22\x5e\x2f\x14\xc6\x3c\x55\x28\x0d\x6c\x62\x28\xe3\x19\xef\x98\x91\xb5\x4d\xb4\xaf\xc7\xc7\x87\x73\x1f\xfd\xf3\x78\x77\x90\xf9\xfb\x9c\x28\xc2\x9d\x62\xf4\x41\xcc\xf7\xe2\x26\xf9\x06\xe4\xdf\x7c\x57\x7c\x4f\xfe\xe5\x9f\x0b\xfb\x4b\x43\xa2\xff\xe7\xa0\xb7\x66\x40\xc1\xc9\xd3\xc7\x8f\xe8\xd7\xbd\xe4\x10\xd7\x1c\x13\xb4\xfb\x14\xd7\x6b\x13\xed\x96\xea\x39\x92\x47\xc3\xf3\x47\xcd\x92\xc7\xc2\x71\xc9\x86\x07\xc7\xf3\xd3\xe5\xae\xb4\xe4\x6c\xed\x3d\x49\x74\x24\x61\xb6\x08\x4c\xd3\x2f\xa2\x7e\x23\x0e\x6a\x80\x4b\x45\x88\x50\x2b\x4e\xe9\x10\xce\x28\x5a\xa2\x25\x48\x72\x73\x97\xec\x9c\xe3\x7b\xc2\x8d\xfa\xfd\x29\xd1\x81\x72\xe8\x7c\x72\xc4\x57\x51\xd8\x8f\x76\xa1\x97\xb2\xa8\x3a\xc5\xf7\x3a\xe1\x10\x58\xb9\x59\xed\x3d\xe4\x2f\xbe\x15\x43\x4c\xf5\x43\xcf\xe8\x6f\xbd\x88\x63\xf5\x90\x9d\x00\x88\xe3\x34\xeb\x77\xc8\x52\x6d\xd6\xaf\x73\x12\xa4\xdc\xc5\x3a\x46\x76\xc4\x5c\x6b\xa2\x8a\x86\x6f\xc2\xb6\xde\xb0\xca\x2f\x9f\xfc\x96\x64\xb7\x52\xe7\xfd\x4e\xe6\xcd\x45\x81\xc6\x4a\x48\x37\xe2\xc5\x56\x0d\xdb\x60\x0f\xeb\x4d\xad\xbe\x08\x1c\x40\xa6\x41\xe0\x1e\xb2\xd6\x0c\x41\x52\x88\xda\xbd\xb8\x7e\x5f\x47\x8f\x08\xd2\x58\xcf\x88\xe3\x7f\x0c\x0d\xa2\x55\x15\x47\xd6\xb5\xef\xd4\x25\xa5\x98\xc5\x50\x1f\x65\xad\x95\xe9\xd4\x8c\x34\xa6\x69\xcf\xe9\xa4\x1c\x76\x78\x8e\x51\x8c\x66\x04\x17\x10\x32\x5c\xe8\x6c\xbc\x8c\xce\xb5\xc4\x63\xb3\xd2\x92\x30\x67\xf9\xe4\xed\xb6\x76\xf8\xbf\x07\x35\x5e\x1d\xd0\xef\xa3\x58\xbc\x68\xb7\x6f\xb8\x1e\x19\x01\xc6\x3e\xaf\x3e\x11\x34\xd3\xcf\x0e\x2b\xe8\xa0\x77\x09\x2e\x7c\xf7\xe4\xf0\xfb\xbc\xf2\x84\x5c\x69\xf9\x0c\x71\xd3\x2f\x3b\x89\x99\xf8\x25\xcc\xae\x85\x1d\x13\xb2\x8a\xbb\x56\x21\x07\x66\x17\x48\xd4\x96\x90\xd4\x2d\x2b\xc2\x49\x16\x72\xe8\x5f\xd5\x2d\xce\xd7\x9c\xbc\x09\x69\x77\xd5\x84\x9f\x0b\x61\xb2\x26\x6b\xce\xeb\x58\x61\xc9\x76\x5e\x27\xc7\x2e\x36\x20\xab\xbf\xed\x3b\xc8\x28\xfd\xf2\x1b\x97\x2c\x49\x30\x2f\xaf\xef\xea\xe5\x03\xc8\xb1\x88\x1a\x87\x59\x13\x86\xd7\xa9\xa0\x70\xc0\x45\xf9\x91\xc6\xe9\x93\xca\x11\x35\xb2\x5a\x39\x90\x96\xf3\xb5\x07\x96\x18\x07\x02\xc4\xa0\xa8\xcf\xd6\xd5\xd4\x67\x66\x95\x99\x86\xf3\x35\x5d\x0c\xc3\xd6\x4a\xfe\x0d\x7e\xd2\x31\xba\xc0\xf2\x55\x84\xee\xe2\x83\x36\x59\xd1\xb6\x66\x4b\xd1\x8e\x5d\xd8\x7b\xba\xd1\xb7\xce\x92\xca\x7a\x99\x2d\x9d\x18\xa5\xf5\xfa\x7a\xca\xd5\x9d\xf7\x4a\xb6\xe3\x43\xf4\xad\x16\x26\xfc\xcf\x2e\x6c\xcd\x59\x1d\xd4\x8d\x98\xb8\xa8\x82\xf7\xd7\x5b\xac\x7b\xba\xab\x4e\xd4\xbd\xe9\xa0\xe7\xbc\xb4\xfa\x29\x1c\x56\x57\x62\xa9\x56\x45\x8c\xd0\xf2\xa8\x29\xdb\x48\x28\xf0\x2d\xf0\xd2\xcd\xb1\xb3\x12\xb9\xd2\xf0\x44\x4e\x78\x1d\x27\x7c\x35\x6f\x0d\x1c\x98\x72\xcb\x74\xc4\x70\xda\xb8\xab\xce\xe9\xd7\xf1\x2f\x67\x02\xe2\x9b\xdc\xe6\x3c\xaa\x6b\x31\x93\xcb\xd9\x2d\x86\xc0\x4a\x44\xc7\xe8\xb3\xde\x12\x87\xdb\xf3\x26\xce\xcd\xcd\xd5\x4c\x87\xf1\x1e\x91\xce\xbd\x50\x7e\xae\x90\x13\x6a\xea\x24\xe9\xea\x46\x0c\x5e\x5c\xb4\xfa\xd4\x19\x78\x42\xf9\x74\xfe\xee\x4b\xb7\x5d\xc6\x6e\x64\xa1\x01\x8b\x66\x41\xec\x45\x76\x4d\x67\xf2\xdb\xed\x35\x0d\x27\x54\x76\x14\xfc\x31\x7d\x15\xb7\xd4\x04\xd0\x21\x9f\x65\x1a\xbe\x7c\xd7\xba\xa0\xe5\xd6\xa7\x6a\xed\xcd\x29\x91\x46\xf6\x33\x89\x9a\x45\xef\x06\x7c\x1a\xde\x07\x90\xf7\x6f\x76\x3d\xc9\xe4\x9f\xba\xe1\x99\x48\x9a\x9c\xb4\x89\x7d\x60\xfb\xf5\x03\x9e\x89\x7b\xb8\x46\x42\x59\xd2\xd7\x19\xd2\x5e\x65\x7d\xf2\x4e\xd0\x4f\xa5\x3e\x89\x02\x51\xc8\xbb\x41\x26\x23\x88\x9a\x58\x06\xc1\xa3\x0e\xe1\x81\x1c\xed\x29\x7d\x52\x02\xbf\x0a\xfd\xa5\xb6\x30\xa3\x59\x98\x7c\x97\xfa\x58\xc4\x4c\x8f\xc9\x23\x46\x3f\x95\xe1\x71\x2b\x35\x93\xfc\xa6\xf9\xcd\xa4\x99\x4f\xa7\x17\x9e\x7b\xf8\xd8\x09\xfa\x44\x92\xba\x29\x71\x9e\xc8\x18\x49\x64\xab\xe7\xf7\x39\xc2\x1b\xce\xf3\x33\x94\xe7\xe8\xa9\x3c\xa7\x3e\x6e\xde\xda\x14\x5d\x26\x1b\xab\x0f\x96\x7c\x16\x3f\x20\x21\x6f\xa7\xc0\xa6\xf8\x59\xfa\xb8\x25\xa1\xfc\xd0\x75\x0d\x21\x7c\x79\x4e\x2b\x19\xa1\x65\x11\xca\xc5\x4f\xeb\x22\xec\x29\x79\xf5\x02\x12\x3b\x31\x6a\x5c\x03\x1f\xe3\xdf\x9f\xda\xe5\xa7\x85\x35\x44\x78\xa9\xe2\x5d\xea\xfc\xd3\x0d\x15\x10\xa3\x8b\x38\x38\xfe\x7d\x41\xbf\xf9\x15\x68\xf9\x59\xd1\x4f\xd6\xef\xf0\xaf\x37\xdc\x9a\x55\x02\xda\x9a\xa8\x32\xb5\xef\x08\xdd\xf9\xf7\x15\xfd\x2a\x5b\xfe\x5b\x46\xe1\x67\x7d\x74\x40\xa9\x23\x83\x71\xb9\xfe\xc9\xc5\x17\xa0\x8e\x28\xe4\xc1\xa5\xac\x2a\xaf\xb8\x48\x6c\x54\x28\x79\x63\xcc\x6b\xed\x52\x15\x94\x77\x85\xec\x0e\x17\xd2\xa3\x9b\xc9\x95\x29\xa5\x3b\x84\x2b\xa3\xa0\x2f\xdf\xac\xdc\x94\xdc\x7c\xa4\xd4\x4d\x48\xff\x65\x80\x57\x7d\xb7\x45\x8e\xed\x1f\xc3\xe3\xda\xee\xb9\x50\x90\xbe\xce\xe6\x8f\x91\xd7\xeb\x9a\x13\x35\xb0\xcb\xdd\x3b\x11\x7f\xe8\x30\x34\x70\x59\x44\xba\x02\x58\xe3\x5c\x12\xfd\xba\xdd\x8e\x2a\xd9\xbf\x9a\xbe\x86\x9c\xb4\x62\xfe\xde\x0f\x22\x89\x5d\xf9\x8d\x3e\x7d\x5c\x95\x10\x63\x75\x4a\x77\xec\xa1\x89\x5f\x34\x57\x39\xe6\x93\xbf\xfb\x3b\x7e\x85\x84\x64\xa0\xbf\xff\x7b\x12\x1b\xee\x31\xd6\xb3\xd8\x10\x84\x9d\x4d\xf9\x96\x85\x1c\xd4\xa6\xbf\xbf\x89\x1a\x3c\xba\xc7\xa9\x0a\x38\xb0\x80\xed\xa0\x49\x9a\xa6\x28\x3f\xc8\xff\x09\x00\x00\xff\xff\xda\x67\x8e\x0e\xda\xbd\x00\x00") func confLocaleLocale_frFrIniBytes() ([]byte, error) { return bindataRead( @@ -4419,12 +4419,12 @@ func confLocaleLocale_frFrIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_fr-FR.ini", size: 45922, mode: os.FileMode(493), modTime: time.Unix(1441457542, 0)} + info := bindataFileInfo{name: "conf/locale/locale_fr-FR.ini", size: 48602, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_itItIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\xbd\xdb\x6e\x1c\x47\x93\x27\x7e\x2f\x40\xef\x50\xf6\x40\x7f\xd9\x00\xd5\x86\xed\xff\x1e\x60\xb8\xe4\xa5\x29\xd9\xd2\x0e\x45\xf2\x13\x25\xcd\xce\x1a\x46\x3b\xbb\x2b\xbb\x3b\x47\xd5\x55\xed\x3a\x90\xa6\x07\x03\xec\x33\xec\x13\xcc\xe5\x2e\x30\x57\x7b\xb7\xd7\x7e\xb1\x8d\x5f\x44\xe4\xa1\x0e\x4d\xc9\xdf\x37\x17\x12\xbb\x32\x23\x4f\x91\x91\x91\x11\x91\x91\x91\xe6\x70\x58\x16\xb6\x5d\xe7\x6f\xab\xac\xb5\xcd\x8d\xfb\xdd\xd5\xd9\x8f\xae\xcb\x4c\xdf\xd5\x4f\xea\xf6\xe0\x3a\xd3\xd5\xd9\xa1\xa9\x2b\xfa\x63\xca\xf2\x71\xdf\xd6\x0f\x1f\x3c\x7c\xb0\xab\xf7\x36\x7f\x41\xff\x3d\x7c\x50\x98\x76\xb7\xaa\x4d\x53\xe4\x57\xa6\xaa\x6c\x59\xd6\x59\xe1\xb2\x35\x95\x68\x6a\xfa\x78\xf8\xc0\xfe\x76\x28\xeb\xc6\xe6\xcf\x5b\xfc\x35\x54\xd8\x96\x87\xfc\xd4\x51\x13\x0f\x1f\xb4\x6e\x5b\x2d\x5d\x95\x9f\xae\xd7\xb6\x70\xf4\x5d\xaf\x9d\x29\x97\x3e\xf9\xbc\xde\xba\x2a\xbb\xe6\x44\xfb\x4d\x76\x65\xda\xb6\xce\xbe\xca\xbe\x6d\xf7\xd4\x99\xa7\xf8\xa2\x9c\xc6\x66\xe5\x63\xb3\x5e\xd7\x7d\xd5\x7d\xfb\x85\x64\x69\xcd\x75\xdf\x51\xbb\x6b\xa7\x9f\xfd\x21\x7f\x6d\xb7\xae\xed\x1a\xd3\x51\x5a\xc3\xbf\x6d\x33\x48\xbc\xb5\xab\xd6\x75\x36\xbf\x76\x34\xe4\x7f\xb0\xab\x87\x0f\x6e\x6c\xd3\xba\xba\xca\xdf\xc9\x5f\x1a\xf3\xc1\x6c\x2d\x0d\x97\xfa\x46\xc3\xe9\xec\xfe\x50\x1a\x2a\xf1\x46\x7f\x3c\x7c\x50\x9a\x6a\xdb\x03\xe6\xdc\xe1\xc7\xc3\x07\xeb\xc6\x52\xc6\xb2\xb2\xb7\xf9\x19\xff\xcc\xe8\xe7\x62\xb1\x78\xf8\xa0\x27\xbc\x2f\x09\xc1\x1b\x57\xda\xa5\xa9\x8a\xe5\x1e\xb8\x7a\x4b\xa9\x99\xa6\x66\x94\x9a\x21\x55\x06\x61\x0b\x42\xcc\xd2\xb4\xd4\x41\x7c\x64\x84\x1f\xd3\x62\x4e\x50\x53\x65\x68\x5e\x2e\x68\x5e\xb2\xbe\xb3\x15\xba\x62\xf7\xc6\x95\xf9\xf3\x27\xf8\x83\x8e\xb7\xed\x6d\xcd\x73\x25\x3f\x80\x84\x65\x77\x77\xb0\xf9\x59\x5d\x6d\x6c\xb3\x47\x67\xcd\xa1\x5b\xef\x4c\x7e\x26\x7f\x51\x77\x63\x0f\x35\x61\xa5\x6e\xee\x08\x57\xfe\xe7\xc3\x07\x75\xb3\x35\x95\xfb\x9d\xf0\x46\xe8\xb9\x94\x8f\xdf\xcd\xef\x82\xa4\xbd\x6b\x9a\xba\xc9\x5f\xf1\x9f\x87\x0f\x68\xc0\x4b\x54\x93\x5f\xf4\xf5\x4d\x9d\xa5\xd5\x20\x6b\xef\xb6\x0d\x90\x88\x5c\x93\xbd\xc2\x97\xd6\x83\xdc\x4d\xdd\xbc\xd7\x82\x3f\xd0\xcf\x49\x69\xea\x88\x96\xac\xc7\xbd\x30\x15\x4d\x04\x03\xfc\x68\xdb\xce\x11\x31\x64\x84\xd3\x01\x18\xcd\xba\x29\xf6\x84\xd5\x83\x21\x02\x1e\xd0\xb1\xd9\x53\x3a\xd3\x86\xd6\xa7\x74\xb6\x6c\x6d\xd7\xd1\xe4\xb6\xf9\xcb\x3d\x75\xa5\x93\x7a\xb2\x82\xca\x79\x52\xa4\xe9\x9a\x83\x79\xf8\xe0\xae\xee\xc3\x94\xe7\xff\x48\x1f\xd9\x95\x7c\x68\x56\x28\xc6\x79\xd7\xfa\x85\x69\xa0\xa1\xb6\xcb\x8d\xb5\x05\xcd\x71\x47\x8b\x15\xa4\xd8\x97\x25\xe1\xf5\xd7\x9e\x06\xd7\xe6\x57\xf4\x45\xc8\x91\xaf\x87\x0f\x5c\xdb\xd2\xaf\x9c\xaa\x5f\x95\x76\xef\x50\xc5\xda\x54\x6b\x1a\xe3\x69\x55\x11\x28\xcf\xed\x4f\xad\x35\xcd\x7a\xf7\x33\xfa\x8b\x1f\xf9\x6b\xb7\xb6\xcd\xda\x30\x79\x1e\x99\x78\xd0\x5a\xfe\x56\x49\x8c\x5b\xf1\x8d\x80\x7e\xea\x02\xe4\x54\x50\x35\x5c\xbf\xab\x68\xec\x65\x49\x0d\xe8\xaf\xfc\xa5\xfc\xf5\x38\xed\x5c\x57\x5a\x26\x49\xc2\xe0\x63\x97\x66\x66\x07\x5a\x08\xae\xa4\xb5\xe0\xf6\xc4\x81\x6e\x6e\x5c\x8d\x4e\xfd\xda\xd3\x12\x5d\x16\x2b\xe1\x5e\x3f\xd6\xdb\x36\x6b\xdc\x7a\xe7\x6c\x61\xb3\x57\x77\xd7\xbf\x96\x27\xd9\x15\x61\x7c\xdb\xd8\xf6\xfa\x2f\xe7\x59\x9d\xd1\xff\x54\x82\x06\x44\x65\xa4\xb9\xc1\xbc\x3d\x33\x9d\x59\x99\xd6\x4a\x3e\x96\xc3\x1b\x77\x60\x02\x28\x42\xce\x8e\xc0\x89\xe7\xb5\xdd\x68\xf8\x33\x6b\x8a\x2a\x89\x2b\x91\x68\x22\xa9\x85\xb2\xc0\xff\xb8\xbc\x2b\x41\x81\x18\xde\xbe\x26\xbc\xda\xec\xe5\xc5\xc5\xe5\xb3\xef\xc1\x3c\xe9\x5f\xe1\x36\x6e\x6d\x68\x21\x6f\xfe\xf3\x72\x6b\x2b\xdb\x10\x5f\x24\xe2\x05\x42\x68\x88\x7f\x39\xa7\xc1\xb4\x6d\x49\xfc\x82\xb0\xfd\xaa\x2e\x4c\xe9\xba\x3f\xfe\x35\xbb\xbe\x3e\x47\x97\xba\x5d\x7e\x45\x93\x58\x37\xe0\xd7\xed\xaf\x25\xd0\xa5\xed\xfa\x74\xae\xc9\x77\x4c\x11\xf4\x35\x55\x6a\x9b\x66\x49\x9c\xac\xbb\x5b\x6a\x39\xae\xed\x65\x09\x78\x29\x98\x8e\xc8\x17\xcc\x2a\xea\xf4\xa1\xff\xe3\xff\x64\xb6\x25\xec\xd8\xec\xa6\xa7\x31\x2d\x40\x00\xbe\xf3\x33\x78\x27\x04\x7f\x8f\x4a\x78\xdd\x9c\x1e\x0e\x25\x8d\xd8\x2f\x34\xda\x9b\x22\x12\xe7\xf3\xfc\x90\xae\xd7\x8d\xbb\x71\x19\x51\x05\x90\x59\x29\xd6\x4b\x93\x75\xfd\x98\x23\x64\xc4\x4a\x88\xfd\xda\x8c\xa8\xc5\x34\xf5\x27\x42\xe2\xcb\x01\xc6\xb2\xd7\x75\xdd\xf1\x28\x53\x9a\x0f\x70\xbe\xd5\x37\x3d\xad\xcc\xcc\x65\x71\x8d\xf0\xde\xd9\x58\x9a\x4d\x97\xb5\xa6\x21\x3e\x52\xd3\xdf\xf2\xc6\x00\xae\xca\x78\x59\x1a\x1a\x74\x63\xd7\x00\xc7\xfa\xea\x69\x57\x02\x35\x3d\x6f\xed\xb6\xe7\x7d\x93\x36\x33\xcf\xbc\x7d\xae\x6f\xf1\x5c\x73\xa8\x6f\x37\xb4\x2f\xdc\x00\xcf\xc4\x6d\x2c\x76\x45\x93\x4c\x50\xe3\xfb\x9f\x74\xcd\xf2\xea\xc1\x66\x89\xe5\x82\x95\x50\xd3\x9e\x50\xe5\xcf\x6a\x70\xb8\xda\x7f\xfb\xa6\xfe\x82\xbe\xd6\x44\x98\x4a\x86\xc4\x0e\xaf\xaf\x5f\x64\xeb\x12\x38\x7c\xfb\xfa\xbc\x65\xf2\xdb\x2d\x0f\x84\xce\x1c\x39\x57\xf4\x23\x26\x05\x62\xa3\xdf\x59\xd5\xef\x57\x44\x6b\xb7\x3b\x5a\xa2\xd9\x1d\x33\x35\x2a\x00\x81\x03\x8b\xbb\xcd\xfa\x96\x18\xdc\x09\xb1\x65\x1a\x51\x46\x18\x64\xea\xcb\x3a\xac\xbf\xd6\x10\x53\x61\xf0\x0d\x6d\x9b\x7d\x83\x25\xbc\xeb\xba\x83\xb4\x8b\xda\x4d\xf6\xe2\xcd\x9b\xab\x24\x35\x6d\xda\x30\x0f\x6f\xd7\x75\xd9\xd5\xca\x9c\x13\x42\x5a\x08\x25\xf5\x4d\x99\xd3\x88\x66\x68\x8c\x72\x46\xf8\x70\xd5\xa6\xec\x69\x13\xb1\x59\xdb\x6f\x4b\x07\x4c\x78\x16\x05\xd4\x98\xed\x96\x24\x28\x42\x33\x77\xea\x0b\xfc\x77\x4d\x98\x2f\x0c\xcd\xbd\x29\xd7\x3b\xe2\x67\xa6\xe1\xdd\x1f\xd4\xc9\x0b\x21\xb3\x25\x71\x78\x92\xb0\xa8\x69\x5e\x2e\xf5\x01\xdb\xe9\xfc\x7a\xf9\xc1\x60\x28\x44\x4e\x37\x7e\x6b\x9f\x83\xf2\xbb\x7d\xbb\x27\x94\x04\xb6\x95\x5d\xbf\x02\x9e\x38\x71\xd3\xd4\xfb\xfc\x99\x49\xbe\xfc\x38\x5f\x51\x49\xf4\xd7\x55\x44\xa6\xb4\x6a\xea\x93\xec\xf5\x0f\x67\xd9\x7f\xf8\xfa\xab\xaf\x16\xd9\x55\xb2\xbe\xdb\x9a\x48\xa2\xaf\x22\x60\xc6\xfd\x21\x5e\x4b\xff\xd1\x22\xdb\x43\x72\xfc\x14\x8b\xf7\xd3\xec\x5b\xce\xfa\x2f\xb6\xa5\x99\x75\xf5\x62\x5d\xef\x9f\x2e\xb0\x35\xd3\x9e\xd7\x28\xf9\x73\x97\x99\x66\x5f\xb9\x4e\xc9\x5f\x01\x26\x0c\x76\x04\xe6\xc5\xb8\x25\x2d\x9e\x8d\x6b\xf6\xf9\xe9\x8a\x38\x2b\x61\xd6\x8b\x34\x20\x02\x2f\xe2\x05\xb1\x80\x50\x57\xd1\x3a\xdd\xdc\x05\x70\xec\xa9\x44\xeb\x34\x49\x98\xc0\xe7\x8a\x43\xa6\xd2\x25\x4b\xc7\x6b\x3b\xcb\xc3\xa8\x33\xd7\x42\xcb\xc4\xa7\xca\xae\x71\xfc\x49\xdb\x33\xcd\xe5\x66\x53\xba\xca\x0a\x93\xf6\xed\x44\x66\x7d\x29\xd9\x43\x38\x22\xe2\x03\x09\xaa\xcf\x40\xfb\x52\x80\x10\x73\xf6\xec\x82\xe4\x40\xf4\x8d\xf8\xc8\x3e\x54\x40\x52\x44\x01\x2e\x74\x63\x4e\x88\xd7\x11\x42\x20\xdb\x34\xae\x25\x2e\x60\x23\x07\x42\x6f\x90\x55\xaf\x4d\xb9\x07\xce\xb0\xfa\x65\x69\x2d\x49\xce\x22\xf6\x64\x1a\x69\x8f\x4a\xff\xa8\x09\x32\x08\x6c\xe1\x63\xd0\xb4\x83\x69\x01\xc8\xa9\xeb\x9e\x56\xc9\x9e\x88\xa3\x6f\x88\x2d\x9d\x40\x67\xc8\x24\xbb\xcd\xc0\x7b\x7a\xd2\x01\x4c\x41\x62\xeb\xea\x2e\xc3\xc4\xb7\xc4\x9e\x09\x83\x1b\xd3\x97\x5d\xd2\xab\x26\x08\xe4\x24\x58\x26\x98\x18\xcc\x62\xf6\xca\x54\xb4\xaa\xec\x7c\xb1\x29\x1a\x69\xc5\x35\x83\xf2\x7b\x29\x4f\xed\x63\x29\x33\x6b\x75\x27\x42\xd8\x48\x88\xb2\x1f\x31\x50\x87\xd5\xda\xd6\x84\x4e\xc8\xf2\xc2\x77\x21\xe5\x2d\x54\x1c\x21\x31\x5a\x95\x96\xe5\x8d\x23\x31\xdf\x4f\xf6\x6b\x16\x4b\x84\xed\x67\xa7\xca\xab\xc1\x31\xde\x91\xac\xd2\xf0\x7c\xb1\x22\x61\xe7\xeb\xd1\x51\x5c\xfb\x3e\x49\x27\x69\x2a\xb7\x5b\x6c\x2a\xbe\x4f\x37\xa1\xb2\x03\x57\x76\x42\xdb\xd2\x8d\x6b\x59\x7d\xe3\xae\x77\x42\x0a\x0a\xc7\x43\x0c\xc0\xcc\x23\xb5\x67\x76\x88\xa2\x85\x97\x8c\x55\x26\x15\x79\xeb\x82\x36\x29\xda\x81\x44\x16\xa1\xa5\x4e\x32\x8c\x22\x85\xf8\x81\xe2\x25\xe3\x72\x20\x50\x12\xdd\x68\x77\x2a\x50\xfd\x09\xa1\x9c\xb6\xb8\x7d\x5f\xd1\x56\x18\xf6\xb9\xec\xe5\xb3\xfc\xcb\xac\x26\xea\x6d\x1a\xa2\x69\x16\xa0\xb9\x33\xc4\x86\x06\x73\x60\x59\x2f\x25\xc6\x42\xac\xd2\xd3\xb1\x74\x6f\x66\x59\x9e\x6a\x3f\x4e\x07\x35\xf8\x02\x53\x45\xc9\x6b\x00\x13\x61\x4e\xb9\x4a\xcc\x0a\x6c\x25\xc2\x48\xe1\xa1\xae\xa5\x72\xec\x72\x5b\x43\x03\x50\xa1\x56\xb7\x5f\x68\x8d\x6d\xb7\xdc\xba\x6e\xb9\x01\x93\x2b\xf2\x1f\x28\x17\x1a\x27\xad\x75\x64\x31\x57\x21\x4c\xd1\x9a\xa2\x89\x77\xdd\x37\xd9\xa3\x1b\x2f\xc8\x7d\x0d\xc6\xb5\xa4\x55\xe5\x4a\x50\xbd\x6c\x4d\x26\x53\x35\xd5\xb2\x24\xd6\xf6\x87\x03\xef\x7f\x2a\x9e\x11\x59\xd3\x74\xd1\xdc\x32\x1d\xb6\x6b\x43\xe2\x32\x2b\xce\x49\xb9\x15\xa9\xb3\x0d\x71\xbe\x7e\x43\x5c\xd0\xf1\xc2\x30\xd9\x23\x5a\xc4\x17\x97\x17\x03\xc0\x6d\xbd\xea\x5d\x59\x2c\x30\xc6\x1b\xe2\x44\x05\x24\x71\xa5\x90\xfc\x1c\x33\x4c\x18\xdb\xf6\x7e\x99\x0d\xc4\x45\x74\xee\x8f\xff\x45\x20\x4d\x43\x05\x8c\x8c\xcb\x57\x33\x23\x8a\xcd\x89\x32\x0a\x5e\x4b\xe1\x20\x24\x01\x2b\x44\x1c\xd0\x60\x88\x0e\x91\xe4\x5b\x0b\x94\xc6\xcd\xd2\x8f\x6f\x32\x1a\x58\xf6\xe4\x29\xfd\x4f\x58\x25\xb1\x43\xf6\x8e\xed\xcc\x6c\x88\xfc\x26\x1b\xbb\x08\x95\xc3\xe1\x0d\x47\x30\x58\x2d\x43\x82\xf4\x0b\xe3\x94\x17\x06\x7a\xc6\x45\x42\x05\x42\x2d\x6d\xcf\xc4\x9f\x7f\x6f\xab\x1b\x5b\x11\xb9\x7f\x92\x5d\x3b\x43\xba\xcf\xc6\x92\x70\x42\x02\x22\x6d\x01\x5d\x9f\x99\xd5\x8a\x66\x8a\xe4\x10\x08\x36\xa0\xa8\x93\x6c\xd5\x63\x59\x92\x64\xd0\x74\x0e\xab\x43\x84\xef\x9f\x60\xaa\x21\xd5\xab\x17\x79\xb9\x2e\x89\x01\x08\xe1\x8b\xfe\x42\xfb\xf5\xd8\x38\xe0\xa1\x22\x79\xb7\xb7\x8e\xd0\xba\x0c\xa6\x1e\x60\xab\xb3\xbf\x75\xf9\x99\xd9\xa3\x1f\xcf\x7c\x06\xb6\x5c\x64\xd0\x06\x7b\xc7\xb3\x49\x94\x9f\xed\x9d\x75\x03\x49\x9a\x64\x18\xa2\xdc\xba\x61\x39\x46\xc1\x62\x3e\xea\xa0\x61\x10\xf7\xe2\x5a\x48\x7c\x6f\xf3\x73\x8b\x5a\xb2\xcb\x91\xd6\x4e\xd9\x62\x65\x08\xcd\x78\x6b\x03\xf3\x4e\xb6\x52\xbd\xa3\x5f\x3c\xcd\x5e\x1d\x5e\xd0\x04\xb1\x9e\xad\xfd\xab\x44\x24\x0d\xf4\x45\xdc\x9a\x11\xa7\x76\xab\x9f\x55\x09\x1e\xe8\xbf\x94\x4d\xac\x08\x3a\x73\xb4\xec\x2c\x75\x82\xd9\xc2\x03\x4e\x58\xb1\xbd\xe2\xd4\x5b\x03\x82\x98\xb2\xb3\x07\x88\x35\xfb\x76\x9b\xbf\x30\x8e\x56\x37\x31\xbd\xc8\x38\xbf\xcb\xc4\x16\x46\x1b\xa3\xf9\x24\x18\xc4\x3e\xbe\xb0\xd8\xc4\x88\xbf\x4b\xf9\xe1\xd6\x28\xb6\x26\x12\xaf\x73\x21\xaa\xf6\xe0\xcc\x5a\xb6\xbd\xe1\xd6\x48\x8b\x86\xe8\x91\x77\x2d\xbf\x7f\x76\x66\x41\xa4\x18\x99\x08\x68\xc0\xd0\x12\x16\xf3\xdb\x90\x4f\x63\xc1\x02\x57\x93\x2d\x1d\x5d\x07\x93\x9c\x34\xaf\xeb\xca\x8b\x6b\xc3\xde\x40\x1e\x63\xc1\x74\xd0\x2d\x96\x7b\x3a\xc3\x3b\xf0\xde\x42\xc5\x58\xd2\x7c\xd3\x86\x4b\x34\x6b\x60\xed\xa0\xad\x69\x4b\x3c\x61\x46\x7e\xe4\x05\x42\x1c\xb0\x33\x02\x65\x3f\x00\xf5\x5d\x30\x20\x12\x97\xb9\xcd\xbf\x27\x09\x6b\x5b\xb1\x7d\x20\xc5\xfd\xcb\x96\xf5\xd0\x8e\xe7\x6e\x11\x76\x0e\x11\x47\x58\xe2\x6c\xa9\x42\x3f\x03\x6f\x2b\xc3\x24\x62\x54\x70\x16\x94\x0a\x06\xc2\x38\x89\xaf\x38\xfc\x35\xd9\xb7\xab\xa7\x8f\xda\x6f\xbf\x58\x3d\x3d\x01\x23\x56\xa5\x4c\x34\xdc\x35\x31\x56\x30\xa6\xc2\x79\x95\x02\xc6\x57\xde\xe0\x1b\x12\x10\x68\x18\xd9\xa3\x22\xc3\xbc\x60\xc3\xa6\x5d\x85\x48\xa8\x53\xee\x3f\xde\xee\xbd\xf0\x21\x7b\x99\x92\x22\xe9\x96\x5d\x5f\xa7\xa2\xbe\xb2\x0c\xb3\xe6\x25\xcc\xcb\xc9\x93\xff\x29\xcf\x0b\x6f\x64\xfd\x80\xfc\x79\xf0\xa5\xdb\xbb\xee\x28\x11\xd2\x26\x45\xfd\x87\xa4\xc2\x03\xc7\xe6\x67\x9f\x78\xec\xc8\x84\x0b\x45\xd0\xf8\x68\x83\xa3\xa2\x10\x14\x86\x74\x69\xa0\x17\xb0\x98\xf3\x35\xf1\x04\x62\xa1\x0e\x3a\xa3\x69\x97\x7d\xa5\x13\x62\x0b\x21\xc2\x33\x67\x6a\xde\xe0\x76\xc6\x0d\x55\x99\x88\xc9\xa8\x9c\x31\xcb\xf6\x33\x44\x5c\xf7\xb3\x30\x23\x9f\x53\x07\x64\x67\x43\x45\xb4\xb3\xda\x1b\x62\xdc\x54\xa3\x49\x7a\x1f\xe6\xb6\x86\x69\x44\xc1\x6c\x53\x2a\x11\xb0\x3c\x73\x92\x6d\x30\x2d\x6b\xe2\xf4\xb4\x83\x93\x42\xdf\x97\xad\x01\x93\x86\x65\xa3\x25\x09\xa9\x5e\x28\x22\xfd\x08\x08\x72\x6d\x38\x9b\xb5\xd0\x4a\x34\xfc\x58\x23\x2d\xcd\x59\x04\x7a\xed\x91\x25\x09\x61\x19\x9d\x8d\x4a\xee\x70\x9e\xfd\x36\xea\x01\x21\xce\x11\x4d\xac\x23\xed\x83\x70\xd0\x29\xf4\xad\x9b\xed\xda\x67\x8d\xfb\xdc\x77\x4f\xc9\x36\x76\xac\xb1\x2e\xee\x94\x10\x4b\xa3\x71\xba\x4d\x97\xe6\x6b\x0f\xe7\xab\x88\x5b\x94\xdf\x80\xd9\xf8\x38\xa1\x2b\xa8\xe7\x6c\x90\x9c\xac\xb2\xb5\x29\x30\x57\x75\xdc\x90\x3d\x8e\x63\xbb\x5e\x37\x1e\x0d\x29\xf4\x5a\x86\x14\x7b\x1d\xca\x75\x75\xbd\x6c\x77\xb0\x54\x90\x54\x54\xf6\xd5\x76\x67\x61\xf0\x13\x31\xc2\x43\x4d\x2c\x67\x34\x71\x75\xf6\x1f\x69\x55\x37\x20\xe5\xc6\xc9\x3e\xce\x4a\x1f\x6d\x38\x77\xb6\xcd\xaf\xff\xf8\xb7\x87\x0f\xaa\x9a\xf6\x71\xda\x03\x61\xa1\xb9\x83\x05\x90\x79\x02\xc3\x42\xfd\x26\x50\x9c\x22\x5c\x4c\x04\x5d\xec\x63\x31\x35\xdd\xd5\x58\xe5\xa5\x0d\xd1\xcf\xbe\x17\x0c\xae\xa6\x42\xf1\x6b\xcb\x56\x52\x9a\x90\x8a\x1a\x61\xab\x7a\x1c\xff\xf5\xf5\x8b\x37\x2c\x90\x73\x0b\x30\xb4\xdd\xb0\x0d\xe7\xe1\x83\x17\x5d\x77\x68\xdf\xaa\xbd\x85\xad\x23\xa8\xfd\x0e\x3a\xa1\x4f\xd5\xcf\x87\x0f\xde\x58\xb3\x8f\xfd\xc4\xd7\xc3\x07\xa7\xb4\xe9\xc6\x34\x68\x03\x4d\x62\xeb\x67\xc9\x4a\x06\xf1\xdc\x9b\x13\xca\xc7\x9c\x2a\x87\x18\xa2\x5f\x59\x3e\x97\xf8\xe5\x88\xc5\xf2\x17\xe2\x6a\xe5\x61\x67\x58\xda\x09\xb0\xb4\xbf\x59\x98\xa7\x59\x73\x0a\x33\x43\x8b\x60\x43\x3a\xe4\x9e\x7e\x12\x02\xea\x0c\xdb\x1f\x09\x7e\xee\xb3\x27\xcb\xcf\x47\x15\x15\xb4\xd0\xfe\xfa\xca\xe8\xf3\x40\xcb\xcc\xa1\xd2\xd6\xfd\xee\xc7\xf0\x98\xed\x80\xda\xfd\x47\xed\xe2\x31\x4e\x5d\x48\xfc\x8c\x10\xbf\x88\xa9\x90\xe5\xb5\x8a\xcd\x85\x25\x93\x17\x49\xbf\x91\xbe\x7e\x81\x3d\xe4\xb7\x7b\x8b\xed\x61\x9c\xdf\x4f\xcb\x09\x17\x49\x31\x4a\x8b\x6a\x68\x15\x92\x55\xae\x4b\x8b\x8a\xc0\xa8\x36\x2d\x80\xa9\x4f\x60\xaa\xf7\xb4\xcf\x56\x0a\xf7\x1c\xff\x93\xd6\x4a\xdd\xa9\x89\xd2\x68\xd6\xbf\x09\xa7\x54\xb4\x57\xb1\x50\xbf\xee\x60\xa2\xd6\x23\x2b\x65\xd5\x0d\x11\xe6\x81\x84\x49\xec\x6b\x61\x4d\x46\x2d\x81\x84\xca\xa2\xb7\xc3\x75\x18\x0b\x51\x5b\x8b\xf4\x58\x6d\xb9\xb2\x96\x14\x4d\xf3\xde\x56\x68\xa9\x8a\x4b\x0a\x23\x10\x39\x4c\x2d\xfa\xca\xa6\x49\x97\x39\x56\x70\x68\x5b\x9e\xaf\x80\xc4\x92\xfb\xca\x97\x8f\x87\x07\x6e\x49\x25\xb1\x8e\x8e\x56\xcd\xbd\x9d\xc0\xb2\x9a\x6f\x5e\x66\x96\x8b\x11\x0a\x8a\xfc\xfc\xb1\x1b\x31\x86\xf9\x72\xae\x2c\x69\x23\x2e\x97\xa1\xe9\x69\x7b\x20\x2b\x47\x74\x95\xd0\x7e\xe0\xbe\x6e\x91\xa0\x3c\x4c\x5a\x9c\xe4\x84\x95\x61\x51\xf8\xb9\x53\x80\x8e\x37\x7b\x64\xd2\x07\x8a\x25\x7a\x25\xf7\x65\x20\x28\x10\x49\xaf\x49\x8d\x23\xad\x96\xd5\xaa\xe4\xe8\x60\xa8\x6d\x82\xc3\xd1\x1e\xd1\x3a\xe3\xf5\xd6\x7a\xae\x15\x22\x58\x68\xa1\x7f\xa6\x19\x31\x8f\x40\x18\x73\xf5\xc7\x37\x14\xf6\xc3\x77\x2a\x08\x42\x66\xd8\xf1\x26\x94\x62\x84\x6b\x33\x69\x6d\xc6\x1f\x38\x63\x11\xd8\xdf\x48\xf0\x8b\x47\x0a\xa1\x75\x4c\x85\x6d\x21\xab\x2f\x70\x92\xdd\x76\x50\xc1\x64\x70\x11\x1a\xcd\xd1\x78\x88\x65\xb2\xc1\x71\x4f\x02\x07\xd8\x84\xe8\xda\x65\x07\x56\x01\x91\xbc\xa9\xd5\x0e\x84\xc1\x82\x22\x16\xd9\x99\xcb\x52\xae\x05\x19\xa2\x84\xb4\x9a\xa2\x82\x17\x9e\x1f\x2d\x8e\x14\xde\xdb\xbb\xe9\xa6\xce\x76\x0e\x4e\xa4\x06\xb6\x8d\x29\x58\x6e\xbb\x89\x38\x81\x4e\x11\x36\x9f\x6f\x58\x09\x24\x99\x0c\xca\x08\x03\xdd\x85\xaa\xf9\x00\x31\x6c\x07\xc7\x6a\x60\xeb\x15\xa1\xb7\xdf\x73\xa3\x82\x02\x23\x64\x6b\x86\x06\x96\xa4\x8a\x9b\x1a\x32\x2d\xf8\x3d\xac\x55\xb4\x7f\x79\x1b\xc3\xa9\xd8\xf2\xf4\xc0\x81\x9b\x6f\x5c\x4f\xfc\xcd\x5b\x45\x88\xd5\xd3\xc2\x2a\x81\x7a\x39\x39\x7f\x29\x22\xb5\x37\x24\xc0\xf8\xc7\x27\x9e\x06\xc4\x6f\x3c\x6b\x27\x8c\x46\xea\x3d\xc9\x0a\x9a\x99\xce\xf2\x01\x2a\x34\x05\x9c\xfe\x96\xa6\x29\x75\x87\x69\x49\x12\x72\x4d\x25\x02\x8c\xce\xc0\x1f\xff\xba\xf0\x4d\x43\x6c\xc6\xd1\xf9\xa8\x65\xc8\x82\xda\xe6\x50\x24\xd4\x0e\x3c\x1e\x9e\xb9\x9d\xb0\xba\xa6\xce\x1a\x8c\x26\xea\x8b\x72\xb8\xd1\x10\xd5\x96\x35\x3a\xb3\x23\x8e\xae\xed\x0d\xba\x39\x5a\xa9\x61\xac\x71\x94\x26\x1d\x65\x19\x5b\x4e\x51\xcb\xe7\x0f\xda\xae\x19\xce\x49\x1c\xa7\x83\x41\x49\x2c\x92\x01\xcb\xb2\x14\x4e\xc4\x0a\x6a\x6e\xb0\x45\xc9\x4a\x20\x6e\x48\x90\x38\x6c\x1a\x56\x87\x7c\xea\xfd\x8d\xf4\x80\x28\x1d\x7a\xe7\xaa\x81\x5d\x3f\x59\x91\x84\xeb\x06\xf4\xf5\x99\xe4\x7c\xce\xa7\xd0\x70\x5d\xa8\x12\x4a\x09\x0b\x94\xa4\x3d\x0c\x00\x96\x88\x9d\xa9\xb6\x76\xa9\xe6\x7c\xb5\xcc\xa8\x16\xa6\x16\xfa\xb6\xcf\xbc\x11\x1f\x87\x30\xa1\x8c\x58\xed\xef\x2d\x8a\x13\x2b\x62\x12\x03\x47\x86\x7f\xaa\x49\xd8\xa8\x2b\x70\x3b\xde\xc4\xc5\x62\x96\x38\x0d\x38\x3b\x34\x9b\xb0\xba\xe8\xba\x3b\xd1\x11\xe5\x04\xa3\x5f\xad\x4a\x96\x5b\x37\x70\x17\xba\xb5\x0d\x89\xb7\x76\xdb\x1b\x76\xda\xa1\x96\x89\xf1\xe5\xef\xea\x8e\xfd\x6a\x04\x04\x96\x35\x80\xb8\x8e\x3d\x1a\x20\xec\x2e\x78\xbb\x80\xd4\xde\xdc\xf0\x5e\xe5\xb7\x90\xec\xf1\xa3\xf6\x31\x7a\x47\xbb\x3a\xe5\xc9\x16\x15\x4b\x1c\x78\xfb\xa9\x44\x0d\xe2\xe6\x0b\x88\xea\xa4\x10\xf7\x5d\x47\x3c\x9b\x29\x2c\xdd\xea\xb9\xba\x60\xc3\xac\xa0\xd2\xba\x4e\xe6\xf3\x27\xef\xb7\x41\x73\xe1\xbd\x3b\xc4\xb1\xa3\x9e\x75\x12\x50\xe6\xd3\xe6\x67\xe0\x30\x4e\x04\x64\x31\xde\xe4\xde\x78\x2d\x9e\x4f\x8e\x4f\x23\x81\x25\x58\x12\xda\x3c\x39\xa8\x74\xbc\x8a\xda\x7c\x6c\x19\x2b\xa0\xb8\xda\xfc\x39\xd4\x6d\x52\x43\x83\x4b\x4a\xef\x8a\xfc\xad\x2b\xd0\x5f\xc2\x3c\xd5\xb2\x1c\x75\xd5\x4f\x48\x1d\x06\x21\x36\xff\x97\xf3\x26\x00\xe0\xc1\x97\xc8\xf8\xc8\x09\xf2\x40\xcb\x5e\x63\xb4\x2c\xea\x6d\x85\xbd\xbd\x13\x73\x85\x83\x28\x09\x2c\x9a\x01\x3b\x39\xc9\xc4\x30\x81\x23\x52\x62\xa8\xc4\x20\x6a\xfa\x54\x62\xbf\xb5\xab\xcc\x6e\x36\x84\xda\x9e\xed\x20\xa4\x8d\xe3\xdc\xbb\x15\xdb\xac\x98\x98\x36\xf0\x81\x89\x16\xfd\x33\x31\x70\xd4\x23\x5f\xae\x5b\xf8\x72\xe1\x0c\x8c\x0f\x95\xae\x88\x28\x55\x6d\xe8\x0f\x05\x4c\x78\x1e\x11\xa7\x30\xf5\x12\xf1\x64\x61\xf2\x86\x00\xc1\x44\xab\x28\x39\x28\xe2\xd4\x66\x43\xc3\xd2\x0a\xe8\xe7\x9a\x4d\xf1\x72\x9c\xb1\x08\xcb\x2d\x78\x6a\xbd\xf5\x54\x2a\x4b\x0e\x5d\x1e\x81\x08\xf2\x61\xe9\x5b\x2b\x88\x5f\x97\x1e\x62\x91\xa5\x47\xd3\xb6\xfa\xdd\x62\x0a\xd8\xa7\xa4\xe0\x9d\x71\x0d\xaf\x88\xac\x74\xd5\x7b\x6c\x51\x8d\x15\xcf\x1a\x53\xd5\xa3\x69\x58\x64\xef\x60\x97\x80\xc9\x08\x8b\xab\xb1\xdf\xb1\x05\x8b\x48\xba\x67\xef\x30\xfc\x30\x73\x0e\x44\x56\xf6\xd4\x21\x13\xf1\xe7\x5f\xca\x3e\x0e\x98\xb2\xca\xa8\x98\x38\x5f\x26\x78\x73\x10\xed\x72\x17\xc5\x43\x25\x18\x20\x1b\x96\x9d\x88\x14\xd6\x3b\x30\x62\x7f\xee\x08\x9c\xd5\xd4\x67\xb1\xc1\x4a\xeb\xd7\x6b\x39\xd2\xf3\x46\x58\x0f\xa9\x33\xe9\xfb\xe8\x67\x7a\xc4\xd9\x12\x70\x39\xad\xf4\x1d\x64\x36\xb1\xa4\x2d\x64\xcb\x52\x2d\x7b\xe7\xc9\x51\x8a\xca\x4d\xcc\x06\x1f\xbb\xfd\x9e\x0f\xd6\x16\x50\xd2\x47\x63\x8c\xc7\x36\x17\x44\x14\x90\x7e\xe6\x10\x84\x51\x93\x12\xe2\x68\xe0\x38\xcb\xdb\xf3\x56\xbf\x62\x67\x40\xc5\x45\x09\x7a\x1a\x0c\x27\xd0\xe5\x39\x4e\x08\x66\x47\x94\xf1\x61\x21\xa8\xd4\x46\x2a\xb5\x63\x2a\x0d\x44\x18\x4f\xbc\x64\x47\x88\xbc\xab\x2e\x8b\x19\x83\xa9\xc1\x22\x2d\xd5\x65\x2f\x64\x8b\x5f\xde\xd5\xd4\x3a\x12\x85\xfa\xf3\x98\xef\x2b\x19\x1f\x14\x2d\x26\xbd\x8a\xe3\x15\x5b\x50\x90\x7c\x83\xf1\x54\x97\x8c\x19\x0e\x30\xbb\x24\xbe\x7e\x00\xa9\xe3\x9c\x91\x0d\x85\xc4\xb0\x60\x6a\xf4\xb6\xb8\x50\x15\x23\x83\x15\xa1\x36\x98\x45\x5c\x30\x7e\xaa\x6b\xa1\xe6\x07\xef\x42\x17\x01\x05\x4e\x34\xa9\x7b\xb9\x28\xcb\x25\xd0\x01\xc6\x0c\x94\x11\xe1\xdd\x12\x2c\x8b\xca\x36\xb2\x47\x88\x94\x52\xf4\x8e\xf8\xb7\x54\x11\x52\xd4\x84\xab\x67\x50\x30\xfb\xda\xd0\x8e\xdf\x20\xfc\x91\xa5\x6c\x13\x38\xc7\x2c\x78\x19\xa9\xf5\x97\x48\xa4\xaf\xb6\xc9\x3a\x1a\xab\x80\x52\x62\x04\x3d\xc9\x5a\x0e\x0c\xe1\xd8\x33\xff\x06\xe3\x77\x22\x6d\x79\x27\xe3\x60\x0e\x94\x91\xc2\x23\x96\xb4\x78\xea\xae\x08\x2d\x1f\x30\x82\x33\xfa\x6b\x3d\x71\x76\x33\xe7\xdf\x7e\x14\x23\xbe\x3f\xc6\x48\xdc\x10\xe3\x36\xd0\x57\xd3\x4d\x20\x10\x4e\x10\x00\x02\xe9\xac\x13\x49\x00\xed\x42\x37\x09\x68\x65\x31\xc1\x8a\xdc\xc0\xc4\xa4\x32\x2b\xf3\x1c\x42\x81\x53\x27\x83\x58\x49\x90\xce\xc7\x3b\xee\x22\xbb\xaa\x89\xa2\xfe\xf8\xdf\xe2\x92\x66\x7d\x19\x95\x68\xc0\x24\x58\xf1\x91\x73\x7a\x9c\x45\x75\xde\x7c\x14\xbc\xcd\x4a\xe1\x32\xa9\xf8\x4d\x3d\xd9\xb3\xa7\x15\x58\x4f\xd3\x19\xaf\x28\x76\xbd\xb8\xa5\x88\xfd\xc6\xa8\xe7\x98\x72\xfb\x6f\x5b\xd8\xd7\xb7\x4f\xe1\x54\xd0\x62\x9f\x23\x3a\xfd\xee\xdb\x2f\x34\x95\x0f\x14\xc3\x1c\xd3\xb6\x54\xf0\x18\x7f\x74\xdd\x8b\x7e\xc5\x36\xf2\x6f\x4d\xb6\x6b\xec\x26\xff\xf4\x51\xfb\xe9\x53\x75\x43\xd0\xbe\x45\x4c\x7c\xfb\x85\x79\x4a\xaa\x00\xe0\xe1\x1d\x53\xb2\xb2\x3a\x28\x79\x50\x1f\xd9\x6c\xc3\xce\xb4\xb4\xdb\x71\x19\x76\xd9\xaa\x69\xd1\xb5\xec\xc2\xc7\x14\x67\x22\xc7\xa0\xaa\x17\x71\xd5\xcc\x4c\x97\x4a\x75\x32\xd3\x89\x35\xe5\x8a\x85\xaf\x8c\x12\xd5\xc8\xd6\x91\x92\xd3\x66\x00\xc0\xce\x5e\x2c\x62\x21\x16\x03\xc6\x85\x6e\x5d\xb7\x23\x74\x11\x51\xb3\xfc\x80\xb2\xa6\xa4\xc1\x17\x77\x19\x6b\x11\x5c\x83\x2f\x1d\xfc\x50\x09\x85\x9e\x8a\x90\xa7\x2d\xf3\xe6\xce\x67\xcd\x81\xea\x02\xad\x5f\xd8\x5b\xa6\x24\xb4\xc9\xb2\x6f\xe8\x25\x41\xda\xc2\xd3\x35\x24\xb0\xbb\x4f\x02\x57\x01\x22\x02\x4f\xf1\xe3\xe0\x3c\x88\x5e\xa8\xef\xef\xa9\xbe\x67\x9a\x30\x05\x11\xfa\xe6\x7c\x9a\xc9\x9d\x6b\x43\x1f\x6e\x49\x6b\x63\x0f\x4b\xf8\x3f\xf2\x4f\x78\xdc\x17\x4a\x97\xb6\x85\x3b\x8a\x9c\xe7\x06\x52\x7f\x56\x23\x21\xbb\x25\x72\xcc\x64\x35\xb2\x48\xf3\xdd\x4c\xb3\x7e\xd4\xbe\xb5\x30\x58\x19\xd7\x64\xb8\xc0\x16\x0d\xe8\xd4\xaf\x74\x70\x3d\xb6\x98\xf0\x74\xbd\x15\x3b\x88\x5f\x32\xc8\x24\x71\x20\xe8\x40\xb2\xff\x1b\x39\x95\x61\x5d\x88\xf6\x42\x31\xd1\xf3\x0c\x60\x97\x16\x44\xbc\x01\x06\xd0\x1f\xf6\x95\x14\x9f\x7f\x34\x93\xfd\x27\x92\x83\xee\xe0\x4c\x52\xbf\x27\xc2\x1a\x97\xe0\xd4\xa3\x65\x22\x1b\x12\x95\x23\x30\x21\x08\x4e\x23\xfd\xc3\x9f\x2a\x77\xf1\x86\xc6\x84\x03\xe1\xa8\x8c\xd6\x87\x3a\x53\x79\x4b\x41\xab\x15\x78\x4e\xe4\x16\xd9\xeb\x60\x2d\x8a\x02\xbf\x07\xc7\x72\x13\xb3\x4e\x60\x17\xe0\xc1\x7d\xb5\x22\x3e\xcb\xbe\x5c\x52\x8f\x4f\x0a\x33\x76\x3a\x68\xcf\x26\x06\x87\x6e\xc0\x73\x65\x32\x96\x8c\x9a\x64\xcb\xce\xde\x30\xae\x12\x17\xad\x2b\x95\xc7\xac\xf7\x5f\xd6\x43\x7e\x5f\x12\x49\x99\xdc\x48\xe0\xb2\x3a\x09\xad\xe2\x9f\x7f\x33\xdd\xed\xc0\x05\x7c\x15\x05\x51\xb3\xe9\x60\xa0\x20\xba\x92\x79\xe9\x3c\x85\x50\x96\x38\x07\x65\xa7\x57\x2f\xe1\x5e\x1b\x9a\xd3\xe5\x60\x84\x5b\xc3\x29\x97\xfd\x3b\x4e\x44\xbd\x92\x69\x36\x37\x10\x1c\x0e\x0e\xb6\x89\xc4\x25\x38\x65\xfa\x9e\x4e\x22\x4b\xd0\x9e\x87\x01\x0e\x06\x37\x9b\x29\x08\x27\xb5\x5e\x86\xde\x79\xb4\xf9\x26\x15\x7a\xb8\xe9\x7d\x02\xfa\x09\x36\x50\xde\xea\x0f\x4e\xb7\xde\x6a\xbe\x1e\x2f\x0e\xe3\xa6\x86\xf9\x46\x68\x82\x45\xa3\x28\x09\xdf\xb8\xb6\x17\x79\x99\x84\xe1\xe4\xc8\x33\xb2\x21\x19\x4e\x14\x6e\x92\xb9\x8f\xdc\xc8\x4f\xb4\xce\xbc\x52\x42\xe4\x4d\xb3\xa5\xa6\x0c\xca\x77\x38\x4c\x26\x57\xf3\x41\x76\x55\x6f\xb2\x44\xb5\xbf\x8f\x59\xa5\x63\x0a\x64\x7f\x35\xdb\x6a\x60\x5b\xd2\xf2\x88\x6d\x51\x1b\xd5\xe3\x2e\x13\xb7\x07\x34\x22\x5a\x84\x72\xcd\xd8\x19\x5a\xb3\xa4\x33\x97\x25\x2f\x1f\x6d\xdd\x9f\xf1\x7b\xbb\x42\x38\xdd\xd7\x7c\x3d\xd7\x3f\x7f\x9c\x68\xf0\x96\x61\x59\x2b\x3d\x40\xbe\xab\x30\x49\xfe\x70\xda\x2f\x7c\xda\x8d\xbd\x1c\x70\x79\x91\x5d\x5d\xbe\x79\xfd\xc7\xff\x88\x42\x80\xda\x8a\x8d\xe8\x9c\x1d\xfc\x5a\xbc\x57\xde\xa8\x63\xc1\x37\x4f\x7b\xa8\x2a\xfe\x10\x4a\xdd\x05\x53\x90\x68\x21\x19\x81\x46\x3e\x17\xcd\x9f\xe0\x79\x10\x22\xb5\x5b\x32\x40\x56\xcd\x2b\xd1\xba\x0b\xbb\x71\x95\x23\xb6\x4e\x6b\x94\x0f\xfb\x75\x1e\x0d\x2b\xd5\x0f\x1f\xfc\x04\xa9\xe9\x67\x52\xa3\xd8\xa8\x7e\x95\x58\xbe\x93\x73\xa3\xe9\xf9\x6c\x3c\x52\x52\xd9\x09\x4e\x4f\xc4\x6d\x6b\x3e\x40\xd9\xc3\x4c\x38\xb8\x8d\xc0\xda\xde\xaa\xb1\x37\x0e\x8e\x05\x6b\x31\x4b\xc2\x2e\x2f\xa7\xa6\xe8\x7a\x40\x7b\x5f\x51\x6f\xd7\x2e\xe0\x7c\x01\x1f\x2a\x5e\x69\xd8\xab\xde\xf9\x9f\x7f\xfc\xab\xa6\x23\x39\x5c\x84\xc0\x02\x48\x4f\x4c\x5a\xaa\xf6\x40\x3c\x6e\x4d\x3b\x4e\x9b\x7f\xda\xa3\x57\xc4\xe9\xec\x6f\xdd\xa7\x4f\x49\x4f\x21\x5d\xd4\x52\x43\x04\xf1\x34\xad\x0d\x97\xbc\x7c\x95\x9f\x9d\xb1\xb2\x87\xf5\xc1\xcb\xeb\xc6\x94\x24\xd0\xf1\x72\x32\x9b\x0d\xe9\x8c\xbc\x9c\x50\xa2\xfd\x9c\x0d\x7a\xef\xc5\x7e\x8c\xdb\x61\x66\x80\x34\xce\x63\x7f\x77\xc9\x2b\x8c\xa6\x4d\x86\x71\xc1\x07\x00\xb5\x37\xb5\xa8\x77\x64\x1c\xb9\xba\xfb\x24\x03\x45\x3d\xc9\x69\x9f\x32\x05\x78\x01\x29\xdd\x71\x32\x6e\x03\x86\x9b\x80\x21\x25\xb5\x76\xd0\x70\x16\x5b\xa2\x97\x6d\x05\xfd\x04\x66\x05\xda\xa0\x69\x1d\xd2\x1e\x82\x3b\x84\xf4\xf7\x77\x13\x12\x26\x66\x12\x39\x45\x61\x63\x44\x01\x43\x8f\x82\x43\x1a\x84\x3f\x14\xff\xf1\x9f\xa3\x56\xe1\xff\x83\xe4\xac\x0b\x77\x17\x71\xa8\xbe\x04\xf5\x92\xc6\x4b\x5d\x02\x87\x55\x16\x97\x52\x16\x17\xa7\x39\xe5\xbe\xb2\xe7\x77\xac\x41\x5d\xe2\x78\x3e\xd8\x17\x2e\x9d\x0e\xf5\xf5\x56\xb3\x77\xfe\x9a\x2d\xdd\xdf\xab\xa5\xfb\x40\x64\x22\x4b\xa7\xf6\xf7\x07\xa9\x2b\x1d\x0c\xb7\xf0\x4b\x90\x1f\xc4\xec\xc5\xcb\x2f\xfb\x8c\xd6\x1b\x21\xec\xf3\x23\x56\x60\x7f\xee\x98\xf4\xfb\x51\xfb\xef\x61\x0b\x1e\x1d\x10\x3e\x6a\x8f\x58\x84\x2b\x0b\xd3\x51\xdf\xf1\x95\xba\xe8\x05\x3e\x76\x5b\xd0\xab\x8f\xc3\x7b\x67\xfb\xe4\x06\x64\x0a\x70\x6c\xcd\xf1\xd2\x20\x99\xc2\x0c\x97\x1e\xd6\x5c\xb6\xa2\xb5\xf3\xe9\x53\xc1\x67\x58\x77\xbe\x52\x9e\x26\xbe\x6f\x39\x98\x27\xcd\x5e\xf0\x85\x9f\x25\x09\xba\x0d\xf6\x9b\x67\x3d\x6f\x0f\x59\xf0\x11\x39\x02\x98\x48\xa1\x2a\xeb\xa4\x37\x62\xbe\xf8\xf1\xe5\x1b\x3e\xf0\xa7\x39\xe4\x4b\x09\xfe\x2e\x10\x5c\x7f\x17\xb1\x4a\x7f\x02\xc8\x30\x23\xbf\x60\x4e\xb3\x89\xd7\xce\x49\x72\x2e\x92\x25\xd6\x38\x98\x81\x9a\x0e\xba\xcf\x42\xe9\xe4\x3d\xcd\x0a\x33\x04\x5d\xbe\x91\x25\xf0\x45\x18\xa2\xed\x4d\xe4\x05\x0c\x23\xa2\x0a\x64\x29\x3e\xc9\xab\x13\xc4\xf3\x56\x74\xb8\x5b\xc2\xbe\x4a\xbb\xcf\x01\xb2\x29\xfc\xb7\xde\xd3\x4e\xbd\x44\x8e\x24\x66\x95\x88\xc5\x07\x76\xe3\xe0\x32\x8e\xe8\xeb\xf2\xef\x45\x16\x62\xcb\x2f\x23\x50\xa7\x17\x16\xdf\x55\xf4\x32\x34\x70\x7a\x10\x83\x90\x91\x8b\x46\x4c\x1a\xdf\x65\xef\xd8\xc9\x1f\xaa\xac\x1c\x27\xe5\x9f\x2e\x57\xc4\x5d\xde\x7f\x9a\xa8\xb6\x7c\xd5\x1a\xda\xec\x27\x10\x9b\x6f\xd9\xf7\x81\xb5\x6d\x31\xf3\x92\xd0\xf8\xc7\xff\x7d\xf8\x40\xd2\xf9\x5c\x05\x60\x38\x7a\x21\x31\x16\x9d\x86\xf7\x46\xcd\x97\xb5\x91\x86\xb3\x18\x41\x97\x30\x54\x26\x74\xe5\x7d\x5e\xa5\x29\x52\x1e\xf8\x6b\x0f\x6c\x40\x75\xb7\xf9\x8f\xac\xc0\x37\xe6\xe0\x0a\xe3\x47\x0c\xde\xa2\xcc\x02\x03\xf3\x42\x6e\x93\x3a\x0c\x47\x27\x5b\xe6\x9f\xeb\x7a\x0f\xcf\x78\xe1\x2e\x22\x41\x26\x4b\x01\x2d\x38\xef\xa3\xca\x1e\xf4\x38\xec\x80\x33\x0f\x34\x63\x69\xea\x8a\xbe\x3d\x33\x57\xa2\xe1\x7b\x75\xf0\xd1\x9f\x96\x7e\xf8\x60\x8e\x5d\x91\x3c\xdd\x58\x9b\x9f\x96\x2b\xdb\x50\xea\x1b\xfa\xf8\xdc\x43\xf2\x55\xee\xce\x6c\x5b\x14\x71\x91\xc3\xfd\x7f\xd9\x1b\xb3\xf5\x40\x76\x94\x8b\x33\x41\x2a\xc1\x10\x93\xab\xbb\xb8\xe8\x3b\xb9\xe0\x5b\x9a\x95\xa5\xd4\xe7\x1d\xec\x83\x1d\xdf\x99\x02\x43\xee\x08\xaf\x54\x4f\x63\x68\xcb\x69\x0a\x26\xb7\xfd\xde\x75\x2d\xd1\x22\xfe\x62\x33\x28\xad\x69\xd1\xbe\x23\x3e\x81\xa3\x36\x3e\xd9\x68\xcc\x6d\x7e\x49\xa3\x77\xa2\xf8\x70\x1a\xcd\x0e\x5f\xff\x3d\x23\xb1\xa0\x2e\xeb\x2d\x08\x9c\x33\xd8\xc5\x1a\x25\xde\x89\xb7\xf2\xb0\x18\x8b\x7a\xbc\x28\xae\xfc\x2f\xb6\x2c\x4b\x47\x16\xc3\x0e\xb5\x31\x63\x78\x07\x99\xd7\xef\x4d\xb8\x77\xef\x81\x36\xd0\x06\xcf\x00\x10\xd3\xc0\x67\xeb\x06\xa7\xea\x7c\xcd\xc3\x27\xc3\xd3\x0a\xe6\xfa\x57\xfc\x77\x0b\x09\xcb\x67\x41\xea\xcd\x9f\xb1\x0f\xb0\x4f\x52\xc7\x77\x5a\x10\xd4\xea\x9a\x78\x76\x02\x4e\xd4\xe7\xf3\x82\xa2\x1e\x7c\xca\x71\xb3\x5f\x54\xa2\x78\x0f\x3a\x66\x2d\x74\x9e\xce\xf9\xcf\x20\xa7\x82\x34\x40\xa9\xb4\x22\x33\xce\x1e\xe4\xae\x69\x9a\x9a\xa5\x96\x3e\xc3\x47\x56\x4e\xeb\x08\x73\x4e\x7c\x5c\x7f\x8d\xdb\x88\x20\x17\xd8\x3e\xe7\xa0\xa4\xad\x08\x28\xcd\xed\x67\x61\x49\xbc\xaf\x12\xd0\x4b\xfa\x8c\xb5\xb6\xa3\x6a\xeb\x16\x0e\xb7\x49\xbd\x48\x38\x06\x0e\x6f\x99\x6d\x85\x65\xa5\x3f\x66\xfa\x18\x60\xa4\x8b\x66\x0e\x12\x96\x16\x0f\x46\x43\x9e\xc0\x08\x4b\xf1\xd1\x18\x5e\x22\x31\x2d\xef\x27\x45\x4c\xd4\xba\xbc\xcc\x14\x62\x49\x32\xcf\xda\xa6\xd7\x2a\xd8\x35\x2b\x94\xe0\x4b\xf4\x83\x26\xb5\x66\x6d\x78\x38\xe5\x8c\xd6\xce\xac\xf2\x47\x45\x76\x7a\xc0\x45\x8e\x58\x18\x58\xf3\x79\x67\x3b\xd7\xb7\x31\x8f\x16\x1c\x1c\xeb\xa5\xe2\xe7\x93\xce\xa6\xd9\x24\xdd\x2c\x45\x78\x0b\xcc\x3a\xf4\x95\xa5\x3a\x96\x28\xa7\x85\xe3\xf4\x79\xae\x52\x1f\x05\x49\xdb\xa8\xa3\xa8\x38\xa5\x24\x2d\x98\x4e\xb9\xdd\xa2\x75\x56\x84\x26\x40\x38\x52\x3b\x56\xf9\x84\x5a\xb4\x58\x90\xa9\xe6\x32\x16\xb8\x70\xa3\x8c\xd6\x5f\xe6\x3e\x04\x86\x3b\x07\xdf\x6a\x04\x0e\xda\xdb\x49\x5d\x0e\x1d\xa6\x0d\x3a\xeb\x66\xdb\xd6\x49\x2f\x96\xab\x3b\x2e\xc1\xd3\xce\x6a\xd8\x11\x78\xbe\x72\x50\x57\xb8\x6b\xc7\xf0\x30\x9f\xc3\x18\xc6\x38\x37\xd5\x64\x1c\x2d\xdf\xbf\xe6\xbb\xd7\xd3\x8c\x05\x04\xf2\x16\x53\x7d\x6b\xdb\x79\x08\x50\x2e\x41\x5c\xf2\x9f\x59\x08\x61\x76\x62\x24\x20\x6d\x02\x1f\xe5\x9d\x1a\x0d\x8a\xf9\x56\x69\x6f\xf1\x05\xce\xf1\x5b\x19\xe6\x07\x8a\xed\xeb\xb6\x03\xb3\x85\x49\xfa\x15\x2e\x2c\xeb\xc7\x7d\xad\x78\x78\x69\x66\x5a\x00\x2b\x8a\xb1\x9f\xcb\xaf\xec\xd1\x4f\x5f\xfe\xdc\xe2\xf6\x69\xb4\xfe\xff\xf4\xd5\xcf\x24\x25\x3d\xfa\xe9\xeb\x9f\x5b\x48\x49\xd3\xb2\xcb\x8d\x79\x6f\x27\x15\x70\xb9\x00\x7c\x80\x9a\x5d\xf7\xad\x86\x85\x81\x2a\x83\xc3\xc5\xaa\x4b\xd9\xca\x6f\x9d\xcf\x56\x8b\x0c\xa9\xc2\xa3\xc5\xcf\x96\x09\xf0\xd3\xe1\xca\x2f\x34\x47\x98\x67\xac\xb2\xdf\x2f\x75\xd0\x2d\x18\x83\xff\x1d\x0b\x7b\x8c\x2c\x4d\x97\xff\x12\xbe\x30\x7a\x57\x60\xec\x34\x18\x2f\x2b\xfe\x9d\x7c\x3d\xe5\x81\x01\x13\xbf\xc4\x76\xea\x70\x58\xf0\x66\x07\x9b\x87\x83\xce\x13\x8e\x2e\xee\x6c\xb7\x18\x71\x2a\x09\x0a\xc2\xdd\x1d\xe5\x68\x27\x52\x08\xb9\x3a\x2c\xe9\x01\xba\xb1\x8c\x11\x01\x7b\xcd\x1f\xe3\xbc\x61\x55\x02\x33\x5b\x97\xb2\x5e\x4f\x2d\x67\xe3\x6c\x41\x31\xa3\x48\x76\xa7\x3f\x89\x1f\xe9\x8f\x56\xe1\x3f\xfe\x6c\x25\x22\x68\x90\x7c\xba\xd1\x6a\x36\x70\x97\x59\xb3\xd1\x98\xf0\xcd\x50\x19\x54\x94\x8c\x4f\x73\x09\xf6\xcf\xb6\x80\xf3\x51\x8e\x8c\x80\x3f\x21\x95\x3d\x34\x73\x75\x93\xf7\xc4\xc8\x96\xa9\x4b\xfc\x1f\xd2\xfc\x0d\x28\x92\xfd\x49\x53\xb2\x96\x23\x10\xd1\x8a\xe6\x33\x17\x24\x0c\x21\x5d\xb5\xf4\x1e\xf7\xac\x1c\x90\x4c\x0f\x87\x31\x19\x0c\x51\x0e\xc4\x3a\xb5\x7a\x9e\xea\xd1\x15\xdb\xca\x4d\x72\xa3\x6a\x70\x44\xc7\xcd\xa1\x82\xda\xcf\xef\x60\xb9\x92\x14\xda\xe5\xcf\x0b\x97\x4c\xab\xb8\xaa\x9c\xf1\x9f\xd8\x39\x6a\x24\xbf\xe6\x43\x30\x4d\x91\x9d\xb1\x8b\x57\x16\xa6\x1b\xbe\x80\xac\x49\x00\x6e\x88\x7a\x70\x2f\xf0\x1e\x20\x18\x22\x69\x31\xda\x28\x95\x0f\x00\x22\x59\xf3\x9a\x0d\x27\x8f\x66\xb8\xe3\x0b\x30\x8f\x2a\x5e\xee\x18\xe4\x0d\x9d\xbc\x46\x99\xa3\x7b\x21\xd9\x54\x2e\x48\x2a\x81\x21\xdc\xdb\x74\x3f\x04\x28\xb3\xa9\xd0\x7c\xf9\x2f\x4a\x10\xde\x13\x98\x5d\x6a\x40\xae\xae\xe2\x50\x10\xe2\x84\x82\xb9\x1b\x6d\xb3\xe2\xdf\x51\xf2\xc1\xd0\xbb\x89\xa5\x74\xbe\x7d\x6f\xfc\x0e\x1d\x0d\x16\xd8\xa1\xa7\xc7\x27\xe2\xe5\x46\x6a\x13\x96\xd6\x81\xaa\x5c\x8a\x0b\x09\xab\x1d\xf8\xce\xc4\xca\xd8\x1e\x01\x93\x91\x7a\xd8\xee\x16\xc6\x54\xd1\xdb\x24\x26\x17\xed\x0a\x19\x5c\x49\xd8\xb0\xcf\x2a\x19\x2f\x05\x2d\xbd\x18\xd7\x8a\xfb\xcf\xb9\x44\x01\x1a\x35\x27\x7f\x73\xfd\xeb\xb3\x75\xb3\x53\xd5\xf3\x07\xfe\xd2\x1e\x78\x10\xe2\xcb\x8d\x6d\xfb\x92\xb8\xff\x05\x74\x60\xfe\x49\x9d\xe8\xab\x62\x11\x61\x68\xc5\x91\x38\xc1\xf6\x08\x69\x28\xe1\xe1\x9c\xa7\x4b\x8a\x87\xb9\xb2\x6b\xd3\x13\x4b\xe6\xdb\xda\x18\xe6\x8e\x96\x66\x32\x70\x50\xfe\x8d\xad\x42\xf5\x70\x11\x4e\x83\x50\xe5\xbf\x84\xda\xfd\x89\xf4\x08\x47\x2b\xdb\xdd\xe2\x74\xa2\xa3\xfa\x04\xad\x62\xbb\x68\xbf\x49\x37\x65\xe2\x61\x5f\x70\x0b\x5f\x60\x67\x2e\x94\x9f\xfd\x1d\x7f\x28\x57\x53\x2c\x0e\x24\xf9\x54\x41\xf6\x10\xbc\xb2\x65\x32\x71\xb0\x82\x63\x92\x6c\x6f\xa9\x49\xde\xcc\x0b\x65\xa6\xad\xf0\xd6\x6f\x71\x83\xcc\x33\x4f\xfe\x4d\x74\x4b\x05\x7c\xfa\xd7\x21\xdd\x57\xcf\x55\xe9\x06\x2d\xad\x48\xca\xdf\x56\x3b\x95\xfe\xff\x7f\x0e\x94\x49\x82\xff\x32\xe5\x99\x38\xe8\x08\x1f\x43\xa0\x91\x62\x1d\xb3\xd8\x56\x0b\x3a\xa2\x69\x14\x1a\x2d\x7c\xb6\xee\xa7\x44\x22\xdc\xf5\xfc\x8a\xcd\x03\x99\x24\xeb\x01\x57\x3a\x85\x62\x8c\xc2\xd2\x56\x44\xf2\x79\x0f\x33\xf3\x21\x56\x48\xef\x6e\x92\x76\x40\x2c\x9a\xf1\x66\x52\x69\x38\xb6\x52\xf4\x8d\x0e\xdb\xa5\x06\x04\x12\xa0\x25\xc1\x27\x7b\xd0\xdd\xc3\x09\xc1\x7c\x55\x02\xc9\xf7\x7c\x24\x02\x10\xb3\x10\x14\x82\x05\xcb\xb3\xa7\x41\xc7\x69\xd7\x58\xb2\x11\x9c\xbb\x21\x13\xfa\x8f\x75\xcf\x86\x4c\x3f\x68\x8e\x8f\x38\x1a\x79\x56\xcf\x60\x2a\xad\x95\x0d\xcb\xf3\x15\x3f\xee\xee\xaf\xda\x2f\xca\x8e\x97\x96\x11\xdf\xa7\x4d\xe9\xd6\x5d\x1b\x96\x93\xb7\x53\x1c\x6f\xd1\x07\x46\x92\xc9\x45\x7d\x6a\x48\x83\x77\x28\x10\x54\x97\xc0\x12\xfb\xc7\x64\xae\x1b\x4e\xe5\x70\x91\xf3\xb4\x8e\x16\x5b\x6a\x7c\x12\x83\x88\xbd\x4d\x6d\x0d\x49\x6e\xaa\xe8\x8a\xb0\x9b\x64\x0e\x55\x5d\x15\x78\xc7\xf9\x85\xb7\x23\xe0\x56\x47\xda\x6e\xbd\xa4\xc9\x5e\xb2\xee\x41\x2c\x11\x13\x5f\x98\x6e\xda\x7a\x3e\xdf\xac\x97\x58\x87\x23\xa1\x2d\x67\x05\x36\x88\x3b\xa0\xc2\x66\x62\x3e\x30\xa6\xd7\x15\xf4\x0c\x55\x77\xad\x61\xe5\x03\x26\x35\x8f\x14\x11\x40\xf8\xe6\xe4\x20\x3d\x39\x56\x3a\xc8\x72\x4f\x33\xfd\x60\x9f\xd1\x48\x9f\xa1\xf2\xcf\x7c\x00\xa9\xcf\x47\xc3\xb3\xf0\xed\xc7\xff\x83\xf4\x10\xc2\x43\x2b\x5a\xca\x8a\xe0\xfa\xf8\x5c\x58\xbe\xc1\xcf\x15\xf4\x24\xdb\xf7\xcc\xc6\xb3\xc7\x77\x54\xdb\x93\xfd\xfe\x49\x51\x3c\x9e\x1b\x6f\xd8\xaa\xc3\x80\x47\x4e\x44\xaa\x1d\x8f\x97\x7a\x52\x51\x90\xea\x8e\x20\x0d\xf9\xc9\xf4\xbc\xc5\xce\x05\x99\xab\x51\x23\x34\xe3\x82\xb7\xe5\x64\xca\xd8\xc1\xa0\x3e\x90\x8c\x72\xcb\x67\xe1\x2b\x59\x4f\xea\x78\x95\x0e\x63\x28\x41\x26\x39\xa9\x78\x75\x77\x7f\xdf\x04\x05\x2a\x6a\x80\xf5\xec\x8f\x60\x03\x92\xe9\x7d\xb8\x08\xa2\x5a\x44\x67\xf4\x53\x98\x81\x9b\x7a\x29\xc4\x96\x53\xcf\x04\xec\x4e\x09\x27\x64\x07\xca\xc4\x59\x41\xe9\xf9\x1e\xdf\x84\xb9\xb6\xa7\x53\xff\x21\x6f\xaa\xa3\x01\x33\x7d\xf2\x42\x28\xbb\xa5\xb5\x3b\xce\x49\x42\x8a\xf0\xe6\xa8\x5f\x7a\x04\x11\xc0\x76\x75\xfd\xbe\xcd\xff\xc1\xae\xf8\x47\x92\xb1\x75\x9d\xe4\x21\x82\xdf\x8b\x51\x26\x89\x42\x6e\x7d\x2c\xe2\xa7\x44\x30\x4c\xa0\x0b\xcc\x73\xb3\xfc\x1d\xc6\xb2\xff\x8e\x03\x8d\x2b\xdc\xe8\x25\x9d\xa1\x35\x09\x54\xbc\x97\xf0\xd6\x87\xdb\x49\x72\xd5\xb1\x3b\x34\x19\x3c\xd5\x8f\x20\x46\x5d\xa3\x71\x9a\x21\x67\x99\xe2\x87\x21\x07\x70\x72\x92\x9e\x9e\x9d\xef\xea\x5b\xbe\x10\xd0\xea\x1c\x63\x3a\xe1\x7d\x14\x0f\x51\x16\x49\xe5\x88\x1d\x85\x1b\x54\x30\xfd\xf1\x4d\x2a\xbe\xed\x1d\x6e\x61\xcd\x40\xea\xf1\x5f\x02\xae\xa1\x0f\x93\x53\x1a\x13\xaf\xfe\x85\xeb\x9c\x66\x7a\x77\x4c\x43\xe5\xfd\xca\x3e\xe1\x08\xaf\x80\x83\x47\xe8\x10\xc5\x28\xe6\x48\xda\x63\x0e\x09\xcb\xb7\x31\x21\x70\xb4\x72\x2a\x2c\x17\xe8\xe4\xb4\x68\x70\xef\x72\x67\x42\x18\x95\xa4\x7f\x1c\x89\x31\x1c\xf8\xe1\xdc\x77\x81\x99\xf4\xbe\xc7\x6d\xb8\x61\x20\x63\x60\x80\x94\x0a\x86\x17\x70\x66\x0e\xb5\x46\xa0\x3e\x10\xb3\xc9\x6e\x10\xe2\x8f\x5d\xe1\x76\x7c\xef\x43\x2e\xb3\xc9\xcd\x8f\xd4\xdd\xb6\xf2\x67\x94\x1d\x48\x03\x22\x77\x55\xd0\x98\x9a\x51\x3c\x0c\x0e\x29\xc1\x41\x31\x42\x8c\x8f\xc9\x7c\xc1\xc7\x9c\x96\xe2\xf2\xcb\xfc\x49\x06\x91\x84\x89\x45\x2c\x33\xe2\x58\xe4\x36\x88\x58\x9c\x31\x52\x59\xb4\xe7\xc6\x6e\x5c\x41\xf3\xc2\x57\x51\xee\xad\xf6\xab\xb4\x5a\x3e\x24\x6f\x6e\x8e\x57\x5d\x65\x69\x5c\x61\xd6\x41\x08\x86\x58\xcf\x63\xf8\xbe\x57\xea\x14\x62\xa5\x44\x3b\xdb\x30\x78\x99\x2a\xf4\x2a\xed\xf0\x25\xda\x2c\x5c\x20\x1b\xf0\x3b\x61\x66\x70\x27\x92\x0d\x3c\xc8\x5d\xdf\x4c\x67\x29\xc5\x14\x2f\xaf\x28\xa4\x79\x57\x9a\xb3\xd3\x8b\x8b\xcb\x37\xd1\x7b\x09\x9e\x7e\xb8\x4f\x3e\x43\x1f\x03\x0c\x8d\xaa\x63\x64\x05\x8f\xa9\xf2\x4e\xd9\x26\x0f\x1d\x91\x43\xee\x44\x75\xf3\xf2\x6f\x4a\x19\xae\x5a\x97\x7d\x81\x5c\xb0\x33\x88\xcc\x27\xca\xc5\x4f\x82\x89\x90\xf1\x9a\xfa\xa1\x45\x16\x5a\x0f\xb1\x3a\xea\x2a\x9f\x94\x63\xf8\x2f\x27\x2d\x67\x2c\xfd\xc2\x49\xf9\x24\xfa\xe7\x04\xd7\x04\x08\xb1\x7b\xa6\x52\x7b\x40\x84\x16\x04\x89\xdb\xc8\x4e\x2d\x7b\xc6\x87\x1a\xfd\xea\x78\xa3\xe2\x54\x34\xd7\xaa\xf7\x81\x23\x11\x06\x98\x63\x9f\x69\x04\xc8\xfa\x50\x63\x5f\x4b\x63\xe9\x8e\xf7\xde\xda\x43\xd2\xc2\xb0\xf3\x27\xd9\x41\x28\x4d\xf9\x6d\xf4\x9e\x9a\x99\x22\x56\xa0\xc4\x9b\x9b\xc8\xae\xed\x16\xc7\x79\x7f\x7a\xad\xa7\x96\x7d\x6f\xe2\xe3\xf5\xa1\x1b\x3d\xd3\x05\x22\xf6\xbd\x70\x62\x99\xf8\x9f\x05\x58\x98\x37\x96\x73\xbc\x7f\xae\x3e\x71\x0b\x2d\x82\x2f\xdb\xe4\x72\x6e\xb8\x86\x3b\xbe\x8e\x33\xd8\xc4\x53\x9f\xbe\xe8\xcb\x67\x07\xbe\x7c\x01\x1c\xde\xd7\x29\xd1\x46\xdf\x7b\x61\xf2\x69\xde\x7d\xe5\xd2\x8b\x1d\x33\x25\xa7\x37\x3a\xd2\x3e\x0b\x79\x1d\xad\xef\x48\x4d\x88\x66\x3d\x1a\x3c\xdf\xcb\x77\x7c\xdd\x7a\x29\xd1\xac\xe2\x6d\x7b\x71\xb0\xd6\x0b\xf5\x7c\xc0\x38\xda\x24\xbd\xdf\x74\x1a\xce\x24\xb9\x7f\x82\x28\x2c\x69\x47\x16\x23\x6c\xdc\x8a\x40\x14\x11\xa8\x12\xd2\x58\x72\xd2\x4b\x4c\x3e\xbb\x15\xea\x93\x3b\x1f\x2d\xcd\x11\x3c\x5c\xd0\x53\x08\x4c\xa5\xb7\x14\x41\xb6\x68\xdc\x96\x64\x22\x76\x01\xca\xae\x2e\xaf\xdf\x2c\xb2\x4b\xb8\x2e\xc7\x9d\x8e\xc3\xe3\x92\x84\xc4\x41\x05\x7c\x78\x2b\x92\x43\x25\xb4\x5d\x27\x61\x22\x08\xd5\x7c\x47\xcb\xdf\x27\xc5\x15\x6b\x84\xb7\x9d\xdc\x90\x6e\x0f\x76\xcd\x20\x34\x57\xd9\x5b\xd8\xcd\xd8\x47\x72\x6c\x8c\x54\xa1\xe4\x5e\xe7\x19\xf1\x58\x31\x01\x25\x6c\x51\x4f\xf1\xa7\xb8\x8b\x76\x54\x95\xb7\xa7\x28\x1c\x43\x4e\xc5\x73\x85\xb8\x57\x38\x67\xb6\x5d\x72\x6c\x1b\xc4\xfa\xbb\xcb\xd4\x41\xe3\xde\x8b\x0e\x47\xbb\xe0\x49\x55\x7b\xfb\x41\x19\x7d\x5c\xd3\xc2\x1b\x04\x82\x15\x60\x06\x02\x57\x19\x5b\x9c\xcf\xc8\x8f\x19\x18\xd1\xde\xda\xfc\x85\xfc\x9d\x81\x38\x48\x58\xa0\x3c\x84\x07\x9a\x40\xac\xea\xe2\x2e\xff\x9e\xfe\x9b\x11\xeb\x35\x4e\x3c\xd1\x27\xcb\xf6\x7a\x85\x48\xc8\x17\x67\xe0\x9b\x9e\x85\x23\x13\xfc\x3c\x39\xb7\x93\x98\xa5\x2c\x63\xf9\x40\xd8\x10\xb3\xd4\xd7\x92\x05\x40\x5d\x07\x1a\x6e\x93\xe4\xd2\x8a\xcf\xff\xe5\x2e\x44\x08\xdb\x15\xee\x9c\x39\x5e\x99\x42\x81\x83\x2b\x9f\x83\x35\xa9\xdd\x66\xe3\xbf\x74\xfd\x1a\x76\x76\x9e\x21\xe2\x05\x30\x75\x8b\x73\xb1\xfa\xc4\x4b\x6c\x35\xc3\x31\xc7\xf4\x50\x0e\xfe\x62\x3e\xde\x72\x76\x0e\x1f\x1f\xbe\xb0\xc4\x81\xb0\x7c\x3e\x07\x3c\x0a\xa1\xf4\x48\xee\x70\x5e\x4e\x65\x84\xce\x74\x28\xfa\x25\x8f\x68\xdb\x03\x4c\xae\x14\x8d\x01\x75\x77\x53\xf8\xa8\xd8\xbc\x18\x82\x25\x5c\x29\x89\xf1\x0f\x5b\x15\x3b\x92\x63\xce\x9a\xe0\x53\x29\xc6\x53\xf0\x15\x6f\x3b\x05\x67\x80\x83\x61\x64\x04\x90\x80\xaa\xd6\xd9\xbd\x95\xbb\x6b\x03\x5e\xd0\xf6\x98\x33\xe1\x55\xe6\x46\xe2\x6e\x22\xda\x35\xee\x88\x72\xd0\xe5\x50\x8f\xde\x5a\x81\x08\x21\x7e\x9a\x3e\xd2\x75\x81\xb9\xbf\xc1\x61\x06\x6e\x8a\xc5\xfb\x72\x54\xb1\xab\x48\x31\x5e\x2b\xe3\xe6\x39\xfc\xec\xbf\x5e\x5f\x5e\x9c\x64\xbf\x3d\xb9\xbd\xbd\x7d\x82\x1a\x9e\xf4\x0d\x53\x4c\x61\x8b\x93\xec\xbf\xbd\x3a\x3f\xc9\xec\x7a\xfd\xb9\x76\xa1\x43\xc8\x08\xf5\xd3\x1b\xf6\x5b\x74\xa3\xaa\x86\x0e\xf4\xe7\xd8\xd8\x98\x8b\xe9\xf2\xe2\x58\xe8\xba\xc4\xe0\xa1\x39\xdc\x9c\x31\xb3\xe1\xb1\x10\x3e\xf8\x7d\x43\x1f\xa9\x52\x6b\xd7\x0d\xb5\x7f\xcd\x7f\xd2\xf4\xd2\xac\xdf\x4f\xaf\xbd\x4f\x20\x70\xe5\x87\xbb\xf0\x12\x22\xc2\xb0\x7d\x81\x48\x4e\xe0\x92\x3c\x9e\x3a\xef\xaa\x8f\xeb\x46\x9c\xe0\x10\x0f\xa4\xb1\x2b\x76\xcf\x93\x49\x90\xf9\x63\x12\x57\xea\xfa\x6e\x52\x0d\xbb\x0a\xd6\x55\x79\x27\x51\x97\x03\x61\x08\x95\x21\x57\xa9\x6c\x31\x29\xca\x31\xf0\xa2\x6c\x4e\x3b\x25\x5c\x80\x83\x62\x10\x73\x52\x37\xfb\x51\x1d\x72\x99\x9d\xa4\xbd\x2e\xe3\xe0\x69\xf8\xca\x6e\x71\x6b\x48\x6a\x9b\x29\x91\xda\x16\x8f\xe4\x0a\x72\xc4\xcf\xf0\x04\x7e\xb7\x9d\xd9\x7a\xeb\xdb\x2c\x06\xd8\x43\x72\x1e\x37\xb2\x1e\x89\x41\xe2\x8b\xef\x2f\xcd\xeb\xb5\x12\x1c\x52\x62\x7d\xd4\x93\x74\x6f\x8d\x3e\x95\xa8\xe6\xb4\x3a\x3a\xea\x53\x99\xf8\xba\x20\xce\xb5\x47\xbe\x68\xc3\x7e\x16\xbb\xda\x73\x43\x1f\xe3\x5c\xae\x0a\xbb\xb1\x60\xc3\xfc\x63\x22\xde\xf9\x6d\xf6\x5e\xc1\x4e\x19\x55\x2a\x1a\x31\xa3\x9a\xee\xeb\x0a\x39\x6e\x6b\xb6\x15\x89\x0b\x31\xa3\x7b\xf8\x76\xe2\xb9\xea\xb4\x21\xf1\xa2\x59\xea\xce\x2f\xc1\x55\x38\x16\x12\xcc\x80\x9a\x34\x12\xd9\x86\x4e\xe5\x33\x4c\x56\x96\x55\xe4\xb3\x41\x04\x1c\x1c\xbd\x67\xd7\x00\xe3\x1b\xb1\xf0\xc7\xf7\xae\xe9\xfe\x86\xd9\xbc\xdd\x48\xaa\x96\x4b\x58\x7a\x99\x6c\x94\x37\x7e\x82\x62\xbc\xd8\x77\xfc\x12\x0f\xcc\xaf\x43\xf3\x18\x29\x90\x65\x7d\x27\x97\xa7\x9f\xb9\x96\x76\xd5\xad\xde\x6c\x75\xa3\xe1\x45\xc8\xfc\xb4\x28\x08\x4f\xf8\xc4\xed\xd3\xd4\x5a\x54\x2f\xd3\x0a\xff\x51\x2f\xed\xc1\x30\x2c\x97\x5c\x4d\x05\xe5\x9b\x4b\x12\xc4\x40\x9f\x4a\x4d\xf6\x33\xdd\x1b\xed\x87\x29\x4f\x1c\xde\x07\x7e\x16\xaa\x3f\x7e\x1f\x38\x2d\x19\x2f\x05\x27\x25\x3f\xea\x52\xf0\x00\x3d\xe3\xab\xbe\x71\x94\x1f\x73\xdb\x77\x6e\xc0\x63\x31\x78\x16\xe3\x33\xf0\x53\x61\xb8\x48\x07\xf6\x11\xb7\x7e\x47\x2a\xf6\x47\xc9\xc3\x73\x1d\xf1\xf8\x48\x10\xfb\x61\xcb\x35\x09\x87\x9b\x05\x69\x67\xb7\x2d\x2e\xd4\xe2\xf1\x83\xfc\x7a\x03\xef\x79\x93\xc4\x1e\x6d\x71\xe5\x8e\x3d\xc2\x18\x1c\xc7\xed\x44\x1a\xf2\x47\xd3\xe4\x10\x2f\x5f\xab\x9f\x36\xa7\xf1\x91\xe7\x30\xe4\xfb\x33\x4a\xe7\x47\x8b\x58\xeb\x4b\x82\x85\x2c\xb4\x4c\xbb\xab\x6f\x97\xf8\xc5\xb7\x82\x5b\xf6\xa7\x23\x19\x81\xcb\x5d\x23\xc5\xc3\xe1\xb7\xe0\xde\xef\x52\x8f\x0a\x70\xda\x18\x6e\x86\xa5\xdd\x68\xcd\x5a\x27\x96\x2e\x02\x55\xd6\x99\x00\xd8\x34\x3b\x51\xdd\xe3\xdd\x32\x8f\x2e\x5a\xfa\xdf\xbf\xbc\xd0\x2f\x76\x27\xe7\x00\x3c\xec\x4f\xfe\x03\xbf\x87\x15\x3c\xd5\x17\x53\x8f\x75\x9f\x23\xb7\x02\xf8\xb7\x7f\x5b\x4c\x40\xea\x08\x53\x34\x66\xd3\x91\x72\xf0\xbb\x5c\x8c\x92\x44\x12\x9b\x7d\xb9\xab\xc6\x3e\x99\x96\x22\xe4\x00\xd9\x84\xaf\x15\xf7\xc6\xa7\xf3\x99\xd4\x3e\xf8\xe4\xf8\x64\x03\x2d\x26\x41\x63\x8a\x33\x71\x01\xe0\x78\xfa\xf2\x1a\x8c\x98\x83\xa7\x4d\x32\xed\x2c\x93\x27\xb4\xb2\xeb\x40\x35\x1e\x88\xf6\xc9\x44\x12\xef\x70\x5d\x20\x66\xb1\x04\x78\xb9\x5a\x39\xab\xfb\x6e\x5a\x2a\xbc\x97\xe4\x8d\xd7\x10\x03\xe2\xf5\x07\x79\xdc\x22\x86\xfb\x40\x6e\x1f\x2c\xd2\x3e\x54\x97\x5e\x78\x1b\xcc\x4b\xea\x3d\xa5\x49\x11\xc6\x8b\x8e\xe0\x4f\xcb\x7d\x91\x28\x07\xa4\x84\x0f\xf6\x99\x57\xa6\x79\x5f\xd4\xb7\x95\x38\x76\xf9\xf2\xb7\x0d\x1f\x96\x70\x70\xed\xc1\xf4\xc9\x4b\x1b\x54\x19\xc7\x35\x99\x36\x98\x3a\x67\x87\x37\xa2\xc4\xd0\x10\x81\x21\xeb\x42\x58\x3b\xe3\x40\x3e\x12\x39\x7f\xb1\x98\x23\x93\xc1\x65\x50\xb1\xc9\x50\xe6\x93\xe9\x2c\x26\x45\xfc\x99\x3b\xed\xdd\xae\x0d\x71\x03\x47\xf3\xef\x6f\x2b\xf1\x43\x8b\xc6\xdf\xf3\xe1\xc7\x5d\xbc\xcd\x3e\x54\x0d\xab\x21\x8b\x67\x32\x19\x33\xc4\xce\xef\x19\x08\xc5\x5f\xe3\xf1\x82\x6c\x44\xf7\xac\x55\x7a\xca\x0f\xfe\x61\xd3\x7a\x3c\x99\x2d\x75\x13\xd1\xf8\x74\x6f\xab\xd8\x6f\x30\x03\x1d\x4b\xa4\x24\x3e\x4d\x91\x90\x68\x44\xba\x3f\x27\x91\x4c\x27\x7e\xf2\xe3\x37\x03\x23\xa4\x3e\x78\x65\xe3\x0d\xd7\xe1\x93\x7d\xd9\x8e\xe5\x3e\xbe\xf6\xca\x57\x5c\x33\x2b\x37\x5b\x39\x40\x92\x06\x17\x94\xb8\x2d\xe1\xf1\xac\x24\x28\xf0\xc8\x7e\x26\xc1\xb8\xe3\x13\x3a\x69\xcc\x9d\xd2\xfa\xd0\x34\x98\x07\x15\xa7\x11\x14\x91\x6f\x1f\x8d\x47\xc0\xf7\x93\xd4\xcb\x39\x08\x8d\xb8\x3c\x25\x07\xce\xf2\x6a\x9c\xe3\xe8\x96\x78\x5b\xad\x25\x54\xe0\xa0\xf0\x25\x3e\x4d\x06\xed\x65\xdd\xc3\xcb\x1b\xc1\x32\xdb\x5c\xa2\x1e\x73\x58\x3c\x35\x0a\xb6\x39\x9b\x01\x9d\x4f\x1d\xc4\xda\x3b\x72\x67\x0a\x75\x49\x6f\x35\x60\x01\xd7\x0a\x04\x4d\x6f\xac\xc6\xb0\xad\x49\xd8\x65\x4e\xbc\x07\xd6\xa3\xf8\x9d\xbc\xe0\x22\xe1\x8b\x94\x2e\xf8\xc6\x24\x87\xcb\x76\x1c\x85\x11\xd1\x1e\x02\xcd\x20\x1a\x6c\xe5\x1f\xd5\x60\x7f\x26\x1f\xd6\x28\x34\x19\xee\x3a\xc3\xb2\xd1\x32\xa0\x50\x59\x52\xc7\x77\x0a\x8f\xd3\x12\xd7\xb6\x41\x9c\xf8\x0b\xab\xea\x10\x8d\xfd\x73\x8e\x83\xab\x97\x41\x3f\xd4\xa7\xd4\xd4\x1e\xd8\x12\x8f\xa0\xe5\xf3\xdd\x07\xae\x95\x8e\x48\xe8\xdf\x2b\xd0\xe0\x1c\x79\xde\x13\x75\xf0\xaf\x3f\x32\x3f\x1a\x35\x2f\xb5\xac\x8d\x9e\x42\x0d\x59\x21\x8e\xde\x6b\x5a\xf3\x85\x5c\x38\xfe\x5b\x4f\xaf\x69\xd0\xe3\x78\xc1\x13\x4c\x00\x01\x21\x56\xde\x91\x0a\x42\xa8\xad\xa3\xb5\xb0\x78\x9c\x54\x35\x1f\x43\x2f\xd8\xcd\x49\xbb\xe0\x6b\x19\x12\x96\x44\x4e\x41\x38\x46\xd2\xa4\x66\x3e\x79\x2d\x18\x25\x8d\x19\xfa\xb2\x1e\xc1\x4e\xd4\x18\x27\xef\x88\x8e\x3a\xfd\x11\xc7\x3b\xa3\x43\xe7\xf1\x5b\xa8\x63\x9d\x73\x1c\xcd\xe1\xd7\xb9\xe0\xab\xd3\x62\x31\xc8\xc3\xb0\x83\x37\xb2\xfa\xe5\x6c\xc3\xc4\x20\x08\xfe\x6d\x83\xb0\xc0\x92\xe0\x10\x83\xa8\x0f\x6f\xff\xf8\x9f\xf7\xc6\x7c\x38\x72\x50\xf4\xa1\xe0\x0f\xe3\xfe\x83\xf1\xcd\x44\x80\x18\x73\xf2\xb9\x62\x69\xd4\x9b\xd1\xe8\x3f\x18\x14\x22\x06\xbf\x98\x0b\x0a\x31\x77\xd0\x12\x74\x71\xe7\x8d\x09\x2d\x4b\x0f\x40\x34\xef\x7e\xfa\x04\x8a\x3c\x47\xe0\x51\xd9\x4d\x9e\xa5\x8c\x48\x15\x63\xf4\xec\x3c\x4b\x94\x1c\xd9\x63\x44\xca\x58\x7b\x21\xa3\x1e\x67\x78\x9e\x4c\x8a\x4b\xe1\xf4\xf0\x35\x05\x92\xd3\xd8\xfc\xea\x48\xc6\xa8\xf8\xa4\x91\xb9\xb0\x18\x3e\x4f\x8f\xc6\x5e\xf1\x59\x58\x4c\x26\x5c\xae\xad\x29\xf3\x0b\x3c\xf6\xc8\xaf\x7f\xc4\x3c\x51\x1c\xf3\x10\x77\x28\xe6\xf0\x8b\x93\xf9\xe9\x6a\x05\xdb\x38\x3c\xe8\x7d\x86\xee\xce\xb2\xe5\xb9\x2d\xb6\x66\x08\xc5\x49\x20\x58\xff\xdc\x46\xa7\xe1\x17\x44\x60\xf6\x31\xaf\x49\xcc\xff\x66\x52\x1b\x5e\x8e\xd1\x7d\x9e\xdf\xc1\xd6\x4d\x7e\x81\x5b\x11\x79\x78\x3b\xc6\xa7\x4e\xfa\x26\xc9\x90\xc4\x34\x8a\x51\xee\x63\x15\x11\x12\xcf\x2d\x6f\x23\x33\x50\xa3\x07\x2c\x79\xcb\x95\x63\x83\x41\xd4\xec\x18\x4c\x87\x1f\x47\x2d\x25\xae\x04\x4c\xe3\xb5\x1b\xda\x77\xa4\x05\x96\xc9\x67\x3a\x02\x31\x7b\xd0\x95\x14\xf0\xe3\xfa\x42\xfc\x76\x6b\xe7\x1a\x3f\xd1\x20\x86\x3d\x8c\xe1\x7d\xbb\x43\x18\xeb\xd0\x21\x79\x79\x6b\xd4\xa1\xf1\xe3\x6f\x53\xd0\x8f\xeb\x92\xb4\x66\xd9\x21\x5d\xf0\x22\x1e\x44\xdc\x39\x74\xab\xfd\xe3\xdf\xa4\x73\xa2\x0f\x6f\xc5\xf6\x8f\xb7\x20\xd3\x83\xd7\xd8\x5b\x7f\x63\x3e\x6d\x56\x1e\x90\x91\x87\x55\x46\x77\xe8\xa5\xd0\x91\xbd\x5e\x32\xc5\x1b\x66\x22\x02\xbd\x4c\x8f\xf7\x55\x68\x1e\x45\x89\xfa\x28\xce\x61\xb5\xac\x87\x0d\x6e\x58\xf1\x9d\x44\xc6\x71\x2c\x51\x4d\xf7\xb0\x30\x7c\x2f\xcb\xf2\x32\x76\xe1\x65\x00\x9f\xfd\x91\x02\x84\x00\xfb\xc0\x48\x10\x72\x47\xee\x56\x69\x9d\x30\x77\xb1\x90\xa8\x1c\xe4\x34\x4e\x14\x2d\xdf\x57\xba\x70\x87\xfd\x48\xaa\x9e\xdb\x31\x8e\x81\x7a\xd9\x13\x07\x6e\xa9\xa4\xab\x1b\x64\xd8\x1a\xf0\x4a\xe3\x5e\x31\xe0\x46\xd2\xa7\x44\x1d\x94\xb3\x0b\x9a\x53\x79\xde\x31\xbc\x8c\xe8\xdf\xdf\x19\x2c\xcd\xe3\xb2\xc7\xb4\x8b\x5e\xea\xe0\xf7\x18\xe2\x5e\x35\x12\x2c\x12\x66\x32\x15\xad\x03\x86\x33\x66\xbe\x45\x0c\x0e\x49\x83\xf1\x64\xa2\x7c\x29\x50\xc5\x37\x71\xc8\xe1\xed\xca\x63\xac\x27\x0d\xe9\xa0\x04\x32\x62\x3f\x7f\x65\xa7\x02\x8f\xba\xaf\x5b\x9e\x0b\x79\x56\xf3\xa1\x1e\xe9\xfb\x91\x7f\x5d\x8f\x86\x7c\xea\x63\xba\xe5\x4e\x42\xbf\x0c\x44\xab\x84\xef\x0c\x38\x0e\xce\xfc\xee\xeb\xf6\x91\x58\xed\xcc\xca\x85\x12\x27\x0b\x28\x79\x13\x3e\x59\x44\xf7\x96\x55\x2f\x19\x76\xc2\x94\x7d\xd8\xa5\xd5\x12\xe7\x13\x03\x75\xd5\x05\x47\xcd\xd4\x15\x73\xc7\xe2\x95\xcb\x00\xc0\xab\x0a\x5c\x27\x36\x1d\x03\xbf\x9c\xb0\x01\x0b\x51\xcc\x43\xa0\xff\x9f\x78\x62\x7e\x7e\xf8\x20\xbc\x5e\x38\x78\xe0\xdf\xc7\x17\xad\xe5\x65\x8c\x36\x28\xe8\xa9\x0f\xe2\x34\xbe\xfa\xf1\x10\xf7\x7d\xb7\xd3\x57\xe3\xa0\x1e\x0d\x1e\x79\x70\x1a\xb6\x6c\xcb\x92\x6a\x7c\x42\x12\x01\x54\xd8\xf3\x2c\x3f\xbd\x81\xdb\x18\x3f\xd1\x89\xe1\xc0\xa6\xb5\xaf\x11\x0e\x89\x24\x1e\xf9\xab\x31\x2c\x60\xfc\x62\xa3\x12\xc7\x09\xfc\xad\xcb\xaf\x69\xd5\x4a\xa4\x36\x3f\x4c\xb6\xed\x52\x2d\x24\xc7\x5d\xfb\x5f\x3b\x9b\x02\x04\x5f\x43\xa8\x87\x3e\xa4\xf0\xa0\x86\x3b\x74\x82\x4d\xc8\x7d\xcb\xb5\xc8\xe3\xef\xda\x17\x9e\x68\xdf\xcf\x99\x76\x97\x38\xac\xc6\x5c\x86\xd7\x3f\xe1\x59\x81\x83\xfc\x9d\x84\xf4\x2d\x10\xd2\x37\x3c\xbc\x1b\x53\x86\xa6\x9e\x34\x47\x43\xba\xaa\xcc\xb8\xb3\x69\x5e\x2a\x28\x8c\x6b\x17\x1a\xb2\xdb\x9e\xd6\x50\x9a\x7b\x53\x0f\x5b\x9e\xb6\x28\xab\x75\x90\xe4\x2f\x2f\x0e\x3a\x26\x6e\x95\xe3\xa2\x69\x10\xcc\x99\x5e\xb5\xf2\x8c\x41\x9a\x23\x61\x9a\x06\xe3\x12\x6b\x5b\x9a\xb4\xa9\x2b\xdd\x7b\x85\x97\xa4\x79\xaa\x2a\xa4\x49\x9d\x8f\x04\x93\x26\x86\xeb\xa9\x69\xa2\xab\x38\x9e\xf9\x4e\x1c\x5b\x06\x75\xd0\x6a\x1d\x0c\x2e\x84\x2d\xd5\xc5\x58\xf3\x99\x3e\xc7\xa5\x4c\xa0\x58\x7b\xe6\x83\xd9\x19\xba\x4b\xcc\x0f\x81\x00\xe7\x29\x74\x29\x4f\x90\x6a\x24\xf2\x79\x90\xa6\xaf\xf4\x19\xfd\x34\x1f\xf7\x5e\xaa\xa5\x86\x0b\xad\x39\x1a\xd7\x55\x5f\x22\xee\xd1\x25\x5e\x13\xb3\x12\xbc\xcb\xc4\x00\xa7\xf7\x15\x8d\xfb\x26\x8b\x4a\x30\xa2\xcf\xd6\x12\xb6\x54\x37\xde\x52\x63\xed\xba\x1d\x13\xd4\xba\x13\xb5\x48\xe9\xa5\x0d\x62\x4c\x17\x5a\xf1\xa4\xa4\xae\x3f\xee\xe3\x2a\x9a\xe9\xee\xb8\xa2\x3f\xd1\x53\x36\x6d\x22\x3a\x8f\xbb\xb1\xb3\x7d\xe4\xac\x71\x14\xc2\x0f\x55\x34\xd7\xc7\x50\x51\x39\xeb\xea\xfa\x51\x9d\xc6\xdb\xca\xdb\xb5\x3e\xf2\xfa\x83\x7f\xa3\x0f\x81\xbe\x0b\xb6\xb7\x51\x53\xa6\x59\x99\xad\x9a\x78\xd6\xec\x5c\xd7\xf6\xc7\xba\x9e\x56\x37\xea\xf2\x60\x83\x15\x29\x79\x63\xa0\x67\x7f\x44\x83\x47\xbb\xdf\xd8\xf6\xae\x5a\x2f\xf9\x49\xe0\x76\xc7\x07\xd3\xaf\x9d\xe8\x88\xfc\x0a\x02\x3c\xd0\x1e\x2f\x28\xeb\x0b\x09\x7c\xe4\x7e\xb7\x7c\x9c\xdb\x3e\xce\x3e\x8b\xce\xfe\xdf\xb0\xf5\x5a\x78\x26\x13\xe8\xe1\x80\x60\x68\x15\x33\x1f\x23\xbc\xd8\xbb\x50\xc0\x1d\x0d\x01\xac\xee\xeb\xc3\x60\xe4\x36\xa9\x3c\x30\x64\xd8\x3f\x59\xbc\x9a\x58\xa9\x66\xeb\x4d\x7c\x27\xc2\x00\xb1\xa5\x47\xaa\xd2\xe8\xa4\xec\x4a\x31\x8a\x6f\xf9\x59\x65\x51\x39\x5f\xe2\xf8\xb5\xf7\xfe\x6d\x07\x1f\x22\x4e\x63\xca\x27\x2f\x51\x0f\x3c\xee\x10\xdb\x11\x8f\x90\xf9\x83\xbc\xae\x3e\x36\xf8\xb4\x93\x33\xe4\x7a\x4f\x0f\x3d\x32\x26\x74\x3a\xd8\x2f\x39\xf8\x1d\xb5\x02\xb7\x74\x92\xc8\x49\xc7\x81\xf2\x19\xdf\xc8\xc1\x3a\xb8\x66\xa0\x01\x77\xea\xf9\x2d\xeb\xe5\xb6\x6e\xea\x9e\x64\x7d\x9b\xff\xe8\x7f\x91\x54\xc3\x79\x6e\x0e\x9e\x4f\x49\xee\x96\x3d\x87\xc5\x7a\x2b\x4f\xb7\x31\xb2\x5e\x71\x60\x50\xe3\x0b\x0f\x18\x71\x57\x77\xa6\xf4\x45\x61\xc0\x5e\xf3\x01\x87\x2f\x72\x2a\x29\x08\x1a\xdc\xc9\x8b\xfc\xa1\xa4\x96\xa9\x57\x24\xc0\x55\x49\x91\xcb\x8e\xcf\x00\x07\xbc\xfc\x50\x73\xb4\xc7\x65\x49\xa8\xec\x0f\x4b\xe0\xa3\xd5\x50\x60\x3b\x09\xbb\x78\xd5\x57\x9d\xea\xf2\x93\x26\x7c\xb7\xb4\x9c\xf4\x49\xec\xa9\xda\xe8\x4c\x21\xc4\xad\xd0\x02\xd7\xf0\x87\x54\x4b\x6f\x31\x5b\xc6\xa3\x70\x67\xcd\x61\x8c\xc0\x17\x94\x36\x8b\x3a\x06\x3e\x86\x05\x2e\x35\x87\x8a\xb4\x94\x2b\x4a\x3b\x2c\xf1\x52\xb8\xf7\xf1\x12\xec\x56\x32\x2e\x93\xbd\x6d\xeb\x63\x25\xf4\xd0\x6f\xd4\x33\x3d\x14\x34\x33\x7d\xab\x57\xff\x44\x3c\x8c\x24\x47\xd2\x47\xd8\x10\x00\x75\x1f\x85\x52\xc8\x55\x5d\x77\xd0\x6a\x0e\x90\x21\xd9\x05\x70\x80\xb3\x2b\x27\xaf\x16\x7f\xef\xc1\x46\x62\x24\x95\x38\x86\xb8\x6b\xe4\xce\x62\x6e\x8f\x00\x97\x4b\x9c\xac\xac\x49\xc7\xa3\x0d\x66\xd4\xe8\xb5\x9e\xb9\xd8\xec\xd5\x35\x41\xde\x5b\x34\x34\x3b\x2a\xe4\x1b\x1e\x92\xe1\xda\x10\x99\xde\xd3\x32\xc4\xe5\x58\xcf\x99\x19\x89\xe3\xd3\xf2\x73\xcd\x73\xb1\xd9\xf6\xe5\x21\x22\x9c\x29\xac\xfa\xf5\x7b\xdb\xe1\xf2\xdb\x6e\xc9\x3e\x0c\xb1\xa6\x37\x88\xa5\x21\x58\x7f\x41\xd9\xbc\xa8\xbe\x67\xf0\x59\x64\xd2\x96\xb7\xb7\x9d\x61\x17\x94\x64\x0e\x24\x45\x9f\x14\xf8\xf1\x4c\xfc\x5d\x47\x45\x6b\x5c\x56\x5f\xaa\x0a\xa1\x6b\x13\x62\x5a\xa8\xe6\x94\x1f\x33\x49\x97\x69\xd4\x27\x66\x07\x08\x45\x47\x36\xe1\xf5\xdd\x5a\x9e\xac\x92\x57\x49\x89\x45\xb8\x75\x29\x6f\xf4\xff\x78\x96\x16\xe1\x68\xfc\x54\x84\x59\xeb\x33\x76\x0b\x96\xa8\xfc\x43\x30\x61\x6f\x1e\xee\xca\xd0\xc4\x29\x2b\x0b\x63\x9c\x05\x3f\xe0\x56\xfe\x87\xe1\x7d\x2f\x04\x9c\x7b\x80\x47\x66\xfa\xd6\xcc\x82\x6b\x3f\x5a\x48\xb3\xeb\x5e\x50\x03\x08\x55\x51\xe5\xaa\x88\x06\xb4\x27\x62\xb4\x65\xd4\x68\x39\xa4\x3d\xb6\x3a\xaf\xc6\x4a\x89\xc9\xf3\xf4\x17\xc3\xb7\xe9\x15\xca\x4b\xe3\x3e\xc1\x0b\x94\x85\x3e\xea\xdd\xd5\x21\x47\x62\x06\x8d\xcc\xab\x92\x17\x9f\xcb\xf7\x29\xea\x68\x2a\x2e\xaa\x21\x75\x14\xda\x46\x2b\x66\x29\x5b\x3c\xa8\x24\x14\x25\x91\xc8\x28\x60\xae\x40\x72\x04\xd8\xfc\x9c\xe3\xc0\x0e\x4a\x23\x48\x65\xaa\x5a\x24\x51\xfd\xe5\x41\xe0\xd9\xea\x8e\x3c\xf2\xe5\x9f\x45\xe3\x92\x5e\x78\x3e\xfe\xc2\x57\x1c\x59\xc0\x77\xf0\xb0\x18\x61\xdb\xb5\xcb\x88\xdf\x51\x84\x71\x3c\x3c\x38\xc2\x38\xc0\x19\xe9\x23\xd0\x1d\x1f\x3b\xc9\x83\xc2\x89\x31\x76\x38\x25\x7c\xe4\x0c\xa7\x7b\x16\x62\x66\xaa\x10\xb9\x69\xef\xed\x52\xfa\x8e\xca\x2e\xb9\x2c\x31\x8f\xa7\x60\x9a\x25\x68\x8f\xaa\xd1\x38\x8f\x1c\x36\x6a\x1f\x46\xc0\x73\xcf\x41\xfe\xe9\x17\x2f\xe1\x0d\x72\xef\x7b\x97\xa5\x5b\x0c\x1b\xf4\xef\x5c\x8e\xda\x13\x71\x99\xa5\x44\xdf\xe2\x7d\xaf\x5c\xd2\xac\x25\x12\xa9\xf4\xc0\xf8\x03\x9c\x06\x6f\x19\x78\xc5\xa5\x94\xe3\x36\x3c\xdd\xb7\xe0\x0b\x5f\xf7\x2f\xe6\xb1\xf5\x89\xcb\x25\xab\x95\xbf\x53\x8f\x11\x4e\x18\x1a\xd9\xc5\x99\x8e\xb0\xc4\xeb\xf3\x48\x8b\xa3\x27\x85\xc7\xc1\xe7\xe7\x8f\xe6\x24\x27\xe9\x8e\x24\x0c\x4f\x01\xbd\xcd\x6c\xc1\x71\x86\xad\x3c\xf2\x18\x60\x11\x59\xb8\x45\x68\xe1\x00\x36\x89\x7f\x2b\xa6\x35\x5d\xe2\x1f\xc0\xd7\x60\x85\x3b\x5f\x12\x21\x49\xc2\x91\xaa\x44\xf6\x3c\xc6\x61\xb4\x40\x1c\x92\x24\x24\xd1\x24\x25\x41\x9e\xb1\x2b\x82\x8f\xbb\xa4\xce\xb9\xff\x24\x9d\x1f\xb8\x64\xcf\xb7\xcc\x70\x91\x83\xcd\x03\x8d\xbd\xa7\x25\x15\x17\xe2\xf2\x17\x35\xae\x62\x49\x02\x2e\x26\xe5\x57\xb8\x9d\xe4\x53\xd8\x9e\x51\x54\xf9\xf7\xf4\x37\x7b\x76\x31\x48\x0e\xcf\xb6\x71\x66\x7c\xb5\x4d\x47\x86\x9d\x87\xe3\x58\xe1\x0e\x07\x29\x25\x50\xd5\x35\x00\x82\xf6\xbc\xeb\x1a\xb7\xea\x71\xdc\x89\xee\x9f\xea\x67\x9d\xa5\x78\x8c\x40\x6d\xdf\x8c\xe0\xce\x10\xf3\x7a\x0e\x54\x1e\x19\x0b\x70\xcf\xf5\x91\x31\x86\x92\x50\x59\xd2\x29\x09\x94\x15\xca\xb3\x59\x5e\xf3\x39\xc6\xdd\x08\x60\x0f\xbe\xba\x6c\x4d\xfe\xaa\xcd\x4e\x8b\xec\xfa\xd4\x67\xb4\xfb\xee\x20\xd1\xdb\xe7\xe7\x2a\xbb\x7e\xf5\xe6\x2a\x05\x0e\x98\x9f\xe4\xc4\x29\x18\x64\xe9\x23\x88\x5d\xd9\xfa\xe7\x12\x11\x92\x0c\xfa\x62\xbd\x6d\xcc\x86\xa4\xdc\x37\xe7\xd7\xa1\x9e\xf7\xee\x00\x50\x7d\xbb\x38\xbf\xa6\x6f\xe4\x67\xfc\x08\xf4\x5d\x98\x6d\x1c\xee\x90\xae\x48\x4a\xd3\xf0\xed\x27\xd6\x20\x71\x9e\x98\x5d\x9d\xbe\x1a\xf5\x80\x63\x04\xc9\xc3\x67\xb6\x49\xfa\xf2\x3a\x7d\x0b\x8d\x87\x8f\x4b\x88\xeb\x40\x48\x9d\x3b\x20\xd2\x54\xd5\xc2\x47\x2f\xd4\x99\x6e\xeb\x54\xc9\xc0\xb1\x65\x7e\x65\x8e\xf6\x41\x93\x9d\x4e\xde\xe1\x95\x17\xe1\x74\x53\x34\xc3\x95\x36\xe7\x43\x63\xe7\xf6\xfa\x7b\x7c\x68\xd2\xfa\xe6\xcf\x1b\x8f\xf4\x7d\xe4\x73\x13\x07\x30\xb7\x62\x75\x2b\x64\x2e\x30\x3d\x4f\xfc\x70\xa1\xd4\xff\x64\xe4\xcb\x26\x87\xd6\x21\x5a\x84\x99\x7f\x79\x44\x0c\x22\xde\xe4\x30\x7b\x1a\x11\x4c\x0d\x0a\x4b\x9b\x60\xca\x8a\xe2\xdb\xb3\x76\x00\x72\x23\xfe\x7f\xad\x8c\xe4\x18\x14\x2e\x77\xe1\x62\xde\x2c\xc0\x98\xa1\x69\x72\xbd\xd9\x20\x3e\x15\x22\x1a\xb2\xbf\xaa\xde\xd2\xbc\x94\xe4\x58\x1a\x0f\x85\x22\x88\x79\xdd\x8b\x0d\x61\xcb\x0f\x46\x31\xc5\x10\x19\x9e\xd7\x5b\x79\x76\x9f\xb3\x43\xa9\xa6\xd7\x17\xa0\xdf\x8a\x5f\x07\x8b\xdc\x3e\x84\x78\x80\x18\x35\x1d\xe4\xf2\x04\x0a\x9b\x6a\x43\x7a\xec\xe8\x9d\x82\xd7\x94\x34\x7a\xee\x3f\xce\x02\x6c\x99\xeb\xa5\x84\x5e\xbf\xa7\x28\x7c\xe1\xd9\x6b\x9f\xbd\x64\xb4\x30\x8d\xef\x23\x4b\xc2\x3d\xa4\xde\xc6\x56\x39\x2a\xd2\x70\x17\xba\xe6\xb4\x64\x30\xf0\xc5\x54\x9a\x63\xec\x8c\x16\xa4\x22\xeb\xa5\xf8\x6c\xc6\x29\x58\x1d\x21\xa9\x67\x7a\x00\x94\x42\x26\x9b\x69\x4c\x4c\x76\xaf\x98\x98\xec\xc3\x31\x31\x99\xb4\x34\xb9\x6d\xcb\xf1\x6c\x5d\x5f\x9f\xcf\x41\x84\xa7\x66\x5a\x5c\xf3\x83\x3f\xcf\xa7\x58\xec\x5b\x52\xbc\x3f\xfd\x3c\x2d\x30\xc0\xed\x38\x63\xa6\x96\xf6\x57\x6a\xd7\x7e\x9d\x54\xe2\x19\xf2\xf1\xf5\x06\xc6\x9c\xa0\x5f\x38\xf1\xf0\xf5\x4c\x7d\x44\xa4\x80\x15\x3c\x78\xba\x31\x93\xd3\xad\x70\xbc\x0e\x3c\x3f\x7f\x16\x5e\xd0\x1d\x32\xf4\xd8\x3d\x5c\x16\xf1\xef\x5e\xb2\x8e\x4e\x3b\x6c\x87\x38\x53\x72\x6b\xe4\xaa\x2f\x5b\x53\xd9\x23\xa5\x7d\x90\x57\x1f\xf4\x95\x9d\xf2\xfd\x83\x27\x75\x50\xbd\x80\x9a\x77\x56\x3c\xb3\xb4\x24\x8f\x8e\x5d\xad\xef\xf2\xe7\xfe\x19\xd0\x0b\xbd\xdd\x1f\xa0\xfc\x53\xc1\x6c\x1c\x19\xbe\x2e\x8c\xed\xd2\xa8\x69\x90\x78\xbd\x7f\x0e\x58\xd9\x8d\x5c\x33\xc4\x55\x8a\x65\xc9\x47\x16\xa2\xc4\x66\xef\x9c\x98\x2e\x32\xb9\x60\x91\x0c\xa4\xb5\x5d\x7c\x5e\x36\x29\xf8\xda\xea\x63\xba\xd0\x72\xfc\x33\xb3\xa2\xb9\x1f\xab\xcc\x5f\x5e\x9e\x9f\xf2\x70\xb7\x4f\xa1\x7f\xed\x6d\x4f\x8d\xd9\x6a\x4b\xa4\xf6\x17\x7c\x64\xe7\xfc\x11\x67\x55\x6e\xf8\xb1\x61\x80\x38\x98\x9a\x89\xcf\x69\xf7\xe8\xac\x9e\x63\x73\x2c\xf2\x38\xa9\x63\x79\xc1\xe0\x0e\x87\xc6\x56\x20\x94\xb1\x68\x91\x4c\xc4\xd1\xed\xe0\x15\x67\x8e\x61\xc7\x92\xef\x30\xd7\xd3\x20\x2d\x8e\x3a\x72\xe1\xec\xc5\xf3\xf3\xcb\x31\xe8\x74\x71\x6b\xc6\x94\x15\x68\xc6\xdc\xca\x97\xd3\xb9\xf9\x01\xf0\x09\xdd\x08\xf2\x48\xf7\x85\xc8\xe6\xab\x51\x7b\xdd\x00\xd2\x14\xe6\x20\x82\x25\x8d\x50\x62\x7c\xcc\x81\xcd\xbd\x61\x34\x07\x47\x1f\x1c\xd9\xb3\xb2\x6d\x3b\xd3\x66\x2b\xc9\x47\xd9\x48\xdb\x0e\x97\xb5\x82\x93\xaa\x7e\x03\xa7\x20\xbc\xd7\xc2\xe7\xf6\x33\xb0\x1e\xc6\xd7\x3d\x10\x7c\xae\x34\x33\xf6\x96\x68\xd7\x8d\xe5\xcb\x33\x4e\x1c\x2f\x5b\x2c\x29\x01\x0f\x4f\x82\xbf\x65\x43\x8c\x1b\x17\xd8\xae\x03\x9e\xc4\x0c\x97\x20\xab\x70\xfc\xbe\x54\x9d\x98\xcb\x46\x83\x2c\xdd\xc6\xaa\x95\x8f\x30\x02\x41\x7b\x3c\xc4\x5d\xd7\x1d\xda\xe4\x62\x37\x3f\x45\x34\x1e\xd2\xa4\x9a\x51\x27\x0f\x8e\x4d\xb3\x47\xa6\xe0\x07\x7e\x26\x67\x04\xaa\xcc\x3f\x0f\xf2\xf7\x26\x85\xf2\x2b\x65\xab\xaf\x99\xa7\xdc\x3a\x79\xe1\x3c\xee\xf9\xf3\x2d\xa7\x1b\x3c\xa0\x46\x5b\x20\x67\x07\x5f\x92\xc5\xba\x21\xe6\xfe\x52\x8e\xfa\xe5\x41\xc6\x86\x43\x08\x6a\x76\xb2\x24\x7d\x52\x4b\x74\x58\xf4\x6c\xef\xb1\x55\x61\x12\x58\x38\x9f\x9c\xf3\x63\xf9\xb0\xc5\x12\x43\xc4\x5d\xb1\x98\x1f\xe2\xe2\x13\xcc\x35\x76\xd0\x09\x84\xfd\x0d\x12\x97\x3f\x84\xb9\xe8\xf7\x70\x79\xa3\x3e\x45\xe3\x67\x5a\x5b\xed\xad\x72\xec\x95\x81\x73\xb2\x54\x18\xf3\x70\xd3\xbb\x2a\x61\x20\x84\xcf\x2e\xbf\x6c\xd8\x44\x03\x77\x9b\x7a\xbe\x27\xca\x60\xd3\x7e\x58\x79\xea\x88\x3d\x75\xbc\x6b\x8c\x7c\x2e\xf1\xf8\x72\xe2\xbc\x13\x9c\x62\x3c\x74\x22\xeb\xa4\x49\xcb\x2f\x07\xbe\x43\x3e\x6b\xda\x7b\x9f\x53\x1f\xf2\xcb\xc3\x22\x85\x64\xdd\x20\xbc\x82\x8a\x1e\xd4\x89\xfb\x50\x1a\x3d\x6e\x72\x02\xf9\x93\xe1\x33\xe8\x9f\x87\x2f\xb6\xe1\xee\x27\x9b\x69\x87\xe1\xe6\x86\xf7\xf4\x1e\xb5\xfe\x86\x5e\x15\x82\xeb\xc9\xef\x62\xf0\x3e\x5e\x1a\xf2\xf8\xcb\x18\xda\x18\xd1\x14\x8e\x3f\xbf\x10\xe2\xe0\x4b\x6f\xd8\xcd\xad\xe3\xc7\xbc\xd3\x4e\x7c\xd1\x36\xeb\x2f\x1e\xa5\x71\xee\x87\xb7\x09\x7d\x10\xfc\x58\xad\x0c\x52\xde\x0a\xf8\x05\x8e\xb6\x88\xb7\x5e\xeb\xfb\xdf\xfc\x66\xcf\xa0\x7e\xb1\x40\x49\x13\x88\x3b\x1d\xa3\xe9\x6b\x4d\xc3\xa8\xd7\x3e\x94\xe9\x20\x0e\x71\x5a\x9f\x06\xb3\x9e\xa9\x6e\xf0\x8a\x01\x7a\xa6\x29\xe6\xaf\xea\xdd\x4c\xb4\xde\x5f\x34\xa2\xf2\x9f\xef\x5b\x08\xf0\xe5\x67\x23\x84\xf1\x9a\xd0\x87\x4c\x73\x98\x63\x33\x4f\x31\x1c\x41\xa2\x33\xdb\x74\x66\xf1\xb6\x9a\xd9\x7e\x60\x72\xcd\xbd\x73\xab\x91\xd4\xbf\x0a\xf1\xaf\xf9\x12\x31\x18\x22\xae\x54\x8a\xf4\xc9\xc3\x76\xd9\x57\x99\xbf\x5d\x4d\x4b\x00\x31\x8f\x69\x01\x98\x6d\x9d\x6f\xf0\xb0\x15\x1e\x80\x83\x9f\x3e\x82\xa5\x14\x58\x29\x58\x6b\xb7\x39\xfb\xeb\x7f\xd9\xe6\x5f\x66\xc4\x0c\x6a\x38\x1a\x20\xec\xf0\x97\x7b\x4a\x20\x5d\x15\xe6\x28\xfe\xde\xd1\x37\xac\xc4\xfc\x51\xd0\x07\x9b\x11\x34\xf3\x96\x4b\x77\x38\xfb\xa9\x14\x84\x18\x0f\x6a\x40\x18\x74\xfe\xbe\xa3\x2f\xf6\xc5\x78\xc4\x71\x1c\xd0\x12\x3f\x11\x20\x3f\x9d\xc6\x3a\xc6\xb1\x18\x27\xf3\x4f\x49\xdd\xd5\x7d\xc3\x69\xd8\xdd\x91\x80\x47\x9e\xf1\xcd\x3d\x10\x98\x5b\x6b\xdf\x6b\x75\xd2\x0b\x81\xa4\x4e\x74\x3b\xa9\xcf\xb6\x02\x89\xb0\xbe\x9c\x42\x9d\x91\x94\xc6\xdc\x2e\x7d\x87\xb4\x37\x92\xe8\xbb\x23\x7d\x61\x9c\x16\x4d\x7d\x40\xf4\xd3\x9f\xe3\x6b\x8f\xfe\x15\xae\x67\x94\xa5\x6f\x46\x72\x24\x6b\x44\xcb\xc7\x63\x79\xf2\x0c\x2d\x6e\xe2\x2e\xf8\x6a\x24\x47\x24\x76\xd5\xa1\x57\x3d\x35\x86\xc9\x16\x28\xad\xc3\x07\xd6\xe3\x97\x73\xf4\xe1\x31\x9a\xd1\xe5\x8a\x36\x48\x56\x7d\x5b\xf7\xbb\xfd\xec\x9f\xff\x99\xa1\xe9\xe7\xbf\xfc\x4b\xf6\xea\xfb\xcf\x33\xfb\x1b\x62\xd5\x21\x9c\xd0\x6f\x6e\xdf\xef\x3d\x14\x7d\xfe\x30\x00\xe4\x6b\xb7\xec\xb8\xca\x47\x1d\xaf\x25\x00\xc1\x46\x6f\xa6\xff\xbf\x00\x00\x00\xff\xff\xcd\x6f\x7d\x22\x3d\xad\x00\x00") +var _confLocaleLocale_itItIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x7d\x4b\x8f\x1c\xc7\x93\xdf\x9d\x00\xbf\x43\x8a\x0b\x9a\x12\x30\x6c\x41\x92\x5f\x10\xd4\x92\x47\x43\x4a\xa4\x97\x1c\xce\x9f\x43\x6a\xbd\x16\x84\x56\x76\x57\x4e\x77\x2d\xab\xab\x5a\xf5\x98\xd1\x68\xb1\x80\x3f\x80\x4f\x3e\xf9\xf8\x3f\xda\xc0\x9e\x7c\xf3\x59\xdf\xc4\x9f\xc4\xf1\x8b\x88\x7c\x55\x55\x0f\x29\xed\x5e\x66\xba\x32\x23\x5f\x91\x99\xf1\xca\xc8\x48\x7b\x38\xac\x0a\xd7\x6d\x96\x6f\x6b\xd3\xb9\xf6\xba\xfc\xad\x6c\xcc\xf7\x65\x6f\xec\xd0\x37\x8f\x9b\xee\x50\xf6\xb6\x6f\xcc\xa1\x6d\x6a\xfa\x67\xab\xea\xd1\xd0\x35\xf7\xef\xdd\xbf\xb7\x6b\xf6\x6e\xf9\x8c\xfe\xdc\xbf\x57\xd8\x6e\xb7\x6e\x6c\x5b\x2c\x2f\x6c\x5d\xbb\xaa\x6a\x4c\x51\x9a\x0d\x95\x68\x1b\xfa\xb8\x7f\xcf\xfd\x7a\xa8\x9a\xd6\x2d\x9f\x76\xf8\x6f\xa9\xb0\xab\x0e\xcb\xd3\x92\x9a\xb8\x7f\xaf\x2b\xb7\xf5\xaa\xac\x97\xa7\x9b\x8d\x2b\x4a\xfd\x6e\x86\x9e\xa0\x37\xfe\x73\x38\x2c\x5f\xbb\x6d\xd9\xf5\xad\xed\x29\xad\xe5\xdf\xae\xcd\x12\x6f\xdc\xba\x2b\x7b\xb7\xbc\x2c\xa9\xa3\x7f\xe7\xd6\xf7\xef\x5d\xbb\xb6\x2b\x9b\x7a\xf9\x83\xfc\xa7\x9e\x1e\xec\xd6\x51\x27\xb7\x65\x4d\x9d\xe8\xdd\xfe\x50\x59\x2a\xf1\x46\x7f\xdc\xbf\x57\xd9\x7a\x3b\x00\xe6\x45\x89\x1f\xf7\xef\x6d\x5a\x47\x19\xab\xda\xdd\x2c\xcf\xe8\xe7\x62\xb1\xb8\x7f\x6f\x20\x3c\xad\x08\x21\x57\x65\xe5\x56\xb6\x2e\x56\x7b\x8c\xed\x82\x13\x1a\x33\xf4\xae\xee\x9d\x71\x84\x2b\x1a\xbe\xf4\xdf\x15\x34\xc0\x95\xed\xa8\x6f\xf8\x30\x65\x6d\x6c\x07\x24\xa2\xaa\xda\x12\x22\xcf\x09\x91\x5a\x94\xd0\xb5\xb7\x65\xb5\x7c\xfa\x18\xff\xd0\xe7\xae\xbb\x69\x18\xb9\xf2\x03\xe3\x5f\xf5\xb7\x07\xb7\x3c\x6b\xea\x2b\xd7\xee\xd1\x4f\x7b\xe8\x37\x3b\xbb\x3c\x93\xff\xa8\xbb\x75\x87\x86\x10\xd2\xb4\xb7\x84\x26\xff\xf3\xfe\xbd\xa6\xdd\xda\xba\xfc\x8d\x50\x46\x98\x79\x25\x1f\xbf\xd9\xdf\x04\x3f\xfb\xb2\x6d\x9b\x76\xf9\x92\xff\xdd\xbf\x47\xc3\x5e\xa1\x9a\xe5\xf9\xd0\x5c\x37\x26\xad\x06\x59\xfb\x72\xdb\x02\x7f\xc8\xb5\xe6\x25\xbe\xb4\x1e\xe4\x5e\x35\xed\x3b\x2d\xf8\x1d\xfd\x9c\x94\xa6\x8e\x68\xc9\x66\xdc\x0b\x5b\xd3\x1c\x30\xc0\xf7\xae\xeb\x4b\x5a\x07\xa6\x72\x39\x18\x4d\xb8\x2d\xf6\x84\xd5\x83\xa5\x15\x97\x2d\x3c\xbb\xa7\x74\x5e\x16\x5a\x9f\xdd\x6c\x9a\xa1\xee\x57\x9d\xeb\x7b\x9a\xd7\x6e\xf9\x7c\x4f\x5d\xe9\xa5\x1e\x53\x50\xb9\x47\x0a\x42\xd3\x35\x07\x73\xff\xde\x6d\x33\x84\x39\xf7\x53\xad\xa9\x47\x4a\xf0\x20\xbb\xd5\x95\x73\x05\xcd\x6e\x4f\xfb\x0a\xeb\x6f\xa8\x2a\xc2\xe8\x2f\x03\x0d\xab\x5b\x5e\xd0\x17\xa1\x45\xbe\xee\xdf\x2b\xbb\x8e\x7e\xa1\xf6\x75\xe5\xf6\x5c\xc5\xc6\xd6\x1b\x1a\xdd\x69\x5d\x13\x28\xcf\xea\x8f\x9d\xb3\xed\x66\xf7\x13\x7a\x8a\x1f\xcb\xd7\xe5\xc6\xb5\x1b\x59\x99\x47\xa6\x1c\xab\x6c\xf9\x56\x17\x17\xb7\xe2\x1b\xc1\xca\x69\x0a\x2c\xa4\x82\xaa\xe1\xfa\xcb\x9a\xc6\x50\x55\xd4\x80\xfe\x5a\x3e\x97\xff\x1e\x9b\x7d\xd9\x03\x07\xb4\x18\x09\x77\x8f\xca\x34\xd3\x1c\x5c\x6b\xca\x8a\xa8\x45\xb9\x27\x62\x71\x7d\x5d\x12\x92\x8a\x66\xf3\x8e\x36\x0c\xb6\x3c\x75\xe3\xd2\x19\x2a\x50\xd2\x5a\x2f\x2b\xcc\x65\x5d\x10\xb9\x69\xb6\x9d\xe9\x06\xf3\x84\x21\x4f\xb8\x96\x2b\x7b\x4d\xbb\x8a\xa6\x7d\xbb\xe5\xc9\xff\xca\x9a\xde\xb6\x5b\xd7\x2f\x1f\xac\xd6\xb4\x4d\xdf\x3d\x30\xbb\xd6\x5d\x2d\x1f\x3c\xec\x1e\x7c\x4d\xbb\xd5\x39\xb3\x1d\xca\xc2\x7e\xf5\xa9\xfd\x1a\xa4\xc7\xd8\x9e\x06\xac\xbd\xa2\xee\x58\x26\x49\x76\xbf\x2e\x2d\x55\xfb\xcb\x60\xab\x4d\xd3\x59\xb4\xca\xe8\xb7\xe6\xc0\x54\xe1\x23\x20\xf1\x97\x81\xe8\xc8\xaa\x58\x0b\x61\xe4\xde\xd5\x6e\xe3\x68\xc0\x04\xf7\xf2\xf6\xf2\x2f\x2f\x4e\xcc\x05\x4d\xf5\xb6\x75\xfc\x9b\xfe\x50\x81\x2f\x4c\x63\xde\x94\x4f\xbe\xa5\x79\xa0\xa2\x82\xa5\x6c\xa1\x3d\xb1\xbd\x5d\xdb\xce\x49\x3e\xf6\xef\x9b\xf2\xc0\x2b\xb6\x08\x39\x3b\x02\x27\xaa\xda\xf5\xa3\x59\x9b\x21\x02\x54\x49\x24\x1d\xb4\x88\x93\x5a\x28\x4b\xd1\xfd\x56\xd1\x8c\x59\xd9\x37\x3d\x50\xfa\xfc\xfc\xfc\xd5\x93\x6f\x19\x47\x34\xf7\xe5\x55\xb9\xb1\x34\x1b\x57\xff\x71\xb5\x75\xb5\x6b\x6d\xb5\xa2\xdd\x86\x19\xe0\x81\xd2\x60\xba\xae\x22\x0a\x47\x8b\xe4\x65\x53\xd8\xaa\xec\x7f\xff\xab\xb9\xbc\x7c\x81\x2e\xf5\xbb\xe5\x05\xad\xbd\xa6\x05\x47\xe8\x7e\xa9\x80\x35\x6d\xf7\xcd\xce\x19\xec\x15\x03\x28\xd3\x5c\x45\x1c\xb5\x8c\xa4\xd0\x59\x6a\xc0\xb5\xed\x8a\x28\x70\x7f\x0b\x94\x73\xad\xc7\x80\xa5\x36\xda\x14\x75\xd3\x9b\x35\x11\x59\x94\xd2\x1a\xca\xfa\x9a\x7a\x57\x10\xe2\x3d\x62\xf2\xa2\x48\x32\x45\xe3\x68\x2e\xa9\x30\x2d\xd9\xe6\xc6\x10\xa5\x6c\xed\x86\x18\x49\x67\x1e\x2c\x1e\x18\x5a\x8c\xe6\xc1\xe3\x07\x54\x61\xdd\xac\x84\xba\x80\xbc\x17\x65\x67\x69\xb3\xac\xda\xc0\x6c\x88\x72\xfe\x7d\x33\xf8\x8e\x68\xbe\x49\xf3\xcd\x4d\xd9\xef\x88\x89\x19\x66\x20\x44\x1e\xa8\x72\xc3\x55\x1a\x25\x35\xd9\xc0\x3d\x29\xd3\x49\x3e\x65\x40\xff\x39\x33\xe0\xfb\xf7\xfc\x64\xcd\xac\x33\x5a\x50\xdf\x62\xc4\x4c\xd8\x4e\x0f\x87\x8a\x66\xd8\x53\x42\xe2\xf6\x71\xd1\xcc\xe7\x85\x9d\xba\x69\xcb\xeb\x92\xb6\x47\x89\xc5\x53\xeb\x2a\xab\x68\x1f\x0e\x63\x92\x6d\x88\xd6\x33\xcf\xdb\xec\x68\x7b\x35\x1f\x09\x25\x5a\x65\x2b\xc4\xbc\x6e\x80\x2b\x57\x65\x8c\x20\xc0\x85\x85\x33\x10\x35\x35\xa5\x89\xa4\x8c\xa5\x91\xd6\xd1\xea\x2d\x4d\x47\xf3\x45\xb8\xa0\xff\xd5\xb5\x05\x5c\xed\xb7\x6f\x51\xb6\x6e\x03\x70\x90\xc1\x81\x24\x06\xec\x9e\xa7\x9d\x23\xa2\xc0\x4b\x9d\xe4\x16\xdd\x4a\x3e\xd7\xb7\xf8\x42\x73\xa8\x6f\xd7\xc4\xb5\x49\x68\x70\x98\x23\xda\xee\x90\x77\xb0\x15\xa4\xff\xad\xef\x7f\xd2\x35\xc7\x44\x0e\x14\x05\x54\x02\x3b\xbf\x21\xa6\x5d\x2f\x9f\x34\x60\x41\x8d\xff\xf6\x4d\xfd\x05\x7d\x6d\x68\x23\xea\xb6\x23\x7e\x75\x79\xf9\xcc\x6c\x2a\xe0\xf0\xed\xeb\x17\x1d\x6f\xb7\xdd\xea\x40\xe8\x5c\x5e\xd0\x1f\x8b\xfc\x98\xe6\xeb\x41\x96\xa9\x87\xfd\x9a\xb6\xe9\xcd\xae\xdc\xec\x0c\x38\x11\xd7\x05\x19\x0e\x44\xb8\x33\x43\x47\xcb\xee\x84\x68\x27\x0d\xc9\x10\x0a\x79\xed\x98\xbe\x09\xeb\x15\xe0\x57\xb4\x3a\x87\x16\xbb\x70\xd7\xf7\x87\xb4\xe1\x67\x6f\xde\x5c\x24\xa9\x69\xd3\x4c\x4b\x6d\xb7\x69\x2a\xd4\xc6\xec\x33\x59\x49\x0b\x59\x4a\x43\x5b\x2d\x69\x48\x33\x8b\x8c\x72\x46\x08\x29\xeb\xab\x6a\x20\x36\x4f\xbc\x61\xd8\x56\x25\x50\xe1\x59\x09\x70\x63\x89\x07\x34\x86\xf0\xcc\x9d\xfa\x14\x7f\x2e\x09\xf5\x85\x15\x3a\xbe\x03\x5d\xc0\xfa\xab\x79\x79\xf2\x4e\x30\xae\x22\xb6\x4c\x42\x2b\x35\xcd\xfb\xa5\x39\x60\x5b\xce\x6f\x98\xef\x2c\x86\x42\xeb\xe9\xda\x0b\x5f\x73\x50\x5e\x1e\xeb\xf6\x84\x92\x40\xa7\xcd\xe5\x4b\xe0\x89\x13\xaf\xda\x66\xbf\x7c\x62\x93\x2f\x3f\xce\x97\x54\x12\xfd\x2d\x6b\x5a\xa7\xb4\x6d\x9a\x13\xf3\xfa\xbb\x33\xf3\xef\xbe\xf8\xfc\xf3\x85\xb9\x18\x7e\xff\x3f\x86\x96\x1b\x16\x5e\xd7\x40\x84\xac\x23\xa0\xe1\xfe\x10\x6b\xa1\x3f\xb4\xcb\xf6\x10\xc6\x1f\x60\xf7\x3e\x30\x5f\x71\xd6\x7f\x72\x1d\xcd\x6c\xd9\x2c\x36\xcd\xfe\xeb\x05\x84\x27\x22\xbb\xad\xae\x7f\xee\x32\x2f\xda\x97\x65\xaf\xeb\x5f\x01\x26\x1c\x65\x04\xe6\x65\xec\x15\xed\x9e\xab\xb2\xdd\x2f\x4f\xd7\xc4\x4a\x08\xb3\x5e\xe8\xc4\x22\xf0\xf2\x77\x10\xdc\x08\x75\x44\xaa\xca\xab\xdb\x00\x0e\xd9\x87\x16\x3b\x4d\x12\x26\xf0\xa9\xe2\x90\x57\xe9\x8a\x15\x8e\x8d\x9b\x25\x62\xd4\x99\x4b\x59\xcb\x44\xa8\x48\x94\x2e\xf9\x93\xc4\x28\x9a\xcb\xab\xab\x8a\x38\xbe\x70\x25\xdf\x4e\xe4\x4e\xaf\x24\x3b\x87\xa3\x45\x7c\x20\x2d\xe2\x09\xd6\xbe\x14\x20\xc4\x9c\x3d\x39\x27\xba\x8c\xbe\x11\x21\xd9\x87\x0a\x48\xce\x2b\x40\x86\xae\xed\x09\x11\x3b\x42\x08\x04\x90\xb6\xec\x88\x0c\xb8\x48\x82\xd0\x1b\x64\x35\x1b\x5b\xed\x81\x33\x6c\x7f\x65\x15\x24\x09\x13\x7d\xb2\xad\xb4\x47\xa5\xbf\xd7\x04\x19\x04\x44\xad\x31\x68\xda\xc1\xb4\x00\x98\xd2\x66\xa0\x5d\xb2\xa7\xc5\x31\xb4\x44\x97\x4e\xc0\xbd\x8c\x64\x77\x06\xc4\x67\x20\xb5\xca\x16\xa4\x58\xac\x6f\x0d\x26\xbe\x03\xe7\x2c\xdc\x95\x1d\xaa\x3e\xe9\x55\xc6\xc0\x12\x4c\x64\xb3\x68\x5e\xda\x9a\x76\x95\x9b\x2f\x36\x45\x23\xed\xb8\x36\x2b\xbf\x97\xf2\xd4\x3e\xb6\x32\xd3\xd6\xf2\x44\x16\x36\x12\xa2\x74\x4e\x14\xb4\xc4\x6e\xed\x1a\x42\x27\xf8\xa4\x10\x5e\xcf\x1c\x6b\x6e\xdc\x2b\x36\x61\xf5\x79\x05\x27\xcf\xd7\x7e\x41\x98\x26\x46\x60\x58\x14\x20\xd5\xc4\x68\x36\xb6\x0e\x63\x86\xa6\xad\xba\x7a\x9c\x8e\x68\xa1\x12\x1f\xe9\x54\xaa\x89\xae\xae\x4b\x52\xf7\x7c\x83\x24\x5f\xef\x4a\x65\x31\xe6\x54\xf9\x02\x88\xd3\x0f\xae\x70\x2c\xa1\x1a\x56\x28\xdd\x7c\x3d\xda\xb1\x4b\x3f\x7c\xc1\x07\xad\x9a\xed\x16\x0c\xcc\x0f\xff\x3a\x54\xc6\x72\xa8\x3b\x21\x16\x78\x5d\x76\xac\x7c\x33\x96\x7a\x59\x75\x0a\xc7\xd8\x0c\xc0\x4c\x8e\xb5\x67\x2e\x9f\x8d\x85\x57\x93\x54\x4b\x11\x91\xf6\x9c\x18\x22\x71\x3b\x91\xf3\x08\x35\x24\x1f\x2a\xfe\x87\x20\x9f\xa8\xb4\x42\x7b\x81\xc4\x67\xe2\x84\x05\xaa\x3f\xa1\xd9\x25\x76\xba\x1f\x6a\x62\xbb\x81\xa7\x9a\xe7\x4f\x96\x9f\x99\x86\x36\x4a\xdb\xd2\xf6\x61\x6d\x8a\x3b\x43\x14\x2f\x9b\x6e\xc7\x56\x05\xa2\x61\x44\x95\xfd\x96\x91\xee\xcd\x50\x80\x53\xed\xc7\x69\x56\x83\x2f\x30\xd5\x9a\x47\x32\x54\x14\x94\x95\x80\xc5\xac\x40\xc1\x22\x8c\x14\xce\x15\x6f\x55\x6d\x56\xdb\x06\xca\x9d\xea\x39\xca\xea\x61\x3d\xe8\xfa\xd5\xb6\xec\x57\x57\xa0\xa7\xc5\xf2\x3b\xca\x85\xe5\x81\xc8\x0a\xb2\x98\x80\x11\xa6\x58\xc1\x21\xb0\x2f\xcd\xc3\x6b\x2f\x24\x7f\x01\x1a\xb9\xa2\x0d\x5c\x56\x58\xc3\xc2\x05\xad\x51\x73\x05\xf1\x31\x9a\x9e\x6e\x38\x1c\x44\x00\x10\x59\x98\x76\x10\x4d\x17\xcd\x2d\xaf\xc3\x6e\x63\x5b\xc2\x21\x56\x4c\x52\x6e\x4d\x0a\x4c\x4b\x44\x76\xb8\x22\x82\x5b\xf2\x1e\xb4\xe6\x21\xd1\x8b\xf3\x57\xe7\x19\xe0\xb6\x59\x0f\x65\x55\x2c\x30\x46\x91\x9a\x49\x66\xd6\x15\xb2\x7c\x81\x19\x26\x8c\x6d\x07\xbf\xa3\x53\xe5\x82\x3b\xf7\xfb\xff\x22\x90\xb6\xa5\x02\x56\xc6\xe5\xab\x99\x11\xfb\xe6\xc4\x26\x05\x6f\xa4\x70\x10\xc8\x80\x15\x5a\x1c\x50\x6a\x69\x1d\xf2\x76\xd5\xd6\xc2\x4a\xe3\x66\xe9\xc7\x97\x86\x06\x66\x1e\x7f\x4d\x7f\x09\xab\x24\xe1\x08\x9b\xda\xce\xcc\x86\xc8\x8a\x22\x43\x88\x00\x9b\x0f\x2f\x1f\x41\xb6\x5b\xf2\x05\xe9\x37\x86\x48\xe7\xe8\x19\x17\x09\x15\xc8\x6a\xe9\x06\x5e\xfc\xcb\x6f\x5d\x7d\xed\x6a\x5a\xee\x1f\x99\xcb\xd2\x92\x3a\x7c\xe5\x48\x0e\x22\x61\x94\xb8\x4d\x3f\x18\xbb\x26\x4d\x94\xe6\xd1\x41\x86\xc2\x8a\x3a\x31\xeb\x01\xdb\x92\x84\x90\xb6\x2f\xb1\x3b\x1a\x16\x5c\x7e\x84\xa1\x8d\xb4\xf1\x41\x64\xf3\xa6\x22\x02\x20\x0b\x5f\x74\x43\x12\x0d\xc6\x96\x22\x0f\x15\x97\x77\x47\xea\xc8\x66\xb7\x0a\x86\x3a\x60\xab\x77\xbf\xf6\xcb\x33\xd6\x88\x49\x35\xd5\x0c\x70\x77\x64\x10\x2f\xbf\xe5\xd9\xa4\x95\x6f\xf6\xa5\x2b\x33\xa9\x9d\xc4\x25\x5a\xb9\x4d\xcb\x22\x93\x82\xc5\x7c\xd4\x41\xc3\x20\xea\xc5\xb5\x90\xaa\xd0\x2d\x5f\x38\xd4\x62\x5e\x8d\x4c\x38\x94\x2d\x26\xa7\xd0\x8c\x37\x3d\x31\xed\x64\x1b\xe3\x0f\xf4\x8b\xa7\xd9\x5b\x48\x16\x34\x41\x6c\x79\x91\x86\xcf\xa9\x54\x3f\x34\xa9\xca\xc0\x78\x53\xa3\xe3\x4f\x6a\x16\xc9\x2c\x22\x94\x4d\x94\x08\x56\x94\x68\xe0\x5b\xe9\xfc\xb2\xa1\x0f\x84\xb0\x66\xdb\xd5\xa9\xb7\x0c\x05\x81\x68\xe7\x0e\x10\xa0\xf6\xdd\x76\xf9\xcc\x96\xb4\xb9\x89\xe6\x45\xba\xf9\x8d\x11\x43\x26\xb1\x60\x58\x13\xba\x06\x3b\x71\xf5\xe1\x85\x3b\x29\xd1\x68\xf9\x9c\x09\x8b\xe1\x91\x04\xf9\xa5\xac\xa9\xee\x50\xda\x8d\x30\xd8\x9c\x09\xd3\x9e\xa1\xe5\xc8\x4c\xcb\x73\xea\xde\x2e\x68\x25\x46\x1a\x82\x25\x60\x69\x07\x83\x88\x3c\x1a\x91\x69\xec\x57\xe0\x6a\x22\x3c\xa0\xeb\xa0\x91\x93\xe6\x75\x5b\x79\xc1\x30\xef\x0d\x24\x3f\x16\x81\xb3\x6e\xb1\x84\xd5\x5b\x66\xc0\x7b\x07\x65\x66\x45\xd3\x4d\xfc\x96\x96\xac\x85\xfd\x8b\x38\xd3\x96\x48\xc2\x8c\xa4\xca\xfb\x83\x08\x60\x6f\x05\xca\xbd\x07\xea\x9b\x60\x47\x26\x22\x73\xb3\xfc\x96\x64\xb9\x6d\xcd\xa6\x97\x14\xf7\xcf\x3b\x56\x79\x7b\x9e\xbb\x45\x60\x1c\x22\xf8\xb0\x6c\xdb\x51\x85\x7e\x06\xde\xd6\x96\x97\x88\x55\x11\x5d\x50\x2a\x18\x08\xe3\x24\xb2\x52\xe2\xbf\x35\x5f\xad\xbf\x7e\xd8\x7d\xf5\xe9\xfa\xeb\x13\xd0\x61\xd5\xff\x44\x99\xde\x10\x5d\x05\x5d\x2a\x4a\xaf\xbc\xc0\x72\xce\xfc\xbd\x25\xf9\x80\x86\x61\x1e\x16\x06\xf3\x02\x7e\x4d\x4c\x85\x96\x50\xaf\xc4\x7f\xcc\xed\xbd\xec\xd1\x37\x61\x3d\xeb\x7a\x24\x5d\x96\xb6\x89\x09\x96\x4e\xbb\xe1\xdd\xcb\x3b\x29\x80\xf2\x9c\x30\x0f\x1b\xb2\xa5\xcf\x03\xaf\xca\x7d\xd9\x1f\x5d\x80\xc4\x9f\xa8\xef\x10\x52\x78\xd0\xe0\x7b\xee\xb1\xc7\x8c\x4c\xb6\xac\x06\x1a\x1b\xf1\x36\x2a\x0a\x19\x21\x5f\x93\x6c\xb4\x63\x09\xe7\x0b\x22\x07\x44\x3d\x4b\x68\xa6\xb6\x5b\x0d\xb5\x4e\x86\x2b\x64\x01\x9e\x95\xb6\x61\xde\xb6\xb3\x65\xae\x30\x45\x2c\x46\x15\x90\xa9\xb5\x9f\x1d\x22\xb8\x1f\x87\xd9\xf8\x84\x3a\x20\x4c\x0d\x15\x11\x53\x75\xd7\x44\xb3\xa9\x46\x9b\xf4\x3e\xcc\x2b\x09\x60\x4c\x69\x00\xe6\xda\x4a\x17\x00\x8b\x32\x27\xe6\x0a\x53\xb2\x21\x22\x4f\xcc\xbb\x32\x87\xa1\xea\x2c\xe8\x33\x0c\x28\x1d\x09\x47\xcd\x42\x11\xe9\x47\x40\x90\x1b\xcb\xd9\xac\xeb\xd6\x62\x48\x88\x35\xd2\xb6\x9c\x45\xa0\xd7\x51\x59\x88\x10\x72\xd1\xbb\xa8\x4a\x07\xc5\x51\xca\x2a\x07\xf5\x80\x90\xe4\x68\x29\x6c\x86\xd4\x10\xc5\x9d\x42\xdf\xfa\xd9\xae\x7d\xdc\x96\x9f\xf8\xee\xe9\x92\x8d\x1d\x6b\x5d\x19\x99\xa4\x0b\x46\x2b\x19\x6b\xb2\x2d\x5f\x7b\x38\x5f\x45\xe4\x4e\x9e\xf7\xb2\x29\x7a\xb2\xae\x60\x04\x60\xf3\xf4\x64\x87\x6d\x6c\x81\xb9\x6a\x22\x2f\xf6\x38\x8e\xed\x7a\x0d\x7c\x34\xa4\xd0\x6b\x19\x52\xec\x75\x28\xd7\x37\xcd\xaa\xdb\xc1\x1e\x42\x02\x51\x35\xd4\xdb\x9d\x83\x1d\x55\x24\x88\x60\x9a\x43\xcb\x87\x44\x7f\xa7\x89\x6b\xcc\xbf\xa7\x1d\xdd\x62\x29\xb7\xa5\xb0\x70\xe0\xea\x27\xdd\x71\xe0\x36\x7e\xbb\x5d\x54\x0e\x22\x95\x4f\x17\x2b\x4e\xbe\x41\x01\x2e\x62\xe9\x0f\x9e\x6a\xe8\xee\x1c\xcf\xf4\xfb\x31\x9e\xce\x8d\x12\x73\x2f\xad\xe4\x2a\xa0\x27\x31\x3d\x13\x75\xa3\x40\x24\xfd\x07\xa1\x46\x86\x05\x8d\x99\xc6\x75\xeb\xba\xe5\xe5\xef\xff\x0c\xb3\x29\x49\x26\xc4\xd5\x61\xdf\xba\x85\xbd\x98\x3b\xcc\xb0\xb0\x5d\x10\xe8\x5b\xc2\xd2\xf9\x44\x74\x07\x6b\x8e\xa9\x29\xa3\x66\x7b\x01\x09\xdf\x7e\xa8\x5e\xd4\xb9\x98\x8a\xf9\xaf\x1d\xdb\xd4\x69\xd4\x35\x35\xc2\x87\x46\x71\xc0\x97\x97\xcf\xde\xb0\x8a\xc1\x2d\xc0\x4c\x79\xed\xc4\xb6\xf6\xac\xef\x0f\xdd\x5b\x35\x56\xb1\x69\x09\xb5\xdf\x42\xa1\xf6\xa9\xfa\x79\xff\xde\x1b\x67\xf7\xb1\x9f\xf8\xba\x7f\xef\x94\xe4\x88\x98\x06\xfd\xa6\x4d\x8e\xb2\x58\x56\x94\x41\x3c\xf5\xb6\x98\xea\x11\xa7\xca\x19\x9d\x68\x8c\x8e\x8f\xdd\x7e\x9e\x2c\x27\xa2\x36\x44\x37\x7e\xa6\xb5\x50\x1d\x48\xc9\x85\xfc\x16\x60\x89\x65\xe3\x48\x42\x74\xc1\xb0\xe0\x68\x6f\x5f\x91\x02\xbe\xa7\x9f\x84\x80\xc6\x80\xa3\x93\x28\x5b\x7e\xfc\x78\xf5\xc9\xa8\xa2\x82\xe8\xc7\x9f\xaf\x8c\x3e\x0f\xb4\x4c\x4b\x54\xda\x95\xbf\xf9\x31\x3c\x62\x2b\xaa\x76\xff\x61\xb7\x78\x84\x43\x45\x12\xa8\x23\xc4\xcf\x62\x68\x65\x09\xb4\x66\x63\x6b\xc5\xbb\x86\xe4\xf9\xb8\x6d\x7e\x86\x31\xe9\xd7\x3b\x8b\xed\x71\x02\xb5\x9f\x96\x13\xe2\x98\x62\x94\x68\x45\x6e\x52\x13\xe2\xa5\x14\x83\x8a\xc0\x22\x39\x2d\x80\xa9\x4f\x60\xea\x77\x24\x3a\xd4\x0a\xf7\x14\x7f\x49\x0f\xa7\xee\x34\xb4\xd2\x68\xd6\xbf\x0c\x87\xb0\xc4\x7e\x59\x4d\xd9\xf4\xcb\xe7\x95\x37\x58\x28\x07\x6a\x69\x61\x1e\x48\x3c\x06\xab\x0e\xa4\x26\xea\x3d\x24\x26\x17\x83\xcb\xc9\x4b\x2c\x44\x6d\x2d\xd2\x53\xe3\xd5\xda\x39\xe2\xf4\xf6\x9d\xab\xd1\x52\x1d\xb7\x14\x46\x20\xa2\xa5\x9e\xff\x28\xf7\x21\xed\xec\x58\xc1\xdc\x32\x3f\x5f\x01\x49\x5a\x77\x95\xaf\x1e\xe5\xe7\xc9\x49\x25\xb1\x8e\x9e\x76\xcd\x9d\x9d\xc0\xb6\x9a\x6f\x5e\x66\x96\x8b\x11\x0a\x8a\xe5\x8b\x47\xe5\x88\x30\xcc\x97\x2b\xab\x8a\xe4\x8b\x6a\x15\x9a\x9e\xb6\x87\x65\x55\x3a\x90\xbe\xb0\xf6\x03\x53\x29\x17\x09\xca\xc3\xa4\xc5\x49\x4e\x48\x19\x36\x85\x9f\x3b\x05\xe8\x59\x86\x41\x26\x7d\x14\xab\x4c\x53\xe6\xbe\x64\xf2\x0f\x2d\xe9\x0d\x29\xa6\xa4\xa7\xb3\xa2\x98\x1c\xbc\xe4\xfa\x33\x28\x1c\xb1\xbe\xae\xb4\x5e\x13\x6f\xe6\x5a\xa1\x05\x0b\xbd\xfa\x8f\x34\x23\x06\x1f\xc8\x97\x65\xf3\xe1\x0d\x05\xa6\xe3\xb9\x14\x44\xa1\x1d\xf3\xd6\x14\x23\x5c\x9b\x4d\x6b\xb3\xde\xa1\x02\x9b\xc0\xfd\x4a\x4c\x28\x1e\xc8\x84\xd6\x31\x15\xae\x03\xc7\x5a\xc0\x47\xa3\xeb\xa1\x54\xca\xe0\x22\x34\x9a\xa3\xf1\x10\xc9\x64\x6b\xed\x9e\xe4\x28\x90\x09\xb1\x1e\x54\x3d\x48\x05\xb4\x8c\xb6\x51\xcb\x16\x06\x8b\x15\xb1\x30\x67\xa5\x49\xa9\x16\x44\x23\xf8\x6e\x64\xa8\xe0\x8d\xe7\x47\x8b\xf3\x98\x77\xee\x76\x2a\xab\xb0\xe5\x86\x13\xa9\x81\x6d\x6b\x0b\x16\x47\xaf\x23\x4e\xa0\x26\x05\xe6\xf3\x25\xab\xb5\x83\x18\x32\x19\xe8\x36\x54\x2d\xa7\xce\x9e\x1d\x1c\xab\x81\xed\x71\x84\xde\x61\xcf\x8d\x0a\x0a\xac\x9a\x3f\x73\x93\x51\x52\xc5\x75\x03\x51\x1d\xf4\x1e\xf6\x37\xe2\x5f\xde\x6a\x72\x2a\xd6\x49\x3d\xad\xe1\xe6\xdb\x72\x20\xfa\xe6\xed\x3c\x44\xea\x69\x63\x55\x40\xbd\x38\x86\x3c\xcf\x94\x0a\x36\x67\x96\xae\x70\xb0\xaa\x93\x0e\xe5\x49\x3b\x61\x34\xae\xde\x13\x53\xd0\xcc\xf4\xfe\x58\x5e\x5c\x1c\x2a\xdb\x56\xca\x61\x3a\x12\xf0\xca\xb6\x16\xb9\x4c\x67\xe0\xf7\xbf\x2e\x7c\xd3\xd0\x06\xe0\x19\x32\x6a\x19\x22\xae\xb6\x99\x4b\xba\xda\x81\x47\xf9\x89\xe5\x09\x6b\xa0\x02\xd9\x32\x9a\xa8\x2f\x4a\xe1\x46\x43\x54\xeb\xdc\xe8\xc4\x93\x28\xba\xb6\x97\x75\x73\xb4\x53\xc3\x58\xe3\x28\x6d\x3a\xca\x2a\xb6\x9c\xa2\x96\x0f\x6f\xb4\x5d\x9b\xcf\x49\x1c\x67\x09\x13\x99\xd8\x58\x03\x96\x65\x2b\x64\x1e\x14\xb2\x13\x88\x1a\x12\x24\x4e\xea\xf2\xea\x90\x4f\xbd\xbf\x96\x1e\x88\x87\xc5\x6a\xdd\xe2\x50\x24\xd9\x91\x84\xeb\x16\xeb\xeb\x63\xc9\xf9\x84\x7d\x16\xe0\x99\x53\x27\x2b\x25\x6c\x50\x92\xf6\x30\x00\x18\x57\x76\xb6\xde\xba\x95\x9e\x85\xa8\xad\x49\xc5\x57\x3d\xde\xe8\x06\xe3\x4f\x40\x70\x82\x15\xca\xc8\x91\xc7\x9d\x45\x71\xdc\x47\x44\x22\xf3\xba\xf9\x87\x86\x84\x8d\xa6\x06\xb5\x63\x26\x2e\x36\xc0\xc4\x33\xa6\x74\xb9\x25\x88\x85\xec\xb2\xbf\x15\xd5\x57\x8e\x7f\x86\xf5\xba\x62\xb9\xf5\x0a\xee\x6b\x37\xae\x25\xf1\xd6\x6d\x07\xcb\xee\x68\xd4\x32\x11\xbe\xe5\x0f\x4d\xcf\x1e\x63\x02\x02\x5b\x21\x40\xca\x9e\xdd\x76\x20\xec\x2e\x98\x5d\x40\x24\x6f\xaf\x99\x57\x79\x16\x62\x1e\x3d\xec\x1e\xa1\x77\xc4\xd5\x29\x4f\x58\x54\x2c\x71\x60\xf6\x53\x8b\x76\xc7\xcd\x17\xd0\x40\x48\x38\x1f\xfa\x9e\x68\x36\xaf\xb0\x94\xd5\x73\x75\xc1\x2a\x5b\x43\x53\x2f\x7b\x99\xcf\x1f\xbd\x6f\x12\xcd\xc5\xc4\x79\x69\xc6\x52\xae\xc4\xa7\x5b\x9e\x81\xc2\x94\x7a\xf8\xcc\xf6\xa8\xa5\x37\xc7\x5f\xf2\x67\xc9\x47\xb9\xc0\x12\x8c\x23\xdd\x32\x39\xe5\x2d\x79\x17\x75\xcb\xb1\xad\xaf\x80\x3e\xee\x96\x4f\x61\x45\x20\xed\x3a\xa8\x39\x43\x59\x2c\xdf\x96\x05\xfa\x4b\x98\xa7\x5a\xc6\x7e\x56\x7e\x42\x9a\x30\x08\x39\xc5\x78\x3e\xaf\x07\x01\x0f\xbe\x84\xe1\xf3\x3a\xc8\x03\x1d\x7b\x31\xd2\xb6\x68\xb6\x35\x78\x7b\xaf\xba\x14\x44\x49\x60\x31\xb7\x8e\x9c\x18\xb1\xb5\xe0\x7c\x99\x08\x2a\x11\x88\x86\x3e\x75\xb1\xdf\xb8\xb5\x71\x57\x57\x84\xda\x81\x4d\x3b\x3d\x6d\x67\x98\xd6\xc5\xda\x2c\x56\xb3\x2b\x38\x7a\xc5\x33\x8a\x33\x51\xa8\x9a\x91\x97\xe2\x0d\xbc\x14\x71\x80\xc8\x27\x72\x17\xb4\x28\x55\x6d\x18\x0e\x38\xbd\x0a\x88\x38\x85\xf1\x9a\x16\x8f\x09\x93\x97\x03\x04\x35\x4e\x51\x72\x50\xc4\xa9\x19\x8a\x86\xa5\x15\xd0\xcf\x54\xa1\x5b\x84\xed\x16\x1c\x11\xdf\xfa\x55\x2a\x5b\x0e\x5d\x1e\x81\x78\x03\xd0\x9b\x5d\xd9\x19\xc9\x33\x37\x25\x4e\x24\x09\x27\x9b\xde\xf4\xc4\x84\x6e\xec\xad\xd9\x35\x37\xa6\x2a\xeb\x77\x1d\xd1\x43\x78\x57\xc2\xf5\x20\x55\x70\xc5\xc0\x46\xcb\x73\x60\x47\x46\xfc\xb0\x73\x1e\x6f\xfe\xa0\x2f\x23\x08\xfe\x74\x4e\x49\xc1\x01\xe8\xaf\xad\x8a\x7c\xf3\x65\xa2\x07\x5a\xe5\x80\x66\xcb\x33\x1c\xed\xa3\x2d\xcb\x41\x34\xad\x9b\x1d\x88\xaa\x3f\x80\xc5\xf8\x9b\xa6\x53\x13\xb1\xb4\x7e\xb9\x91\xb3\x4d\x6f\x23\xf6\x90\x3a\x2b\xbe\x8f\x7e\xd6\x46\x54\x2a\x01\x97\x63\x5b\xdf\x41\xde\xf2\x2b\x62\x07\x5b\x96\x50\xd9\x7f\x4a\x0e\x7a\x54\x06\x62\x92\xf6\xa8\xdc\xef\xf9\xd8\x4f\xfc\x94\xf2\x31\xc6\x43\xa5\x73\x9a\x60\x48\x32\x73\x08\xc2\xa8\x49\xa1\x28\x69\xe0\x38\x69\xdc\x33\xdb\xc6\x87\xf1\xb8\xa8\xb0\x36\xb2\xe1\x84\x35\xf6\x02\xe7\x17\xb3\x23\x32\x7c\x94\x89\x15\xe7\xe2\x8a\x73\xe3\x15\x17\x16\x54\x3c\x8f\x13\xea\x1e\xe9\x50\x53\x15\x33\xf6\x5c\x8b\x0d\x57\xa9\x77\x69\xc8\x16\x17\xd2\xd4\x37\x16\x66\x80\x55\x06\xf3\xda\x3d\x8e\x46\x81\x79\x73\x4f\x14\xe7\x5f\xc4\xda\x7c\x93\xe3\x43\xaf\xc5\x64\x0c\x11\x3b\xb9\xa9\x25\x5a\x82\xc5\xf7\x70\x64\x51\x59\x98\x57\x44\xd1\x0f\xb0\x29\xe2\xcc\x94\x2d\x9f\x44\xaa\x60\x3b\xf5\xc6\xc5\x50\x15\xa3\x8e\x55\xa0\x2e\x18\x44\xca\x60\xfb\x51\x9f\x59\xcd\x0f\x6e\xb3\x65\x04\x14\x38\xd1\xa1\xee\xa4\x9f\x2c\x91\x40\xfa\x1f\x93\x4e\x46\x84\xf7\xe6\x10\x07\x67\x17\x09\x23\x84\x49\x29\x7a\x4b\x94\x5b\xaa\x08\x29\x6a\xc3\xd2\xf3\x34\x18\x98\x5c\x68\xc7\xb3\x06\x7f\xfc\x2a\x0c\x22\x76\x95\xf2\x40\x1e\x55\xc3\x7b\xa2\xdf\xe3\x7c\x19\x13\xe7\xd2\x02\x05\x6d\xd2\xe1\xd8\xa2\x20\x2e\xdc\x09\x8d\x82\x1f\xd9\xb5\x53\x8a\x04\x8d\x44\x7c\x6a\xe0\xb1\x07\x7f\x9d\x9c\x40\x99\x27\x4c\xb1\x88\x9a\x11\xdf\x13\xd2\xc9\xe4\xea\x9b\x49\xdb\x7e\xf6\xb5\x8f\x24\xa3\x1a\xa8\xa9\x46\x06\x56\xf8\xf9\x06\x57\xb8\xfd\x08\xa7\xcd\x05\x2f\x50\x19\x30\xe8\xc4\x50\x6f\x13\x7a\x32\x56\x6b\xa5\xc4\x08\x7a\x92\xb5\xca\xce\x2b\x20\x07\xfc\xd1\x33\x0a\x88\x12\x99\xf0\xe8\x7d\xf8\xa3\x09\x91\xa7\x0f\x5e\x8c\x6d\x5b\x52\x4f\x45\x06\x7b\xcf\x31\x05\xaf\xa9\x46\x5d\x02\xca\x19\x07\x05\x3f\x80\x11\x1b\x1b\x23\x23\xf2\xf7\xc8\xd5\x86\x7a\xca\xd3\xc2\x6e\x08\xf2\x4c\xd8\x0f\x9b\x44\xb0\x41\xbb\x50\xb5\x02\x46\x59\xea\x71\x22\x06\xf1\x6a\x52\x11\x9c\xc9\x2e\xa1\xa0\x54\x2f\x90\x58\x49\x50\x36\xc6\x02\xc4\xc2\x5c\x34\xb4\x4d\x7e\xff\xdf\xe2\x9f\xe8\x7c\x19\x15\xd0\x40\x27\x59\x8f\x13\x47\x0a\x9c\x16\xf6\xde\x1a\x16\x5c\x0f\x2b\x21\xb4\xa9\x36\x41\x3d\xd9\xb3\xd7\x1d\xa8\x6f\xdb\x5b\xaf\xf7\xf6\x83\xb8\x28\x89\x39\xca\xaa\x1b\xa1\x32\xbc\xaf\x3a\x9c\x82\x6c\xbf\x86\xd7\x47\x67\x4b\xde\x7c\xdf\x7c\xf5\xa9\xa6\xf2\x89\x6f\x98\x63\xf6\xa1\x46\x7f\xbe\x2f\xfb\x67\xc3\x9a\x4f\x32\xbe\xb2\x89\xab\xb5\xfa\x89\x68\xdf\x22\x26\xd8\xef\xba\x61\x78\x78\x4a\x55\xac\x7b\x67\x25\x0f\xea\xd7\x4e\x1b\x0d\x2e\xef\xb4\x95\xc4\x57\x1b\xee\x7b\x0d\x51\x92\x8e\xfd\x39\x79\xc5\xd9\x48\x06\xa9\xea\x45\xdc\x30\x33\xd3\x15\x3d\x24\x29\x33\x31\x0e\x5d\xb0\x2c\x69\x28\x51\x6d\x86\x7d\xdc\x96\x00\x58\xc4\x42\x2c\xd5\x8c\x0b\xc1\x81\x97\xd0\xb5\x57\xcf\x61\x94\xb5\x15\x0d\xbe\xb8\x35\xac\x14\x71\x0d\xbe\x74\x70\xc2\x26\x14\xfa\x55\x84\x3c\x6d\x99\xe5\x1b\xb5\x9b\xeb\xaa\x0b\x6b\xfd\xdc\xdd\xf0\x4a\x42\x9b\x2c\xca\x87\x5e\x12\xe4\x94\x74\x28\xa9\x04\x22\x02\xa1\xf4\xe3\x08\xa4\x12\xf5\xfd\x2d\xd5\x17\x69\xe5\x18\x64\x4a\x2d\x7d\x1f\x52\x32\x69\xf9\xa7\x90\x4a\x59\x97\xae\x63\x57\xaa\x0f\x25\x93\x93\x66\xfd\xa8\x7d\x6b\x1f\x42\x29\x69\x40\xa7\x7e\xa7\x83\xe0\xb1\x01\x88\xa7\xeb\xad\x98\x75\xfc\x96\x41\x26\x3c\xb7\xbd\x4a\x27\x22\x90\x95\xb3\x33\x56\xed\x88\xc1\xcb\x89\x03\xcf\x00\x04\x15\x41\xc4\xb3\xe4\x46\x02\xb5\xa2\x3e\xc5\x6a\x67\xa9\x45\xd8\x43\x5b\xa5\xf9\x0f\x86\xe5\x1a\xd2\x67\xfa\xe6\x1d\xad\xb5\xa4\x12\x16\x88\x39\x55\xdc\x6f\xe5\xa2\x0f\x7a\x4b\xa5\x0a\x7b\xdb\xa5\x94\x49\x94\xaa\x40\x97\xd0\xc2\x48\xc3\xf2\xae\x00\x50\x29\xd5\x8b\x60\x42\x94\x70\xc6\x49\x5b\x46\x7d\xed\xbc\x2d\xa4\xd3\x0a\x3c\x71\x2a\x17\xe6\x75\xb0\x87\x45\x95\xc6\x83\x63\x07\x8a\xe1\x2a\x50\x10\x90\xe5\xa1\x5e\x13\xe9\x65\x57\x3f\xa9\xc7\x27\x85\x49\x3c\xcd\xda\x73\x89\x49\xa5\xcf\xc8\xb0\xcc\xcf\x8a\x51\x93\x88\x26\xe6\x0d\xe3\x2a\x71\xab\xbb\x50\x29\xd5\x79\xff\x76\xf5\xcc\xf0\x25\x91\x64\xe4\x4a\x11\x97\xd5\x49\xe8\x14\xff\xfc\x9b\x97\xe2\x0e\xf3\xe6\xab\x28\x68\x81\xdb\x1e\x26\x18\xb8\xd0\xf3\xbc\xf4\x7e\xd1\xb0\xb6\xc2\xb6\xb6\xd3\x8b\xe7\x70\xbf\x0e\xcd\xe9\x0e\xb1\xb2\x18\xe0\xb4\xcd\x3e\x39\x27\xa2\x40\xca\x34\xdb\x6b\x08\x48\x87\x12\xd6\x97\xc4\x65\x3c\xe5\x03\x7e\x9d\x44\x2a\xa1\x3d\x0f\x03\xcc\x06\x37\x9b\x29\x08\x77\x9d\xde\xa6\xea\x3d\xda\x7c\x93\x0a\x9d\xf3\xc1\x8f\xb0\x7e\x82\x95\x97\x19\xff\xa1\x54\x6e\x5c\xcf\xd7\xe3\x95\x04\x5c\xb5\xb2\x5f\xca\x9a\x60\x11\x30\xea\x07\xd7\x65\x37\x88\x16\x41\x2a\x42\x72\x56\x1d\x29\x93\x0c\x27\xd0\xa6\x74\xee\x23\x81\xf2\x13\xad\x33\xaf\x2b\x21\x92\xab\xd9\x52\x53\x9a\xe5\x3b\x1c\x26\x93\xab\x79\x2f\x05\x6b\xae\x4c\x62\xbc\xb8\x8b\x7e\xa5\x63\x0a\xcb\xfe\x62\xb6\xd5\x40\xc9\xa4\xe5\x11\x25\xa3\x36\xea\x47\xbd\x11\x5f\x15\x34\x22\xba\x95\x12\xd2\xd8\x19\xda\xb3\xe6\x86\xd8\x08\x6f\x1f\x6d\xdd\x9f\x16\x7b\xcb\x49\x70\xcb\xd0\x7c\xd5\xc7\x5f\x3c\x4a\x6c\x14\x8e\x61\x1d\x4f\x1e\xa4\xbd\x1a\x93\xe4\xbd\x0a\xfc\xc6\x27\x06\xed\x45\x83\x57\xe7\xe6\xe2\xd5\x9b\xd7\xbf\xff\xb7\x28\x17\xa8\x35\xdc\x8a\x26\xde\xc3\x19\xc9\x7b\x52\x8e\x3a\x16\xfc\x29\xb5\x87\x6a\xc4\xc8\xa1\xd4\xc5\x33\x05\x89\x36\xa0\x11\x68\xa4\x73\xd1\xc0\xcb\x77\xb4\xe0\x0d\x2e\xdd\x92\x01\x5a\xf6\x78\x80\xeb\x36\x68\xe0\x55\x59\x97\x44\xe9\x69\x8f\xb2\x97\x86\xce\x23\xad\xf9\x6f\xd8\x18\x06\x41\xea\x27\x52\x2e\xf9\xd8\xe0\x22\xb1\xed\x27\x27\x63\xd3\x13\xe8\x78\x68\xa6\xe2\x14\x1c\xd5\x88\xda\x36\x7c\x44\xb4\x87\x21\x34\xbb\xad\xc2\x3a\xf0\xba\x75\xd7\x25\x3c\x42\x36\x62\x78\xc5\xc9\x83\x9c\x0b\xa3\xeb\x01\xed\x43\x4d\xbd\xdd\x94\x01\xe7\x0b\xf8\xbd\xf1\x4e\x03\xfb\xfa\xc1\xff\xfc\xfd\xaf\x9a\x8e\xe4\x78\xc3\xaa\xec\xb2\x33\xa1\x8e\xaa\x3d\x10\x8d\xdb\x10\xc7\xe9\x96\x0f\x06\xf4\x8a\x28\x9d\xfb\xb5\x7f\xf0\x35\xe9\x63\xf0\x24\xa0\x86\x08\xe2\xeb\xb4\x36\xdc\xd2\xf4\x55\x7e\x7c\x26\xd6\x1c\xda\x1f\xbc\xbd\xae\x6d\x35\xe4\xb6\x1d\x6c\x27\x94\xe8\x3e\x61\x93\xe5\x3b\xb1\x90\xe3\x7a\xa7\xcd\x90\xc6\x79\x7c\x1d\x42\xf2\x0a\xab\x69\x93\x61\x9c\xf3\x11\x47\x93\xdc\xcd\x83\xa3\x6a\x1c\xb9\xfa\x68\x25\x03\x45\x3d\xc9\x79\xa6\x12\x05\xb8\x6e\xe9\xba\xe3\x64\xdc\xe4\x0d\xb7\x78\x43\xca\xd4\x06\xc4\x46\x96\xc5\x96\xd6\xcd\xb6\x66\xf7\x62\xda\x89\xc4\x45\x70\x03\x98\xfe\xff\x66\x43\xc2\xa4\xa8\x9c\x14\x71\x79\xea\x63\xe5\xc1\x21\x22\xc2\x8d\x8d\xff\xf9\xcf\x69\xbb\x54\xd4\xdf\x3f\xf6\x57\x5d\x5a\x2d\x02\x1f\x82\x15\x96\x32\xa9\xf9\xd4\x2f\x90\x5b\xa5\x77\x09\x16\x44\x3c\xa5\xea\x36\x20\x6d\xe8\x45\xc7\x57\x05\xfa\x70\x97\x59\x3d\x1b\x79\x86\xd8\xa5\x31\x9d\x20\xbd\x1c\xa0\xa6\xfe\xe5\x6b\xb6\xee\x7f\xab\xd6\xfd\x03\x2d\x1c\xd9\x4c\x8d\xbf\x12\x4c\xfd\xe9\x61\xac\x86\x2f\x86\xfc\x20\xf2\x2f\xbe\x9a\xe6\x63\xda\x81\x84\xba\x4f\x8e\x58\xbe\xfd\x59\x6b\xd2\xf9\x87\xdd\xbf\x86\xfd\x7b\x74\x28\xfa\xb0\x3b\x62\x05\xaf\x1d\x4c\x6c\x43\xcf\x77\x65\xa3\x2f\xff\xd8\x55\x43\x6f\x33\xe7\x37\x33\xf7\xc9\xa5\xe6\x14\xe0\xd8\x2e\xe4\xcd\x42\x52\x86\xcd\x37\x23\x76\xa1\x59\xd3\x6e\x7a\xf0\xb5\xe0\x33\xec\x44\x5f\x29\x4f\x13\x5f\xa1\xce\xe6\x49\xb3\x17\x7c\x45\x6c\xa5\xa6\x8c\xe5\x93\x81\x19\x86\x09\x7e\x31\x47\x00\x13\xb9\x54\xa5\x9f\xf4\x0a\xd5\xa7\xdf\x3f\x7f\xc3\x4e\x0e\x34\x87\x7c\x8b\xc5\x5f\x1e\x83\x03\xf7\x22\x56\xe9\x4f\x3d\x19\x66\xe4\xdd\xcd\x69\x2e\x71\xc0\x3a\x49\xce\x82\x4c\x62\xb5\x84\x01\xac\xed\xa1\x20\x2d\x74\x9d\xbc\xa3\x59\x61\x12\xa1\x1b\x3a\x12\x09\xbe\x39\x85\x8b\x1a\x91\x3a\x30\x8c\x08\x2f\x90\xae\xf8\xf4\xb2\x49\x10\xcf\xcc\xe9\x70\xbb\x82\xc1\x99\xf8\xd1\xa1\xb4\x49\x42\xe0\xdc\xc8\x70\x45\x0a\xab\xee\x1c\x17\x6c\x21\xfa\x7f\xff\xfd\x7f\x3e\x3e\x03\x36\xce\xfa\xb6\xa2\x5f\x2c\x0b\x1c\xe0\xef\x4c\xd8\x7e\x07\x97\x4a\x7c\x4a\xf5\xaa\x15\x10\xeb\x86\x13\x0c\xd7\x48\x55\x2f\x5f\xfd\xad\xc8\x59\x6c\x37\xe7\xa9\xd0\x85\x02\x0d\x63\x1d\xdd\x4e\x2d\x5c\x46\xc4\xa8\x66\xe5\x8e\x1b\x2f\xb2\x6f\xcc\x0f\x7c\xe9\xe3\xee\xeb\xce\x1c\x38\x01\xca\xf3\x47\x10\xc9\x6f\xd8\x73\x84\x95\x7b\x9c\x40\xc1\xfc\x52\xfe\xfe\x7f\xef\xdf\x93\x74\x3e\x95\x02\x18\x0e\xae\x48\x44\x46\xa7\xe1\xfb\xd2\x70\xe8\x05\xa4\xe1\x24\x4b\x10\x2f\xc4\x9a\xb7\x8c\xd2\x55\xaf\x41\x15\x29\x7d\xfd\x65\x00\x36\x60\x29\x70\xcb\xef\xd9\x5e\xd0\xda\x43\x89\xd9\x93\x11\x83\x54\x29\xd9\xc1\xc0\xbc\x00\x9d\xba\x67\x27\x5e\xd7\x4c\x9b\x37\xcd\x1e\x37\x25\x84\x4e\x89\x74\x9a\x6c\x2a\xb4\x50\x7a\xa7\x65\xbe\x51\x81\xa3\x22\xb8\x42\x41\x11\x97\xa6\x2e\xe8\xdb\x33\x0a\x5d\x7e\x7c\xa7\x13\x77\x36\xa6\xa5\xb9\x51\xea\x25\xdf\x89\x9c\x63\xa5\x9c\x71\x62\x0e\xe2\xa0\xc7\xe6\xca\xb5\xdd\xbc\x33\x20\xad\xed\x47\x40\xd1\xfd\x7b\x73\xb4\x93\xc4\xfd\xd6\xb9\xe5\x69\xb5\x76\x2d\xa5\xbe\xa1\x8f\x4f\x3c\x24\x5f\x26\xee\xed\xb6\x43\x91\x32\x92\xdb\x7f\x63\xde\xd8\xad\x07\x72\xa3\x5c\x1c\xca\x52\x09\x86\x98\x04\x08\x40\x38\x81\x49\x18\x81\xca\xae\x1d\xa5\x3e\xed\x61\xa6\xed\xf9\xc6\x1f\xb8\x43\x4f\x53\x43\xf5\xb4\x96\x38\x62\x5b\xf0\x8a\xdd\xef\xcb\x1e\x9b\x02\xff\x81\x13\x1e\x2c\xb5\x5f\x12\xd1\xc2\x59\x27\x1f\x2d\xb5\xf6\x66\xf9\x8a\x10\x58\x8a\x5e\xc6\x69\x84\x2f\x0e\x32\x70\x46\x52\x4b\x53\x35\x5b\xec\x36\xce\x60\xaf\x7d\x94\xf8\x41\x3c\xe0\xf3\x62\x2c\x89\xf2\x0e\xbd\xf0\xbf\xf8\x38\x40\x3a\xb2\xc8\x3b\xd4\xc5\x8c\x3c\xd2\x01\x13\x93\xeb\x10\xd2\xc3\x03\x5d\x41\x59\x3d\x03\x40\x4c\x03\xd1\xa7\xdd\x7d\x3a\xc8\xcd\x21\x9f\x0c\x57\x37\x9c\xb1\xbc\xe4\xff\x5b\x08\x80\x3e\x0b\x42\xf9\xf2\x09\xfb\x95\xfb\x24\xbd\x4b\x41\x7b\x8a\x5a\xdd\x10\x03\x49\xc0\x69\x01\xfb\xbc\x60\x5a\x08\xd7\x14\x10\x34\x44\x34\xb6\x18\x6d\x21\x66\x2d\xa6\xf3\x94\x64\xd6\x90\x57\x28\x3f\xec\x40\xa7\x60\x79\x1d\x1b\x9a\xb2\x76\xa5\x35\xd1\x3a\xf0\xa1\x32\xdc\x6c\xa5\x61\x1d\x84\x65\xd0\x8c\x1b\x8d\x20\xe7\xe0\xef\xfa\x31\xd3\x66\x04\x3c\xc3\xb7\xd9\xcf\xc2\x92\x46\x52\x27\xa0\xaf\xe8\x33\xd6\xda\x8d\xaa\x6d\x3a\x38\x77\x27\xf5\x22\xe1\x18\x38\x5c\x98\xb6\x35\xb6\x1a\xe9\x03\xdb\xda\xaa\x20\x3f\xe9\x67\x80\x93\x6e\xfa\xcf\xf1\xb8\x03\x18\x0d\x7b\x02\x23\xd4\x8a\x89\x13\x2e\xbb\x21\x31\x2d\xef\x67\x4a\xec\xec\x73\xf3\x24\x10\x2b\x12\xcc\x36\x2e\xbd\xc1\xc3\x3e\x73\xa1\x04\x87\xf0\xc8\x9a\xd4\x9a\xb5\xe1\x17\xf8\x08\x10\x8c\xda\xde\xae\x97\x0f\x0b\x73\x7a\xc0\x9d\xa1\x58\x18\x98\xf3\x79\x67\xbb\x72\xe8\x62\x1e\x6d\x44\xf8\xfd\x4a\xc5\x4f\x27\x9d\x4d\xb3\x49\x04\x5b\x89\x84\x39\x5d\x85\x2c\x7a\xb2\x24\x3b\x2d\x7c\xd7\x32\x1b\x83\xa4\x6d\x34\x51\x9e\x9d\xae\x26\x2d\x78\xf7\xb4\x47\x20\x9c\x8f\x1e\xab\xfc\x74\x3c\xbf\x5a\x2c\x08\x7e\x73\x19\x0b\xdc\xed\x52\x02\xec\x63\x14\x1c\x02\x21\x9e\x83\xef\x34\xf2\x0f\x89\x0d\xa4\xe5\x87\x0e\x13\xef\x37\xfd\x6c\xdb\x3a\xe9\xc5\x6a\x7d\xcb\x25\x78\xda\x59\x7b\x3c\x02\xcf\xd7\x5b\x9a\x1a\xd7\x3a\x19\x1e\x07\x01\xb0\xe1\x31\xce\x6d\x3d\x19\x47\x07\x6f\xf6\x4b\xfa\x33\x97\xb1\x00\x6b\xeb\x30\xd5\x37\xae\x9b\x87\xc0\xca\x25\x88\x57\xfc\x6f\x16\x42\x88\xa0\xd8\x36\x48\x05\xc2\x47\x75\xab\xb6\x8e\x62\xbe\x55\xe2\x39\xbe\xc0\x0b\xfc\x56\x42\xfa\x9e\x62\xfb\xa6\xeb\x41\x84\x61\x5c\x7f\x89\x6b\xf8\xfa\x71\x57\x2b\x1e\x5e\x9a\x99\x16\xc0\x8e\x62\xec\x2f\xe5\x97\x79\xf8\xe3\x67\x3f\x75\xb8\x53\x1d\xcf\x31\x7e\xfc\xfc\x27\x12\xc0\x1e\xfe\xf8\xc5\x4f\x1d\x04\xb0\x69\xd9\xd5\x95\x7d\xe7\x26\x15\x70\xb9\x00\x7c\x80\x75\xa0\x19\x3a\x8d\x44\x05\x7d\x0b\x67\xbf\x75\x46\xae\x7f\xed\x7d\xb6\x4a\xaf\xa4\xc1\x8f\x36\x3f\x1b\x54\x40\x53\xf3\x9d\x5f\x68\x8e\x10\xd0\x58\xe5\xb0\x5f\xe9\xa0\x3b\x10\x06\xff\x3b\x16\xf6\x18\x59\xd9\x7e\xf9\x73\xf8\xc2\xe8\xcb\x02\x63\xa7\xc1\x78\x31\xf4\x6f\xe4\xeb\x6b\x1e\x18\x30\xf1\x73\x6c\xa7\x09\xc7\x1e\x6f\x76\x30\xd5\x94\x50\xcc\xc2\x21\xcc\xad\xeb\x17\x23\x4a\x25\x21\x89\xb8\xbb\xa3\x1c\xed\x44\x0a\x21\x17\xe2\x25\x3d\x40\xb7\x8e\x31\x22\x60\xaf\xf9\x63\x9c\x97\x57\x25\x30\xb3\x75\x29\xe9\xf5\xab\xe5\x4c\xfe\x37\x63\x1c\x33\x8e\x84\x45\xfd\x41\x04\x49\x87\xb4\x0a\xff\xf1\x47\x2b\x11\x09\x84\x64\xdf\x2b\xad\xe6\x0a\x8e\x4c\x1b\x36\x76\x13\xc2\x19\x4a\x8e\xb4\xf9\xb4\x9d\x60\xff\x68\x0b\x38\xea\xe5\x80\x1f\xf8\x17\x52\xd9\x77\x76\x39\xbe\x93\xed\x97\xe5\x8c\x69\x4d\xb3\xfc\xf5\x3b\xd2\x33\x48\xbf\x73\x8e\x43\xa1\xd1\x16\xe7\xe3\x24\x24\xe4\x90\x65\xbd\xf2\x77\x23\x58\x11\x21\xfd\x01\xae\x7d\x32\x38\x5a\x4a\x90\xff\xd4\x7a\x7b\xaa\xa7\x72\x6c\xf3\xb7\xc9\x75\xbe\xec\xf4\x91\x9b\x43\x05\x8d\x9f\xf0\x6c\xff\x92\xb8\xda\x2f\x9f\x16\x65\xb2\x0c\xc4\x11\xe9\x8c\xff\xc5\xce\x51\x23\xcb\x4b\x3e\xdf\xd3\x14\x61\x95\x7d\xbc\x5c\x32\x95\x00\x04\x64\x43\x92\x72\x4b\xcb\x09\x97\x52\xef\x00\x82\x41\x95\x76\xe7\x54\x82\x13\x80\xb8\xce\x79\x13\x87\x43\x55\x9b\x8b\x00\x02\xcc\xa3\x8a\xd7\x70\xb2\xbc\xdc\x1d\x6f\x94\x39\xba\xc1\x63\xa6\x82\x42\x52\x09\x3b\x67\xa8\x6d\xfa\x7d\x80\x32\x9b\x0a\xcd\x37\x4f\xa3\x48\xe1\x7d\xb6\xd9\x61\x0a\xcb\x57\xbd\x33\xc4\xc5\x08\x73\x37\xe2\xbb\xe2\x8f\x53\xf1\x01\xd7\x0f\x13\x8b\xef\x7c\xfb\xc1\x53\x23\x34\xeb\x2d\xc9\xb9\x67\xce\x47\xe2\x8f\x48\xfa\x15\xb6\xda\x81\xaa\x5c\x89\xcb\x0f\xeb\x27\xf8\x36\x62\x2d\xed\x8e\x80\xc9\x48\x3d\x6c\x7f\x03\xa3\xb0\x28\x78\x4c\x75\xf6\xc4\x26\x0c\x5c\x7f\xf8\x80\x82\x75\x37\xde\x0a\x5a\x7a\x31\xae\x15\x77\xef\x97\x12\xdd\x6b\xd4\x9c\xfc\x5f\xea\x7f\x9f\xad\xdc\x4f\x75\xd4\xef\xf8\x4b\x7b\xe0\x41\x88\x50\xb7\xae\x1b\x2a\x62\x07\xe7\xd0\xb7\xf9\x27\x75\x62\xa8\x8b\x45\x84\xa1\x1d\x47\xf2\x05\xdb\x3e\xa4\xa1\x84\xa8\x73\x9e\x6e\x29\x1e\xe6\xda\x6d\xec\xd0\x41\x57\x56\x42\xbd\xa3\xad\x99\x0c\x1c\x2b\xff\xda\xd5\xa1\x7a\x38\x73\xa7\x31\xf1\x96\x3f\x87\xda\xfd\x61\xfb\x08\x47\x6b\xd7\xdf\xe0\x94\xa5\xa7\xfa\x04\xad\x62\x27\xe9\xbe\x4c\xb9\x34\xd1\xb4\x4f\xb9\x85\x4f\xc1\xaa\x0b\xa5\x6f\x7f\xc3\x1f\x4a\xe5\x14\x8b\x51\xb4\x37\xa9\x1e\xed\xf3\x79\x5f\xcb\x54\xe2\x78\x08\x87\x3d\x66\xef\xa8\x41\xe6\xed\x85\x92\xd6\x4e\x28\xed\x57\xb8\xc0\xe8\x49\x29\xff\xa6\x55\x4b\x05\x7c\xfa\x17\x21\xdd\x57\xcf\x55\x29\xbf\x96\x56\x24\xe5\x5f\x56\x3b\x95\xfe\xb7\x3f\x85\x75\x49\x7a\xc0\x2a\xa5\x98\x38\xae\x09\x1f\x39\xd0\x48\xff\x8e\x59\x6c\x5f\xc6\x2a\x72\xde\xe5\xb3\xf0\xd9\xca\x5e\x69\x81\x70\xd7\xfd\x9d\x46\x49\xd6\x63\xba\x74\x02\xc5\xec\x85\x8d\xad\x88\xe4\x53\x2b\x8d\xc4\x92\x62\x85\xd4\xf3\x36\x69\x07\x4b\x45\x33\xde\x4c\x2a\x0d\x87\x6f\x8a\xbe\x91\x17\x81\xd4\x80\x10\x16\xb4\x21\xf8\x7c\x12\x2a\x7e\x38\xe7\x98\xaf\x4a\x20\xf9\x3e\x96\x84\xb9\x62\x02\x82\x42\xb0\x95\xa5\xae\x63\x71\xb3\xda\x7a\xc5\xd6\x7b\xee\x86\x4c\xa8\x06\x8a\x0b\x83\xe6\xb8\xaa\xa3\x91\x9b\x66\x06\x53\x69\xad\x6c\x0c\x9f\xaf\xf8\x51\x7f\x77\xd5\x7e\x4b\xf6\xbc\xb1\xac\x38\x75\x5d\x55\xe5\xa6\xef\xc2\x66\xf2\xe6\x8c\xe3\x2d\xfa\xe8\x5f\x32\xb9\x83\xd8\xc4\x60\x4c\x83\x8b\x2f\x10\xd4\x54\xc0\x12\x3b\xfe\x98\xb2\xcf\xa7\x32\xdf\xe2\x6f\x6b\xb6\x52\xe4\xbb\x2d\x35\x52\x89\xe1\xc4\xdd\xa4\xf6\x87\x24\x37\x55\x7c\x45\xf8\x4d\x32\x73\xd5\x57\x05\xe0\x71\x7e\xe1\x6d\x0b\xb8\x7e\x93\xb6\xdb\xac\x68\xb6\x57\xac\x8b\x10\x45\xc4\xcc\x17\xb6\x9f\xb6\xbe\x9c\x6f\xd6\x4b\xb0\xf9\x48\x88\xe3\xac\x41\x05\x71\x07\x59\xf4\xf8\x98\x0f\x94\xe9\xbd\x12\x3d\x0a\x56\xa6\x95\x57\x9e\x99\x1f\xe6\x91\x22\xf2\x07\x5f\x71\xcd\xd2\x93\xd3\xb1\x83\xec\xf7\x34\xd3\x0f\xf6\x09\x8d\xf4\x09\x2a\xff\xd8\x87\x49\xfb\x64\x34\x3c\x87\x4b\x18\xf8\x9b\xa5\x87\xe8\x31\x5a\xd1\x4a\xb6\x04\xd7\xc7\xc7\xdb\xf2\x0d\x72\xae\xa0\x27\x66\x3f\x30\x15\x37\x8f\x6e\xa9\xb6\xc7\xfb\xfd\xe3\xa2\x78\x34\x37\xde\xc0\xa9\xc3\x80\x47\xee\x51\xaa\x2d\x8f\xf7\x7a\x52\x51\x10\xea\x8e\x20\x0d\xf9\xc9\xf4\xbc\x05\xe3\x82\xc8\xd5\xaa\xbd\xfb\x20\x7e\xa1\x4d\x9b\x4e\x19\xfb\x49\x34\x07\x12\x51\x6e\xf8\x48\x7f\x2d\x1b\x4a\x5d\xca\xd2\x61\xe4\x02\x64\x92\x93\x4a\x57\xb7\x77\xf7\x4d\xcf\x2d\x44\x28\x00\xed\xd9\x1f\xc1\x06\x04\xd3\xbb\x70\x11\x24\xb5\x88\xce\xe8\x6e\x31\x03\x37\x75\xb6\x88\x2d\xa7\x0e\x16\x60\x4f\xa9\x17\x2d\x5c\x43\x13\x9f\x0b\x5d\xcf\x77\xb8\x58\xcc\xb5\x3d\x9d\xfa\xf7\xf9\x89\x1d\x0d\xdc\xeb\x93\x17\xb2\xb2\x3b\xda\xbb\xe3\x9c\x24\x9a\x0d\x73\x47\xfd\xd2\xd3\x8e\x00\xb6\x6b\x9a\x77\xdd\xf2\xef\xdc\x9a\x7f\x24\x19\x5b\x84\xfa\x44\x1e\x02\x55\x3e\x1b\x65\x92\x24\x54\x6e\x8e\x45\x1e\x96\x40\x9d\x09\x74\x81\x79\x6e\x57\xbf\xc1\x78\xf6\x5f\x71\x76\x72\x81\xab\xd7\xa4\x32\x74\x36\x81\x8a\x17\x48\xde\xfa\x48\x4f\x49\xae\x7a\xed\x87\x26\xc3\x35\x84\x23\x88\x51\x4f\x76\x9c\x7f\x7c\xc8\xf5\x8e\xb9\x6b\x1d\x70\xa2\x8a\xe7\x27\x8b\xa4\x72\x84\x2d\xc3\x55\x37\x98\x02\xf9\xca\x1b\x5f\xcb\x0f\xd7\xe5\x66\x20\xf5\xcc\x32\x01\x57\x6f\xbc\xe4\x80\xc6\xc6\x3b\x9a\xe1\xde\xad\x9d\x5e\xf2\xd3\x80\x90\xbf\xb0\x0b\x3f\xc2\x7b\xe0\xb4\x14\x2a\x44\x31\x8a\x77\x93\xf6\x98\x43\x53\xf3\xb5\x59\x48\x1c\x9d\x1c\x65\xcb\x4d\x47\x39\x98\xca\x2e\xc8\xee\x6c\x08\xe1\x93\xf4\x8f\x03\x8e\x86\x53\x4a\x1c\x56\x2f\x30\x93\xde\xab\xba\x0b\xd7\x47\x64\x0c\x0c\x90\xae\x82\xfc\xa6\xd4\xcc\xf9\xd9\x08\xd4\x47\x70\xb7\xe6\x1a\x81\x2c\xd9\xa3\x0f\xe3\xf5\xb7\x0e\x25\x10\x56\xea\x48\x5c\xfb\x83\xd5\x1e\x4b\x03\x12\x77\x5d\xd0\x98\xda\x51\x3c\x16\x0e\x69\x12\x23\x29\xcf\xcd\x2c\xc7\x7b\xa4\xad\xb8\xfa\x6c\xf9\xd8\x40\x26\xe1\xc5\x22\x96\x1a\xf1\x8f\x2a\xaf\x68\x22\x6e\x0c\x23\x95\x25\x7b\x6e\xec\xba\x2c\x68\x5e\x38\xca\xd7\x9d\xd5\x7e\x9e\x56\xcb\x27\xfb\xed\xf5\xf1\xaa\x6b\x93\xc6\x37\x67\x15\x84\x60\x88\xf4\x3c\xc2\x55\x85\x5a\x7d\x5b\x9c\x94\xe8\x66\x1b\x06\x2d\x53\x7d\x5e\xc5\x1d\xbe\xed\x6c\xc2\x4d\xbf\x8c\xde\x09\x31\x83\x57\x94\x30\xf0\x20\x78\x7d\x39\x9d\xa5\x14\x53\xbc\xbd\xa2\x94\xe6\x3d\x82\xce\x4e\xcf\xcf\x5f\xbd\x89\x4e\x58\x70\x58\xc4\xc5\xff\x99\xf5\x91\x61\x68\x54\x1d\x23\x2b\x38\x7e\x55\xb7\x4a\x36\x79\xe8\x88\x5c\x73\x2b\x9a\x9b\x17\x80\xd3\x95\x51\xd6\x9b\x6a\x28\x90\x0b\x72\x06\x99\xf9\x44\xa9\xf8\x49\x30\x19\x32\x5e\x53\x77\xba\x48\x42\x9b\x1c\xab\xa3\xae\xf2\xf1\x3e\x86\xff\x7c\xd2\xb2\x61\xf1\x17\xee\xd7\x27\xd1\xcd\x28\xf8\x53\x40\x8a\xdd\xf3\x2a\x75\x07\x44\x08\x42\x7c\xc2\x2b\xe1\xd4\xc2\x33\xde\xd7\xe8\xe7\xc7\x1b\x15\xdf\xa8\xb9\x56\xbd\x2b\x9f\x95\x5b\x6d\xec\x0d\x8e\xd8\x6c\xef\x6b\xec\x0b\x69\x2c\xe5\x78\xef\x9c\x3b\x24\x2d\xe4\x9d\x8f\x07\xcd\x42\x6f\xa3\x13\xd8\xcc\x14\xb1\x06\x25\x7e\xea\xb4\xec\xba\x7e\x71\x9c\xf6\xa7\x77\xb6\x1a\xe1\x7b\x13\x57\xb5\xf7\x5d\xd7\x9a\x6e\x10\xb1\xf2\x85\x93\xcd\xc4\xd6\x17\x60\x61\xdd\x58\xcd\xd1\xfe\xb9\xfa\xc4\xbb\xb5\x08\x76\xc3\xc9\x2d\xea\x70\x5f\x7a\x7c\x7b\x2a\x63\xe2\xa9\x6b\x62\x74\x49\x74\x99\x4b\x62\x00\x87\x5f\x79\xba\x68\xe3\xad\x02\x21\xf2\x69\xde\x5d\xe5\xd2\x2b\x2b\x33\x25\xa7\x77\x55\xd2\x3e\xcb\xf2\x3a\x5a\xdf\x91\x9a\x10\x5b\x7f\x34\x78\x0e\xa0\x50\xf2\xbd\xf8\x95\x44\x52\x8b\x61\x11\xc4\x4f\x5c\x23\x1f\xf0\x81\xe3\x88\x49\x7a\xf7\xef\x34\xee\x4c\x72\xb3\x06\xe1\x72\xd2\x8e\x2c\x46\xd8\xb8\x11\x81\x28\x22\x50\x25\xa4\xb1\xe4\xa4\x77\xce\x7c\x76\x27\xab\x4f\x6e\xb3\x74\x34\x47\x70\xa6\x41\x4f\x21\x30\x55\xde\x50\x04\xd9\xa2\x2d\xb7\x24\x13\xb1\xdf\x92\xb9\x78\x75\xf9\x66\x61\x5e\xc1\x03\x3b\x72\xba\x18\xcc\x3f\x46\x39\x80\x1c\x2a\x51\x15\x7b\x89\xe7\x41\xa8\xe6\x2b\x75\xfe\xe2\x2f\xee\xc2\x23\x88\xf3\xe4\x2a\x7b\x77\x70\x1b\x06\xa1\xb9\x32\x6f\x61\x36\x63\x57\xcf\xb1\x2d\x52\x85\x92\x3b\xfd\x74\xc4\x39\xc6\x06\x94\xb0\x81\x3d\xc5\x9f\xe2\x2e\x9a\x51\x55\xde\x9e\xa2\x70\x0c\x39\x15\xcf\x15\xe2\x4e\xe1\x9c\xc9\x76\xc5\x41\x88\x10\x66\xf2\xd6\xa8\x23\xc7\x9d\x57\x38\x8e\x76\xc1\x2f\x55\xed\xed\x7b\x65\xf4\x71\x4d\x0b\x6f\x11\x08\x56\x80\x19\x08\xdc\x53\xed\x70\x5e\x23\x3f\x66\x60\x44\x7b\xeb\x96\xcf\xe4\xff\x0c\xc4\x41\xe2\x37\x2d\x43\x1c\xa7\x09\xc4\xba\x29\x6e\x97\xdf\xd2\x9f\x19\xb1\x5e\x5f\x81\xa0\xf5\xc9\xb2\xbd\x5e\x8e\x92\xe5\x8b\x33\xf1\xab\x81\x85\x23\x1b\xdc\x55\x39\xb7\x97\x80\x59\x2c\x63\xf9\x78\xef\x10\xb3\xd4\x61\x94\x05\x40\xdd\x07\x1a\xe9\x95\xe4\xd2\x9a\xfd\x01\xe4\x4a\x47\x08\x1b\x17\x6e\xd3\x95\xbc\x33\x65\x05\x66\xf7\x79\xb3\x3d\xa9\xdd\x66\xdb\xbf\x74\xfd\x12\x66\x76\x9e\x21\xa2\x05\xb0\x74\x8b\x8f\xb4\xba\xf6\x4b\x6c\x3f\xcb\x31\xef\xf4\x90\x0e\xae\x69\x3e\xaa\xb8\x79\x01\x5f\x20\xbe\x8a\xc5\x81\xd8\x7c\x3e\x47\xa6\x0a\x61\x1c\x49\xee\x28\xbd\x9c\xca\x08\x9d\xe9\x50\x74\xaf\x1e\xad\x6d\x0f\x30\xb9\x2c\x35\x06\x54\xee\xa6\xf0\x51\xb1\x79\x96\x83\x25\x54\x29\x79\xc1\x03\xc6\x2a\xf6\x87\xc7\x9c\xb5\xc1\x11\x54\xac\xa7\xa0\x2b\xde\x78\x0a\xca\x00\xaf\xc8\x48\x08\x20\x01\xd5\x5d\xe9\xf6\x4e\x6e\xe5\x65\xb4\xa0\x1b\x30\x67\x42\xab\xec\xb5\x44\x47\x43\x4c\x77\x5c\xe9\xe5\xd0\xe2\xa1\x1e\xbd\x7c\x03\x11\x42\x9c\x4b\x7d\x3c\xf7\x02\x73\x7f\x8d\xb3\x0c\xdc\x81\x8b\x37\x01\xa9\xe2\xb2\x26\xc5\x78\xa3\x84\x9b\xe7\xf0\xe3\xff\x7c\xf9\xea\xfc\xc4\xfc\xfa\xf8\xe6\xe6\xe6\x31\x6a\x78\x3c\xb4\xbc\x62\x0a\x57\x9c\x98\xff\xf2\xf2\xc5\x89\x71\x9b\xcd\x27\xda\x85\x1e\xb1\x3d\xd4\x25\x30\xef\xb7\xe8\x46\x75\x03\x1d\xe8\x8f\x91\xb1\x31\x15\xd3\xed\xc5\x11\xff\x75\x8b\xc1\xad\x34\x67\xce\x98\xd9\xf0\x68\x11\x1f\x04\xbf\xa1\x8f\x54\xa9\x75\x9b\x96\xda\xbf\xe4\x7f\x69\x7a\x65\x37\xef\xa6\xf1\x09\x26\x10\xb8\xb9\xc4\x5d\x78\x0e\x11\x21\x6f\x5f\x20\x92\x03\xb8\x24\x8f\xa7\xce\xdf\x38\xc0\xad\x29\x4e\x28\x11\xb8\xa5\x75\x6b\x76\xe3\x93\x49\x90\xf9\xe3\x25\xae\xab\xeb\x9b\x49\x35\xec\x95\xd8\xd4\xd5\xad\x04\xfc\x0e\x0b\x43\x56\x19\x72\x75\x95\x2d\x26\x45\x39\x06\x63\x94\xcd\x89\x53\xc2\x6f\x39\x28\x06\x31\x27\xbd\x2d\x30\xaa\x43\x22\x15\x90\xb4\xd7\x1b\x8e\x72\x87\x2f\x73\x83\xcb\x4f\x52\xdb\x4c\x89\xd4\xb6\x78\x24\x57\x90\x23\xfe\x88\x27\x70\x8f\xed\xed\xd6\x5b\xdf\x66\x31\xc0\xce\x98\xf3\xb8\x91\xfd\x48\x04\x12\x5f\x7c\x0d\x6b\x5e\xaf\x95\xe0\xa4\x12\x94\xa5\x99\xa4\x7b\x73\xf4\xa9\xc4\xee\xa7\xdd\xd1\x53\x9f\xaa\xc4\xf7\x05\x21\xd6\x3d\xf2\x45\x1b\xf6\xb3\xd8\x37\x9e\x1a\xfa\x48\xfe\x72\xff\xb9\x1c\x0b\x36\x4c\x3f\x26\xe2\x9d\x67\xb3\x77\x0a\x76\x4a\xa8\x52\xd1\x88\x09\xd5\x94\xaf\x2b\xe4\xb8\xad\xd9\x56\x24\x80\xc7\x8c\xee\xe1\xdb\x89\xc7\xaa\xd3\x86\xc4\xab\x66\xa5\x9c\x5f\xa2\xe0\x70\xd0\x2a\x98\x01\x35\x69\x24\xb2\xe5\x9e\xf0\x33\x44\x56\xb6\x55\xa4\xb3\x41\x04\xcc\x4e\xde\xcd\x25\xc0\xf8\xae\x2f\x2e\x11\x78\x7f\x7a\x7f\x51\x6e\xde\x6e\x24\x55\xcb\x5d\x32\xbd\x13\x37\xca\x1b\xbf\xb4\x32\xde\xec\x3b\x7e\x11\x0c\xe6\xd7\xdc\x3c\x46\x0a\x64\xd5\xdc\xca\xb5\xf0\x27\x65\x47\x5c\x75\xab\x77\x76\xcb\xd1\xf0\x22\xe4\xf2\xb4\x28\x08\x4f\xf8\xc4\xbd\xda\xd4\x5a\xd4\xac\xd2\x0a\xff\x5e\xef\x1e\xc2\x30\x2c\xd7\x77\x6d\x0d\xe5\x9b\x4b\x12\x44\xa6\x4f\xa5\x26\xfb\x99\xee\x8d\xf8\x61\x4a\x13\xf3\x9b\xce\x4f\x42\xf5\xc7\x6f\x3a\xa7\x25\xe3\x75\xe7\xa4\xe4\x07\x5d\x77\xce\xd0\x33\xbe\xc4\x1c\x47\xf9\x21\xf7\x98\xe7\x06\x3c\x16\x83\x67\x31\x3e\x03\x3f\x15\x86\x8b\x74\x60\x1f\x70\x9f\x79\xa4\x62\x7f\x90\x3c\x3c\xd7\x11\x8f\x8f\x04\xb1\xef\xb7\x5c\x93\x70\x78\xb5\x20\xed\xec\xa6\xc3\xbd\x60\x3c\xf1\xb1\xbc\xbc\x82\xa3\xbe\x4d\x62\xdf\x76\xb8\x39\xc8\x1e\x62\x0c\x8e\xd3\x76\x5a\x1a\xf2\x4f\xd3\xe4\x14\x6f\xb9\x51\x7f\x6e\x4e\xe3\x33\xcf\xfc\xb5\x81\x27\x94\xce\x6f\x91\xb1\xd6\x97\x44\x82\x59\x68\x99\x6e\xd7\xdc\xac\xf0\x8b\x2f\x37\x77\xec\x5f\x47\x32\x02\x97\xbb\x44\x8a\x87\xc3\x6f\xc1\xbd\xe7\x52\x0f\x0b\x50\x5a\x0d\x75\xd2\xa8\xb4\x1b\xad\x59\x9b\xc4\xd2\x45\xa0\x4a\x3a\x13\x00\x97\x66\x27\xaa\x7b\xbc\x22\xe7\xd1\x45\x5b\xff\xdb\xe7\xe7\xfa\xc5\x6e\xe7\x1c\x29\x89\xfd\xce\x71\x4e\x2d\xd1\x55\xd9\xaa\xb2\x98\x7a\xb6\xfb\x1c\xb9\x80\xc0\xbf\xfd\x1b\x87\x02\xd2\x44\x98\xa2\xb5\x57\x3d\x29\x07\xbf\xc9\xed\x2e\x49\x24\xb1\xd9\x97\xbb\x68\xdd\xe3\x69\x29\x42\x0e\x90\x4d\xf8\x5a\x73\x6f\x7c\x3a\x9f\x49\xed\x83\x4b\x8e\x4f\xb6\xd0\x62\x12\x34\xa6\x38\x13\x1f\x00\x7e\xca\x41\xde\x3c\x12\x73\xf0\xb4\x49\x5e\x3b\xab\xe4\x41\x3f\x73\x19\x56\x8d\x07\x22\x3e\x99\x48\xe2\x3d\xae\x15\xc4\x2c\x96\x00\x5f\xad\xd7\xa5\x53\xbe\x9b\x96\x0a\xcf\x82\x79\xe3\x35\xc4\x80\x78\xd3\x42\x9e\x70\x89\x31\x4c\x90\x3b\x04\x8b\xb4\x8f\xa9\xa6\xf7\xf6\xb2\x79\x49\x9d\xa7\x34\x29\xc2\x78\xd1\x11\xf4\x69\xb5\x2f\x12\xe5\x80\x94\xf0\x8c\xcf\xbc\xb4\xed\xbb\xa2\xb9\xa9\xc5\xaf\xcb\x97\xbf\x69\xf9\xb0\x84\x03\xbb\x67\xd3\x27\x8f\xbc\x50\x65\x1c\x86\x66\xda\x60\xea\xac\x1d\x9e\x42\x13\x43\x43\x04\x86\xac\x0b\x61\xed\x8c\xa3\x34\xc9\xa3\x0d\x8b\xc5\xdc\x32\xc9\xee\xb4\x8a\x4d\x86\x32\x1f\x4f\x67\x31\x29\xe2\x0f\xdd\x89\x77\x97\x5d\x08\xf0\x38\x9a\x7f\x7f\xc5\x8a\x5f\x68\xb5\xfe\x4a\x11\x3f\x61\xe4\x6d\xf6\xa1\x6a\x58\x0d\x59\x3c\x93\xc9\x98\x59\xec\xfc\x94\x86\xac\xf8\x4b\xbc\x9b\x61\x46\xeb\x9e\xb5\x4a\xbf\xf2\x83\x7b\xd8\xb4\x1e\xbf\xcc\x56\xca\x44\x34\x90\xe0\xdb\x3a\xf6\x1b\xc4\x40\xc7\x12\x57\x12\x9f\xa6\x48\xec\x3a\x5a\xba\x3f\x25\x21\x67\x27\x7e\xf3\xe3\xb7\x4b\x23\xa4\xbe\xeb\xe6\xe2\x45\xdd\xfc\xe9\x50\xb3\x63\xb9\x8f\x6f\xef\xf2\x4d\x5d\xe3\xe4\x82\x2e\x47\xbf\x5a\x84\xeb\x49\x08\x33\xc9\x9e\x41\xe3\xa6\xf8\xfa\x90\xba\x27\x07\xe9\x0e\x2e\xa2\x72\x32\x2c\xaf\x36\x96\x1c\x2f\x14\x6f\x22\x76\xd4\x67\x9c\xe8\x3d\xc7\xa7\x35\x50\x33\x36\x03\xdc\xb3\x11\x7e\xb4\x5b\x4a\x1c\x69\x0e\x34\xa8\xd6\xbb\x6e\xc9\xf6\xba\xd2\xa7\x66\xd1\x0b\x8f\xdc\xa3\x42\x5d\xd2\x5b\x0d\x90\xc0\xb5\x02\x29\xd3\x1b\xb2\x31\x10\x6e\x12\xc8\x9a\x13\xef\x80\xf5\x78\xfd\x41\x5e\xf9\x91\xb0\x50\x3a\x81\x7c\x1f\x93\xe3\xaa\x97\x1c\xd7\x12\xd1\x25\xc2\xe4\x22\xbe\x6e\xed\x1f\x5e\x61\xcf\x23\x1f\x2e\x2a\x34\x19\xee\x56\xc3\x04\xd1\x31\xa0\x2c\x87\xa4\x8e\x6f\x14\x1e\xc7\x1a\x65\xd7\x05\xbe\xff\x17\xd6\xa9\x21\xc3\xfa\xf7\x5f\xb3\x8b\x9d\x41\x91\xd3\xa7\xfd\xd4\x70\xd7\xd1\x66\xa6\x75\xfe\xcd\x7b\x2e\xad\x8e\x6c\xa5\xff\x5a\xa1\x1b\xe7\xec\xb0\x77\xc4\x71\xfc\xf3\x67\xdb\x47\xe3\x10\xa6\x26\xb0\xd1\xb3\xc9\x21\x2b\x44\x26\x7c\x4d\x9b\xb3\x90\xeb\xcd\x7f\xfa\x98\x39\x87\x8f\xca\xce\xe4\x29\xde\x11\x5a\x3e\xe0\x64\x42\x4f\xb0\xa9\xe0\xbf\xe4\x00\x3b\x3d\x38\x9c\x51\xe6\x46\x51\xf0\x5e\x65\xc7\x8c\x1a\xfe\x4e\x8a\x24\xd2\xb7\x90\x88\x4c\xe4\xbb\xe3\xa0\x77\xfc\x0e\xf2\x58\xcf\x1b\x07\x82\xf8\x65\x2e\x32\xed\xb4\x58\x8c\x0f\x91\x63\xf6\x5a\x36\xb2\x9c\x27\xd8\x18\x3f\xc1\xbf\x67\x11\xf6\x4a\x12\x57\x22\x0b\x18\xf1\xf6\xf7\xff\x71\x67\xb8\x88\x23\x87\x33\xef\x8b\x1b\x31\xee\x3f\x68\xd8\x4c\xf0\x88\x31\x51\x9e\x2b\x96\x06\xcc\x19\x8d\xfe\xbd\xf1\x24\x62\xdc\x8c\xb9\x78\x12\x73\x87\x1b\x41\xff\x2d\xbd\x02\xdf\x31\xc7\x06\xa2\x99\xe3\xe8\x93\x37\xf2\x04\x85\x47\x65\x3f\x79\xf1\x34\x22\x55\x0c\xc0\xb3\xf3\x2c\x01\x76\x84\x5d\x08\x67\xdf\x78\xc6\xde\x8c\x33\x3c\x79\x25\x65\xa1\x28\xf5\xc0\x33\x05\x92\x13\xd0\xe5\xc5\x91\x8c\x51\xf1\x49\x23\x73\x6e\xff\x3e\x4f\x8f\xa3\x5e\xf2\xf9\x53\x4c\x26\x5c\x6e\x9c\xad\x96\xe7\x78\x46\x94\x5f\x7c\x89\x79\xa2\xac\x2d\x43\xc8\xa2\x98\xc3\x6f\x99\x2e\x4f\xd7\x6b\xd8\xa3\xe1\xb4\xee\x33\x94\xd1\x0a\xf7\x2a\xb7\xe0\xb2\x10\x44\x93\x28\xb9\xfe\x89\x95\x5e\xe3\x36\x88\x90\xea\x03\x82\x93\x68\xfd\xe5\xa4\x36\xbc\x14\xa4\x2c\x9b\x1f\xad\x57\x7e\xbd\xc0\x45\x84\x65\x78\x2b\xc8\xa7\x4e\xfa\x26\xc9\x90\x7e\x34\x00\xd2\xd2\x87\x39\x22\x24\xbe\x70\xcc\x11\x66\xa0\x46\x4f\xa3\x32\xf7\x14\x53\x7d\x16\x52\x3c\xc6\xe1\xe1\x77\x77\x2b\x09\x48\x01\x73\x74\xf6\x12\xd6\xc2\xb7\xc0\x72\xf0\x4c\x47\x20\xda\x66\x5d\x49\x01\x3f\xac\x2f\x78\xa3\xdb\xcd\x35\x7e\xa2\x71\x1e\x07\x18\xa0\x87\x6e\x87\x18\xdf\xa1\x43\xfa\xbe\x72\xde\xa1\xf1\xbd\x92\x29\xe8\x87\x75\x49\x5a\x73\xec\x03\x2e\x78\x11\xaf\x1d\xee\x1c\xba\xd5\xfd\xfe\xcf\xd2\x39\xd1\x41\xb7\x62\x6f\xc7\x2b\xa3\xe9\x61\x67\xec\xad\xbf\x10\x9f\x36\x2b\x8f\x06\xc9\x63\x3a\xa3\x2b\xf2\x52\xe8\x08\xdb\x96\x4c\xf1\x40\x99\x48\x33\xcf\xd3\x23\x75\x15\x54\x47\x01\xa6\x3e\x88\x72\x38\x2d\xeb\x61\x83\xeb\x53\x7c\x81\x93\x71\x1c\x4b\xd4\x53\xe6\x1b\x86\xef\xc5\x52\xde\xc6\x65\x78\x36\xc1\x67\x7f\xa0\x2c\x20\xc0\x3e\xa6\x12\xe4\xd5\x91\x8b\x53\x5a\x27\x4c\x4c\x2c\xef\x29\x05\x39\x8d\x13\x45\xdb\xf7\xa5\x6e\xdc\xbc\x1f\x49\xd5\x73\x1c\xe3\x18\xa8\x17\x23\x71\xc8\x95\x0a\xad\xca\x20\x03\x6b\xc0\xa3\x9c\x7b\xc5\x40\x39\x12\x24\x25\x86\xa1\x9c\x17\xd0\x9c\xca\x6b\x9e\xe1\x21\x4c\xff\xe6\x52\xb6\x35\xe1\x69\x55\xb0\x64\xd5\xda\x9c\xb9\x4c\xbb\xe8\xc5\x0e\x7e\xac\x22\xf2\xaa\x91\x44\x94\x10\x93\xa9\x94\x1c\x30\x6c\x98\xf8\x16\x31\xd4\x24\x0d\xc6\x2f\x13\xa5\x4b\x61\x55\x7c\x19\x87\x1c\x9e\x2a\x3d\x46\x7a\xd2\x88\x0d\xba\x40\x46\xe4\xe7\x4f\x76\x2a\xd0\xa8\xbb\xba\xe5\xa9\x90\x27\x35\xef\xeb\x91\x3e\x17\xfa\xe7\x7a\x94\xd3\xa9\x0f\xe9\x56\x79\x12\xfa\x65\x21\x5a\x25\x74\x27\xa3\x38\x38\x67\xbb\xab\xdb\x47\x02\xd9\x33\x29\x97\x95\x38\xd9\x40\xb1\xba\x74\x13\xdd\x59\x56\x3d\x53\xd8\xf1\x51\xf8\x70\x99\x56\x4b\x94\x4f\x8c\xc2\x75\x1f\x9c\x23\x53\xf7\xc7\x1d\x8b\x57\xa5\x01\x00\xef\x2a\x50\x9d\xd8\x74\x8c\x10\x73\xc2\x46\x23\x84\x78\x0f\xaf\x20\xfc\xc8\x13\x43\x9a\x7f\x78\xac\x72\x79\xc1\xa6\x7c\x51\xee\x7c\xb4\xd2\x46\x9e\x0d\xe9\x82\xae\x9d\x8a\xef\xd3\xe0\xf3\xc7\xe3\xff\x0f\x24\xfb\xcb\x2b\x81\xd0\x74\xb2\x17\x30\x4a\x8d\x78\xb6\x65\x49\x35\xbe\x18\x8a\xf8\x28\xec\xed\xb5\x3c\xbd\x86\xab\x16\xbf\xc8\x8a\xe1\xc0\x8e\xb4\x6f\x10\x37\x89\x24\x1e\xf9\xaf\xf1\x25\xd8\x53\x8b\x14\xc4\xad\x5b\x7e\x87\x9f\x1a\xc5\x92\x13\x5e\x58\x7c\xf7\x4d\x4f\xf2\xd0\x1b\xfc\xfd\xd2\x3c\xe4\x70\xf8\x01\x03\x6c\x6a\xa5\x06\x48\xc4\xbb\xf4\xbf\x76\x2e\x05\x08\xae\x7f\x50\x02\x7d\x40\xe6\xac\x86\x5b\xf4\x8f\x2d\xba\x43\xc7\xb5\x34\xf2\xe0\xb7\x74\x93\xd7\x80\x1f\xc2\x4c\xbb\x2b\x9c\x1d\x63\x9a\xc3\x3b\xb0\x70\x74\xc0\xb9\xfa\x4e\x9e\x36\x2c\xf0\x98\x5e\x78\xed\x39\xa6\xe4\x96\x97\x34\x47\x63\xc7\xaa\x38\xb9\x73\x69\x5e\x2a\x43\x8c\x6b\x97\xe5\xe5\xb6\x03\x6d\xaf\x34\xf7\xba\xc9\x5b\x9e\xb6\x28\x1b\x39\x4b\xf2\x57\x09\xb3\x8e\x89\x97\xe3\xb8\x68\x1a\x5a\x73\xa6\x57\x9d\x3c\xff\x90\xe6\x48\xa8\xa7\x6c\x5c\x62\xfc\x4a\x93\xae\x9a\x5a\xd9\xb2\x7f\x64\x2d\xe6\xa9\x16\x91\x26\xf5\x3e\x80\x4b\x9a\x18\x2e\x8b\xa6\x89\x65\xcd\xb1\xe3\x77\xe2\x67\x92\xd5\x41\x1b\x39\x1b\x5c\x88\x8f\xaa\xfb\xb4\xe1\x23\x76\x8e\x76\x99\x40\xf1\x2b\x4a\x7c\x4e\x3a\xb3\xee\x12\x23\x43\x58\x80\xf3\x2b\x74\x25\x8f\xd1\x6a\xd4\xf7\x79\x90\x76\xa8\x97\x4f\x3b\x09\x5d\x14\xf3\x71\x0d\xa5\x5e\x69\x10\xd2\x86\x23\x7a\x21\xe6\x09\x51\x94\x57\x78\x85\xcd\x49\x00\x30\x1b\xc3\xa6\xde\x55\x34\xb2\x54\x96\xa2\x60\xd3\x9e\xad\x25\x70\xdb\x72\xcc\x6d\x63\xed\xca\xa9\x09\x6a\xf4\xc2\x5f\x17\x24\x9c\x3e\xb4\xe2\x97\x92\x7a\xe2\x94\x1f\x56\xd1\x4c\x77\xc7\x15\xfd\x81\x9e\xb2\x01\x13\x41\x75\xca\x6b\x37\xdb\x47\xce\x1a\xc7\x36\x7c\x5f\x45\x73\x7d\x0c\x15\x55\xb3\x9e\xa7\x1f\xd4\x69\xbc\xb2\xbd\xdd\xe8\x73\xbf\xdf\xf9\x27\x1b\x11\x51\xbc\x60\xab\x1a\x35\x65\xdb\x35\x91\x52\x66\xa5\x6e\xc3\x36\x99\x6e\x38\xd6\xf5\xb4\xba\x51\x97\x33\xde\x2b\x02\xf4\x95\x85\x0a\xfe\x01\x0d\x1e\xed\x7e\xeb\xba\xdb\x7a\xb3\xe2\xc7\xa1\xbb\x1d\x9f\x13\xbf\x2e\x45\x7d\xe4\x17\x27\xe0\x10\xf6\x68\x41\x59\x9f\x4a\xbc\xa2\xf2\x37\xc7\xa7\xab\xdd\x23\xf3\x71\xf4\xbd\xff\x12\xb7\xa2\x95\x66\xf2\x02\x3d\x1c\x10\x50\xad\x66\xe2\x63\x85\x16\x7b\x8f\x06\x78\x87\x21\xee\xd4\x5d\x7d\xc8\x46\xee\x92\xca\x03\x41\x86\x95\x93\x25\xaf\x89\xe5\x6d\xb6\xde\xc4\x95\x21\x0c\x10\xdc\x3e\xae\x2a\x8d\x79\xca\x9e\x0d\xa3\xa8\x99\x1f\xd7\x0e\x95\xf3\x9d\x8a\x5f\x06\xef\x6e\x76\xf0\x61\xe6\x34\x6e\x7d\xf2\x26\x79\xe6\x00\x87\x88\x91\x78\xbc\xcd\x9f\xab\xf5\xcd\xb1\xc1\xa7\x9d\x9c\x59\xae\x77\xf4\xd0\x23\x63\xb2\x4e\x33\x7e\xc9\x01\xf4\xa8\x15\x78\x89\x93\xb0\x4e\xea\x0f\xf4\xd2\xf8\xb6\x10\xf6\xc1\x25\x03\x65\xd4\x69\xe0\x57\xcd\x57\xdb\xa6\x6d\x06\x52\x03\xdc\xf2\x7b\xff\x8b\x04\x1e\xce\x2b\xe7\xe0\xf9\xd0\xe2\x76\x35\x70\x34\xab\xb7\x12\xbf\x9a\x91\xf5\x92\xc3\x8d\x5a\x5f\x38\x23\xc4\x2c\x68\xf8\xa2\x30\x53\x6f\xf8\x18\xc3\x17\x39\x95\x14\x84\x22\xee\xd9\x73\x22\x96\xd4\x32\xcd\x9a\x64\xbb\x3a\x29\xf2\xaa\xe7\x23\xb9\x8c\x96\x1f\x1a\x8e\x18\xb9\xaa\x08\x95\xc3\x61\x05\x7c\x74\x1a\xc1\x6b\x27\xa1\x1b\x2f\x86\xba\x57\x35\x7f\xd2\x84\xef\x96\x96\x93\x3e\x89\x8d\x58\x1b\x9d\x29\x84\x28\x12\x5a\xe0\x12\xee\x89\xcc\xc2\xca\x04\x1d\x73\x28\xdc\x39\x7b\x18\x23\xf0\x19\xa5\xcd\xa2\x8e\x81\x8f\x61\x81\x4b\xcd\xa1\x22\x2d\x55\x16\x95\xcb\x4b\x3c\x17\xea\x7d\xbc\x04\x7b\x79\x8c\xcb\x98\xb7\x5d\x73\xac\x84\x9e\xc1\x8d\x7a\xa6\x67\x74\x76\xa6\x6f\xcd\xfa\x1f\x88\x86\x91\xe4\x48\xaa\x0a\xdb\x08\x60\x09\x40\xa1\x14\x72\xdd\x34\x3d\x14\x9e\x03\x64\x48\xf6\xc8\xcb\x70\x76\x51\xca\x03\xd6\xdf\x7a\xb0\x91\x18\x49\x25\x8e\x21\xee\x12\xb9\xb3\x98\xdb\x23\x48\xe6\x0a\xe7\x27\x1b\x52\xff\x88\xc1\x8c\x1a\xbd\xd4\x93\x15\x67\x5e\x5e\x12\xe4\x9d\x45\x43\xb3\xa3\x42\xbe\xe1\x7c\x19\x6e\x2c\x2d\xd3\x3b\x5a\x86\xb8\x1c\xeb\x39\xb3\x23\x71\x7c\x5a\x7e\xae\x79\x2e\x36\xdb\xbe\x3c\xe0\x84\x73\x92\xf5\xb0\x79\xe7\x7a\xdc\x45\xdb\xad\xd8\xa5\x20\xd6\xf4\x06\x91\x2d\x04\xeb\xcf\x28\x9b\x37\xd5\xb7\x0c\x3e\x8b\x4c\x62\x79\x7b\xd7\x5b\xf6\x08\x49\xe6\x40\x52\xf4\xed\x82\xef\xcf\xc4\xfd\x74\x54\xb4\xc1\xe5\xf1\x95\xaa\x10\xba\x37\x21\xa6\x85\x6a\x4e\xf9\x29\x98\x74\x9b\x46\x7d\x62\x76\x80\x88\x6f\x24\x4c\x78\x73\xbb\x91\xa7\xbe\xe4\x35\x57\x22\x11\xe5\xa6\x62\x21\x94\x7a\x93\x16\x61\x85\x89\x8a\x30\x69\x7d\xc2\x5e\xba\x12\xfe\x3f\x07\x13\xf2\xe6\xe1\x2e\x2c\x4d\x9c\x92\xb2\x30\xc6\x59\xf0\x03\x6e\xc9\xbf\x1f\xde\xf7\x42\xc0\xb9\x07\x78\xa2\x67\xe8\xec\x2c\xb8\xf6\xa3\x83\x34\xbb\x19\x04\x35\x80\x50\xed\x55\x6e\x6e\x68\x98\x7c\x5a\x8c\xae\x8a\xca\x2e\x07\xca\x07\xab\xf3\x1a\xae\x94\xe0\x67\xa8\xfc\x01\x4a\x3c\xee\x0d\x41\xc1\x15\xca\x4b\xe3\x3e\xc1\x0b\x94\x85\xbe\xf1\xde\x37\x21\x67\x36\xa2\x8f\xe4\x89\xc8\x05\x7d\xd9\xa7\xa8\xdf\xa7\x78\x8c\x86\x54\x7d\x40\x5c\x1f\x95\xe6\x4b\x16\xb7\xcb\x4b\x4a\x34\xfe\x61\x69\x16\x91\xce\xf5\xf6\x05\x7f\xbc\x69\x0c\x9c\x79\xd3\x71\xa5\xee\x64\x5e\xba\x7d\xff\xa5\xef\x85\xaf\x62\x14\xee\x46\x87\xc7\xb2\xbe\xb8\x55\x9d\x66\xca\xbe\xb9\xe4\x54\x0f\xc8\xa1\x6c\x97\x2f\x38\xa0\x6d\x56\x18\x01\x2e\x55\xbf\x19\x55\xf0\x02\x39\xe6\xdc\x46\x34\x8f\x9f\x1d\x7f\x81\x53\x01\x53\xf6\x12\x50\xd4\xf0\x35\x4e\xf8\x2d\x9a\xa1\xd6\x38\x1a\xa1\xf7\x47\x9e\x74\xf3\x8f\xe0\x31\x51\xf6\x48\x39\xfe\x9e\x5b\xc4\x44\x58\x25\xc1\x4d\x63\xb4\x46\xca\x6e\x15\x57\xc5\x28\xda\x3a\x9e\x99\x1c\xad\x13\x80\xf3\x52\x19\x81\xee\xf8\x1c\x4d\x9e\x8f\x4e\xac\xcb\xf9\x42\xe2\xe3\x70\x78\xee\xb3\xe8\x35\x53\x85\x48\x7b\x7b\x6f\x68\xd3\x67\x66\x76\xc9\x8d\x8b\x79\x3c\x05\x5b\x33\x41\x7b\x54\x8d\xc6\x79\xe4\xf4\x54\xfb\x30\x02\x9e\x7b\xfc\xf3\x0f\xbf\x6f\x0a\x97\x92\x3b\x5f\x37\xad\xca\x45\xde\xa0\x7f\xd5\x74\xd4\x9e\x08\xf9\x2c\xdb\xfa\x16\xef\x7a\xd3\x94\x66\x2d\x91\xa3\xa5\x07\xd6\x9f\x48\xb5\x78\xd7\xc1\xab\x5b\xec\xed\x97\xa0\x27\x75\x5e\x3c\x0d\xb3\xf2\x3e\xcf\x45\xbc\xf3\xb8\xe0\x4b\x67\x77\x53\xb0\xb1\x35\x8e\xcb\x25\x24\x8a\xbf\x53\x67\x18\x4e\xc8\x0f\x1d\xc4\xa1\x8f\x90\xcc\x44\xe9\x48\x8b\xa3\xf7\xa7\xc7\x71\xfc\xe7\x8f\x2a\x25\x27\xe9\x8e\x24\xe4\xa7\xa2\xde\x86\xb8\xe0\xb0\xca\x4e\x5e\x04\x0d\xb0\x08\xa4\xdc\x21\x92\x72\x00\x9b\xc4\xea\x15\x53\xa3\x92\x94\xac\xf7\x23\xa2\xf2\x92\xf3\xcc\x05\xf2\x7c\x21\x44\x44\x81\x0f\x32\x3f\x16\xa4\x54\x4b\x73\x62\xb7\x25\x21\x89\x62\x29\x09\xf2\x16\x62\x11\x7c\xe9\x25\x75\xce\x7b\x29\xe9\x20\xd7\x32\xea\x98\x5c\xd8\x48\x80\xe6\x48\xa2\x10\x43\x01\x1a\xbb\x68\x4b\x2a\x6e\xdd\x2d\x9f\x35\xb0\x79\x4a\x02\x6e\x3f\x2d\x2f\x70\x05\xca\xa7\xb0\x95\xa6\xa8\x97\xdf\xd2\x7f\xf3\xe4\x3c\x4b\x0e\x8f\xfa\x71\x66\x7c\xf7\x6f\x06\xc4\x13\xe1\xbf\xb3\x2d\x82\x64\x7e\x29\xb7\xa4\xe3\x73\xd4\xa4\x30\x83\x46\xf1\x33\x3d\x87\x0a\x54\x19\x71\xda\xd9\xf9\x97\x58\x18\x47\xb9\xb1\x66\x57\x6e\x77\x7c\x64\x4e\xc4\x66\x2b\x7e\xc3\xfa\xb0\x8b\x22\x12\x1c\x9c\xa3\x73\x81\x9b\x91\x72\x07\x93\x87\xc6\x75\x48\x20\x68\x34\x9c\x1f\x47\x83\x77\x43\xcb\xf5\x80\x83\x66\xc6\xa3\x7e\x36\x26\x9d\xcd\x08\xd4\x0d\xed\x08\xee\x0c\xc1\xc4\xe7\x40\xe5\x9d\xb8\x00\xf7\x54\xdf\x89\x63\x28\x89\x0b\x26\x7d\x91\xa8\x60\xa1\x3c\x1f\x88\x68\xfe\x29\x3f\x91\x9d\x03\xec\xc1\x00\x56\x9d\x5d\xbe\xec\xcc\x69\x61\x2e\x4f\x7d\x46\xb7\xef\x0f\x12\x60\xff\xf2\xe5\x9b\x0b\x73\xc7\xb2\x01\x64\x98\x7f\x03\xe8\x34\x27\x2e\x84\x2c\x4b\x5d\xa9\xd4\xe3\x5f\xb4\x41\xfa\xa6\x69\xe2\xef\x23\x60\xc7\x39\x30\xe6\x16\x57\xad\xda\x12\x2f\x5a\xc0\x3f\x5f\x4a\x2c\xcc\x4b\x3c\xf2\x84\xd0\x2e\x9a\x62\xba\x5d\x33\x54\x05\xae\x82\x77\xee\x60\xe5\x31\xa1\xf5\xad\xc4\x3e\x32\x8f\x4e\x1e\x2d\xf2\x4d\xb6\xea\xab\xce\x3f\x4d\x8a\x00\x71\xb0\x17\x34\xdb\xd6\x5e\x91\x96\xf3\xe6\xc5\x65\x18\xeb\xbb\xf2\x00\x50\x7d\xf3\x7b\x79\x49\xdf\xc8\x37\xfc\x78\xfa\x6d\xd8\x17\x38\xf7\x73\xed\x35\x29\xcd\xf9\x23\x63\x6c\x41\xc0\x51\xb3\xb9\x38\x7d\x39\xea\x01\xc7\x6c\xf2\x92\x58\xd2\x97\xd7\xe9\xa3\x7b\x98\xa2\x06\x77\x42\x37\x61\xcb\xd1\xb8\x11\xf9\xab\xee\xe0\x32\x19\xea\x0c\x01\x74\xc6\x92\x93\x9c\xf4\x06\xd4\xe7\x62\x84\x35\xa7\x93\x47\xab\xe5\xa9\x41\x95\x29\x6c\x42\xd7\x72\xa1\x2f\x6f\xe6\x7d\xf7\x08\x16\x39\x35\x8b\x1c\x2c\xaf\xe6\x43\xfd\xb2\xd2\xba\x96\x6f\xc5\x14\x74\xf7\xc0\xd5\x81\x4b\xaf\x1e\x30\x79\xc9\x0b\xe4\x80\x2b\xa1\xad\x7c\x32\x3d\xaa\x38\x79\xfb\x68\x52\x20\xbe\xe2\x30\xc2\x0f\xa5\x6c\x1b\x0d\xc1\xb7\x76\x9e\x4f\xe3\xd1\xf1\x63\xb7\x17\x92\xca\x33\x96\x9f\xd7\xfb\x7e\xce\x2f\xd6\x38\x6f\xef\x9a\x3d\x25\x0b\x76\x2e\x85\x25\x59\x26\x59\xc6\xc9\x83\xd1\x2e\x03\xb9\x16\x17\xd3\x4e\xd6\xe9\x31\x28\x5c\xf4\xc3\x25\xcd\x59\x80\x31\xdf\xd1\xe4\xe6\xea\x0a\xc1\xca\x10\xdc\x92\x7d\x97\xf5\xc6\xee\x2b\x49\x8e\xa5\xf1\x22\x30\x02\xdf\x37\x83\x18\xb0\xb6\xfc\x06\x1a\xaf\x5c\xda\x48\x24\xf3\xf3\x1e\x7c\xcd\xd9\xa1\x54\x3b\xe8\xb3\xed\x6f\xc5\xdf\x88\xf5\x3d\x1f\x76\x3e\x40\x8c\x9a\x0e\x4a\x61\x02\x05\xe1\xa6\x6d\x9a\x7e\xf4\xd0\xc6\x6b\x4a\x92\x76\x53\xf7\x5f\x9d\x05\x18\xd2\x37\x2b\x09\xd7\x7f\x47\x51\xdc\x8b\xe0\x1b\x1c\xec\xbd\xa5\x85\x69\x7c\x1f\x58\x12\x6e\x4b\xcd\x36\xb6\xca\x11\xb2\xf2\x4b\x62\x97\x9c\x96\x0c\x06\xee\xbe\xba\x8a\x19\x3b\x23\xc2\xa0\xc8\x7a\x2e\x6e\xc1\x71\x0a\xd6\x47\x96\xd4\x13\x3d\x7d\x4c\x21\x13\x81\x27\x26\x26\x42\x46\x4c\x4c\x64\xa5\x98\x98\x4c\x5a\x9a\xdc\x75\xd5\x78\xb6\x2e\x2f\x5f\xcc\x41\x84\xd7\x93\x3a\x5c\xf9\x84\x9f\xd9\x03\x38\xbd\x6c\x89\xc5\x3c\xf8\x24\x2d\x90\xe1\x76\x9c\x11\x6a\xc1\x75\xa4\x07\xdd\x2f\xd4\xa4\xfb\xe2\x01\xdf\xd8\x7f\xd0\x97\xc5\x3a\xa9\xca\xf3\x84\xe3\xbb\x0e\xbc\x21\x99\x04\x55\xcb\xb3\x47\x62\xf5\x2d\x9c\x02\x07\x31\xc1\x0f\x93\x75\x4c\x15\x17\xc6\xbb\xc1\xb3\x94\x27\xe1\xc1\xec\x9c\xa7\xc4\xee\xe1\xfa\x50\x9b\xa8\xfd\x2b\x92\x42\x7a\x44\x1e\x93\x7b\x44\x17\x43\xd5\xd9\xda\x1d\x29\xed\xa3\xfe\xfa\x28\xc0\x7c\x4d\xc3\xbf\xdb\xd3\x84\x97\x02\x81\xe6\x1f\x9c\xf8\x0d\x6a\x49\xff\xe6\x37\x5b\xde\xf2\x67\xc2\xc1\x8b\xad\xda\x9d\xab\x47\xa7\xfe\x5d\x6f\x29\xc7\x58\x51\x93\xc5\x53\xff\x4a\xae\xb7\x54\x4c\xf0\xc0\xb7\xde\xca\xdf\x10\xe6\xd5\x6d\xde\x09\x36\x2a\x44\xe5\xab\xcb\xfd\xb0\xe7\x57\x37\x2f\x11\xcd\xef\x0c\xd9\xd3\xbe\x1d\x48\x79\xb0\xcb\xa7\xfc\x49\x7d\xe2\xcf\x48\xd8\xe4\x72\x2b\x2e\xf0\xac\x2a\x3e\x99\x13\x5b\x8d\xf9\xa1\x14\x0b\x9d\x91\x6b\x3d\x09\xb2\x88\xb5\x45\x71\x37\x29\xf8\xda\xe9\xfb\xdc\x50\x8b\xbd\xc0\x2b\x06\xaa\x63\x95\xf9\x2b\xf3\xf3\xcb\x2a\xdc\x28\x55\xe8\x5f\x06\x37\x50\x63\xae\xde\xd2\xa2\xfe\x0b\x3e\xcc\x0b\xfe\x88\x18\x93\x7b\xa5\x6c\xff\x22\x5a\xa9\xa7\x21\x2f\x48\xfd\xec\x9d\x7a\x72\x70\x44\xfc\xb8\x70\xc6\x62\x91\xc5\xcd\x21\x8d\xe8\x41\x93\xc7\x12\x54\x32\x69\x47\x19\xcf\x4b\xce\x1c\xc3\x8e\xf5\xa0\x3c\xd7\xcf\x2f\x6d\xc3\x26\xd2\x7b\xf3\xec\xe9\x8b\x57\x63\xd0\x29\x19\xd1\x8c\x29\xd1\xd1\x8c\x39\x1a\x23\x87\xd0\xf3\x03\xe0\x83\xe8\x11\xe4\x91\xee\xcb\x72\x9f\xaf\x46\xcd\xd2\x19\xa4\x2d\x68\xd1\xb1\x80\x4f\x23\x94\xc8\x32\x73\x60\x73\xcf\x7d\xcd\xc1\xd1\x07\x07\x94\xad\x5d\xd7\xcd\xb4\xd9\x49\xf2\x51\x52\xd5\x75\x39\xe9\x50\xf0\x43\xdb\x5c\xc3\x2d\x0e\x0f\x12\xb1\x7b\xca\x0c\xac\x87\xf1\x75\x67\x17\x09\x2e\x34\x33\xf6\x96\xd6\x6e\x39\x16\xa3\xcf\x38\x71\xbc\x49\xb1\xa5\x04\xdc\x93\x0f\x1c\xb6\xf0\x71\xe0\xa8\xc0\x76\x13\xf0\x24\xd6\xe6\x04\x59\x45\xc9\x4f\xb1\x35\x89\x55\x78\x34\xc8\xaa\xbc\x72\x6a\xcc\x26\x8c\x40\xe7\x19\x0f\x71\xd7\xf7\x87\x2e\x09\x27\xc0\xaf\x76\x8d\x87\x34\xa9\x66\xd4\xc9\x43\xc9\x27\x10\x47\xa6\xe0\x3b\x7e\x07\x6a\x04\xaa\x0c\x66\x19\xd4\x8c\xab\x14\xca\xef\x14\xd2\x6b\x84\xc8\x26\x1c\xe1\x7b\x4d\xcb\xa4\x8b\xf9\x96\x53\x51\x02\x50\x23\x66\xcb\xd9\xc1\x9b\x6a\xb1\x69\x89\x81\x3c\x17\x8f\x16\x79\xcd\xb4\xe5\xc0\x95\x9a\x9d\x6c\x49\x9f\xd4\xd1\x3a\x2c\x06\x36\x10\xba\xba\xb0\x09\x2c\x9e\x56\xc0\x23\xff\x72\xe4\x40\x04\x11\x37\x14\x63\x7e\x78\x9d\x81\x60\x2e\xc1\xab\x27\x10\xee\x57\xc8\x76\xfe\xac\xf1\x7c\xd8\xc3\xe9\x93\xfa\x14\x6d\xfc\x69\x6d\x8d\x37\xe3\xb2\xf3\x11\x6c\x0d\xa9\xd8\xe7\xe1\xa6\x17\xaf\xc2\x40\x08\x9f\xfd\xf2\x55\xcb\x36\x3d\x38\x9c\x35\xf3\x3d\x51\x02\x9b\xf6\xc3\xc9\x5b\x5e\xec\xab\xe6\x3d\xc0\xe4\x73\x85\xc7\xcc\x13\xf7\xb5\xe0\xfb\xe5\xa1\x13\xa9\x2a\x4d\x5a\x7d\x96\x79\xcf\xf9\xac\x69\xef\x7d\x4e\x73\x58\xbe\x3a\x2c\x52\x48\xd6\x6b\x82\xe2\x81\x1e\x34\x89\x03\x5d\x1a\xb3\x70\x72\xd0\xfe\xa3\x65\x57\x8b\x9f\xf2\xc7\x0d\x71\xe3\x98\x4f\x23\xf2\x20\x87\xf9\xed\xd0\x87\x9d\xbf\x17\x5a\x87\x90\x8e\xf2\xbb\xc8\x1e\x97\x4c\x23\x6d\x7f\x16\x23\x6a\x23\x86\xc7\xf1\x47\x40\xc2\x63\x0c\xd2\x1b\x76\xf4\xec\xf9\x71\xfc\xb4\x13\x9f\x76\xed\xe6\xd3\x87\xe9\x63\x0b\xf9\x1d\x56\xff\x12\x43\xac\x56\x06\x29\x2f\x56\xfc\x0c\x57\x73\x04\xf9\x6f\xf4\x3d\x7d\x7e\x51\x2a\xab\x5f\x6c\x8e\xd2\x04\x82\x9d\xc7\x27\x1d\xb4\xa6\x3c\xd4\x3a\x27\x8e\xc2\xab\xa7\xd5\x69\x00\xf5\x99\xda\xb2\xa7\x34\xd0\x31\x4d\xb1\x7f\xaa\x73\x33\x31\xa2\x7f\xd6\x38\xde\x7f\xbc\x6f\x21\xaa\x9c\x9f\x8c\x10\x3b\x6e\xb2\x3c\x64\x96\xc3\x14\xdb\xf9\x05\xc3\x61\x4b\x7a\xbb\x4d\x27\x16\xaf\x10\xda\xed\x7b\xe6\xd6\xde\x39\xb5\x1a\xbd\xff\xf3\x10\x75\x9d\x6f\xae\x83\x1e\xe2\x1e\xaf\x08\xb8\x3c\xec\xd2\x7c\x6e\xfc\x95\x7e\xda\x01\x88\xb4\x4d\xeb\xdf\x6e\x9b\xe5\x15\x5e\x5d\xc3\x53\x89\xb8\xa8\x82\x08\x3d\x05\x36\x0a\xb6\xda\xcd\x92\x2f\xac\x7c\xd6\x2d\x3f\x33\x44\x0b\x1a\xb8\xd3\x20\xd6\xf5\x67\x7b\x4a\x20\xa5\x18\x56\x41\xfe\xde\xd1\x37\x4e\x15\xf8\xa3\xa0\x0f\x36\x06\x6b\xe6\x0d\x97\xee\x71\xc2\x59\x2b\x08\xd1\x1d\xd4\x80\xd0\xfb\xfc\x7d\x4b\x5f\xec\x71\xf4\x90\x83\x87\xa0\x25\x7e\x96\x42\x7e\x96\x1a\x60\x1b\x87\xbf\x9c\xcc\x3f\x25\x75\xd7\x0c\x2d\xa7\x81\xb9\x23\x01\x0f\xa4\xe3\x5b\x9e\x57\xe7\xa4\x1b\xe7\xde\x69\x75\xd2\x0b\x81\xa4\x4e\xf4\x3b\xa9\xcf\x75\x02\x89\x58\xd2\x9c\x42\x9d\x91\x94\xd6\xde\xac\x7c\x87\xb4\x37\x92\xe8\xbb\x23\x7d\x61\x9c\x16\x6d\x73\x40\xc8\xdd\x9f\xe2\xbb\xa8\xfe\x89\xb8\x27\x94\xa5\xaf\xab\x72\xfc\x74\xbc\xd0\x80\xc7\x20\xe5\x09\x67\x5c\xff\x5e\xf0\x35\x5f\x0e\x83\x5d\xd6\x87\x41\x15\xe2\x18\x9c\x5d\xa0\xb4\x0e\x1f\xcd\x91\x9f\x6f\xd2\x57\xf1\x68\x46\x57\x6b\xe2\x8f\xac\x63\x43\xb5\xf8\xf8\x1f\xff\x91\xa1\xe9\xe7\x3f\xfd\x93\x79\xf9\xed\x27\xc6\xfd\x8a\x00\x89\x88\x61\xf5\x2b\x6b\x19\x0a\x45\x9f\xdf\x65\x80\x7c\xd7\x9b\x3d\xb7\xf9\x68\xec\xb5\x44\xbd\xb8\xd2\x70\x08\xff\x3f\x00\x00\xff\xff\x0b\x0c\x5a\x83\xeb\xb3\x00\x00") func confLocaleLocale_itItIniBytes() ([]byte, error) { return bindataRead( @@ -4439,12 +4439,12 @@ func confLocaleLocale_itItIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_it-IT.ini", size: 44349, mode: os.FileMode(493), modTime: time.Unix(1441457542, 0)} + info := bindataFileInfo{name: "conf/locale/locale_it-IT.ini", size: 46059, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_jaJpIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\xbd\x7d\x73\x54\xc5\xba\x28\xfe\x3f\x55\x7c\x87\xf5\xe3\x14\x3f\xb5\x4a\x43\xa9\xf7\xd6\xbd\x65\x39\x9e\xab\xe8\x56\xef\xf5\x85\x23\x7a\x76\x9d\xb2\xac\x71\x32\xb3\x92\xcc\x61\x66\xd6\x38\x6b\x0d\x31\xfb\xd4\xa9\xca\x24\x80\x81\x84\x1d\x04\x21\xf2\x22\x08\x02\x81\x04\x12\x10\xdd\x22\x89\xf0\x5d\xee\x30\x93\xe4\x2f\xbf\xc2\x7d\xde\xfa\x75\xad\x35\x89\xfb\xec\x2a\x4b\x32\xab\x9f\x7e\xba\xfb\xe9\xee\xa7\x9f\xb7\x7e\xba\xd4\x6c\x16\x2b\x61\x5c\x2e\xbc\x1d\x6d\xde\x9a\xdc\x5c\xba\xdc\xed\x2c\xf6\x56\xae\x6c\xfe\x70\xb4\xdb\x59\xe8\x76\xae\x74\xa7\xd6\xba\xd3\xcb\xdd\xe9\xb3\xdd\xe9\x8b\xdd\xa9\x5f\xbb\xd3\x33\x6f\x57\x93\xee\xd4\xcf\xdd\xe9\xf5\xee\xf4\x19\xf8\xb2\x7b\xd7\xee\x5d\x63\x51\x3d\x2c\x20\x00\x7e\xfc\x7e\xf7\xae\x4a\x29\x1e\x1b\x8e\x4a\xad\x0a\x7c\x9c\xec\x4e\x4f\x77\xa7\x7e\xe9\x4e\xdf\xe8\x4e\x5f\x22\x80\xe3\xbb\x77\x85\x5f\x36\x6b\x51\x0b\xea\x4c\xdd\x42\xa4\x53\xab\xdd\xe9\x85\xee\xf4\x5d\x2a\xbe\x0d\xf8\xc2\x5a\x13\xaa\x7e\x4b\x2d\x2f\xec\xde\x15\x57\x47\x1b\xc5\x6a\xa3\x80\xed\x4e\x5d\xef\x4e\x3f\xe0\xff\x43\x41\x54\xae\x96\x6a\x45\x55\x7e\xf0\x83\x83\xd0\x7d\x0f\xea\x95\x80\xfa\x7d\x0c\xfb\x31\xbd\xf0\x52\xf0\x6a\x5c\x2f\xd5\x6a\xaf\x75\xa7\xae\x75\xa7\x96\xbb\x53\x37\x11\x70\x7a\x66\x6b\xf2\x87\xfe\xa9\x47\xaf\xee\xe3\x42\x69\x32\x6a\x27\x76\x9b\xd7\x08\x7a\x46\x0a\xdb\x4d\xb7\x8c\xd0\xef\xde\xd5\x0a\x47\xab\x71\x12\xb6\x0a\x1b\xe7\xd7\xb6\xe6\x7e\xdc\xbd\x6b\x3c\x1c\x8e\xab\x49\x58\xf8\xf3\x5b\x6f\x28\x78\x40\x71\x38\x6c\xc5\xd5\x08\x86\x34\x7d\x0a\x47\x3d\xf5\xb0\x3b\xbd\x48\x43\x6a\x96\x46\x91\x96\x17\xf8\xeb\xee\x5d\x49\x58\x6f\xd6\x4a\x09\x7e\x3b\x46\x5d\x05\x42\xdd\x21\x42\x01\x96\x5a\xa9\x31\xda\xc6\x0a\x3c\x77\xbb\x77\x95\x5b\x21\xc0\x16\x1b\xe1\x78\xa1\x7f\xee\xde\xe6\xcd\xf9\xa7\xbf\x5d\xea\xcf\x9c\x1a\x1a\x1a\xda\xbd\xab\x1d\x87\xad\x62\xb3\x15\x8d\x54\x6b\x61\xb1\xd4\xa8\x14\xeb\x34\x05\xd3\x37\xa9\xa9\xbf\x11\x4e\x9e\x85\xb3\xdd\xa9\xab\xd4\xd1\xe5\x6e\x67\xa9\xdb\xb9\xcd\x23\x0e\x2b\x40\xe3\x62\x29\xf6\xa7\xa1\xff\x70\xa6\xdb\x79\x82\xeb\x00\x5b\x68\x94\xea\x16\xd2\xde\xa9\x93\x30\xdb\xf5\x52\xb5\x56\x78\xeb\x05\xfc\x07\x07\x18\xc7\xe3\x11\xad\x8d\xaf\x69\x66\x56\xd5\xaa\x68\x85\xc5\x64\xa2\x19\x16\x7a\xc7\x4e\xf6\x8e\xde\xe8\x9d\xb8\x08\xe3\x29\x35\x93\xf2\x58\x09\x9a\x84\x6e\xfd\x40\xfd\xeb\xc0\x1f\xd8\x58\x2b\x6c\x46\x40\xd8\xa8\x35\x01\x98\x96\xba\xd3\xdf\x11\x11\x67\xe0\xef\xdd\xbb\xa2\xd6\x68\xa9\x51\xfd\x4b\x29\x41\x12\x6f\xfc\x7c\x64\xe3\xd7\x6f\x76\xef\xaa\x57\x5b\xad\xa8\x05\xc0\x57\x60\x91\x41\x9b\xbb\x77\x01\x99\x8a\x88\x06\x69\x45\xcb\xfd\x48\x0a\x13\x82\xd4\xab\xa3\x2d\x9c\x01\x0d\xb5\xb1\xb8\xb6\x79\x75\x8e\x0b\x47\xa2\xd6\x21\xbb\x3e\xd0\xee\x36\x8d\x7d\xb5\xdb\x59\xc9\x44\x07\x9d\xb3\x50\xa9\xce\x95\x1a\x30\x8f\x54\xc6\x9f\xba\x53\xa7\x37\x56\xae\x6e\x9c\x3a\xb6\x7b\x57\xa9\x52\x07\xc2\x37\x4b\x8d\xb0\x56\xe0\x6f\x9b\x93\x47\x91\x7a\xd3\x27\x61\x8a\xa0\xbc\x5c\x8e\xda\x8d\xa4\x18\x87\x49\x52\x6d\x8c\xe2\x04\x39\x6b\x7b\xf3\xd6\xdd\xde\xca\x05\x98\x44\x55\xae\x3e\x4c\x44\x6d\xbd\x22\x0a\xdd\xce\x14\xcd\xf6\x15\xea\xb7\xbf\x10\x04\xd8\x34\x61\x41\x2b\x74\x34\xbc\xb8\x38\x12\x86\x38\xb9\xb3\xb4\xe5\xd7\x71\x8a\x11\x21\xa0\xfa\x41\x4d\x74\xb3\x5d\xab\x01\xe1\xbf\x68\x87\x71\x02\xa8\xb0\xb1\x65\x24\x15\xd0\x8c\x19\x02\xae\xed\x6a\x1c\x43\x79\x61\x73\xe9\xc7\x2d\xa4\x35\xae\x85\x46\x19\x28\xa0\x96\xc2\x03\x66\x4d\x58\xf2\x69\x1c\x96\x5a\xe5\xb1\xcf\x70\x88\xf8\x47\xa1\x7f\xfd\xd2\xc6\x4f\xd7\x68\xd5\x0f\x5a\x26\xb8\x5e\xcd\x5a\x95\x26\x75\x8b\xe5\xa8\x82\x1c\xea\x81\xea\x35\xb4\x53\x6d\xc4\x09\xf0\x07\x68\x48\xfe\x2a\xa8\x8d\xf0\x2b\xe1\x5c\xa7\x0e\x25\xd5\x04\xe8\xd9\x9b\xf9\xae\x77\xf1\x32\xf2\xd2\xab\x73\x48\x81\x14\x60\xff\xf8\xec\xd6\xf7\xc7\xb0\x87\x5f\xb4\x81\x41\x14\x2b\xc3\x8a\x13\x8f\xc6\x41\xb7\x03\x7b\x6f\xb5\x3b\xd9\x79\x7f\xe2\xe0\xbf\xbc\x07\x2c\xec\x48\x70\x20\x8a\x93\xd1\x56\x48\x3f\x27\x3b\xf0\x0f\x54\x7a\x19\x00\xe7\x7a\x4f\x8e\x6e\xde\xec\x20\xe7\xeb\x9c\xef\x4e\x4e\x01\xff\x1d\x2e\x72\x1f\xba\xd3\x5f\xd1\xd8\x9e\x74\xa7\xcf\xf3\x5c\xa8\xb9\x42\x10\xdc\x6b\x69\x08\xe8\xeb\xc6\xad\x95\xad\xab\x97\x91\xaf\xc7\x49\x41\x33\xfe\x34\xbd\xf2\xb7\x32\xa0\x17\x46\xe0\xa3\x27\x8e\x00\xc5\xc8\xe3\x01\xdb\xfb\x13\xf1\x17\xb5\xe0\xdd\x0f\x3e\xf8\xf0\xcd\x37\x02\x9c\x7d\xa4\x11\x4c\xd0\x83\xa0\x9d\x8c\xfc\xcf\xe2\x68\xd8\x08\x5b\xc0\xe1\xcb\x55\x18\xe8\x4a\xff\xdc\x57\xbd\xbb\x0b\x34\xef\xd3\x48\xc6\xa9\xd3\x4f\x7f\x7b\xb2\xf1\xcd\x2d\xda\x4a\x37\xbb\x9d\xf9\x6e\xe7\xfb\x6e\xe7\x2c\xee\x43\x24\x43\x1c\xd7\x80\xc7\xc1\x24\x1e\x3c\x08\x24\x9b\xbe\xa6\x97\x5f\x29\x19\x93\x2e\x03\xd0\x17\x35\x24\xbe\x74\x47\x53\x35\x8b\x2c\xf6\x7e\x08\x54\xfd\xb0\xd5\x2a\x02\x8b\x4e\x26\x8a\x82\x89\xb0\x6f\x83\x87\xa8\x45\xd3\xbb\x71\xfb\x11\x4d\xf5\xf9\xee\xd4\x6c\xb7\x73\xa6\xdb\xb9\x85\xdf\x71\x2a\x4f\x76\x3b\x8f\xbb\x1d\xa0\xfd\x19\x1a\xcc\xee\x5d\x8a\x16\x3c\xb5\xb2\x4a\x56\x7a\x47\x6f\x6d\xce\xdc\x51\xd3\x8a\xc7\x39\x13\x1e\x4f\xa4\x05\xda\x54\xf7\xa9\xe1\x5f\xf8\x80\x21\xf2\x2b\x28\x35\xea\x8d\x9f\xbe\xef\x9f\xff\xa9\x3b\x75\xdc\xe6\x49\x00\x09\x04\x06\x46\xdc\x9d\x9a\xf3\xa8\xfb\xfb\x7a\x87\x37\x56\x51\x48\xe9\xec\x2b\x1a\xe1\x32\x1f\x51\x8a\x4a\x1a\x58\x35\x89\x23\xee\xfc\x4a\x78\x57\x02\x10\x29\x02\x42\xc2\x53\x34\x13\xa4\x30\xae\x12\x6d\x56\x90\x9c\xc8\x46\xee\x90\xc8\xc0\x45\xcb\x4f\x9f\x7c\xd7\xbb\xfb\x2d\xf6\x0c\x3b\xfa\x58\x6d\x82\x56\x1b\xce\x68\x5c\xb0\xb2\x05\xcd\xb2\x55\x25\xba\x2f\xf6\x11\x08\x4d\xb9\x8d\x07\xde\x60\xba\x9d\x87\xb4\x9d\xaf\x11\xbb\x5a\xc3\x2f\x93\x9d\xde\xfc\x89\x6e\xe7\x01\xcf\x09\x10\x4d\x36\x3d\x4e\x6a\xff\xd6\xed\xad\xf3\xa7\xe0\x63\xff\xf8\x64\xff\xd2\x71\xfe\xa8\x76\xec\x1c\xb2\xd1\xa9\x13\x56\xaf\x2b\x11\x9c\x92\x28\x16\x1c\xef\x4e\x5f\x55\x62\x0e\x7f\x34\xa4\x3b\x43\x23\x5d\x3d\x78\xf0\x1d\xa2\x03\xcb\x4d\x0f\x3e\xf9\xe8\x3d\xa0\x46\xef\xb7\xfb\x5b\x57\x9e\xc8\x82\xe2\x5d\x30\x56\x6c\x46\xad\x04\x76\xc1\x3b\xc0\x43\x5a\x89\xf9\xa4\x30\xe2\xd7\xa0\xd1\xae\x0f\x87\xad\x60\x7c\xac\x5a\x1e\x0b\x90\xd9\x07\x58\x01\xc8\x04\xa2\x4a\x50\x8d\x83\x76\x0c\x8c\xff\xf9\xa0\x16\x96\x0e\x87\x01\x4c\x18\x2d\xfa\x20\x89\x82\x4a\x35\x2e\x0d\xd7\x42\x02\x1f\x01\xf1\xa3\xdd\x0a\x81\xef\x8e\x25\x49\x93\xdb\x7d\xe7\xe3\x8f\x0f\x04\x48\x51\x11\x5a\x74\x89\x1e\x50\xce\x5a\x45\xd6\xf6\x18\xe4\xd0\xab\xbd\x79\x58\x96\x5f\xcb\x98\x14\xa2\x8d\xb3\x4b\xbd\xf9\x5f\x68\x88\xb8\x9e\xdb\xad\xda\x00\x44\x2b\x01\x50\x47\x03\xda\x94\x54\xc7\x17\x6f\x47\xea\xeb\xbe\x00\xff\x39\x48\xb3\xec\x91\xf7\x44\x77\x0a\x84\x9d\x07\x00\xf9\xf4\xe1\xe4\xd6\xf4\x2d\x5a\x93\x57\x99\x9f\x93\x7c\x3b\x4d\xab\x42\x2d\x12\x5c\x49\x0f\x48\x14\x50\xf3\x02\x2c\xeb\xe1\x5f\xbb\x9d\x19\x6b\xca\x41\x5c\x69\xa2\xa0\xa2\xb7\x76\x77\x6a\x09\x87\xa1\x7a\xaf\xf6\x36\x89\x51\x02\xc2\xc2\x94\x2d\x87\xeb\x43\xbe\x0e\xd4\x25\xc6\x7d\xf0\x7d\xa2\xbb\xe6\xde\x54\x32\xd2\x8a\xea\x85\xde\x2f\x2b\xbd\xaf\x1e\x3d\x7d\xf4\xc8\xfa\xa8\x68\xb2\x05\x43\x7b\x72\x95\x04\x0c\x35\x2e\xa4\xea\x71\xda\x74\xb8\xd4\x3f\xfa\xd3\xfe\xe0\xbf\xbf\xfc\xd2\x4b\xd0\x77\x23\xed\x4c\x5f\x16\x96\x8c\xdb\x27\xab\x1e\x10\xa3\xf3\x04\x6a\xd3\xb8\x41\x68\x58\xdd\xf3\x01\x30\xa0\x3d\xc1\xab\x34\xaa\xff\x15\x7e\x59\x02\x31\x37\x1c\x2a\x47\xf5\xd7\x88\x28\xf8\x15\x76\x28\x6d\x60\xd3\xa5\xce\xca\xd6\xc5\xb5\xde\xdd\x53\xba\x0d\x0d\xa8\x8f\x22\x1b\x38\x43\xc2\x64\xe1\xbc\x58\x8e\x1a\x23\xd5\x56\x5d\x84\x74\x3c\xf2\xae\x3d\xda\x5c\x42\x86\x07\x7b\xb4\x77\xe2\x57\xcd\x93\xb9\x81\x62\x23\x4a\xaa\x23\x28\x41\x48\xbb\x5b\x93\x17\x36\xae\xdc\xc8\x02\xe7\x0d\x53\xc4\x7f\xaa\xe5\x50\xcf\x28\x4f\x14\xc9\xfa\xc8\xe2\xbf\x83\x26\x9f\xae\x9d\xa3\x25\x66\xe6\xd0\x92\xa5\xa2\x91\x91\x5a\xb5\x11\xf2\xf9\x45\x0b\xe2\x2c\x4a\xad\x2c\x44\xa8\xa3\x8c\x1b\xef\xcd\x9d\x73\xe1\x61\x73\x35\x51\x3b\x11\x21\x6e\x92\x96\xa4\x2c\x26\x73\x0e\xc2\x21\xb3\xff\xcd\x0f\x90\x5d\x6d\x1c\xb9\xaa\xc6\xb0\x40\x53\x64\x58\x33\xed\xa5\xdf\xe4\xe4\xb2\xf5\x82\xa9\xd3\xb2\x31\x40\xce\x44\x35\x61\xb1\x3f\x7f\xea\xe9\xe3\x8b\x74\x80\xe0\xca\x0e\x98\x9b\x31\x6b\x28\x82\xfc\x7c\xb8\x94\x94\x5a\x85\x37\x85\x57\xbc\x2d\x1f\x82\x83\x4c\xa7\x34\xa8\x0c\x22\x55\x01\x14\x97\xa0\xdc\x8e\x93\xa8\x1e\xc4\xc0\xa4\xca\x61\xfc\x7c\x00\x82\x58\xc0\xc5\x71\x50\x6a\x85\x41\x1b\xb4\xcb\x52\x25\xac\x04\xc3\x13\x01\xae\xa0\x38\x88\x5a\x41\x25\x1c\x29\xb5\x6b\xc9\x90\x69\x8a\x57\x43\x8b\xb5\x84\xcd\xaf\x96\x7a\xbf\xdc\x97\xf5\xe0\xd0\x84\xe7\x35\xab\x92\xf4\x31\xbf\x2a\x92\xd3\x48\xec\xbc\x07\x80\xe9\xbb\xe2\x39\xab\x68\x72\xe6\x63\x53\x24\x10\x82\x32\x24\x6a\x6d\xf1\x70\x15\xd4\x39\x4f\xe9\x12\xed\x5c\x9f\x5c\x8c\x5b\xa9\x8d\x5b\xe7\x7e\xdc\xbc\x09\x8a\xf0\xe9\xcd\x5b\xf7\x7b\xf3\xab\xd9\x28\xd5\x32\xd9\x09\x62\xe8\xb4\xc2\x0d\x58\x05\xbd\x91\x52\xce\x13\x33\x38\x43\xa5\x4f\xe4\x14\xf5\xd0\x4e\x4d\x11\xe6\x79\xb7\x48\xd4\x66\x83\x9c\x9a\xdb\xbc\x39\x8b\xc2\x88\x73\x9c\xb3\x12\x24\xfa\x07\x0b\xca\x4f\xd7\x4e\x18\xe2\xba\x34\x25\xd1\x90\xc9\x6a\x9f\xb7\xab\xd6\x79\x2b\x92\xd5\xbb\x6f\x06\x85\xe0\x45\x5a\xea\x32\x64\x90\xaa\x56\x71\x4a\x67\xcf\x6e\x5c\x38\x02\xd3\x68\x4f\xa0\x3e\xcd\x37\x4e\xfe\xd8\x7b\xbc\xa0\x97\xbb\xd5\x45\xde\xf1\xb9\x1d\x33\x5b\x9c\xc1\x33\xf4\x65\xa5\xef\xe5\x09\xd7\xc2\xbc\x72\x21\x98\x97\x29\x3c\xae\xf6\x2d\x7a\x4b\x71\x14\x44\x95\x82\x92\x57\x32\x95\x18\xd0\xcd\x8a\xa3\xd5\xa4\x38\x82\x0c\xb6\x52\x78\x06\x84\xb4\x67\x02\x52\x87\x2e\xd3\x50\x8e\xa3\x41\x82\xab\xc0\xe9\x76\xfd\x7e\xff\xec\xc2\x2b\xc1\xde\xc3\x4a\xa2\x7e\x19\x79\x66\x11\x76\x65\xb5\x86\xfb\xa6\xa0\x04\xb8\x25\xfa\x0f\xf9\x49\xe0\xd9\x3e\x80\xec\x81\x96\x9b\xb1\x53\x3f\xeb\xb3\x5e\x09\xf8\x47\xec\x99\x1b\x8d\x86\xdb\xd5\x5a\x25\x8d\x66\x91\x26\x7a\x89\xd4\x80\x4e\xef\xe8\x9d\xde\xfa\x3c\x35\x7d\x8a\xc6\x79\x82\x65\x3a\xb7\xce\xd4\xe9\x60\x2f\x8a\xd3\xb4\xee\x90\x63\xf2\x74\xdd\x55\xac\x32\x53\xbf\xa8\x36\x0e\x97\x6a\xd5\x0a\x2a\x6e\xb2\x2e\xb3\xd5\x29\x25\x60\xcc\xf5\xef\xfe\xa0\x36\x81\xb3\x0c\x99\x6e\x0a\xdd\x8e\x04\xeb\x40\x09\xa3\x73\x8a\xdd\xa0\xf6\xc7\x88\xb4\x7c\x8b\x33\x50\x2f\x25\xa0\x10\x7b\x32\xb0\x6c\x51\x60\x4e\xf3\x8f\x7b\x97\x6e\xd9\xab\x9f\x8a\x0c\x05\x01\x63\xfc\xc2\x6b\xf0\x3f\x98\x57\x10\xfc\xf8\xe0\x1c\x55\x8b\xa2\xbf\x38\x4b\x7b\x6c\x45\xc9\xe0\xb2\x10\x98\x89\xb8\xc3\x72\x36\xf0\xf6\xfb\x23\x73\x64\x6a\xf5\xc6\xed\x32\x30\x7e\x34\x74\x40\x85\x63\xb4\xb4\xbe\x03\xa5\xa4\x3f\xf3\x75\x17\xb7\xe9\xaa\x65\x9d\x98\x0b\xd4\x2a\xdf\x02\x99\x0c\x16\x0e\xa2\x9b\x67\x9d\xa6\x77\x47\x34\x1e\x6e\x03\x31\xdc\xf8\x8d\xbe\x3c\xa1\xb9\x01\x19\xec\x2b\xc0\x4f\xea\x0e\x68\xff\x68\xe6\x04\xd5\xbf\xcd\xaa\x53\x54\xab\x78\xba\x03\x6a\x4c\x4a\xbc\x79\xcb\x12\x51\xd4\x3e\x35\x75\xbc\x0d\x1d\x8f\x57\x61\x92\x8a\xda\x6c\x8a\x54\x4e\xc2\x2f\x13\xc7\x7c\x1a\x68\xfb\x29\x49\x0d\x0f\x88\x5e\xc7\xd0\x1a\xc2\x9b\x10\xd4\x8e\x99\xaf\xfa\x17\x9f\x80\xc4\x32\x41\x6b\x28\x2e\x6c\x2c\x76\xb2\x8c\x50\xe5\xa8\x06\x7b\x32\xc2\x33\xec\x70\x28\xa0\xbd\xa3\xf7\x7b\xa7\xe6\x52\xa0\x80\x2a\x6a\x8d\x2a\x4c\xda\x58\x35\x51\x64\x63\x9a\x69\x42\xdb\xd4\xe8\x64\x21\x83\xf0\xbf\xc2\x5f\xb4\x70\x94\x2d\x67\x08\xe6\x9f\xac\x48\xdc\xe4\xbb\x0d\x56\x33\xb4\x85\xa6\x1a\x12\xf0\xa7\x62\x1d\xfe\x4c\x8c\x37\x69\xbb\x0d\xc0\x94\xda\x09\xda\x7b\x8c\xbd\xb3\x28\x56\x30\xb1\x7b\xe6\x9d\x07\x96\x0c\x38\x16\x36\x51\x72\xac\xc7\xa3\xac\x8d\x2e\xe2\x91\x9d\xaa\x06\x32\x7f\x7f\x0e\xc6\x78\x55\xec\x2b\x9d\xd9\xdf\xd7\xaf\xc0\xc9\x43\x7f\x9f\x42\x16\x31\x75\x8f\xf9\x67\x40\xeb\x44\x4c\xd2\xff\xe0\x56\x4e\x29\xc9\xef\x38\xb7\xe2\x4a\x23\x6c\xd7\x05\x7d\xac\xb0\xf1\x0d\x1e\xe0\x9b\xb7\x1e\xf8\x07\x1d\x1c\xe0\xb0\xdb\x45\xda\x9d\xb3\x44\x14\xd8\x25\x3f\x58\xbc\x95\x4e\x72\x65\xa6\xb6\x4e\xbe\xe5\xde\x59\xe0\x5a\x47\x7a\xa7\xa0\xb7\xf3\x88\x33\x83\x1f\xa6\x3a\x45\x27\xcf\x8e\xba\xa4\x75\x06\x25\x89\xf7\x6f\x5f\xd9\x9c\xfe\x6d\xdb\xae\xe2\x74\xd6\x43\x54\x5c\x8b\x74\x8c\x9a\xd9\xd8\x38\xf1\xb7\xfe\xd1\x59\x9c\xf7\x27\xdf\x11\x69\x59\x8c\x1b\x81\xe5\x0c\x5c\x31\xef\xe8\xc4\x5d\xf4\xe4\x5b\xe2\x0e\x57\x18\x38\xdc\x19\x30\x4c\x97\xf6\x0b\x00\xdf\x1d\xf7\x6d\xb0\xbe\x99\xce\x9b\xe0\x0c\x47\x82\x9c\xf2\x2c\x68\x92\x12\x12\x87\x8d\x44\x4d\xb4\x31\x20\xb3\xe2\x62\x94\xae\xd3\xc1\xab\xc3\xaf\xed\x8d\x5f\xdd\x37\xfc\x1a\x5a\x11\x41\x1f\x52\x54\x27\xc1\x6e\x72\x4a\x0b\xaa\xbd\x95\xb9\xa7\x8f\x8e\xd1\x04\x5e\x24\xf3\xd3\x95\xee\x54\x07\x29\x3d\xd9\xd9\x5b\xe9\x9f\x9f\xda\x3a\x77\xe6\xe9\xda\x8d\xde\xb1\xa3\x44\x7d\xdb\x3a\x9c\xa5\xf1\x82\x4c\xc4\x5d\xc9\x31\xc6\x89\xe4\x69\x8b\x23\xc6\x59\x23\x86\x8e\x52\x99\x58\x12\x31\x09\xb5\x9f\x33\x36\x0b\xdb\x5e\x90\xf9\xfd\xd0\x9d\x3e\x87\x6b\x80\x48\x53\xab\xd6\xab\xc9\xce\x76\x82\x8b\xe2\xbc\x63\x2c\x30\x6b\x71\x75\xeb\xfb\xb5\x8d\x5f\x3b\x4c\x45\xd0\x2a\x5d\x31\x04\xd7\xdf\xcb\x41\x6f\x06\x28\x78\x82\xed\x14\xa9\x41\x8f\x95\xe2\x62\xbb\x21\x33\x19\x56\x78\x43\x90\xfd\xe6\x0c\xd1\xf4\x2a\xca\x3c\x24\x78\x9c\x25\x99\xa6\x63\x93\xd9\x53\x75\x03\x5b\x9f\x0e\x9e\xd5\x93\xfc\x1c\xca\xab\xfd\x4b\x4b\x8a\xfa\x8b\x6a\x13\xa3\xc0\x9d\x5e\x1d\xd4\xf5\xef\x2d\xe0\x93\x6a\x48\x24\x30\x81\x04\x34\xd9\xe9\x7f\xf3\x2b\xad\x84\x9b\xbd\x63\x27\xd5\xc8\x49\x8c\xfe\xfe\x27\x64\x00\x24\x39\x3c\x7d\x38\x4b\x4b\xe1\x12\x09\x3b\x0f\x68\x5a\xd8\x74\x46\x0b\x22\x7b\x11\xd0\x44\x29\x32\xec\x64\x0a\x60\x91\xba\x5d\x10\xbb\x38\x9e\xf8\x67\xbc\x36\x95\x85\x84\xe4\xce\x98\xf8\x70\xa2\xe4\xce\x41\xb4\xe4\xf1\xa4\xf6\x2b\xcd\xff\xb9\x6b\x5b\x93\x3f\x3c\x5d\xfb\x16\xcd\x4f\x46\x23\xd1\x46\x59\x1a\x0d\x0e\x2a\x91\x31\x79\x0c\x02\xb5\x67\x65\xac\xb6\xf7\x8d\x1a\xd6\x0e\xc6\xc4\xd8\x73\x59\x90\xd5\x82\x11\xb5\xc8\x73\xb1\x0d\xdf\xa5\x05\x80\xb6\x73\xe5\xe0\x40\xf9\xf4\xd2\x15\xd0\x6e\x40\x8c\x50\x03\x45\x49\xc6\x96\xc2\xf4\x24\x9a\x1e\x19\x23\xaa\xcf\x1b\xdd\xd1\x6f\x3b\x50\x8d\x30\x89\xa2\x62\x3c\x86\x96\xc3\xdf\xd7\xcf\xb1\xc9\x1f\x96\x77\xff\xd1\x64\xda\xa2\x83\x9a\x9a\x48\x8b\x59\x16\xf3\x4f\xeb\x51\xa5\x84\xde\x9a\x89\x10\x3d\x56\xd0\xf2\x91\xdd\xbb\x1a\x51\x81\x16\x3a\xfc\x07\x24\x03\x08\x34\xec\xf4\xae\x1f\xef\x5f\xfc\x89\xea\x00\xd3\xaf\x43\x95\x4f\x40\x80\xfe\x20\xad\x9b\x7d\x04\x12\x89\x7c\x76\x84\x12\x2a\x7c\x8b\x79\x5b\xa6\x05\x6c\xf7\xae\x03\xb9\x0a\xdd\x47\xa1\xf8\x62\x52\xc7\x8b\xf1\x84\x1e\x3c\xf8\xce\xc7\xa4\x59\xa2\x99\x95\x7c\x60\xeb\x68\xfd\x3f\x75\xb2\x77\x1c\x5a\x7e\x27\x49\x9a\xf1\x27\xad\x1a\x19\x5b\x0f\xb2\xb1\xf3\x40\x69\x02\xcd\x20\xf8\x15\xf5\x6b\x64\xb1\x5a\x9f\x11\x7b\xe8\xc7\x61\xa9\x2e\xa3\xe9\xb0\xf3\x9e\xc6\xf1\x3a\x08\x57\xf4\xb9\x7f\xfc\x09\xac\x12\xfe\x86\xe2\x3b\x0f\xd0\x56\x88\x53\xf6\x38\x63\x6b\x08\xc9\xdd\xaa\x1c\x1c\xce\xfc\x00\xa7\xaf\x35\xc7\x4a\x24\xf1\x0a\x1c\xd1\x6a\x59\x6c\x4c\xc8\x0e\x68\xd9\x00\x2f\x3a\x7b\x0f\x7d\x3e\xb0\x57\xa6\xe7\x69\x0c\x67\x61\x83\xee\x79\x61\x8f\x6c\x59\xdc\xac\x93\xa2\x69\x4d\xe1\xf1\xb9\xa7\xb8\x87\x8c\x08\x30\xbd\x17\x68\x19\x23\x9b\xca\xb4\xb7\x3b\x9d\xa8\x00\xd3\xe0\x8e\x3c\x13\x0c\xea\xca\xe4\x75\xea\x8a\x11\xcb\x9f\x7d\xe1\xb9\xbc\xae\x3c\x5b\x7c\x2e\x20\xe8\xe3\x8c\xe2\xd9\xa1\xe7\xfc\xae\x91\x83\x05\xe6\x77\xb0\x5b\x20\x78\x06\xcf\xcf\xbf\x28\x92\x7e\xae\x0e\xcd\x47\xfa\xf8\x58\xa4\x1a\xd9\x08\x3e\x47\xd7\x37\x68\x5e\x06\xc1\x33\x41\xef\xde\xd7\xc4\xf0\xe7\xd1\x1a\x39\x35\x85\x48\xc4\xb9\x96\x43\x2c\xec\x42\xbd\xf4\xa5\x8b\x45\xd7\x02\x31\x81\xcf\x83\xdc\xba\xcc\x9a\x35\x85\xf1\xc4\x62\xc3\xe9\xd2\x60\xd6\x6c\x34\x51\xc4\x82\xb6\xfb\x2c\x1c\xb8\x9a\x83\x4c\xf3\x0e\xd5\x6a\x1c\x02\x89\xac\x21\x35\x9f\x3e\x3c\xd9\xff\xf6\xaf\x88\x13\xbd\x8d\xa8\xb4\xbc\xa2\xe3\x0c\x40\x40\x29\x47\xad\x56\x58\x4e\x0a\xfb\xf9\x0b\xfa\x57\x9f\x3e\x9c\xdc\xfc\xea\x27\x65\xeb\xb9\xa8\x94\x48\x11\xa7\x2c\xce\x65\xf4\xed\x14\x9f\xba\x65\x18\xae\x5f\x24\xf8\x51\xfd\xca\x32\x73\xd8\x81\x15\xc5\xe1\x30\x6c\x14\x93\xd2\xa1\xb0\x91\xd6\x3c\x57\xfb\x0b\xd7\xd0\x1d\x26\x2e\xd1\xb3\xca\x6f\xe7\x4a\xcb\xcd\xa8\x98\xc6\xe4\xb3\xb2\x9d\x21\x03\xe9\x38\x85\xcb\xf8\x0e\x77\x84\x22\x01\x06\x94\xd1\x1f\xc3\x8c\x76\x86\x86\x57\x17\xa1\x00\x52\x55\x0a\xdb\x1c\xf7\x3b\xc0\x58\xad\xd5\xc2\x51\xf4\xc8\xa8\x0e\x7a\xbd\x5a\x56\xc7\xe2\x92\xda\x37\x73\xbd\x53\xcb\x88\x20\x03\x99\x9e\x3e\xbd\x52\xcc\x3a\xcb\x33\x20\xa4\x97\x49\x9e\xf5\x88\x29\xd0\x00\x85\xab\x45\x21\x3a\x96\x15\x89\x3a\xae\x38\x0c\xdb\x75\x7d\x8b\x12\x9f\x20\x16\x7a\x92\x01\x3b\xb7\xc9\xae\x32\xbb\x9d\x54\x9f\x6a\x16\xf6\x19\x1a\x9e\xec\x76\x99\xbe\x57\xd8\xff\x09\xa7\x06\x8d\xf2\x1f\xd4\x9c\x96\x8b\xdc\x41\xe6\x91\xee\xc8\x0e\xda\xd0\x96\xb3\xf0\x4b\xd0\x62\x0b\xfd\xb9\xaf\x48\xbe\x90\x51\x78\x26\xb4\xde\xdd\x6f\xc9\x7e\xb6\xe0\xce\x46\xad\x14\x27\x68\x38\x61\x72\x14\x7a\xc7\x4f\x6c\x9d\xbf\xae\xfc\x97\x9e\xb3\x59\x56\x15\x1a\x97\x2f\x4d\xf6\x1e\xcf\x29\x41\xf1\x81\x72\x17\x89\xe0\xd5\x9b\xb9\x81\x30\x8a\x8a\xda\x4a\x96\x8a\xfe\x30\x72\x20\xfa\x79\x0f\x85\x13\x05\x72\x14\x9f\x76\x65\x7e\x65\x7a\x44\x03\x4d\xbb\x41\x7a\xfb\xe1\xb0\x05\xb2\x90\xae\x85\x76\x33\xd7\x96\xb6\x82\xb2\x07\x14\xe5\x21\x43\xb5\x03\x49\x31\xcb\x9e\x0f\x6d\x8e\x53\x7c\xfa\x16\x19\xd6\x96\x8c\xd5\x1c\x4f\xc3\x45\x80\x44\x73\xfb\xcc\x31\xf8\xff\xe6\x23\x14\x15\x06\xce\x0f\x5a\x7e\x94\xfd\x11\xa0\x36\x6f\xad\xbb\x66\xc7\xc7\xb6\xf1\x11\xce\xcd\x04\xb6\x32\xce\x03\x47\x7a\x79\x62\xbe\x72\xca\xfb\x46\x32\x73\x82\xe1\xf9\x9d\xda\x33\x32\x9f\xb2\x55\xf5\x9c\xa0\xf5\x62\x71\x6d\xf3\xee\x8f\x59\xd3\xc2\x1d\x41\x8d\x10\x83\xbc\x52\xea\xc6\xaa\x28\x66\x1c\xfc\x95\xb1\x06\xa4\x37\x0a\x00\x2d\xd5\x5b\x93\x93\xbd\xaf\x1e\x29\xd9\x7a\xd6\x5e\x66\xf9\x11\x06\xb8\x2c\x7d\xa2\x90\x8e\xa4\x30\x4b\x4f\xd2\xc3\x56\xc4\xf2\x94\xe0\x14\x81\x40\xa8\x71\x09\xb4\xb9\x76\x4d\x2b\x3b\xf9\x1d\xb3\xe7\x8a\x23\x8d\xd8\x3d\x2f\x73\x2c\xdd\xb2\xfc\xee\xf6\x46\x5a\x26\x53\x30\x9a\x87\x06\xb0\xf5\x8c\xba\xb0\x92\x17\xd7\x7a\xb3\x67\xc5\x0a\x82\xf0\xe4\x03\x40\x91\x0e\x16\xf3\x31\xa8\xd2\x7b\x74\x53\x8d\x27\x73\x41\xc2\x29\x56\x22\x3b\xd1\x70\xab\xd4\x28\x8f\x59\xbc\x43\x9c\x61\x53\x3f\x8a\x08\x39\x7d\x8e\x04\x8e\x07\xb8\xe9\x61\x85\x18\xde\xb1\x44\x9a\x09\x28\x1f\x38\x6e\x34\x6b\x8e\x95\x1a\xa3\x61\x51\x9c\xa6\xca\x25\x8a\xde\x71\x94\xf5\x78\xb7\x48\x10\x0a\x9a\x06\xb9\x95\xd3\x4a\x89\x91\xda\xec\x25\x55\x48\xb4\x9e\xb4\x5d\xed\x7f\x8f\x40\x58\x8c\x1a\x85\xde\xfc\x54\xef\xc4\xf7\xf6\x96\xb2\x82\xe9\xaa\x61\x86\x59\x96\xac\x37\xd5\x64\x82\xa4\x1f\x1c\xab\x32\x06\x4c\xaf\xb9\xca\xfe\x19\xfe\x03\x0d\x6c\xb5\x5a\x34\x1e\xb6\x10\x19\x87\x12\xdc\x65\xb6\x8d\x6b\xa1\x84\x9c\xbe\x40\xd2\xf4\x13\xfa\xc4\xd0\xec\x66\xd1\xd0\xeb\x48\x37\xd4\xd9\x86\xe8\x84\x45\xe5\xb4\x75\x98\x02\x10\x9d\x73\x35\x78\x66\x6f\x4c\x32\xe3\xd3\x47\x33\x1b\x3f\x1d\xc9\x39\xf5\x0d\x9e\x66\x29\x81\xa3\xa6\xc1\xc6\x04\xea\x64\xc5\xd1\x04\x95\x2e\xfa\x84\x83\x43\x34\x7a\x76\xb8\xa6\xd0\xdb\x4a\xa9\x8a\xa1\x84\x79\xd6\xb1\x97\x26\xde\xf2\x07\xdf\x6b\x90\xe1\x2e\x60\x06\x1d\x5b\xaa\xa0\xb2\x3b\x53\x08\xb4\xcb\x5a\x28\xea\xa5\x56\x2d\x93\x21\x31\xce\x8d\x91\x21\xc6\x10\xeb\x60\xd9\x4a\x58\x0b\x93\x30\xc3\xf8\xc6\x5b\x01\xce\x8c\x6a\xa5\xf0\x49\xb5\x82\x23\x6a\xb6\x87\x01\xbf\x09\x24\x75\x67\x3f\xc8\x1c\x9c\x84\x21\x93\x1f\x37\xdb\xb6\xe8\x8a\x6c\xbd\xa3\x77\xb6\xce\xcd\x0a\x5d\x27\x3b\x4f\xd7\xd6\xfa\x47\xe6\x55\x1c\x96\x15\xc6\x4d\x06\x1b\xd4\x4b\x39\x40\xc3\x97\xf2\x94\x85\x9b\x39\xd3\x64\xe7\xcf\xe1\xb0\xed\xa9\xeb\x9f\x39\xf9\xf4\xb7\x4b\x96\x8b\x9a\x1c\x07\x6b\xb3\xbc\xf3\x29\xa6\xcb\x59\x2e\x18\xc7\x2a\xc2\xe1\x59\x52\x19\x4f\xf2\x61\x9e\x17\xf5\x5d\x8b\x78\x1a\xd8\x52\xed\xd1\xbf\xdd\xac\xa0\x2f\x23\x63\x4d\x48\xd0\x05\x6c\xcf\xfe\xb9\x7b\x3e\xa0\x71\x86\x65\x07\xf0\xfe\xa0\xac\x99\x73\x5c\xdf\x22\x85\xd6\x60\x84\x63\xa4\xe3\xb7\x95\x50\x3a\xc7\xdc\xc1\xab\x9b\xaa\x28\xf3\xb9\x4d\x6d\xda\x15\x18\x9d\xd6\xd9\xf8\xdb\xf9\x8d\xbf\x5d\x90\x8e\x28\x37\x1c\xdb\xc6\x75\x94\x9b\x33\xac\x94\x91\x4e\x4d\x38\x1f\x81\x6e\xe0\x4a\x5e\xe8\x95\x04\xc6\xa1\x93\xad\xda\x68\x87\x05\xe8\x02\x85\x73\xe7\x07\x18\x87\x2c\x20\xb9\x1c\x95\x7a\xc2\xcc\xe9\xfb\x34\x3b\x4d\x05\x06\x65\xe1\x50\xc6\x33\x15\xdd\x22\x87\x8f\x84\x9a\x2e\xd2\xb1\xd1\x49\x47\xa3\x50\x6b\xa7\x51\xc2\x32\x8d\x2c\x28\xa3\x46\x79\x2c\x8a\x62\x71\x89\x71\x47\x4d\x74\xba\xdb\xc5\xad\xce\xc3\xfe\x89\xcb\x7a\x3d\xe9\x61\x59\x40\xda\x1b\x0b\x03\xd2\xab\x8f\x83\x6b\xd4\x10\x88\x43\x16\xab\x75\xba\xb7\x60\x02\x3a\xb4\xa9\x49\x0b\xce\xf6\xad\x82\xd5\x8d\x6f\xd6\x7a\xd3\xf3\xae\xaf\x7e\x0a\x8d\x73\x1e\x81\x4c\x00\x41\x6f\xe6\x36\x6c\x64\x60\xae\xe4\x17\x5a\xb2\xa9\x1f\xb8\x7d\x9e\x53\xb6\x6c\xf2\x67\x38\x54\x4a\x5b\x09\x9d\xc1\x67\xef\xa5\x4c\x82\x0c\xda\x4e\x7a\x5f\x0c\xf2\x1c\xc9\x71\x1b\xd5\x2c\x2d\xc6\x72\xc7\x7b\x3c\x1f\xa7\x53\x83\x59\xd7\x0d\x3c\xb0\x0c\x05\x33\x0f\xe7\x76\x1a\xa5\x37\x04\x43\x9a\x2c\x34\xbd\x87\x0f\x49\x0a\xcf\x60\x12\x28\x77\x29\x3f\x57\x5e\xc7\x37\x7e\x9e\xdb\xf8\xe6\x7e\xfa\xee\x8e\x1b\x17\x3d\xe7\x45\x1c\xd1\xce\x44\xcd\x3f\x16\x7f\x52\xe0\x1a\x5c\xe5\x4e\x45\x3e\x88\x75\xc7\x82\x2d\x08\x19\xc7\xd1\x82\x0a\xbb\xbb\x4c\x2c\x25\xfb\x74\x82\x45\xa6\x22\x02\x8f\xd8\xc1\x7d\xea\x3c\xc9\x3e\x85\xf0\x18\x84\x7d\x43\x37\x13\xbc\x66\xd6\x75\x99\x38\xcc\x7c\x88\xce\xb2\x8e\xe4\xa7\x93\x5a\xc0\xd4\xe9\x5c\xaa\x54\x88\x03\xf0\x57\x4d\xf6\x50\xc2\x46\x1d\x12\x6c\x3e\xf9\x0d\x04\x3d\xae\xc3\xf0\x9e\xf9\x44\xc3\xf8\xe1\x4e\x02\x5f\x74\x5c\x95\xe8\x8a\x2b\x38\x2e\xc8\x01\xbe\x4a\xcb\xaf\xa6\x97\x4b\xa7\x7f\xe7\x2a\x5a\xa8\xf7\x56\x02\xcf\x09\xd9\x9b\x5f\x40\x68\x14\x37\xef\x90\x01\xd4\xd2\xe4\x95\x4b\x43\x98\x0f\x07\x66\x1b\x1f\x67\xb6\x2a\xa9\x47\xa0\x16\xb7\x47\x29\xcf\x70\x34\xa7\xc8\x90\xb5\xe5\x65\xb5\x65\x08\x67\xce\x55\x9e\x0a\xe9\xd6\xba\x40\x11\x1f\xab\xc9\xea\xfb\x03\xe7\x9e\xeb\x99\x92\x73\x35\x70\x3c\x04\x68\x5c\x94\x58\x3d\x96\x7c\x4c\x64\x0c\x6a\x56\x18\xb4\xb3\xe0\x78\x00\x55\xcf\x2c\x9d\x47\x4f\x39\xf6\x52\x8e\xac\x57\xe3\xa4\x15\x35\x46\x5f\xd3\xd7\xf4\x32\x3d\xdc\xaf\xee\x13\xb0\x40\x19\x03\x60\x2c\x34\x77\xec\x22\xea\x7c\x43\x9d\x73\xe6\x25\x78\xb5\x14\x8c\xb5\xc2\x91\xc2\x9e\xbd\xf1\x9e\xd7\x02\x97\x8e\xdf\x5c\xe9\xcf\x9c\x7a\x75\x5f\xe9\xb5\x20\x0b\x8c\x87\x3b\x73\x87\x02\xf7\x96\x7a\x67\xe7\xb7\xae\xce\x21\xb0\xd9\x10\x62\x0e\x09\x32\x27\x00\x0a\x2d\x23\x22\x8b\x9c\x5b\x27\x7f\x46\xad\x61\x90\xad\x50\x55\x25\x09\x88\xab\xa2\x2d\xf7\x5b\x65\x5a\x5b\xb1\x31\xb1\xed\xd1\xd2\xfd\x3c\x64\x0a\x51\x21\xe5\xe3\xc1\x12\x0a\x0c\x22\xa7\xb8\x8a\xff\xc1\xff\x1f\xd1\x0b\x2b\xbd\x90\xc9\xf6\x83\x98\x94\x8a\x62\xd8\x75\xe6\x6a\xe6\xf0\x12\xe6\x29\x48\x2c\xc5\x51\xd4\x20\xa9\x08\x45\x58\xa4\xe2\xff\x09\x27\x82\x37\xe5\x43\x1a\x84\x17\x34\x95\x87\x41\x32\x56\x8d\x03\xb1\x1f\x05\xe3\xa0\xe7\x07\xad\xb0\x1e\x1d\x0e\x29\x78\xb7\x15\xe2\x15\xc7\x4a\x50\xa2\xce\x87\x71\x00\x8a\x18\x07\x07\x49\x14\xc0\x50\xf0\x66\x84\x1f\x82\xf1\x52\x23\xc1\x4b\x07\x4a\x78\xfb\xe7\x8c\x66\x15\x0d\x54\x6b\x63\xa5\x38\xc0\x69\x0d\x78\x58\x95\x40\x00\x50\x7c\x9f\xf8\xff\x98\x76\x18\x01\xec\x90\xe3\x8a\x58\xf1\x68\x3e\xfb\x97\x26\x37\x7e\x9e\xe2\x45\xd0\x5f\xb8\x41\x72\x8a\xd6\x76\xa1\x70\xf3\xc9\xd7\xc8\xed\x7f\x62\x4b\x02\x1a\xb8\x78\xba\x40\x89\x4d\x42\xb3\xaf\x41\x2d\xa1\x35\xf0\xfb\xfa\x02\x60\xb1\x39\x1b\xa0\xc6\xb8\x9a\x2c\x0b\x79\x74\x08\x16\xa4\x85\xe8\x63\x24\x24\x7d\xe5\x5b\x19\x30\x9e\x6a\x23\xc0\xbe\x06\xff\x23\xa8\x94\x26\x62\x9b\x19\xb1\x52\x38\x80\x59\xa4\xf5\x45\x8b\x5b\x49\x2c\x93\xcb\x97\xb2\x90\x5d\x51\x41\xe2\xbf\x90\xe4\x9c\x0a\x70\x92\x40\x72\x0e\x16\xdd\x29\x27\xda\xf8\xf9\x54\xb7\xf3\x40\x35\x94\xc9\x8f\xda\x8d\xe1\x6a\xa3\x52\xb0\xe3\xa3\x36\x17\x7f\x60\xfd\x94\x8a\xcc\x5a\x48\x8f\x13\x63\x9a\x4d\x3d\x77\x6f\x2f\x19\xe3\x8e\x90\x92\x97\x66\x91\x08\x5f\xe8\x4d\xce\x3e\x7d\xf4\xc8\xbb\x06\x14\x48\xf4\x2c\xda\x39\x1e\x58\x54\xe4\x7b\x5b\x12\xa5\xc6\xf5\x2d\x39\xc8\xad\x42\xec\x4d\x26\x3d\x96\xf9\xa6\xbf\x69\xf1\x8f\xe1\xd5\x1b\x85\xae\x02\x5b\xaa\x94\x04\xa0\xb4\xc0\xe2\xe6\x75\x00\xfb\x82\xbb\x09\x45\x21\xc7\x3d\xbe\x7e\xe0\xdd\x78\x88\xc5\x47\x5e\x49\x2a\x72\x9a\x6c\xaf\xb7\x68\x56\x4f\x52\x98\xec\x2d\xa5\x38\x59\x3d\xda\xee\x14\x12\xb5\xd7\xbe\x0b\xe5\x8b\x68\xdc\xaa\x68\x95\x06\x35\xf9\x94\x35\x65\x98\x2a\x39\xc4\x70\xa1\x78\x46\xc3\xd8\xd5\x6a\xb2\xe7\x00\xb8\xad\xe2\x75\x8c\xcc\xe3\x75\x18\x4b\x67\x62\xb0\xac\x91\xee\x00\x37\x86\x2f\x00\x15\xbe\x21\x1e\xcd\xeb\xf6\x04\x2d\x1d\x5f\xcc\x78\xfa\x68\xae\xf7\x08\x3e\xde\xa2\xa8\xf6\xfc\x4b\x7e\x64\x0b\xcf\xb3\x7c\xdb\x5c\x59\x96\xa0\x92\xf4\xac\x75\x69\x98\xf3\x81\xb0\x15\xe3\x8d\xa2\xe0\x75\x5e\x0f\xb4\x88\x2c\x56\x9d\x59\x2b\xcd\xaf\x9b\x0a\x8d\x5a\x56\x84\x66\x5b\xee\x1d\x8d\x04\x96\xcd\x69\x10\xef\xb6\x87\xa4\xf7\xea\x81\xcc\x56\x35\x17\xe7\x96\x3d\x2e\x0e\x6d\x34\x9e\x49\x02\x8e\xd8\xc3\x46\x58\xaf\x93\x43\xc4\x74\x26\x00\x2c\xe3\x61\xad\x36\x84\x5b\x5b\x5a\xcf\x8f\x34\x53\x44\x16\x40\x09\x2d\x63\x56\x6e\x6c\x45\x03\xb6\x08\x09\xa0\xb4\xb7\x96\x0d\xff\x82\xdd\xf6\xf8\x76\x7f\x61\x51\x8b\x50\xb2\x12\x90\xe9\x18\x81\x89\xa6\x5c\x85\xfa\x7b\x3d\x55\xb8\x56\x54\xa8\xbf\x5b\xae\x6f\x1d\xf9\x5c\xd8\x1b\x8f\x02\xb7\x0e\xa8\xb4\x5f\xa2\x7f\xef\xe1\xd3\x5f\x8f\x3a\x03\x90\xa8\x6b\x4b\x7e\xf1\xad\x39\xec\xdd\x99\xfd\x67\x32\x78\xa2\xd5\xf8\x33\xd0\x74\xc9\x17\x46\x77\x99\xd6\x29\x0c\x7f\xdd\xf2\x47\x67\xc6\xd3\x18\x6f\xb5\x08\x9d\xbd\xce\xf1\xde\xf5\x45\xa4\x54\x96\xcb\x7a\xe3\xca\x5d\xde\x72\xfd\xc9\xef\x30\x56\x15\x5d\x23\xcb\xfd\x95\x59\x71\xe3\xa0\x5e\x86\xfd\x55\x64\x07\x51\xb1\x7f\x64\x5e\x13\x1c\xf7\x1a\x32\xac\xc3\xd5\xb8\x3a\x5c\xad\xb1\x1d\x9b\xae\xb4\xa0\xbd\x7a\x49\x99\xac\xa9\x18\x4b\xdd\x4b\x84\xe9\x1b\xab\xaf\xc6\x4d\x60\xcd\x65\x38\x98\xe3\xc2\x9e\x76\x15\x96\x2d\x30\xe8\xf0\xcb\x64\xcf\x6b\x96\x2e\x77\x9e\xa3\xf9\xa1\x13\x00\xfc\x9a\xe5\x2d\x32\xcd\x60\x82\x01\xd5\xd6\xb3\xfb\x49\x29\xc7\x0d\x46\xfb\xf3\x70\xa9\xd6\x0e\x79\x3f\x96\x46\x46\x40\xdb\xa7\xfd\x88\x35\xe2\xe7\xc8\x9a\x7d\x48\x1c\x3c\xdb\xa4\x25\x20\x48\xba\x1a\x68\x43\xf6\x8e\x4e\x4b\x51\x7a\xd0\x0e\x42\x6d\xe2\xf1\x69\x80\xd6\x9a\x9b\xe7\x74\x28\xae\xb2\x0f\x78\xb1\x40\x34\xcd\xb4\x06\x37\x97\xee\xf4\xbf\xfd\xab\x7c\xc1\xe4\x16\x3a\xb1\x85\xfe\xa2\x6f\x6a\xc3\x12\x86\xf1\x0e\x8d\x56\x93\xea\x68\x23\x6a\x85\x01\x1a\x43\x41\xf8\x81\x9d\x0e\xe7\x25\x2e\x28\x22\x31\xda\xf0\x1e\x90\x39\x40\x0a\xcc\x10\x9c\xf2\xc0\xbb\xde\xa6\x8c\x63\xad\xb0\x54\x81\xe5\xf9\x11\xfd\xa3\x7e\x7a\x9d\x28\x05\xfc\x39\x50\xc9\x3a\xc8\x4b\x19\x15\xab\x8d\x6a\x52\x78\x17\xfe\x07\x52\x54\xf5\x2f\xc2\x53\x4d\x42\x82\x20\xa6\xea\xb0\x2e\xa8\xeb\x74\xb5\xcd\x60\x90\xd0\x76\x99\x3f\xdf\xc3\xa6\xa2\xd9\xe5\x56\x9b\xf8\x9e\xf8\xfe\x09\x4f\xcd\xb2\x12\xbc\x8c\xd3\x49\xe5\xc0\x80\x8e\x25\x61\x0b\x16\x8f\x49\x86\x11\x80\x34\xba\x75\xe1\x9b\x67\x41\xe3\x7e\x2e\xd7\xa3\xe2\xef\xb9\x7f\x8c\x53\x25\xbd\x93\xff\x5e\xd7\x4a\x23\x44\xb3\x64\x3b\x19\xd3\x8e\x61\x51\x49\x71\xe0\xa3\x2c\x43\x70\xa0\xdd\x65\x9a\xfa\x7b\x92\x4a\xc5\xba\x27\xac\x52\x1f\xd8\xf0\x6a\xb6\x3f\xf6\xa6\x8f\xf6\x1d\xc8\x5e\xa5\xc0\xd9\xeb\xb8\xc9\x83\x61\xd8\x98\x7b\x5e\x63\x72\xcb\xee\x36\x48\x73\xe6\x54\xa5\x15\x11\xb0\xa1\x72\x2d\x6a\x00\x93\xae\x54\x5a\x7c\xd7\xc5\xdc\x45\xf6\xec\x5c\x59\xf0\x96\xb2\x20\x22\x62\x89\xae\x35\xef\xa3\x08\xc1\x7d\x6f\xbf\xfb\x31\x05\x4d\x81\x9e\x85\x4e\x89\x9a\xba\xe8\x8d\xf7\x8e\x86\x0c\x4a\x15\x49\x40\x30\xea\x52\x92\x75\xef\x33\xeb\x12\x12\xc6\x2a\xb8\xae\x4d\x34\x6b\x67\xdc\xdc\x5f\xcc\x8c\xd8\x92\xd5\x77\x08\xa6\x72\x00\x47\xa2\x2b\xcb\xb0\x7f\x46\xac\x5b\x15\xb6\x00\xe7\xb9\xaa\x31\xee\x22\x95\x52\xc0\xe1\x61\x1e\x4f\x2a\x47\xcd\x89\x62\xad\xda\x38\x54\xd0\x62\x1e\x7c\x04\x16\x72\x08\x84\x95\x22\x96\x16\x4c\xf8\x2a\xf2\x73\x7d\x37\x67\xd9\xae\x10\x35\xab\xe4\xc3\x94\x2f\xb0\x65\x7b\x27\xd0\x6d\x42\x33\xa5\xaf\xbf\xeb\x89\x9d\xa5\xb9\xbd\x47\x3b\x60\xa0\x59\xa5\x14\xb0\xcf\xb9\xb0\xa7\x38\x0c\x5c\xf1\xd0\x1e\xcb\x12\xa2\xab\x92\x99\x04\xd9\xee\xfc\xd4\xc6\xd1\xc5\x1c\xa1\xb2\xdd\x18\xa7\x88\xb5\x4f\xf8\xdf\xdd\xbb\xf8\xe7\x9f\xf9\x47\x1b\x2f\x5c\xb5\xa0\x10\xff\x61\xa7\x6c\xe1\x20\xfd\x49\x79\x6f\xfe\x04\xff\xa3\x8d\xe7\xf0\x6f\xa5\x01\x7f\xd1\x46\x72\x8d\xb6\xab\x74\x85\x79\x95\x58\x2b\x7b\x04\x95\x09\x48\x51\x02\x19\xa3\x1d\x8a\x90\x71\xf1\xcd\x59\xfd\x9a\xfd\x59\xf7\x7f\xe8\x84\x28\x47\x75\xd0\xd7\x84\xe2\xfa\x9e\xa2\xba\x37\xdd\x59\xcc\x4b\xf4\x63\xdd\x17\xb5\xf5\xcb\x66\x1b\xe3\x53\xd1\x97\xaf\xa2\x47\x0c\x5a\xa0\xf3\x5a\x60\xe1\x46\xcf\x4d\x7f\xe1\x1a\x5d\x83\x4b\x0d\x00\xa3\xa1\x17\x74\xcc\x28\x92\x4c\x33\x6c\x9b\x3d\x27\xad\x10\xb9\xd3\x11\x65\x03\x96\x88\x02\x4c\xd6\x94\x94\x30\xeb\x8e\x05\xfd\xff\x07\xc8\x22\xa7\xee\x29\xa8\x30\xf6\x91\x51\x0d\x81\xf1\xb2\xe9\x60\x06\x1e\x10\xb4\xe1\xff\xc1\x47\x92\x87\x07\xed\x1d\xc3\x61\x2d\xa6\x83\x11\x05\x13\xbc\x5c\x8f\xe7\x52\x02\x33\x14\x2b\x9e\x39\xbd\x6c\x5d\x13\x7d\x80\x2b\xbc\x5e\xaf\x62\x12\x1f\xa4\xcc\x15\x15\x88\x0e\x1a\x41\x58\x8a\x55\x8c\x80\xdc\xf7\x84\x35\x83\xee\xca\x56\x69\xbc\x00\xda\x98\xbe\x29\x29\x9f\x61\x05\x50\x92\x9e\xde\xfd\x1b\xfd\xbb\x3f\xc9\x47\xba\x4c\xe6\x57\x40\xa3\x1d\xa9\x52\x02\x04\x7b\xa8\x5e\xe2\xad\x8a\x9e\xe7\x75\x65\x43\x7f\x40\x61\xe5\xba\x8b\x43\xd9\x5d\x55\xa5\x92\x39\xc8\x2e\x44\x3e\x42\x89\x84\x0c\xd4\x08\x9a\x1b\xfc\x8f\x78\xe2\x60\x60\xe9\x6f\x97\x36\x27\x8f\x9a\xcf\x75\xe0\xc2\x9c\xcc\xeb\x2a\xcd\xfc\x1a\x75\xff\xa1\x01\xa8\x50\x52\xa9\x85\x1b\x4f\xd7\xbe\x35\x1f\xf9\x8a\x60\x6f\xfe\x3a\x85\x84\xa8\xaf\xb0\xc0\x43\xcb\x91\x67\xdd\xa9\x93\x54\x5f\xfc\x9d\x2d\x9e\x76\xd9\x50\x7a\x52\xad\xc2\x06\xca\x54\xc3\xe8\xf3\x54\xc5\x6a\xef\x5a\x40\x65\x98\xcb\x56\xd1\xc7\x63\xe2\xf7\xa7\xae\x39\xe0\x7a\xcd\xe4\x2d\x19\xb7\xfd\x6d\xc0\x73\xfb\xb3\x5d\xbd\xbc\xee\x45\x4d\xd0\x34\xad\xca\xa2\x8e\xc0\xe6\x7c\xf0\xf4\xe1\x5d\xda\xba\xdb\xf5\x1a\x78\x56\x8c\x97\x79\x2c\x24\x8a\x39\x61\x48\xb6\x96\x86\xb7\xc3\x03\xd2\x02\xa6\x55\x83\x35\x30\x7b\xb4\xf7\xdb\x19\x5a\x3c\xa9\x71\xa6\x81\x72\x87\x86\x46\xc9\x34\xb4\x4b\x40\x66\x98\x05\x5e\x28\x16\x23\x35\x68\x64\x45\x58\x9c\x32\x63\xe5\x30\x50\x11\x44\xd5\x72\xa8\x6f\xb5\x0a\x1c\x88\x70\x94\x79\xcb\x69\x31\xb5\xce\x52\x4d\xd3\xc4\x24\xa5\xe1\xc2\xde\x4a\x60\xcf\x8a\x41\x84\x64\x37\x10\x86\xe4\x1a\x02\xd8\x01\x5e\x3b\xf4\x9a\xca\x2c\x06\x19\xb4\xc8\xe2\x77\x81\x25\x7d\x15\x3a\xaa\xf7\xc1\x5c\x96\x68\xe2\x62\xda\xe9\x52\xf7\xc1\x33\x1a\x1f\xb4\x68\xbc\x29\x14\x6c\x7a\xaa\x49\x65\x57\x6e\x53\x85\x88\x92\xbb\xa4\x2a\x8c\x56\xa1\x82\xd5\xfa\x07\x91\xd1\x41\x5e\x17\x7c\x7e\x35\x96\x98\x91\xed\x5e\xa7\x7b\x89\xe9\xd2\x21\xbc\x92\x2d\x07\x8c\x1d\x83\xe1\x71\x23\xa7\x46\x2c\x19\x05\x41\x98\x9a\x88\xda\xb6\xcf\x75\xb9\x77\xfc\x47\xa0\x3b\xac\x5e\xc4\x62\x2e\x5d\x69\x57\x5b\x06\x3a\x5e\x63\x95\xe2\xf0\x84\x8f\x6d\xce\x3d\xd6\x07\x21\xa9\x87\x0d\xb4\x10\x61\x7a\x09\xbf\x4b\x4f\xd7\xbf\xe3\xc0\x11\xbf\x62\x4c\x89\x95\x28\xa9\x52\xba\x60\x08\x15\xb9\x18\xa8\x0c\xcc\x3b\xce\x86\xc0\xad\x03\x10\x1f\xd2\x3f\x99\x10\xad\x10\xb4\xd6\x84\xad\x59\xa0\x85\xe2\x8f\xda\x84\x58\xb7\x2a\xd9\xad\xc2\xd1\xab\x2a\xbc\x87\x7f\x07\xad\x9d\x54\xab\x47\x71\x82\xc7\x0d\xba\x97\xde\x87\xbf\x03\xf9\x31\xa8\x15\x05\xcf\xcd\xa4\x2b\xe0\x9e\xa6\x69\x29\xf0\x5f\xc1\xde\x4f\x5f\xfc\x2c\xc6\xb4\x2c\xc6\x79\xf7\xe9\x4b\x9f\x81\xd4\xba\xf7\xd3\x97\x3f\x8b\xd9\x55\xe7\xd7\x2d\x8e\x94\x0e\x85\x29\x04\x54\x4f\x03\x37\x5b\xe1\xe1\x6a\xd4\x8e\x0b\xe8\x70\x33\xc9\x33\x35\xc3\xfa\x32\x29\xa0\x57\x39\x55\xc2\x4c\x87\xac\x65\x1f\xc2\x9f\x2e\xaf\xa9\x48\xc9\x7e\xfa\x61\xb0\xb5\xeb\x45\x19\x6a\x8c\xac\x48\xfd\x6d\x2a\x2b\x3a\x14\x4b\x49\xe1\x73\xfd\x0b\xc7\x5c\xad\xe0\x88\x61\x08\x7b\x64\xf8\xff\xc4\xbf\x5e\xa3\xe1\xe0\xf8\x3f\x37\xed\x44\xda\xdd\xf7\xf1\x58\xd8\x0a\xd1\xdd\xd3\x60\xeb\x29\x7c\x0b\x26\xc2\x64\xc8\xe3\x8d\x9c\xbf\x90\xba\xeb\x95\x48\x27\x6c\x08\xce\xa4\xc3\xdf\x35\x74\x2b\x24\x8a\x30\xd8\x47\xf4\xc3\x2f\x73\x51\x31\x4c\x26\x2e\x61\xfc\x6a\x8d\xec\xf7\x8b\x99\xc4\x44\x22\xfa\xf3\x8f\xd2\x87\xfb\x23\x28\xd4\x8f\x3f\x8a\x84\x05\x2c\x90\xee\x47\x04\xcd\x08\x50\xba\x51\x26\xef\x0a\xd0\x9b\xa0\x02\x54\x36\x41\x7d\x66\xd8\x3f\xda\x42\x33\xa2\x74\xb0\x07\xe8\x1f\xfd\x95\xb2\x61\x14\xe8\x52\x9d\x59\x8c\x64\x20\xfd\x10\xff\xaf\xbf\xa9\x2b\xe5\xa0\x6e\x81\xce\x0b\xdc\xfe\x20\x7c\x80\x7d\x4c\x1e\x52\xfc\xe0\x42\x56\x1b\x45\x75\xfd\x8e\x14\xb2\x24\x0a\x30\x9e\x97\x07\x03\x2b\x07\xd3\xce\x8a\x51\xfe\xf5\x1a\x1a\xad\x26\xd8\xa9\x54\x6a\x28\x4f\xeb\x3f\xbb\x7e\x75\x6a\x0e\x11\x44\x6a\x7e\x9d\x4d\x1a\x56\xaa\x49\xe1\x2d\xf8\x9f\x21\x28\x07\xd1\xed\xa7\x7f\x4c\xe7\xa0\x91\xc2\x41\xf8\x9f\xfe\xc2\xa7\xb0\x4a\x53\x69\x44\x07\x0f\xa0\x1c\xd5\xa2\x96\x2d\x9e\xae\x6c\x1e\xff\x31\x05\x83\x36\x71\x14\x0a\x52\x47\x3e\x03\x98\x35\x4d\x1b\xb6\x7f\x69\x69\x73\xf1\x87\xfe\xfd\x47\xe9\x33\x8a\xe1\x69\x54\x1b\xbf\xdc\xda\xba\x78\xcc\x2b\x91\xb0\x58\x65\x47\x77\xca\xe4\x2a\xa9\xdd\x57\x15\xe4\x95\xc6\xc1\x41\xa0\x16\x64\x16\x46\xd7\x31\x63\xcb\x4e\xce\x8d\x92\xce\x2d\x8c\x3f\xca\x09\x84\x14\x49\x0f\x54\x99\xe9\xa3\xbd\xef\xef\xa3\x39\x41\xea\x3a\xb1\x48\x1c\x03\x69\xdb\xee\xed\x63\xd2\xeb\x8e\x09\x05\xd3\x03\x30\x9e\xb6\x14\x7a\x2b\x46\x86\xd4\x4e\xdc\x73\xcd\x12\xac\x50\x8e\x30\x8b\xe5\xf2\x2d\x86\x18\xae\x7e\xb3\xb9\x3e\x9d\x03\xc6\x44\xf8\x7d\xfd\x74\xb7\x73\xdd\xb3\x6b\xea\xaa\x92\xc0\x2c\x2b\xa1\x6c\xae\x86\x6f\x37\x35\x0c\x4a\x6b\x01\xff\x97\xea\x03\xff\x5b\x90\x7f\x55\xb1\x1c\x88\xa2\xcb\xff\x89\x7e\x05\xfc\x4b\x81\x00\x17\x6f\x85\x71\xbb\x96\x60\x6c\xf5\xa9\xfe\xe5\x4b\xe8\xee\x06\xf5\x15\x07\x31\xeb\xde\xcb\x76\xee\x14\x4a\x65\xd8\xb8\x20\x8f\x90\xc9\x89\x7b\x60\x1d\x05\x54\x26\x3b\x13\xcb\x82\xe1\xb0\x5c\x6a\x03\x67\xc7\x11\x10\x4b\x1e\x83\x1d\x1e\x28\xf3\x00\xa5\x46\x0b\x0f\x87\x8d\x21\x85\x1e\x2f\xa3\xd8\xb9\x78\x0b\x9f\x6b\xec\x25\xe1\x0e\xa5\x00\x01\x02\x01\x80\x16\x92\x71\xf4\xc1\x25\x80\x2f\x0c\x92\xf1\x48\xec\x50\xf1\x2b\xf6\x89\x0e\xac\x70\x1f\xb5\xb0\x0f\x8f\xf5\x8a\xb0\xc5\x7f\xa2\x1f\xc2\x1c\x85\xbc\xac\x8d\xec\xa7\x7f\x02\xdb\x1c\xa1\x20\x88\x41\xf0\xd4\xa3\xfb\x10\x9d\x81\x41\x3d\x84\x26\x49\x12\xa8\x08\x4f\x8e\x99\x45\xbf\x8a\x17\xdf\x15\x0f\xa6\xbf\x81\x75\x41\x05\xf5\xfd\x65\xfd\x5d\xa1\x27\x54\x72\xce\x73\x2b\xfc\xe5\xbf\x86\x1d\x6a\xff\x37\x14\x4e\x64\x08\xa5\xe1\xa2\xcd\x7a\xe1\x24\x34\x3f\x5c\x20\x36\x50\xec\xe7\x7f\xed\x22\x72\x10\xe0\x02\x83\x69\xe4\xfd\x50\x51\xc5\x72\x2c\xc3\x12\xa1\xae\x17\x0e\x90\xe9\x25\xe0\xcf\xe2\xc6\xb5\xa7\x10\x7a\xdc\x0c\x5b\x68\x94\x17\x42\x02\x1c\xa7\xb3\x1b\x72\xa9\x52\x78\x9f\xfe\xb1\x17\x8b\x14\x7c\x9c\x42\xaa\x9d\xb3\x42\x3e\x2f\xc2\x86\x31\x80\xec\x59\x82\xbd\x42\xee\xeb\x37\xe1\x6f\xed\xc6\xca\x46\xc5\x90\x41\x05\x0e\x60\xcc\x32\x2a\xcc\x07\x2b\xa1\xed\x11\x68\x8f\x63\x70\x3b\x0e\x87\x4f\x91\x3c\x2f\xd4\x0d\x9e\xd0\x7f\x8b\xda\x64\x01\x57\x83\xc6\xf2\x17\xbc\x91\x07\x51\x06\xa5\x6c\xac\xe4\xb1\xc8\x46\xfc\x4c\x32\x18\xb5\xda\x94\x09\x6d\x2d\xdc\x83\xe8\xd4\xad\x55\xcb\x49\xac\xb7\x93\x32\xf3\xe4\xb7\xa8\x32\xb5\xf2\xe4\x22\x3e\x31\x75\x06\x98\xf6\x11\x08\x14\xd5\x90\x4a\x71\x54\xa3\xec\xac\xee\x54\xba\x9b\x9c\xa6\xd5\xdb\x6c\xb6\xa9\xcf\x35\x29\xe5\x68\xb6\x16\x78\xbe\xe2\x6e\x01\x0d\x50\xde\x7d\xa8\x4a\x61\x2f\xe7\xeb\x3a\x77\xbc\xdb\xf9\xd6\xba\x6c\x60\x77\x31\x2a\xc2\xba\x28\xb2\x05\x8d\xb2\x56\x28\x25\xd9\xeb\x58\x81\x6e\x8d\xcc\xa7\x5b\x29\x08\x7a\x4a\xf1\xe9\x8c\x1d\x8e\xb7\x61\x64\x9c\x40\x6e\x61\x4c\xa6\x1c\x69\x2c\xc9\xe5\x25\xb6\x40\x4e\x48\xb7\x01\x87\xad\xbd\xaf\x0a\x1c\x18\x96\x7c\x28\xa5\x83\xf3\x5d\x62\x30\xe2\x72\xab\xda\x64\x06\x61\x17\xaa\x31\xbf\x09\x9b\xe2\x4d\x44\xfe\xac\xca\x1d\xfb\x9c\x37\xc4\xb0\x04\xdd\xc7\xff\x3b\xdf\x75\xca\x3a\x41\x54\xe4\x3d\x44\xf8\x28\x5e\x82\x7f\xe3\x09\x20\xa0\xcf\x07\xf5\x36\x31\xfe\xe0\x99\x09\xc0\xf6\x42\xbd\xfe\x42\xa5\xf2\x4c\xd6\x78\xb5\x58\xa0\x07\xcc\xae\x3b\xbd\xa1\x45\x4b\xf7\x99\x83\x85\x48\x8b\x93\x39\x44\xc3\x72\x6b\x7a\x3e\xc1\xb3\x2e\x44\x9f\x62\x50\x31\x14\x23\xd1\xd8\x9a\xb2\x18\x19\x5e\xd4\xac\x85\xc1\x38\xc5\x88\x0c\xf3\x0e\xc4\x88\x29\x6f\x18\xae\xe8\x6a\x95\x88\x68\xf7\x3e\xfd\x33\xb8\x6f\x4c\x02\xf6\xd3\x53\x24\x4c\x3d\x87\x1a\x28\x12\x0f\xa2\x85\x16\x13\x0d\x39\x4d\xfc\x4e\x06\x5c\x3a\x7a\xc7\xb4\x6c\x47\xec\xe0\x79\x66\xf1\x4e\x14\xee\xed\x20\x1e\x59\xcf\x03\x62\x76\xb2\xda\x4e\x4f\xfd\x76\x41\x97\x19\xcf\x11\xa8\x0f\x43\xbc\xa6\x63\x3f\x11\xb2\x05\x61\xa5\xb0\x43\x41\x1a\x8d\xf6\xb7\xc9\x07\x77\xc7\xbd\x53\xa5\x2b\x8c\x45\xd1\xa1\xb8\xf0\xe7\x70\x98\xfe\xb0\x0a\x46\xab\x09\x97\x51\x12\x72\xbe\x79\x23\x19\x69\x34\x0c\xc8\x53\xd5\xb2\x79\xfb\xa0\x77\xe5\x51\xff\xd2\x9d\x54\xaf\x2b\x38\xe5\xad\xe2\x5f\xd0\x1e\xd8\x3b\x79\x7f\xeb\xfc\xa3\xde\xa5\x7b\xbd\x87\x36\x22\xba\x12\x26\x19\x29\xcd\xad\x30\x5d\x2c\x77\x51\x3c\xc2\xa0\xec\x2e\x77\x6f\xcc\xf8\xf9\x72\x06\x3a\xa5\xd8\xb3\xce\x91\x49\xec\xee\xe5\x18\x11\x3b\x2a\x64\x2c\x1a\xc7\x73\xe2\x50\x2c\xd3\x8c\x33\x8a\x21\x82\xc6\x99\x3d\x64\x21\x4f\x40\x60\x8c\x47\xbc\x58\x1d\x74\x4e\xaf\x5d\xcb\x80\x52\xca\x49\xca\xe1\x65\x19\xe1\x74\xc6\x18\x93\x0d\x1d\x53\xb2\xfd\xa0\xbd\xb3\x7c\xb9\xdd\xbd\xd2\x8b\x57\xf4\xd4\x9d\xe4\x65\x75\xaf\xda\x89\x46\x57\x5d\xa1\x57\x35\x28\xf1\x00\x0a\x29\x31\x47\x2d\x38\xcf\x7a\x58\x03\xe1\xeb\x1a\x12\x86\xed\xc6\x69\xa7\x07\xe1\x74\x33\xa3\x65\x75\x4d\x32\xd3\x6b\x69\xe2\xc7\x3c\xf8\x3c\x92\x79\x5a\x5d\xef\xe8\x34\x06\x30\xcd\xac\xd1\xcd\x64\x63\x86\xde\xb8\xf6\xa8\xb7\x82\x66\xc9\xc1\x09\xd7\x52\x13\x85\x49\xac\x61\x0b\x16\x5f\x2c\xbc\x10\xa0\xf0\x42\x2b\x84\x4d\x41\x1c\x68\x57\x1d\x09\x80\x94\x01\x91\x92\x94\x00\x60\x0e\x95\xea\xe1\x6a\xa5\x5d\xaa\x51\x22\xe5\xac\x55\xa2\xd1\xbe\x64\xa3\x05\x7e\x41\x11\x05\xb9\xa8\x1b\x81\xfd\x48\x0b\x69\x2b\x00\x03\x2c\xe7\x19\x90\x90\x90\x81\x90\x70\x18\x72\x8d\x38\xb3\x61\xe4\x61\x62\x41\x10\xb9\x88\xf2\x43\x04\xfa\x9e\xb0\xc3\xe7\x98\x89\x61\x34\x1d\x1f\xdc\x5a\x42\x7b\x25\x3d\x3f\x36\xa5\x68\x4f\x19\x71\x4e\x45\x8f\xed\x7f\xfd\x83\x0f\x3e\xfc\xd8\x84\xeb\x61\x0c\x6e\xa3\x02\x1d\x1f\xca\x47\xf7\x52\x1a\x1d\x11\x8b\x3c\x98\x0d\x36\xd1\x56\x14\x03\x27\x5d\xad\x35\xc1\x4a\x9e\x92\x94\xcd\x86\x7d\x1e\x06\x57\xae\xb5\x2b\x58\x8a\xac\x0b\x85\xeb\xe7\x85\x7b\x3f\xaf\x6d\x92\x44\x57\x3b\x2e\xd3\x30\xce\xc8\xa5\xaa\xd7\x55\x0a\xb2\xc0\xe1\xbf\x9b\x6a\x39\x20\x39\x19\xaf\xfc\x3e\x6f\xc2\xcd\x74\x30\x0c\x8a\xbb\xf5\x10\x17\x4e\x08\xe2\x57\x05\x2d\x95\xa5\x11\x3e\xa1\xf9\xac\xd8\xae\xd1\x97\xf2\x1b\x6d\x55\x0f\x03\xf3\xca\x6a\x55\xc5\x84\x82\xe8\x82\x94\x43\x16\x10\x24\xd5\xfa\xa0\xc9\xa0\xc6\x5e\xe6\xc6\xec\x93\xee\x50\x18\x36\xad\x16\xdc\xce\x3f\x1f\x34\x79\xa5\x09\x93\x35\xc1\x82\x19\x53\x44\xaa\x16\x11\x2a\x80\x65\x47\x0a\x45\x1e\xab\xb7\x4c\x2a\xde\xe3\x13\xee\x11\x38\xf0\xda\x61\x7a\x87\xb0\x45\x31\x93\x0d\x5a\xe0\xf5\xd2\x21\x10\xcd\x15\xd3\xe7\x64\x0d\x59\xd8\x38\xf2\x3a\x15\xb2\xa5\xc3\x6d\x80\xb9\xdb\x86\x20\x95\xf5\x61\x40\x47\xdd\xf0\xd6\x74\x58\xab\x06\xc4\x2b\x1a\xf6\xd2\xb5\x5c\xde\x94\xb8\x96\x8d\x75\xec\x1c\xd5\x37\x7a\xf2\x2a\xa7\x2f\xc9\xf8\x48\x06\xdd\xf4\xd2\x68\x79\xcd\x65\x63\x4e\x23\xcc\x37\x8b\x99\x35\x81\x99\x67\xaa\x94\x1f\xa4\xc8\x49\x4d\xfd\xa7\x49\x74\x76\x10\x4c\x4b\x71\xe6\x2a\x9d\xaf\x92\x42\x25\xd5\xa2\x44\xe7\xaa\x81\x6c\xfb\xc0\x8c\x43\xae\x71\x16\x94\x94\xc0\x14\x64\x91\x95\xc4\x26\x3e\xca\x94\x5c\xc5\x67\x2b\x27\x8e\x59\xdc\x38\xfe\x2b\x4b\x2f\x2a\xd2\x55\x82\x90\x37\xce\x3f\xc2\x68\xfc\xf3\x53\x78\xb8\xb9\xd9\x75\x7a\xd7\xcf\x61\x82\x0e\xe7\x49\x04\xf3\xd6\x82\x0a\x00\x5c\xb0\x32\xd5\xda\x98\xe7\x18\xb3\x6d\x15\xc5\xa0\x5f\xc4\x0c\x3a\xec\x9c\xd7\xd6\x27\xad\x1a\xe7\x3a\x3d\xf0\xe1\xc1\x8f\x7d\x63\x61\x67\x8e\xf2\xa6\x3a\x39\xe8\x37\x6f\x3f\xd8\xf8\xe9\x9e\x4a\x60\x78\x55\x2e\x6a\x77\x56\x82\x81\xd1\x58\x8a\x34\x26\xe8\x09\x2d\x60\x79\x77\xdf\x2c\xf2\xca\x14\x18\x73\xb1\x88\xf6\x82\x70\x00\x64\x5a\x13\x10\x88\x81\x7a\x00\x9d\x14\x50\x0c\x58\xaa\x78\xf0\x04\x12\x91\x33\xf0\xea\x55\x6e\x17\xd4\x46\x50\x0b\x68\x3b\x75\xc0\xc7\x34\xa4\xac\x15\xda\x44\x91\x01\x11\x37\x51\xca\x00\x10\xfe\x23\x03\x86\x15\xc5\xb8\xf0\x0e\xff\x9b\x01\xd1\xe4\x2c\x89\x05\xc9\x96\x98\x01\x31\x1c\x55\x26\x0a\x6f\xc0\xff\x32\xb4\x06\x79\xb1\xcb\x53\x1d\x30\x2d\x1f\x7e\xdb\xfc\x6a\xe9\xe9\x6f\x67\xec\xe4\x34\xea\x95\x8c\xac\xe4\x34\x2a\x87\x9e\x75\x55\x6a\xc5\x0b\x4a\xe6\xed\x2d\x02\x1f\x2e\x50\x3b\x45\xbe\x9b\x5c\xc1\xf4\x65\xc5\xbe\x2a\x2f\xb7\x16\x30\xbe\xf9\x36\xdd\x68\x1c\x7c\xc1\xda\x1f\x30\xb9\x46\x44\x7c\xe5\x17\x1d\x4c\x3b\x73\x5e\x5e\x5e\xfb\x72\xbf\x9d\x39\x96\x7a\xfd\x40\x8c\xf4\xee\x3d\x46\x64\xbc\x57\x6f\x6d\x5c\x7f\xe4\xe7\xeb\xf0\xc0\x80\x12\xb7\x1f\x6d\x9c\xff\xcd\xca\x88\xb0\x6c\x3d\x12\xa5\xba\xe4\xbd\xc5\x31\x60\x58\x26\x89\x87\xd0\x4c\x5d\xba\x4c\x41\xe6\xdc\xc0\xa4\x08\xbf\xb4\xe6\x28\xc7\xbc\x54\x2e\xd8\x5d\x4b\xe9\x74\x16\xdf\x65\x0a\x53\x6e\xf5\x2b\x9c\x25\x18\x55\x16\x8f\x7f\xd1\x73\x4f\x9b\x0f\xd6\x37\x97\xee\x9a\xf8\x11\x97\xd5\x0a\xcb\xc2\x9c\xd0\x64\x98\x46\x56\x27\x36\xea\x14\xc7\x93\xf3\xc2\xbd\x91\xed\x5d\xd4\xa3\x27\x03\xce\xde\xa3\xf4\x0b\xb3\x3a\x20\x4f\x5d\xcb\x96\x87\x65\x9e\xfd\xdf\x07\x3f\xfc\x40\xe7\x7e\x7a\x5e\x9a\xfe\xf2\x85\xf1\xf1\xf1\x17\x90\xdd\xbc\xd0\x6e\xd5\xc2\x06\x7e\xac\x48\x5f\x9e\xc7\x67\x80\x5e\xd3\x17\xe7\x5f\xdd\x07\xbf\x9e\xa3\x33\x47\x14\xe0\x41\x8b\x54\xb1\xe5\x65\x72\xa9\xf0\x05\x2c\xec\x67\x9a\x2b\x5b\x6e\x4d\x61\x4b\x3e\x4f\xce\x8b\x94\x75\x17\x8d\xb0\x0c\x7e\x72\x2a\x27\xb3\xaa\x2d\xe2\xe0\x7a\x51\x61\x34\xce\xa2\x09\xac\xb0\x1a\x63\x23\x08\xcb\x2d\xe8\xf4\xc6\xe2\xb7\xbd\xd5\x63\xf6\xf7\x5a\xa9\x7c\xc8\xa4\x68\xf9\x44\xfe\x48\x41\x54\xa1\x45\xea\xda\xbb\xf0\x87\xd7\x19\x86\x60\x9f\xea\x7e\xfc\xbf\x55\x86\x9e\x21\x7d\x15\xe8\xb6\x7f\x6c\xe3\x79\x85\x9b\x0b\xf3\xd9\xd8\xac\x45\x54\xd7\x3b\x92\x84\xcb\xf2\x1f\x72\x46\x74\x17\x3b\xc5\xd3\x46\x8d\xda\x44\x81\x17\x05\xfe\x56\x3e\x13\x6f\xe9\xd2\x93\xa2\x5e\x75\x4a\xb7\x6c\xb4\xa2\xc2\xbb\x01\x46\xfc\x6b\x95\xcc\x94\x68\xb5\x6c\x28\x85\x83\xd3\xa3\x14\xde\x0b\x93\xa0\x8e\x62\x3c\xfe\x0a\xc6\xf1\x26\x25\x63\xcb\xa8\x61\x5b\x73\x73\x4a\x99\x6e\x6f\x90\xa7\xed\x79\x0c\xaa\x4f\x4a\xa3\xca\xde\x99\x49\x85\xc2\x01\xf8\x5f\x36\x7d\xf4\x91\x82\xbf\xe8\x4e\xa7\xa5\x53\xd8\xfc\x82\x92\xa5\x17\x52\xd9\xd0\x3d\x00\xff\x9e\x52\xde\xe4\xcd\xf5\xd6\xcf\x92\x4b\x92\x92\x35\x92\x74\x46\xcc\x3a\x9b\xa1\x6c\x1d\x3d\xe9\xb1\x09\x8f\x93\x11\x1b\x4b\x09\xda\x5a\x12\xd9\x99\x88\x2d\xec\xd3\x93\x46\xb3\x98\xa7\x40\x3a\xad\x5a\xc2\xab\x52\x9a\x16\x72\x1a\x12\xdd\x30\x43\xec\x4d\x99\x70\x38\x98\xaa\x28\x62\x12\x26\x42\xd3\x17\xc0\x89\x23\x2e\x51\xce\xbe\x25\x57\xc5\xa2\x7e\xc9\xdd\x13\x7d\x04\xa4\xf7\x3e\x12\x8e\xf7\xa8\x39\x05\xbc\x34\x07\x58\x2a\x81\xfd\xd7\xd5\x13\x20\xa9\x7b\x2c\x9c\x7c\xdb\xd1\xd1\x96\xb3\x52\x78\x78\x8c\x21\x7d\x0d\x37\x05\x92\xf9\x3e\xa1\xcf\x5f\x40\x37\x6e\x50\x04\x66\x47\x12\x29\xc9\x43\xb5\x16\xb9\x9b\xb5\x68\x82\xf3\x64\x10\xd1\x38\x67\xc7\x75\x9d\xcc\xcc\x26\x88\x01\x2e\xbc\x5e\xa9\x04\x6f\xd2\x4f\x4c\x3d\x60\x5b\x00\xa3\xa2\x8d\xf3\xdf\xe4\xb2\x34\x9a\xfb\x01\x05\x1a\x06\x1a\x68\x5a\xa1\x9a\x00\xe1\x98\x93\x6c\x47\x4c\x46\x0f\xf5\x89\xbf\x9f\xff\xb5\x80\xdc\x7c\x11\x6f\x6a\xf4\x3a\x46\x4b\x4b\xbd\xe2\x6c\x70\x6a\x9a\x74\x11\x56\xcd\x71\x90\x14\xd8\x7c\x81\xc5\x84\x40\xb9\xe2\xe9\x1e\x82\x8b\xc6\xcf\xfa\xf0\x41\x38\x6e\x8d\xd2\x73\x38\x30\x21\xf2\xe4\x6e\x6b\xc0\xbe\xc6\x91\x49\xf1\x0c\xf8\xb4\xde\x51\xb1\x07\xb6\x83\x94\x0f\x9e\x01\x65\x47\xaa\x47\x56\x47\x14\x3d\x2c\xc2\x6e\xef\x8f\xa8\x54\x47\x46\x86\x86\x5b\xd1\x78\x8c\x89\x13\xf0\x69\xb9\x82\x79\xfb\x4e\xc9\x06\x02\x86\xe1\x16\xb0\x24\x36\x6f\x2e\xc9\x07\xf6\xe0\x7a\x77\x0b\xa8\x84\xbc\xde\xee\x5b\x58\xf8\xfe\xe2\xcc\x31\x73\xa1\xa1\xb3\xca\xc9\xad\xb2\xd4\x72\xc2\x11\x8f\x45\xe3\x45\xfc\x8b\x12\x41\xc4\x82\x40\x22\x7a\x40\x4c\x22\x99\x59\xc1\x22\x04\x4f\x45\xef\xe8\xfd\xfe\xa5\xe3\xea\x78\xdc\x5b\x09\x7a\x93\xb3\x69\xa5\x42\xdd\xca\x44\xae\x68\x6e\xc3\x82\x00\xe5\xd7\x63\x0e\x62\x4c\x9e\x20\x8e\x05\x29\x20\xe6\x97\x06\x0f\xe0\x3f\x05\xad\x4c\x2a\xfa\x02\xf3\x78\xe3\xdd\x0f\xe4\x17\xdd\xef\x90\x6c\x77\x76\x7a\xb0\x15\x35\x22\x7d\x95\x64\x28\xe7\x4a\x89\x2a\xe6\x1b\x40\xf4\xb7\xf7\x9a\x77\x0a\xb4\xd2\x2a\x8d\x24\x05\xb9\x18\x84\xdc\xd8\x5c\x58\xc1\x38\x52\x85\x45\xbd\xb4\x9e\x85\x02\x68\x4c\xf3\xb8\x72\x9c\x5c\x40\xea\xb3\x13\x37\xa6\x3e\x96\x50\x07\xcd\x78\xfe\x0c\xf4\xbd\xad\xf3\x27\x39\x7d\xfb\x43\x8b\x8e\x16\x7d\xb3\xee\xd4\x0c\xf1\xd2\x2c\xca\xeb\xd4\xb2\x3e\x03\xeb\x9d\x6a\x05\x08\x22\x88\xca\x24\x83\x77\x80\xe4\x46\xb5\x2a\x23\xc9\xd8\x4b\x50\xea\xd6\x15\xb9\xc1\xdc\x69\x22\x34\xfa\x6a\xac\x4e\x3b\x8b\xaa\x89\xb1\x30\x0a\x8c\x8e\xb5\xda\x38\xff\xc8\x09\x2c\xe3\x2c\xe4\xce\x9c\xea\x28\x40\xfb\x6d\x38\x39\x1d\x67\xe8\xe0\x50\x15\x94\x30\x8d\x5c\xb2\x58\xaf\x78\x67\xe3\xfb\xa5\xd6\xa1\x4a\x34\xde\x90\xe3\xd1\xcb\x90\xa3\x70\x8c\xb7\xd0\x09\xd7\xbf\xf8\x70\xf3\xf1\x3a\x09\x99\xd6\xdc\xf3\x4b\x8b\x32\xf1\x67\xf8\x01\xf3\x74\xeb\xce\xad\x87\x94\x1a\x08\x98\x29\xe0\x40\xd5\x42\x55\x01\x85\x55\x52\xd3\x9e\x70\xa3\x4f\x1f\xde\xfd\xbf\x93\x37\xb3\x96\x9d\x9f\x04\xca\xa2\x89\xf8\xa8\x50\xed\x5e\xe1\xcb\x80\x99\x08\xd2\xd7\xd2\x97\x54\x7e\xcb\xd5\xad\xef\x2e\x67\xbe\x0a\xaa\xd8\x8f\xb2\x19\xde\xfd\x96\x1c\x72\x59\x73\x46\x06\xed\x78\xcc\x99\x2d\x54\xb4\x69\x9a\xad\x55\x8a\x8f\xc5\xf1\x4e\x7b\xfa\x70\x96\x68\x72\x92\x1f\x63\x82\xc5\xe4\xee\x98\xa2\xd9\x71\x2e\x4a\x6f\x23\xa9\xf5\x5c\x94\x03\x51\x25\xd9\x95\xbc\x05\xb2\xc6\xd9\x12\xc0\xee\x3d\x77\xf4\x73\x6e\xb2\x6e\x95\x41\xee\xd3\xa8\x35\xfa\x99\x95\xcc\x5e\x26\x56\x27\xb2\xb7\x8b\xbc\x2c\x04\xda\x1c\x6b\xe5\x1f\x98\xdf\xbc\x79\x81\xee\x0a\x1c\x21\x35\xe8\x88\x75\xa7\x1f\xf1\x70\xba\x31\xf5\xee\xb6\xaa\xef\x27\x5c\x43\x53\x86\x09\xe1\xd4\xa9\xe5\xf4\x23\xb5\xfc\x20\x72\x6f\xfe\x9c\x9b\x41\x59\x74\x11\xcc\x2f\x2d\xa8\xed\x67\xcf\x9a\x51\x51\xe2\xff\x0b\x96\x38\x0c\x4a\x1a\x47\x47\x14\x30\xa3\x0d\x5d\x41\x6a\x1c\xc6\x77\xcc\xe3\xa8\x1e\xa2\x2b\x7b\x73\xe9\x1e\x67\x4d\xef\xcf\x5e\xec\x3d\x3e\xca\x39\xfb\x63\x93\x0e\x1f\xb3\x9a\x8e\xd3\xfb\x5b\x68\xb1\x8e\x0b\x76\xe2\x6a\x55\x36\x38\x6f\xb0\x75\x89\x13\x71\xdb\xfc\x5b\x25\x47\x37\xe3\x40\x22\x3a\xb9\x02\xb2\x33\xf4\xcb\xf7\x6c\x48\x45\xff\xa7\xeb\x17\x36\x6f\xdf\x47\xff\x05\xa8\x3b\x68\x2c\x3e\x63\x12\xe2\xdb\x6f\xcb\xdb\x99\xff\xe9\xb4\xa5\x4b\xae\x0b\xfe\x3b\x06\xd8\x98\xbf\xfd\x74\x76\x77\xcc\xd8\x26\x19\xb0\x55\xaa\x1d\x15\x91\xbb\x4a\xaa\x32\xa1\x40\x4f\x60\x35\x8e\x4d\xcc\x6f\x0a\x8d\xba\x0c\xbc\x24\xae\x74\xe4\x54\x12\x82\x4b\x68\x32\xaf\xee\xeb\xc5\xfc\x8f\xb8\xb1\x6f\x3d\xf1\xf0\xf7\x5e\xd4\xff\xaf\x84\x7e\x0c\x48\xba\x6b\x9b\x6e\x33\xb2\xef\xea\xe2\x81\x69\x78\xff\xfe\x68\x0c\x58\x9a\xd4\x2f\x8b\x40\x79\x79\x73\x73\xaa\x8a\xdd\x2f\xb7\xbe\x93\x76\x3d\x9d\x6e\xc5\x4d\x9b\x6b\x31\x10\x8e\x0d\xdf\xd1\x6b\xe4\x39\xc3\xd7\x22\xb5\xe6\x59\x3b\xc8\x83\xea\x87\x49\x68\xa6\x94\x17\x17\xa1\x33\xf1\xd8\x09\xe9\xf3\xc1\xd5\x5b\x78\x26\x13\x8f\x5b\xed\xef\x4c\xbd\xc3\xef\x38\x66\xfb\x28\xf3\x53\xf0\xf8\x9d\x43\x46\x25\x6f\x01\xeb\x63\x22\x67\x1c\x9a\xa7\x79\x89\xf8\x53\x03\xb0\x8d\xe2\xd9\xe9\x76\xb2\xbc\x73\x2e\x56\x96\x20\x50\xd7\x08\x0c\x15\xbc\xc4\xc9\x86\x3b\xdb\xd2\xfe\x72\x6f\xf5\xb1\xd8\x46\x1d\xcb\x11\xf5\x6a\x6a\xd6\xd8\x76\xb2\xf3\x85\xee\xde\x25\x47\x04\xcb\x10\x65\x3f\x51\xb8\x5f\x6e\x12\xb5\xf8\xe9\x72\xec\xd7\xd9\x55\x15\x8e\x0d\xc8\x00\x4e\xc1\xe8\x63\x5c\x52\x8a\xbb\x88\xb2\xb2\x14\xa9\x32\xed\x94\xb5\x4f\x38\x55\x08\xeb\xa4\x1c\x62\xb2\xbd\x0b\xdf\x93\x68\xa6\xbe\xb3\xce\xab\xaf\x8c\xa8\xcf\x20\xd3\xc0\x57\x7e\xc1\xc1\x7c\x95\xb3\x97\xa6\x8d\x34\x83\x65\x3e\x75\xb9\x97\xd6\xc1\x68\x3d\x0e\x81\xc6\x1e\x2b\x31\xbd\x79\x52\x2a\x9d\xef\xe1\x42\xaa\x25\x7c\xaa\xd2\xa4\xe7\x95\x13\x5e\xce\xf8\x21\xbc\x3a\x24\xef\x00\xa8\x4f\x6e\xb7\xf9\x1b\x4a\x63\x92\x1f\x4f\xa4\x5c\x91\x4c\xac\xe4\x69\x70\x5a\x65\x80\xe7\x9e\x96\xab\xe9\x18\x03\xf5\xe8\xf8\x2d\x2f\x15\xc4\x76\x2e\x2c\x6e\x94\xa4\x7e\xd5\x49\x16\x47\x59\x14\xcf\xe9\xa4\x0d\xbf\xf3\x5e\xc2\xc2\x87\xf1\x4f\x4d\x12\xc9\xbf\xb6\x1c\x60\xf3\xea\x5a\x8a\x64\x80\x70\x3a\x8d\xfb\x31\xb3\xd3\xfc\x64\xb2\x74\xda\x79\x47\x3e\xbb\xd3\x36\xfc\x1f\x20\xed\xb2\xdd\xb3\x7d\xe2\x98\x03\x4e\x39\x7f\x82\xf2\x2f\x9e\xa3\x0c\xa6\xd9\x51\x16\x3b\x23\xbe\x4a\x0f\x92\xee\x8b\x4a\x18\x92\x79\xd9\x9a\x2b\xa7\x64\x05\xfe\xcc\x71\x61\x69\x81\xc9\x8d\xf4\xfb\x83\x1c\xee\xa1\xb2\x90\x2f\x7b\x14\xb6\x1e\x5e\x59\xd1\x6c\x93\x67\x84\xe5\x30\xdb\xe0\xa1\x5e\xf2\xf5\xa8\x60\x04\x64\x19\x7f\xe0\x32\x12\x86\xda\x56\xea\x60\x30\x95\x38\x0f\xe5\x65\x9f\xac\xe6\xc0\x54\xcb\xa2\xc2\xef\x58\x69\xfe\x95\xd5\x01\x2b\xc4\x23\xd5\x84\xd6\xd0\xcd\x63\x45\x6e\x13\x36\x6c\xe6\x54\x67\xe4\xef\xcc\x3a\xc0\x52\x2b\xc4\x7b\x07\x67\x95\x04\xa0\x79\xb9\x3d\x95\x91\x28\xe6\xa1\xb7\x3b\xc8\xbe\x05\x32\xf6\x31\x4e\x1c\xdf\x9f\x5c\xcc\x7a\x7a\x26\x3d\x08\xed\xb9\x10\xa7\xab\xdd\xa7\xb9\x1d\xdc\x75\xb3\x58\xdd\xb6\x32\xbd\x5e\xa5\x36\xf3\xd4\x0b\xca\x0d\x99\xbd\xfa\x4a\xe0\x53\x24\xc5\x29\xd9\x78\xc6\xdb\xd7\x61\x96\x9d\x15\x65\x96\x19\xcc\x26\x77\xde\x63\x9b\x93\xfe\x43\x7a\x9c\x39\x9f\x0e\xe3\xcc\xeb\x3a\x33\xbf\x9d\x77\x5d\xf3\x53\x2b\x03\xe0\xca\xf6\x5d\xb7\x57\xa6\xcf\x47\x8d\x7c\x34\xd9\x71\x0e\x42\x8f\xf9\x4f\xa5\x03\xce\x56\x14\x3f\xcd\x1b\x9e\xa7\x42\xe7\x76\x23\xb5\xe9\x8d\x39\x7d\x50\xb5\xd4\xee\x97\xe8\x36\x8a\xa3\xe6\x65\xfe\xec\x47\xf4\xe9\x39\xbb\x85\x46\xd4\x60\xb7\x44\x43\x32\x24\x19\xc1\x2f\x33\x49\x64\x3a\x43\x60\xd6\x03\x6a\xf4\xf7\x05\xda\xed\xdf\xf2\x93\xd4\xd6\xd5\xcd\xac\x07\x98\x3e\xa5\xc9\xff\x6c\xf7\x2e\xfd\x84\xbe\xf3\x74\xbe\xce\xce\xc5\xaf\xbb\xc5\x26\xac\x8e\xec\x09\x3a\x0a\xd9\x3c\x7f\xb3\xcd\x43\x47\xed\x64\x0c\x93\x45\x88\x16\xc9\xc9\xe6\x24\x59\xe7\xa8\x36\x09\xd2\xdb\x2b\x53\x2b\xd4\xbe\x77\x2d\x41\x62\x50\x0b\xf8\x09\xc3\x2f\x8e\xc1\x9c\xb0\x95\x07\x5f\xa4\x6d\x60\xc3\x05\x8a\xa7\x98\x25\xed\x9a\xf5\xb6\x7b\xf8\x26\x40\x78\x98\x52\x1c\x74\x1e\x62\xb6\x3b\xc9\x6a\x80\x3f\xac\xa1\x93\x07\x00\xe6\xa4\x8a\x9a\xe4\xfd\xcd\x5b\x33\x76\x99\x8e\x3c\x8e\x45\x6d\x72\x2a\x4e\xc0\x4c\xd6\xc9\xc7\xd0\x76\x3b\x17\x58\xbd\x59\x27\x16\xcb\x05\x9c\x8f\xe9\xd7\xcc\xd6\x8b\x18\x5d\x46\xaf\xc8\x05\xc6\xd5\x61\x1e\xdb\x59\xa5\x77\xca\x2b\xfc\x48\x80\x9a\x8f\xe7\xad\x8f\x3c\x17\xf6\x17\x9d\x47\xfd\x79\xa7\xae\x33\x3b\x4e\xd1\xd4\x4d\xca\xf0\x86\xaf\xa8\xb8\xdf\xe5\x4d\x29\xfb\xe3\xe6\xd5\xb9\xde\xec\x59\x17\xcc\x9c\x23\x4e\x37\xe8\x4a\xb5\x0b\xf9\x40\x31\x8a\x19\xf7\xfb\xa0\xb4\xd8\xee\x28\xcc\x8b\x56\xee\x77\x49\xd0\x98\x1a\xb2\xd8\x35\xdd\xef\xe6\xfd\xfb\xde\xd1\x69\xbb\x48\x74\x33\x17\x3a\xe3\x66\x9f\x0b\x20\xd7\xbb\xfd\x8e\x1a\xff\x35\xd0\x71\xd5\x2d\x15\x0e\xe3\xd3\x51\xb2\xe4\x7d\x25\x0a\x5c\x56\xdd\xfe\x2f\x6b\x98\xec\xdb\x72\x04\x05\xc6\x48\x96\x7b\x15\x23\x63\x69\xb3\x75\x48\x59\x05\x74\x28\x57\x16\x64\x3c\x5e\xa5\xe7\x5a\xb1\x33\xd7\x79\xa1\x64\x03\xb6\xda\xa0\x09\xad\x5c\x21\x1b\xb7\x29\xc7\x6b\x76\x8d\xa2\xa4\x1a\x8f\x28\xf3\xa4\x9b\xb5\xfc\xb8\x97\x53\x3c\xf8\x10\xdf\x56\x0e\xac\xc7\xaf\xf9\x3a\xe5\x20\x94\x96\xe9\x65\x10\x6a\x6d\x56\x34\x6d\xa4\xe4\x14\x2f\xfc\xc1\xb4\x2a\xa2\x4f\xb5\x41\x31\x23\x25\x63\xe7\x88\x0b\xe8\x33\xf0\x03\xfb\x32\xf2\x1c\x6b\x09\x5b\xe7\x18\xde\x01\x72\xeb\xbd\x1d\xcb\x5a\x95\x6e\x30\x9d\x94\x78\x7b\x09\x2c\xd5\x3e\x59\xc0\x31\xc9\x5b\xf5\x70\x9a\xa9\x93\x4f\xc5\xd2\x11\xa6\x28\x98\x0d\x1b\xbd\x4e\x1d\x38\x9d\x3b\x2c\x07\x6d\x5e\x1c\xff\x36\xe8\x77\x24\x52\x9a\x96\x47\xab\x49\x71\xb4\xcc\x27\x7b\xba\xa5\xc5\x2e\x3f\xb2\x21\xac\xf6\x21\x31\xa7\x3b\xb6\xbb\x87\x6c\x63\x57\x52\x6e\xb9\xec\x06\x32\xe7\x28\x7d\x90\xeb\x01\xd8\x4d\x07\x99\x6d\x5b\xef\xa8\x65\x0c\xae\x15\xc6\x13\x8d\x32\x5a\x9b\xf1\x2d\x15\x0a\xe7\x78\x66\x08\xfe\xda\x17\x70\x9e\xbd\xea\x5f\x42\x0a\x7a\x40\x5b\xb3\xe7\xc8\x3e\x76\x52\xa5\x79\x37\xc3\xfa\x7d\x7d\x66\xf3\xee\xcd\xde\xd7\x27\x7e\x5f\xbf\x40\x81\xe9\x14\x62\x82\x0f\x2f\x5c\x3f\x87\xf2\x07\x28\x07\xf2\xf0\x02\x56\xf8\x7d\xfd\xf8\xe0\xbe\x64\x52\xc3\x7a\xdf\xc3\x4c\x24\x8b\xc6\xfd\xf9\x8b\xe4\x0d\x4a\xa7\xb1\xca\x6c\xc5\x0a\x63\xca\x5a\x43\x2a\xab\xb9\x1d\x47\x6a\x36\xde\xb1\x93\xca\x14\x8b\x4a\x39\x0c\xdc\x7b\xa1\x4c\x54\x49\x95\xb3\xd5\x35\x2d\x5f\x21\x51\xed\xa4\xf6\x30\xe4\x53\xc2\xee\xe3\x80\xf5\x9e\xee\x2b\xca\xb6\xd2\x57\xb3\xdc\x4d\xa7\xb3\x12\x86\x58\x62\x05\xe5\xa7\x85\xc6\xf1\x5a\x4f\x41\x5d\x11\x60\xb1\x7c\x65\xe3\xd6\x7a\x6f\xfa\x24\xbf\x16\xe4\x30\xd3\x76\x0b\xe3\x34\x8a\xa3\x51\x2b\x6a\x83\x3e\x1d\x9a\xd7\xb0\xde\x56\x9f\xb2\xe0\x41\x51\x06\x79\xb9\xd8\xa6\xfc\x8d\xd6\x03\x5a\x1c\xe4\xba\xc4\x9e\xa1\xad\xaf\xe6\xed\xba\x49\x94\x94\x6a\xaa\x26\xfa\x4a\xca\xe4\x6a\xcb\xca\x66\x76\x45\x63\xa2\xe3\x69\xc6\x93\xd1\x04\x47\x34\x9c\x94\xa0\x7f\x95\xc2\xd6\xd1\x93\xf4\x62\xe7\x59\xaf\xb2\xd7\x81\x66\x44\x69\x9d\x8b\x35\x98\x98\x76\xb3\x88\x74\xc2\x79\xf9\x4e\x3d\xa8\xf5\x84\x23\x58\x7a\x17\x2f\xf7\xcf\xde\xcb\x68\x4f\xf5\x59\xd7\x94\x66\x60\x04\xd0\xfd\xdc\x6a\x98\x84\xc8\xaf\x82\xe9\x75\xbe\x79\x9c\xae\xa2\xe8\x3b\x16\x96\x9a\x69\xea\x9e\xe6\xd4\x01\x99\xd4\xa5\x1a\xdb\x12\x46\x30\x04\x79\x24\xb2\xb1\x54\x2b\x2a\x45\x3e\x3d\x46\x44\x61\x27\x7f\x10\x03\x05\x7e\x15\xb8\xbf\x2a\x79\x64\x0a\x41\x5e\x6d\x71\x6b\xa3\xa6\x92\xaa\x83\xd1\x91\x44\xc2\x94\xe3\xc8\xc3\x15\x0d\xff\x7b\x58\xc6\x9c\xa6\x06\x07\x1a\xc0\xce\x11\xdb\x5f\xe4\x5c\xcb\x76\xa5\xe1\x28\x4a\x40\xdb\x85\x9a\x20\xa6\x53\x38\x31\x67\x28\x3d\xa7\xe4\x32\x96\x04\x6f\x8b\xbc\x26\xcc\x03\x77\x6f\xe6\xac\x30\x92\xed\xa6\xc5\xc2\x92\x4b\xd7\x3a\xa6\xc8\x86\x4e\xb5\xda\xe5\xa4\x0d\xcc\x46\x7a\xf6\xfe\x41\x4c\xac\xdd\x5f\x9c\xdd\x9a\xfc\x9e\xae\x52\xac\x64\xf6\x23\x55\x3b\xaf\x2f\x1e\x3e\x07\x47\xb9\x54\x1e\x0b\x33\xba\xb0\x1f\xbf\xef\xa0\x0f\xa9\xfa\xba\x13\xd0\x03\xe8\x87\xe9\x84\x87\xd1\xd9\xc4\xf4\xa8\x27\x3a\xdc\x86\xdb\xe5\x43\x61\x82\x37\x9a\xc7\x8a\x14\x6e\x64\xf0\x75\xa7\xe7\x2d\xdd\x96\xd4\x30\x9c\xc1\x65\x8c\x09\xbb\x7c\x2a\x27\x85\xe2\x95\xcc\x15\x09\xa7\x7c\x3d\x4c\x4a\x14\xa4\xa6\xf1\xbf\xbd\x9f\x82\x3b\x9f\x58\x11\xfe\xe7\x7a\x8f\x17\x1c\xc9\x18\xd3\x99\x14\x45\x61\x14\xce\x81\x72\xb2\xc6\xc1\x76\x63\x5b\x87\xfc\x43\xfd\x42\xe5\x96\x45\x90\xf2\x04\x88\xc4\xa8\xe7\x02\x3b\x41\xbe\xbd\x9f\xac\x15\xe4\xd4\xc5\xe5\xbd\x6c\xd7\xa2\x17\x9b\xa0\x16\x9d\x11\x20\xf4\x43\x15\x80\x57\x8f\x6a\xa6\xcf\x07\xe6\xd9\xaa\xc2\xdb\xfb\xf1\x49\x88\xf3\x53\xbd\xce\xa5\xfe\xdd\x6b\x99\xac\x59\x57\x68\x62\x4e\x97\x9d\xd4\x50\x5d\xe2\x0a\x1b\x17\x7f\xe2\x50\x61\xb7\xa6\x37\x23\xcc\x4d\xdf\xde\xcf\x42\x9a\x62\xa3\x62\xbc\xe0\x6b\x82\xf2\x2a\x11\xac\x66\x0a\xb4\x35\xb7\x04\xd9\xac\x45\xae\x35\x0e\xba\xe5\x4a\xf4\x1c\xa8\xb8\x2e\xe1\xb4\xdd\xbc\x39\x9f\x16\xe1\x55\x88\x85\xd4\xa0\x37\xfc\x45\x77\xe2\x4f\x4a\x7e\xaf\xf8\x41\xe7\xbd\xb9\x73\x1a\x86\x12\xdb\xa9\x04\xf5\x57\xf8\x65\xdb\x98\x1d\x61\x19\xe2\xaa\x2a\x94\x58\xf9\x82\x32\xf4\x78\x6c\x8f\x81\x9c\xf8\x3a\x69\x8e\x14\x24\x8e\xd6\x64\x3b\x0c\xe5\x88\xe7\x42\xca\x5a\xef\x24\xac\x77\xaa\xd5\xa2\xd1\xaa\x28\x8b\xf2\x5e\x80\xad\x3f\x9f\xd2\xc3\xce\x7b\x6f\x37\xe3\x91\x2b\xff\xc9\xde\x81\xee\x71\x33\xa8\xdc\x27\x68\x40\xb4\x71\x86\x5b\x8d\x8b\xde\x24\xb8\x0f\x5a\xf9\x8a\x5a\x26\x19\x11\x09\xcf\x52\xf6\x93\x2f\xf4\x3e\xab\xe5\x6d\x72\x8d\xa2\xd7\x35\x0d\x31\x1e\x04\xaf\x36\x15\xf9\x6e\x53\x3e\xb2\x20\x75\x41\xce\x04\x08\x92\x5f\x33\xbb\x01\xff\x41\x64\x17\xb5\xe4\x5f\x4f\x51\xdc\x7a\xa9\x96\xb0\x64\x86\x16\x0c\x78\xd7\x9a\x2a\xf9\x0f\xe4\xbb\xe0\xea\x75\x81\xb4\x1a\x34\xa7\xdf\xe9\x4f\x0b\xc4\xde\xa3\xf8\x8c\x84\x29\xac\xb2\x5b\xb8\xa9\xfe\xcd\x1a\xe1\xee\x60\x72\x0b\x8c\xed\x4a\xab\xc3\xfc\x34\xbe\xf1\xf0\x3b\x46\xeb\x45\xdd\x27\x05\x80\xfc\x90\x5d\xb8\x3a\x88\xd3\x4e\x3d\x31\xe8\x89\x7e\x7c\x24\x7c\x88\x2e\x28\xdb\x0c\x48\xb7\x9c\xe2\x3e\x04\xef\xb0\x12\xfa\x92\x8a\x21\xa3\xaf\xd9\x21\x64\x62\x8d\x25\xfe\xe1\xf3\x3d\x9f\xc6\xa9\xf6\xb9\x6a\xde\xd3\x43\x5e\xd7\xf8\xd3\xa0\x50\x02\x86\xa0\x27\x12\x80\x43\xff\x99\xff\x55\x9f\xf1\x75\x84\x98\x9e\x47\xd0\x9f\xbc\xb4\xfb\x6c\x3a\x16\xf6\xe3\x0c\xa5\x7f\xfc\x09\xa5\xf2\x48\x8f\x80\x6b\x38\x39\xb9\x34\xa3\xb3\x5f\x6f\x65\x30\x7b\x38\xfc\xc9\xcf\xdf\xcc\x5f\xf9\x35\xea\x4a\xe1\x2d\xfe\x57\x7d\x56\x01\x82\x9f\xa8\x44\xc1\x56\x7f\x09\x91\x7a\x58\x45\x3f\x94\x62\x01\x58\x9c\x94\xb8\x27\x17\x65\xde\x18\xe1\xa2\xb1\x08\xe3\x37\xa7\x2f\xb2\xd8\xa9\xbe\x36\x31\xa7\xb2\xbe\xd7\xaa\xbe\x92\x3d\xac\xd2\x28\xbc\x01\xff\x06\x6f\x7e\xe0\x7c\xd6\x0f\x23\x53\xe1\x01\xf9\xa5\xc7\x84\xe7\x25\x65\x76\xc4\x3b\x73\xc1\x41\x4a\xf4\x1f\xbc\x41\x59\x1e\xa5\xf7\x49\xd2\xaa\x0e\xb7\x31\x1c\xc2\xd0\xaf\x77\xff\x72\x7f\x72\x31\x0d\x12\xb7\x5b\x1a\xea\xee\x42\x1e\x14\xbd\xa3\xfb\x96\x8e\xe8\x74\xc1\x38\x6d\x24\x77\x87\x93\x46\x6a\x04\xe4\xc4\x92\x72\xca\x0e\xeb\x01\xd4\x91\x77\x17\xe3\x52\xe1\xfd\x38\x78\xbd\x12\x1c\x7c\x5d\x15\xc4\xf5\xa4\xc9\x6f\xdf\x1c\x7c\xff\xe3\x03\x41\xce\x3c\x21\x14\x51\x9d\x80\x52\xa4\xc7\x62\x22\xbf\x14\x7b\x73\x20\x4f\x98\x27\xb5\xb8\xf0\xf1\x7b\x07\x83\xfe\x85\x85\xde\xfc\x2f\x70\xf6\x67\x3d\x77\x2e\x08\x0f\x55\x9b\x08\x5f\xc4\xab\x52\x23\x13\x85\x83\xf0\x3b\xc0\xba\xff\x4a\xbf\xf5\x94\xa3\xc7\x15\x14\xfc\x6a\x59\xa6\xe0\xc0\xeb\xef\xdb\x59\x00\xac\xe5\x24\x7d\xa0\xd4\x78\xad\x70\xb4\x4a\xc9\x75\x37\xbf\x5a\xea\xcd\x9e\xdd\x38\xbf\xb6\x35\xf7\x63\x7e\x67\x92\x6a\x53\x34\xa5\x07\xf6\xa0\x50\xa8\x60\x72\xe9\xb7\xce\xd5\xa1\x2b\x93\xa2\x4f\x5c\xfd\xac\xd0\x76\x07\xad\xbd\x9b\xb4\xc0\xa0\xe7\xc4\x84\xce\x19\x63\x51\x9e\x90\x60\x63\x72\xbb\x69\x42\x02\x64\xa3\xd9\xb9\x88\xf4\x91\xaa\xdf\x09\xb4\x60\x8a\xbc\x9f\xc9\xa7\xaf\x3b\x95\x0f\x28\x41\xb4\x04\xb7\x43\x3f\x3e\xbf\xbb\x81\xee\x30\x65\xb8\xd1\xce\x31\xc7\x70\x03\x3a\x10\xbf\xe3\xc2\xb0\xa5\x66\x53\x5d\x59\xb8\x46\xec\x77\xc9\x0b\xcf\xa4\x85\x60\x01\x1f\x0e\x5b\xb9\xb0\x74\x10\x9e\x12\x1b\xa8\x38\xde\xac\xaa\x74\x7b\x37\xbf\x2a\xdf\x9c\x15\xf8\x4c\x1e\x26\x65\xd1\xc8\x08\xa6\x60\xc4\xf4\xbf\xf2\x9c\xc4\x59\xf3\x2a\x8c\xba\x13\x6d\x30\x55\x63\x5a\xbf\x68\x7c\x22\x5b\x0d\x90\x04\x63\x58\xd7\x8d\x6b\x4d\x84\x50\xff\xd1\x7f\x8d\xa2\xd5\x26\xbb\x43\x4b\xfc\x11\x96\x2f\xd3\x02\xa0\xde\x28\x00\xbf\x13\x74\x92\xb6\xa2\x28\x51\x2f\x3a\xa5\x6c\xd5\xdc\x25\xfc\xf9\x35\xb9\xf7\xd4\x5c\xa2\x6f\xaf\x5c\xe4\x77\x5c\x74\xfd\xad\xef\xce\xe3\x83\xcb\xee\x0d\x9e\x3c\x14\x30\x62\xbf\x3e\x8f\x38\xc8\x43\x10\xf8\x9d\xa0\x44\x7f\xea\x42\xf5\xaf\xca\x91\xb2\x20\xf2\xb2\xf0\x3b\x3d\x54\x4c\xb5\x2a\x0b\x99\xa8\xa6\x6e\x68\xa2\xf3\x4c\x89\xfd\x3e\x05\x2b\xc3\x7a\xbd\x66\x78\x2e\xfd\x55\x0b\xd0\xfe\x21\x6b\x4a\xfc\x33\xce\x94\x38\x67\xb5\xf9\x2c\x9d\xcc\xe8\x52\x1c\xd7\x78\x5e\x0f\x1e\x7c\x2f\xc8\x58\x5a\x06\x42\xbf\x17\xd8\x9d\x9c\xc3\xfc\xe3\xa3\xad\x30\xee\x4e\x9e\xe4\x6b\xd5\x64\xd9\x35\x75\x64\x0a\x1c\x12\xcb\x67\x1b\x4d\xfc\x45\xad\x9a\x84\x2f\x67\x62\x51\xac\xdb\xdb\xe3\x67\x32\xa9\xa5\x98\xb6\xfb\x76\x7c\xea\xcd\x79\x15\x58\x8b\x1c\x47\xde\x70\xf3\xb7\x90\xe2\xfe\x9a\xef\xe7\xed\x18\xba\x3e\xc7\xe0\xe2\xce\x83\x33\x3a\x89\x1a\xaa\xe6\xf4\x25\x9a\xe0\x07\xfa\x2a\x9d\xeb\x17\xd1\x1d\xe7\xc4\xea\x2a\xd1\x3a\x5f\x16\xd2\x2f\x6f\xc8\xff\x4f\x43\x57\xfb\xf7\x4d\x2d\x1a\x24\xfa\xfb\x29\x35\xb8\x8c\x4e\xf9\xfa\x05\x46\xce\x34\x36\x20\x95\xe0\xa8\x29\x09\x57\x3b\x65\x39\xdc\xef\x92\x0f\x59\x87\x90\xd8\x87\x5c\x46\x67\xe5\xee\x37\xde\x12\x2b\xd6\xd8\xe1\xa5\x6e\x88\x59\x71\xe0\x2b\x8c\x44\x32\xa8\xa2\x53\xd2\xbb\x4b\xae\x87\x1e\x87\x89\x16\xb3\x1c\xac\xec\x4d\x98\x5e\xdd\x1e\x37\x72\xd9\x35\xf3\xec\x12\x21\x56\xf9\x2e\x64\xe5\xc8\xbd\x6b\x15\xe9\x27\x40\x5f\xb4\xc3\x36\xb4\x17\x36\x46\x61\xa5\xfe\x0b\xfe\x08\xde\xa3\x1f\x66\x49\xf0\x65\x6c\x32\x9c\x00\x63\x2d\x48\x12\x0b\xd9\x8f\xdf\xd3\xb0\x6e\xda\xed\xfa\x72\x09\x88\x24\xf6\x8a\xdb\xb8\xd4\xd9\x38\x7b\xc3\x99\x43\xeb\x08\x93\x59\xbc\x9d\x79\x84\x09\xac\x92\xaf\xdd\x59\xba\xe2\x83\xa9\xb5\x0c\x1b\x2d\x2a\xbc\xf3\xd6\x7b\x1f\xda\x2f\x8c\xf1\x72\xf6\xab\x64\xb1\x0d\x29\xca\xe1\x35\x52\x9a\xc3\x58\xd8\xc7\x2c\x63\x63\xd7\xb1\x37\x24\x86\x48\x69\x0c\x52\xca\xab\x56\x6f\x7d\x77\x99\xa6\xc8\x23\x6b\xbc\x52\x6a\x26\x74\x74\x3b\xe0\x1c\x29\x30\x49\x96\xe7\x27\xdd\xe9\x75\xaf\x96\x79\xb5\xd2\xad\xc6\x4f\x57\xa6\x3b\xd4\xf0\x01\xfb\x7f\xbd\x01\x82\x8a\xc5\xb6\x38\x50\x4c\xf7\x7d\x4d\x41\x8a\x0c\xe0\xf5\x5d\xc1\x37\x5b\xd1\xe1\x2a\x5f\xfe\x73\x6a\x68\x6b\x04\xbf\x2a\x3e\x69\x8f\x40\xd5\x31\x8b\xc8\x07\xcd\xa0\x15\x6c\x85\x6a\xa8\x04\xa2\x55\x6a\x0a\x4d\x59\xb6\x10\x24\xac\x03\xb7\x27\x83\x3b\x90\x46\xd6\xcc\x10\x8a\x05\xc3\x68\x59\x13\x56\x99\x41\x03\x8f\xa2\x6a\xe0\xb5\xea\x08\xbb\x7a\x32\x68\xa5\x64\x9e\xb3\x7a\xd7\xe9\xea\x63\x49\xd2\x8c\x39\xed\x07\x3d\x3e\x19\x74\x25\xbd\x87\x3b\x4e\x1b\xbb\x33\x84\x01\xa8\x9b\x55\xb2\xb5\x2b\xaa\x6e\x7c\xb3\xd6\x9b\x9e\xf7\xc8\xa8\x60\xe4\x94\x12\x20\xfb\x90\x4a\x1d\x2d\xa3\x2d\xcd\x85\xef\xd1\x46\x57\x8c\x38\xff\x8c\x41\xb9\x46\xcf\xed\x5d\x7e\xc4\xd1\xeb\x08\x82\xb0\x94\xa8\x04\x1e\x7d\x84\xeb\xb0\xaf\xa1\x72\x0b\x33\xc4\xc3\xff\x02\x1d\x24\x63\x0a\x9d\xbd\xaf\x3e\xc6\xb0\xdc\x2b\xed\x9a\x08\x43\xf7\x49\x8e\xbb\xc1\xe7\x8c\x55\x53\x82\xc5\x7a\x17\x2f\x9b\x8f\xf6\xab\x39\x4e\x41\xf8\x65\x58\x6e\x6b\x4f\xa0\x6b\x86\x36\x95\x23\x4e\x75\x47\xa5\xca\xfd\xc5\x89\x1c\xd6\xf8\x5d\x52\x81\x74\x2e\xe1\xe9\x5e\x03\x79\x13\xcc\xce\xdd\x03\x22\x2d\xdc\xe8\x9f\x9f\xca\x6e\x5e\xf0\xb3\xed\xfe\x15\x7e\x6c\x92\x82\xe7\x54\xb4\x1a\xff\x84\xd5\x83\xbc\x2f\x23\x9e\x4e\x81\xfb\x22\x9a\xfd\xbd\xf8\x62\xda\x2e\xad\xca\x9d\xde\xab\x8f\x51\xb3\xf0\x61\x93\xce\x5b\x03\x46\x0a\x93\x31\x0e\xfb\x3d\xd9\x59\x90\x07\xc6\x32\x96\x51\x44\xf9\x6c\xe0\x0b\xc0\xee\x23\x2d\xc1\xde\x58\x12\x18\xa5\x5f\xbb\x42\x4b\x54\x43\x67\xc4\xe5\xbf\x2b\x76\x92\x4a\xe7\x6d\x83\x17\xcd\x1b\x06\xf8\xb2\x41\xfe\x23\x4d\xfa\xdd\x1c\x40\xea\xbe\xfc\x60\x81\x41\x87\xbc\x57\x21\xe2\x56\x79\x9f\x46\x26\x4f\xe5\x78\x17\x10\xdc\xce\x0b\x0d\xf8\xb1\xa1\xcf\x39\xf2\xce\x1e\xfc\x3e\xb6\xb0\xed\x43\x32\xec\xc5\x27\x26\x04\x29\x27\x90\x9f\x55\x91\xb4\x88\xec\x73\x8d\xcd\x7d\xf3\x42\xa5\x25\x77\x5e\x21\xb0\x9b\x90\xa7\x2c\xbc\x16\x3e\x67\x22\x98\xa7\x90\xfe\x50\xef\x50\xa2\x33\x31\x83\x9f\xe3\xbd\x9c\x54\xa2\xfe\xcf\xe5\x31\x85\x3f\xde\x31\x9d\xb2\x33\x7b\xed\xf0\x64\xc7\x26\xf3\xd2\x69\x77\x3d\xed\x55\x9d\x7c\xa8\x72\x78\xda\x53\x42\x49\x8a\x92\xd2\x68\xfe\xbc\xe3\xbd\x25\x79\x9d\xd4\x7f\x16\x24\x6b\x01\x04\xde\xf3\xa8\xde\x0a\x90\x27\x58\x5e\xd2\xef\x63\xc8\x1d\xc7\xa9\xe3\xc1\x4b\x9a\x90\xd6\x93\x9d\xfc\x12\x0c\x4e\x3f\x5f\x18\x62\x36\x0d\x1b\x0b\x1f\x49\x80\x6d\x55\x1a\xc5\x88\x66\x60\xa0\xf4\x86\xb0\xbe\x00\x85\x46\x71\xdc\xce\xf4\x73\xf7\xae\x17\xe3\xc2\x8b\xc1\xc6\xe2\x69\xd8\x5b\xf0\xa3\x0e\x3f\x7a\x33\xc7\xf8\xc7\x18\xfc\x60\x7e\xc4\xbf\x2b\xf8\x7b\xe1\x06\xff\x18\x87\x1f\x5b\x93\xf7\x75\x21\xf0\x34\xf8\xd2\x9d\xfe\x5b\xff\xd2\x0c\x7f\x99\x40\x5c\xbf\xfe\xa4\x20\xe2\x10\x8e\x87\x0a\x3d\x4c\xa4\x9a\xab\x57\x1b\xc0\xfe\xe8\x13\x39\xaf\x57\xe8\xeb\x58\xd4\x6e\xf1\xfb\x45\xa6\xed\x4a\x69\x82\x3f\x49\xf3\xe3\x61\x78\x88\x3e\x58\x5d\x80\x1e\x24\x63\x31\xbf\x8f\xa4\x7b\x81\xb9\xfc\xb9\x81\x5f\x7f\xa2\x0f\xad\xd2\x78\x51\x75\x05\xfa\xc1\x1f\x54\x47\xa0\x17\x44\xc1\x4a\x2b\x6a\x62\x7e\xf3\xcf\xcc\xc3\xe3\xea\x95\xd3\x37\xa1\x48\xde\x31\xa7\x87\x2e\xa2\x56\x40\xcf\x25\x23\x1f\x69\x37\x31\x09\xc2\x10\x5d\x2d\xa7\xe7\x07\xaa\x8d\x66\x5b\x34\x78\xf3\x8a\x06\x43\x09\x0e\x95\x4d\x97\x5e\xe6\x93\x87\x5e\x61\xfe\x8a\xc3\x70\xbe\xe2\x33\x28\x41\x5c\xfd\x4b\xf8\xec\x7f\xfc\x07\x41\xc3\x9f\xff\xf9\x9f\xc1\xfb\x6f\x3c\x17\x84\x5f\x62\x86\xda\x38\xa8\x97\xbe\xac\xd6\xdb\x75\x05\x05\x3f\xff\xe4\x00\x0e\x21\x5b\xa4\x00\x77\x72\x2d\x71\x64\x3b\x35\x8d\xe3\xfc\x7f\x01\x00\x00\xff\xff\x03\x62\x2b\x97\x15\xc3\x00\x00") +var _confLocaleLocale_jaJpIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\xbd\x7b\x6f\x5c\xc5\xb2\x38\xfa\x7f\xa4\x7c\x87\xb5\x73\x94\x0b\x48\x89\x23\xe0\x5e\xe9\x0a\x31\x9c\x0b\x09\x1b\xb8\x3f\x12\x72\x70\x38\xe8\x27\x84\x86\xf1\xcc\xb2\x3d\x27\xe3\x59\xc3\xac\x99\x18\xef\xa3\x23\x79\xec\x3c\x9c\xd8\xd9\x0e\x84\xc4\x79\x91\x07\x24\x71\x62\x27\x76\x42\x60\x13\x62\x93\x7c\x97\x33\x9e\xb1\xfd\x17\x5f\xe1\x57\xaf\x7e\xae\xb5\xc6\x66\x1f\x24\x44\x3c\xab\xbb\xab\xbb\xab\xab\xab\xab\xaa\xab\xaa\x0b\xb5\x5a\xbe\x14\xc6\xc5\xdc\x7b\xd1\xc6\xbd\xf1\x8d\x85\xeb\xed\xd6\x7c\x67\xe9\xc6\xc6\x0f\x27\xda\xad\xb9\x76\xeb\x46\x7b\x62\xa5\x3d\xb9\xd8\x9e\xbc\xd0\x9e\xbc\xda\x9e\xf8\xb5\x3d\x39\xf5\x5e\xb9\xd1\x9e\xf8\xb9\x3d\xb9\xda\x9e\x3c\x0f\x5f\x76\xee\xd8\xb9\x63\x38\x1a\x09\x73\x58\x01\x3f\xde\xdc\xb9\xa3\x54\x88\x87\x07\xa2\x42\xbd\x04\x1f\xc7\xdb\x93\x93\xed\x89\x5f\xda\x93\x77\xda\x93\xd7\xa8\xc2\xe9\x9d\x3b\xc2\xaf\x6a\x95\xa8\x0e\x6d\x26\xee\x21\xd0\x89\xe5\xf6\xe4\x5c\x7b\xf2\x21\x15\xdf\x07\x78\x61\xa5\x06\x4d\x2f\x51\xcf\x73\x3b\x77\xc4\xe5\xa1\x6a\xbe\x5c\xcd\x61\xbf\x13\xb7\xdb\x93\x4f\xf8\xff\x52\x10\x35\x1b\x76\xc9\xf7\xed\x89\xbb\x30\x4c\x29\x6c\xd6\xdc\x32\x18\x0c\x42\xac\x87\x43\xe5\xb8\x11\xd6\x73\xeb\x97\x57\x36\x67\x7e\xdc\xb9\x63\x34\x1c\x88\xcb\x8d\x30\xf7\xe9\xbb\xef\xa8\xfa\x00\xe2\x58\x58\x8f\xcb\x11\x74\x3c\x79\x0e\xc7\x36\xf1\xb4\x3d\x39\x4f\x1d\xd7\x0a\x43\x38\xe3\x2b\xfc\x75\xe7\x8e\x46\x38\x52\xab\x14\x1a\xf8\xed\x24\xf6\x84\xd3\x79\x40\xd3\x01\x28\x95\x42\x75\xa8\x89\x0d\x18\xc3\x3b\x77\x14\xeb\x21\xd4\xcd\x57\xc3\xd1\xdc\xda\x6f\xd7\xba\x53\xe7\xfa\xfa\xfa\x76\xee\x68\xc6\x61\x3d\x5f\xab\x47\x83\xe5\x4a\x98\x2f\x54\x4b\xf9\x11\x42\xd1\xe4\x5d\xea\xe4\x1f\x04\x8d\xb1\x74\xa1\x3d\x71\x8b\x86\xb8\xd8\x6e\x2d\xb4\x5b\xf7\x79\xae\x61\x09\x70\x94\x2f\xc4\x3e\x9a\xba\x4f\xa7\xda\xad\x17\xb8\x4e\xd8\x43\xb5\x30\x62\x01\xed\x9c\x3b\x0b\xab\x31\x52\x28\x57\x72\xef\xee\xc5\x7f\x70\x6a\x71\x3c\x1a\xd1\xda\x7d\x4d\x2b\xbe\xac\x56\xad\x1e\xe6\x1b\x63\xb5\x30\xd7\x39\x79\xb6\x73\xe2\x4e\xe7\xcc\x55\x98\x49\xa1\xd6\x28\x0e\x17\xa0\x4b\x18\xd6\x0f\x34\xbe\x16\xfc\x81\x9d\xd5\xc3\x5a\x04\x28\x8d\xea\x63\x00\x69\xa1\x3d\xf9\x1d\xa1\x6f\x0a\xfe\xde\xb9\x23\xaa\x0f\x15\xaa\xe5\xbf\x15\x1a\x88\xdc\xf5\x9f\x8f\xaf\xff\xfa\xed\xce\x1d\x23\xe5\x7a\x3d\xaa\x43\xe5\x1b\x40\x04\xd0\xe7\xce\x1d\x80\xa0\x3c\x82\xc9\x75\x2f\x3e\x22\x72\x3c\x9e\x80\x84\x55\x46\xca\x43\x75\xc4\xbd\xae\xb5\x3e\xbf\xb2\x71\x6b\x86\x0b\x07\xa3\xfa\x51\xbb\x3d\xe0\xee\x3e\xcd\x7d\xb9\xdd\x5a\x4a\x05\x07\x83\xb3\x40\xa9\xc1\x15\xaa\xb0\x82\x54\xc6\x9f\xda\x13\xdf\xac\x2f\xdd\x5a\x3f\x77\x72\xe7\x8e\x42\x69\x04\x10\x5f\x2b\x54\xc3\x4a\x8e\xbf\x6d\x8c\x9f\x40\xec\x4d\x9e\x85\x25\x82\xf2\x62\x31\x6a\x56\x1b\xf9\x38\x6c\x34\xca\xd5\x21\x5c\x20\x20\xd2\x45\xa2\x53\x20\x95\xa9\x8d\x7b\x0f\x3b\x4b\x57\x60\x11\x55\xb9\xfa\x30\x16\x35\x35\x45\xe4\xda\xad\x09\x5a\xed\x1b\x34\x6e\x9f\x10\xa4\xb2\xe9\xc2\xaa\xad\xc0\xd1\xf4\xe2\xfc\x60\x18\xe2\xe2\x4e\xd3\x96\x5c\xc5\x25\x46\x80\x00\xea\x07\xb5\xd0\xb5\x66\xa5\x02\x88\xff\xb2\x19\xc6\x0d\x00\x85\x9d\x2d\x22\xaa\x00\x67\xbc\x61\x91\xaa\xcb\x71\x0c\xe5\xb9\x8d\x85\x1f\x37\x11\xd7\x48\x0b\xd5\x22\x60\x40\x91\xc2\x13\x66\x1d\x58\xf2\x59\x1c\x16\xea\xc5\xe1\xcf\x71\x8a\xf8\x47\xae\x7b\xfb\xda\xfa\x4f\xdf\x13\xd5\xf7\x22\x13\xa4\x57\x43\xab\xd2\xa5\xee\xb1\x18\x95\x90\x83\x3c\x51\xa3\x86\x7e\xca\xd5\xb8\x51\xa8\x54\xa0\x23\xf9\x2b\xa7\x36\xc2\xaf\x04\x73\x95\x06\xd4\x28\x37\x00\x9f\x9d\xa9\xef\x3a\x57\xaf\x23\xaf\xbb\x35\x83\x18\x48\x54\xec\x9e\x9e\xde\xbc\x09\xcb\x5b\x8a\x8a\x47\x61\x67\x22\x53\x82\xe1\x7c\x30\x18\x00\xa6\x5f\xaa\x87\x41\xbd\x59\xad\x02\xae\x83\xf7\xa2\xa1\x38\x80\xfe\xca\xa5\x30\x38\x40\x75\xf7\x04\xb5\x4a\x58\x88\xa1\x4a\x58\x28\x05\x6f\x16\x82\x46\xa1\x3e\x14\x36\x72\xbb\xf2\x03\xc0\x0b\x8e\xee\x0a\x86\xeb\xe1\x60\x6e\xd7\xee\x78\xd7\x5b\xef\x35\xa1\x59\xa5\x5c\x0d\xe3\x37\xf7\x15\xde\x0a\x8a\x05\x28\x01\xec\x8f\x05\x03\x21\x50\x6e\x88\x7d\x05\xb0\xc1\xaa\x43\x61\x50\xa8\x8e\x35\x86\xb1\xc3\x72\x35\x80\x3f\xe2\x00\x99\xd0\x5f\x10\x83\x5f\x36\x81\x75\xe5\x4b\x03\x8a\x93\xc3\x78\xe8\x63\x3d\x8c\x83\x83\x63\xfd\xff\xf6\xe1\x9e\xe0\x70\x14\x37\x86\xea\x21\xfd\x0d\xff\x83\xfa\xaf\x07\x51\x3d\x38\x52\x3e\xf0\x0e\x2c\x02\x34\x65\xa4\xb4\x27\x4f\x11\xb2\x5f\xb4\x27\x2f\x33\x71\x28\xe2\xc1\x2a\xb8\xf9\x93\x35\x00\x79\xeb\xf7\x96\x36\x6f\x5d\xc7\x83\x20\x6e\xe4\xf4\x49\x91\x5c\xc0\x6c\xde\x02\xe0\x85\x33\xf9\xe0\x89\x45\x41\xb1\xe0\xff\xe0\x58\xfc\x65\x25\xf8\xe0\xd0\xa1\x8f\x0e\xbc\x13\x20\x39\xe2\xa2\x01\xc5\x3c\x09\x9a\x8d\xc1\xff\x37\x3f\x14\x56\xc3\x7a\xa1\x92\x2f\x96\x03\x18\x57\xf7\xe2\xa9\xce\xc3\x39\x22\xc4\x49\x5c\xd7\x89\x6f\xd6\x7e\x7b\xb1\xfe\xed\x3d\xda\xdb\x77\xdb\xad\xd9\x76\xeb\x66\xbb\x75\x01\x19\xc3\xf8\x04\x50\x67\x5c\x01\xa6\x0b\x54\xd5\xdf\xff\x61\xd0\x9e\xfc\x5e\xef\x87\x42\x63\x58\x86\x0c\x95\xbe\xac\x20\xb6\x65\x38\x47\x86\xc3\x00\xb7\x67\x80\x75\x82\x68\xd0\x47\x6e\x50\x2a\x34\x0a\x03\x40\x0b\x80\xe5\xb0\x5e\xcf\xc3\x39\xd1\x18\xc3\xa5\x22\x98\x59\x95\x19\x1a\x6c\xa8\x6a\xd4\x00\x4a\x08\xa8\x95\x40\x28\x57\x8f\x15\x2a\xe5\x12\x2c\x98\xc2\x99\xdb\x14\x3f\x05\xa5\x08\x96\x1e\x1b\xc3\x1e\x88\x46\x91\x82\xea\x85\x22\x9c\x77\x71\xb0\xab\x6f\x17\x50\x52\x29\xd8\xb5\x77\x17\x00\xac\x46\x79\xe6\x5e\x78\xde\x94\xca\x71\x61\x00\xce\x1e\x3e\x1c\xeb\xcc\x9d\xff\x37\x12\x20\x0f\x44\xca\x03\xbb\x3c\x18\x2d\x37\x86\xe1\x04\x0e\xe8\x4c\x43\xea\x2c\x54\x03\x02\x19\x08\xdb\x73\x26\xae\x58\xa5\x90\xc1\xdb\x54\x51\xfd\x4c\x99\xf0\xce\x1d\x6a\x41\x99\x3e\x89\xb6\x61\x61\x3b\x27\xee\x6d\x4c\x3d\x50\xb4\x89\x42\x0c\x53\x0f\x9e\xf0\x73\xc4\xaa\x1e\x13\xf5\xfc\xc2\x07\x36\xd1\x90\xaa\xa5\x96\x6e\xfd\xa7\x9b\xdd\xcb\x3f\xb5\x27\x4e\xdb\x9c\x1e\x6a\x02\x95\xc0\xf1\xd6\x9e\x98\xf1\x48\xe4\xf7\xd5\x16\xb3\xab\xbc\xd0\x83\xc3\xad\x88\x89\x2e\xf2\x91\xaf\x48\x45\x57\x56\x5d\xb6\x5b\x97\xdb\xad\x5f\x09\xee\x52\x00\x82\x54\x40\x40\x98\xce\xa6\x82\x04\x44\x38\xa2\xce\x13\xdc\x53\xc4\x9c\x1f\x90\xa0\xc4\x45\x8b\x6b\x2f\xbe\xeb\x3c\xbc\x84\x23\xc3\x81\x3e\x47\xc8\x48\xc2\xc0\x94\xf2\xb4\xeb\x84\xb1\x99\xbd\xa7\x4a\xf4\x58\x6c\xc1\x02\xba\x72\x3b\x0f\xbc\xc9\xb4\x5b\x4f\x89\x49\x7e\x4f\x87\xc0\x0a\x7e\x19\x6f\x75\x66\xcf\xb4\x5b\x4f\x78\x4d\x00\x69\xc2\x4a\x2f\xb7\x27\xa6\xbb\xf7\xee\x6f\x5e\x3e\x07\x1f\xbb\xa7\xc7\xbb\xd7\x4e\xf3\xc7\xce\x8b\x13\x1b\x77\x5b\xed\xd6\x0c\x1e\x4e\x13\x67\xac\x51\x97\x22\x90\x3d\x50\xcc\x3a\xdd\x9e\xbc\xa5\x84\x3b\xfe\x68\x50\x77\x9e\x66\xba\xdc\xdf\xff\x3e\xe1\x81\xa5\xc5\x27\x9f\x7c\xfc\x21\x60\xa3\xf3\xdb\xe3\xcd\x1b\x2f\xb8\x1b\xd9\xca\xc3\xf9\x5a\x54\x6f\xc0\x56\x7e\x3f\xc0\x89\x89\x2c\xa6\xbe\x2b\xb0\x87\xe1\xef\xa0\xda\x1c\x19\x08\xeb\xc1\xe8\x70\xb9\x38\x8c\x1c\xb7\x1e\x60\x2b\xc0\x15\xc8\x7f\x01\x30\xda\x66\x0c\x84\xbd\x27\x00\x9e\x7e\x2c\x0c\x60\xd5\x88\x3a\x83\x46\xa4\x77\x04\x56\x1f\x04\xfa\x6f\xd6\x71\x9f\x0f\x37\x1a\x35\xee\xfc\xfd\x23\x47\x0e\xdb\xbd\xeb\x12\x3d\xab\x0c\x82\x05\x24\x75\x9e\x83\x08\x7e\xab\x33\x0b\xb4\xf9\xb5\x4c\x4c\x01\x5a\xbf\xb0\xd0\x99\xfd\x85\xe6\x89\x44\xdd\xac\x57\x7a\x00\x5a\x0a\x00\x45\xba\xa2\x8d\x4e\x25\x19\xe0\xea\x8f\xb7\x68\xac\xfb\x02\xfc\xa7\x9f\x96\xda\xc3\xf1\x99\xf6\x04\xc8\x91\x4f\xa0\xe6\xda\xd3\xf1\xcd\xc9\x7b\x44\x98\xb7\xf8\xa8\x24\xd1\x7e\x92\x48\x43\x51\x0a\x92\xd3\x13\x92\xb2\xd4\xe2\x00\xf3\x7d\xfa\xf7\x76\x6b\xca\x5a\x77\x90\x04\x6b\xc8\x45\xf4\xfe\x6e\x4f\x2c\xe0\x34\xd4\xe8\xd5\x06\x27\x09\x55\xaa\xb0\x9c\x6a\xab\x20\x5a\x7e\x1a\x01\xec\xd2\x11\xd4\x7f\x90\xf0\xae\xcf\x21\x2a\x19\xac\x47\x23\xb9\xce\x2f\x4b\x9d\x53\xcf\xd6\x9e\x3d\xb3\x3e\x2a\x9c\x6c\xc2\xd4\x5e\xdc\x22\xd9\x4d\xcd\x0b\xb1\x7a\x9a\x76\x1e\xd2\xfb\xc7\x7f\xdd\x1f\xfc\x3f\xaf\xbf\xf6\x1a\x8c\xdd\x08\x92\x93\xd7\xe5\x70\xc1\x3d\x94\xd6\x0e\x90\xd1\x7a\x01\xad\x69\xde\x20\x8f\x2d\xef\x3a\x04\x5c\x68\x57\xf0\x26\xcd\xea\xff\x0b\xbf\x2a\x80\xee\x10\xf6\x15\xa3\x91\xb7\x08\x29\xf8\x15\xb6\x29\xed\x62\x33\xa4\xd6\xd2\xe6\xd5\x95\xce\xc3\x73\xba\x0f\x5d\x51\x73\x53\xbb\x72\x8a\xf0\xce\x1a\x4f\xbe\x18\x55\x07\xcb\xf5\x11\xd1\x7c\xf0\xf0\xfe\xfe\xd9\xc6\x02\x72\x3d\xd8\xa8\x9d\x33\x30\xde\x45\x26\x37\xee\x20\x0f\x1c\xb9\x3c\x88\xc2\x99\xf4\xbb\x39\x7e\x65\xfd\xc6\x9d\xb4\xea\xbc\x61\xf2\xf8\x4f\xb9\x18\xea\x15\xe5\x85\x22\x05\xaa\x05\x54\xf3\x1d\x74\xb9\xb6\x72\x91\x48\xcc\xac\xa1\x25\xa6\x46\x83\x83\x28\x10\xf1\x49\x4c\x04\x71\x01\x15\x02\x96\xcf\xd4\xa1\xcc\x9d\x77\x66\x2e\xba\xf5\x61\x73\xd5\x50\xe5\x13\xf9\x78\x9c\x48\x52\x88\xc9\x9c\xe8\xa0\xe3\xee\x3f\x70\x08\x79\xd6\xfa\xf1\x5b\x6a\x0e\x73\xb4\x44\x86\x3f\xd3\x5e\xfa\x4d\x44\x1c\x5b\xe5\x9a\xf8\x46\x36\x06\x88\xf0\xa8\x81\xcd\x77\x67\xcf\xad\x3d\xbf\x4a\xa7\x08\x52\x76\xc0\x2c\x4d\x0e\x53\x50\x4d\x8e\xc1\xd1\x5c\xcf\xbd\x27\x7f\xf8\x13\xf7\x06\x41\x20\x92\xcd\x65\x62\x07\x84\xe1\x28\x60\x74\x94\x17\x9b\x71\x23\x1a\x09\x62\x60\x5c\xc5\x30\xde\x83\x67\x7e\xc0\xc5\x71\x00\xf2\x64\xd0\x04\x65\xbb\x50\x0a\x4b\xc1\xc0\x58\x80\x54\x15\xa3\xbc\x51\x0a\x07\x0b\xcd\x0a\x9e\xce\xa9\xc7\xfe\xc6\xa9\x85\xce\x2f\x8f\x85\x46\x9c\x21\xf2\x5a\xa7\x35\x92\x31\x66\x37\x45\x14\x1b\x05\x89\xf7\x05\x9c\x06\xae\x36\xc4\x1a\x31\xa0\xb5\xdd\x3a\x4b\x5d\x85\x55\xea\x49\xa9\x9a\xfb\xf9\xdf\x34\x02\x74\x6b\xca\x70\x3e\x66\x49\x38\x20\xa9\x09\xd4\xc4\x40\x8a\x03\x90\xaf\x09\x1d\xc0\xe8\x2b\x83\x7b\xed\x89\xf4\x89\x50\x0d\x0a\xaf\x98\x1e\xf2\xc7\xca\xa0\xac\x7b\x8a\xb5\x58\x48\xf4\x39\xca\x13\x52\x46\x81\xcd\x8b\x3f\x6e\xdc\x9d\x87\x61\x6e\xdc\x7b\xdc\x99\x5d\x4e\x07\xa9\xe8\x75\x3b\x80\x01\x53\x0a\x36\x40\x15\xf0\x8c\x26\xc5\x51\x89\xa4\x9e\x92\xf4\x4c\x67\xba\x07\x76\x62\x82\x20\xcf\xba\x45\x62\x14\x31\xc0\xa9\xbb\x8d\xbb\xd3\x28\x1a\x39\xc2\x05\x4b\x6f\xa2\x63\xb2\xb2\xb1\xb6\x72\xc6\xac\xa8\xbb\x90\x24\x6d\xf3\x5a\xda\xa7\xff\xb2\x75\xfa\x03\x83\x3e\x0f\x90\x3f\x38\x10\xe4\x82\x57\x69\xcf\xc9\x94\x41\xc6\x5b\x46\x3a\x9a\xbe\xb0\x7e\xe5\x38\xac\xb0\x4d\x35\x5a\xb6\x58\x3f\xfb\x63\xe7\xf9\x9c\xde\x34\xd6\x10\x99\xf5\x64\x0e\xcc\xf0\x1a\xae\x9e\x62\x13\xf1\x04\xd5\x04\x3b\x15\x2e\x9a\x59\x83\x99\xaa\x82\xe3\x5a\x58\x44\x37\xcd\x0f\x81\xe0\x94\x53\xd2\x53\xaa\xa2\x0a\xfa\x77\x7e\xa8\xdc\xc8\x0f\x22\xa7\x2f\xe5\x5e\x02\x91\xf1\xa5\x80\x54\xde\xeb\x34\x95\xd3\x68\x6e\xe2\x26\x70\xcc\xde\x7e\xdc\xbd\x30\xf7\x46\xb0\xfb\x98\x52\x52\x5e\x47\xe6\x9d\x07\x56\x50\xae\xe0\xc6\xc8\x29\x71\x72\x81\xfe\x43\xc6\x16\x78\x96\x2d\x40\xbb\xd6\x60\x68\x50\x3f\x6b\xa1\x43\xe9\x4c\xc7\xed\x95\x1b\x8a\x06\x9a\xe5\x4a\x29\x09\x66\x9e\x16\x7a\x81\x34\xab\x56\xe7\xc4\x83\xce\xea\x2c\x75\x7d\x8e\xe6\x79\x86\x25\x4c\xb7\xcd\xc4\x37\xc1\x6e\x14\xee\x89\xee\x90\x75\xf3\x72\x3d\x54\x3c\x3b\x55\x65\x53\xda\x10\xe8\x42\x42\x97\xe9\x1a\xaa\x92\x74\x66\xba\x0f\x7f\x50\x9b\xc0\x21\x43\xc6\x9b\x02\xb7\x2d\x31\x3f\x50\xa2\xf1\x8c\xe2\x71\x30\xeb\xcb\x0c\x48\x4b\xdb\xb8\x02\x23\x05\x60\x38\xbe\x44\x2e\x5b\x14\x38\xe2\xec\xf3\xce\xb5\x7b\x36\xf5\x53\x91\xc1\x20\x40\x8c\xf7\xbe\x05\xff\x83\x75\x05\x09\x94\x4f\xf0\x21\x45\x14\xdd\xf9\x69\xda\x63\x4b\x4a\x23\x10\x42\x60\x26\xe2\x4e\xcb\xd9\xc0\x5b\xef\x8f\xd4\x99\x29\xea\x8d\x9b\x45\x38\x6d\xd0\x98\x05\x0d\x4e\x12\x69\x7d\x07\x2a\x52\x77\xea\xeb\x36\x6e\xd3\x65\xcb\x02\x35\x13\x28\x2a\xdf\x04\xe1\x10\x08\x07\xc1\xcd\xb2\x86\xd5\x79\x20\xfa\x17\xf7\x81\x10\xee\xfc\x46\x5f\x5e\xd0\xda\x80\x30\x78\x0a\xe0\x93\xf2\xb5\x73\xc7\x67\x68\x6a\xfe\x7c\xe7\x8e\x26\x2b\x72\x51\xa5\xe4\x69\x32\xa8\xbf\x29\x39\xeb\x5d\x4b\x56\x52\xfb\xd4\xb4\xf1\x36\x74\x0c\x8a\x6c\x71\x38\xaf\x4d\xd7\x88\xe5\x46\xf8\x55\xc3\x31\x61\x07\xda\x86\x4d\xa7\xf8\x13\xc2\xd7\x49\xb4\x78\xf1\x26\x04\x25\x68\xea\x54\xf7\xea\x0b\x10\x9d\xc6\x88\x86\xe2\xdc\xfa\x7c\x2b\xcd\xd0\x58\x8c\x2a\xb0\x27\x23\x3c\x6f\x8e\x85\x52\xb5\x73\xe2\x71\xe7\xdc\x4c\xa2\x2a\x80\x8a\xea\x43\x0a\x92\x36\x48\x8e\xe5\xd9\x60\x6a\xba\xd0\x76\x53\x3a\x59\xc4\x28\x7f\x9e\xcd\x7c\x44\x3d\xca\x68\xd7\x07\x44\x40\xe6\x42\xee\xd7\xb5\x2c\x7a\xbd\x03\xce\xc5\x5a\xff\xb9\x18\xeb\x92\x76\x3a\xa8\x53\x68\x36\xd0\xbe\x67\x2c\xdb\x79\x51\xff\xd1\x94\xba\x71\x77\x36\xeb\x6c\xb0\x04\xd3\xe1\xb0\x86\xe2\xec\x48\x3c\xc4\x7a\xf2\x3c\x9e\xec\x89\x66\xa0\x88\x74\x67\x60\xbe\xb7\x98\x5e\x80\x5d\xfc\xbe\x7a\x03\x4e\x21\xfa\xfb\x1c\xb2\x8b\x89\x47\xcc\x4b\x03\xa2\x99\x38\x2a\x96\x0b\x95\xfc\x9f\xdc\xcb\x39\x25\x8e\x9e\xe6\x5e\x5c\x71\x88\xed\xf8\xa0\x24\xe6\xd6\xbf\xc5\xc3\x7c\xe3\xde\x13\xff\xd0\x83\xc3\x1c\x76\xbe\x88\xe0\x33\x96\x8c\x04\xeb\xf0\x83\xc5\x67\xe9\x54\x57\x17\x12\xd6\x29\xb8\xd8\xb9\x00\x1c\xec\x78\xe7\x1c\x8c\x76\x16\x61\xa6\xf0\xc6\xc4\xa0\xe8\x14\xda\xd6\x90\xb4\x22\xa3\xd4\x83\xee\xfd\x1b\x1b\x93\xbf\x6d\x39\x54\x5c\xce\x91\x10\xb5\xe9\x3c\x51\x9f\x59\x8d\xf5\x33\xff\xe8\x9e\x98\xc6\x75\x7f\xf1\x1d\xa1\x96\x45\x36\x10\xc2\x86\x80\x43\x66\x1d\xa3\xb8\xa3\x5e\x5c\x22\x4e\x71\x83\x2b\x87\xdb\xab\x0c\xcb\xa5\x6f\x80\x80\x07\x8f\xfa\x36\x77\x54\xb0\x45\x20\x49\x5b\xe0\x94\x2b\x23\x39\xf1\x59\xd2\x25\xcd\x28\x0e\xab\x0d\xb5\xd0\xe6\xc2\x80\xb5\x29\xa3\x09\x7e\x13\xbc\x39\xf0\xd6\xee\xf8\xcd\x7d\x03\x6f\xc1\xe1\x06\xea\x53\x4b\x61\x9d\x84\xbc\xf1\x09\x2d\x29\x77\x96\x66\xd6\x9e\x9d\xa4\x05\xbc\x8a\xea\x3e\xde\xbe\xb5\x10\xd3\xe3\xad\xdd\xa5\xee\xe5\x89\xcd\x8b\xe7\xd7\x56\xee\x74\x4e\x9e\x20\xec\xdb\x7b\x36\x4d\x0d\x07\xf9\x88\x87\x92\x61\xeb\x14\x29\xb4\x11\xe9\x9d\xda\x0f\x9f\xc8\xb8\x1c\xb1\x11\x44\xbe\xe3\x05\x06\x71\x29\x62\x19\xaa\x72\xca\x9e\x61\xe3\x10\xf2\xc3\x1f\xda\x93\x17\x91\x14\x08\x43\x95\xf2\x48\xb9\xb1\xbd\x0d\xe1\x82\xb8\xec\x18\x32\x0c\x49\x2e\x6f\xde\x5c\x59\xff\xb5\xc5\xc8\x04\x8d\xd7\x95\x4c\x90\x0c\x5f\x0f\x3a\x53\x80\xc8\x33\x6c\x43\x49\xcc\x7d\xb8\x10\xe7\x9b\x55\x59\xd0\xb0\xc4\xfb\x82\x0c\x4c\xe7\x09\xb5\xb7\x50\x0c\x22\x59\xe4\x02\x89\x39\x2d\x1b\xdb\x9e\x1a\x1e\xd8\xba\x7e\xf0\xb2\x5e\xeb\x57\x50\x84\xed\x5e\x5b\x50\x8b\x30\xaf\xf6\x32\xca\xe0\x49\x22\xa1\xa1\xdf\xb4\x2a\x9f\x55\x53\x22\x19\x0a\x84\xa2\xf1\x56\xf7\xdb\x5f\x89\x20\xee\x76\x4e\x9e\x55\x33\x27\xc9\xfa\xe6\x4f\xc8\x07\x48\x98\x58\x7b\x3a\x4d\x14\x71\x8d\xe4\x9f\x27\xb4\x2c\x6c\xdb\x23\xba\x48\xa7\x05\x5a\x28\x85\x86\xed\x2c\x01\xd0\xaa\x3b\x04\x42\x1b\x9b\x2b\xcf\x7b\x7d\x2a\xeb\x0d\x89\xa2\x31\xb1\xe3\x86\x12\x45\x7b\xe1\x92\xe7\x93\xd8\xb6\xb4\xfe\x17\xbf\xdf\x1c\xff\x61\x6d\xe5\x12\x9a\xc6\x8c\x92\x22\x32\x29\x1a\x22\xaa\x28\xc2\x81\x9c\x23\x73\xf2\xf8\x04\x6a\xf6\xea\x4a\xc0\xde\x3e\x6a\x5a\xdb\x98\x13\x43\xcf\xe4\x44\x56\x0f\x46\xfa\xa2\x0b\xab\x2d\xd8\x2f\x11\x00\xde\x50\xa8\x7b\x2d\x14\x59\xaf\xdd\x00\x85\x07\x24\x0b\x35\x51\x14\x6e\x6c\xc1\x4c\x2f\xa2\x19\x91\xb1\xf2\xfa\x2c\xd2\x9d\xfd\x96\x13\xd5\x00\x1b\x51\x94\x8f\x87\xd1\xaa\xf9\xfb\xea\x45\xbe\x58\x01\xf2\xee\x3e\x1b\x4f\x5a\x9b\x50\x79\x13\x01\x52\xab\xa7\x7a\x71\x40\x58\xc0\x45\xf9\x5c\xd8\x0a\x8a\x0b\x8a\xa7\x1c\xe6\x5b\x33\xf5\x3d\x8d\x0b\x61\x75\xd6\xa6\xfe\x3d\xac\x97\x07\xc7\xb8\x4e\x48\x9a\x55\x50\x28\x95\x00\x0b\x71\x62\x75\x3e\xc6\x9f\x5c\x53\x7d\xb3\xe4\x0e\x25\xc8\x7e\x2c\x1f\x02\xf9\xb0\x27\xf8\x34\xac\x14\x41\x8a\xe2\x31\x47\xa5\x02\x0e\x7a\x2c\x44\x81\x09\xb0\x75\x1c\x6f\x4f\x72\xb4\x39\xe1\x3f\x58\x66\xa8\x81\x86\xb2\xce\xed\xd3\xdd\xab\x3f\x51\x1b\x38\xaf\x46\xa0\xc9\x27\xa0\x07\x1c\x4a\xaa\x98\x1f\x83\x30\x25\x9f\x1d\x79\x8a\x0a\xdf\x65\x8d\x31\xd5\xa2\xb8\x73\xc7\xe1\x4c\xbd\xf4\xe3\x50\x6e\xe9\x12\x27\xa3\xb9\xb4\xef\xef\x7f\xff\x08\x29\xc8\x64\x1b\x9f\x20\x05\xab\xb5\x04\xdd\x76\x4e\x43\xcf\xef\x37\x1a\xb5\xf8\x93\x7a\x85\x8c\xd7\xfd\x6c\x3c\x3e\x5c\x18\x43\x13\x12\x7e\x45\x33\x01\x1e\x8d\x5a\x2d\x13\xfb\xf2\x91\xb0\x30\x22\xb3\x69\xb1\x1f\x08\xcd\xe3\x6d\x90\x0b\xe9\x73\xf7\xf4\x0b\xa0\x6c\xfe\x86\x5a\x08\x4f\xd0\xd6\xeb\x13\xf6\x4d\x63\x32\x09\xc9\x33\x60\xfd\xfe\x33\x22\x55\x87\xa6\x80\x2e\x2a\xb5\xe1\x02\x09\xee\x52\x8f\x70\xb5\x28\x36\x3b\x64\x61\x44\xea\xc0\x3f\x2f\x3c\xc2\xdb\x40\xd8\xdf\x93\xb3\x34\x87\x0b\xc0\x54\x76\xed\xdd\x25\x6c\x06\x19\xcc\xb8\x28\x8c\x13\x78\xf2\xef\xca\xef\x22\x5b\x08\x2c\xef\x15\xda\x7a\xc8\x5a\x53\x2f\x31\x9c\x41\x94\x80\xd1\xf1\x40\x5e\x0a\x7a\x0d\x65\xfc\x36\x0d\xc5\x68\x17\x2f\xef\x7d\x25\x6b\x28\x2f\xe7\xe1\x3c\xc1\xda\xa7\x19\xc4\xcb\x7d\xaf\xf8\x43\xa3\x5b\x2b\x58\xdf\xde\x77\x2d\xc1\x4b\x78\xf4\xff\x4d\xa1\xf4\x0b\x91\x74\x26\x9e\xe9\x23\x6f\x9e\x5a\xa4\x03\xf8\x02\xbd\x34\x40\x81\x34\x00\x5e\x0a\x3a\x8f\xbe\xa6\x43\x6a\x16\xad\xbb\x13\x13\x08\x44\xae\x5d\x33\x90\x85\x43\x18\x29\x7c\xe5\x42\xd1\xad\x40\xc2\xe1\x33\x2c\xb3\x2d\x1f\x27\x1a\xc3\x78\xca\xb2\x1d\x70\xa1\xf7\x71\x62\x14\x6a\x84\x82\x77\x21\x69\x30\x90\x9a\x83\x54\x2b\x15\xb5\xaa\x1e\x05\x61\xb2\x2a\x2d\xd7\x9e\x9e\xed\x5e\xfa\x3b\xc2\xc4\x7b\x68\xd4\xbd\xde\xd0\x2e\x31\x20\x5b\x15\xa3\x7a\x3d\x2c\x36\x94\xc5\x12\xa0\xce\xac\x3d\x1d\xdf\x38\xf5\x93\x32\x59\x5d\x55\xba\xb0\x48\x82\x16\xb7\x35\x66\x83\x04\x6f\xbd\x67\x0e\x09\xbf\x48\xe0\xa3\x16\x99\x66\xad\xb1\x7d\x80\xf2\x03\x61\x08\xd2\x5f\xe1\x68\x58\x4d\x2a\xd0\xcb\xdd\xb9\xef\xf1\x8e\x51\x2e\xcb\x2f\xa8\xcb\x50\x57\xd0\xaf\x45\xf9\x24\x24\x9f\x95\x6d\x0f\x18\x08\xf6\x09\x58\xe6\x42\x76\x5b\x20\x1a\xc0\x80\x52\xc6\x63\x98\xd1\xf6\xc0\x30\x75\x11\x08\x40\x55\x29\xb7\x85\x88\xb2\x0d\x88\xe5\x4a\x25\x1c\xc2\x1b\x2e\x35\x40\x6f\x54\x8b\xea\x28\x5f\x50\xfb\x66\xa6\x73\x6e\x11\x01\xa4\x00\xd3\xcb\xa7\x29\xc5\xd0\x59\x96\x1d\x24\x49\x26\x59\x46\x30\xc6\x40\x15\x0e\xc1\x3a\x79\x93\x59\xc6\x30\x1a\xb8\xe2\x30\x6c\x9e\xf6\x0d\x63\x7c\x82\x58\xe0\x49\x6e\x6d\xdd\x27\xf3\xd0\xf4\x56\x0a\x49\xa2\x5b\xd8\x67\x68\x3f\xb3\xfb\x65\xfc\xde\xe0\x4b\x65\x38\x35\x68\x96\x7f\x52\x77\x5a\x5a\x70\x27\x99\x85\xba\xe3\xdb\xe8\x43\x1b\x00\xc3\xaf\x40\xb2\xc8\x75\x67\x4e\x91\x4c\x24\xb3\xf0\x2c\x81\x9d\x87\x97\xc8\x0c\x38\xe7\xae\x46\xa5\x10\x37\xd0\xfe\xc3\xe8\xc8\x75\x4e\x9f\xd9\xbc\x7c\x5b\xdd\x07\x7b\x37\xf8\x42\x55\x68\x23\xbf\x36\xde\x79\x3e\xa3\x84\xdb\x27\xea\xfa\x4d\x84\xc5\xce\xd4\x1d\xac\xa3\xb0\xa8\x8d\x7d\x8e\x46\xcc\xec\x42\x61\x07\xef\xcd\x8f\x86\x63\x39\xba\x7d\xff\xc6\xd5\x53\x94\x05\x15\x4d\x4c\x4d\xbe\x82\x39\x46\xc2\x99\x6e\x85\xe6\x3f\xd7\x24\xb8\x84\xb2\x07\x14\x65\x01\x43\x55\x09\x51\x31\xcd\xb7\x46\xda\xaa\xa8\xf8\xf4\x3d\xb2\x0f\x2e\x18\xe3\x3f\x9e\x86\xf3\x50\x13\x6f\x0d\xa6\x4e\xc2\xff\x37\x9e\xa1\xa8\xd0\x73\x7d\xd0\x68\xa5\xcc\xa8\x50\x6b\xe3\xde\xaa\x6b\x3d\x7d\x6e\xdb\x50\xe1\xdc\x6c\xc0\x56\xc6\x75\x60\xa7\x44\x4f\x35\x51\x9e\x0e\xbe\x09\xcd\x9c\x60\x78\x7e\x27\xf6\x8c\xac\xa7\x6c\x55\xbd\x26\x68\x78\x99\x5f\xd9\x78\xf8\x63\xda\xb2\xf0\x40\x50\x8b\x45\x7f\xc4\x84\x8a\xb4\x2c\xca\x24\xfb\x29\xa6\xd0\x80\x8c\x46\x55\x40\x83\xfb\xe6\xf8\x78\xe7\xd4\x33\xa5\x0f\x4c\xdb\x64\x96\xed\xb6\x81\x64\xe9\x23\x85\xf4\x3a\x05\x59\x46\x92\x9c\xb6\x42\x96\xa7\xb8\x27\x10\x04\x42\x8d\x8b\xa0\x8d\x95\xef\xb5\x82\x96\x3d\x30\x7b\xad\xd8\x07\x8d\xdd\x1d\x64\x8d\x65\x58\x96\x1f\x83\xbd\x91\x16\xc9\xa2\x8d\x96\xad\x1e\x6c\x3d\xa5\x2d\x50\xf2\xfc\x4a\x67\xfa\x82\x18\x70\xb0\x3e\x5d\x65\xa0\x48\x07\xc4\x7c\x12\x9a\x74\x9e\xdd\x55\xf3\x49\x25\x48\x38\xc5\xc8\x53\x30\x3f\x50\x2f\x54\x8b\xc3\x16\xef\x90\x3b\xbd\x89\x1f\x45\x84\x9c\xbc\x48\x02\xc7\x13\xdc\xf4\x40\x21\x86\x77\x2c\x90\x66\x02\xca\x07\xce\x1b\x2d\xb2\xe4\x3c\x98\x97\x4b\x68\x75\x9d\x8c\xde\x06\x28\xeb\xf1\x6e\x11\xcf\x1e\xb4\x6a\x72\x2f\xdf\x28\x25\x46\x5a\xf3\x0d\xb3\x02\xa2\x75\xbb\xad\x5a\xff\x47\x04\xc2\x62\x54\xcd\x75\x66\x27\x3a\x67\x6e\xda\x5b\xca\xf2\xfb\x2c\x87\x29\x16\x65\xd2\xf5\xca\x8d\x31\x92\x7e\x70\xae\xca\x80\x31\xb9\xe2\x1a\x28\xce\xf3\x1f\x68\x1b\x44\x4f\xb7\xb0\x8e\xc0\xd8\x35\xe3\x21\xb3\x6d\xa4\x85\x02\x72\xfa\x1c\x49\xd3\x2f\xe8\x13\xd7\xe6\xdb\x22\x5d\x7b\x15\xf1\x86\x3a\x5b\x1f\x9d\xb0\xa8\x44\xd6\x8f\x91\xaf\xac\x73\xae\x06\x2f\xed\x8e\x49\x66\x5c\x7b\x36\xb5\xfe\xd3\xf1\x8c\x53\xdf\xc0\xa9\x15\x1a\x70\xd4\x54\xd9\x00\x42\x83\x2c\x39\x9a\xa0\xd2\x9f\x5f\xb0\xb3\x8d\x06\xcf\xf7\xc6\x09\xf0\xb6\x22\xad\xdc\x7d\x61\x9d\xb5\x9b\xb0\x71\x0d\xfe\xc1\xbf\xfc\x48\xb9\xf5\x60\x06\x1d\x5b\xaa\xa0\x32\x99\xe7\xfa\x0f\xf5\x7b\xac\x85\xbc\x88\x2a\xe5\x22\xd9\x40\xe3\x4c\x9f\x23\x62\x0c\xb1\xf6\xeb\x2e\x85\x95\xb0\x11\xa6\x18\x0c\x79\x2b\xc0\x99\x51\x2e\xe5\x3e\x29\x97\x70\x46\xb5\xe6\x00\xc0\x37\x3e\xcf\xee\xea\x07\xa9\x93\x13\x8f\x79\xba\x8e\x4e\x37\x8b\xba\x22\x5b\xe7\xc4\x83\xcd\x8b\xd3\x82\xd7\xf1\xd6\xda\xca\x4a\xf7\xf8\xac\x72\x6e\x33\x03\x64\x23\x13\xea\xa5\xec\xf0\xe2\x4b\x79\xca\x38\xcf\x9c\x69\xbc\xf5\x69\x38\x60\x5f\x38\x76\xcf\x9f\x5d\xfb\xed\x9a\x75\xd3\x4e\x77\x1e\x2b\xd3\xbc\xf3\xc9\x51\xce\x21\x17\x74\xb9\x16\xe1\xf0\x02\xa9\x8c\x67\xf9\x30\xcf\x0a\x4d\xa8\x44\xbc\x0c\x6c\x64\xf7\xf0\xdf\xac\xa1\xa7\x43\x3e\x85\x26\xc4\x89\x05\xb6\x67\xf7\xe2\x23\xbf\xa2\xb9\xd3\x4b\xf7\x35\xff\x41\x59\x60\x67\xb8\xbd\x85\x0a\xad\xc1\x08\xc7\x48\x86\x1a\x28\xa1\x74\x86\xb9\x83\xd7\x36\xd1\x50\x19\x8c\x8f\xa0\xa7\xb3\x78\x40\x8f\x96\xd1\xb3\x65\x70\x10\x84\xdd\xa0\x31\x0c\xbf\x0b\x63\xc1\x70\x34\x1a\x54\xca\xd5\xa3\xe8\xf2\x8c\x11\x18\xbe\xf5\xba\x8f\x2c\xf7\xb0\x4b\x9a\x61\x6e\xfd\x1f\x57\x28\x2e\x20\xdb\x53\x5d\x79\x90\x38\xfc\x8e\xa8\x82\x59\xc7\xcd\x24\xb3\xcb\xf4\x42\xb1\x61\x28\x73\x9c\x71\x02\xa2\xa3\x41\x1c\xef\xe7\x89\xa9\xb7\x92\x7e\x36\xd4\xdb\x37\x28\xff\x98\x4e\xb4\x8b\x50\x71\x38\x8a\x62\xb9\x6b\xe3\x81\x9a\x30\x07\x77\x88\x9b\xad\xa7\xdd\x33\xd7\xf5\x6a\xeb\x69\x59\x95\xf4\x95\x2f\x4c\x48\xd3\x06\xbb\x0d\xa9\x29\x10\xff\xca\x97\x47\x28\xf4\xc5\x78\x8d\x68\x43\x90\x16\x6b\xed\xf0\x94\xe5\xf5\x6f\x57\x3a\x93\xb3\xae\x43\xc0\x04\x39\x1e\xbb\x08\x32\x5e\x0a\x9d\xa9\xfb\xb0\xcd\x80\xf5\xd1\x85\xd3\x82\x8d\xfd\xc0\x1d\xf3\x8c\xb2\x8e\xd3\x45\x89\x83\xa5\xa4\xdd\xd1\x99\x7c\x3a\xa5\xa7\x22\xa4\x17\xb1\x6b\xaa\xed\x75\x25\x25\x87\x61\x54\xb1\x74\x0c\xeb\xce\xdf\xe3\xc8\xb8\x9c\xba\x9a\x15\xb7\x92\x70\xe7\x43\x3b\x5f\xde\xa9\xcd\xb6\xbf\xe0\x50\x38\x1a\x1c\xd6\x66\xce\x14\x3d\x31\xab\xf3\xad\x14\x43\x6f\xae\x06\x87\x69\x60\x3a\x4f\x9f\x92\x30\x9d\xb2\xd7\x51\x7c\x52\x37\x6d\x59\x33\x5c\xff\x79\x66\xfd\xdb\xc7\xb8\x8e\xbe\x6b\x14\xef\x8b\xf3\xa4\x02\xcc\x78\xfe\x4f\xb4\x85\x51\x81\x8f\xc5\xd9\x26\x70\xed\xa6\x12\xc5\x93\x5d\xc5\x8a\xea\x61\x43\x40\xca\xa9\x32\xa7\xbc\x11\xaf\xd3\xc1\x94\x7e\xc8\x00\x35\x2a\x47\xc9\xe3\xb6\xcf\xa3\x3a\x16\xd2\x0f\x13\x3c\xcd\x60\x83\x51\x2c\x8c\xd7\xcd\xaa\x2e\x13\xfb\xb7\x5f\xa3\xb5\xa8\x43\x35\xe8\xc0\x95\x6a\xea\x90\x55\xd3\x81\x22\x3c\x35\x64\xee\x07\xe4\xb7\x5f\xce\xf3\xa6\xd2\x90\x83\x4d\x5c\x13\x3b\xb3\xe2\x7a\x38\x12\x1d\x0b\x85\xf1\x96\x82\x72\x15\x85\x1e\x0e\x0b\x40\xbf\x5a\x97\x0f\x07\x07\x88\x31\x03\xd3\xae\x36\x90\x49\x2b\xae\xfc\xaf\x89\xbe\x15\x5d\xc9\x18\x41\xcf\x09\xd0\x1e\x13\xf0\xbc\x4a\xca\x3e\x4f\x71\x32\x7f\x41\x17\xab\x12\xed\x03\x9e\xaf\x26\xa8\x50\xfc\x84\x9d\xc5\xdd\x78\xf1\x1b\x48\xa2\xdc\x86\xeb\x7b\xf6\x1d\x5d\xc7\x77\x2b\x93\xfa\x79\xe7\x1a\x18\xef\x37\x73\x22\xaf\x2d\xf6\xb8\x02\xb6\xee\x29\xf5\x1e\x68\x75\x1f\xdc\x42\xeb\xf9\xee\x52\xe0\xdd\xed\x76\x66\xe7\xb0\x36\x8a\xc2\x0f\xc8\x38\x6b\x59\x19\xd4\x15\x91\xb0\x5e\xf6\xc4\x37\x57\xc7\xe9\x6a\xae\x1e\xbc\xc2\xac\x87\x24\xcf\xa8\x35\xa3\x30\x90\xc6\xf0\x64\x0b\xa5\x08\x8e\x4e\x44\x5c\x89\xf4\x7e\x5d\xa0\xf0\x8e\xcd\x64\x4b\x89\x3b\xbf\xcf\x80\xdd\xcb\xbe\xb4\x9b\x3e\x92\x84\x27\xa6\x03\xe7\xf6\x02\x0d\x9f\xe2\x0e\xc9\x52\x99\x71\x3e\x42\xad\x0f\xfd\xa2\xe6\x9c\x1b\x55\x35\x32\x4b\x1f\xd3\xab\x8d\xa3\x94\x03\xfb\xcd\xb8\x51\x8f\xaa\x43\x6f\xe9\x68\xd4\x54\xc7\x81\x37\xf7\x49\xb5\x40\x19\x2a\x60\x2e\xb4\x76\x7c\xe5\xd6\xfa\x96\x06\xe7\xac\x0b\xc6\x85\x99\x38\xb0\xc0\xc5\xe3\xb7\x37\xba\x53\xe7\x28\x22\x2c\xad\x1a\x4f\x77\xea\x01\xf9\x46\x2e\x74\x2e\xcc\x6e\xde\x9a\xc1\xca\x66\x2f\x88\xa9\x26\x48\x5d\x00\x28\xb4\x0c\x9c\x2c\x0e\x6f\x9e\xfd\x19\x35\x9a\x5e\x76\x4c\xd5\x94\xa4\x33\x6e\x8a\x76\xe6\x4b\xca\xec\xb7\x64\x43\x62\xbb\xa8\xa5\x97\x7a\xc0\x14\xa0\x5c\xe2\xfe\x09\x4b\xc8\xf7\x8a\x9c\x0c\x94\x8b\x15\xfe\xff\xb8\x26\xac\x24\x21\x93\x5d\x0a\x21\x29\xf5\xc9\x9c\x41\xa9\xd4\xcc\x5e\x3b\xcc\x28\x11\x59\x8a\x4d\xaa\x49\x6a\x46\xe9\xde\x91\x65\xd4\x32\x34\x4d\x86\xad\x04\x71\xf1\x99\x75\xcf\xf3\x24\xc8\x22\x77\x55\xdf\xf2\x45\xb7\xe3\x6e\x80\x00\x05\xac\x73\x76\xb0\x70\x6b\x19\xc4\xa6\xd9\x07\xc6\x1f\xaa\x42\x9d\x3d\xb1\x65\x73\x60\xfb\xa0\x11\x59\xc2\x64\xd1\x2d\xdc\xc1\xe5\x0d\x31\x4f\x12\x31\x74\xaf\x8d\xaf\xff\x3c\xc1\x14\xd4\x9d\xbb\xc3\xb1\x65\x4a\x8d\x87\xc2\x8d\x17\x5f\xe3\xf9\xf7\x13\x9b\x48\xd0\x72\xc7\x6b\x0d\xda\x79\x23\xb4\x11\xc8\x04\xf4\xfb\xea\x1c\x40\xb1\xd9\x22\x80\x46\x5f\xa7\x34\xd3\x7f\x74\x14\xa8\xf9\x4f\x00\x64\xd8\x1b\xab\xc0\x3d\xd8\x4f\x52\x3b\xb6\xf8\x9f\x38\x9d\xb9\x9c\x2e\x0d\xd8\x0d\x15\x62\xf0\x0b\x69\x22\x09\x4f\x34\x09\x43\x60\x0f\xdf\xed\xf2\xb6\xf5\x9f\xcf\xb5\x5b\x4f\x54\x47\xa9\x1c\xae\x59\x1d\x28\x57\x4b\x39\xdb\x91\x6d\x63\xfe\x07\xd6\xc6\xa9\xc8\x90\x49\x72\x9e\xe8\x88\x6e\xda\xb9\xdc\x62\xc1\x98\xb2\x04\x95\x05\x82\x93\xa7\x35\xca\x75\xc6\xa7\xd7\x9e\x3d\xf3\x28\x3a\x10\x97\x67\xb4\xea\x3c\xb1\xb0\xc8\xa1\x7f\xe2\x4e\xc8\xed\x2d\x71\xd1\x6d\x42\x0c\x53\x28\x21\x66\xc4\xf3\x37\x65\xc7\x77\xaa\xb3\x8a\xc1\x68\x0b\x54\x4c\x61\xf0\xf6\xe1\x0f\x02\xe5\x0d\xa8\x37\x5b\x6f\x71\x53\x8f\x4c\x7b\xc3\x93\x21\xfa\x1e\x2d\xfa\x59\x72\x7d\xbe\xa7\xc2\x49\xac\x11\x6c\x75\xec\x89\x0d\xc0\x19\x88\xd7\x33\xf7\x2a\x2a\xb6\x01\x4d\x17\xec\x1a\x71\x8c\xb4\x0c\x5c\xb9\xb5\x78\xc1\xc3\xd8\x55\x22\xd3\x97\xc8\xe2\x17\x0a\xc9\x0e\xbf\x40\x9f\x48\xe3\x4b\x67\xcd\x74\x1b\xb0\xd1\xff\x04\xb0\xf0\x2d\xf1\x25\x26\xeb\x33\x44\x59\xbe\x5c\xb3\xf6\x6c\xa6\xf3\x0c\x3e\xde\xa3\x48\x05\xbd\x46\xcb\xbe\xee\x47\x17\x03\x59\xd7\x00\xf6\x31\x20\x14\x2a\x2c\xde\x26\x5b\x73\x1a\x90\x41\x6a\x95\x36\xed\x19\x7f\x85\x1c\x0c\x2d\xf5\x84\x23\x9c\x61\x9b\xc0\xd2\xce\x11\xe7\xa4\xc8\x8e\xfd\xfb\x93\x0e\x11\x1b\x43\x8e\xda\xb7\x2d\x5c\x6c\x71\xba\xc0\x1a\x80\x20\x01\x32\xb0\xef\xd6\x98\x35\x2d\x65\xa2\x70\x36\xa7\xf1\xfd\x5c\x50\xce\xe4\x09\xe3\xba\x4c\x23\xdb\x85\x51\x2d\x9a\x54\x14\x13\x14\x9f\x26\xc6\xa0\xd7\x63\xeb\x92\x24\x4e\x7b\x7e\xd1\xb0\x5d\xe0\x02\xcf\xef\x77\xe7\xe6\xb5\x2c\x29\x14\x8a\x03\x35\x92\x23\x91\xa2\x0a\x2b\xf1\x46\xaa\x60\x2d\xa9\xb0\x12\xb7\x5c\x87\xda\xf9\x87\x87\x37\x1f\x55\xdd\x3a\x23\x93\x97\x47\xdd\x47\x4f\xd7\x7e\x3d\xe1\x4c\x40\x3c\xfc\x2d\x41\x0e\xa3\x6c\x5b\xeb\xff\xb8\x0c\xf4\x62\x13\xcb\xbf\x92\x55\x1a\x4d\xfb\x9f\xef\xdc\xc1\x17\x96\x14\xc0\xb7\x4a\x24\xb2\x6a\x39\x0d\xa4\x3a\x3d\x19\x97\x02\x91\xbe\x3b\xad\xd3\x9d\xdb\xf3\x88\xa9\x34\xbf\x82\xf5\x1b\x0f\x79\x6d\xbb\xe3\xdf\xa1\x2f\x34\xde\x5f\x2d\x76\x97\xa6\xe5\xae\x0d\xb5\x6e\x1c\xaf\x42\x3b\xc8\xcc\xdd\xe3\xb3\x1a\xe1\x48\x1c\x48\x16\xc7\xca\x71\x79\xa0\x5c\xe1\xcb\x06\x0a\x9f\xc2\x4b\x85\x05\x75\xaf\x40\xc5\x58\xea\x46\xce\x26\x63\xb5\xdf\x8c\x6b\x85\x6a\x50\x04\x81\x28\xce\xed\x6a\x96\x41\x2b\x2e\x05\x18\x40\xb0\xeb\x2d\x4b\x53\x27\xfb\xf0\xe4\x14\x0c\x02\x2a\xbf\x65\x5d\xe9\x99\x6e\x30\x61\x89\xea\xeb\x65\xee\x0c\x5d\x85\xe0\xff\x62\x4b\x59\x76\xa3\x14\xed\x84\x26\x8b\x9b\xad\xfb\x9e\x55\xe1\x15\xba\x8a\x38\x2a\xb7\x73\x5b\xa4\x3f\xa1\x9a\x14\x27\x6b\xd7\xec\x9c\x98\x94\xa2\x24\x32\x1c\x80\xda\x02\xe8\xe3\x06\x8d\x79\x77\x2f\x6a\x17\x70\x35\x13\xcf\x91\x8b\x96\x9f\x68\x73\x63\xe1\x41\xf7\xd2\xdf\xe5\x0b\xa6\xcf\xd1\xa9\x73\xf4\x17\x35\x82\xbe\xa1\x72\xa3\x3c\x54\x8d\xea\xa1\x17\xa4\xa9\x8c\x9e\x95\x72\x11\x44\x02\x24\x38\x5a\x02\x34\xf5\x3e\x21\x63\x90\x14\x98\xa9\x38\xe5\x41\x06\x38\x4c\xe9\x01\xe4\xfb\x31\xfd\xa3\x7e\x2a\x18\xfd\xb0\xcf\x8a\x8d\xa0\x10\xf0\xe7\x40\xa5\x05\xa2\xab\xe6\x28\x5f\xae\x96\x1b\xb9\x0f\xe0\x7f\x20\x1c\x96\xff\x26\x86\x15\x93\x00\x85\x72\x29\x60\x34\x22\xc0\x00\xe2\x41\x8b\x7c\x4c\x01\x9e\x06\x8c\xc4\x57\xc8\x62\xfa\x77\xa5\x2a\xa4\x42\x62\x3b\xe5\x16\x91\x03\xa2\x78\x9d\x16\x95\x50\x69\xae\x0f\x55\xe2\x1d\x18\x5d\x23\xac\x1f\x2b\x54\x4c\x06\x9e\x00\xa4\xe6\xcd\x2b\xdf\xbe\x0c\xbc\xf9\x95\xcc\xbb\x31\x7f\x63\xfe\x39\xd7\x63\xc9\xed\xfe\xcf\x5e\x92\x55\x43\x34\x61\x37\x1b\xc3\xfa\x8a\x5f\x14\x78\x9c\xf8\x10\x0b\x40\xec\x32\x79\x9d\xd6\xff\x91\x64\x6e\xb2\x4e\x51\x95\xde\xc4\xae\x6f\x12\x80\xf8\x6b\x58\xa9\x60\x06\x8b\x42\xe0\x30\x04\xe4\x04\xc1\x40\xa5\x19\xee\x7a\x8b\xd1\x2d\x2c\xc0\x00\xcd\x58\x53\x95\xcb\x48\xaa\xf5\x15\x2b\x51\x15\x38\x39\x9b\xe1\x72\x76\x94\xbe\x67\xea\x4c\xab\xcf\xbb\x8b\xaf\x54\x60\x6c\x34\x4c\x74\xf3\xdc\x47\xbe\x9e\xfb\xde\xfb\xe0\x08\xb9\xbf\x45\xf5\x00\xaf\x97\x2a\x2a\x05\x02\x06\xc2\xf5\x19\x90\xca\x27\x84\xea\xa8\x28\x39\x2b\x22\x3a\x2d\x2a\x0e\xbd\x4e\xdc\x4b\x6a\xbc\x02\x49\x49\x6c\x31\x9f\xea\x7b\x27\xd4\x77\x14\x96\xb2\x07\x7b\xa2\x60\x7e\x8c\xe6\xb5\x42\x7b\x6c\xe9\xd3\x73\x3a\x40\x0f\x9a\x44\xc6\x0d\x87\xa1\x79\x0c\xaa\x18\xd5\xc6\xf2\x78\xd9\x94\xd3\x32\xaa\xf5\x51\x0b\x46\xfb\xa3\x5a\x39\x2c\xfd\xc5\x2e\x62\x7f\xc1\xc3\x64\x3a\xfd\xef\x99\x4b\x7b\xf7\x23\x8e\xf7\x37\xea\x15\xf8\x8b\x6c\xa1\xb5\x31\xa8\x0e\x1c\xe9\x28\x06\x64\xe0\xcf\x9c\x71\xc3\xc6\xe3\x43\x87\x9d\x2d\xba\x5d\x97\xe9\x5e\x5b\xbe\xc0\xe6\xef\x9c\xc1\xab\x34\x5a\x73\x9d\x62\x42\x93\xc8\x34\x51\xc9\x23\xda\x4b\x3d\xcd\x59\x89\x8c\x45\x96\x05\x4a\x37\x25\xf3\x14\x72\xf3\xd9\x89\xf5\x13\xf3\x19\xb2\x75\xb3\x3a\x4a\x5e\x8c\x9f\xf0\xbf\x3b\x77\xf0\xcf\x4f\xf9\x47\x13\x63\x09\xeb\x50\x88\xff\xf0\x45\x7d\xae\x9f\xfe\xa4\xb4\x5d\x7f\x85\xff\xd1\x16\x76\x8e\x05\x65\x3c\xf8\xb2\x89\xe8\x1a\xc2\x04\x4a\x34\x49\xe4\xd4\x7c\x4b\xac\x4c\x6f\x0a\x13\xc8\x67\x6d\xf7\x94\x94\x98\x4e\x67\x1f\x69\x46\x6a\x85\xb3\xd1\xc1\x53\x8c\x46\x40\xab\x15\x8c\xeb\x10\x5c\x95\x9b\xa0\x35\x9f\x95\xa7\xcc\x0a\x85\xb6\xb5\xf0\x5a\x13\x7d\x96\xd1\xbf\x43\x79\x14\x19\xb0\x80\xe7\x95\xc0\x82\x8d\xf7\x85\xdd\xb9\xef\x29\xc2\x33\x31\x01\xf4\xea\x9f\xd3\x7e\xc4\x72\x4a\xc2\x9c\x29\x51\x49\x82\x45\xa1\x35\x1f\x0b\x74\x9a\x2a\x74\x72\x0f\x06\x0a\xc5\xa3\x01\x9e\x32\xf5\xbf\x20\xce\x77\xee\xd0\xa7\x87\x7d\x56\x34\xea\x21\xb2\xca\xe3\xea\x4e\x42\x1c\x55\x30\x7d\x50\xa3\x80\x79\xc7\xac\xda\xff\x57\x80\xfc\x7a\xe2\x91\xaa\x15\xc6\x3e\x30\x6a\x21\x75\xbc\x7c\x62\x98\x83\x2c\x33\xf7\x58\xa5\x30\x10\x52\xe9\x7d\x12\xa9\x30\x17\x06\x1e\x96\x0d\x58\xec\x58\x31\xf2\xc9\x45\x2b\x98\xfa\x09\x6e\x96\x91\x91\x32\xa6\x33\x43\x24\xdf\x50\xb1\x19\xf5\x90\x50\x20\x2e\x28\x12\x15\x0d\xe4\x87\xb7\xe1\xf5\xc2\x28\x1a\x11\x74\x3c\xb1\x7c\x06\x6c\x52\xba\xb2\xce\xe3\x3b\xdd\x87\x3f\xc9\x47\x0a\xb9\xf4\x1b\xa0\xdd\x95\x94\x53\xa9\x04\xdb\x71\xa4\xc0\xfc\x83\x75\x27\xb9\xdb\x79\x42\x91\x16\x7a\x88\x7d\xe9\x43\x55\xa5\x92\x43\xcd\x2e\x44\xe6\x46\x29\xd5\x4c\xad\x41\xb4\xef\xf8\x1f\xf1\x18\x44\xbf\xe5\xdf\xae\x6d\x8c\x9f\x30\x9f\x47\x80\x2d\x71\x42\xc3\x5b\x44\x44\x2b\x34\xfc\xa7\xa6\x42\x89\xd2\xeb\xcd\xdd\x59\x5b\xb9\x64\x3e\x72\x20\x6d\x67\xf6\x36\x79\x1c\xa9\xaf\xb0\x57\x42\xeb\x26\xda\x0a\x3a\xc5\x74\x87\xfa\x3b\x1b\xad\xed\xb2\xbe\xe4\xa2\x5a\x85\x55\x94\xfa\x06\xf0\xd2\x5e\x15\x2b\x36\x60\x55\x2a\xc2\x5a\xd6\xf3\x3e\x1c\x13\xd2\x32\xf1\xbd\x53\x5d\xd3\x4c\x16\xc9\xb8\xfd\x6f\x51\x3d\x73\x3c\x5b\xb5\xcb\x1a\x5e\x54\x03\x65\xdb\x6a\x2c\x8a\x14\x6c\x88\x27\x6b\x4f\x1f\x12\x17\xd8\x6a\xd4\xc0\xfe\x62\x8c\x6f\xb3\x80\x28\x3e\x87\x1e\xff\x5a\x5e\xdf\x0a\x0e\x88\x30\x98\x60\x12\x68\x60\xfa\x44\xe7\xb7\xf3\x44\x3c\x89\x79\x26\x2b\x65\x4e\x0d\x4d\xc3\xc9\xda\x2e\x02\x99\xf7\xe6\x98\x50\x2c\x9e\x6c\xc0\x08\x45\x58\x4c\x37\x85\x72\xb8\x52\x1e\xe4\xe7\x62\xa8\x63\xbf\xa5\x1e\xc8\x95\x94\x83\xd0\xe9\x31\x41\x67\x89\xae\x69\x61\x1a\x85\x81\xdc\xee\x52\x60\xaf\x8a\x01\x84\x68\x37\x35\x0c\xca\x75\x0d\x60\x07\x18\x7a\xe4\x75\x95\x5a\x0c\x82\x71\x9e\x75\x82\x1c\xeb\x20\xca\xa2\xa9\xf7\xc1\x4c\x9a\xbc\xe4\x42\xda\x2e\xa9\xfb\xd5\x53\x3a\xef\x45\x34\xde\x12\x0a\x34\xbd\xd4\x64\x6c\x50\xd7\xf9\x0a\x10\xe5\x62\x4a\x34\x18\x2a\x43\x03\xab\xf7\x43\x91\x51\x8c\xde\x16\x78\x7e\x33\x16\xe3\x91\xed\xde\xa6\x88\xdd\x64\x69\x1f\x26\x2e\x90\x83\xc6\xd6\xa2\x3d\x6e\xe4\xb4\x88\x25\xb7\x2a\xc8\x65\x63\x51\xd3\xf6\x05\x58\xec\x9c\xfe\x11\xf0\x0e\xd4\x8b\x50\x4c\x1c\xa2\xbe\x2d\x4d\x01\xc7\x34\x56\xca\x0f\x8c\xf9\xd0\x66\x5c\x09\xa1\x17\x90\x91\xb0\x8a\x56\x44\x4c\xc2\xe2\x0f\x69\x6d\xf5\x3b\x4c\xb1\x85\x47\x8e\xdb\x30\xc6\xc8\xbd\xb5\xa7\x30\xdb\x5f\xbb\x57\x5f\x50\xc0\x5a\xb2\x42\x1f\x9e\xff\xe8\xa9\x7e\x6d\x9c\x5c\x80\x52\x6a\xe0\x16\xe2\x1a\xed\x89\x09\xc5\xfc\x53\xea\xd5\x43\xd0\xae\x1b\xec\x74\x03\xda\x32\xfe\xa8\x8c\x05\xfc\xbb\x94\xde\x37\x1c\xc4\xaa\xc1\x87\xf8\x77\x50\xdf\x4e\xb3\x91\x28\x6e\xe0\xe1\x83\xf7\x85\x07\xe1\xef\x40\x7e\xf4\xea\x45\xd5\xe7\x6e\x92\x0d\x70\x87\xd3\x22\xe5\xf8\xaf\x60\xf7\x67\xaf\x7e\x1e\x63\xfe\x24\x73\x1b\xfb\xd9\x6b\x9f\x83\x38\xbc\xfb\xb3\xd7\x3f\x8f\xf9\xee\xd5\x6f\x9b\x1f\x2c\x1c\x0d\x13\x00\xa8\x9d\xae\x5c\xab\x87\xc7\xca\x51\x33\xce\xe1\x0d\xaa\x49\x27\xac\xd9\xd7\x57\x80\xe9\x07\xb7\x92\x25\xcc\x82\xc8\xea\xf7\x11\xfc\xe9\x72\x9e\x92\x94\xec\xa7\x1f\x06\x5a\x73\x24\x2f\x53\x8d\x91\x31\xa9\xbf\x4d\x63\x85\x87\x7c\xa1\x91\xfb\x42\xff\xc2\x39\x97\x4b\x38\x63\x98\x82\xca\x5d\xfa\x2f\xfc\xeb\x2d\x9a\x0e\xce\xff\x0b\xd3\x4f\xa4\xef\x6f\x8f\x0c\x87\xf5\x10\xe5\xcd\x2a\xfb\x7b\xc0\xb7\x60\x2c\x6c\xf4\x79\x9c\x92\xf3\xba\xd2\x70\xbd\x12\x19\x84\x5d\x83\x53\x5e\xf1\x77\x5d\xbb\x1e\x12\x46\xb8\xda\xc7\xf4\xc3\x2f\x73\x41\x71\x9d\x54\x58\x72\x0c\x28\x1a\xd9\xef\x17\x33\x8a\x09\x45\xf4\xe7\x1f\xc5\x0f\x8f\x47\x40\xa8\x1f\x7f\x14\x08\x8b\x5b\xa0\x36\x0c\x0a\x98\x41\xc0\x74\xb5\x88\x36\x47\x94\xf6\xa9\x16\x3b\xe1\x14\x02\xae\xfb\x47\x7b\x00\x75\xa1\x41\x09\x12\xf1\x1f\xfd\x95\x32\xc8\x70\xde\x4e\x43\x8c\x64\xe8\xfd\x08\xff\xaf\xbf\xa9\xd4\x0b\xa0\xc7\x81\x5a\x0e\xbc\x9f\x92\x0b\x34\x6b\x94\x75\x0b\x3f\xb8\x35\xcb\xd5\xbc\x8a\xf5\x24\x4d\x0f\x74\x62\x74\x1e\xe7\xc9\x00\xe5\x60\x22\x6e\x4e\xcd\x15\xbc\x5d\x41\xe3\xda\x58\x30\x8c\xc9\x18\x0b\x3a\xcd\xe8\xbf\xba\x8e\x12\x56\x2e\x03\x59\x48\x67\x93\x86\xa5\x72\x23\xf7\x2e\xfc\xcf\x20\x94\x7d\x42\xf7\xd3\x3f\x66\x70\xd0\x49\xae\x1f\xfe\xa7\xbf\xf0\x99\xac\xb2\xe5\x1a\x41\xc2\xab\x50\x8c\x2a\x51\xdd\x16\x56\x97\x36\x4e\xff\x98\xa8\x83\xb6\x7d\x14\x11\x12\x02\x00\x57\x30\x34\x4d\x1b\xb6\x7b\x6d\x61\x63\xfe\x87\xee\xe3\x67\xc9\x13\x8b\xeb\xd3\xac\xd6\x7f\xb9\xb7\x79\xf5\xa4\x57\x22\x3e\xd8\xea\x3e\xc0\x29\x93\xb8\x65\x7b\xac\xca\x67\x31\x09\x83\x2f\xc1\xac\x9a\x69\x10\xfd\x6b\x2e\x23\x49\x6d\x71\x91\x95\x38\x92\x51\xb1\x99\x3c\xd1\xb9\xf9\x78\xfb\x17\x56\xf6\xa1\xe9\x0d\xc7\xdc\x5c\xe9\x09\x6c\x71\x37\x25\xa6\x27\x52\x46\x71\xcf\xd5\x0a\x40\xa1\xec\x07\x19\x4b\xa4\x37\x5e\x47\x2d\x7f\xbb\xb1\x3a\x99\x51\x8d\x91\xf0\xfb\xea\x37\xed\xd6\x6d\xcf\xf4\xaa\x9b\x4a\xf6\xc1\x34\x65\x37\xd3\x74\x60\x77\x85\x89\x7f\x73\xf8\xbf\xc4\x18\xf8\xdf\x9c\xfc\xab\x8a\xe5\x40\x14\x0d\xff\xaf\xf4\x2b\xe0\x5f\xaa\x0a\x70\xf1\x7a\x18\x37\x2b\x0d\x74\xe4\x3f\xd7\xbd\x7e\x0d\xbd\x0d\x40\x99\xc5\x49\x4c\xbb\x89\x0b\x9c\x00\x56\x69\x4c\x99\xaa\xd9\x96\xc5\x23\xb0\x8e\x02\xce\x62\xcd\x3b\x13\xcb\x82\x81\xb0\x58\x68\xc6\x68\x82\x10\xf6\x3e\x8c\x79\xb3\x95\xd1\x80\x72\x18\x86\xc7\x42\x4c\xcb\xc7\xe0\x31\xf2\xc9\xce\x51\x9e\xfb\x42\x43\x2f\x08\x77\x28\x04\x58\x21\x90\x0a\xd0\x43\x63\x14\x5d\x08\x1b\x00\x2f\x0c\x1a\xa3\x91\x18\xb8\xe2\x37\xec\x13\x1d\x58\xe1\x3e\xea\x61\x1f\x1e\xeb\x25\x61\x8b\xff\x42\x3f\x84\x39\x0a\x7a\x59\x37\xd9\x4f\xff\x04\x87\xb1\xa7\x8f\xb9\x27\x55\x83\x18\x04\x2f\x3d\x3a\x3c\xc6\x38\xdd\x91\x10\xba\x24\x49\xa0\x24\x3c\x39\x66\x16\xfd\x26\x66\x86\x50\x3c\x98\xfe\x06\xd6\x05\x0d\xd4\xf7\xd7\xf5\x77\x05\x9e\x40\xc9\x39\xcf\xbd\xf0\x97\xff\x19\x74\x68\xfd\x7f\xa3\x70\x22\x53\x28\x0c\xe4\x6d\xd6\x0b\x27\xa1\xf9\xe1\x56\x62\x73\xc5\x7e\xfe\xd7\x2e\xa2\x3b\x0c\x24\xb0\x50\x39\xf1\x97\x54\xb1\x1c\xcb\x40\x22\x34\x74\x95\xfc\x81\x3f\x4b\x82\x73\x7b\x09\x61\xc4\xb5\xb0\x8e\xf7\x06\x82\x48\xa8\xa7\xd3\x35\xda\x58\xc9\x1d\xa4\x7f\x6c\x62\x91\x82\x23\x09\xa0\xda\xb7\x54\xd0\xe7\xb9\x96\x32\x04\x4c\xad\x0d\x7b\x85\xdc\x03\x0e\xc0\xdf\x98\xe6\x3b\x39\x3e\x0d\x8a\x6b\x06\xa5\x26\xc5\x22\x28\xe6\x83\x8d\xd0\xa8\x69\x7b\xc9\xea\x81\xc3\xe1\x93\xa7\x1b\x22\x1a\x06\x2f\xa8\x24\xde\xd6\x93\xc6\xf2\xbd\xde\xcc\x83\x28\x05\x53\x36\x54\xba\x54\x49\x07\xfc\x52\xa3\x37\x68\xb5\x29\x1b\xb4\xb5\x70\x0f\xe2\xe5\x74\xa5\x5c\x6c\xc4\x7a\x3b\x29\xa3\x4f\x76\x8f\x2a\xcd\x32\x2f\x6e\x93\x8d\x8d\x68\x43\xc5\xa0\x0d\x44\x50\x54\x41\x2c\xc5\x51\x85\x52\x2b\xbb\x4b\xe9\x6e\x72\x5a\x56\x6f\xb3\xd9\x86\x3f\xd7\xc0\x94\xa1\xe7\x5a\xd5\xb3\xd5\x78\xab\x52\x0f\x55\xde\xaf\x55\xca\xed\xe6\x1c\x77\x17\x4f\xb7\x5b\x97\xac\xc8\x16\x7b\x88\x51\x1e\xe8\x22\xcf\xf6\x34\x4a\xeb\xa2\x54\x66\x6f\x60\x39\x0a\x51\x9a\x4d\xf6\x92\x13\xf0\x94\x9f\xd7\x99\x3b\x1c\x6f\x03\xc8\x38\x01\xdd\xc2\x98\x4c\x39\xe2\x58\x1e\xdd\x90\xb4\x2a\x72\x42\xba\x1d\x38\x6c\xed\xa0\x2a\x70\xea\xb0\xe4\x43\xf9\x43\x9c\xef\xe2\x30\x1e\x17\xeb\xe5\x1a\x33\x08\xbb\x50\xcd\xf9\x00\x6c\x8a\x03\x08\xfc\x65\x95\xf8\xf9\x15\x6f\x8a\x61\x01\x86\x8f\xff\x77\xbe\xeb\x34\x8f\x02\x28\xcf\x7b\x88\xe0\x51\x52\x57\xfe\x8d\x27\x80\x54\xdd\x13\x8c\x34\x89\xf1\x07\x2f\x8d\x01\xb4\xbd\x23\x23\x7b\x4b\xa5\x97\xd2\xe6\xab\xc5\x02\x3d\x61\xbe\x5d\xd4\x1b\x5a\x74\x76\x9f\x39\x58\x80\xb4\x38\x99\x81\x34\x2c\xb7\x96\xe7\x13\x3c\xeb\x42\xbc\xf6\x0c\x4a\x06\x63\x24\x1a\x5b\x4b\x16\x23\xc3\x8b\x6a\x95\x30\x18\x8d\x70\xb7\x0e\xf0\x0e\x44\x67\x4b\x6f\x1a\xae\xe8\x6a\x95\x88\x68\x77\x90\xfe\xe9\x3d\x36\xb9\xba\x62\x99\x05\x99\xd5\x48\x06\x36\x50\x24\xee\x85\x0b\x2d\x26\x1a\x74\x9a\x28\x83\x94\x7a\xc9\x50\x03\xd3\xb3\x1d\x65\x80\xe7\x99\x1d\x61\x80\x2f\x0c\x50\xa9\x04\x1f\x30\x3d\xf7\x88\x32\x48\xeb\x3b\xb9\xf4\x5b\x45\x1b\xa4\x3c\xd3\xa2\x3e\xf4\x31\x4d\xc7\x7e\x16\x73\xab\x86\x95\xf6\x11\x05\x69\x34\xe1\xdf\xa7\xcb\xbd\x07\x6e\x00\x9f\x6e\x30\x1c\x45\x47\xe3\xdc\xa7\xe1\x00\xfd\x61\x15\x0c\xe1\xbb\x0b\x58\x46\xcf\x08\xb0\x23\x88\xa4\x6c\xd2\x75\x40\x9e\x2a\x17\xcd\x9b\x30\x9d\x1b\xcf\xba\xd7\x1e\x24\x46\x5d\xc2\x25\xaf\xe7\xff\x86\xd6\xc1\xce\xd9\xc7\x9b\x97\x9f\x75\xae\x3d\xea\x3c\xb5\x01\x51\xfc\xa1\x64\x71\x35\x21\x88\xba\x58\x42\xab\x3c\xc4\xa0\xec\x2e\xa1\x64\x66\xfe\x1c\x42\x84\x97\x51\xdb\x09\xf2\x4b\x0b\xee\xc3\xc0\x3f\x73\x99\xd5\x67\x01\x6f\x80\xc0\x18\x0f\x7a\x3e\x47\x78\x7f\xbe\xf2\x7d\x4a\x2d\xa5\x9c\x24\x6e\xd2\x2c\x93\x9c\x4e\x4f\x64\xde\x33\xc0\xd4\x85\x3f\xe8\x0b\x64\xce\xa4\xe0\xc6\x8f\x63\x3c\xa8\x0a\x80\x5f\x54\x41\xfc\x4e\x78\x81\x1a\x0a\xbd\x36\x44\x59\x2e\x50\x48\x89\xd9\xb1\xc2\x79\xee\xc8\x9a\x08\x07\x15\x89\x5f\xbd\xeb\x78\x9f\x9c\x84\x33\xcc\x94\x9e\x55\x4c\x6e\xea\x75\xa8\xf1\x83\xf3\xea\x67\xa1\xcc\xd3\xea\x3a\x27\x26\xd1\x11\x6b\x6a\x85\xc2\xe0\x8d\x51\x7a\xfd\xfb\x67\x9d\x25\x34\x52\xf6\x4e\x4c\x98\x58\x28\xcc\x40\x0f\x5b\x30\xff\x6a\x6e\x6f\x80\xc2\x0b\x51\x08\x9b\x82\x68\x6b\x06\xe5\xc1\x00\x50\x19\x10\x2a\x49\x09\x00\xe6\x50\x2a\x1f\x2b\x97\x9a\x85\x0a\xa5\xf8\x4e\xa3\x12\x0d\xf6\x35\x1b\x2c\xf0\x0b\x72\x7a\xc8\x04\x5d\x0d\xec\xc7\xab\x48\x5b\x29\xeb\x27\x81\x90\x81\x90\x70\x18\x72\x8b\x38\xb5\x63\xe4\x61\x62\x41\x10\xb9\x88\x92\x91\x04\x3a\x28\xdd\xe1\x73\xcc\xc4\xd0\x2b\x90\x0f\x6e\x2d\xa1\xbd\x91\x5c\x1f\x1b\x53\xb4\xa7\x8c\x38\xa7\xbc\xe0\xf6\xbf\x7d\xe8\xd0\x47\x47\x8c\xdb\x21\x9c\x2a\xcd\x6a\x09\x06\xde\x97\x0d\xee\xb5\x24\x38\x42\x16\xdd\x67\x56\xd9\x44\x5b\x52\x0c\x9c\x74\xb5\xba\x3c\x55\xa4\x24\x65\xb3\x61\xf7\xc0\xe4\x8a\x95\x66\x89\x5e\x4e\x02\xd6\x85\xc2\xf5\x1e\xe1\xde\x7b\xb4\x4d\x92\xf0\xca\x4b\xc0\xa7\x91\x61\x9c\x91\x8b\x55\x6f\xa8\xe4\x07\x82\xd3\xff\x20\xd1\x73\x40\x72\x32\xc6\x97\x73\x8a\x7c\xac\x1a\x6b\x7f\x1d\x14\x77\x47\x42\x24\x9c\x10\xc4\xaf\x12\x5a\x2a\x0b\x83\x7c\x42\xf3\x59\xb1\x55\xa7\xaf\x65\x77\x5a\xa7\xbc\x75\x69\xbd\xf2\xd9\x06\x53\xe5\x80\x66\x64\x01\x41\xa3\x3c\xd2\x6b\x31\xa8\xb3\xd7\xb9\x33\xfb\xa4\x3b\x1a\x86\x35\xab\x07\x77\xf0\xe6\xaa\x9f\x99\xac\x71\x7a\x4c\x59\x22\x52\xb5\x08\x51\x01\x90\x1d\x29\x14\x59\xac\xde\x32\xa9\x78\xcf\xc7\xb8\x47\x60\xcf\x28\xda\xe4\x0e\x61\x8b\x62\x2a\x1b\xb4\xaa\x8f\x14\x8e\x82\x68\xae\x98\x3e\x67\x06\x49\x83\xc6\x9e\xed\x09\xaf\x32\xed\x11\x04\xcc\xdd\x36\x04\xa9\x14\x23\x3d\x06\xea\xba\xe9\x26\xdd\x73\x75\x45\x0c\x9b\xb1\x49\xd7\xba\x00\xa7\x64\xcf\x6c\xac\xe3\xab\x52\x1d\xa2\x95\xd5\x38\x19\xf5\xe4\x03\xe9\x15\xba\xa7\xc1\x32\xcd\xa5\x43\x4e\x02\xcc\x36\x8b\x19\x9a\xc0\x34\x47\x65\x4a\x46\x93\xe7\xe4\xbf\xfe\xe3\x42\x3a\x15\x0d\xe6\x40\x39\x7f\x8b\xce\x57\xc9\xd7\x93\xe8\x51\xbc\x8c\xd5\x44\x2e\xf7\xf2\xed\x77\x86\x81\xe8\x1a\x65\x41\x49\x09\x4c\x41\x1a\x5a\x49\x6c\xe2\xa3\x4c\xc9\x55\x7c\xb6\x72\x96\xa2\xf9\xf5\xd3\xbf\xb2\xf4\xa2\x3c\x76\xc5\x99\x7a\xfd\xf2\x33\x8c\x76\x20\x3f\x75\x2f\x95\x53\xe7\xf6\x45\xcc\x06\xe3\xbc\x67\x62\x1e\x4a\x51\x3e\x8a\x73\x56\x46\x67\x1b\xf2\x0c\x43\x76\xc3\xc4\xbe\x23\xc8\xa0\xc3\xce\x78\x7d\x7d\x52\xaf\x70\x4e\xe0\xc3\x1f\xf5\x1f\xf1\x8d\x85\xad\x19\xca\x2f\xec\xbc\xdb\xb0\x71\xff\xc9\xfa\x4f\x8f\x54\x86\xcf\x5b\x92\x77\xa0\xb5\x94\xf2\x30\x9d\xe5\xe6\xa5\x50\x63\xbc\xa9\xd0\x02\x96\x15\xcc\x68\xa1\x57\x96\xc0\x98\x8b\x45\xb4\x17\x80\x3d\x6a\x26\x35\x01\xa9\xd1\x53\x0f\xa0\x93\x02\x8a\xf1\x19\x3d\x3c\x78\x02\xf1\xcf\xe9\xa5\x0a\x64\x0f\x41\x6d\x04\x45\x40\x5b\xa9\x03\x3e\xa4\x3e\x65\xad\xd0\x26\x8a\x94\x1a\x71\x0d\xa5\x0c\x4c\x4b\x4a\x7f\xa4\xd4\x61\x45\x31\xce\xbd\xcf\xff\xa6\xd4\xa8\x71\x4a\xce\x9c\xa4\xe6\x4c\xa9\x31\x10\x95\xc6\x72\xef\xc0\xff\x52\xb4\x06\x79\x29\xd0\x53\x1d\x30\x07\x24\x7e\xdb\x38\xb5\xb0\xf6\xdb\x79\x3b\x13\x92\x7a\xe2\x26\x2d\x13\x92\x4a\xd8\x68\x45\xaa\x2d\x79\xce\xd3\xbc\xbd\x45\xe0\x43\x02\xb5\x9f\x95\xb8\x60\x87\xd5\x59\x63\x59\xb2\x33\x3f\x48\xf4\x05\xfa\x61\xb3\x87\x7b\xef\xb8\x2c\x7f\xc2\x74\x35\x22\xe2\x2b\xbf\x82\x62\xfa\x99\xf1\x12\x57\xdb\xb9\x2a\xec\xd4\xca\x34\xea\x27\x62\xa4\x77\x03\x53\x91\xf1\xde\xba\xb7\x7e\xfb\x99\x9f\x1c\xc6\xab\x06\x98\xb8\xff\x6c\xfd\xf2\x6f\x56\x82\x8f\x45\xeb\x99\x37\x35\xa4\xb4\x27\x81\xd2\xa7\x65\x32\xc6\x08\xce\x54\x14\x6d\xa2\x66\x46\x48\x2d\xb9\x0e\x26\x35\x47\x39\xe6\xa5\x71\xce\x1e\x5a\x42\xa7\xb3\xf8\xae\x04\xde\xe1\x7b\x04\x37\x38\x8d\x36\xaa\x2c\x1e\xff\xa2\x07\xdb\x36\x9e\xac\x6e\x2c\x3c\x34\xde\x24\x2e\xab\x15\x96\x85\xb9\xd3\xc9\x30\x8d\xac\x4e\x6c\xd4\x09\x8e\x27\xe7\x85\x1b\x62\xef\xc5\x49\xd2\x33\x1b\x17\x1e\x51\x36\x91\x69\xed\x9e\xa7\xe2\xec\xe5\x55\xa8\x97\xff\xff\xfe\x8f\x0e\xe9\x44\x63\x7b\xa4\xeb\xaf\xf6\x8e\x8e\x8e\xee\x45\x76\xb3\xb7\x59\xaf\x84\x55\xfc\x58\x92\xb1\xec\xc1\x37\xbc\xde\xd2\xe9\x1d\xde\xdc\x07\xbf\x5e\xa1\x33\x47\x14\xe0\x5e\x44\xaa\xd8\xf2\x22\x5d\xa9\x70\x80\x1b\x8e\xb3\xe7\x73\xa1\xc2\x96\x7c\x9e\x9c\xe5\x82\xeb\x12\x8d\xb0\x0c\x7e\x2f\x2e\x23\x8d\xaf\x2d\xe2\x20\xbd\x28\xa7\x1a\x87\x68\x02\xcb\xc9\xc6\xd8\x08\xc2\x62\x1d\x06\xbd\x3e\x7f\xa9\xb3\x7c\xd2\xfe\x5e\x29\x14\x8f\x9a\x7c\x40\x9f\xc8\x1f\x89\x1a\x65\xe8\x91\x86\xf6\x01\xfc\xe1\x0d\x86\x6b\xf0\x9d\xea\x7e\xfc\xbf\x55\x86\x37\x43\x3a\xa4\xe9\xbe\x7f\x6c\xe3\x79\x85\x9b\x0b\x93\x27\xd9\xac\x45\x54\xd7\x07\x92\xf1\x2d\x11\x35\xed\x42\x27\x47\xdd\xa8\x5a\x19\xcb\x31\x51\xe0\x6f\x75\x67\xe2\x91\x2e\x3d\xb5\xec\x35\xa7\x7c\xe4\x46\x2b\xca\x7d\x10\x60\x50\x82\x56\xc9\x4c\x89\x56\xcb\xfa\x12\x30\x38\xdb\x4f\xee\xc3\xb0\x11\x8c\xa0\x18\x8f\xbf\x82\xd1\x61\x50\x1c\x18\x5a\x4a\x0b\xdb\x9a\x9b\x51\xca\x78\x7b\x87\x6e\xda\xf6\xa0\x4f\x7a\xa3\x30\xa4\xec\x9d\xa9\x58\xc8\x1d\x86\xff\xa5\xe3\x47\x1f\x29\xf8\x0b\x0f\xdc\x82\xa5\x53\xd8\xfc\x82\x5e\x13\xc8\x25\x9e\x0b\xf0\x2a\xf8\xf1\x56\x59\x8b\x37\xd3\x59\xbd\x40\x57\x92\x94\x19\x94\xa3\x08\x91\x59\xa7\x33\x94\xcd\x13\x67\x3d\x36\xe1\x71\x32\x62\x63\x09\x41\x5b\x4b\x22\xdb\x13\xb1\x85\x7d\x7a\xd2\x68\x1a\xf3\x94\x9a\x4e\xaf\x96\xf0\xaa\x94\xa6\xb9\x8c\x8e\x44\x37\x4c\x11\x7b\x13\x26\x1c\x76\xa6\xca\x8b\x98\x84\x59\xf7\x74\x50\x3e\x71\xc4\x05\x4a\x10\xb9\xe0\xaa\x58\x34\x2e\x09\x8f\xd1\x47\x40\x72\xef\x23\xe2\x78\x8f\x9a\x53\xc0\xcb\x5b\x81\xa5\x12\x31\x70\x5b\x3d\x9b\x93\x08\xb5\xe1\xec\xf4\x8e\x8e\xb6\x98\x96\x8e\xc5\x63\x0c\xc9\x30\xe7\x44\x95\xd4\x17\x46\x7d\xfe\x02\xba\x71\x95\xfc\x31\x5b\x92\x17\x4c\x1e\xf0\xb6\xd0\x5d\xab\x44\x63\x9c\xf8\x84\x90\xc6\x49\x58\x6e\xeb\xcc\x79\x36\x42\x4c\xe5\xdc\xdb\xa5\x52\x70\x80\x7e\x06\xff\x2b\xb4\xf7\x02\x45\x36\x18\x98\x68\x86\x42\xbf\x16\x34\xf7\x03\x08\x34\x0c\x54\xd1\xb4\x42\x2d\xa1\x86\x63\x4e\xb2\x2f\x62\x52\x46\xa8\x4f\xfc\xfd\xfc\xaf\x55\xc9\x4d\x00\x72\x40\x83\xd7\x3e\x5a\x5a\xea\x95\xcb\x06\xa7\xa5\xc9\xff\x61\xb5\xe4\xd0\x35\x34\x5f\xd0\xfb\xc3\x08\x40\x5d\xc5\x53\x80\x83\x0b\xc6\x4f\xe3\x81\x29\xab\xcc\x2c\xbd\x0b\x07\x46\x44\x96\xdc\x6d\x4d\xd8\xd7\x38\x52\x31\x9e\x52\x3f\xa9\x77\x94\xec\x89\x19\xd5\xc3\xbe\x6f\xd0\xc6\x29\xbc\xb5\xf1\x0c\x28\xdb\x52\x3d\xd2\x06\xa2\xf0\x61\x21\x76\xeb\xfb\x88\x52\x79\x70\xb0\x6f\xa0\x1e\x8d\xc6\x98\xb7\x02\xdf\x80\xcc\x99\x87\x2b\x95\x6c\x20\xd5\xd0\xdd\x02\x48\x62\xe3\xee\x82\x7c\xe0\x1b\x5c\x2f\xd2\x80\x4a\xe8\xd6\xdb\x7d\x3f\x0e\x1f\x4f\x9d\x3a\x69\xc2\x1b\x5a\xcb\x2a\x91\x42\x52\x2d\x27\x18\xf1\x70\x34\x9a\xc7\xbf\x28\x39\x47\x2c\x00\xc4\xa3\x07\xc4\x24\x92\x99\x55\x5d\xac\xc1\x4b\xd1\x39\xf1\xb8\x7b\xed\xb4\x3a\x1e\x77\x97\x82\xce\xf8\x74\x52\xa9\x50\x51\xa4\xc8\x15\x4d\x54\x2f\x08\x50\x7e\x3b\xe6\x20\xc6\xe4\x09\xe2\x58\x90\xa8\xc4\xfc\xd2\xc0\x01\xf8\xe7\xa0\x97\x71\x85\x5f\x60\x1e\xef\x7c\x70\x48\x7e\x51\xb4\x87\xa4\x56\xb4\xb3\xdd\x2d\xa9\x19\xe9\xc0\x92\xbe\x8c\x00\x13\x55\xcc\xa1\x45\xf4\x77\xce\x8d\x1e\x4a\x54\x2d\xd5\x0b\x83\x8d\x9c\x44\x1c\x21\x37\x36\xe1\x2b\xe8\x47\xaa\xa0\x10\x53\x7a\x90\x0e\x02\x70\x4c\xeb\xb8\x74\x9a\xae\x80\xd4\x67\xc7\x6f\x4c\x7d\x2c\xa0\x0e\x9a\xf2\x64\x20\xe8\x7b\x9b\x97\xcf\xf2\x5b\x01\x4f\x2d\x3c\x5a\xf8\x4d\x8b\xb0\xe9\x63\xd2\xcc\xcb\xab\xfd\x42\x9f\x81\xf5\x7e\xbf\xaa\x08\x22\x88\x4a\x0d\x84\x91\x41\x12\x19\xae\xca\x48\x32\xf6\xb2\xe1\xba\x6d\x45\x6e\x30\xc1\x52\x04\x46\x87\xf0\xea\x1c\xc7\xa8\x9a\x18\x0b\xa3\xd4\xd1\xbe\x56\xeb\x97\x9f\x39\x8e\x65\x9c\xf2\xde\x59\x53\xed\x05\x68\xbf\xa7\x28\xa7\xe3\x14\x1d\x1c\xaa\x81\x12\xa6\x91\x4b\xe6\x47\x4a\xde\xd9\x78\xb0\x50\x3f\x5a\x8a\x46\xab\x72\x3c\x7a\x29\x8f\x14\x8c\xd1\x3a\x5e\xc2\x75\xaf\x3e\xdd\x78\xbe\x4a\x42\xa6\xb5\xf6\xfc\x3a\xa9\x2c\xbc\xbc\xf8\x96\xec\xdd\x89\x81\x48\xa8\x81\x00\x99\x1c\x0e\x54\x2b\x54\x15\x50\x58\x25\x35\xed\x05\x77\xba\xf6\xf4\xe1\x7f\x8f\xdf\x4d\x23\x3b\x3f\xab\x97\x85\x13\xb9\xa3\x42\xb5\x7b\x89\xa3\x0c\x53\x01\x24\xc3\xeb\x17\x54\x32\xd5\xe5\xcd\xef\xae\xa7\x3e\xe9\xab\xd8\x8f\xb2\x19\x3e\xbc\x44\x17\x72\x69\x6b\x46\x06\xed\x78\xd8\x59\x2d\x54\xb4\x69\x99\x2d\x2a\xc5\x07\x16\x79\xa7\xad\x3d\x9d\x26\x9c\x9c\xe5\x47\xcb\x80\x98\xdc\x1d\x93\x37\x3b\xce\x05\xe9\x6d\x24\x45\xcf\x79\x39\x10\x55\x46\x67\xc9\xbf\x20\x34\xce\x96\x00\xbe\xde\x73\x67\x3f\xe3\x66\x86\x57\x99\x8a\x3e\x8b\xea\x43\x9f\x5b\x2f\x27\xc8\xc2\xea\x57\x13\xec\x22\x2f\x9b\x82\x36\xc7\x5a\x79\x14\x66\x37\xee\x5e\xa1\xc8\x81\xe3\xa4\x06\x1d\xb7\x72\x13\x88\xaa\x80\xb9\xc6\xa5\xa5\xfd\x7a\x5f\x2d\xca\x8b\x7b\x7e\xce\x92\x56\x41\x87\x62\xe7\x85\x1c\xe6\xfb\xa1\x78\xa1\xea\xb1\x32\xde\x1c\x44\x23\x21\xde\x34\x6f\x2c\x3c\xe2\x0c\xfa\xdd\xe9\xab\x9d\xe7\x27\xf8\xfd\x86\xd8\x3c\x8d\x80\x19\x6e\x47\xe9\x19\x39\x34\x28\xc7\x39\x3b\x89\xb9\x2a\xeb\x9d\x43\xda\x0a\xde\x44\xd8\x36\x7b\x55\x89\xf2\xcd\x3c\x10\x57\x4e\xea\x81\xf4\xd7\x1a\xe4\x7b\x7a\x4d\x85\xe7\xb5\xd5\x2b\x1b\xf7\x1f\xe3\xf5\x02\x68\x23\x68\xcb\x3d\xaf\x0d\x33\xd4\xe3\x0b\xc9\x3d\x64\xbf\x02\x41\x87\x21\x05\xb7\xce\xf9\x6f\x5a\x60\x67\xfe\xee\xd0\x99\xfe\x31\x65\x98\x64\x43\x57\x99\x86\x94\xc3\xec\x32\x69\xb2\x04\x02\x2f\xea\xca\x71\xec\x65\x2a\xb3\xc1\xa8\x20\xe0\x05\xb9\xe9\x46\x46\x22\x1e\xb2\x04\x26\x35\xf8\x5f\xd3\xda\x9f\x11\xf3\x6f\x3d\xf7\xf1\xcf\x86\xfa\xff\x4f\x3c\x33\x7a\x24\x60\xb6\x2d\xab\x29\x99\x98\x75\x71\xcf\x94\xcc\xff\x84\xb3\x84\x5b\x53\x0b\x87\x7a\xf7\x6e\x23\x41\xad\xef\x78\x01\x64\xfe\x3f\xf1\xbb\xb0\xaf\xbe\x53\x6e\x05\xbd\xdc\xba\x1f\x39\x17\xe5\xfc\x5e\xb9\x34\xb1\x34\x0c\xe6\x1d\x8e\x58\x9b\xbc\xfd\x34\x8c\x27\xcb\x35\x41\x27\xf5\xb1\x1f\x20\xc8\xae\xae\x9e\x6d\x34\x49\x7d\xdc\x66\xff\x64\x16\x1f\x7e\x72\x34\xfd\x9a\x30\x3b\x9b\x8f\x3f\x38\x64\x46\xf2\x84\xb5\xe6\xd4\x19\xf3\xd0\x7c\xcb\x7b\x78\x21\x31\x01\xdb\x2e\x9d\x9e\xb9\x27\xed\x82\xcc\x85\xca\x87\x38\x8a\xfb\x81\xc1\x82\xfb\x62\xbe\xc5\x81\x6d\x81\x7b\xb1\xb3\xfc\x5c\xcc\x93\x8e\xf1\x86\x46\x35\x31\x6d\xcc\x2b\xe9\xe9\x57\x77\xee\x90\x63\x80\x8f\xf1\xa2\x9f\x18\xde\x2f\x37\x39\x5d\xfc\xcc\x3b\x56\x9e\x6e\xdd\x84\xaf\xe7\x53\x2a\x27\xea\xe8\x93\x54\x52\xc8\xbb\x80\xd2\x12\x1e\xa9\x32\x7d\x2f\x6a\x9f\x62\xaa\x10\xe8\xa4\x18\x62\xba\xc1\x2b\x37\x49\x3a\x52\xdf\x59\xed\xd4\x51\x1b\xea\x33\x88\x15\xf0\x95\x5f\xec\x30\x5f\xe5\x7c\xa5\x65\x23\xe1\x7c\x91\x4f\x56\x1e\xa5\x75\xf8\x59\x8f\x81\xa0\xbd\xc5\x7a\x88\xc0\x3c\x21\x96\xcc\xe5\x70\x25\xd1\x13\xbe\xaa\x6a\xf2\x38\xcb\x29\x2e\xe7\x78\x1f\x46\xef\xc8\xbb\x0f\xea\x93\x3b\x6c\xfe\x86\x02\x91\x64\x08\x14\x41\xb3\x33\x7b\x11\xa3\x0b\xac\x64\x62\x70\x22\xa5\x54\xcf\x3c\x11\x97\x93\xd7\xfc\xea\xad\xfc\x7b\x5e\x9a\x87\xad\x6e\x91\xb8\x53\x12\xbc\xd5\x20\x59\x22\x64\x69\x38\x63\x90\x76\xfd\xed\x8f\x12\x08\x1f\xe6\x3f\x31\x4e\x28\xff\xda\xba\x83\x9a\x55\x91\x21\x92\xdd\xc1\xcd\x7a\x36\x91\x31\x68\x7e\xe9\x5b\x06\x6d\xbf\xb2\x97\x31\x68\xbb\xfe\x1f\x40\xed\xa2\x3d\xb2\x7d\x72\x37\x06\x9c\x72\xf6\x0c\x65\xa0\xbc\x48\x59\x61\xd3\x1d\x1d\xb6\x87\x7c\x95\xfa\x23\x39\x16\x95\x0c\x24\x35\xfa\x99\x1b\x27\xe4\x01\xfe\xcc\xae\x59\x49\xa1\xc8\x75\xb6\xfb\x83\x1c\xee\xa9\x32\x52\x2f\x7a\x18\xb6\x1e\xda\x59\xd2\x6c\x93\x57\x84\x65\x2d\xdb\xe6\xa0\x1e\x9d\xf6\xb0\x60\x84\x60\x99\x7f\xe0\x32\x12\xae\xb5\xa5\x64\xc1\xd5\x54\x32\x3f\x94\x89\x7d\xb4\x9a\x03\x53\x91\x45\x89\xdf\x2d\xd3\xfc\x2b\x6d\x00\x96\x97\x45\xa2\x0b\xad\x24\x9b\xc7\xa9\xdc\x2e\xec\xba\xa9\x4b\x9d\x92\xc1\x34\xed\x00\x4b\x50\x88\xf7\xee\xd1\x32\x09\x8c\xb3\x12\xc0\x94\x92\x04\xe6\xa9\x9f\x23\x11\x4d\x4c\x20\x47\x9f\xe4\xa7\x08\xba\xe3\xf3\x69\x4f\x0d\x25\x27\xa1\x2f\x0f\xe4\xde\xd3\x1e\xd3\xcc\x36\xc2\xcd\x2c\x56\xb7\xa5\xdc\xae\xa9\xd4\x66\x9e\x9a\xa0\x5c\xaf\xd5\x5b\x6f\x04\x3e\x46\x12\x9c\x92\xed\x57\xbc\x7d\x1d\x66\xd9\x5a\x52\x96\x91\xde\x6c\x72\xfb\x23\xb6\x39\xe9\x9f\x32\xe2\xd4\xf5\x74\x18\x67\xd6\xd0\x99\xf9\x6d\x7f\xe8\x9a\x9f\x5a\xc9\x04\x97\xb6\x1e\xba\x4d\x99\x3e\x1f\x35\xf2\xd1\x78\xcb\x39\x08\x3d\xe6\x3f\x91\xf4\xf9\x5a\x52\xfc\x34\x6b\x7a\x9e\x9a\x9c\x39\x8c\xc4\xa6\x37\x16\xed\x5e\xcd\x12\xbb\x5f\x1c\xcc\xc8\x95\x99\xc9\xfc\xe5\x8f\xe9\xd3\x2b\x76\x0f\xd5\xa8\xca\x37\x03\x55\xc9\x7e\x64\x04\xbf\xd4\x7c\x93\xc9\xa4\x82\x69\x0f\xe6\xd1\xdf\x57\x68\xb7\x5f\xe2\xd7\xd3\xad\xe8\xc9\xb4\x07\xb7\x3e\xa3\xc5\xff\x7c\xe7\x0e\x7c\xbb\x75\x20\x2a\xd0\x1b\x1e\xe6\x4d\x56\x9d\x79\x8b\x5f\xf3\x8b\x8d\x67\x1b\xd9\x0c\xb4\x7e\x63\x9e\x3b\xda\xe2\x61\xab\x26\xe8\x51\xd5\x86\xbc\xa1\x24\x29\xe9\x24\xef\xe7\x90\xb6\xca\xd1\x5b\x3b\x13\x4b\xd4\xbf\x17\x19\x20\x6e\xa0\x39\xfc\x84\x1e\x10\x27\x61\x4d\xd8\xd3\x0c\x5f\x20\xae\x62\xc7\x39\x72\x69\x98\x26\x0d\x9a\xb3\x0b\x3d\xc2\x04\x44\xf5\x18\x9f\x44\x1e\x0a\x73\x7f\xc5\x3f\x25\x75\x37\x7d\xf8\xb0\x80\xbf\x1b\x51\x03\x64\xd0\x23\xf8\xff\x37\x82\xdd\xf4\x1c\x93\xc6\x09\x59\xe7\x61\xb1\x40\xf4\x5e\xff\xf9\xf1\xc6\xbd\x29\xbb\x4c\x7b\x05\xc7\xa2\x4f\x39\x0d\xc7\x60\x89\x47\xc8\xfe\xdf\x74\x47\x1d\x58\xc3\x5c\x25\xde\xcb\x05\x9c\x39\xe9\xd7\xd4\xde\xf3\xe8\xf9\x95\xe3\x8c\xcd\xfa\x1a\xc2\xbc\xba\xb4\x4c\x6f\xed\x97\xf8\xad\x7d\xb5\x50\x7b\xac\x8f\xbc\x48\xf6\x17\x9d\xb4\x7e\x8f\xd3\xd6\x59\x36\xa7\x68\xe2\x2e\x25\x88\xc3\x07\x7b\xdc\xef\xf2\xb8\x98\xfd\x71\xe3\xd6\x4c\x67\xfa\x82\x5b\xcd\x1c\x30\xce\x30\x28\xdc\xd9\xad\xf9\x44\x71\x90\x29\xf7\x7b\xaf\x8c\xe1\xee\x2c\xcc\xd3\x66\xee\x77\xc9\xef\x98\x98\xb2\xd8\x1c\xdd\xef\x0f\xc9\x32\x8e\x37\xa6\x9d\x13\x93\x76\x91\x28\x6d\x6e\xed\x94\xa8\x3b\xb7\x82\x84\x5e\xfb\x03\x35\x77\xcb\x80\xc7\x65\xb7\x54\x58\x8f\x8f\x47\x49\x8d\x77\x4a\x34\xbb\xb4\xb6\xdd\x5f\x56\x30\x0f\xba\x75\x49\x13\x18\x0b\x59\x66\x98\x44\x0a\x69\xb3\x69\x48\x99\x0b\xb4\x9b\x55\x5a\xcd\x78\xb4\x4c\xef\xf6\xe2\x60\x6e\x33\xa1\xa4\x57\xac\x37\x41\x45\x5a\xba\x41\xf6\x67\x53\x8e\x21\x70\xd5\xbc\x64\x61\x8f\x28\x71\xa5\x9b\xd0\xfd\xb4\x97\x6e\x3d\xf8\x08\x1f\xd9\x0e\xac\x97\xdb\x39\xd4\xb1\x17\x48\xcb\x98\xd4\x0b\xb4\xb6\x29\x9a\x3e\x12\x02\x8c\xe7\x9a\x60\x7a\x15\x99\xa8\x5c\xf5\xdf\x79\x8f\x73\x68\xcf\xf7\x9d\xee\x52\x72\x29\x6b\xd1\x5b\xe7\x31\xde\x06\x70\xeb\x69\x27\x23\xb8\xa7\x74\x98\x4c\x7c\xbc\xb5\x68\x96\xe8\x9f\xcc\xdf\x98\x8e\xad\x7c\x2c\xc9\xed\x53\xf2\x6f\x73\x8e\x4c\x24\x8b\x8b\x76\xba\xe9\x9e\x60\xb3\x7c\xec\xb7\x00\xbf\x2d\x59\xd3\xf4\x3c\x54\x6e\xe4\x87\x8a\x7c\xe4\x27\x7b\x9a\x6f\xf3\x8b\x26\xc2\x6a\x9f\x12\x73\x7a\x60\x5f\xc5\x90\xd1\xec\x46\xe2\xca\x2c\xbd\x83\xd4\x35\x4a\x9e\xf0\x7a\x02\x76\xd7\x41\x6a\xdf\xd6\x83\x7a\x29\x93\xab\x87\xf1\x58\xb5\x88\xa6\x66\x7c\xb8\x86\x5c\x2d\x5e\xea\x83\xbf\xf6\x05\x9c\x11\xaf\xfc\xb7\x90\x1c\x12\xd0\xd0\xec\x5d\x32\x9f\x3c\x6b\xbd\x23\x20\xd3\xfa\x7d\x75\x6a\xe3\xe1\xdd\xce\xd7\x67\x7e\x5f\xbd\x42\x4e\xe3\xe4\xfe\x81\xef\x4b\xdc\xbe\x88\x82\x09\x68\x0d\xf2\xbe\x04\x36\xf8\x7d\xf5\x74\xef\xb1\xa4\x62\xc3\x7a\x4c\xc5\x2c\x24\xcb\xcc\xdd\xd9\xab\x74\x53\x93\x4c\x38\x95\xda\x8b\xe5\x62\x94\x46\x43\x62\x81\xb5\x99\xb0\xb5\xf1\x4e\x9e\xb5\x73\xad\xc3\xc4\xbd\xc7\xf0\x44\xc7\x54\x29\x5f\xdd\xf7\xbe\x6e\x90\x0c\x77\x56\x5f\x2f\x64\x63\xc2\x1e\x63\x0f\x7a\x4f\x8e\x15\x85\x5e\x19\xab\x21\x77\x33\xe8\xb4\x64\x1e\x96\x58\x41\xe9\x6d\xa1\x73\x0c\xb9\xc9\x29\xf7\x7d\x96\xd7\x97\xd6\xef\xad\x76\x26\xcf\xf2\xd3\x4c\x0e\x33\x6d\xd6\xd1\x87\x22\x3f\x14\xd5\xa3\x26\x28\xda\xa1\x79\x4f\xed\x3d\xf5\x29\xad\x3e\x68\xd0\x20\x48\xe7\x9b\x94\x69\xd1\x7a\x82\x8d\x1d\x50\x17\xf8\x5a\x68\xf3\xd4\xac\xdd\x96\x44\x32\xd5\x12\x2f\x4a\x8a\x74\xcf\x96\x96\x77\xec\x86\x86\x44\xc7\xd3\x94\x27\xa3\x09\x8c\x68\xa0\x51\x80\xf1\x95\x72\x9b\x27\xce\xd2\xd3\xad\x17\xbc\xc6\xde\x00\x6a\x11\x65\x85\xce\x57\x60\x61\x9a\xb5\x3c\xe2\x09\xd7\xe5\x3b\xf5\x24\xdb\x0b\xf6\x2e\xe9\x5c\xbd\xde\xbd\xf0\x28\xa5\x3f\x35\x66\xdd\x52\xba\x81\x19\xc0\xf0\x33\x9b\x61\x82\x20\xbf\x09\xa6\xbe\xf9\xf6\x79\xb2\x89\xc2\xef\x70\x58\xa8\x25\xb1\xfb\x0d\x87\xf5\xa7\x62\x97\x5a\x6c\x89\x18\x81\x10\x64\xa1\xc8\x86\x52\x2e\xa9\x34\xfc\xf4\xf2\x13\xb9\x84\xfc\x41\x08\xe4\x94\x95\xe3\xf1\xaa\x34\x8f\x09\x00\x59\xad\xe5\xca\x19\x55\x98\x44\x1b\xf4\x5c\x24\x14\x26\x5e\xde\xf4\x60\x45\x03\xff\x11\x16\x31\xfb\xa8\x81\x81\x96\xb1\x8b\xc4\xf6\xe7\x39\x55\xb3\xdd\x68\x20\x8a\x1a\xa0\x06\x43\x4b\x10\xd3\xc9\xd5\x97\x73\x89\x5e\x54\x72\x19\x4b\x82\xf7\x45\x5e\x13\xe6\x81\xbb\x37\x75\x55\x18\xc8\x56\xcb\x62\x41\xc9\xc4\xeb\x08\x66\xd8\x86\x41\xd5\x9b\xc5\x46\x13\x98\x8d\x8c\xec\x60\x3f\xe6\xe5\xee\xce\x4f\x6f\x8e\xdf\xa4\x30\x87\xa5\xd4\x71\x24\x5a\x67\x8d\xc5\x83\xe7\xc0\x28\x16\x8a\xc3\x61\xca\x10\xf6\xe3\xf7\x6d\x8c\x21\xd1\x5e\x0f\x02\x46\x00\xe3\x30\x83\xf0\x20\x3a\x9b\x98\x5e\x77\xc5\x2b\xc4\x81\x66\xf1\x68\xd8\xc0\x68\xe3\xe1\x3c\xb9\x02\x19\x78\xed\xc9\x59\x4b\xe9\x25\x35\x0c\x57\x70\x11\xfd\xb5\xae\x9f\xcb\x48\x76\x78\x23\x95\x22\xe1\x94\x1f\x09\x1b\x05\x72\x20\xd3\xf0\xdf\xdb\x4f\x8e\x97\x2f\x2c\xef\xfb\x8b\x9d\xe7\x73\x8e\x64\x8c\xa9\x46\xf2\xa2\x30\x0a\xe7\x40\x39\x59\xc3\x60\x83\xb2\xad\x43\xfe\xa1\x71\x61\x3a\x3d\x16\x41\x8a\x63\x20\x12\x63\x66\x3d\x60\x27\xc8\xb7\xf7\x93\x19\x83\x6e\x74\x91\xbc\x17\xed\x56\xa4\x26\x43\x2b\x3a\x23\x40\xe8\x87\x26\x50\x5f\xbd\xdf\x9a\x3c\x1f\x98\x67\xab\x06\xef\xed\xc7\x67\x27\x2e\x4f\x74\x5a\xd7\xba\x0f\xbf\x4f\x65\xcd\xba\x41\x0d\xf3\xad\x6c\xa7\x85\x1a\x12\x37\x58\xbf\xfa\x13\xbb\xf1\xba\x2d\xbd\x15\x61\x6e\xfa\xde\x7e\x16\xd2\x14\x1b\x15\xab\x06\x87\xf0\xc9\x83\x4d\x40\xcd\xe4\x04\x6b\x22\xf8\xd8\xde\x45\x77\x6e\xec\x10\xcb\x8d\xe8\xe5\x59\xb9\xd3\x84\xd3\x76\xe3\xee\x6c\x52\x84\x57\xfe\x15\xd2\x02\x95\x28\xa5\x3b\xf1\x27\x25\xbf\x97\x7c\x87\xf0\xce\xcc\x45\x5d\x87\x92\xce\xa9\xfc\xf6\x37\xf8\x89\xe3\x98\x6f\xc8\x52\xc4\x55\x55\x28\x7e\xec\x39\x65\x01\xf2\xd8\x1e\x57\x22\xdf\xfc\x7a\x38\x84\x96\x28\x8e\x09\x1f\x1c\xcb\xf5\xc3\xc7\xe0\x63\xfa\x28\xf1\xce\x87\xb0\x40\xac\x36\xc1\x91\x28\xc0\x30\x06\x1b\x0f\xb6\x27\xab\xe0\x64\x1b\x59\x44\xfa\x14\x08\xc7\x03\x4f\x26\x4d\x6a\x1a\xfb\x73\xbe\xed\x58\x8d\x82\x7e\xfa\xaa\x2a\x52\x1a\x7e\x27\x03\xbf\x03\xa2\x12\x0d\x95\x45\x7d\xf5\xc0\x7c\x88\x25\xc1\x21\x0a\xc6\xe0\x06\xfa\x69\x57\xb9\x01\xfa\x10\xaf\xec\x82\x72\x83\xf3\x85\xa3\x17\x40\x1d\x1f\x92\xac\x06\xcd\xaa\x64\x73\xd2\x33\xc8\x7a\x49\x3a\xe5\x41\x33\xff\x31\xea\x9e\x1e\x0c\x06\x3f\x99\xef\xf6\x80\xac\xe6\x60\xae\x1c\xe7\x3d\xaa\x72\x1f\x2f\xf3\x35\xcf\x54\xba\x40\x20\x4c\x76\xe9\xef\xe4\xd0\xdb\xc6\xd6\xbd\x9a\x6b\xfe\xbd\xad\x97\x00\xbd\x5b\x30\x8e\x2a\xcf\x81\x54\xd9\xc0\x82\x44\x34\x9e\xf1\x46\xa4\x1b\xdc\xf4\x0e\xfc\xa7\xbe\x5d\xd0\x92\x45\x3e\x81\x71\xeb\x95\x67\x82\x92\xea\x44\xd1\xe3\xc5\x76\xde\x3a\x8d\x32\x88\xee\xd1\x68\x55\x65\xaf\x77\xaa\xab\xd7\x16\x92\x7a\x9d\xba\x44\x41\xd3\xb6\x2f\xe1\x2b\x55\x55\xa2\xb0\x18\x08\x63\x58\xa5\xd2\x70\x1f\x2c\x30\x34\xc2\xc3\xc1\x4c\x1a\xe8\xa9\x96\xd4\xef\x09\xe8\x4d\xe3\xcb\xe0\x98\xe7\xe7\xf5\x98\x54\x05\x64\xf0\x7c\x59\xad\x3d\x46\xed\x3c\x17\x6a\x10\xc9\x1b\x21\x0b\xa3\xb6\x4f\xf7\xdb\xc2\x15\xb6\x76\xe8\xc6\xd7\xf3\xfb\x28\x98\xda\x66\xc8\x7a\xe0\x09\x6e\x4c\xf5\x1d\xd6\x4a\x5f\x12\x0e\x75\xf4\x35\xdd\x9f\x4e\xcc\xd6\xc4\x4f\xfd\x73\xc0\x5f\xa2\x44\xff\xdc\x34\xeb\xb9\x27\x6f\x68\xfc\xa9\x97\xcf\x05\xd7\xa0\x77\x22\xe0\xc4\xfa\x94\xff\x55\x9f\xf1\x89\x88\x98\xde\x88\xd0\x9f\xbc\x87\x03\xd8\xc6\x2e\xcc\xcf\x99\x8a\xc7\xfe\x0e\x52\x59\x70\x18\xcb\x54\x23\x4c\x21\x86\xc1\x1a\xc8\xc6\x15\x97\x95\x12\x7b\x12\xfc\xc9\xcf\x37\xcd\x5f\xf9\xf9\xf7\x52\xee\x5d\xfe\x57\x7d\x56\x3e\x92\x9f\xa8\x54\xc6\xd6\x28\x09\x90\x37\xba\x23\xf0\xcd\xa9\x94\xc6\xc1\x99\x77\x73\xa5\xd4\x08\x17\x2e\x1a\x8e\xd0\xdf\x74\xf2\xaa\x7a\x3e\x81\xbf\xd6\x30\x23\xb4\x8e\xc3\x55\x5f\xc9\x46\x58\xaa\xe6\xde\x81\x7f\x83\x03\x87\x9c\xcf\xfa\xa5\x71\x2a\x34\x6f\x8c\xa7\x54\x51\x27\xc8\xa7\x85\x3a\xe6\xa9\x7e\x83\xf3\x87\xa8\x52\xcc\x8a\x81\x41\xda\xf4\x68\x74\x50\xab\xe0\x91\x82\x2f\xe4\x50\xe0\x04\x9c\xc1\x94\x28\xae\x10\x0c\x97\x87\x86\x29\x7b\x06\x70\xb6\x21\x8e\xb9\x90\x27\xfd\x05\xa7\x28\xb5\x50\xee\x4b\x3c\x8e\x83\x7e\x7a\x18\x21\x78\x87\xf2\x60\x5a\x35\x60\x36\x54\x6e\x66\x53\x68\x34\xea\xe5\x81\x26\x3a\xb1\x98\x65\xed\x3c\xbe\xde\x1d\x9f\x4f\x56\x89\x9b\x75\x5d\xeb\xe1\x5c\x56\x2d\x7a\x4c\xfa\x5d\xfd\xe8\xb3\x5b\x8d\xf3\x6d\xf2\x28\x38\xdb\xa6\x06\x40\x57\x8f\x52\x4e\x69\x75\xbd\x0a\x23\x78\x0e\xe5\xe3\x42\xee\x60\x1c\xbc\x5d\x0a\xfa\xdf\x56\x05\xf1\x48\xa3\xc6\xef\x1a\xf5\x1f\x3c\x72\x38\xe8\x41\x3e\x58\x93\x48\x80\x2a\x26\xe8\x00\x8b\x89\x16\xa4\xd8\x23\x08\xf1\xcf\x94\x08\x2a\xe0\x63\xfc\x1b\x56\x8a\x7e\x67\x54\xcb\x96\x20\x70\x79\x41\x93\x01\xbc\xe1\x4b\x59\x18\xde\xc4\x2d\xfa\x82\x83\xcd\x4a\xa3\x8c\xf9\xce\xe4\x4b\x10\x0f\x47\xcd\x4a\x09\xf3\xa4\xc4\x61\xad\x50\x27\xf1\x69\x60\x8c\x33\x08\x06\x2f\xed\x79\xa9\xcf\xdd\x73\xf9\x46\x25\xce\x1d\xf9\xb0\x3f\xe8\x5e\x99\xeb\xcc\xfe\x02\x02\x24\x9e\x73\xd7\x4e\xab\x48\x6a\xf6\xd6\x92\x49\x1f\x2d\xd7\xb0\x7e\x1e\x63\xe1\x50\xe2\x83\xdf\x01\xb6\xfd\x77\xfa\xad\xf7\x08\xde\xe7\x87\xf5\x63\xe5\xa2\x90\xca\xe1\xb7\x0f\xda\x69\x1e\xc8\x25\xd8\x19\x03\xe5\x3e\x54\xf2\x64\x6e\xe3\xd4\x42\x67\xfa\xc2\xfa\xe5\x95\xcd\x99\x1f\xb3\x07\x03\xb3\x16\x75\xfb\x89\x85\x78\x93\x54\xce\x17\xff\xd8\xc1\x43\x63\x5e\xcb\x3a\xfa\x81\xab\xad\x44\x1c\xcd\xec\x5c\xb9\xd5\xed\x66\xab\x28\xac\x3e\x97\xb5\x99\x83\xce\x05\xb3\x5d\x8f\x4f\x1b\x96\x70\xc9\x2d\x26\x2e\xae\xa1\x12\xb8\x45\x0c\xc6\x6d\xe0\x56\xcc\x33\xaf\x25\x77\x14\x0f\xb0\x49\x50\x97\x6c\x60\x9e\xcc\xf2\xf0\x03\x5f\x86\x22\xc9\x64\x0b\x24\x2a\xc7\xf9\x1e\xa0\xde\xac\xd8\x2f\x0b\xb8\x23\x19\xb8\x70\xb7\x16\x10\xf8\xb6\x58\x99\x2f\xf5\xdd\xb1\x63\xbe\xec\xce\x4f\xf3\x13\x46\x5c\xb7\x50\xab\xa9\xa0\x9a\xf4\x57\x35\x89\x92\xad\xca\xc7\xe8\x30\xcf\x7e\x58\x54\x1c\x7f\x9e\xaa\x7b\x69\xab\x29\xc5\x97\x67\x37\xe5\xd8\x6e\xa9\x9f\x7a\x6a\x49\x59\x34\x38\x88\x49\x42\x31\x41\xb5\x3c\x7f\x72\xc1\x3c\x88\xa4\xa2\xf6\x0d\xa4\x72\x4c\x1b\x10\x4d\xb0\x64\xb1\x04\x94\xa0\x1b\xf7\xaa\xb9\x60\x96\xab\x4c\x3b\xbb\x02\x6f\x43\x01\x51\x6f\x92\xf5\xad\x2e\xb7\x72\xd6\x55\xbf\x55\x81\x46\xa3\x2a\xf8\x83\x20\xf9\xa9\x1e\x45\x0d\xf5\x2c\x5a\xe2\xc6\x86\x87\x84\x3f\xbf\xa6\x4b\x6e\xb5\x96\x78\xc3\x5d\xcc\xf3\xbb\x43\xba\xfd\xe6\x77\x97\xf1\x8d\x77\x37\xc6\x2c\x0b\x04\xcc\xd8\x6f\xcf\x33\x0e\xb2\x00\x04\xfe\x20\x28\x15\xa5\x0a\xf9\xff\x55\x5d\x27\xce\x89\x92\x25\xaf\xe0\xe9\xa9\x62\x32\x60\xd9\x24\x84\x35\x15\x43\x8c\x57\xc8\xc2\x8a\x12\x18\x2c\x0d\x68\x7a\x4d\xb9\xbf\xf7\xa9\x16\x6a\xfb\x42\x96\x29\xf1\xa5\x1a\x53\xe2\xc8\x6a\xe6\xb3\x0c\x32\x65\x48\x71\x5c\xe1\x75\xed\xef\xff\x30\x48\x21\x2d\x53\xc3\xbc\xcc\x39\x3e\x83\x19\xf2\x87\xe0\x28\x6b\x8f\x9f\xe5\xc0\x7f\xba\xdf\x30\x6d\x64\x09\x1c\x14\xcb\x67\x0d\x06\xa3\x47\x77\xc5\x5f\x56\xca\x8d\xf0\xf5\x5d\x94\xcb\x66\x57\xa3\x5c\x1a\xd8\xf5\x8a\xb3\xcb\xcb\x14\x38\xe7\x6c\xf3\xf3\xa9\x08\xd3\x86\x0c\x54\xd3\x2b\x79\x71\x40\xcf\x6d\x5e\x5d\xe9\x3c\x3c\xa7\x85\x13\xed\x7a\x4e\xaf\xe6\xf2\x5b\x88\xfe\x2e\x52\x27\x98\x3e\xbb\xb2\x36\x0d\xc5\x78\xd6\x2d\x5b\x49\x1e\xe4\xa1\x46\x54\x55\x2d\x27\xaf\xd1\x1a\x3f\xd1\xf1\x9e\xee\x05\xa1\x1e\x38\x67\xff\x57\xaf\x01\x70\x44\x9b\x7e\x2c\x46\xfe\xff\x0d\x0c\xb5\xfb\xd8\xb4\x92\x33\x97\xad\xa4\x1c\x61\xc0\x9c\xe7\x9c\xe5\x55\xf2\x90\x1c\x25\xb4\x03\x95\x7d\x08\xa7\x0c\x84\xf0\x26\x66\x20\x8d\x30\xe5\x60\xe3\x21\x89\x42\x98\xcb\x7f\xc3\x54\xef\x61\xf1\x68\xee\x00\x7f\x0e\x0e\x96\xab\xe5\x91\xe6\x08\x06\x1e\x07\xfd\x98\x70\x77\x3f\x16\x27\x07\x5d\x03\xcd\xa6\x20\x7a\x42\xb0\x9f\x7f\x1a\x46\xca\x49\x10\x30\x5c\x32\x5f\xe1\xdb\x65\x15\x2a\xa9\xdf\x0c\xc3\xf5\xa7\xc9\x48\x2a\x61\xf4\x00\xf0\x92\x2a\x68\xf4\xc2\x31\x6c\x84\x73\x1b\x2a\x5f\xdd\x4d\x2e\x6f\x0d\x1b\x99\xf9\x8a\x79\x8d\x8c\x00\xab\xc4\x2f\x42\x9d\x92\x80\x40\xf9\xdb\x4a\xa5\x2f\x9b\x61\x13\xfa\x0b\xab\x43\xb0\x21\xfe\x0d\x7f\x04\x1f\xd2\x0f\x83\x51\xce\x4a\x40\x56\x4a\xe0\xdf\x39\xc9\xe6\x22\xdb\xfe\x26\x4d\xeb\xae\xdd\xaf\x2f\xbf\x81\xe8\x66\x53\xf5\xfa\xb5\xd6\xfa\x85\x3b\xce\xa2\x5a\x27\xa5\x2c\xeb\xfd\xd4\x93\x52\xea\x2a\x35\xce\xa5\x96\x1b\x7e\x35\x45\x0a\xb0\x9f\xa3\xdc\xfb\xef\x7e\xf8\x91\xfd\x86\x1f\x6f\x19\xbf\x49\x1a\x77\x92\xa2\x0c\x96\x26\xa5\x19\xfc\x8b\x1d\x3a\x64\x6e\xec\xa7\xe1\x4d\x89\x6b\x24\x14\x53\x29\xe5\xdd\xa3\xd9\x8b\xbb\x5d\x12\xe8\x91\xbd\x56\x02\x72\x25\x09\xc1\xa9\xce\x6e\x39\xe3\x74\xcd\xf3\xa2\x3d\xb9\xea\xb5\x32\x2f\xcc\xba\xcd\xf8\x99\xd9\xe4\x80\xaa\x7e\xc5\xee\xdf\xef\xac\xff\xe3\x8a\xc5\x1a\xd9\x5d\x53\x8f\x7d\x45\xd5\x14\x51\xc3\x1b\xbb\xaa\x5f\xab\x47\xc7\xca\x1c\x05\xeb\xb4\xd0\x96\xb2\x73\x44\x76\xe3\xf6\x0c\x54\x1b\x43\x44\x7e\xd5\x14\x5c\xc1\x56\x28\x87\x4a\xee\x5a\xa6\xae\xd0\x4a\x6b\xcb\x5a\xc2\x0d\x70\x7b\x72\x75\xa7\xa6\xb9\x61\x4f\x51\x1e\x04\xc2\x50\x51\x23\x56\xdd\x39\x04\x1e\x46\xd5\xc4\x2b\xe5\x41\xbe\x57\x4d\xc1\x95\x12\xad\x2e\xe8\x5d\xa7\x9b\x0f\x37\x1a\xb5\x98\xf3\xdf\xd0\x43\xb1\x41\x5b\xf2\xdc\xb8\xf3\xb4\xa1\x3b\x53\xe8\x01\xba\x56\xa6\x8b\x2d\x85\xd5\xf5\x6f\x57\x3a\x93\xb3\x1e\x1a\x55\x1d\x39\x09\xa5\x92\x7d\x10\x26\x38\xf3\x50\x5d\x9f\x06\x8f\x68\xa3\xab\x03\x21\xfb\x1c\x43\xf1\x49\xaf\xed\x43\x7e\x26\xd5\x1b\x08\x56\x61\x61\x54\xc9\x55\x5a\x52\xd0\xce\x97\x7d\xc5\x3a\x3e\x95\x00\xff\x0b\xb4\x47\x9a\x29\x74\xf6\xbe\xfa\x18\x03\xb9\x97\x9a\x15\x91\xb9\x1e\x93\xb8\x78\x87\x0f\x1e\xab\xa5\xbc\x05\xd5\xb9\x7a\xdd\x7c\xb4\x9f\x8f\x72\x0a\xc2\xaf\xc2\x62\x53\x5f\xbb\xbb\x77\x3e\xa6\x71\xc4\x39\x1f\xa9\x54\xdd\x35\x73\x46\x93\x15\x7e\x43\x58\x6a\x3a\xe1\xae\x7a\xd4\x80\xde\x06\xa6\xa9\xef\x00\x92\xe6\xee\x74\x2f\x4f\xa4\x77\x2f\xf0\xf9\xa2\xec\x0d\x7e\xce\x95\x5c\x58\x95\x6b\x28\xff\x04\xea\x41\xde\x97\xe2\xd5\xaa\xaa\xfb\x92\xa0\xfd\x3d\xff\x6a\xf2\x12\x48\x95\x3b\xa3\x57\x1f\xa3\x5a\xee\xa3\x1a\x9d\xfb\xa6\x1a\xe9\x7c\xe6\xe2\xc2\x1f\xc9\xf6\x3c\xaa\xd0\xa3\xb8\x88\x62\xd0\xe7\x3d\x5f\xeb\x76\x5f\x2b\x0a\x76\xc7\x92\xc9\x2b\xf9\x08\x1c\x9a\x39\xab\x3a\x35\x34\xff\x5d\xb2\xb3\xb5\x3a\x8f\x7c\xbc\x6a\x1e\xf3\xc0\x27\x3e\xb2\x5f\x2b\xd3\x0f\x48\x01\x50\xf7\x09\x14\xab\x1a\x0c\xc8\x7b\x1e\x25\xae\x17\xf7\x69\x60\xf2\x66\x94\x17\x06\xe4\x0e\x5e\x70\xc0\xaf\x6e\x7d\xc1\x6e\xae\xf6\xe4\xf7\xb1\xf9\x76\x1f\xa2\x61\x37\xbe\xb5\x22\x40\xf9\x25\x85\x69\xe5\xcf\x8e\xc0\xbe\xd0\xd0\xdc\xc7\x5f\xd4\xcd\x9a\xf3\x1c\x87\xdd\x85\xbc\xe9\xe2\xf5\xf0\x05\x23\xc1\xbc\x09\xf6\x87\x46\x87\x92\xa5\x71\xd0\xfd\x02\xa3\xe3\x12\x2f\x56\x7c\x21\xaf\x8a\xfc\xf1\x81\xe9\xdc\xb5\xe9\xb4\xc3\x8b\x1d\x9b\x14\x64\xdf\xb8\xf4\xb4\x5b\x0d\xf2\xa9\x4a\x66\x6b\x2f\x09\x65\xeb\x6a\x14\x86\xb2\xd7\x1d\xa3\x07\xe5\xf1\x5e\xff\x7d\x9c\x34\x02\x08\xbc\x07\x88\x3d\x0a\x90\xb7\x88\x5e\xd3\x0f\xc5\x48\x9a\x88\x89\xd3\xc1\x6b\x1a\x91\xd6\x4b\xb6\xfc\x24\x12\x2e\x3f\x87\xed\x31\x9b\x86\x8d\x85\xaf\x85\xc0\xb6\x2a\x0c\x61\x5c\x01\x30\x50\x7a\xef\x5b\x87\x21\xe2\x85\x0d\x6e\x67\xfa\xb9\x73\xc7\xab\x71\xee\xd5\x60\x7d\xfe\x1b\xd8\x5b\xf0\x63\x04\x7e\x74\xa6\x4e\xf2\x8f\x61\xf8\xc1\xfc\x88\x7f\x97\xf0\xf7\xdc\x1d\xfe\x31\x0a\x3f\x36\xc7\x1f\xeb\x42\xe0\x69\xf0\xa5\x3d\xf9\x8f\xee\xb5\x29\xfe\x32\x86\xb0\x7e\xfd\x49\xd5\x88\x43\x38\x1e\x4a\xf4\x42\x97\xea\x6e\xa4\x5c\x05\xf6\x47\x9f\xc8\x53\x64\x89\xbe\x0e\x47\xcd\x3a\x3f\xe4\x65\xfa\x2e\x15\xc6\xf8\x93\x74\x3f\x1a\x86\x47\xe9\x83\x35\x04\x18\x41\x63\x38\xe6\x87\xc2\xf4\x28\xf0\x51\x0b\xee\xe0\xd7\x9f\xe8\x43\xbd\x30\x9a\x57\x43\x81\x71\xf0\x07\x35\x10\x18\x05\x61\xb0\x54\x8f\x6a\x98\xe8\x1f\xe3\x1d\xc2\xc1\x42\xb3\x82\x7e\x69\xfc\xf8\xef\x01\x28\x0a\xe8\xbd\x9e\x80\x5e\x7c\x01\xc5\x94\x1e\x24\x47\x3e\xd2\xac\x61\x36\x90\x3e\x4a\xe2\x40\xef\x70\x94\xab\xb5\xa6\x18\x0a\xcc\x73\x32\x5c\x4b\x60\xa8\xb4\xd2\xf4\x60\xa5\xbc\x7f\x0c\xeb\x97\x1f\x80\xf3\x15\xdf\x03\x0a\x50\x71\x7a\xf9\x3f\xff\x93\x6a\xc3\x9f\xff\xf5\x5f\xc1\xc1\x77\x5e\x09\xc2\xaf\x30\x55\x73\x1c\x8c\x14\xbe\x22\x1d\x4a\x6a\xc1\xcf\xbf\x3a\x15\xfb\x90\x2d\x52\x98\x09\x5d\x7b\x72\x7c\x09\x75\x8d\xf3\xfc\x3f\x01\x00\x00\xff\xff\x18\x0f\xa1\x94\xd6\xca\x00\x00") func confLocaleLocale_jaJpIniBytes() ([]byte, error) { return bindataRead( @@ -4459,12 +4459,12 @@ func confLocaleLocale_jaJpIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_ja-JP.ini", size: 49941, mode: os.FileMode(493), modTime: time.Unix(1441457542, 0)} + info := bindataFileInfo{name: "conf/locale/locale_ja-JP.ini", size: 51926, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_lvLvIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xdd\x72\x1c\xb7\x92\xe6\xbd\x23\xfc\x0e\x65\x4f\x38\x6c\x47\xd0\xad\xf0\xf1\xfe\x85\xc3\x6d\x2f\x2d\xf9\xd8\xb4\x24\x8a\x23\xca\xda\x98\x71\x38\xda\xe8\x2e\xb0\x59\xec\xee\xaa\x3e\x85\x2a\x52\xe4\xc4\x44\xac\x6e\xe6\x05\xf4\x02\x47\x7b\xee\x56\x0f\x70\x2e\xd6\x7b\xae\x9a\xef\xb5\xf9\x65\x26\x50\x40\x55\x35\x25\xcf\xcc\xce\x0d\xd9\x05\x24\x80\xc4\x5f\x22\x33\x91\x99\x30\xdb\xed\x2c\xb7\x6e\x31\x7d\x5e\xd8\xe5\xba\xc8\xda\x1b\xd7\xec\x5e\xe6\xbb\x97\x1b\x97\x7d\x5f\x34\x99\xb3\xf5\x65\xe1\xdc\x41\xb6\x32\x2e\xab\xcd\x8a\x72\xdf\x34\x2e\xbb\x34\xeb\x8a\x80\xb2\xef\xab\xf7\xdf\x7b\xff\xbd\xf3\x6a\x63\xa7\xa7\xbb\x97\xab\x76\xe3\xde\x7f\x2f\x37\xee\x7c\x5e\x99\x3a\x9f\x1e\x95\x67\xd5\xd6\x94\x76\x5d\x50\xb2\x7d\xb1\x5d\x57\xb5\x9d\x1e\xdd\x6c\x77\xaf\x50\x0b\x95\xb3\xeb\xed\xf4\xc4\xac\x77\x6f\xf2\x9b\xdd\x9b\xb9\x79\xff\x3d\x57\x2c\xcb\x59\x51\x4e\x4f\x0a\xeb\x1b\x2b\x2c\x15\x76\xd5\xa2\x30\xeb\x99\xcf\x3e\xa5\xcf\xdd\xcb\x35\x21\xb0\x2d\x6c\x63\x8b\xd5\xed\x6b\x53\xee\x5e\xba\x2f\xb3\x3f\x4c\x32\x57\x51\x7b\xd9\x57\x6e\x63\xd6\xeb\xaf\x29\xdf\x99\x82\x2b\xca\x56\x55\xd9\xb4\x5f\xdd\x93\x0c\x6d\xab\x6a\x1b\xc2\x28\x6d\x0b\xe9\xed\x16\x38\xa0\x6a\x49\xac\xed\x92\x6a\xb1\xf5\xf4\xa9\xdd\xfd\x85\x7e\xd5\xd4\x07\xce\xb8\xb2\x73\x57\x34\x76\xfa\x78\xf7\xf2\x82\x86\x68\x6d\xb6\xd4\x8d\x4b\x5b\xbb\xa2\x2a\xa7\xcf\xf1\xff\x82\x12\xb6\x66\x69\xa7\x8f\x38\xaf\xb1\x9b\xed\xda\x50\x89\x53\xb3\x34\x8d\xb9\xb4\xef\xbf\xb7\x36\xe5\xb2\x05\xc4\x73\x0c\x2b\xc1\x2c\x6a\x4b\x10\xb3\xd2\x5e\x11\x72\x97\xb6\xc8\xab\x26\xbb\x30\x6d\xd9\x4e\x26\x93\xf7\xdf\x6b\x69\x52\x66\xdb\xba\x3a\x2b\xd6\x76\x66\xca\x7c\xb6\xc1\xb8\x3e\x22\x74\xab\x06\x58\x64\x92\xd7\x66\x6d\x49\x13\x55\xd4\x34\x31\xd2\x2b\x9b\xd3\xe0\xcd\x8c\x8b\x86\xf7\x82\x3a\x91\xad\x76\x2f\x31\x8d\xa8\xb7\x34\x9b\xa8\xaa\xcb\xdd\xcb\x3a\xc7\xdc\x6d\x4c\xb1\x9e\x7e\xf7\xd9\xd6\xb8\xc6\xa1\x37\xce\x5d\x55\x34\xc1\x27\xa6\xae\xd6\x16\xa3\x33\x6b\xae\xb7\x56\xbf\x33\xd3\x50\x8d\x35\x55\x51\x50\x57\xcc\xb6\x59\x9c\x9b\xe9\x09\xa5\xcc\x4d\x9b\xa3\xb9\x0a\x75\xa2\xd4\xb6\xa2\xb1\xab\xea\x6b\x1a\xd5\x6d\x75\x83\x9f\xc5\x05\x65\x55\xf5\xd2\x94\xc5\x8d\x69\x30\x86\x4f\xe4\x63\xf7\x72\xc1\x23\xb9\x29\xea\xba\xaa\xa7\xa7\xdb\x6a\xd9\xf2\xba\xa2\x41\x9a\xa1\xa6\xe9\x8f\x34\x40\xb4\x46\x93\x9a\x90\xb9\x29\x96\x35\xc6\x1b\xf9\x26\xc3\x97\xaf\x0b\xb9\x67\x55\xbd\xd2\xa2\xa6\xc9\xb1\x16\x1b\x5a\x2f\x23\xd5\x10\x52\x5a\x45\xd5\xc3\xc8\x94\x34\x77\x9c\x8f\x4e\xd2\xd6\xc8\xb1\xda\x12\x28\xaa\xc3\xe4\x1b\x1a\x7c\xde\x0e\xd3\x43\xfc\xce\xc2\xd6\x30\x8b\x45\xd5\x96\xcd\xcc\xd9\xa6\x29\xca\xa5\x9b\x3e\xa4\x95\x6a\x32\x9a\x9a\xc6\x60\x8e\xda\x0d\x0d\x64\xc8\x3c\x4a\x92\xaf\xab\x36\x2c\x86\xe9\x33\x73\xe9\x74\xf6\x9d\x66\x85\x62\x94\x57\xf4\xaa\xe4\x8e\xb9\xd9\x99\xb5\x39\x77\xad\xdd\xb4\xd9\x76\x7d\xfb\x86\x76\x08\x4d\x72\xbb\x5e\xd3\xc0\xfe\xa9\xa5\x22\xd4\xe8\x0d\x2d\x81\xdb\x7f\x69\xb1\xe1\xb6\xb5\x71\xbe\x0a\xa2\x0d\x04\x30\x3d\xa9\xab\xf9\x7a\xf7\x6a\x63\x78\x62\x17\xa6\x5c\xa0\x97\x0d\xfd\x6d\x90\xf0\xb3\xb3\xa6\x5e\x9c\xff\x82\x5e\xe0\xc7\xf4\xb1\x5d\x11\x78\xc3\xcb\x79\xef\x32\xc0\x7a\xec\xd6\xa2\xd3\xc6\xa6\x0f\x77\xbf\xdd\xbe\xe1\x5d\x52\xe5\xf4\xa5\x8b\xe9\xe7\xa2\xa4\xae\xad\xd7\xd4\x86\xfe\x22\xf2\x83\xff\x7e\x9a\x9a\xa2\xa1\x11\x8a\xd3\x1c\x91\x8a\xdd\x6f\x05\x75\xa9\xde\x54\x34\xe3\xc5\x0d\xfd\x36\x6b\xea\xe7\xdf\xaa\x06\x78\xfd\xa9\xa5\x9d\x3d\xcb\xe7\x42\x21\xbf\xaf\x96\x2e\x2b\xea\xac\xb4\x34\x06\x8b\xc2\x12\xcd\xd9\x98\xec\xf1\xf5\xe9\xdf\x3f\x3a\xc8\x4e\x2a\xd7\x2c\x6b\x4b\xbf\xb1\xe5\x32\xfa\x4f\x45\xbf\xc8\x72\xd3\xb4\xd9\x7c\xf7\xf2\xc6\x52\x47\xa9\x22\x41\xe2\x41\x48\x75\xbd\x19\x01\x08\x36\x52\x0c\x81\xfd\xef\x40\x64\x5d\x43\x03\xe4\xda\xda\x51\xad\x55\x3d\x36\x40\x83\x8d\x49\xf5\xf1\x8e\x8e\xeb\x2b\x2b\x67\x5a\x25\xd5\xf3\x19\x68\x30\xd5\x72\x1c\x75\x8a\x90\xa2\xd9\x2e\xa9\x56\xe9\x5d\x76\x74\x7c\xfc\xe4\xc1\xb7\x59\x7e\x53\x94\x45\x66\x6a\x39\x07\x88\x62\x6f\x2e\x5a\xda\xcc\x5b\x22\x34\xcd\xd9\x7f\x9b\x2d\x6d\x49\x54\x65\x3d\x5b\x14\xd4\x57\xe7\xd6\x44\x96\x68\x7e\x4e\x4f\x1f\xd1\xd0\xde\xfe\x8d\xa0\x19\xc1\xe6\x7c\x7a\xdf\xd2\x0c\xbe\x26\x98\x3f\xad\x31\xbe\x8a\x81\x0c\x59\x16\x8f\x99\xcb\xce\x88\xee\x18\xda\x98\xb5\x51\x0a\x9f\x5d\x52\x77\x0d\x35\x60\xeb\x7a\x46\x94\xb4\xb9\x9e\x69\x35\x5c\xf5\xb1\xb9\xa4\xfe\xd5\x38\xc1\x70\x4c\x0d\xa7\xc1\x65\x0b\x6e\x7d\x82\x35\xe3\x31\x96\x59\xe1\xf9\xa5\xc3\x6e\x4b\x9b\x78\xf7\x66\x59\xd8\xde\xdc\xe0\xa8\x8c\xc8\x63\x99\x0e\xa5\xcf\x0d\x03\xca\x58\x10\x64\x8f\x10\x84\x32\x6d\x76\xfb\xda\x16\xcd\x07\xb2\x01\x04\xfd\x68\xfd\xb7\xd9\x72\x6d\x08\x65\xf4\xdb\x68\xb7\x23\x50\xdf\xcc\xf3\xc2\x15\x7c\x50\x9b\x86\xd6\xc0\xba\xa0\x31\xa2\x73\x29\x26\x5f\x45\xd6\x14\x2b\xa7\xb5\x35\x05\xb5\x6a\x2e\xe8\xe0\xcc\x8b\xda\xae\x18\x60\xf7\x12\x9b\xb0\xa5\x33\x0f\xcb\x89\x8e\xe7\x62\x0d\x2a\xbd\x8e\xd6\x95\xcf\xf5\xad\x76\x67\xcd\x06\x3b\x82\xaa\x98\xdf\x12\xc9\xd3\x33\x45\x51\xc6\xf9\x48\xa7\x3a\xb1\x12\x31\x3a\x26\x73\x66\x85\xb1\xeb\x10\xa0\xfd\x42\x27\x15\x0f\xbf\xaf\x89\xb7\x21\x0d\xfe\x26\xbb\xb1\x1b\x42\x79\xf7\xa6\xc3\x07\xb3\x9f\x57\x44\x8e\xca\xe9\x83\x6a\xb3\x7b\x55\x3a\xff\xed\xd1\x7b\x66\xb0\xaf\x1a\xbb\xa2\xdc\xec\xf4\xf4\x87\x6c\xb5\xae\xca\xdd\x2b\xc5\xeb\xa7\xa7\x8f\x78\x81\x9e\xcf\xb6\x55\xdd\x4c\x91\x7f\x42\x3f\xba\x24\x5f\x0d\x52\x33\x22\x8a\x73\x5b\x67\x57\xe7\xc5\xe2\x3c\x03\x45\xe5\x0a\xc1\x16\x51\x2a\x1d\x14\xad\x23\xea\x7a\x90\xad\x2d\x9d\xe4\x19\xcd\x03\xaf\xc9\xac\xa9\xa8\x7f\xce\xcc\xe9\x30\x04\xf8\x19\x1d\xe7\x6d\x0d\x1a\x70\xde\x34\x5b\x69\xf7\x87\x67\xcf\x4e\x32\xfc\x72\x51\x6a\xdc\xb4\x41\xdb\xb4\xdb\x33\xe2\x97\x16\xd9\xaa\xad\x8d\x8c\x01\xad\x46\x22\xf1\x74\xa6\x6d\xa8\xcf\x19\x0d\x17\x13\x11\x02\xba\xc0\xd6\x05\xc3\x43\xa4\x75\x89\xd1\x9f\xc8\xb2\x6c\xeb\x75\xb4\x66\xa9\xfb\x21\x79\x74\xc0\x80\xd8\x3d\xfc\x39\x1d\x8c\x1b\xe6\xc9\x32\x17\x80\x69\xa4\x2e\xd1\x42\x2a\x6e\x1c\xcd\x18\x6d\x37\xec\x4e\xe2\xb5\x1a\x6e\x97\x0e\xf1\x2d\x8e\xef\xb0\xbb\x8e\x2d\x9d\x10\xc5\x52\x96\x67\xba\xb1\x98\xbb\x50\xb0\xef\xb4\xf6\xad\x59\x99\xf5\x16\x7d\x1d\x9c\x83\x1b\x1a\x2b\x26\x86\xa7\x8f\x69\x04\xeb\x84\x22\x72\xe6\x59\x5d\x6d\xa6\xa7\x1e\xa9\x8b\x38\xd9\x77\xd8\x37\x63\x72\x2a\x6f\x0f\xb2\xa7\x7f\xbc\x9f\xfd\xe7\x2f\xfe\x40\xdc\xe3\x03\xda\xfb\xb4\x8a\x33\x5e\x86\xb4\xeb\x4a\xb0\x32\xb7\xaf\x8b\xd0\x6f\x29\xc2\x54\x9e\x78\x87\x0d\x75\x88\x06\xe1\xc3\x63\x4f\x09\x3e\xcc\xbe\x12\x48\xf7\xdf\xed\x0b\x43\xac\x9e\x9d\x2c\xaa\xcd\xd7\x13\xf0\x09\x74\x44\xd7\xb2\xcb\x3a\xec\x4c\xaf\xe2\x00\x17\x68\x79\x0c\xbb\x0d\x0c\x97\xb0\xa3\xb3\x45\x55\x9e\xd1\xf1\x05\xa6\x00\x2b\x80\x48\x76\x1d\x18\x54\x4f\x32\xcd\xd6\x35\xc5\xb6\x06\x6d\x40\x52\x2b\x4d\xcc\x4a\xe2\xcf\xce\xae\xa3\x92\x36\x8c\xfd\x0d\x1d\xf5\x18\xfb\x16\x63\xc7\x4b\x7d\xc6\x82\xc0\xc2\xea\x34\x9d\x72\xa2\xc1\x7a\x58\x14\x44\x5b\x45\x4c\x68\x7b\x53\x55\x9d\x9d\x11\x45\xb2\x72\x10\x74\xed\xcc\xed\x0d\xf3\xe4\xd6\xf9\x93\xa1\x4d\x61\x69\x2b\x6c\x89\x01\x3f\x6c\x7c\x89\xfb\x0f\x8e\xe9\xdc\x21\x22\x40\x0b\x3f\x6f\x57\x42\x48\xb5\xec\xee\xe5\x01\xa8\x76\xa1\x2b\xa1\xe5\x33\x43\x89\x1e\x6d\x86\x25\x4b\x33\x44\xf7\xca\x4a\x77\x2d\xd3\x0f\xd9\x9c\x33\xda\x45\x97\xc4\x84\xd7\xd3\x07\xba\x5b\xbf\xd7\x84\xec\x54\xfa\x3b\x04\x55\xe4\x06\x05\x88\x11\xcf\x16\xad\x6b\xaa\x0d\xb1\x15\x6d\xbd\xb0\x24\x34\x11\x17\x92\x49\x36\xcd\x42\x6d\xb3\x96\x44\x20\x93\xdb\x3c\x9b\x5f\x67\x58\x07\x8e\x0e\x87\x2c\xb7\x67\xa6\x5d\x37\x11\x56\x32\xbb\xb5\xf0\xbf\xdd\x28\x04\x0a\xd8\x76\x93\x8c\x43\xa5\x1d\x2f\x39\x18\xc5\xbd\xe5\x0f\x30\x5a\xb4\x9e\x99\x45\x95\xf2\xb4\x9b\x68\x89\xd3\x22\x02\x33\x10\x4b\x20\x2e\xae\x86\x25\x2a\x37\x51\x5e\x89\xa4\x00\x15\xd0\x66\xb4\x71\xae\xa2\x19\x8f\x59\x26\x3a\x12\xda\xcc\xb4\xa0\xfc\x37\x22\x44\x11\xf5\x44\xe3\xe0\x3c\x57\x15\x2d\x26\xc8\x50\x6e\xbc\x4e\xed\xd3\x33\x42\x37\xae\xa3\xc3\xa9\x00\xd6\xa1\x2e\xa9\xea\x80\xda\xbf\x03\x98\x50\x5b\x81\xa5\x6c\xfc\x28\x28\xa8\x9e\xd7\xb4\xc4\x87\x5b\x8a\xea\xa5\x73\x6d\xe2\xb9\x7a\x65\xb2\x85\x4f\x64\x1e\xa4\xc7\x4e\xe9\x08\x26\x03\x6c\x64\xf8\x48\xe4\x06\xeb\x79\x10\x1d\xb8\xe0\xb1\x8e\x1e\x4c\x3f\x27\x72\x7a\xfb\x2f\x96\x2a\xe8\x95\xd3\x93\x95\x90\x03\xae\x20\x41\x85\x5b\x15\x01\x1b\xd9\xa2\x22\x63\xac\x46\x24\x09\x81\x1a\x97\xf4\xbc\x94\xd2\xe3\x23\x95\xcc\x74\x19\x87\x9e\xa6\x80\xc3\x61\xaa\x14\x2a\xee\x09\x8b\xca\x8d\xcf\x96\x15\x64\x17\x61\xbf\x5f\x35\x7c\xdc\x43\x18\x76\xcd\x6c\x59\x34\x33\x6c\x5a\x92\x42\x94\xb7\xcf\xb6\x2a\x2d\xd2\x98\x7d\x4c\xd9\x1f\x53\x3f\x88\x23\xcd\xdb\x2f\xb3\x8f\x2e\x3d\xe3\xf8\x05\x28\xd8\x8c\xb6\x17\xb1\x88\xb4\xf6\xa7\x3f\xd2\x49\xd8\x66\x97\x22\x72\x63\xca\x9b\xb9\x59\x83\x9e\x29\x17\x48\x23\x4c\x75\xdf\xd0\xfa\xb2\x17\x2d\x4d\xcf\x1a\x94\xe1\xd5\x05\xb3\x68\x67\x05\x2b\x14\xaa\x6c\x0e\x2a\x59\x57\x5a\x4d\x0b\xaa\xf1\x11\x2d\xa0\xe3\xef\x9e\x1f\x9d\x66\xcb\x6a\xde\x12\x73\xe4\x33\x27\xe8\x1c\x89\x7b\x45\x0e\x19\x41\xd7\xc0\x3e\xe6\x9e\x18\x3f\x5a\x17\x34\x52\x34\xd7\x4e\xba\xe1\x0b\x8f\xf2\x7f\x23\x5c\xaf\x08\x1f\xab\x0a\x7c\x93\x91\x2a\x02\x63\x86\xa1\xd8\x18\x92\xb4\xc7\x18\x38\x6d\xfa\xf6\x35\x1a\x07\x9f\x50\xc4\xb9\x54\x93\xcb\x3e\xfb\x9a\xfe\xd2\xc8\x12\x17\x23\x67\xca\xd2\x4f\xc9\x31\x95\xc9\xed\xa5\x9c\xee\xca\x45\x62\x59\x11\x48\xab\xf4\x23\xed\x4e\xb2\x25\xa8\xb8\x20\xac\x8b\x78\xb8\x20\xc3\x60\xc8\x32\x71\xed\x82\x48\xa7\x9b\x3e\x32\xc5\x96\xa4\x0d\x9e\x32\xb3\xf9\x20\x7b\x0c\x52\x44\x0b\xce\x2e\x98\xed\x64\xb2\x41\x44\xe0\x47\x66\x7f\x6e\x2e\x77\xaf\xd6\x06\xdb\x82\xd7\xd5\x01\x75\x96\x2a\x5f\x19\x62\xb2\xb9\x9f\x7c\xec\x7d\xc0\x62\x22\x74\x55\x24\x23\xb6\xc2\xab\x57\x34\x52\x75\x7f\x17\xf0\xd9\x6e\xfb\xca\x0e\x0f\xec\xb7\x84\xbb\x2a\x68\xb8\x67\x41\xdb\x85\x61\x6b\xec\x8b\x66\xfa\x98\x38\x51\x28\x00\x0a\xd5\x7e\xed\x7e\x93\x9d\x6e\x89\xad\xc0\xd9\x7b\xcd\x13\xee\x08\xae\x2c\x12\x46\x1d\xdb\x6c\x4d\x03\x5c\x81\x7e\x5f\x5a\x05\x3b\x35\xb9\xa9\xe7\xb2\xdd\x53\x68\xaa\x89\x64\x0b\xae\xc8\xb8\x81\xbe\x81\x72\x45\x57\xa2\x2d\x39\x68\x4c\x48\xdc\x7d\xff\x3d\x26\xa4\xac\xb3\x7b\x4e\xbf\x78\xde\xbd\x20\x3f\xa1\x99\x63\xb5\x81\xb4\x7d\x54\x0a\xcb\x1b\x44\x74\x56\x79\xd1\x28\xaa\x32\xef\x17\x95\xde\xe3\x85\xcb\x7a\x85\x9f\x89\x30\x41\xdc\xef\x14\x59\x33\x55\x72\xf4\x14\x5a\x42\x03\x23\x86\xe6\xdc\x6e\xc1\xfd\x6c\x1c\x6b\x5b\xb0\xe4\x01\xe1\xbe\xc9\xbc\xce\x0a\x93\xdc\x98\xa5\xc9\x3f\x08\x6a\xc1\xb7\x17\x3e\x35\xcc\x71\x14\xa1\x64\x7a\x60\x8a\x3e\x8d\x38\x77\x3a\x2d\x69\xf2\xcb\x0a\x54\xe1\x20\x3d\x25\x79\xfb\x19\x7f\x98\x9a\x49\xf6\x88\xa9\xc9\x01\xed\x8a\x1b\x26\x83\x40\x8c\x08\x37\xb6\x2a\xf8\xec\x84\x66\xb7\x83\xd3\x1d\x68\x82\x4e\xde\xd1\xa0\xeb\x58\xc3\x94\x83\xeb\xa3\x82\xe1\xdb\x58\xc8\x29\x33\x9a\x54\xa8\x5d\x54\x3d\x99\x11\xd1\xa4\xf9\x20\x3e\x75\x49\xf4\xa1\x23\xde\x24\xdf\x17\x60\x95\x3c\xe1\x06\x80\x1d\x02\x14\x0a\xf0\x4d\x50\x8a\x12\x9d\xb9\xea\xe9\x0a\x74\x84\x3b\xbd\xe8\x45\x98\xa1\x49\x38\x38\x84\x21\x61\xb6\xd3\xd9\xb2\xf1\xa3\xad\x7a\xb7\x5e\xef\x7c\xbf\x45\xdb\x52\xa9\x78\x41\x27\xf1\x4d\xf6\xd5\xfc\xeb\x8f\xdc\x57\xf7\xe6\x5f\x7b\x62\x7e\x10\x8e\x0a\xb4\x4a\xe4\xab\x0d\x83\x26\xa7\x6b\xd3\xd2\xa6\x5e\x11\x15\xcf\x33\xda\x7e\x74\x84\x80\xd9\x58\x81\x69\x04\xd3\xb1\x35\x73\x5b\x2c\x9b\x76\x30\xf2\x84\x20\x91\x21\x4c\x9b\x67\x3f\xac\x9f\xae\xdd\x2b\x12\x0b\x87\x2d\x41\x8d\xc7\xdb\x96\xf7\x8f\x5f\xed\x87\x2b\x4a\x63\xbe\x43\x8a\x84\xe5\xce\xc3\xb0\x2e\x36\x45\x33\xba\xf4\x98\xae\x49\xcf\x2f\x40\x70\x8d\xd6\x93\x2c\x8c\x96\x3b\x4f\xdd\xa3\x63\x8b\x98\xe1\xa2\x5b\x93\x4b\x53\xb0\xee\xe1\x8b\x8c\x16\x21\xd5\xc2\x32\xd9\xb9\x71\xb3\xb6\xd4\x19\xb1\xb9\xac\xbf\x53\xda\x8d\xab\x82\x0f\xb9\x1f\x71\x4a\xf1\x19\x13\xcd\x48\xd3\x17\x50\xb2\x4f\xc2\x24\x7c\x3a\xc9\x7e\xc4\x49\x6b\x49\x16\x64\x5e\x65\xf7\x6a\x53\xec\x9f\xcf\x96\x09\x6b\xd7\x4a\xbc\x8a\xc2\x34\x0b\x59\xe8\xa6\x97\x32\x08\x8e\x3b\x03\x02\x26\x17\x11\x74\x34\x56\x44\x78\xa1\x1c\xa0\xde\x4f\x74\x3c\xb5\x47\xc7\x5d\x09\xd6\xb0\xc8\x4c\xe3\x84\xc0\xf1\xd7\xb5\xd4\xee\x19\x54\x2f\x90\x32\x77\xe1\x98\xc4\x34\x76\x7a\xfb\x67\x12\x3f\x7a\x23\x81\x63\xd5\xdf\x2e\x18\xec\x7d\x61\x41\x78\x8e\xb1\x72\x80\x12\x00\x1b\x1d\xea\x11\xb4\x22\x6c\x44\xb6\xc3\x9e\x25\xe9\x0b\x2a\x1f\x3a\xf1\x9a\x96\xef\x64\xb4\xe2\x80\xa0\x54\xda\x6d\xd7\x06\x83\x56\xe9\x12\xf3\x9b\xda\x9f\xc7\xac\x26\x1d\x2c\xae\x76\x64\x9a\x56\x34\xa8\xac\xd0\xa1\x4d\x91\xdf\x60\x43\xd1\x81\xb7\x7b\xb3\x84\x10\x4e\x04\x6b\x43\x78\xdd\xbe\xe6\x49\x64\x61\xac\x31\x7e\x22\x85\xab\x99\xf4\x11\xeb\x74\x61\x63\x33\x62\x14\xeb\x0e\xe3\x50\xae\xa9\xaa\x99\x3b\x87\x96\xe4\x44\x07\x65\x69\x6a\xe6\xa1\x6c\x1e\xcb\xe7\x1b\x43\x93\x07\x39\x8f\xc6\xfe\xbf\xb0\xd6\xe1\x67\x92\x1f\x0d\x94\xc0\xd7\xd6\x4d\x7f\xc4\xbd\x46\x59\x4d\x8f\x77\xaf\xe8\x3c\xac\x72\x88\xbb\x7a\x3a\x33\x2c\xe4\x77\x02\xfd\x89\x18\xa8\xe3\x51\x6e\x18\xc7\x1a\xe7\x24\x8c\x59\xa4\xf5\xfb\x2e\xe2\x75\x3b\x09\xfe\xa4\xcf\x3e\x3f\xb5\xfb\xae\x47\x4e\x4f\x7f\x78\x26\x12\xf5\xe9\x0f\x20\xe9\x50\xdd\x98\x44\xb1\xf8\x43\xd3\x6c\xdd\x4f\xf5\x7a\x2a\x2a\x19\x56\xdf\x9c\x98\x6b\x08\x92\x48\x7d\x0e\x72\x84\x09\xe2\x8c\x67\xd6\x6c\x18\xe1\x87\xcc\x2f\xa7\x35\x1d\xd2\x99\xcc\x99\x87\xa9\x84\x13\x83\xe0\xd0\x92\x4e\x89\xfc\xd0\x57\x4e\x74\x62\x99\xe5\x7b\x98\x5f\xfb\x53\xd2\xb4\xab\xdb\xd7\x6e\xf2\x2b\x91\xc3\xf5\xf6\xdc\x30\x7f\x14\x60\x3d\xa4\xe8\x8e\x5e\x79\x89\x6b\x0d\x6e\x0d\x97\x0b\x66\x7d\x46\xfc\xe5\x2b\x6a\x6f\xde\x52\xaf\x88\x26\x2d\x0a\x9a\xdb\x56\x58\xb2\xbc\xda\xb4\xd0\x3a\xd3\x72\xf8\xe4\xb3\xd9\xa7\xbd\x36\x88\xa5\xf8\xb7\xb7\x73\xd0\x6f\x84\x1b\xde\xb6\xe5\x8a\x76\xf4\xaf\x38\x0c\x6e\xba\x9e\x7b\x65\x25\xb1\xcf\xae\xd8\xcc\xab\x75\xcb\xeb\xd4\x6c\x00\xc9\x3c\x70\x02\x6d\x54\xa5\xe4\x68\xd5\x46\x65\x64\x69\xef\x5e\x72\x21\xf3\x62\xb4\x50\x69\x75\xa9\xe3\xaa\x6e\x4f\x59\x21\x5a\x61\x56\x88\x34\xc9\xe6\xed\xd3\x6f\xc0\x42\xf5\x17\x43\x7a\x16\x1d\xaa\x51\x64\x97\x2b\x3a\xe7\x4b\x05\x39\xb6\x37\xa0\x11\xb4\xc4\x56\x22\x9d\x7d\x19\x6e\xf5\xe8\x5c\x5c\x54\x75\x6d\x17\x4d\xff\x7e\x8f\x50\x76\x66\x55\x83\xa0\x43\x1e\x6f\x1a\x22\xbf\x84\x7a\x6d\xc1\xcd\x57\x93\x68\xaf\x77\x92\x8b\x6e\x0f\x12\xb8\xbb\x1d\x42\x92\xc2\xa5\xc9\x59\xfd\xa5\x04\x92\x11\x86\x62\x8e\xc4\x37\x23\xaa\x46\x7f\x71\x39\x9b\x5b\x4b\xe2\xaf\x59\xd9\x72\xc0\xd3\x43\x4d\x4d\x2c\xa1\x29\x6e\x20\x52\x37\x4e\x2f\x9e\x66\xfd\x72\xc9\x4e\xdf\x5f\x96\x18\xa6\x41\xd1\x27\xe3\x8a\xfe\xd1\xf2\x0d\x6d\xd4\x41\x05\xc3\x4d\x3b\x56\x54\x26\x9a\x8b\x51\xc7\xf3\x1e\xf5\x61\x70\xe2\xfd\x56\xe1\x12\x07\xfc\x61\xb1\x5e\xdb\x25\x74\xb1\xbe\xd9\xe9\xf7\x75\xbb\x4d\x5a\xe2\xbd\xc2\x62\x33\x09\x2c\x6d\xe3\xaf\xfb\x65\x2f\x4c\xa2\x41\x0e\x33\xd7\x4d\xfe\x98\x00\x15\xcd\x96\x9c\x0f\x7c\x6b\x43\x62\x10\x15\x41\xd9\x48\xf6\x15\x55\x44\xc4\xcf\xad\xc1\x19\x28\x4f\x7d\xc0\xb5\x45\xcb\xa0\x1e\xa5\xc5\x18\xa9\xee\x1c\x1a\xb4\x43\xcb\x19\x52\xf2\xef\x6a\x68\xf7\x06\x32\x33\xe5\xae\xe2\x95\x70\x47\x23\xe1\x40\x96\x26\xf6\xb4\x20\xa7\xef\x70\x5d\x87\xba\x8d\xbf\xe3\xc7\xd6\xb0\x2f\x88\xbf\x00\xf7\xf1\x32\x4f\x45\x7a\x4b\xf2\x24\x58\x8f\x57\x13\x18\x10\xb8\x06\xb2\xa0\x74\x93\x35\x50\xd1\x95\x40\x59\xf1\xda\x91\x4d\xf3\x66\x59\xa9\x32\x85\x66\xb8\xeb\x61\x3b\x21\x01\xab\xde\x80\x71\xdf\x8c\x71\x67\x7a\xa5\xc6\xdc\x59\x95\x94\x63\xe1\x51\x07\x00\x37\x28\x2b\x7b\x9d\x72\x1b\x65\x8a\x8d\xe7\xd7\x51\x9b\x0c\x45\x74\xf4\x41\x95\xe0\x58\x3a\x87\xa4\x74\x69\x6b\x3a\xb2\x43\xad\xc7\xfb\x2b\xba\x18\x54\x74\x40\x4c\x4c\x13\xb4\xc0\xb2\x79\x58\x63\x80\x11\x2f\x6a\x4f\x1c\x53\x39\x22\x9e\x2c\x66\x2a\x9a\x0a\xaa\x04\xbe\x48\xa1\xc3\xd3\xab\x44\xe8\xfc\xa4\xb9\x2f\xce\x20\x47\x2c\x44\xd9\xe4\x75\x24\xa2\xcc\xa0\x83\xa2\xa1\x2d\x87\xe9\x50\xdb\x04\xe1\xdf\xc0\x27\xeb\x01\x80\xc9\x30\xe9\x5a\xee\x46\x95\x30\x6d\x2a\xda\x92\x6c\x52\x23\xf8\xf6\x35\x8a\xf9\x0d\xd8\x43\x5e\x50\x25\x5f\x7e\x61\x18\x9a\xfe\xd4\x08\x1a\x60\xfc\xd9\x7c\x61\x1c\x8b\xbe\xee\x00\xd2\x44\x5e\x13\x0e\xa1\xfd\xb4\xf1\x2d\xed\x22\x6d\x3a\xe0\x71\xfb\xba\x4a\x6a\x69\x95\x46\xf6\xc6\x81\xb9\xe8\xa4\x35\xf4\xed\x3f\x74\x48\xe2\xb9\xe1\xbb\x98\xdb\x3f\x57\xd0\xa3\xc6\x33\xda\x66\x17\x15\x49\x65\x17\xb8\xbb\x54\x32\x1a\x23\x19\x6f\xc4\x83\x1e\x1a\xb7\xaf\x0b\xbb\x89\x54\xcc\xf4\xd1\x21\xd3\x6b\xc6\xc8\xe5\xbe\xc8\x45\xe8\x9d\xef\x03\xa3\xd9\x18\x16\xca\xe7\xb5\x29\x17\xe7\x11\x2d\x78\x4c\x1c\xdf\xee\xaf\xd0\x0f\xde\xe0\x5e\xa1\x23\x04\xcc\xd3\xa2\x4b\x50\xbc\x9c\x9b\x72\x69\x67\x7a\xbb\xe1\x55\x52\x22\x1f\xb0\x7d\x88\xd1\x43\xb9\x15\x85\xc5\xee\x55\xe6\x2f\x38\x70\x5f\x15\x2a\x90\x1b\x8d\x77\xaa\x27\xd2\xe9\x55\xb4\x87\x2f\x2a\xe2\x80\x2a\x36\xe5\xc2\x98\x61\x30\x5d\x64\xec\x41\xd0\x3d\xad\x11\x8b\xcf\x45\x73\x3d\x3d\x69\xe7\xeb\xc2\x81\xd3\x11\x01\x8d\xc6\xb1\xb1\x50\x52\xac\xd7\xd5\x95\xad\xdd\xf4\xd4\xae\x64\x70\x31\x97\x06\x24\x98\x28\x0e\x0e\x2a\x56\xef\xd3\xb6\xbd\xa1\x01\x5d\xde\x00\xd5\xc2\x97\x83\x2e\x12\xe5\x30\x48\xe0\xfb\x27\x7c\x96\xe1\xc4\xac\x2f\xa9\x7c\x64\x3d\xa5\xa4\xfe\xe3\x8f\xdc\xc7\x7c\x98\x42\xd7\x12\x1d\xbf\x5d\x61\xa2\x0c\x74\x00\x94\x22\x28\x32\x6e\x7b\xeb\x01\x0d\xd4\x83\x55\x58\x96\x9f\xbd\x5d\x0e\xcd\x95\xb7\xde\x39\xf1\x86\x3b\x03\xf5\xbb\x52\x40\x97\x4a\x09\x5e\xff\xe5\xcd\xe1\x0a\xcb\xa2\xa7\x98\x2a\xac\x8b\x05\x2b\x5d\x5c\x77\xf5\xcb\x3b\xd2\xf5\xd8\x94\xf7\xdf\xcb\xed\xda\x92\x80\xfb\x40\x76\x8f\x2a\x28\xda\x22\xe9\xcb\xd1\x03\x20\xbd\xc5\xc4\x2c\x82\xb5\x91\xce\x13\xb4\xc9\xc1\xe6\xc8\x9b\xa5\xf1\x4d\x48\x2c\xb5\x06\xfe\x04\xc7\x9c\x16\x04\xab\xc7\x14\x3a\xb0\x2a\x3d\xa1\x98\x36\x22\xab\x0b\xe2\x1b\x49\xd1\x00\x78\xb1\xbb\xe8\x89\xdd\x22\x28\x88\xc2\x14\xbb\x17\xda\x8d\x06\x3f\x16\x86\xb8\x1b\x50\xa9\x4d\x30\xd4\x03\x35\x38\x83\x95\x13\xb3\x05\x27\xc5\xba\x74\x99\x97\xfc\x46\xcd\xfa\xd6\xd5\xc2\xdf\xc9\xf5\x54\xf3\x34\x60\xdb\x1c\x9a\x4e\x3f\x36\x7e\xa7\xa8\x29\x5e\x3f\x3f\xa8\xb9\x05\x75\xbf\x95\x08\xa4\x60\x82\x48\x58\xbb\x0d\x8c\x50\x3a\x9d\x3b\xee\x77\x74\x53\x0e\x0d\xf5\xc2\x6a\x53\x4a\xe3\x06\xb0\x32\x23\x7d\x46\x8d\x47\xdf\x97\x11\xf6\xa4\x53\xa5\x13\x3f\xb8\x65\x15\xd0\x37\x59\x6c\x20\xc0\x46\x32\xc6\xdf\xf5\x7b\x85\x0c\x95\x58\x18\xd7\xe9\x2a\xbc\x12\x04\x5a\xf1\xa2\x6c\xed\xf4\x99\xaf\x6d\xc4\x3e\xcc\xca\x79\x9f\x12\x9b\xee\xfa\x90\x11\x7c\xb9\x19\x90\x9c\xf1\x82\x5e\xeb\xe0\xcb\x5f\x88\xde\xa1\xf2\x5a\x07\x31\x8f\x68\x83\x95\xa4\xa7\x5f\xd8\xe1\x7c\x51\x80\x4b\x9f\x3e\x31\xac\x2a\xa7\x6a\x6c\x45\x8e\xaf\x1c\x54\xcb\x2a\x9a\xec\x01\x72\x3a\xe5\x5a\xe2\x34\x5c\x9e\x78\xc0\x79\xb1\xce\x0b\x80\xc9\xa5\xb0\x47\x9f\xc9\xc9\xac\xd8\xc0\x20\xf4\xb0\x5d\xde\xbe\xee\x2e\xab\xd8\x34\x11\x4c\x88\x53\x8a\x82\x96\x40\x50\xca\xaa\x37\x06\xdd\xb5\x58\x8f\x6b\xda\x24\x0b\x53\x91\x98\xf4\x90\xdd\xb3\x3c\x01\x6b\x59\x96\x1e\x5d\xa1\x86\x29\x9b\xae\xbb\x40\xc3\xc2\x4e\x50\x25\x4f\xb5\xce\xe3\xfb\xc5\x70\x29\x15\x18\x61\x31\xb7\x0c\x20\x62\x73\xe9\xb3\x46\x84\x8f\x23\xe5\xa4\x4d\xd0\x44\x99\xf8\xb2\x2b\xd4\x3b\x19\xe0\x16\xba\xa9\x92\x67\xbf\x67\xe1\xe0\x36\x13\xda\x01\x4b\x93\x33\x9f\x89\x4b\x63\xe2\xa0\xb6\x72\x1f\x01\x1a\xc4\xdb\x40\x69\xd8\x45\xe5\x99\x64\xe9\x30\x8f\x09\x8b\x6c\xae\x27\xa9\xb9\x60\x3a\xaa\xd9\xb1\xf5\xa8\xed\x83\x8a\xd4\xc7\x9b\xf8\xa4\x2e\x36\xac\xf7\xed\x93\xd6\x94\x96\xb2\xfa\x18\x97\xef\x55\xc2\x71\x88\xc9\x06\x48\x62\x6e\x94\x4a\x42\x1c\xa7\x3a\x4d\x7d\xdd\xd5\x1d\x92\x54\xf1\xed\xad\x4e\x1b\x56\x41\x6c\x05\xac\xf2\xa7\x87\x02\xc9\x19\x82\x8b\xe0\x9c\x37\x8b\xa4\x7a\x0e\xc0\x5f\xf9\x24\x58\x17\x02\xdd\x87\x0c\xaa\xce\x90\x39\x4b\xae\x12\xa0\x3e\x9f\x1e\xd2\x8c\x5f\x65\x71\x3a\x95\x03\x6c\x76\x0e\x2e\x96\x24\xe4\x0c\x70\xe0\x01\xa3\x8b\x83\xed\xda\x1a\x1a\xac\xc5\xb9\x5d\xac\xe4\x7a\xab\x28\xe7\xd5\x8b\xec\xaa\x68\xce\x0b\x3a\x90\xce\x49\x68\xb5\x2f\x1a\xdc\x18\x9c\x57\xb0\xbf\xa2\xe2\x44\x05\xb6\xe8\x27\xe7\x26\x0d\xca\x45\x01\x4b\x08\x01\xd3\x74\xf7\xa0\xd3\xa3\x73\x95\xac\xb5\xad\xef\xba\xec\x22\x5d\x19\xe1\xe0\x8f\xd7\x46\x8f\x09\x40\xbb\x10\x8f\xba\xc1\xf3\x32\x90\x30\x0e\xbc\x66\x6e\xff\x5c\xb0\xf4\xea\x0c\x4b\xf5\x2e\x3d\x36\x49\xe6\x8b\x0c\xe5\x0d\xf3\xbd\x51\x2b\x58\x22\x19\xcf\x2d\x48\x29\x53\xff\x03\x36\x48\x73\x72\x4f\x01\xa5\x01\x1d\xd1\xbb\x37\x58\x22\x6a\x5b\xa7\x44\xf8\x2b\xd7\xd4\x55\xb9\xfc\xfa\xb9\xb9\x30\x30\xf2\x5f\x62\x6f\x06\x83\xff\x6f\xbe\xba\xa7\xf9\xd9\xe1\x96\x18\x82\x26\x88\x5e\xb4\xba\x16\x6c\x29\x82\xd5\xf6\x95\xc9\xce\x6b\x7b\x36\xfd\xf0\x23\xf7\xe1\xd7\xbb\xbf\xc0\x6a\x13\x4a\xbd\x64\x1c\xbe\xba\x67\xbe\xe6\xf3\x0b\x05\xca\x0a\xb7\x34\xc4\xcd\x24\x25\xf9\x92\x04\x4a\x34\xc2\xbf\xa9\xb8\x0d\xc7\x95\x6c\x83\xf5\x32\x6a\x99\x74\xeb\x37\x1d\xd6\x58\xbc\x0c\x3c\x59\xa4\x88\x61\x7e\x68\x91\x51\x62\xc6\x77\xc1\xb4\xf2\xc2\x3a\x04\xc0\xa4\x2b\xc4\x27\x72\xbf\x10\x16\x20\xe1\xb6\x81\xd2\x84\xfe\xa0\xac\x59\xd7\xd6\xe4\xd7\x19\x73\xfe\x5c\x83\x2f\x0d\xbb\x9e\xa1\xb2\x18\xb9\xda\x36\x1d\x38\x74\x80\x77\xeb\x23\xac\xca\x63\xda\x33\x6c\x14\x49\x4d\x32\x73\x1a\x90\x24\x48\x9b\x67\x0a\x07\xce\xe8\xfa\x83\xb0\xc1\x31\x14\x7e\x7b\xfb\x5e\x70\x16\xf8\x21\x54\xf7\x90\xaa\x7b\xa0\x09\x43\x10\x59\x85\x9c\x8f\x4d\x54\xb8\x80\xc2\x15\x09\x63\x24\xf4\x6d\xaa\x4b\xcb\xf6\x52\xb5\x85\x77\x44\x9e\x19\xc6\x02\x36\xc0\x55\x2d\xdb\x54\xef\xd4\x68\x29\x56\x48\xc8\xae\x8c\xec\x6d\xcf\x62\x7c\x33\xd2\xac\xef\xb4\x6f\x2d\xf4\x55\xba\x35\xe8\x2d\x06\x2b\x12\x5a\xc0\xd9\xb1\x72\x45\xe6\x6a\xf7\x0a\x16\x23\xde\x56\x3c\x50\x5a\x3e\x7f\x83\xf8\x22\xf6\x3f\x8e\x05\xeb\x48\x80\xd1\xd9\xc1\x16\x51\x66\xec\x19\x86\x01\x48\xb1\x19\x29\xe1\x42\xd4\x07\x8d\x65\xff\x95\x48\xf3\x35\xac\x63\xaa\x15\xad\xad\x7e\x09\x4e\xdd\x5b\xa6\x23\x1d\x22\x1b\xc4\x84\x23\xda\xe3\x10\xa5\x45\x6a\xa8\x9c\x9a\x71\x85\xeb\x74\x25\x18\xb6\x68\x44\x91\x28\x6c\x06\x94\xb1\x6c\x67\xe7\x52\x69\x43\x18\xc0\xa2\x8e\x6b\x2f\x12\xda\x92\xd2\x8e\x56\x68\x47\xbb\x87\x76\xb4\xe5\xbc\x28\x21\xcf\xf9\xba\x7c\x52\x37\x95\xd2\x3e\x58\x21\xbe\x7b\x16\x52\x6a\x42\x01\x17\x13\x50\x59\x45\x33\x1e\xb3\x74\x2c\x48\x90\xac\x58\x1d\xe6\xd4\x02\xac\xbd\xe4\x7b\xeb\x75\x55\x62\x2c\xc4\x36\x5c\x6d\x17\xa4\xf8\xee\x7f\x79\xca\x23\xe7\x98\xc0\xea\x34\x39\x9d\x21\xfe\xcd\xcb\xf3\x1c\x16\xc1\xbe\x9a\x9c\x16\x3d\x31\x0d\xc4\xf9\xd2\xf2\x93\x99\xa3\x95\x2b\xd8\xf1\xa1\xc2\xe6\xcf\x87\x27\x47\xcc\xcd\xf9\x26\xf5\xbc\x27\x66\x06\x97\xd6\x3c\xfc\x76\x23\xed\xe2\x07\x0f\xfa\x1a\xdc\x91\xef\x40\x3a\xee\x7e\x05\x31\xbd\x78\x86\x52\xc9\xe5\x55\xe8\x62\xbf\x7b\xbe\x63\x29\x80\x4c\x00\xae\xd5\xf8\xd6\xbe\x3f\x68\x6e\x70\xa4\xb5\x37\x81\x56\xbb\x0f\xb2\x93\x81\x32\x94\xa0\x59\x17\x45\x03\x51\x56\xab\x0a\x1c\x6a\x41\xc9\xb4\xbf\x28\x85\xe5\x3e\xf5\x5e\xa2\x45\x92\x98\x39\x43\x4f\x82\x1b\xc8\xa6\x23\x4f\xd2\x85\xc0\x7f\x44\xb3\xde\x51\xa9\x13\x9e\x72\xb3\xce\x0e\x65\xd8\x79\xae\x22\x9a\x35\x5a\x6a\x48\xb8\xb6\xbe\x1a\x3f\x7b\x5c\xcd\x5b\xc9\x58\x75\x96\x45\x62\xf9\x5d\x44\x2c\xee\x52\xc7\xa2\x8e\xb6\x1a\xc8\x99\xb4\xdc\x23\x67\xd4\x46\xf9\x71\x93\x89\x75\x07\x1a\x11\x26\x5f\xa9\x69\x87\x4c\x46\xb5\x5c\xd9\xf5\x9a\x37\x8e\xb6\xee\x0d\x18\x54\x2d\x10\x1b\x2f\x28\x84\x9a\x2d\xb0\x4a\xcf\x9b\x28\xf1\x7a\x64\xa6\xd2\xeb\xb2\x68\x63\xc7\x12\xe1\x01\x9f\xcf\x72\x7d\x2c\x5a\x3c\xcf\x21\x1c\x7f\x77\xf8\xec\xfb\xa7\x47\xdf\xfd\xe3\x77\xc7\x47\xa7\x0f\x0f\x03\x67\xf0\x41\x67\x7d\xd8\x43\xed\x30\xb2\x52\xc8\xd0\x98\x5a\x37\xa7\x60\x6a\x0e\x29\x2e\x55\x1e\xca\x0c\xa0\x3a\x2e\x29\x10\x15\x21\x4e\xcb\xba\xb0\x37\xb6\x84\x85\x65\x26\xda\xb9\x3b\x04\x65\x56\xed\x40\xc7\xf5\x0b\x09\x3a\xac\x8b\xdf\xfd\xef\xa0\xc1\x8c\x6e\x9c\xf6\x5e\x28\x77\x77\x52\xde\xd5\xc2\xcc\xd9\x4a\xec\xa6\x52\xb7\x10\x0f\xcc\x8a\x02\x1a\x5d\x22\xc0\xf0\xd8\x2c\x94\xa8\x5e\x8a\x1f\xa7\x89\x8c\x80\x88\xe3\xf7\x83\xdc\x96\x10\x04\xd6\x45\x18\xdd\x09\xcc\xc1\x5c\x41\x92\x1d\x8e\xae\xa7\x7c\x3d\x27\xae\x98\x9c\x8c\xd4\xe0\x24\x70\xae\x7e\x71\xe2\xac\x95\xb1\x93\xe5\x96\x08\xda\x82\x0e\x20\x37\xfd\xb0\x05\x9e\x44\xd6\x88\x77\xfe\xf0\x6b\x92\x23\x48\x92\xb4\xd4\x0e\x41\x7c\x1d\xd7\x06\x87\x3b\x5f\xe5\x27\xf7\x59\x20\xc3\xde\xe0\xad\x45\xc4\xb9\xb5\xb2\x95\xcc\xd9\x19\x09\x77\xbc\x95\x50\xc2\x7d\xca\x9a\xb7\x95\xa8\x91\x0f\xd5\x53\x2f\x56\x16\xb7\x0a\xc0\xd6\xff\x01\xa0\xac\x34\x79\xd0\x1d\x0f\x62\x52\xf7\x94\x4d\xff\xbe\x22\x52\x25\x87\x0b\x4c\x70\xa6\x3a\x57\xbc\x6e\x0e\xb7\xc2\x55\x6b\x1a\xfc\x39\x83\x2f\x67\x48\x09\x8e\x4e\xb4\xf0\xa8\x67\x93\x65\xd1\x14\xcb\xb2\xaa\x6d\x06\x8d\x10\x95\xa5\xed\x48\x67\x07\xb4\x3a\xf4\x1f\xa6\xe7\x9a\x10\x14\x1a\xac\x73\x50\x16\x79\x2d\x40\xa2\x0e\x60\x64\x4c\xce\xeb\x0a\xff\xfc\x67\xaf\x49\x28\xd7\x91\x9c\x79\x1f\x54\xbe\xd6\xa8\x48\x96\x2e\x48\x8c\xa6\x3f\x74\xfa\x17\x37\x4a\xe6\xa2\x99\x76\x5c\x9c\xe6\x96\x11\x65\x4b\xf7\xae\x06\x35\xf1\xe3\x79\x09\xb6\x7d\xe9\xbc\xa8\x85\xbb\xaa\xb2\xa7\xc7\xd5\x6a\xdd\x3a\x1a\x5e\x98\x2d\x88\x16\xdb\xfb\x75\x12\x2a\x8d\xc5\x19\x2d\x0e\x9e\xbb\xdf\x2a\x35\x4d\x91\x74\x5a\xba\x2e\xfb\x84\xed\xb8\x88\x77\xff\x74\x8f\x2e\xf7\x69\x87\x39\x33\xd2\xcc\xe4\x72\x8f\x04\xe0\xad\x4a\xdc\x7e\x05\x0a\x13\x2a\x62\x19\x4b\x60\x27\xe2\x45\x09\xed\x4d\x0b\xff\xb3\xc4\x37\x30\xb1\x24\x47\x17\x97\x72\x9a\xc2\x16\xe4\x71\xf0\x43\x0d\x1e\x7e\x71\xfe\xbe\x4d\xc7\x7b\x83\x38\x08\x93\xee\x3d\x6c\xba\x6c\x4e\x9b\xe7\xc3\xaf\x65\x20\xc3\xc6\xf3\x95\xf2\xfc\x70\xa3\xaf\xfa\xd3\xa3\x20\x93\x05\x9d\xe2\x44\x10\x73\x08\xa8\x6e\x7a\x1f\x5f\xd9\xa1\x7c\xed\x01\x8a\xb8\x52\xe5\x6c\x4c\xe4\x3e\x74\xef\xfb\xa3\x67\xec\x35\x44\x0c\x3c\x54\xa7\x6b\xef\x36\x05\x5b\xe7\x49\x57\xa5\xbf\x3d\x64\x18\x31\x84\x3e\x92\x24\x2d\x86\xa4\x03\x38\x57\xe5\x95\x95\xd1\x67\x79\x08\xf5\xf2\x54\xb0\x2f\xd9\x02\xe3\x33\xd1\x25\xb1\xa2\x09\x61\x42\x20\xbf\x33\xfc\x8e\xe8\xc3\x8c\x56\xf4\xd9\xf4\x1f\xe8\xf8\x25\xb4\x51\x05\x72\xe2\x61\xc6\xc9\xec\x65\x2f\xd0\xf1\x9c\x4f\xa1\xed\xf5\x6c\x5d\x94\x2b\x3a\x4b\xe0\xc2\x4e\x29\xb4\x09\x57\x74\x4e\xcf\x90\xa5\xa9\xd0\x80\xe2\x52\x82\x0e\xd7\x55\xd3\x5e\xb2\x51\x2f\x8c\x9f\x24\x5b\xac\x37\xa1\x91\x59\xb5\xc4\x4a\x77\xcc\x12\x2a\xc3\xc0\x8e\xb8\x63\x26\x12\x33\x1f\x9f\xac\xd4\x8e\x9d\xb3\xbe\x21\xf1\x79\xc3\x2e\xb5\xac\xec\x24\xa9\x57\x2e\x8f\xa6\x1f\xce\xe6\x44\x7a\x56\x1f\x46\x52\x70\xe4\x6f\xcf\x32\x33\x14\xe1\x1f\x80\xc9\xbe\x62\x23\x8c\x63\x0b\xd1\x19\xfe\xaf\xf2\xfd\x5c\xbf\x5a\xd8\x67\xc3\x94\x4b\xee\x92\x93\x1b\x16\xce\xe9\xe4\xe4\xde\xed\x4b\xbd\x0a\xb4\x96\xe5\x93\xb2\xea\xfc\x24\x8c\x10\x4e\xda\x1c\x7f\x6a\x31\x96\xcb\xb6\xc8\x2d\x9d\x99\xce\x74\x3a\x00\xe3\xc7\x06\x64\x49\xd6\xf1\x43\xee\xba\xdc\x3a\xa6\x6b\x39\x32\x38\x66\xc2\xbb\xa8\x36\xb8\xeb\xee\x5b\x1d\xc7\x85\xf4\x3a\x9c\xf8\x88\x9c\xd5\x5e\x2d\x0c\x96\xb0\xbe\xa4\xad\xe3\x60\x99\x58\xdc\x78\xd3\xbc\xb2\x8a\x0a\xc1\x72\x50\x6f\xe0\x2e\x40\xae\x7a\xe7\x09\xba\xac\x84\xef\x50\x69\x5d\x53\x5b\x30\x24\xe0\x08\xf4\x76\x0f\x5e\xfc\x8d\x59\x3a\x01\x61\x7f\x48\xfa\x2c\x7c\xbe\xf5\x19\xb8\x15\x64\x5f\xee\xe5\xb8\xef\x35\x9c\xb6\x29\x85\xfe\x66\x4f\xd5\x75\x1b\x02\xec\xdc\xae\x61\x51\x8f\x7f\xd8\x76\x44\xc4\x1b\x1a\x50\x47\xf4\xc0\xff\xc4\x32\xdd\x6c\x8a\x06\x97\x72\x97\xbb\x37\x37\x72\x35\x44\x4c\x2c\x74\x65\x6c\x8d\x9f\xd3\xe4\x62\x3e\x71\x7b\x51\x1b\x58\x01\xc3\x80\xb0\x16\xf7\x2a\xa7\x19\x34\x43\xec\xc8\xfd\x9c\x6d\x17\x6b\xab\xc9\x6c\x71\x8e\x42\x4f\xd5\x8c\xa0\x8c\x0b\xb7\x0a\x45\x0b\x7f\x63\x78\x83\x9d\xf8\x5f\xac\x50\x16\xc4\x26\x63\x08\xfa\xbc\xd4\xad\x9c\x26\x60\x08\x72\x06\xb1\x52\x01\xba\x54\x50\xed\xaa\x16\x8b\xb8\x08\x78\x43\xc4\x0d\xfa\xf7\x7f\xd4\x6b\xa7\x28\x0b\x1c\x34\x3b\x79\xc4\x89\xe2\x1a\xf0\x1c\xce\x09\xab\xa2\x4b\xa6\x65\x48\xc9\x3f\xb2\x02\x70\x55\x44\x66\xf6\x88\xec\x00\x3d\xcc\x11\x3e\xe3\xd4\x49\x6f\xb2\xa2\x9c\x12\x6c\x04\xa5\xd2\x8a\xcc\x38\x3b\xc9\x5d\xd0\x4c\xd5\x33\x2d\x7d\x1f\x1f\xd9\x7a\x58\x47\x98\xfb\x6e\xea\xfb\x6d\x74\x20\xd4\xce\x38\x94\xb4\xd5\x01\x4a\x73\x9b\x51\xd8\x6a\x4b\x42\x4c\x07\xfa\x84\x3e\xb3\x78\xd9\x25\xd5\x56\x0e\x66\xc9\x51\xbd\x48\xd8\x07\x4e\x07\x1f\x62\x5a\xd8\xe9\xa1\xfe\x18\xc1\x31\xc0\x08\x8a\x66\x0c\x12\xba\x1b\x0f\x46\x5d\x1e\xc0\x08\x49\x99\xde\xe7\x7f\xc3\x19\xf3\x93\x42\xb3\x39\x98\x15\xc9\x9b\x11\xa7\xb4\xb0\xde\xd7\x04\x29\xcc\x56\x70\xf0\x83\xa4\x0d\xad\x4a\x5b\x4a\x6b\xe3\x71\x6c\xcc\x7c\xfa\x51\x9e\x61\x10\xbb\xa2\x18\x24\x9f\x23\x23\x16\xf2\x68\x5b\xc1\xd1\x40\xaa\x4d\xeb\x8b\xb3\x88\xf9\x99\x09\x8f\x87\x01\x08\xdc\xde\x7a\xac\xc0\x5d\x2b\xa8\x0f\xb2\xa7\xde\xe1\x42\xd1\x82\xfb\x67\xb4\x03\x58\x16\x94\xbe\xa7\xe2\x7d\xc5\x98\xe1\x7a\x46\x7f\xc6\x32\x26\xf0\x3a\x52\x52\x7a\x48\x74\x53\x7e\x8e\x43\x3a\x8d\xa2\x42\x47\x3e\x71\x08\x1e\x4d\x56\xe5\xd0\xf7\x68\x19\x99\xd9\x7c\x36\xbf\xe6\x22\x32\xb7\xec\x00\xba\xaf\xc4\x06\x26\x22\x55\x09\x7f\x42\x94\x78\x1c\x3e\xc7\x4a\x38\x76\x61\x67\xf7\xf5\x61\xc6\x04\x1c\xba\x6b\xb0\x36\xad\x1b\x87\xc0\xa2\x24\x88\x27\xfc\x6f\x14\x82\x38\x2b\xc2\x40\x34\x07\x44\x7b\xf1\xb1\xbe\x56\x4d\xc2\x60\xa5\x49\xab\x16\x57\x37\x52\xe0\x11\x7e\x67\xf5\xbb\x14\xdb\x54\xae\x01\xe1\x84\xee\xfa\x31\xfd\xce\xf4\xe3\xae\x56\x3c\xbc\x34\x33\x2c\x80\x5d\xc3\x83\x3f\x95\x5f\xd9\x47\x3f\x7f\xfe\x8b\xc3\xe8\x77\x37\x03\x3f\xff\xe1\x17\x62\x8b\x3e\xfa\xf9\x8b\x5f\x58\xfd\x3f\x2c\x3b\x3b\x33\x2b\x3b\xa8\x80\xcb\x05\xe0\x2d\x1d\x39\x45\xd5\xe2\x34\x96\x1f\x11\x19\x78\x81\x19\x78\xd1\xf4\xb6\x32\x6b\x25\x86\x3b\x39\xd7\x9c\xde\x4e\x2e\xdb\xcd\x4c\xbb\xe7\xb0\xd1\xfd\xef\xae\xb0\xef\xfb\xcc\x34\xd3\x5f\xc3\x17\xfa\x59\xe4\xe8\x25\xa1\xed\xd9\xc0\xbf\x93\xaf\xaf\xb9\x0b\xe8\xf3\xaf\x5d\x3b\x55\xb8\x3f\x78\x76\x6e\x49\x36\x65\x71\x27\xdc\x67\x5c\xdb\x66\xd2\xa3\x3c\x12\x94\x85\xd1\xed\xe5\x28\x12\x31\x84\x78\x49\x4b\x7a\x80\xae\x2d\x8f\x88\x80\x3d\xe5\x8f\x7e\x5e\x5a\x95\xc0\x8c\xd6\xa5\x84\xd4\xaf\x8b\xfb\xfd\x6c\x19\x62\x1e\x22\x39\x5c\x7e\xe7\xf8\x08\x3e\x5a\x85\xff\xf8\xbd\x95\x08\x7b\x40\xec\xe5\x99\x56\x73\x46\x23\x4d\xc2\x7c\x2e\x92\x37\x43\xb1\xc8\x42\xa2\x8d\xc0\xfe\xde\x16\x48\x90\x69\x38\x8c\x04\xfe\x85\x54\x76\x49\x13\xc3\xfe\x6e\x31\xb2\x96\xea\x09\xfe\x86\x34\xef\xec\x45\xbc\x3b\x89\x4b\x44\x8f\x4f\x29\x81\xf6\x2e\x5f\xc5\x20\x21\x85\x2c\xca\x99\x77\x0a\x60\xc6\x9e\xa8\x21\x8c\xbf\xa4\x33\xb4\x72\xe0\x2e\xab\x4a\xcf\x43\x95\xa9\x58\x37\x4e\x12\xa3\x6a\xdf\xbe\x49\x2f\xea\xb8\x39\x54\x50\xf9\xf9\x4d\x36\xa6\xcd\x8b\x66\xfa\x1d\xfd\xe9\x06\x54\x0c\x4a\xee\xf3\xbf\x0e\x39\x6a\x64\x7a\xca\x11\xb6\x34\x45\x4e\x3b\xd9\x60\xdd\x41\xdc\xcb\x5e\x54\xeb\xca\x9f\xd3\xfc\x7b\x90\x0f\xe5\xe3\x47\x79\x9f\xbf\x92\xdc\x6e\x29\xf3\x3e\xe5\x85\xda\x3b\x52\x04\x70\xd8\x0b\x49\xf7\xe6\x58\xfc\xaf\x97\xa7\x3e\x2c\x82\xdb\x63\x7c\xa8\x06\x77\xac\x0e\xa8\xbc\x05\xb2\x53\x71\x8f\x42\x0d\x55\xdc\x9c\x9f\xa8\xb4\x0b\x78\xe3\x95\x50\x9b\x88\xc6\x98\x66\x27\xd6\x72\x6b\xbd\x77\x28\xb5\xc7\x5b\xee\xbc\x7d\xd1\xe0\xdb\x2e\xe7\x54\xbe\xc1\xfe\x81\xa1\xc7\x4c\xcc\x39\x1c\x76\x39\xbe\x33\xd1\x26\xba\x3d\x60\xd2\x4d\x0f\xdb\x5c\x55\x99\x17\xae\x98\x92\x6c\x88\xc8\xd3\x7e\x43\xd1\x4c\xc3\x5e\xf1\x7a\xd7\xd2\x93\x7e\xad\x73\x12\x8c\xa6\xf8\x33\x68\x4e\xfe\x4f\xf5\xbf\xcf\xd6\xb3\x4b\x45\xc1\x3f\xf2\x97\x62\xe0\x41\x88\xf8\x22\x88\xc5\x9a\x48\xfc\x71\x95\xe9\x4f\x42\xa2\x2d\xf3\x49\x07\x03\x2b\x85\xa5\x68\x1d\xa4\xa1\x88\x50\x73\x9e\x37\x58\x40\x37\xe7\x76\x61\x5a\xa2\xbb\x40\x94\xbb\x79\x4e\xfb\x2f\xea\x38\x81\xd8\x4b\x5b\x86\xea\x61\x2a\x1c\x47\xfe\x9a\xfe\x1a\x6a\xf7\xfa\x90\xde\x18\xcd\x6d\x73\x85\x39\x6b\xce\xd9\xac\x81\x86\x55\x74\x0f\xee\xcb\xf8\x8c\x25\x42\x75\x8f\x5b\xb8\x87\x83\x36\x57\xa2\xf5\x77\xfc\xa1\xa4\x4b\x47\x31\xe1\xb6\x63\x49\xd6\x43\xf0\xf6\x95\xc9\xc4\x3a\x63\xfb\x8c\x8d\xa5\x26\xf9\x6c\xce\x95\x62\x3a\x21\xa0\x5f\xc1\xfb\xcd\x53\x48\xfe\x0d\x55\x62\x15\xd2\xbf\x08\xe9\xbe\x7a\xae\x4a\x4f\x61\x69\x45\x52\xfe\x6d\xb5\x53\xe9\xff\xf4\x4b\x58\x99\xc4\xad\xcf\x62\xc2\x48\xab\xb2\xfb\x48\x81\x44\xe6\xbd\x2f\xff\xe3\x2c\xd6\xc5\x62\x1d\x21\xa6\x15\xaf\xd1\xdc\x67\xeb\xa1\x49\x4b\x84\x51\x9f\x9e\x88\xc5\x8b\x24\xeb\x25\x56\x3c\x85\xb0\x72\xb7\x35\x36\xb7\x0e\x24\xc1\x49\x0c\x91\x49\x3a\x2a\xc4\x8c\xd6\x51\x3b\x58\x2c\x9a\xf1\x6c\x50\x69\xd8\xcc\x3a\x7c\xbd\xbd\x2c\x35\x10\x37\x68\x68\x4b\xc8\xe5\x1d\xfd\x0e\x37\x01\xe3\x55\x09\x64\x96\xd3\xf1\x88\x08\x4b\x4a\x45\x50\x88\x15\x78\x11\x81\xea\xb6\xab\x29\x67\xac\xe4\x66\x34\x64\x42\x55\xf1\x17\x3a\x8d\xfc\xcf\x7a\x3d\xcf\xaa\x91\x91\x8a\x6b\x65\x85\xf1\x78\xc5\x1f\x37\x77\x57\xed\x37\x65\xc3\x5b\x0b\x7b\x10\x37\x5c\xeb\x62\xd1\xb8\xb0\x9d\xbc\x0a\x61\x7f\x8b\x3e\x54\x94\x4c\x2e\xea\x53\x65\x57\x86\x40\x3a\x34\x40\xd5\x1a\xa3\xe4\xaa\x35\xd3\xef\x74\x2a\xd3\x4d\xce\xd3\xda\xdb\x6c\xb1\xa2\x28\xe8\x2b\x22\x99\x2f\xca\x1d\xca\xa6\x51\xe6\xa8\x7c\xda\xcf\xcf\xbd\xac\xff\x91\x4b\xdb\xad\x66\x34\xd9\x33\x16\x25\x88\x24\x62\xe2\x73\xbe\x75\xe8\xb5\x3e\x1d\x6f\xd6\xb3\xa5\x69\x4f\xe8\xd4\x99\x83\x0c\xd2\xe0\x29\x99\xe9\xf2\x31\x62\xea\x9f\xa0\xf7\xa4\x7a\x70\xa5\x95\x27\x44\x6a\x7c\x50\x84\xcb\x60\xe7\xce\x24\x5d\x0f\x5b\xb7\xa8\x8b\xad\x6c\xf7\x38\xd3\x77\xf6\x01\xf5\xf4\x01\x2a\xff\xc4\xc7\xd1\xfa\xb4\xd7\x3d\x6b\x6a\xd1\x6a\x24\xe9\x21\x20\x89\x56\x34\x93\x1d\xc1\xf5\xf1\xdd\xaf\x7c\x83\x9e\x2b\xe8\x41\xb6\x69\x99\x8c\x67\x1f\x5f\x53\x6d\x9f\x6d\x36\x9f\xe5\xf9\xc7\x63\xfd\x0d\xa7\x75\xe8\x70\xcf\x7e\x48\x65\xdd\xfe\x56\x8f\x2a\x0a\x4c\xcf\x9e\x41\x43\x7e\x34\x3d\x3f\xe1\xe4\xb2\xb8\x7c\xc9\xf2\x6e\xc4\xf8\x58\x8e\xa6\xcc\x81\x7c\x55\xdb\xb5\xcd\xae\xf8\xbe\x7b\x2e\xfb\x49\x4d\xae\xe2\x6e\xa4\x6c\x62\x94\xe3\x9d\x83\xf9\xdf\xdd\xb8\xc9\x10\x28\xab\x01\xd2\xb3\xd9\x33\x1a\x60\x3f\xef\x1a\x8b\xc0\xa4\x75\xc3\xd9\x31\x6a\x23\x70\x43\x36\xad\x6b\xf9\xdf\x95\x55\x1b\x6b\x7b\x38\xf5\x6f\x67\xd6\xf6\x44\x2c\xf5\xc9\x13\x59\xd9\x8e\xf6\xae\x7a\x22\x84\x9c\x28\x0e\x0a\xac\xcb\x42\x04\x94\x08\xe4\xbc\xaa\x56\x6e\xfa\x0c\xde\x89\x2b\x44\x58\xd9\xbd\xdc\xfd\x35\xae\x7c\x59\x34\x02\x82\xe0\x88\xfd\x4c\xe2\x86\x8a\x45\x17\x1a\xf5\xc4\x6c\xf8\x22\x7f\x0c\xc9\x1c\xf3\x5c\xcf\x6e\xa0\xf1\xfa\x96\xad\x94\xe0\x7d\x44\x9f\x31\x32\xec\x2a\xf0\x44\x83\x08\x51\xf6\x26\xf6\x1a\x08\x50\x6a\x62\x1d\x9a\x0d\x81\x62\xba\x96\xdb\x64\x14\xc4\x5a\x19\xb7\x09\x72\x55\x29\x06\x17\x72\xdd\x26\x17\xe7\xf1\x55\xf9\x79\x75\x05\xca\xbf\x72\x3a\xd5\x98\x55\x58\x16\x75\xd7\x5a\x93\xa8\xf2\x86\x58\x40\x47\x72\x67\xc0\x22\xf2\x92\x1a\x01\x93\xc5\xe7\x61\x39\x20\xe3\x1e\x47\x2d\x04\xb4\x92\xa0\x70\x51\xa0\x30\xd8\x4b\x24\xee\x61\x62\x3f\xda\x45\x83\x18\x8f\x70\xe5\x62\x8c\x39\x08\x2f\xbb\x71\x82\xef\x70\x72\xe5\xab\x71\x7f\x0d\x2e\xee\x23\x7f\xcd\x8d\xf7\xdc\x89\xe3\xf8\xc2\xe6\x95\x30\x7f\x99\x77\x46\x14\x6d\xdc\x40\xea\x08\x33\xbc\x5b\xea\x01\xea\x7e\x64\x8b\x92\xde\x95\x37\x9b\x64\x70\xd4\x51\xb1\x61\x72\x7d\x0b\x26\xc4\xf4\x6a\x96\xb7\x6f\x1a\xef\x76\x19\x0c\x53\x5c\xe2\x88\x08\xd3\x72\xf5\xa6\x6d\x70\x1b\xc8\x2e\x2d\x9d\xdd\x49\x95\x89\x1d\xd4\xd8\xc4\x72\x7c\x3f\xda\x90\xb3\xcf\xa7\x9f\x65\x60\x4c\x78\xad\x88\x12\x46\x4c\x88\x8a\x33\xb6\x9f\xe6\x31\x65\x06\x9f\x48\x45\x5e\x5c\x16\x79\x6b\xd6\x1c\x9e\xee\xce\x6a\xff\x10\x57\x4b\xd4\x83\xef\x76\xf7\x56\x5d\x66\x71\x50\x67\x96\x44\x08\x86\x08\xd0\xc7\xc4\xfd\x80\x9c\x30\xe3\x67\xa5\x84\x1b\x6d\x18\x14\x4d\x65\x77\xe5\x79\xd8\x01\x37\x0b\xfe\x5d\x09\xd5\x13\x92\x06\xb3\x21\x39\xc6\x03\xf7\xf5\xe5\x70\x22\xe3\x91\xe2\xdd\xd5\xb1\x6a\xde\x70\xe6\xfe\xe1\xf1\xf1\x93\x67\x9d\xb9\x32\x8c\xf8\xca\x9c\x10\x1f\x2e\xa0\x64\x84\x7a\xd5\xf1\x60\xf1\x3d\x57\x29\x0a\xd1\xdc\x06\xb3\x72\x92\xc3\xea\x6b\x11\xe0\x3c\x17\xdc\x6d\xdd\x03\xea\xdc\x62\xdd\xe6\xc8\x05\x45\x03\xe3\x7c\xa0\xb4\xfc\x20\x68\x03\x79\x5c\x63\x8b\xb3\x8e\x90\x56\xe9\xa8\xf6\x50\xe5\x9b\x71\x74\xff\x68\xd0\x72\xc6\x3c\x30\x8c\x94\x0f\x3a\x6b\x9c\x60\x87\x00\x56\x76\x63\xb1\x70\x2c\x71\x60\x39\x74\x84\xe6\x4c\xce\x6b\x39\x39\xde\xd6\xe8\x1f\xf6\x37\x2a\x26\x44\x63\xad\x7a\x6b\x37\x18\x0f\xd2\xc8\xb1\xcd\x74\x53\x6c\xee\x9a\x0c\x6e\xec\x0b\x69\x2c\x3e\xf7\x56\xd6\x6e\xa3\x16\x52\xe4\x23\x67\x01\x26\xb7\x9d\xa9\xd4\xc8\x14\xb1\x18\x25\xd6\xdc\xb4\xec\x5c\xb2\x29\x7b\xa4\x3f\x1c\xa7\x89\x19\x58\x25\xe7\xe0\x3e\x07\x30\x33\xbe\x2d\x44\x81\xc7\x44\xb0\x88\x3d\xba\xe3\x93\x04\xba\x8d\x59\x9f\xe2\x8f\x55\x26\x26\x9e\x79\x8a\x57\x54\x67\x0f\xb7\x60\x1b\x95\xa0\x96\x9a\xeb\xed\x35\xd3\x0b\xf0\xb0\xb9\x8e\x17\xea\xc0\x61\x84\x0d\x16\xe4\xba\xb8\x7f\x3e\xf5\xcb\x76\xbe\x17\x6c\xa4\xda\x2b\xe9\xed\x94\xa5\xf6\x04\x69\x59\x52\xe3\x75\x3d\xea\xd7\xc2\x96\xae\xea\x56\x9f\xd4\xc2\x6e\xfb\x05\x7b\x5b\xcf\x24\x22\x57\x14\x9f\x1b\x8d\xef\xf1\xb4\x86\x09\x75\x69\x11\x8d\xb2\x81\x69\x47\x87\x22\xdb\x7b\xf4\x7b\x31\xe9\x0d\xc0\x95\x9d\x83\xd7\x89\xc6\xad\xd9\xcb\x17\x31\x53\xa4\x76\x3b\x29\x50\x06\xf7\xd4\x0b\xef\x6b\x09\xa6\x49\x82\x79\x6d\x34\xba\x2b\x7e\xc1\x27\x9e\xea\x97\x67\x11\x36\x62\xc8\x52\x6d\xe8\xa7\x76\xa1\x62\x83\xf1\xee\xe1\x88\xdd\xcb\x49\xf6\xd0\xe4\xcc\xe2\xec\x5e\x3a\x7d\x6c\x20\x77\x6a\x02\xb3\xe1\xae\xd3\xea\xdb\x68\x6b\xd4\x59\x29\xc8\xf1\x6c\xd4\x08\xb3\x8b\x00\x76\xf2\xe4\xf4\x59\x12\x81\x9e\xf8\xd8\x47\x08\x1f\x7d\xc3\x21\x4a\x10\x88\x76\xf7\x66\xc5\x2e\x1e\x9d\x33\xc9\x9d\xd6\x30\xe9\x18\xb4\x59\x5d\x51\x3f\x60\x99\x45\xc7\xc8\xee\xa5\xba\x83\x84\xc1\xd3\x81\xee\xf4\xab\xca\x8d\xff\x0f\x49\xbf\x03\x72\xc8\xbc\x2b\xc4\x9d\xac\x3b\x93\x73\xca\xa6\x5a\x0a\x9c\x0e\x99\xda\x57\xdc\xe9\x02\xb1\x17\x05\xbf\x9c\x15\xdb\xb7\x72\xf0\xfd\x9a\x26\x5e\x5d\x10\x74\x04\x23\x10\x6e\x0b\x56\x00\x81\xea\xf9\xc7\x08\x8c\xc8\x76\x6e\xfa\x83\xfc\x1f\x81\xd8\x4a\x78\xa3\xa9\x86\x39\x1a\x81\x98\x57\xf9\xf5\xf4\x5b\xfa\x33\xc2\xf1\x6b\xb4\x7e\x65\xfb\x5b\x89\x47\x26\xa6\x26\x1c\xcc\x01\xcb\x73\x22\xce\x07\xe2\xc9\x87\x0d\x0f\xa7\x29\x84\x0b\x85\x6b\x44\x86\x18\x03\x62\x57\xe9\xbc\xc3\x14\x78\x7e\x0e\x36\xa6\xd1\xc4\xb0\x03\xf8\x31\x04\x62\xf7\x97\x15\xa2\xa5\x84\x28\x8d\x93\x21\x4e\xac\xec\x57\x9f\x68\xdd\x6d\xea\xc1\xb9\xa2\x85\x7d\xe9\x0e\x64\xa5\x7b\x47\x0b\x36\xae\xdf\xc0\x83\x89\xb7\x3f\x61\xe4\x5d\x4d\x26\xd9\x61\x03\x64\x2e\x2a\xe9\x9d\x86\xe1\x6e\x25\xec\x12\xf8\x4e\xe3\x7c\x5d\xea\x3d\x3b\x8a\x0f\xdb\x20\xef\xfe\x27\x2a\x88\x8c\x8f\x07\x60\xfe\x2a\x50\x20\x9d\x3a\x14\xf5\x4f\x35\x85\x86\x12\xbf\x1a\xca\x5a\x11\x81\x92\x11\xf8\xe9\xa6\x8b\x27\x52\x8d\x6e\x73\x51\x9f\x62\xb3\x7b\xed\x69\xb2\xe7\x33\x21\x42\xa0\x1f\xe2\x32\x6d\x37\xc9\x7c\x76\xd1\x4a\xd8\xce\x9c\x83\xff\x6b\xa8\x6e\xb1\x3f\xcf\x3b\xe6\x3c\xf0\xd2\x12\x6a\xb7\xc9\x3e\xf9\xf1\xf4\xc9\xf1\x81\xa2\xf0\xe2\xb3\xab\xab\xab\xcf\x50\xf6\xb3\xb6\x5e\xdb\x12\x89\xb9\xc7\xe9\x2b\xbb\xf9\xba\x6d\x9a\xc9\x57\xf7\xe8\xc7\xa7\xb4\x25\x6d\x03\xf3\x59\x3c\x6e\x83\xf5\x23\xfb\x58\xc3\x49\x10\xe5\x8f\x58\x7f\x4f\xae\xfe\x3d\x49\x93\xee\x19\x0e\xf6\x9e\xc6\x04\x8b\xcf\x65\xcc\xa6\x98\x43\xb0\x77\x18\x04\xad\x6d\x3c\xa3\xce\x2e\x6a\x0b\xa3\x0a\xf8\x96\x6d\xd3\x45\xe1\xd6\x66\xb1\xea\x7c\xcf\x7f\xd2\x1f\x03\x88\x82\xda\x61\x34\x8e\xe8\x47\x0f\x05\x81\x90\x1b\xb6\xfb\x72\xb7\x16\xf2\x70\x0f\xa1\x9b\xe4\xa1\x0a\x69\x3c\xc7\xb0\xd6\xbb\x69\xd7\x8d\x44\x5a\x6f\x78\xe3\x15\x37\x58\xb4\xd0\xfd\xeb\x20\x21\x5c\x0f\x6f\xab\x6f\x06\x35\xb2\x41\x5f\x55\xae\xaf\x39\x6c\x74\xe1\xcd\xf8\xda\xb0\xe2\x54\xee\xd2\xe6\xb0\x9a\x06\x75\x70\x28\xbf\x8e\x41\x9f\x1e\x21\xec\x46\x1e\xa4\x83\x2e\x27\x36\xac\xef\xd5\x21\x4e\xe4\xd3\x47\xb6\xc9\x36\xe0\x28\xf1\x95\x5d\xc1\x2b\x48\x6a\x1b\x29\x11\xab\x19\xf7\xe4\xca\x80\x7d\xcb\x17\x3a\x07\xb0\x88\x6d\xcc\xd2\x2b\xe2\x46\x87\x62\x7a\x42\x7f\xc6\x07\x29\x10\x4e\x7c\xb1\x7f\x52\xc4\xde\xc6\x5b\x9a\x03\x5d\x22\xb6\x25\x88\xd7\x20\x23\xd8\x2e\x27\xdb\xba\x48\xf7\x2c\x0e\xfe\x1c\xb9\x4a\x9a\x39\x72\x8a\xd3\x49\xec\x33\x38\x4c\x3c\x52\xce\xae\xc7\xe1\x0c\xbd\x8f\xc6\xd9\x3c\x25\x59\x9e\x63\x7a\x1c\x4c\xfb\xf7\xf1\x4b\x5a\x20\xc1\xa0\xc7\x38\xb9\x66\xbf\x4f\xfc\x98\xd0\xe5\x1b\x57\x45\xc3\xfe\xb6\xc5\x6c\x66\xa6\xa7\x3f\x22\xa6\xa8\x07\x22\x86\x4b\x63\xdb\x5b\xd7\x63\xee\x64\x7b\x0b\xc5\x56\xc3\xf2\x64\x2c\x65\x0b\x76\xe4\xf8\xe4\xc8\x33\x8d\xe9\x1d\x3c\xc0\xd8\x40\x18\xa6\xf7\x6a\xab\xde\xaa\x2b\x4f\xa4\xeb\xe0\xd7\x43\x7a\xfb\x5b\x9c\xb1\xd8\xe1\x6c\x48\x40\xfa\x4f\x77\xf4\x69\x03\x49\x5a\x78\x22\xe9\x21\xa2\x6b\xac\x5d\x32\x7a\xdb\x75\x75\x2d\xee\xd0\x47\x37\x97\xcc\x56\x27\xc1\x50\xe2\x5e\x76\xc0\xd3\xc3\x3c\x27\xda\x8c\x4f\xf8\xa8\xc6\x0a\xa5\x6a\x16\xd7\xf9\x0f\xea\xb3\x07\x15\xb2\x78\xc2\x9a\x12\x02\x3a\x97\x24\x88\x44\xfa\x8a\x95\xfb\x23\x18\x86\x93\xf3\xbe\xfc\x8f\x80\x52\x9f\xe1\x07\xa1\xfa\xfd\x3e\xc3\x71\xc9\xce\x71\x38\x2a\xf9\x4e\x8e\xc3\xc9\xf0\xf4\xfd\x81\xbb\x5e\xbe\x8b\x4b\xf0\x58\x87\xfb\x2c\xf1\xe8\x88\x8f\xc0\x0f\x19\xe3\x3c\xee\xd8\x3b\xf8\x06\xf7\xc4\xf0\x77\xe2\x8d\xc7\x10\xf1\xe3\x11\x0d\xec\xdb\x75\xdc\x79\x71\x76\x36\x99\xd7\xd5\x95\x83\xc7\x2d\x9e\x7d\x60\x2f\x53\x7d\x7e\xa0\xb8\xb1\x17\x12\x57\xb5\x55\x50\x5c\xca\xd3\xb2\xb8\x64\x4b\x61\xa7\x89\x72\xd7\x37\x0d\x56\xcb\x9a\xcc\x97\xa3\x69\x8c\xfb\x53\x31\xde\x8f\x62\xb6\x72\xc8\x18\x0e\xb2\x57\x58\x8b\xc0\xe8\x13\x2d\xed\xce\xab\xab\x19\x7e\xb1\x03\xb1\x0b\xa6\xd7\x6e\x50\x05\xf2\x11\x1c\x7b\xe5\x91\xe4\x02\x32\x31\xfe\x84\xfb\x28\xf7\x91\x43\x34\x02\x49\xe7\x42\x06\x76\x2c\x02\xdb\x1a\xc4\x9f\x47\xf5\x17\x7c\x98\x76\x70\x91\x1f\x1a\xc1\x79\x4d\x00\xf1\x33\x01\xc4\x8f\x27\xd1\x87\x6f\x8f\x8e\xf5\x8b\x8d\xc7\x25\xe0\x90\xf1\x8c\x9d\x3a\x3d\x05\x0b\xf5\xc9\x88\xa5\xba\xcf\x12\x5f\x00\xfe\xed\xb5\x02\x02\xd3\x19\xb8\x4f\xf2\xda\x9c\xe1\x1a\x74\x5d\x76\x8e\x5c\x92\xb3\xad\xad\x2f\xcc\x9a\xda\xe2\x06\xa5\xf9\x59\x2e\x7d\xdb\xcf\x43\xd2\xa8\xf1\x14\xd1\x3f\x9a\xad\x2e\x9d\xef\xbc\x58\xc6\xe8\xd2\x0c\x84\xa0\x68\x70\xbb\x41\xea\x4c\xd7\xc5\x35\x4a\xe2\x7d\xae\xaa\xed\xed\x6b\x7d\x07\x49\x90\x8f\x1b\xe6\x75\x27\x71\x7e\x8f\xc2\x8a\x8b\xfa\x40\x2c\x81\xf7\x01\x5e\xf6\xbc\x0d\x3d\x00\x33\xa1\x12\x59\xac\xe8\x95\xf4\xf7\xcc\xac\xda\x62\x91\xe2\x40\x23\xee\xab\x80\x6d\x5d\x45\xb2\x87\xc6\x83\x63\x37\x0b\xf6\x42\xf1\x4e\xd2\xcb\x76\x32\x98\xa7\x60\x83\x25\x7d\xc9\x2e\x8b\xda\xf5\x47\xde\xb3\xab\xa0\x6e\xb3\x4d\xae\xf1\x0c\x78\xb5\xc5\x07\xd5\x63\x53\xaf\xf2\xea\xaa\x14\x13\x31\x5f\xf8\xaa\xc6\x95\xcc\x53\x7d\xd7\x31\x99\x4e\x7e\x9b\xe4\x84\x8e\x53\x04\xaa\x5d\x71\x4c\x13\x91\x2b\x86\x4d\xc7\x86\xdb\x3f\xdd\x68\xf8\x79\x8e\x80\x92\xb7\xde\x77\xa5\xed\x8a\x81\x01\xe7\x37\x0f\x44\x0d\x22\x51\x7b\xac\x3e\x72\xd7\x5f\x4e\xde\xe3\x94\xa6\x94\x95\x52\xb4\xb6\xd6\x61\x38\xfa\x6b\x2b\x2a\x96\x32\x57\xfe\xa9\x33\xf6\xa6\x66\x0e\xca\x2f\x6e\x26\x0a\xfc\xc2\xa4\xeb\x1e\x41\xc0\x4d\xc2\xd8\x13\x3a\x31\x86\x1c\x9c\xeb\x3c\xcc\x77\xe3\x6b\x8c\x3a\xca\xcf\x44\xc8\x9e\xe9\xc2\x1a\x6d\xfc\xee\x69\xd3\xb5\x1f\x36\x9f\xc8\x87\xc3\xda\xfc\xf2\x9c\xe9\xa1\xa5\x71\xee\x1e\xf9\x8e\x74\xd7\x36\x4d\xbc\x7e\x39\xb2\x4a\x16\x45\xc1\x7c\xff\xbd\x9f\xab\x7a\xf9\x4b\x14\x9c\x55\xa7\x6e\x5f\x60\xd6\x18\x32\xf2\xb6\x4d\x2e\xaa\x86\xfe\xb6\xec\x9c\x03\x8f\xdb\x83\xbd\x2e\xb7\x1a\xfc\x50\xa2\xc1\x68\xd5\x24\xf6\xf6\x94\x7f\x3e\x2a\x3a\x8b\xbf\xca\x25\x1b\x1f\x5d\x2b\x8a\xda\x23\x41\x7b\xa2\x70\xdd\x20\xac\x93\xe0\xeb\x84\xc8\x8e\xc1\xbd\x29\xc1\x5d\x9d\x4f\xd5\xe8\x5a\xc3\x84\xb3\xe4\x09\x4b\x22\xbe\x32\xf7\x7e\xe5\xfc\x50\xcb\x25\xde\xd1\x73\xd5\xc6\xe2\xb2\xf3\xa7\x1b\x53\x2c\x44\x4c\xe5\xf5\x2e\x31\x6b\x5d\x08\x52\x8b\x70\x68\x57\xfc\xe2\x00\xd4\x9c\x6e\xca\x1e\x5e\x73\xe8\x27\x0b\x9f\x95\x04\xfb\xeb\xbd\x74\xd1\xf9\x69\xa1\xda\xe1\xab\x10\xfc\xdc\x8b\x0c\x63\xcf\xc5\xb6\x8b\x61\x3b\x16\xe4\x9a\x73\xf7\x95\xf0\x73\x81\x90\x8f\xdd\x32\x0a\xef\x1c\x89\x8e\x45\x5f\x06\xa0\xa3\xab\x80\x93\x59\x40\x06\xaa\x20\x38\xf2\x84\xf0\xbd\x68\xc5\xd7\x18\x50\x31\x69\xab\xb8\xeb\x29\x9c\x0b\x8c\xce\x43\x79\x5c\x37\x7e\x1c\x8f\xf6\x65\xe1\x43\xb2\xf2\x7b\x6e\xd4\xa4\x86\x96\xfe\x66\x8f\x87\xeb\x93\xf8\x2e\xed\x5f\xe7\xe3\x3a\xac\xe2\x6d\x5e\xae\xff\xfa\xeb\xfc\xf1\x20\x7b\x07\x59\x7b\xe3\xc3\xed\xc5\x0a\xbe\x61\xdc\xbd\x90\x7b\x57\x00\xbe\x7f\xeb\x35\x3b\xad\x34\x46\x51\xc1\x07\x41\x51\xc7\xf4\x64\x69\x51\x99\xe1\xbd\x51\xa0\xdf\x21\xd6\x9e\x19\x84\xda\xdb\x17\x64\x6f\x2c\xde\xea\x9e\x11\x08\x8c\x6d\x0f\xb3\xd8\xe0\x61\xbf\x00\x5b\xec\xbf\x21\xef\xd1\x9a\xbe\x98\xdb\x8b\x20\x31\xc0\x78\x58\xe2\x2d\x11\x25\x42\x3c\x89\x41\x55\xff\xaa\xa8\x12\x7b\xee\xab\xde\x1a\x5e\xa2\x8f\x35\x48\x94\x7a\x73\xa4\x03\x1c\x05\x9b\x18\x2b\xd3\x9d\xff\x69\x40\x5c\x8d\x59\xdc\x8b\xa3\x81\xeb\xde\xfd\x51\x27\xc6\xae\x77\xf6\xdd\x06\xf9\x10\x9a\xb1\xee\xc5\x0f\x97\x5e\xf3\xc4\xb4\x3a\xe6\xe0\xf5\xed\xd0\x18\x5f\xe6\x1d\xde\x7f\x4f\x4f\x01\xe1\x1e\x16\x3e\x34\xa8\xeb\x67\x78\x72\xb9\x35\x62\xb8\xc0\x97\xbc\xe2\x02\x1a\x00\xe5\xda\x17\x1c\xda\xa5\x9c\x54\xbd\x9c\x61\x1d\xd2\x58\x54\xc7\x48\xe8\x0d\x9f\xa5\xb7\x72\xdf\xe2\xe2\xad\xe8\x92\x69\x0d\x2c\xac\x59\x7b\xcd\x67\xd3\xe5\x88\xf8\xe9\x1d\x9f\xbb\x74\x7e\xf1\x73\x2a\xea\xf8\x28\x59\x4f\x51\x9e\x81\x53\x8c\x90\x0d\xef\xa2\x46\x2f\xf0\x31\xdd\x6b\xe5\xa4\x69\xc3\x41\xdb\xea\xe9\xc7\xb7\x82\x6d\x6f\x98\x49\x0c\xf8\x72\xd0\x0c\x9e\xe3\x89\x0e\x6a\x7e\x75\x87\x63\x07\xe3\xa8\x9e\xc0\x0b\xa3\x5b\x06\xfc\x76\x93\x64\xf4\x70\x97\x44\xf0\x5e\x1a\x2f\x89\xf8\x20\x17\xf4\xa2\x21\xd0\xcf\x08\x60\xef\xf8\xf3\x47\xa9\xb2\xd5\x1a\x7c\x64\x15\xbc\xb5\xb1\x79\x7b\x64\x35\x36\x9b\xf1\x27\xab\x13\xf6\xdd\x23\xf3\x34\x79\x56\x76\x80\x4e\x0c\xfb\x7b\xf0\x89\x88\x46\x39\xe2\xe3\xfd\x36\x6c\x45\x4f\x2c\x28\xc8\x93\x67\x8a\xee\x61\x6a\xca\x34\xc0\x37\x06\xee\x18\x12\xc2\x62\x95\x22\x2d\x5e\xfe\x50\xc5\xb2\xe5\x7c\x17\xb5\x9d\x5f\x5a\x4d\x31\x89\x09\x20\xdf\xd3\x86\xbd\x0f\x4b\xac\xc1\x3d\x78\x34\xd2\xde\x1b\xff\xa1\x67\x40\xca\xc4\x2d\x5f\x80\xf6\x1c\xfd\x92\x29\x26\x3b\x03\x4e\xa7\xdb\x7d\x7b\x42\x55\xbd\x23\xcd\xa1\x09\x1b\xde\x9b\xfb\xb2\xfb\x1e\x46\x8c\xd5\xf0\x82\xa5\x67\x53\x03\xa3\x36\x57\x0a\x20\xd9\x7d\xa6\xa1\x13\x6b\x7a\x6c\x83\x80\xfb\x10\x4d\x60\x5d\x43\xe0\x64\x65\x59\xfd\x2c\xe7\xf2\xda\x82\x12\x9c\x8e\x1a\xaf\x12\x0c\xda\x91\x2a\x43\xc8\x22\x05\x8c\x0e\x92\x21\x6c\x3c\x7b\x72\x76\xbc\xf5\xbc\xc8\x7a\x83\xc0\xcf\x60\xde\x20\x94\xfe\xab\x26\x4c\x10\xc2\x28\xdf\xfe\x0d\x33\xa3\xf6\x67\xd9\xe8\x44\x4d\xc6\x70\xf2\x1c\x47\x84\x56\xc2\x5d\x84\x33\x6d\x92\xd0\x94\xfe\x12\xba\xfd\x73\xcc\x19\x47\xa7\xfa\xba\x23\x4f\xdd\x42\x09\x93\xff\x65\x16\xc9\x22\xdc\xb7\x71\x7a\x14\x26\xe2\x2e\x1a\xf4\xce\x38\x25\x8f\x5f\xbf\x13\x56\xdc\x8b\x06\x18\x8d\xd1\x9f\x3b\x49\xcd\x3b\x63\x95\x6e\x90\xdf\x81\xd6\x41\x77\x6a\x11\x82\x7d\x7a\xd2\x95\x69\xdd\xe8\x38\xc6\x28\x27\x62\xe0\xc3\x31\xe0\xc1\xa6\xe9\xd4\xb9\x63\x1b\x27\x35\xcb\xf4\x8d\xb0\xfd\x8e\x86\xec\xd0\xb3\xba\xab\xb5\x24\x91\x96\x55\xe1\xa5\x86\xf5\x88\x2c\x9c\x34\x98\xe9\x46\xee\x90\x89\xed\xde\xfd\x05\xac\x78\xd4\xe9\x2e\xc6\x7e\xf4\x28\x42\xac\xeb\x6a\x2a\xd1\x3f\xf0\x70\xff\xf2\xfe\x7b\xe1\x55\xc8\xe9\x91\xbe\x02\xb9\x2e\xf4\xc1\x7e\xd7\x59\x04\x15\x2c\xdf\x06\x31\x6c\x18\x9a\xfd\xae\x68\xf9\x6d\x73\x0e\xcf\x70\x2f\x10\xf5\x5f\x16\xd0\xa8\x69\x4b\x04\x3e\xeb\x9e\xea\xe4\x50\x95\x6c\x10\x37\x3d\xe5\xfe\x6c\x4c\x1c\x5d\x1d\x0c\x51\x55\xa2\x0d\x56\x77\xb5\x12\x26\x06\xa1\x80\xed\x25\xd1\xfe\x6d\xcd\xc1\x09\x5f\x34\xd3\x67\x6c\xe7\xcc\xe1\x39\x42\x57\x27\x5e\x8f\xbc\x80\x0e\x54\x34\xca\x26\xce\x0f\x66\x90\x6e\xfa\xc0\x1b\x4b\x24\xe5\xaf\x69\x7e\x36\xac\xae\x6e\x63\xfc\xda\x0e\x15\x51\x56\xb7\xce\x8d\xb6\x3b\xc3\x9d\xbb\xbc\xe3\xdf\xbd\xf8\xaf\x0f\xdb\x20\x00\x70\x8e\x00\xc0\x91\x59\x32\x4d\x7c\x97\x9c\x9e\x30\x71\xce\xd6\xbf\x47\xe0\xba\xeb\xa6\x38\x3f\x21\x1f\x71\x06\x47\xd2\x11\x82\x10\x27\x1b\xff\x56\x01\x5e\xb0\x0b\xb1\x72\x6c\x02\x13\xac\x49\x12\x44\x42\xc8\xc5\x24\x35\xc4\x7f\x89\x53\x69\xb3\xd0\x82\x20\x36\x33\x45\xa9\x1f\xf4\x33\xc9\xb3\xab\x11\x6c\x5d\x12\x88\x2b\xce\xf1\xaa\xf0\x38\x6d\x5d\x2d\x8b\xb2\x7b\x00\xbb\xcb\x18\xca\x20\x51\x13\x88\x97\x44\x2b\x7d\x93\x26\xdb\xa6\xd8\xfd\xd5\xf6\x06\x46\x6c\x21\x5a\x3c\xb7\xd2\xf6\xe0\x3d\x7d\x48\xf0\x81\xce\xb1\x75\xe3\x05\x60\xbe\xc3\x16\x06\x20\xfa\x23\xeb\x54\x74\x16\x61\xad\xc6\x2a\x80\x31\x68\x79\x11\x96\xef\x7f\x24\xc6\xfc\x38\x58\xdd\x12\x53\x6e\x10\xbf\x34\x01\x80\x47\x4f\x39\xd3\x58\xa7\x95\x44\x13\xa3\x65\xfa\xa6\x96\x78\x39\x3e\xba\x29\x56\xe1\x13\xbc\xe4\x46\x67\xf7\xee\x37\xcb\x71\x65\xef\xaa\x24\x9c\xc5\xcf\x45\xad\x78\x47\x45\xfb\x8f\xe9\x74\x7c\xf4\xa4\x27\x1a\x89\xeb\x7e\xd3\x89\xcc\xce\xf3\x42\x1c\xe6\x15\x41\x7e\xd8\x42\x20\x8a\x30\xfb\x2e\x95\xc4\x18\x17\xa1\x12\x0e\x37\xdb\x94\x43\x4d\x85\x47\xb2\x18\xc3\x91\xf5\x9f\x08\x0d\x54\xd0\xa6\x89\xb1\x4b\x23\x40\x99\xfa\x9c\x9a\x18\x45\x30\xa9\x21\x46\x6d\xb4\x8a\x77\x45\x0f\x4f\x5e\x2f\x17\xfa\xca\xee\x73\x66\xf4\x93\xda\x98\x7c\x39\x23\xaf\xa0\x41\xf9\x4d\x52\xe1\x27\x54\x28\x5b\x2e\x3e\xdd\x57\x4f\x77\x81\x99\x16\x36\x7c\xbf\x32\xc2\xba\x25\xd6\x12\xf2\x10\xaa\x49\xb0\xac\xad\xbb\x2e\x17\x33\x7e\x96\xd9\x9d\x87\x38\xe4\x81\x31\xf8\x78\x42\xc9\xf7\x24\x84\x52\x71\x63\xf9\x5a\xd9\x7d\x2c\x97\x73\xd9\x27\x73\x5a\xb9\xfe\x1e\x90\xd8\x8c\xd2\x7e\x06\xd3\x92\xee\x8d\x43\xd1\x73\x18\xe5\x3b\x8d\xfb\xf4\xee\xa6\x7b\x0b\x79\x8c\x28\x0f\x6d\x40\x22\x6c\x7b\x8b\x38\x6a\x20\x32\xf1\xe8\x75\x70\xb8\x52\x82\xf1\x90\xda\x16\x7e\x92\xbc\xfe\x73\x90\xb1\xfe\xc6\xae\xbc\x9e\xcf\xa4\x2f\x65\x1b\xb9\x3b\x1d\x79\xdb\x7b\x5f\xe7\x63\xdc\xee\x58\x7d\x09\x5a\xc3\x45\x18\x8f\x83\xbc\x48\x10\x9d\x9e\x1c\x93\x8f\x1a\x82\x01\xfd\xf4\x94\xbf\x4c\x77\xfe\xf0\x73\xb9\x29\x8d\x69\x6b\xdc\x61\xcf\x96\x55\x5d\xb5\x24\x2d\xe1\xd2\x51\x34\xe7\xe8\xcd\xf7\x55\xdd\x52\x33\xa5\x19\x2d\x43\xc2\x10\xf1\x74\xb3\x96\x83\x6b\xf9\xc7\x1f\x82\xe6\x1d\x22\x6c\x83\x57\x46\x13\xb6\x01\x11\xb6\xd7\xbe\x24\x14\xd2\x0b\xbe\xcd\xe0\x78\x7a\xfc\xba\x03\x3b\xc6\xfc\xb5\xa8\xf7\x94\xd7\x92\xd5\xbc\xa1\x39\xa1\x82\x47\x16\x8e\x37\xe3\xb0\xdb\x8a\x03\x4d\xce\xd6\x34\xde\xed\x76\x86\x21\x09\x37\xe7\xec\xc8\x24\x51\xf6\x54\x15\x01\xe4\x53\xfa\xdb\xc3\x52\x2b\x38\x94\x86\x5c\x87\xea\xdb\x2a\x40\x90\x8d\x7e\x61\xd3\x60\x47\x5d\x56\x7b\xcb\xfa\x41\x3e\xb7\x66\xdb\x1b\x62\x19\xa9\x15\xd8\x28\x1b\x6e\x3a\x7c\x20\xdc\x50\x01\x17\xdc\x3b\x5c\xbe\xf4\xc8\xb0\xc5\x05\x8b\x1c\x8f\x8e\xd8\x68\x4e\xdf\xb5\x20\x9b\xc4\x44\x8b\xe9\x5d\x0b\xea\x3d\x22\x2e\xb8\x64\x84\xde\xa5\x6c\x35\xbf\xb0\x0b\x3a\xb1\x1e\xa6\x70\x2e\x43\xc6\x0a\x91\x0b\xbb\x02\xf3\xaa\x6a\x20\x42\x6d\xc1\x9b\xb2\x0d\x24\xc6\xd6\x23\x0a\xb7\x0b\x08\x05\x65\x58\x17\xc4\xc6\xd2\xfe\x23\x3e\x73\xdd\xe3\x15\xa4\xf8\xde\x11\x96\x72\x63\x4b\x18\xc1\x3c\xa9\xf1\xba\x5d\x20\xaa\x9e\xeb\x61\x80\x7d\xf7\xf8\x14\xe1\x40\x01\xb2\x6a\x6e\xdf\xd4\xe9\xf6\x1b\x94\x1f\xb4\xfd\xb6\x0a\x16\x66\x71\x6e\xdf\x82\xc1\x7d\xc0\xbc\x7b\x0d\x63\x38\xdc\x59\x85\x3c\x43\x83\x1b\x8d\x79\xbb\x58\xd9\x06\x7e\x80\xe7\x33\xb6\xba\x18\x19\x4c\x81\x0e\x73\x42\xeb\xc1\x19\xe8\x57\x61\xc2\x40\x65\xda\x75\x32\xc2\x74\x88\x6e\x88\x0c\xb3\xc9\x4d\xaf\x2e\xe2\x3c\xbe\xbf\x9f\x69\x6e\xb2\x2e\x2a\x38\xf0\xcf\x54\x6c\xd1\x3d\x0f\x0e\x6f\xa4\x67\x24\x36\x63\x61\x04\x99\xc6\x51\x65\xeb\x74\xfb\x42\xb0\x92\xc3\x7c\x71\xbd\xc0\x1e\xc2\xbb\xe5\x38\xfb\xd1\xbc\x69\x56\x75\xd1\xc0\x23\xb9\x2b\xc0\x0f\x13\x50\x01\x26\xdc\x8f\x40\xa6\xd5\x4e\x64\xdb\x59\x09\x7e\x7f\x7f\x48\x4a\x7d\x11\xa1\xa0\x58\xbe\xd4\x40\x71\x03\xb3\x1d\x3b\x42\xef\x43\xa1\x2d\x82\x16\xbc\x6b\x29\x8f\x9c\x14\x3a\xb1\x1d\x42\x77\x14\x52\xcc\xdc\x94\xa0\x3c\x7d\x53\xa9\x59\x5c\x6b\x34\xaa\x3f\x0b\xd4\x9d\x1c\x2d\x2f\x6d\x4a\x64\xff\x39\x0b\xb4\xb1\xbc\xcd\x06\x40\xfe\x52\x67\x70\xcf\x2c\xaf\x9d\x09\x1c\xb8\xfd\xe7\x7a\x23\x29\x49\x9e\x39\xcd\xa3\x87\xdc\xbb\xcc\x2e\x9c\x92\xd7\xb0\x84\x3c\xe1\xec\x52\x91\x5d\x72\xd4\x36\x37\x60\x12\x8a\xb0\x9d\xd0\x23\xb1\x13\xd2\x06\x98\x7f\x17\xab\xb2\xde\x9b\xcd\xe6\x32\x2a\xc9\x51\x72\x69\xb1\xcd\x6f\xdf\x5c\xb2\xf9\x79\x52\x01\x8b\x64\xfa\x66\x48\x54\x09\x9e\xbc\x64\x03\x9e\x55\x60\x44\x92\xae\xef\x79\xb0\x4c\xe2\xa8\xeb\x7b\x6f\x77\xdb\xbd\x76\xdd\x0a\xc3\x2f\x26\x20\xc9\xa8\x17\x6e\xd6\x8d\xf2\x43\x8e\xbd\x0e\x7f\xe0\xe1\x70\x03\x90\x47\xfc\xf6\xcf\xc5\xc6\x3f\x5b\x33\x74\x1d\x8e\xdf\x25\xf0\x4a\xae\x30\x1e\xb8\xce\x86\xbf\x02\x33\x54\xfd\x8a\x02\x78\xa7\xf9\xb9\x27\xbe\x21\x9d\x33\xc9\xf8\xe8\x84\x3b\xe6\x55\x34\x3a\xa1\x87\xfb\xef\x43\x93\x81\x18\x3c\x95\x19\x62\xd1\xff\x47\x3f\x91\x19\xe3\xe3\xdf\x0e\xdd\x8f\xce\xff\xaf\xe7\x43\xe5\xb9\xc2\x09\xbb\xd2\xc5\xdb\xfe\x49\x62\x9e\xb3\x67\xe7\x73\x51\x5e\xf3\xc7\x89\xb5\x8f\x9b\xf4\xad\x58\x38\xd1\xdf\x0e\x3c\x88\x8d\x58\x54\xff\xc6\x7b\x39\x45\xe1\x69\xcc\x7b\xef\xc1\x40\xca\xee\x79\x04\xa0\x47\x6c\x24\x69\x78\xf3\x29\xe9\x1c\x88\x99\x88\xe2\xf3\xa0\x4e\xf2\x39\x50\x9c\xb8\xee\xed\x4b\x6c\xe2\x58\xa1\xe4\xc1\x46\x02\x05\x8b\x02\x51\x29\x44\xd2\xb7\x84\x46\xec\xeb\x9c\x14\x46\x54\x98\xbe\xaf\xa6\x49\xe9\x14\xbf\x6f\x1a\xe0\x7b\xf3\x21\xa9\x6c\xaf\xfe\x5c\x2c\xd5\x25\x45\x5e\xf5\xcb\xbb\x17\x00\x8d\xcf\x19\x31\x65\x32\x49\x57\xb8\xb2\xc3\x21\x0e\x2e\x81\x1a\x10\xc3\x54\xb9\x23\x90\x7d\x43\x75\x49\x3d\xaf\xd8\x01\xce\xb5\xb5\xcb\x95\xe2\x4b\xc6\x16\x91\x38\x4f\xe8\x4f\x48\x61\x25\x4c\x5e\x4e\xbf\xa5\xff\xd9\x83\xe3\x24\x39\x3c\x6f\xc7\x99\x27\xfa\x15\xba\x89\xb3\x8e\x03\x8c\xc1\xcb\x26\x3b\xe5\xe8\xc6\xd9\xb7\x1c\x6c\x4c\xbb\xd1\x34\x75\x31\x6f\x71\x05\x8c\xbe\xfc\x11\x0e\xc7\x62\xc6\x13\x72\x86\xa0\x84\x34\x43\x9f\xca\xff\xbb\x40\xf9\x39\xb6\xef\xe4\x31\xb5\x01\x98\x84\x32\x13\xdc\x24\x90\x59\xa8\x80\x6f\x27\x34\x9f\x4f\xc6\x1e\xc0\x06\x44\x7c\xe6\xcc\xf4\xf1\x69\x76\x98\x67\xa7\x87\x3e\xc3\x6d\x9a\xad\xc4\xd0\x3f\x7d\xfc\xec\x64\x6c\x19\xb9\x18\x94\xa7\x81\x21\xeb\x91\xb9\x00\x04\xcf\x07\x43\x6c\xe3\x49\xd1\x17\x23\x9b\xb5\x8b\x1e\x98\x7c\xf6\xe8\x14\xc6\x93\x67\x75\x30\xf2\xd0\x7a\x56\xc5\x16\xa0\xfa\x12\xf5\xf4\x94\xbe\x19\xf8\x39\x7f\x87\xa9\xc7\x95\x17\xdc\x56\x17\x3a\x1d\x27\x87\x8f\xb3\x53\x49\xc8\x8e\xd9\x47\x2a\x69\x9c\x83\x38\xd5\x76\x59\x70\x90\xc6\x0e\x0d\xa4\xc3\x4b\xad\x70\x2b\xc4\x9e\xd8\xfd\xa5\xe0\x2b\x5b\x31\x96\xd1\xcd\x52\x6c\x11\xaf\x84\xd6\x66\x11\x2a\x0d\x7c\x43\x7f\xd4\x7a\x57\x97\x3a\x45\x1d\x4b\xd3\x7f\xc6\x3a\x39\x77\x7b\x7b\x2e\x30\x00\x87\x7b\xdb\x78\x8b\x15\x51\x5c\x5b\x38\x30\xdf\x05\xe3\x61\x5c\x8e\xb8\x54\x9b\x82\xcd\x84\x0c\xf0\x05\x6a\x0f\xd5\xe8\x1a\x75\x58\xa2\xb3\xc6\x49\x50\x7a\xc7\x1b\x55\x89\x53\x0e\x4d\x8f\xd7\xa7\xe8\xed\x8b\xd7\xa7\xac\x7a\xb7\x30\x0a\x6c\xb6\xdb\x59\xf4\x92\x6b\x69\x13\x3a\x14\x01\x5d\x06\x4f\xf2\x32\xb6\x3d\x8f\x20\xe0\x71\xd7\x41\xb0\xdb\x9d\xe6\xf6\x09\x99\x26\x57\x67\x67\x08\x14\x86\xa0\x92\x76\xfa\xad\xbd\x61\xc5\xb0\x0d\x46\xc1\x1d\x60\x5e\x38\x5e\xb6\x50\xf7\xb0\x6e\x64\x09\xd3\x91\xf0\x36\x6b\x7d\xfb\x1a\x2a\x9f\x57\xf2\x0e\xed\xed\xdf\x40\x5c\xd8\x0f\x52\xb7\x92\xd6\x52\xb7\xfa\xde\xf6\x51\x60\xff\x83\x67\x7c\x02\xb4\x11\x3b\x76\x05\x1a\x60\xc3\xa7\x71\x4d\x12\xb9\xbc\x14\x91\x1c\xc5\xb2\xda\x54\xe2\x53\xbb\x40\x3f\x2d\xb8\x24\x5a\xcc\x24\x7c\x7d\x28\x2d\x17\x55\xb4\xdb\x44\x67\x39\x50\xcb\x85\xe2\xd4\xe9\x7e\xd9\xdb\xff\x9b\xf4\x54\x75\x7b\x77\x23\xc1\x21\xac\xd4\x01\x73\x85\xdf\xc1\x47\x2b\xf4\x0e\x73\xab\x6b\x92\x87\xeb\x29\xa7\x20\x0a\x40\xf7\xd8\x6f\xff\x1d\xf1\x6e\xaa\xe6\x7e\xe1\x3d\x08\x17\x60\x6e\xdf\xe2\x23\xe0\xf8\xec\xed\x52\x47\xce\xb8\x2e\xb3\x7f\x88\x77\x39\x8c\xee\xa3\xe1\xa4\x52\x96\x73\x6b\x99\xd7\xd3\xd3\x47\x23\x0b\xac\x03\x08\x2f\x03\x35\xec\xab\x89\x00\xb6\xcb\xda\x9e\xfe\xfd\xa3\xe8\x46\xaf\xf8\x34\x2e\xc9\x73\x71\xdf\xee\x7e\xbb\x7d\xdd\x4f\xee\x55\x76\xfa\xa7\x75\xd1\xd8\x2f\xc6\x6b\xf2\xf4\x5b\x87\xef\xc4\xac\xcc\x7a\x5b\xf1\x13\x35\x7b\x86\xcf\x13\xf0\xf4\x79\x52\x30\x44\xe2\xaa\x1c\x3d\xe2\xda\x59\x12\xa6\x7b\x22\xec\x2c\x7f\x16\x74\xfb\x4a\x23\x5f\x74\x22\x6e\xff\x3c\xf0\x78\xc3\xcd\x47\xca\xeb\xfd\x12\x9d\xd4\x4d\x55\x06\x7f\x9f\x50\xee\x95\x5f\xd9\xb8\xd0\x8b\x7a\x21\x91\x7b\x7d\x24\x5f\xf6\x8e\xb8\xf3\x19\x1b\x2d\xc8\x9d\x66\x2b\xf5\x6b\x1a\x2d\x74\x33\xb9\x47\x56\x28\xff\x40\x33\x2b\x7f\xf4\x25\xe4\xef\x7b\xef\x20\xeb\x83\xc9\x78\x0b\x91\x1a\x64\xed\x17\x44\x58\x4f\xdb\xc4\xa7\x14\xde\x2d\xb3\x35\x5f\xe3\x88\xdf\x29\x74\x7c\x55\x4e\x87\xd6\x7a\xd9\x26\xe4\xc1\xd9\xa6\x7b\xe1\x37\x2a\x26\x8f\xfc\x42\xd3\xe7\x4f\x19\xaf\x1a\x1a\xa9\xc6\x7b\xac\xeb\x72\x78\xb6\x7b\xb3\x5a\x7b\x47\xec\x3d\xeb\xe1\x4f\xad\x6d\xa9\x2d\x5b\x2e\x69\x41\xfe\x3d\x3e\xb2\x47\xfc\xd1\x4d\xb7\x38\x72\xb2\x8e\x83\x68\x29\x96\x8a\xb8\x70\x12\xd1\x27\x6a\x77\x63\xbb\x59\xed\x31\x1e\x47\x37\x7c\x5f\xc8\xbc\x07\x58\xf2\xb9\x69\xf3\x22\x99\x8a\xe8\xc8\x11\x53\x12\x26\x14\x7b\x50\xd5\x02\x03\x3e\xdb\xf5\x21\xfc\x02\xa5\x8d\x54\x4d\x1f\xc8\x47\xf6\xc3\x77\x8f\x9e\xf4\x01\xf7\x50\x05\xcd\xdd\x4f\x50\x14\x60\x1f\xe9\x90\x2b\x4c\xed\x98\xdc\x56\xee\xe9\x92\x40\x8e\x49\x0e\x0a\x20\x4b\xd0\x1b\x45\x84\x95\x66\xf6\x92\x47\x5d\xb3\xb9\xd9\x62\x67\x26\x25\x34\xb1\x70\x3d\xe0\xf0\x7a\x55\x02\xdd\xbd\x5d\x35\x44\xa6\x4c\x41\xf1\x86\x26\xbf\x2f\xcb\xaf\xfe\xd4\x34\xa8\x4d\x5d\x44\x34\x4a\x4c\x7e\x02\x6f\xe1\x8a\x8b\x14\xff\x08\x7d\x0f\x4c\xbb\xec\xb2\xc8\xf9\x11\x30\xa7\x82\x4e\x0e\x31\x92\x19\x97\x64\xb0\x3d\xe4\x90\x06\xb6\x99\x23\xe1\x15\x5c\xd0\xfe\x35\xb5\xa0\xed\x52\x28\xff\x7b\x4a\xdb\x85\x26\x7a\x9c\x9d\x51\x92\x80\x6d\x2a\x65\xa6\xbb\xff\x43\x93\x17\x6e\x81\x38\x86\x8b\x94\x0e\x65\x96\x8b\x30\xb6\xa2\xbb\xfc\xfe\x3e\x6b\x0f\xcd\xd8\xe0\xfa\x9e\xaf\x8b\x33\xb9\x44\x09\x5d\xef\x6d\xf2\xf3\xa6\xd9\xba\x38\x34\x00\x3f\x5b\xd5\xef\x51\x54\x8d\x20\x86\x7b\xb6\xe4\x90\xef\x55\xbb\x2d\x58\xc3\xed\x87\xf1\x50\xdf\x97\xdf\x33\x6e\x1e\x5a\x0f\xa0\xe9\xa3\x8a\x5f\xe8\x53\xaa\x58\x0c\xce\x0a\xff\x32\x7d\x74\x56\x7c\xaf\x49\x09\xb7\xa2\xad\x0f\xb9\x94\x3d\x78\xa0\x0c\x1f\xd1\xc3\x12\xca\xa2\x04\xe3\xa0\xc9\xa2\x46\xcc\x62\xfa\xe3\xed\x2a\x3a\xc3\xa1\x81\x90\xef\xd3\x1d\xad\xf8\xbc\x25\xae\x9c\xb0\x3d\x63\xbd\x6f\x28\xc1\x2f\x24\x78\x6d\xb7\x1b\xe8\x87\x3d\x5c\xf7\xc6\x42\xa7\xdf\xde\x07\x6b\x5f\xd8\x45\x1b\x2e\xe0\x98\x9b\x24\xce\x14\x86\x80\x1c\x46\xb9\xab\xb2\xd2\x2b\xf3\x7a\x5e\xe1\xf5\x26\x7e\x7d\x9a\x13\xa3\x2e\xf5\xdc\x89\x42\x8f\x68\xc8\x1b\x18\x79\x73\x50\x83\x3b\x10\x88\x58\x5e\x01\x0a\x56\x58\xde\xe6\x49\x3e\x69\xa9\x41\xaa\x1d\x37\xcc\xf2\x25\x62\x96\x2d\x4e\x9b\x7d\x9e\xd8\xb4\x75\x99\x3d\xec\x7d\x72\xb5\x9d\x3e\xd9\x4e\x62\x30\x16\x86\xc2\x2b\xbb\x23\x58\xec\xb7\x10\x71\x6a\xfe\xb6\x00\x07\xf2\x4b\xfa\x28\xa0\xb7\x93\x33\xe9\x95\x75\xe2\xc4\xf9\x91\xf3\xee\x9b\x65\x88\xeb\x28\xbf\xf3\x38\xc2\x5a\x12\x74\xfb\xf3\x2e\xb8\x36\x42\x6e\xef\x7f\xcf\x23\x3c\xb7\x40\x95\x12\x2a\x0b\x33\x1e\x02\xa4\x15\x87\x5b\xb3\x89\x51\xbb\xe7\xea\xc5\xbd\x8f\xe2\x47\x16\xd2\xe0\x07\xbd\x18\xe7\x69\xbb\x32\x08\xf2\x66\xc5\xaf\x1d\x1f\x76\x61\x82\xcd\x56\x32\x0c\xf7\x44\x4f\x27\xcd\x21\x36\x7a\xf7\xac\x83\x56\x95\x46\x66\xf7\xe1\x76\x93\x58\xd9\x71\x7d\x1a\x70\x7d\xa4\xba\xe4\x39\x8d\x5f\xbd\xba\x9b\x89\xbb\x37\x1b\xeb\xec\xca\x8a\x77\x44\x72\x24\xb0\xf4\xaf\x1a\xfc\xfb\xf7\xa3\x18\x42\xd2\xf1\xb4\x89\xaa\xfa\xa2\xa7\xfa\xd6\x95\x10\x96\x41\x2f\x08\xe9\xe8\x0a\xe3\x40\x27\x8d\x59\x4e\xa3\x4e\xc3\x47\xf9\xdd\x27\x3d\x59\x20\xc3\x49\xd7\x57\x00\xfe\x10\x62\xb7\x8b\x79\x4f\xcf\xed\xbe\x15\xa3\x37\xf6\x32\xd8\x64\x7f\x08\x6e\xdf\xbb\x97\xfc\x60\xdc\xcf\x88\xde\x4d\xfb\xc8\x2c\xab\x29\xde\xc7\x5e\x99\xdd\x6f\xef\xbf\xc7\x4f\x17\xc2\xe5\xa3\xac\xc4\x17\x1c\xd7\xdd\xb7\x7f\x63\xa3\xce\xab\xa9\x3a\x7f\x7c\xee\xa6\x9f\xc3\x94\xaf\x2d\xf3\x82\xc3\x69\x7f\xbe\xa1\x84\x4d\x51\xe2\x2a\x53\x12\xce\x01\x81\x47\x34\x5b\xf9\xce\xe9\x9b\x7d\x72\xe5\xf3\x8a\x3e\x4b\x5c\xd8\xed\x7e\xd3\x14\x22\x6a\xa8\x63\xf7\x8a\xce\x64\xad\xe3\x9a\x12\xa8\x3d\x01\x70\x96\x0e\x91\x9c\x1f\xbc\x90\x96\x89\xd4\x49\x24\xef\x92\x68\x20\xa7\x0b\x02\x9a\x7e\x5e\x11\x27\xc8\xd0\xc0\xc2\x48\x22\xde\x2f\x47\x5a\x2e\x97\x0a\x48\xba\x82\xdd\x2d\xd2\x14\x1d\x4d\x26\x74\x9a\x73\xa9\x15\x28\x11\xd5\xe6\x64\x84\xaf\xe6\x54\xc2\x4b\x52\x6a\x73\x35\xf3\xb8\x79\xc4\x24\xd5\x63\xe6\xd1\xe2\x41\x27\xbe\x68\x8b\x40\xbf\xbf\x74\x4f\x96\xfa\x87\xe0\x1e\x50\x96\x3e\x7f\xca\x41\xdb\xf1\x30\x04\x5e\x7f\x94\x57\x95\xe1\xf8\x3d\x61\x0f\x5a\x0e\xbe\x5d\x94\xdb\x56\xa5\xfc\x2e\x22\xbc\x40\x69\x1d\x3e\x7a\x24\x3f\xf8\xa4\xcf\xdf\xd1\x94\xcf\xe6\x74\x62\x23\xa4\x7f\xe6\x8a\x1b\xfb\xc9\x3f\xfd\x13\x43\xd3\xcf\x7f\xfe\xe7\xec\xf1\xb7\x9f\x66\xf6\x05\xa2\x33\xc2\x8b\xf0\x45\xb1\x69\x37\x1e\x8a\x3e\xff\x98\x00\xb2\x3b\x37\xdb\x43\xf3\xed\xd4\x53\x89\xa0\x81\xdf\xe8\xe7\xff\x0b\x00\x00\xff\xff\x46\xa2\x13\x7e\xf4\xb1\x00\x00") +var _confLocaleLocale_lvLvIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\xbd\xcd\x72\x1c\x47\x92\x27\x7e\x97\x99\xde\x21\xc5\x31\x9a\x24\x33\xb0\x64\x6a\xfd\x3f\xd6\x64\x2a\x69\x21\x52\xad\x86\x48\x82\x18\x82\xe2\xd8\x8c\x4c\x56\x8a\xaa\x0c\x14\x12\x55\x95\x59\x9d\x91\x09\x08\x18\x1b\xb3\xe5\x65\x4e\x7b\xe3\x65\x8f\xad\xed\xdb\xf2\x01\xfa\xb0\xda\x3e\x15\x5e\x64\x9f\x64\xfd\xe7\xee\x11\x19\x91\x99\x05\x52\x3d\xb3\x73\x01\x2a\x23\x3c\xbe\x3c\x3c\x3c\x3c\x3c\xdc\x3d\xcc\x76\x3b\xcb\xad\x5b\x4c\x5f\x16\x76\xb9\x2e\xb2\xf6\xc6\x35\xbb\x57\xf9\xee\xd5\xc6\x65\xdf\x16\x4d\xe6\x6c\x7d\x59\x38\x77\x90\xad\x8c\xcb\x6a\xb3\xa2\xdc\x37\x8d\xcb\x2e\xcd\xba\x22\xa0\xec\xdb\xea\xfd\xf7\xde\x7f\xef\xbc\xda\xd8\xe9\xe9\xee\xd5\xaa\xdd\xb8\xf7\xdf\xcb\x8d\x3b\x9f\x57\xa6\xce\xa7\x47\xe5\x59\xb5\x35\xa5\x5d\x17\x94\x6c\x7f\xde\xae\xab\xda\x4e\x8f\x6e\xb6\xbb\xd7\xa8\x85\xca\xd9\xf5\x76\x7a\x62\xd6\xbb\x37\xf9\xcd\xee\xcd\xdc\xbc\xff\x9e\x2b\x96\xe5\xac\x28\xa7\x27\x85\xf5\x8d\x15\xd6\x69\x7a\xd5\x36\x54\x7a\x98\xde\x6e\x01\xdf\xd8\x62\x25\x89\xb5\x5d\x16\xae\xb1\xf5\xf4\xb9\xdd\xfd\x99\x7e\xd5\xd4\x1e\x67\x5c\xd9\xb9\x2b\x1a\x3b\x7d\xba\x7b\x75\x41\xc3\x59\x9b\x2d\x35\x79\x69\x6b\x57\x54\xe5\xf4\x25\xfe\x5f\x50\xc2\xd6\x2c\xed\xf4\x09\xe7\x35\x76\xb3\x5d\x1b\x2a\x71\x6a\x96\xa6\x31\x97\xf6\xfd\xf7\xd6\xa6\x5c\xb6\x80\x78\x09\x14\x10\xcc\xa2\xb6\x04\x31\x2b\xed\xd5\xf4\x21\xff\x9c\x4c\x26\xef\xbf\xd7\x12\xe2\x66\xdb\xba\x3a\x2b\xd6\x76\x66\xca\x7c\xb6\xc1\xd8\x9f\x50\x37\xab\x06\xad\x67\x92\xd7\x66\x6d\x49\xc8\x2c\x6a\x42\x9e\x8c\xc6\xe6\x34\xfe\x99\x71\x11\x0a\x2e\xa8\xf3\xd9\x6a\xf7\x0a\xa8\x46\xbd\xa5\xd9\x44\x55\x5d\xee\x5e\xd5\x39\xf0\xbb\x31\xc5\x7a\xfa\xcd\x83\xad\x71\x8d\xc3\x28\x9c\xbb\xaa\x68\x12\x4e\x4c\x5d\xad\x2d\xb0\x32\x6b\xae\xb7\x56\xbf\x33\xd3\x50\x8d\x35\x55\x51\xd0\x10\xcc\xb6\x59\x9c\x9b\xe9\x09\xa5\xcc\x4d\x9b\xa3\xb9\x0a\x75\xa2\xd4\xb6\x22\x9c\x55\xf5\x35\x61\x73\x5b\xdd\xe0\x67\x71\x41\x59\x55\xbd\x34\x65\x71\x63\x1a\xe0\xee\x99\x7c\xec\x5e\x2d\x18\x83\x9b\xa2\xae\xab\x7a\x7a\xba\xad\x96\x2d\xcf\x3d\x21\x67\x86\x9a\xa6\xdf\x99\xb6\x24\x3a\x4a\x6a\x42\xe6\xa6\x58\xd6\xc0\x33\xf2\x4d\x86\x2f\x5f\x17\x72\xcf\xaa\x7a\xa5\x45\x4d\x93\x83\x5e\x1a\x53\x8c\x55\x43\x9d\xd2\x2a\xaa\x5e\x8f\x4c\x49\x73\xc6\xf9\x18\x24\x91\x6f\x4e\x95\xa4\x50\x54\x87\xc9\x37\x84\x7c\x26\xd9\xe9\x21\x7e\x67\x81\x7c\xcd\x62\x51\xb5\x65\x33\x73\xb6\x69\x8a\x72\xe9\xa6\x8f\xab\xb2\x31\x19\x4d\x4d\x63\x30\x47\xed\x86\x10\x19\x32\x8f\x92\xe4\xeb\xaa\x0d\xc4\x30\x7d\x61\x2e\x9d\xce\xbe\xd3\xac\x50\x8c\xf2\x8a\x5e\x95\x3c\x30\x37\x3b\xb3\x36\xe7\xa1\xb5\x9b\x36\xdb\xae\x6f\xdf\xb8\x0d\x48\xb5\x5d\xaf\x09\xb1\x7f\x6c\xa9\x08\x35\x7a\x43\x24\x70\xfb\xaf\x94\x5f\xd8\x6d\x6d\x9c\xaf\x82\xd6\x2f\x01\x4c\x4f\xea\x6a\xbe\xde\xbd\xde\x18\x9e\xd8\x85\x29\x17\x18\x65\x43\x7f\x1b\x24\xfc\xe0\xac\xa9\x17\xe7\x3f\x62\x14\xf8\x31\x7d\x6a\x57\x04\xde\x30\x39\xef\x25\x03\xd0\x63\x47\x8b\x4e\x1b\x9b\x3e\xde\xfd\x7a\xfb\x86\x57\x47\x95\xd3\x97\x12\xd3\x0f\x45\x49\x43\x5b\xaf\xa9\x0d\xfd\x45\x2c\x02\xff\xfd\x34\x35\x45\x43\x18\x8a\xd3\x5c\xe6\xaa\xdd\xaf\x05\x0d\xa9\xde\x54\x34\xe3\xc5\x0d\xfd\x36\x6b\x1a\xe7\x5f\x2b\xea\x76\x5e\x2d\x56\xb4\xd0\xc0\x48\xa8\x1f\x47\x67\x19\xe1\xf3\xc3\xda\x66\x75\x5b\x96\x84\x51\xe2\x4f\x4b\x97\x51\x5b\x45\x6e\xb3\x47\x0c\x7b\x40\xd8\xb3\xc6\x11\x88\x35\x79\xf6\x85\xc9\x1a\x53\x2f\x6d\x33\xbd\x37\x9b\xd3\xd2\x5e\xdd\xcb\xce\x6b\x7b\x36\xbd\x77\xdf\xdd\xfb\xf2\xdb\x96\x8a\xad\x8b\xd2\xba\x2f\x3e\x31\x5f\x66\x0b\x43\x39\x84\xf0\xeb\x6c\x6e\x89\x22\x2d\xda\xca\x68\xd9\x94\x4b\x5a\x4d\xe5\x75\x73\x8e\x06\x89\x64\xe8\x07\x4d\x30\x91\xdb\x07\xc0\xdb\x1f\x5b\xe2\x38\xb3\x7c\x2e\x5c\x96\xfb\xc3\x89\x35\x2d\xb2\xa7\xd7\xa7\x7f\xff\xe4\x20\x3b\xa9\x5c\xb3\xac\x2d\xff\xa6\x3f\x04\xff\x19\x51\x66\xf6\xa2\x78\xf4\x35\xa1\x9e\x8a\x0a\x5a\x1e\x99\xa6\xcd\xe6\xbb\x57\x37\x54\x32\xa5\x11\x80\x60\x69\xc7\x10\x97\xb6\x00\xd2\xcf\xa9\x6e\x9a\x32\xd7\xd6\x2e\x37\x34\x69\x63\x53\x36\x60\x15\x54\x1f\xf3\x98\xb8\xbe\xb2\x72\xa6\x55\x06\x3f\xf7\x08\x3f\xb6\x44\x6a\x8b\xc2\xde\xfe\x62\x68\xbf\x28\x88\xfe\x4a\xaa\x55\xc6\x95\x1d\x1d\x1f\x3f\x7b\xf4\x75\x96\xdf\x14\x65\x91\x99\x5a\x76\x0f\xe2\xf3\x9b\x8b\x96\xd8\xcb\x96\x58\x5f\x73\xf6\x9f\x66\x4b\x5b\x12\x9f\x5b\xcf\x16\x05\x8d\xd5\xb9\x35\x31\x4a\xa2\x98\xd3\xd3\x27\x84\xa6\xdb\xbf\x12\x34\x77\xb0\x39\x9f\x3e\xb4\x44\x53\xbf\x10\xcc\x1f\xd7\xc0\xa8\xf6\xe0\xc5\xb9\xcd\xb0\xac\x32\xc0\x64\xd5\x59\x1f\x81\x19\x8d\xda\xcc\x69\xbe\xa9\x76\x5b\xd7\x33\x62\xe8\xcd\x35\xa6\x83\xeb\xdc\x07\x2c\xb5\xd1\x12\x29\x69\x34\x73\x9b\x71\x29\xad\xa1\x28\x89\x7b\x14\x39\x4d\x8a\x47\x53\x5a\x14\x49\x59\x5e\x31\xca\x9a\x8c\x68\xbc\xba\x02\x95\xd4\x66\x41\x5b\x92\xcb\xee\x4d\xee\x11\xb5\xe4\xd9\xbd\x07\xf7\xa8\xc2\xb2\x9a\x09\xcf\xc1\x16\x91\x17\xce\xcc\x69\xbb\x90\xfd\xab\x16\xd6\xfa\x8f\x20\x32\xe9\x88\xe6\x67\x71\x7e\x76\x55\x34\xe7\xb4\x31\x66\xbc\x0d\x81\x02\x4d\x99\x71\x95\x99\x72\xac\x64\xe0\x9e\xc1\xe9\x84\x7b\x1e\x27\x9f\x23\x03\x7e\xff\x3d\x3f\x3f\x42\x83\x4c\xbf\x24\x10\x6c\x89\x89\xee\xde\x2c\x0b\xdb\xa3\x44\x88\x13\xd1\xf6\x54\xa6\x84\xe3\x73\x03\xf9\x54\xc4\xe6\x73\x82\xec\x31\xe2\x50\xa6\xcd\x6e\x7f\xb1\x45\xf3\x81\x30\x20\x99\xb3\x88\xff\xb4\xd9\x72\x6d\x88\x3e\x89\xfc\x4a\x83\x7e\xd9\xc6\x44\xa0\xbe\x99\x97\x85\x2b\x58\x98\x31\x0d\x51\x3c\x2d\xe8\xdd\x2b\x92\x07\xe2\xed\xa3\xc8\x9a\x62\xe5\xb4\xb6\xa6\xa0\x56\xcd\x05\x49\x37\x39\xad\xd2\x15\x03\xec\x5e\x81\x09\xb6\x24\x6b\x60\xf1\x90\x08\x53\xac\xb1\x4b\xae\xa3\x55\xe4\x73\x7d\xab\xdd\x5e\xbf\xc9\x8a\x3a\xa3\x2a\xe6\xb7\xb4\xe5\xe8\x9e\xae\x5d\x86\x5c\x42\x92\x0f\x89\x5b\x71\x77\x4c\xe6\xcc\x0a\xb8\xeb\x3a\x60\x0a\x48\x0a\x8c\x7e\x5f\x13\xb3\x41\x42\xfe\x26\xbb\xb1\x1b\xea\xf2\xee\x4d\xd7\x1f\x03\xc6\x51\xd1\x76\x50\x4e\x1f\x55\x9b\xdd\xeb\xd2\xf9\xef\xb0\x70\x0c\xb8\x48\x63\x57\x94\x9b\x9d\x9e\xfe\x21\x5b\xad\xab\x72\xf7\x5a\xfb\xf5\xfd\xf3\x27\xbc\x1c\xcf\x67\xdb\xaa\x6e\xa6\xc8\x3f\xa1\x1f\x5d\x92\xaf\x06\xa9\x19\x6d\x4a\x73\x5b\x67\x57\xe7\xc5\xe2\x1c\x5c\xb1\xe6\x0a\x21\x3a\x52\x2a\x31\xc3\xd6\x11\x61\x1e\x64\xc4\x77\x2f\x89\x60\x1a\xa1\xae\xac\xa9\x02\x45\x03\xfc\x8c\xe8\xb7\xad\xb1\x4e\xcf\x9b\x66\x2b\xed\xfe\xe1\xc5\x8b\x93\x0c\xbf\x5c\x94\x1a\x37\x6d\xd0\x36\xf1\xb6\x8c\x64\xca\x45\xb6\x6a\x6b\x23\x38\x20\x6a\xa4\x2d\x96\x64\x8a\x0d\x8d\x39\x23\x74\x31\xcb\x24\xa0\x0b\x30\x2a\x62\x5a\x8e\xb6\xb6\x25\xb0\x3f\x11\xb2\x6c\xeb\x75\x44\xb3\x34\xfc\x90\x3c\x8a\x30\x74\xec\x13\xfc\x39\x1d\xe0\x0d\xf3\x64\x59\x0a\xc3\x34\xd2\x90\x88\x90\x8a\x1b\x47\x33\x46\x12\xc7\xee\x15\x6d\x68\x86\x78\x8e\xe3\xc5\x55\x6d\xb1\x86\xc3\xea\x3a\xb6\xb4\x43\x17\x4b\x21\xcf\x74\x61\xb1\x74\xa7\x60\xdf\x68\xed\x5b\xb3\x32\xeb\x2d\xc6\x3a\x90\x43\x36\x84\x2b\x66\xfd\xa7\x4f\x09\x83\x75\xc2\xff\x39\xf3\xac\xae\x36\xd3\x53\xdf\xa9\x8b\x38\xd9\x0f\xd8\x37\x63\x72\x2a\x6f\x0f\xb2\xe7\xbf\x7f\x98\xfd\xbf\x9f\xfd\xee\x77\x93\xec\x11\xad\x7d\xa2\xe2\x8c\xc9\x90\x56\x5d\x09\x51\xf2\xf6\x97\x22\x8c\x5b\x8a\x40\xb0\xcd\x68\xa7\xdc\xd0\x80\x08\x09\xf7\x8e\x3d\x27\xb8\x97\x7d\x21\x90\xee\x3f\xdb\x9f\x0d\x89\xd8\x76\xb2\xa8\x36\x5f\x4e\x20\xa7\x11\x2f\xaf\x65\x95\x75\xbd\x33\xbd\x8a\x03\x5c\x60\x64\x31\xec\x36\x08\xbc\x72\x0c\x98\x2d\xaa\xf2\x8c\xc4\x07\x08\x65\xa0\x00\xe2\x70\x75\x38\x18\x60\xde\x30\x29\x66\xeb\x9a\x62\x5b\x83\x37\x20\xa9\x95\x26\x66\xc4\x0e\x8b\xb3\xeb\xa8\xa4\x0d\xb8\xbf\x21\x51\x0b\xb8\x6f\x81\x3b\x26\xf5\x19\x1f\x96\x16\x56\xa7\xe9\x94\x13\x0d\xe8\x61\x51\xd0\x46\x2a\x47\xa9\xb6\x37\x55\xd5\xd9\x19\x44\x0c\xd9\xf6\xba\x76\xe6\xf6\xc6\x61\x75\x5b\xe7\xf7\xc1\x36\x85\xa5\xa5\xb0\xa5\x83\xcf\x61\xe3\x4b\x3c\x7c\x74\x4c\xbb\x2c\x31\x01\x22\xfc\xbc\x5d\x09\x23\xd5\xb2\xbb\x57\x07\xe0\xda\x85\x52\x42\x9b\x9d\xd1\xe0\x94\xe9\xd1\x62\x58\xf2\x89\x8f\xf8\x5e\x59\xe9\xaa\x65\xfe\xa1\xdb\x11\xad\xa2\x4b\xda\xdc\xea\xe9\x23\x5d\xad\xdf\x6a\x42\x76\x2a\xe3\x1d\x82\x6a\xe7\x06\x05\xb0\xf1\x2d\x5a\xd7\x54\x1b\x12\xeb\xda\x7a\x61\xe9\x60\x49\x3b\x64\x26\xd9\x34\x0b\x24\x55\xb5\x74\x4c\x34\xb9\xcd\xb3\xf9\x75\x06\x3a\x70\xd8\x9d\x73\x7b\x66\xda\x75\x13\xf5\x2a\xd9\x24\x3b\x2c\x04\x0e\xd8\x76\x93\x8c\x4d\xa5\x1d\x2f\x39\xc0\xe2\xde\xf2\x07\xc0\x16\xd1\x33\xef\xa0\x52\x9e\x56\x13\x91\x38\x11\x11\x44\x1f\xc8\x5b\x54\xfe\x02\x22\xba\x8b\xab\x59\xd1\x39\xa1\xc5\x72\xb7\x25\x37\xef\x0f\x5b\xdf\xf0\x67\xf6\x50\x3e\xfb\xd9\xda\xb1\xe7\x22\x2a\x66\x2c\x72\xd0\x01\x29\xd3\x6c\x2c\x2b\xc6\x0e\xcd\xd7\xfa\xec\x41\x3c\xa4\x89\x4a\x9d\x74\xde\xd3\xd3\xf4\x8c\x96\xe8\x55\x44\x5b\x65\x24\xb5\xd1\xe6\xd3\x66\xa6\xc5\x1e\x73\x23\xc7\x64\xe2\xd3\x18\x26\xce\x18\xab\x8a\xc8\x16\xa7\x64\x37\x5e\xa7\x76\xf2\x05\x21\x26\xae\xa3\x1b\x7d\x01\xfc\x84\xba\xa4\xaa\x03\x6a\xff\x0e\x60\xea\xda\x0a\x87\x87\xc6\xe3\x5b\x41\x55\x32\xa0\xc5\x34\x5c\xbc\x54\x2f\xed\xa0\x13\x7f\x7e\xd3\xe3\x94\x48\xdc\xc7\xe6\x32\x19\x70\x34\x57\xc9\x54\x1a\x99\xa8\xac\xbd\xc1\x21\xe3\x20\xda\xda\x21\xbb\x1e\x3d\x9a\x7e\x4a\x8c\xfb\xf6\x5f\x2d\x55\xd0\x2b\xa7\x7b\x38\x75\x0e\x7d\x05\xb3\x2b\xdc\xaa\x08\xbd\x11\x66\x20\x92\xd6\x6a\xe4\xcc\x28\x50\xe3\x67\xfa\x9e\xb8\xe6\xe5\x73\x65\x68\x91\x1c\xe7\xb9\x17\x64\x29\xe6\x7f\xa1\xe2\x9e\x5a\x40\xcf\x5d\xb3\x65\x85\x53\xaa\x1c\xb4\x5e\x37\x2c\x58\x40\xdd\xe1\x9a\xd9\xb2\x68\x66\x60\x0f\x74\xde\xd4\x53\x5c\xb6\x55\xbd\x00\xe1\xec\x43\xca\xfe\x90\xc6\x41\x92\x7e\xde\x7e\x9e\xdd\xbf\xf4\x02\xf9\x67\xe0\x95\x33\x5a\xc8\xc5\x1a\x74\x3c\xfd\x8e\xf6\xdc\x36\xbb\x14\xa5\x0a\xa6\xbc\x99\x9b\x35\x38\xa7\xca\xdc\x84\x61\xaa\xfb\x86\xe8\xcb\x5e\xb4\x34\x3d\x6b\xf0\xa0\xd7\x17\x2c\x0c\x9e\x15\x8b\x82\x04\xb5\x2a\x9b\x83\x1f\xd7\x95\x56\xd3\x82\x3f\xdd\x27\x02\x3a\xfe\xe6\xe5\xd1\x69\xb6\xac\xe6\x2d\x89\x61\x3e\x73\x82\xc1\x89\x68\x4e\x82\xb9\xd2\xc0\xbe\x43\x13\x89\x98\x44\x17\x84\x29\x9a\x6b\x27\xc3\xf0\x85\x47\x25\x4d\xa2\x6f\x9a\x6e\x4f\x6f\x2c\x68\x42\xa8\x2b\xed\xaa\x82\x84\x66\xa4\x8a\x20\x02\x02\x15\x1b\x43\x0b\x75\x4c\x54\xd4\xa6\x6f\x7f\x41\xe3\x90\x48\x8a\x38\x97\x6a\x72\xd9\x83\x2f\xe9\x2f\x61\x96\xe4\x25\xd9\xbd\x96\x7e\x4a\x8e\xa9\x4c\x6e\x2f\x45\x8e\x50\x79\x15\x64\x45\x20\xad\x72\xaa\x74\x38\xc9\x92\xa0\xe2\xd2\x61\x25\xe2\x21\x41\x06\x64\x08\x99\xb8\x76\x41\x4c\xda\x4d\x9f\x98\x62\x4b\xa7\x38\x9e\x32\xb3\xf9\x20\x7b\x0a\xa6\x47\x04\x67\x17\x2c\xe0\x32\xdb\x20\x26\xf0\x1d\x0b\x5a\x37\x97\xbb\xd7\x6b\x83\x65\xc1\x74\x75\x80\xd3\x14\x09\x0c\x86\xc4\x79\x1e\x27\x6f\xb0\x1f\xb0\x42\x00\x9a\xc3\x1f\xe9\x48\x2a\xa7\x82\x8a\x30\x55\xf7\x57\x01\x4b\x11\xb6\xaf\xd6\xf2\xc0\x7e\x49\x38\x3a\x07\x2d\xce\x67\x41\xf7\x08\xb4\x35\xf6\xe7\x66\xfa\x94\x64\x5e\xa8\x7a\x0a\xd5\x45\xee\x7e\x95\x95\x6e\x49\x80\xc1\x2e\x7f\xcd\x13\xee\x08\xae\x2c\x92\x23\x01\x96\xd9\x9a\x10\x5c\x81\xad\x5e\x5a\x05\x3b\x35\xb9\xa9\xe7\xb2\xdc\x53\x68\xaa\x89\x4e\x31\x5c\x91\x71\x03\xcd\x12\xe5\x8a\x56\x4c\x5b\x72\xd0\x8d\xed\x7e\xa5\x72\xcc\x48\x59\x83\xfa\x92\x7e\xf1\xbc\x7b\x95\xcd\x84\x66\x8e\x15\x44\xd2\xf6\x51\x29\xc2\x75\x50\xc6\xb0\x52\x93\xb0\xa8\xaa\xd5\x1f\x55\x4f\x13\x13\x2e\x6b\x90\x7e\x20\xc6\x04\xc5\x4e\xa7\xaa\x9c\xe9\xe1\x90\xe8\x33\xde\xb8\x84\x07\x46\xa2\xd3\xb9\xdd\x42\xce\xda\x38\xd6\xab\x81\xe4\x01\xe1\xbe\xca\xbc\x76\x12\x93\xdc\x98\xa5\xc9\x69\x3e\x5d\xb5\x28\xcc\x7a\xf6\xf6\xc2\xa7\x86\x65\x9b\x22\x94\x4c\xb7\x66\xd1\x9c\xd2\x19\x81\xf6\x65\x9a\xfc\xb2\x02\x57\x38\x48\xf7\x63\x5e\x7e\xc6\x6f\xdb\x66\x92\x3d\x61\x6e\x72\x40\xab\xe2\x86\xd9\x20\x3a\x46\x8c\x1b\x4b\x15\x12\x7d\xc2\xb3\xdb\x81\x1c\x81\x6e\x82\x4f\xde\xd1\xa0\xeb\x84\xd0\x54\x56\xec\x77\x05\xe8\xdb\x58\x9c\x88\x66\x34\xa9\x50\xb0\xa9\x02\x3a\x23\xa6\x49\xf3\x41\x5b\xf7\x92\xf8\x43\xc7\xbc\x8b\x1b\x22\x0d\x62\x96\x9e\x71\x03\xc0\x0e\x01\x0a\x05\xf8\x2a\xa8\xbd\x89\xcf\x5c\xf5\x74\x30\x8a\xe1\x4e\xf3\x7d\x11\x66\x68\x12\x36\x0e\x11\x7d\x58\xc0\x75\xb6\x6c\x3c\xb6\x55\xc3\xda\x1b\x9d\x1f\xb7\x63\x86\x57\xe9\x41\x86\x76\xe2\x9b\xec\x8b\xf9\x97\xf7\xdd\x17\x9f\xcc\xbf\xf4\xcc\xfc\x20\x6c\x15\x68\x95\xd8\x57\x1b\x90\x26\xbb\x6b\xd3\xd2\xa2\x5e\x11\x17\xcf\x33\x5a\x7e\xb4\x85\x40\xd8\x58\x41\x3c\x85\xd0\xb1\x35\x73\x5b\x2c\x9b\x76\x80\x79\xea\x20\xb1\x21\x4c\x9b\x17\x3f\x9a\x2a\x90\xf0\x29\x25\xb1\xde\xad\x92\xe5\xa1\xe9\x50\xd9\xf2\xc2\xe5\x15\xe4\x81\x0f\x57\x94\xc6\x92\x87\x74\x2f\x10\x3c\x23\x62\x5d\x6c\x8a\x66\x94\xf8\x98\xb3\xc9\xd8\x2f\xc0\x72\x8d\xd6\x93\x90\x46\xcb\xc3\xa7\x01\xd2\xc6\x45\x82\x77\xd1\x51\xe5\xd2\x14\xac\xe7\xf8\x2c\x23\x32\xa4\x5a\xf8\xfc\x77\x6e\xdc\xac\x2d\x75\x4e\x6c\x2e\x14\x78\x4a\xeb\x71\x55\xf0\x36\xf7\x1d\xf6\x29\xde\x65\xa2\x39\x69\xfa\x87\xa1\xec\xa3\x30\x0d\x1f\x4f\xb2\xef\xb0\xd7\x5a\x3a\x77\xb2\xb4\xb2\x7b\xbd\x29\xf6\xcf\x68\xcb\xac\xb5\x6b\x25\xa6\xa3\x30\xd1\xc2\x18\xba\x09\xa6\x0c\x82\xe3\xc1\x80\x85\xc9\xc5\x10\x6d\x8e\x15\xb1\x5e\x28\x22\x68\xf4\x13\xc5\xa7\x8e\xe8\xb8\x2b\xc1\xda\x1c\x99\x6b\xec\x11\xd8\x00\xbb\x96\xda\x3d\x48\xf5\x87\x5f\x96\x2f\x1c\x33\x99\xc6\x4e\x6f\xff\x44\x47\x9d\x1e\x26\xb0\xb1\x32\x67\xc1\x05\x01\x56\xbf\x08\x21\x3c\xc7\xa0\x1d\x74\x09\x80\x8d\xa2\x7a\xa4\x5b\x51\x6f\xe4\x1c\x89\x55\x4b\x27\x3d\xa8\x97\x68\xcf\x6b\x5a\xbe\x23\xd3\x8a\x43\x07\xa5\xd2\x6e\xc1\x36\x40\x5a\xa5\x24\xe6\x97\xb5\xdf\x91\x59\x25\x3e\x20\xae\x76\x64\x9a\x56\x84\x54\x56\x1e\xd1\xb2\xc8\x6f\xb0\xa4\x68\xcb\xdb\xbd\x59\xe2\xc0\x4f\x2c\x6b\x43\xfd\xba\xfd\x85\x27\x91\x0f\x7e\x8d\xf1\x13\x29\x72\xcd\xa4\xdf\xb1\x4e\xef\x36\x36\x23\x46\x7b\xdd\xf5\x38\x94\x6b\xaa\x6a\xe6\xce\xa1\x91\x39\x51\xa4\x2c\x4d\xcd\x52\x94\xcd\x63\x5d\xc0\xc6\xd0\xe4\xe1\x4c\x49\xb8\xff\xff\x58\xc3\xf1\x03\x30\xfd\xa3\xae\x45\x6c\x3e\x7e\x21\x9e\x88\x16\xde\xa7\x8f\x2d\x5d\x80\x8b\xf8\xfa\xd2\xd6\x74\x0c\x17\x18\xfb\x00\x49\x34\xe5\x98\x73\x37\xc0\xfd\x73\x7c\x0a\xa4\x4f\x8b\xf6\x33\x2f\xcf\x3c\xd7\x84\x4c\x13\x0e\xb2\x7f\xb0\xeb\x05\x6d\xc2\xd2\x67\xc2\x3b\x3a\x7d\x6d\xdd\xf4\x3b\xdc\xbb\x95\xd5\xf4\x78\xf7\x9a\x76\xf1\x2a\x87\x3a\x40\x65\x0a\x86\x85\x7e\x83\x40\xbf\x27\xb1\xef\x78\x54\x86\xc7\x66\xcc\x39\x89\x38\x19\x69\x45\xbf\x89\x24\xf4\x4e\xc3\x71\xd2\x17\xfa\x9f\xdb\x7d\xd7\x77\xa7\xa7\x7f\x78\x21\x1a\x87\xd3\x3f\x60\x23\x82\x6a\xcb\x24\x8a\xd7\x3f\x34\xcd\xd6\x7d\x5f\xaf\xa7\xa2\xb2\x62\xf5\xd6\x89\xb9\xc6\x41\x1b\xa9\x2f\x77\xaf\xeb\x06\x44\xc5\x19\x2f\xac\xd9\x70\x87\x1f\xb3\x94\x9f\xd6\x74\x48\x92\x04\x67\x1e\xa6\xe7\xb2\x18\x04\x5b\xad\x0c\x4a\x4e\x3d\x7d\xe5\x4d\x77\x98\xb4\x7c\x4f\xf8\x53\x9f\x8c\x9a\x76\x75\xfb\x8b\x9b\xfc\x44\x74\xb0\xde\xd2\x59\x18\x52\x5d\x80\xf5\x90\xa2\x5b\x7b\xed\xcf\x89\x6b\xc8\x98\xb8\xfc\x32\xeb\x33\x92\x8a\x5f\x53\x7b\xf3\x96\x46\x45\x53\xbb\x28\x88\x1e\x5b\x11\x24\xf3\x6a\xd3\xe2\x0e\x82\x48\xf8\xa3\x07\xb3\x8f\x7b\x6d\x90\x20\xf4\x6f\x6f\xe7\xa0\xdf\x08\x37\xbc\x6d\xcb\x15\x71\xa1\x9f\xb0\x85\xdd\x74\x23\xf7\xca\x5c\x12\xfa\x5d\xb1\x99\x57\xeb\x96\xd7\x96\xd9\x00\x92\x25\xf7\x04\xda\xa8\xca\xcd\xd1\x4a\x8b\xca\xc8\x72\xdc\xbd\xe2\x42\xe6\xe7\xd1\x42\xa5\xd5\xe5\x89\xab\xe4\x3d\x65\x85\xd1\x86\x59\x21\x76\x2a\x0c\xa7\xbf\xe7\x00\x16\xaa\xd1\x18\xd2\x1f\x2c\xa0\x3a\x46\x76\xb9\x22\xe9\xa4\x54\x90\x63\x7b\x03\xbe\x46\x24\xb6\x92\x33\xe5\xe7\xe1\xd6\x99\x76\xf3\x45\x55\xd7\x76\xd1\xf4\xef\x9f\xa9\xcb\xce\xac\x6a\x6c\x42\xd0\x22\x34\x0d\x6d\x19\xd4\xf5\xda\xe2\x0c\x52\x4d\x22\xfe\xd4\x9d\xb7\x74\x79\xb4\x65\xb4\x42\xe8\x7c\x73\x69\x72\x56\x0f\x2a\x53\xe7\x0e\x43\x71\x49\x87\x4e\x23\xaa\x58\x7f\xb1\x3e\x9b\x5b\x4b\xe2\x85\x59\xd9\x72\x70\x12\x81\x1a\x9f\x04\x59\x53\xdc\x40\x11\xd0\x38\xbd\x18\x9d\xf5\xcb\x25\x2b\x7d\x7f\x59\x12\xf3\x06\x45\x9f\x8d\x5f\x84\x8c\x96\x6f\x68\xa1\x0e\x2a\x18\x2e\xda\xb1\xa2\x32\xd1\x5c\x8c\x06\x9e\xf7\xb8\x0f\x83\x93\xc4\xba\x0a\x57\x7a\x90\x6a\x8b\xf5\xda\x2e\xa1\xab\xf6\xcd\x4e\xbf\xad\xdb\x6d\xd2\x12\xaf\x15\x3e\xec\xd3\x31\xab\x6d\xbc\xc9\x88\xac\x85\x49\x84\xe4\x30\x73\xdd\xe4\x8f\x1d\xfb\xa2\xd9\x92\x3d\xcd\xb0\x1e\x8d\x18\x77\xcd\x76\x12\xd1\x89\x5d\x14\x28\x91\x14\xba\x86\x34\xa3\x27\x81\x03\xae\x2d\x22\x83\x7a\x94\x17\x03\x53\xdd\xde\x39\x68\x87\xc8\x19\x67\xfb\xdf\xd4\xd0\xee\x0d\x4e\xfa\x94\xbb\x8a\x29\xe1\x8e\x46\xc2\x46\x26\x4d\xec\x69\x41\x24\x86\x21\x5d\x87\xba\x8d\xb7\x41\xc1\xd2\xb0\x3f\xd3\x66\x07\x89\xe9\x55\x9e\x2a\x22\x2c\x9d\x82\x21\x2e\xbd\x9e\xc0\xb0\xc5\x35\x38\xc1\xca\x30\x59\x6f\x16\x5d\x99\x94\x15\xd3\x8e\x2c\x9a\x37\xcb\x4a\x55\x40\x34\xc3\xdd\x08\xdb\x09\x1d\x0b\xeb\x0d\x8e\x1b\x9b\x31\x89\x12\x97\x7d\x5e\xa2\xac\x92\x72\x7c\xe4\x55\x04\xe0\x86\x69\x65\xaf\x53\x09\xa9\x4c\x7b\xe3\x4f\x19\xa8\x4d\x50\x11\x6d\x7d\x50\x80\x38\xd6\x29\xe0\x7c\x77\xc9\xa2\x43\xa8\xf5\x78\x7f\x45\x17\x83\x8a\x0e\x48\xf0\x6a\x82\x96\x5c\x16\x0f\xeb\x39\x80\xf1\xa2\xf6\xcc\x31\x3d\xfd\xc4\x93\xc5\x82\x10\x9d\x4b\xb6\x86\x57\x1d\x8e\xe1\x5e\x91\x43\xfb\x27\xcd\x7d\x71\x86\xd3\xcf\x42\x54\x64\x5e\xb3\x23\x2a\x18\xda\x28\x1a\x5a\x72\x98\x0e\xb5\x9d\x11\x99\x13\xb2\xbd\x6e\x00\x98\x0c\x93\xd2\x72\x87\x55\xea\x69\x53\xd1\x92\x64\xb3\x2c\xe9\x6f\x5f\x0f\x9a\xdf\x40\xa4\x65\x82\x2a\xf9\x72\x10\x68\x68\xfa\x53\x23\xdd\xc0\x61\x85\xcd\x6b\xc6\x7b\xd1\xd7\x78\xe0\x04\x94\xd7\xd4\x87\xd0\x7e\xda\xf8\x96\x56\x91\x36\x1d\xfa\x71\xfb\x4b\x95\xd4\xd2\x2a\x8f\xec\xe1\x81\x25\xff\xa4\x35\x8c\xed\x3f\x14\x25\xf1\xdc\xf0\x5d\xd5\xed\x9f\x2a\x68\x7f\xe3\x19\x6d\xb3\x8b\x8a\x4e\x92\x17\xb8\xdb\x55\x36\x1a\x77\x32\x5e\x88\x07\xbd\x6e\xdc\xfe\x52\xd8\x4d\xa4\x18\xa7\x8f\xae\x33\xbd\x66\x8c\x98\x7a\xc8\x59\x0e\xa3\xf3\x63\xe0\x6e\x8a\x71\xcb\x6c\x5e\x9b\x72\x71\x1e\xf1\x82\xa7\x24\xf1\xed\xfe\x02\xad\xe6\x0d\xee\x5d\x3a\x46\xc0\x32\x2d\x86\x04\x75\x11\xdb\xb6\xcc\xf4\xf6\xc7\x2b\xd2\xe4\x4c\xc3\xf6\x4b\x46\x37\xe5\x56\xd4\x2c\xbb\xd7\x99\xbf\x00\xc2\x7d\x5e\xa8\x40\x6e\x7c\xde\xa9\x9e\x48\x13\x59\xd1\x1a\xbe\xa8\x48\x02\xaa\xd8\x1c\x10\x38\x03\x32\x5d\x64\x8c\x44\xd0\x3d\x5d\x17\x9f\x1b\x8a\xe6\x7a\x7a\xd2\xce\xd7\x85\x83\xa4\x23\x87\x4a\xc2\x63\x63\xa1\x5a\x81\x3d\x86\xad\xdd\xf4\xd4\xae\x04\xb9\x98\x4b\x03\x16\x4c\x1c\x07\x1b\x15\x5f\x4a\xd0\xb2\xbd\x21\x84\x2e\x6f\xd0\xd5\xc2\x97\x83\x06\x15\xe5\x80\x24\xc8\xfd\x13\xde\xcb\xb0\x63\xd6\x97\x54\x3e\xb2\xee\x53\x56\xff\xe1\x7d\xf7\x21\x6f\xa6\xd0\x10\x45\xdb\x6f\x57\x98\x38\x03\x6d\x00\xa5\x1c\x6e\xb9\x6f\x7b\xeb\x01\x0f\xd4\x8d\x55\x44\x96\x1f\xbc\xdd\x18\xcd\x95\xb7\x2e\x3b\xf1\x86\x65\x83\x4b\x03\xe5\x80\x2e\x3d\x25\x78\xad\xdd\xf4\xb4\x62\x9d\x7b\x61\xf9\xb8\x2c\xa6\x1c\xeb\x62\xc1\xaa\x22\xd7\x5d\x8d\xf3\x8a\x74\x3d\x31\xe5\xfd\xf7\x72\xbb\xb6\x74\x28\x7f\x24\xab\x47\x95\x2a\x6d\x91\x8c\xe5\xe8\x11\x3a\xbd\xc5\xc4\x2c\x82\x35\x9c\xce\x13\x74\xe0\xc1\x26\xce\x9b\x4d\xf2\xfd\x4d\x7c\xd2\x0e\xf2\x09\xb6\x39\x2d\x08\x51\x8f\x39\x74\x10\x55\x7a\x07\x79\x5a\x88\xac\xe2\x88\x6f\x6c\x45\x6b\xe1\x55\x05\x45\x4f\x55\x20\x07\x05\x51\xf3\x62\xf5\x42\x23\xd3\xe0\xc7\xc2\x90\x74\x03\x2e\xb5\x09\x06\xa4\xe0\x06\x30\x0a\x13\xb1\xe0\xa4\x58\x97\x2e\xf3\x27\xbf\x51\x73\xd3\x75\xb5\xf0\x77\x96\xbd\x0b\x05\x42\xd8\x16\x77\x7c\x01\x37\x7e\xa5\xa8\xa9\x68\x3f\x3f\x1c\x66\xa5\xeb\x7e\x29\x11\x48\xc1\x0c\x91\x7a\xed\x36\x30\xd2\xe9\x6e\x0a\x70\x2b\xa5\x8b\x72\x68\x48\x1a\xa8\x4d\x39\x8d\x1b\xc0\x7a\xcd\xd8\x0b\x58\xb8\xa9\xe5\xdb\x55\x81\xfb\xdb\xb3\x33\x12\xe1\xb2\xe6\x9c\xbe\xcd\x75\x76\x5e\x5d\x11\xf7\x2a\x57\x50\x91\xc3\x7c\xb6\xaf\x9a\x13\x4d\x24\x91\x6e\x6b\xa7\x2f\xda\x7a\xcb\x7a\xad\x11\x93\x44\x7f\x25\x9a\xf0\x8f\xee\x1e\x93\xfb\xf9\x6a\x33\xe0\x22\xe3\x05\x83\x91\xa0\x96\xbf\x10\xf5\x47\xe5\x95\x1f\x62\x11\xd2\x06\xc3\x5c\xcf\x92\xb0\x68\xf9\xc6\x02\xb7\x4f\x7d\xfe\x56\x55\x4e\xf5\xe9\xda\x39\xbe\xfb\x50\x75\xaf\xa8\xd4\x07\x9d\xd3\x59\xd4\x12\xa7\xe1\x16\xc7\x03\xce\x8b\x75\x5e\x00\x4c\xee\xc1\x7d\xf7\x99\x43\xcc\x8a\x0d\x6c\x8f\x0f\xdb\xe5\xed\x2f\xdd\xad\x19\x5b\xc3\x42\xae\x70\xca\x24\xd0\x92\x13\xf3\xb2\x14\x07\xdd\xfd\x5c\x4f\x10\xda\x24\xb4\xa6\x9d\x98\xf4\x3a\xbb\x87\xe2\x00\x6b\xf9\x78\x3c\x4a\x74\x86\x99\x95\x92\x52\x60\x4b\x81\xb8\x55\xd7\x54\xad\xf3\xf8\xa2\x33\xdc\x8e\x05\xd9\x56\x2c\x7c\x03\x88\x98\xf9\x76\xb6\x1e\x50\x8e\xcc\x12\x08\x51\x98\x64\xc7\xf6\x2a\x3b\x09\x9a\xa0\x91\x83\xc7\x91\x4a\xd1\x26\x68\xce\x4c\x7c\x3d\x17\x3a\x30\x19\x0c\x22\xe0\x43\x4f\x9d\x7d\x14\x84\x4d\xdb\x4c\xb2\x17\x50\xc1\xb3\x8c\x89\x6b\x6e\x92\x9e\xb6\x72\x83\x02\xfe\xd3\x40\xac\x57\xfe\x75\x51\x79\x01\x59\x30\xc3\xc8\xe3\xe3\x9a\xeb\x9d\xd2\x5c\x30\x6b\xd6\xec\xd8\xb2\xd9\xf6\x41\xe5\xc4\xc7\x2c\xf5\xa4\x2e\x36\xac\xa7\xee\xb3\xd5\x94\x8f\xb2\xba\x1b\xe6\x02\x55\x22\x6d\x88\x39\x0b\xd8\x61\x6e\x94\x43\xe2\x28\x4e\x75\x9a\xfa\xba\xab\x3b\x24\xa9\x0a\xcf\x5b\x44\x37\xac\x7e\xd8\x0a\x58\xe5\x77\x0e\x05\x92\xfd\xa3\xeb\x2c\x65\x81\x55\x7e\x23\x2a\xbf\x47\xfa\xdd\xcf\x97\x51\x71\xae\x15\xeb\xdb\x54\x47\x28\x3c\xaa\xb6\x9b\xea\xd2\x2a\x47\xca\xf9\x3e\x50\x6f\x42\x32\x58\x3d\xa5\x0c\x2a\x7b\xc4\x1c\x8b\xb8\x59\xc9\xe2\x9f\x67\x57\x5f\x0d\xda\xf6\x24\xa0\x7d\x3c\x87\xe8\x4b\xc7\xea\x4c\xc6\x95\x7b\x05\x23\x1b\x0e\x7f\x80\x4b\xf9\x9c\xa9\x54\xc6\xeb\xe5\x1a\x7f\xfd\x96\xcc\x47\x21\xd0\x7d\xc8\xa0\x74\x0e\x99\xb3\xe4\x5a\x07\x17\x19\xd3\x43\xa2\xe5\xab\x2c\x4e\xf7\x38\x09\x1d\x04\x1c\x86\x06\xd9\x22\x18\x45\x2f\xce\xed\x62\x25\xa8\x28\xca\x79\xf5\x33\x9b\x97\xb2\x4d\x33\x9d\xc2\xed\xcf\x0d\x2e\x6e\xce\x2b\x18\xdc\x31\x52\x60\xba\xc5\x38\xb7\x69\x5b\x72\x5f\xc3\x47\x9e\xd0\xc9\x94\x77\x60\xbc\xa3\x04\x98\x2c\xa0\xad\x1f\xb5\xf0\x10\x25\xf7\x20\xc9\xc4\x04\xdf\x93\x6a\xd0\x2e\xce\x7b\x1d\xde\xfc\xa1\x4e\x24\x21\x26\x99\xdb\x3f\x15\x7c\x1c\x77\x86\xd5\x14\x2e\x95\x03\xe8\x10\x0b\x43\x41\x7f\x9f\xc0\x82\x7c\xd4\x0a\xe8\x3e\x63\x82\xc5\x46\x42\x92\x3d\x4c\x5b\x60\x81\xe8\xe4\xb2\x08\x5a\x10\x92\x39\x76\x6f\x40\xf7\x6a\x4c\xa9\x5b\xd0\x17\xae\xa9\xab\x72\xf9\xe5\x4b\x73\x61\xe0\xf9\xb2\x04\xc3\x09\x5e\x30\x5f\x7d\xf1\x89\xe6\x67\x87\x5b\x92\x70\x9a\x70\x96\xa4\x25\xb3\x60\x83\x1d\x2c\xa1\x2f\x4c\x64\xaa\xbe\xfb\x33\xcc\x74\xa1\xa5\x4c\xf0\xc0\x76\xeb\x90\x66\x50\xa0\xac\x68\x6f\xaa\x49\x3c\x4b\x4a\xf2\x4d\x15\xb4\x82\xd4\xff\xa6\xe2\x36\x1c\x57\xb2\x0d\xee\x02\xa8\x65\xd2\x91\x6e\x8a\xd6\xf8\xbc\x1c\x84\xcc\x48\xb3\xc4\x02\xde\x22\xa3\x44\x5e\x44\x20\xba\x40\x82\x00\x98\x74\x85\x58\xc4\xe8\x17\x02\x01\x52\xdf\x36\x6a\x58\x8d\xb2\x66\x0d\xdb\xfd\xeb\x8c\x8f\x32\x5c\x83\x2f\x0d\x43\xae\xa1\xf6\x1b\xb9\xda\x36\x6d\xb7\x4d\x5b\x77\xf4\x11\xa8\x12\xbb\x04\x5b\xc1\x52\x93\x2c\x6d\x87\x4e\x12\xe4\x70\x19\x2b\xd7\x02\x2a\x3c\xcf\xf2\xa3\x08\x5c\x0b\xd5\x3d\xa6\xea\x3a\xb6\xd5\x07\x19\x32\x2e\xdf\x85\x98\x63\x19\xfe\x29\x5c\xcb\x70\x2f\x88\x18\x60\xff\xf5\xae\x1c\x6b\xd0\xac\x1f\xb4\x6f\xed\x5d\x98\x56\x74\x0a\x83\xa8\xca\xda\x22\x99\xab\xdd\x6b\x18\xee\x78\xe7\x8c\xb0\x7d\x88\x71\xbb\x3f\x8f\x89\x19\x96\x63\x4d\x41\x74\x22\xd3\xd9\xc1\x12\x51\x79\x9f\x65\x4b\x74\x8a\xed\x86\x99\x51\x67\x68\x2c\xfb\xff\x69\xbf\xb9\x86\x91\x52\xb5\x22\xda\xea\x97\xe0\xd4\xbd\x65\x3a\xd6\x21\x87\x9d\x98\x71\x44\x6b\x1c\xba\x01\x39\x06\x55\x4e\xed\xf6\x82\x55\x83\x32\x0c\x5b\x34\xa2\x19\x15\x21\x0b\xda\x65\x36\xac\x74\xe9\xf1\x49\x0e\x18\x45\x1d\xd7\x5e\x24\xbc\x25\xe5\x1d\xad\xf0\x8e\x76\x0f\xef\x68\xcb\x79\x51\xe2\x80\xea\xeb\xf2\x49\xdd\x54\x4a\xfb\x10\x04\xd9\x04\x40\x58\xa9\x09\x05\x5c\xcc\x40\x85\x8a\x66\x8c\xb3\x14\x17\x74\x32\xae\x58\xbf\xe7\xd4\x10\xaf\xbd\x64\xf3\x81\x75\x55\x02\x17\xe2\x0c\xa0\x26\x24\x52\x7c\xf7\xdf\x3d\xe7\x91\x2d\x4c\x60\x75\x9a\x9c\xce\x10\xff\x66\xf2\x3c\x87\x09\xb8\xaf\x26\x27\xa2\x27\x49\x88\xe4\x7e\xf8\x1c\xf0\xcc\x11\xe5\x4a\xef\x78\x53\x61\x7b\xf7\xc3\x93\x23\x96\x65\x7d\x93\x2a\xc4\x90\x84\x06\xdb\x01\x46\xbf\xdd\x48\xbb\xf8\xc1\x48\x5f\x43\x36\xf4\x03\x48\xf1\xee\x29\x48\x5c\x37\x50\x2a\xb9\x8d\x0b\x43\xec\x0f\xcf\x0f\x2c\x05\x90\x09\xc0\x3d\x21\x1b\x4f\xf4\x91\xe6\x06\x5b\x5a\x7b\x13\x78\xb5\xfb\x20\x3b\x19\x68\x77\x09\x9a\x95\x6b\x84\x88\xb2\x5a\x55\x90\xcf\x0b\x4a\xa6\xf5\x45\x29\x7c\x90\x55\x77\x41\x22\x92\xc4\xae\x1d\x8a\x1f\x5c\x03\x37\x1d\x7b\x92\x21\x78\x06\x15\xcf\x7a\xc7\xa5\x4e\x78\xca\xcd\x3a\x3b\x14\xb4\xf3\x5c\x45\x3c\x6b\xb4\xd4\x90\x71\x6d\x7d\x35\x7e\xf6\xb8\x9a\xb7\xb2\xb1\xea\x2c\x8b\xf4\x0c\x77\x31\xb1\x78\x48\x9d\xdc\x3d\xda\x6a\x60\x67\xd2\x72\x8f\x9d\x51\x1b\xe5\x87\x4d\x26\x46\x36\x68\x44\x8e\x38\xca\x4d\xbb\xce\x64\x54\xcb\x95\x5d\xaf\x79\xe1\x68\xeb\xfe\xf2\x5a\xf5\x1c\xb1\x05\x89\x42\xe8\x09\x99\x75\x94\xde\x52\x8c\xe9\x91\x25\x65\xaf\x9c\xa3\x85\x1d\x2b\x1c\x0e\x78\x7f\x96\x3b\x7c\x51\x4b\x7a\x09\xe1\xf8\x9b\xc3\x17\xdf\x3e\x3f\xfa\xe6\x9f\xbe\x39\x3e\x3a\x7d\x7c\x18\x24\x83\x0f\x3a\x23\xd0\x5e\xd7\x0e\x23\x53\x91\x0c\x8d\xa9\x39\x7b\x0a\xa6\x56\xa9\xe2\xc3\xe8\xa1\xcc\x00\xaa\x93\x92\x02\x53\x11\xe6\xb4\xac\x0b\x7b\x63\x4b\x18\xba\x66\xa2\x6e\xd4\x8b\x89\xce\xf4\xaf\xf1\x07\xfb\xaf\x58\x57\x05\xa5\xdd\x8f\x74\xcc\xe3\xcb\x85\xdd\xff\x08\x2a\xd9\xe8\x0a\x6d\xef\x0d\x79\x77\xc9\xe6\x7d\x6b\xcc\x9c\x8d\xf5\x6e\x2a\xf5\x03\xf2\xc0\xac\xf9\x20\xec\x12\x03\x86\x1b\x73\xa1\x4c\xf5\x52\x9c\x9b\x4d\x64\x8b\x45\xc7\x18\x8f\xe4\xb6\xc4\xe9\x66\x5d\x04\xec\x4e\x60\x95\xe7\x0a\x3a\xd7\x62\xeb\x7a\xce\xf7\x8d\xe2\x9f\xcc\xc9\x48\xed\xfc\xcf\xd4\x11\x55\xbc\x23\xb1\x03\x7d\xe1\xb6\xc4\xd0\x16\xb4\x01\xb9\xe9\xbd\x16\xfd\x24\xb6\x46\xb2\xf3\xbd\x2f\xe9\x70\x04\xa3\x06\x6a\x87\x20\xbe\x8c\x6b\x83\x87\xab\xaf\xf2\xa3\x87\xa2\x59\xa1\xb5\xc1\x4b\x8b\x98\x73\x9b\xea\x59\xb0\x94\x50\xc2\x7d\xcc\xaa\xc4\x95\xe8\xc5\x0f\xd5\x35\x36\xd6\x7e\xb7\x0a\xc0\xee\x1e\x01\xa0\xac\x34\x79\x30\x1c\x0f\x62\x52\x7f\xa4\x4d\xff\x02\x26\xd2\x8d\x87\x1b\x59\x48\xa6\x3a\x57\x4c\x37\x87\x5b\x91\xaa\x35\x0d\x8e\xd3\xc1\x69\x3a\xa4\xf8\x86\x4f\x89\xf0\x68\x64\x93\x65\xd1\x14\xcb\x12\xde\x95\x50\x71\x51\x59\x5a\x8e\xb4\x77\x40\x4d\x45\xff\xe1\x6b\xa0\x09\x41\x9d\xc3\x1a\x17\x15\x91\xd7\x02\x24\xca\x10\xee\x8c\xc9\x99\xae\xf0\xcf\x7f\xf6\x9a\x34\x99\x24\x67\xde\xd9\x9b\xef\x69\xaa\x19\xb1\xe4\x66\x7a\x44\x7f\x68\xf7\x2f\x6e\x94\xcd\x45\x33\x2d\x82\x29\xd7\x41\x13\xcc\xbd\x65\xff\x86\xae\x1a\x35\xb7\xe4\xc9\x09\x76\x96\xe9\xe4\xa8\x5f\x83\x2a\xe8\xa7\xc7\xd5\x6a\xdd\x3a\xc2\x31\x8c\x31\x44\x37\xef\xbd\xa9\xa9\x3f\x8d\xc5\x46\x2d\x6e\xd5\xbb\x5f\x2b\x35\x12\x92\x74\xa2\x5f\x97\x7d\xc4\x36\x75\x24\xc0\x7f\xbc\x47\x43\xfd\xbc\xeb\x3e\x4b\xd3\x2c\xe9\xf2\xb0\x04\xe0\xad\xaa\xe9\x7e\x05\x0a\x13\x2a\x0a\x2e\x8f\x5c\x17\x36\x6d\x28\xb0\xda\xe6\x3c\x31\x53\x34\xa9\x55\x3f\x86\xb8\x94\x2d\x15\x16\x2e\x4f\x83\xf7\x77\xf0\x62\x8d\xf3\xf7\xad\x3c\x5e\x20\x24\x46\x98\x74\x01\x62\xe5\x65\x73\x5a\x41\xf7\xbe\x14\x44\x86\xd5\xe7\x2b\xe5\xf9\xe1\x46\x5f\xf7\xa7\x47\x41\x26\x0b\xda\xca\x89\x2b\x8a\x3a\x61\xfa\x10\x5f\xd9\xa1\x37\x40\x1a\x05\x8a\x44\x53\x15\x6f\x4c\xe4\x34\xf6\xc9\xb7\x47\x2f\xd8\x57\x8c\xa4\x78\x28\x84\xd7\xde\x59\x0e\x76\xe7\x93\xae\x4a\x7f\x27\xca\x30\x62\x94\x7e\x24\x49\x5a\x0c\x49\x07\x70\xa9\x0b\x0e\xa7\x7c\x28\x42\xbd\x3c\x15\xec\x41\xb8\x00\x7e\x26\x4a\x12\x2b\x9a\x10\xe6\x06\xf2\x9b\x75\x1f\x11\x93\x98\xc1\x9f\x24\x76\x3a\x45\x4e\x8c\x66\x6c\xcf\xfe\x00\x06\x66\x9e\xf3\x56\xb4\xbd\x9e\x41\xe1\x4b\x1b\x0a\x82\x3b\x44\x29\x61\xab\x7e\x58\xc1\xe4\x2c\x06\x56\xd3\x90\x13\x56\xd1\xfc\xef\xff\xfa\xdf\x1e\x3c\x44\xb7\x1f\x36\xf5\x9a\x7e\xf1\xe6\xbf\xbd\x26\x70\x5a\xd3\x2b\x98\x7b\xe2\x53\xeb\x87\x05\x1e\x2e\x6d\x68\xaf\x5e\x35\xed\x25\x9b\x6a\xa3\x76\xc9\x16\x9b\x5c\x68\xad\x56\x2d\x49\xe6\x9d\xec\x85\xca\x30\x45\x23\xce\xcb\xc9\x01\x9c\x77\x63\x56\xfa\xc7\xce\x7d\x5f\xd1\x69\x7c\xc3\x2e\xf1\xac\x39\xbe\xd3\x73\x3c\x8a\x69\xc1\x47\x70\x5c\x14\x7c\x00\x99\xfd\x8a\x8d\x54\x8e\x2d\x4e\xe2\xf0\x5f\x97\xef\x97\xfa\xd5\xc2\xea\x1e\xe6\x79\x72\xd7\x9e\xdc\x40\x71\x4e\x77\xec\xee\xdd\x4e\xd5\xab\xc0\xba\xf9\xb8\x53\x56\x9d\xf7\x8b\x11\x3e\x4c\xcb\xec\x8f\x2d\x70\xb9\x84\x5b\x3b\x6d\xc1\xce\x74\x2a\x05\xe3\x71\x03\x2e\x27\x2b\xe2\x31\x0f\x5d\x6e\x65\xd3\x55\x11\x99\x91\x33\x1f\x5f\x54\x1b\xd8\x02\xf4\x6d\xc9\xe3\x42\x6a\x2e\x40\x62\x49\xce\xaa\xc1\x16\x06\x5d\xa0\x54\x69\xeb\x38\x58\x9b\x16\x37\xde\xdc\xb2\xac\xa2\x42\xb0\x06\xd5\x1b\xca\x0b\x30\xbe\xde\xf6\xa4\x1b\x0a\x75\x9d\x5d\x4b\xc7\x76\x65\xce\xe8\xf4\x5c\x15\x31\xaf\xb9\x59\xac\x60\xcf\x65\x6b\x76\x46\x78\xff\x3d\xe5\xc2\x87\xca\x78\x9b\xda\x42\x44\x82\x8c\xa2\x17\xa8\xf0\xd2\x6e\xcc\xd2\x09\x08\xbb\xe4\xd2\x67\xe1\xf3\xad\xcf\xc0\xc5\x2b\x87\x73\x58\x8e\x87\x5f\x40\xdc\x06\x4a\xa1\xbf\xd9\x73\x8d\xde\x80\x23\xf5\xdc\xae\xe1\x6a\x81\x7f\xe0\x01\xb4\xa3\x34\x34\x27\x8e\x98\x93\xff\x09\x4a\xdf\x6c\x8a\x06\xf7\x9e\x97\xbb\x37\x37\x72\xfb\x46\x62\x35\x46\xc5\x6e\x1a\x39\xd1\x07\x48\x02\x17\x44\xb5\x81\x79\x38\xec\x4a\x6b\xf1\xf0\x73\x9a\x41\xe8\xe1\x58\x0e\x2f\xd9\xa4\xb5\xb6\x9a\xcc\xae\x08\x28\xf4\x5c\x2d\x35\xca\xb8\x70\xab\x50\xb4\x76\x36\x86\x57\xfb\x89\xff\xc5\x0a\x7e\xe9\xd8\x64\xac\x83\x3e\x2f\x8d\x2c\x41\x33\x34\x04\x39\xc3\x41\x57\x01\xba\x54\x6c\x21\xc4\x2b\xd8\xe8\x30\x02\xde\x10\xeb\xc0\x7d\xc8\x3f\xe9\xcd\x5e\x94\x05\x99\x9e\xbd\x7f\xe2\x44\xf1\x19\x79\x09\xaf\x95\x55\xd1\x25\x13\x25\x53\xf2\x77\xac\x92\x5c\x15\x91\xff\x05\x82\xba\x40\x33\x74\x84\xcf\x38\x75\xd2\x9b\xac\x28\xa7\x84\x60\x43\xa9\x44\xd4\x19\x67\x27\xb9\x0b\x9a\xa9\x7a\xa6\xa5\x1f\xe2\x23\x5b\x0f\xeb\x08\x73\xdf\x4d\x7d\xbf\x8d\x0e\x84\xda\x19\x87\x92\xb6\x3a\x40\x69\x6e\x33\x0a\x5b\x6d\xe9\x58\xd5\x81\x3e\xa3\xcf\x2c\x26\xbb\xa4\xda\xca\xc1\x5a\x3d\xaa\x17\x09\xfb\xc0\x69\x17\x46\x58\x1b\x3b\x3d\xd4\x1f\x23\x7d\x0c\x30\xd2\x45\x33\x06\x09\x6d\x92\x07\xa3\x21\x0f\x60\x84\x2b\x69\x0c\x9e\xe1\x8c\xf9\x49\xa1\xd9\x1c\xcc\x8a\xe4\xcd\x48\x6c\x5b\x58\xef\x84\x84\x14\x96\x71\x38\xfe\x49\xd2\x86\x56\xa5\x2d\xa5\xb5\x31\x1e\x1b\x33\x9f\xde\xcf\x33\x20\xb1\x2b\x0a\x24\xf9\x1c\xc1\x58\xc8\xa3\x65\x05\xe3\x64\xa9\x36\xad\x2f\xce\x22\x49\x6c\x26\x02\x27\x10\x10\x44\xcf\xf5\x58\x81\xbb\x28\xa8\x0f\xb2\xa7\xde\x21\xa1\x68\xc1\xfd\x33\xda\x01\x2c\x0b\x4a\xdf\x53\xf1\xbe\x62\x2c\xfd\xbd\xa0\x3f\x63\x19\x13\xb8\xa3\x29\x2b\x3d\x24\xbe\x29\x3f\xc7\x21\x9d\x06\x52\x22\xa9\x81\xc4\x15\xdf\xcd\x5c\xaf\xa1\x47\xcb\xc8\xcc\xe6\xb3\xf9\x35\x17\x91\xb9\x65\x1f\xe4\x7d\x25\x36\xb0\xc2\xa9\x10\x65\x86\x4b\x3c\x0d\x9f\x63\x25\x1c\x6c\xe7\x1f\x8b\x3d\xea\x58\xde\x04\xdb\x90\x6b\x02\x0f\x1a\xa0\x80\x81\x40\x9a\x04\x44\xfc\xcb\xec\x03\x21\x69\x8f\x3a\x22\x2a\x0d\x62\xc1\xf8\x58\x5f\xab\x8a\x63\x40\x70\xd2\xb2\xc5\x75\x92\x14\x78\x82\xdf\x59\xfd\x2e\xc5\x36\x95\x6b\xc0\x3f\xa1\x54\x7f\x4a\xbf\x33\xfd\xb8\xab\x15\x0f\x2f\xcd\x0c\x0b\x60\xf1\xf0\x1c\x4c\xe5\x57\x76\xff\x87\x4f\x7f\x74\x98\x84\xee\xca\xe2\x87\xdf\xfd\x48\x02\xd6\xfd\x1f\x3e\xfb\x91\xef\x25\x86\x65\x67\x67\x66\x65\x07\x15\x70\xb9\x00\xbc\xa5\x9d\xa7\xa8\x5a\x6c\xca\xf2\x23\xe2\x06\x3f\x13\xb1\xd2\x9f\xde\x8a\x16\x27\xde\x06\x72\x1b\x24\xa9\x78\x51\xe7\xde\xdf\x9f\x0d\x08\xba\xcc\xb2\xdd\xcc\x74\x8c\x0e\x8b\x9e\xa4\x19\xfa\x49\x34\x50\x74\xe5\x3d\x0a\x66\xa6\x99\xfe\x14\xbe\x30\xdc\x22\xc7\x60\xa9\xf7\x5e\xae\xfc\x3b\xf9\xfa\x92\x47\x82\xa1\xff\xd4\xb5\x54\x85\xfb\x8d\x17\xe7\x96\xce\xce\x7c\x12\x0b\xf7\x2d\xd7\xb6\x99\xf4\xf8\x90\x44\x69\x3a\x64\x57\xcd\xba\xe9\x65\x6a\x3f\x14\x88\x79\x95\x78\xee\x4b\x7a\x80\xae\x2d\xe3\x46\xc0\x9e\xf3\x47\x3f\x2f\xad\x4a\x60\x46\xeb\x52\xce\xea\x29\xe4\x61\x3f\x5b\x10\xcd\x58\x92\xdd\xe6\x37\xa2\x48\xfa\xa3\x55\xf8\x8f\xdf\x5a\x89\xc8\x0b\x24\xb2\x9e\x69\x35\x67\x84\xec\x72\xc1\x7a\x6c\xdc\x24\x02\x4a\x2e\x93\x4d\x26\xb0\xbf\xb5\x05\x92\x58\x1b\x0e\x6d\x82\x7f\x21\x95\x9d\x17\xc5\x99\xa2\x23\x4b\x56\xa4\x3d\xc3\xdf\x90\xe6\xdd\x02\xe9\x3c\x40\x87\x39\x62\xd0\xec\x1a\xd7\x6e\xf9\xb6\x08\x09\x29\x64\x51\xce\xbc\x23\x06\x1f\x16\x88\x3d\xc2\xe0\x4e\x06\x43\xc4\x03\xc7\x6a\xd5\xcb\x1e\xea\x89\x8f\xd5\xf7\x26\xc4\x16\xfa\x2a\xbd\x4b\x8c\x3c\xf1\x74\x22\x93\x25\x6a\xf3\xa2\xc1\xf6\x16\xb1\xc0\x9e\xc9\x8f\xef\x1d\xb5\xd2\x19\xc6\x84\x64\xd9\x04\x65\xb1\x75\xfb\x73\x2f\x7b\x51\xad\x2b\xbf\x7d\xf3\xef\x41\x3e\xb4\xa4\xf7\xf3\xbe\xd8\x25\xb9\x1d\x41\xf3\x92\x65\x72\xed\xed\x34\x02\xc8\x63\xf9\x86\xfe\xf4\xd2\xbd\x21\x1c\xff\xeb\xe5\xa9\xf7\x90\xf4\xed\x29\x3e\x54\xd5\x3c\x56\x07\x74\xf3\x02\xd9\xe9\xe2\x47\xa1\x86\xba\x78\xce\x4f\x74\xef\x05\xbc\x37\x23\x83\x07\x44\x87\x8a\xd4\xf1\x5a\xef\x1d\xda\xf7\xf1\x96\x3b\xef\x70\x34\xf8\xb6\x5b\x44\x3d\xf6\x60\x15\xc1\xcc\x66\x26\xc6\x34\xd0\x0c\xf0\x77\x26\x6a\x4f\xb7\x07\x4c\x86\xe9\x61\x9b\xab\x2a\xf3\x67\x2e\xe6\x27\x1b\x62\xfa\xb4\xea\x50\x34\xd3\x80\x78\x4c\xf5\x5a\x7a\xd2\xaf\x15\xa1\xba\xa6\xf8\x33\x68\x4e\xfe\x4f\xf5\xbf\xcf\xd6\xbd\x4c\x4f\x88\xbf\xe7\x2f\xed\x81\x07\x21\x2e\x8c\xf0\x2a\x6b\xe2\xf6\xc7\x55\xa6\x3f\xa9\x13\x6d\x99\x4f\x3a\x18\x0e\x13\x27\xfa\x0c\x69\x28\xe2\xd8\x12\x42\x4e\x2d\x2b\x30\xcc\x39\xed\xf4\xad\xc3\x49\x55\x59\xf0\x39\x82\xd6\x75\x03\x27\x10\x7b\x69\xcb\x50\x3d\x8c\xb4\xe3\x98\x80\xd3\x9f\x42\xed\x5e\x67\xd3\xc3\xd1\xdc\x36\x57\x98\xb3\xe6\x9c\xed\x2f\x08\xad\xa2\xd5\x70\x9f\xc7\x7b\x2e\xb1\xab\x4f\xb8\x85\x4f\xb0\xf1\xe6\xca\xba\xfe\x8e\x3f\x94\x81\x29\x16\x13\x21\x3c\x3e\xe0\x7a\x08\x5e\xbe\x32\x99\xa0\x33\x36\x24\xd9\x58\x6a\x92\xf7\xea\x5c\xf9\xa6\x13\x36\xfa\x05\x7c\x25\x3d\x9f\xe4\xdf\x50\x77\x56\x21\xfd\xb3\x90\xee\xab\xe7\xaa\x74\x47\x96\x56\x24\xe5\xdf\x56\x3b\x95\xfe\x7f\x7e\x0c\x94\x49\x42\xfc\x2c\x66\x8f\x44\x95\xdd\x47\x0a\x24\x47\xe1\x87\xf2\x3f\xce\x62\x7d\x31\xe8\xc8\x7a\x4b\xca\xdc\x67\xeb\xd6\x49\x24\xc2\x5d\xf7\x9e\x92\x92\xac\xb7\x6d\xf1\x14\xc2\xbf\xc0\xd6\x58\xdc\x8a\x48\x82\x0b\xa1\x60\x62\xac\x90\x8c\x5a\x47\xed\x80\x58\x34\xe3\xc5\xa0\xd2\xb0\x98\x15\x7d\xbd\xb5\x2c\x35\x20\xe6\x1d\x2d\x09\xb9\x65\xa4\xdf\xe1\xca\x62\xbc\x2a\x81\xcc\xf2\x96\x0d\x42\x3d\x17\x41\x21\x56\x32\x46\x0c\xaa\x5b\xae\xa6\x9c\xb1\x36\x9e\xbb\x21\x13\xaa\xca\xc9\x30\x68\xe4\x3f\xe8\x8d\x3c\xab\x46\x30\x15\xd7\xca\x4a\xed\xf1\x8a\x3f\x6c\xee\xae\xda\x2f\xca\x86\x97\x16\xd6\x20\xae\xe2\xd6\xc5\xa2\x71\x61\x39\x79\xcd\xc2\xfe\x16\x7d\x10\x33\x99\xdc\x56\x74\x52\x50\x77\xc1\x72\x16\x08\xaa\xd6\xc0\x92\xab\xd6\xcc\xbf\xd3\xa9\x4c\x17\x39\x4f\x6b\x6f\xb1\xc5\xfa\xa3\xa0\xc6\x88\x8e\x82\x51\xee\xf0\xc8\x1a\x65\x8e\x1e\x5b\xfb\xf9\xb9\x57\x01\xdc\x77\x69\xbb\xd5\x8c\x26\x7b\xc6\x47\x0b\x62\x89\x98\xf8\x9c\x6f\x46\x7a\xad\x4f\xc7\x9b\x8d\xe4\xd3\x74\x30\xb4\xf1\xcc\xc1\x09\x09\x7f\xca\x69\xba\x7c\x20\x4d\x9d\x43\xf4\x4e\x57\xf7\xae\xb4\xfe\x84\x4f\x8d\xe3\x45\x04\x8d\x97\x45\xed\xfc\x3d\x56\x94\xd9\xbb\xe1\x8a\x73\xfc\x88\x1f\xd1\x70\x1f\xa1\xfa\x8f\x7c\x98\xb7\x8f\x7b\x63\xb4\xa6\x16\x8d\x47\x92\x1e\xa2\xd8\x68\x45\x33\x59\x16\x5c\x1f\xdf\x54\xcb\x37\x98\xba\x82\x1e\x64\x9b\x96\x79\x79\xf6\xe1\x35\xd5\xf6\x60\xb3\x79\x90\xe7\x1f\x8e\x8d\x38\x6c\xd9\x61\xc8\x3d\x6b\x27\x3d\x07\xf7\xd7\x7b\x54\x51\x90\x7c\xf6\xa0\x0d\xf9\xd1\x04\x7d\x8f\xed\xcb\xe2\x96\x28\x03\xce\xea\x62\x2b\x26\x97\x55\x1d\x4f\x9a\x03\x0f\xab\xb6\x6b\x9b\x5d\xf1\xed\xfc\x5c\x16\x95\x1a\x88\xc5\xc3\x48\x05\xc6\x28\xc7\xfb\x66\xf3\xbf\xbb\xfb\xa6\x37\x12\x22\x1a\x80\xff\x6c\xf6\x60\x03\x82\xe8\x5d\xb8\x08\x92\x5a\x87\xce\x4e\x5a\x1b\x81\x1b\xca\x6a\x5d\xcb\xff\xae\xf2\xda\x58\xdb\xc3\xa9\x7f\xbb\xc4\xb6\x27\xa0\xb1\x4f\x9e\x08\x65\x3b\x5a\xc0\xea\x08\x12\x72\xa2\xe0\x39\xb0\x85\x0b\x61\x73\x22\x90\xf3\xaa\x5a\xb9\xe9\x0b\x38\x87\xae\x10\x96\x67\xf7\x6a\xf7\x97\xb8\xf2\x25\x42\x9b\x02\x04\xb1\x3b\xfb\x99\x24\x12\x15\x8b\x2e\x72\xf2\x89\xd9\xb0\xd9\xc1\x58\x27\x73\xcc\x73\x3d\xbb\x81\x36\xec\x6b\xb6\xa9\x82\xf3\x17\x7d\xc6\x9d\x61\x4f\x8d\x67\x1a\x79\x8a\xb2\x37\xb1\xd3\x46\x80\x52\x73\xf8\xd0\x6c\x88\x2e\xd4\xb5\xdc\x26\x58\x10\x83\x71\x5c\x45\xbc\x8b\x03\xc5\x98\xe3\x04\xec\xa0\xba\xab\x8c\x49\x54\x79\x43\x72\xa0\xa3\x23\x68\xe8\x45\xe4\xa4\x36\x02\x26\xc4\xe7\x61\x39\x5e\xe8\x1e\x3f\x39\x44\x41\x93\x98\x85\x51\x1c\x3b\x58\x77\x24\xde\x79\x62\xed\xda\x05\x10\x19\x0f\x8b\xe6\xe2\x1e\x73\x8c\x6e\xf6\xa2\x85\xf0\xe1\xe4\x6e\x5a\xc3\x82\x1b\x98\x19\x44\xee\xb2\x1b\xef\x38\x15\x87\xf9\x86\x85\x2e\xf5\xfc\x55\xde\x99\x7c\xb4\x71\x03\xa9\x1f\xd2\xf0\xea\xaa\x07\xa8\xeb\x91\xed\x5f\x7a\x77\xf3\x6c\x40\x02\x7e\x2b\x81\x03\xd8\x49\xae\x1f\x47\xd4\x34\xcb\xdb\x37\x8d\xf7\x7a\x0d\x66\x34\x2e\xf1\x03\x85\x75\xbf\x3a\x33\x37\xb8\x6c\x64\x8f\xa2\xce\x4a\xa6\xca\xc4\x6a\x6b\x6c\x62\x39\xfc\x24\x2d\xc8\xd9\xa7\xd3\x07\x19\xa4\x13\xa6\x15\xd1\xc7\x88\xc1\x53\x71\xc6\x86\xde\x8c\x53\x96\xf2\x89\x55\xe4\xc5\x65\x91\xb7\x66\xcd\xf1\x01\xef\xac\xf6\x77\x71\xb5\xc4\x3d\xf8\x12\x7a\x6f\xd5\x65\x16\xc7\x7c\xe7\xe3\x48\x11\x02\x6e\x83\x9d\xb0\xf4\x67\xa5\x84\x1b\x6d\x18\x1c\x4d\x0f\xf0\x2a\xf8\xb0\xff\x73\x16\xdc\xeb\x12\xae\x27\x2c\x0d\x46\x4e\xb2\x91\x07\x11\xec\xf3\xe1\x44\xc6\x98\xe2\xd5\xd5\xc9\x6b\xde\xcc\xe7\xe1\xe1\xf1\xf1\xb3\x17\x9d\x71\x35\x4c\x0e\xcb\x9c\x3a\x3e\x24\xa0\x04\x43\xbd\xea\x18\x59\x7c\x07\x56\x8a\x96\x34\xb7\xc1\x08\x9e\x0e\x63\xb5\x06\x02\xf7\xa2\x70\xb7\x74\x0f\x68\x70\x8b\x75\x9b\x73\x5c\x72\x5c\xd9\x1b\xf8\xaa\x09\x2f\x3f\xf0\x0a\x13\x39\xcd\xc6\xf6\x71\x1d\x23\xad\x52\xac\xf6\xba\xca\x57\xf8\x18\xfe\xd1\xa0\xe5\x8c\x05\x61\x98\x54\x1f\x74\xb6\x43\xc1\x60\x02\xf2\xec\xc6\x82\x70\x2c\x89\x61\x39\x34\x86\xe6\x4c\xf6\x6b\xd9\x39\xde\xd6\xe8\xef\xf6\x37\x2a\x06\x4f\x63\xad\x7a\xdb\x3c\x23\x6e\x63\x6c\xe1\xdd\x14\x9b\xbb\x26\x83\x1b\xfb\x4c\x1a\x8b\xf7\xbd\x95\xb5\xdb\xa8\x85\xb4\xf3\x91\x6b\x03\xb3\xdb\xce\xb0\x6b\x64\x8a\xf8\x2c\x25\xb6\xe7\x44\x76\x2e\x59\x94\x3d\xd6\x1f\x85\x92\x89\x78\x68\x25\xfb\xe0\x3e\xff\x3b\x33\xbe\x2c\x44\x97\xc7\x4c\xb0\x88\x1d\xea\xe3\x9d\x04\x0a\x8e\x59\x9f\xe3\x8f\x55\x26\x06\xa9\x79\xda\xaf\xa8\xce\x5e\xdf\x82\x25\x57\xd2\xb5\xd4\xb8\x70\xaf\x51\x61\x80\x87\x85\x78\x4c\xa8\x03\xcf\x16\xb6\x87\x90\xab\xe4\xfe\xfe\xd4\x2f\xdb\x79\x8a\xb0\x49\x6d\xaf\xa4\xb7\xaa\x96\xda\x93\x4e\x0b\x49\x8d\xd7\xf5\xa4\x5f\x0b\xdb\xe5\x6a\x54\x83\xa4\x16\x8e\x9a\x50\xb0\xb3\xfb\x4c\xc2\xb8\x45\xc1\xf2\xd1\xf8\x1e\x47\x77\x18\x7c\x97\x16\x21\x4c\x1b\x58\x8e\x74\x5d\x64\x73\x92\xfe\x28\x26\x3d\x04\x5c\xd9\x39\x64\x9d\x08\x6f\xcd\x5e\xb9\x88\x85\x22\x35\x30\x4a\x81\x32\x78\x07\x5f\x78\x57\x57\x08\x4d\x12\x01\x6e\xa3\xc1\x87\xf1\x0b\x21\x09\xa8\x7e\x79\x2d\x65\x23\x76\x32\xd5\x86\x7e\xea\x10\x2a\x36\x6f\xef\xde\x7e\xd9\xbd\x9a\x64\x8f\x4d\xce\x22\xce\xee\x95\xd3\xb7\x48\x72\xa7\x16\x36\x1b\x1e\x3a\x51\xdf\x46\x5b\xa3\xc1\x4a\x41\x0e\x27\xa4\x26\xa3\x5d\xd8\xb8\x93\x67\xa7\x2f\x92\x07\x2a\x48\x8e\x7d\x82\xe8\xe6\x37\x1c\x21\x06\x71\x92\x77\x6f\x56\xec\x90\xd2\xb9\xbe\xdc\x69\x6c\x93\xe2\xa0\xcd\xea\x8a\xc6\x01\x13\x32\xda\x46\x76\xaf\xd4\x79\x25\x20\x4f\x11\xdd\x29\x59\x55\x1a\xff\x07\x49\xbf\x03\x72\x28\xbc\x2b\xc4\x9d\xa2\x3b\xb3\x73\xca\xc6\x4b\x12\xd8\x1d\x32\xb5\xbd\xb8\xd3\x61\x63\x6f\x17\x3c\x39\x6b\x6f\xdf\x2a\xc1\xf7\x6b\x9a\x78\x9d\x41\x50\x14\x8c\x40\xb8\x2d\x44\x01\x44\xd2\xe2\x1f\x23\x30\x72\xb6\x73\xd3\x3f\xc8\xff\x11\x88\xad\x44\x97\x9a\x6a\x94\xa9\x11\x88\x79\x95\x5f\x4f\xbf\xa6\x3f\x23\x12\xbf\x3e\x96\xa1\x62\x7f\x2b\x21\xec\xc4\x0c\x85\x63\x69\x80\x3c\x27\xe2\x2a\x21\xce\x94\x58\xf0\x70\xf1\x42\x8c\x59\x38\x72\x64\x08\xf1\x20\x56\xa0\xce\xbb\x77\x41\xe6\xe7\xf8\x74\x1a\x80\x0e\x2b\x80\xdf\x4a\x21\x71\x7f\x59\x21\x58\x4d\x08\xed\x39\x19\xf6\x89\x35\xfe\xea\x92\xae\xab\x4d\xbd\x6d\x57\x44\xd8\x97\xee\x40\x28\xdd\xbb\x85\xb0\x2b\xc0\x06\xfe\x56\xbc\xfc\xa9\x47\xde\x31\x66\x92\x1d\x36\xe8\xcc\x45\x25\xa3\xd3\x28\xf1\xad\x44\xbd\x82\xdc\x69\x9c\xaf\x4b\x3d\x9d\x47\xfb\xc3\x16\xd3\xbb\xff\x82\x0a\x22\x53\xe9\x01\x98\xbf\x18\x14\x48\xa7\xee\x4f\xfd\x5d\x4d\xa1\xe5\x76\x66\xc0\x70\x22\x06\x25\x18\xf8\xfe\xa6\x0b\xe7\x52\x8d\x2e\x73\xd1\xa1\x62\xb1\x7b\x15\x6a\xb2\xe6\x33\x61\x42\xe0\x1f\xe2\xb1\x6e\x37\xc9\x7c\x76\xc1\x62\xd8\x2a\x1e\x62\xb8\x8f\x24\x2f\xd6\xf2\x79\x27\x9c\x07\x59\x5a\xe2\x33\x37\xd9\x47\xdf\x9d\x3e\x3b\x3e\xd0\x2e\xfc\xfc\xe0\xea\xea\xea\x01\xca\x3e\x68\xeb\xb5\x2d\x91\x98\xfb\x3e\x7d\x61\x37\x5f\xb6\x4d\x33\xf9\xe2\x13\xfa\xf1\x31\x2d\x49\xdb\xc0\xd8\x17\xef\x53\x81\x7e\x64\x1d\x6b\x34\x0f\xe2\xfc\x91\xe8\xef\xd9\xd5\xbf\x27\x6b\xd2\x35\xc3\x6f\x11\xa4\x21\xd9\xe2\x7d\x19\xb3\x29\xa6\x12\xec\xcb\x86\x83\xd6\x36\x9e\x51\x67\x17\xb5\x85\xc1\x05\x3c\xe1\xb6\x29\x51\xb8\xb5\x59\xac\x3a\xd7\xff\xef\xf5\xc7\x00\xa2\xa0\x76\xb8\x1b\x47\xf4\xa3\xd7\x05\x81\x90\x6b\xb6\x87\x72\xc1\x16\xf2\x70\x19\xa1\x8b\xe4\xb1\x1e\xd2\x78\x8e\x61\x0c\x78\xd3\xae\x1b\x79\x08\xa0\xe1\x85\x57\xdc\x80\x68\x71\x01\xa0\x48\x42\xb4\x24\x5e\x56\x5f\x0d\x6a\x64\x7b\xc1\xaa\x5c\x5f\x73\xac\xf1\xc2\x5b\x09\xb6\x81\xe2\xf4\xdc\xa5\xcd\x81\x9a\x06\x75\x70\xf4\xc7\x4e\x40\x9f\x1e\x21\xea\x49\x1e\x4e\x07\x5d\x4e\xec\x06\xd0\xab\x43\x1c\xfe\xa7\x4f\x6c\x93\x6d\x20\x51\xe2\x2b\xbb\x82\x0f\x93\xd4\x36\x52\x22\x56\x34\xee\xc9\x15\x84\x7d\xcd\xb7\x3a\x07\xb0\x81\x6d\xcc\xd2\x2b\xe2\x46\x51\x31\x3d\xa1\x3f\xe3\x48\x0a\x8c\x13\x5f\xec\x4d\x15\x89\xb7\xf1\x92\xe6\xd8\xa8\x08\x87\x0a\xe6\x35\xc8\x08\x46\xd6\xc9\xb2\x2e\xd2\x35\x8b\x8d\x3f\x47\xae\xb2\x66\x0e\x5c\xe3\x74\x12\xfb\x02\x0e\x33\x8f\x54\xb2\xeb\x49\x38\x43\x5f\xa9\x71\x31\x4f\x59\x96\x97\x98\x9e\x06\x47\x84\x7d\xf2\x92\x16\x48\x7a\xd0\x13\x9c\x5c\xb3\x3f\x7e\xc1\xd8\xa1\xcb\x37\xae\x8a\x86\xfd\x6d\x8b\x2d\xcd\x4c\x77\x7f\x04\xac\x51\x7f\x49\xa0\x4b\x9f\x5e\xb0\xae\x27\xdc\xc9\xf2\x16\x8e\xad\x16\xf0\x09\x2e\x65\x09\x76\xec\xf8\xe4\xc8\x0b\x8d\xe9\x75\x3c\xc0\xd8\xfe\x18\x3e\x02\x6a\x54\xdf\xaa\xe3\x51\xa4\xeb\xe0\xc7\x6d\x7a\xeb\x5b\x5c\xc7\xd8\x3d\x6e\xc8\x40\xfa\x2f\xcb\xf4\x79\x03\x9d\xb4\xf0\x82\xda\x63\x04\x37\x59\xbb\x04\x7b\xdb\x75\x75\x2d\xce\xdb\x47\x37\x97\x2c\x56\x27\xb1\x68\xe2\x51\x76\xc0\xd3\xc3\x3c\x27\xde\x8c\x4f\x78\xd4\xc6\x0a\xa5\x6a\x16\xd7\xf9\x8f\xea\x61\x08\x15\xb2\xf8\xed\x9a\x12\x07\x74\x2e\x49\x10\xc9\xe9\x6b\xa0\xde\x1f\xe9\xe6\xc0\x6f\x38\xc0\xa4\x5e\xce\x8f\x42\x13\xfb\xbd\x9c\xe3\x92\x9d\xab\x73\x54\xf2\x9d\x5c\x9d\x13\x14\xf5\x3d\x98\xbb\x91\xbe\x8b\x13\xf3\xd8\x78\xfb\x62\xf1\x28\xd6\x47\xe0\x87\xc2\x71\x1e\x0f\xec\x1d\xbc\x99\x7b\x47\xf1\x77\x92\x8f\xc7\x3a\xe2\xf1\x11\x21\xf6\xed\x7a\xee\xbc\x38\x3b\x9b\xcc\xeb\xea\xca\xc1\x47\x18\x2f\x93\xb0\x5f\xac\xbe\x5b\x51\xdc\xd8\x0b\x09\xc7\xdb\x2a\x28\x6e\xe7\x89\x2a\x2e\xd9\x92\xd8\x69\xa2\x5c\xfa\x4d\x83\x55\xb3\x26\xf3\x2d\x69\xfa\x38\xc2\xa9\xf8\x07\x44\xa1\x7e\x39\x6a\x0f\xc7\x39\x2c\xac\x45\x44\xfd\x89\x96\x76\xe7\xd5\xd5\x0c\xbf\xd8\xe5\xd9\x05\xd3\x6c\x37\xa8\x02\xf9\x88\xaa\xbe\xf2\x9d\xe4\x02\x32\x31\x7e\x97\xbb\x9f\xfb\x48\x2f\x1a\x31\xa6\x73\x7a\x83\x48\x16\x81\x6d\x0d\x1e\x2e\x40\xf5\x17\xbc\xa1\x76\x70\x91\xe7\x1c\xc1\x79\x6d\x00\xc9\x34\x01\xc4\xe3\x93\x78\xc4\xd7\x47\xc7\xfa\xc5\xc6\xe5\x12\xf3\xc9\x78\xe1\x4e\xdd\xb4\x82\x05\xfb\x64\xc4\x92\xdd\x67\x89\xbb\x01\xff\xf6\x9a\x01\x81\xe9\x0c\xe0\x27\x79\x6d\xce\x70\x1f\xba\x2e\x3b\xd7\x33\xc9\xd9\xd6\xd6\x17\x66\x6d\x6d\x71\x83\xd2\xfc\x4e\x9e\x3e\xfb\xe9\x21\x09\x6b\x3c\x45\xf4\x8f\x66\xab\x4b\xe7\x7b\xaf\xb5\x58\x2f\xf9\x34\x83\x83\x50\x84\xdc\x0e\x49\x9d\x69\xbb\xf8\x71\x49\xc8\xd5\x55\xb5\xbd\xfd\x45\x9f\xea\x92\xce\xc7\x0d\x33\xdd\x49\x78\xe8\xa3\x40\x71\xd1\x18\x48\x2c\xf0\x5e\xcb\xcb\x9e\x7f\xa4\x07\x60\x41\x54\x82\xbb\x15\xbd\x92\xfe\xc2\x99\xd5\x5b\x7c\xac\x38\xd0\xa7\x1a\xf4\x90\x6d\x5d\x45\xe7\x0f\x0d\xc9\xc7\x9e\x1c\xec\xe8\xe2\xdd\xba\x97\xed\x64\x30\x4f\xc1\x18\x4b\xc6\x92\x5d\x46\xdc\xd4\x83\x7a\x91\x15\xdc\x6d\xb6\xc9\x95\x93\x32\xb5\xc5\x9b\xd5\x53\x53\xaf\xf2\xea\xaa\x14\x8b\x31\x5f\xf8\xaa\xc6\xb5\xcc\x73\x7d\xf2\x35\x99\x4e\x7e\xd4\xe6\x84\xb6\x54\xc4\x0a\x5e\x71\x68\x19\x39\x5b\x0c\x9b\x8e\x0d\xbb\xbf\xbf\xd1\x77\x0b\x38\x10\x4d\xde\x7a\xf7\x98\xb6\x2b\x06\x21\x9c\x1f\xcb\x10\x55\x88\x44\x59\xb2\xfa\x0e\x66\x9f\x9c\xbc\x8f\x2c\x4d\x29\x2b\xa6\x88\xb6\xd6\x01\x1d\x7d\xda\x8a\x8a\xa5\x02\x96\x2e\x08\xf1\xff\x66\x29\xca\x13\x37\x33\x05\x7e\x7c\xd6\x75\xaf\x67\xe0\x36\x61\xec\x95\xa7\xb8\x87\x1c\x1f\xed\x3c\xcc\x77\xe3\x6b\x8c\x06\xca\xef\x8b\xc8\x9a\xe9\xc2\x50\x6d\xfc\xea\x69\x53\xda\x0f\x8b\x4f\xce\x88\xc3\xda\x3c\x79\xce\x74\xd3\xd2\x50\x83\x4f\xfc\x40\xba\xab\x9b\x26\xa6\x5f\x8e\x05\x93\x45\x81\x48\xdf\x7f\xef\x87\xaa\x5e\xfe\x18\xc5\xc7\xd5\xa9\xdb\x17\x1b\x37\x86\x8c\xfc\x83\x93\xcb\xaa\xa1\x87\x30\x3b\xef\xc0\x47\xf8\x60\xaf\x93\xf0\x24\xf8\x3a\x21\xf2\x65\x70\x6f\x4a\x2a\x56\xd7\x23\x35\x95\xd6\xd0\xef\x7c\x34\x84\xbd\x0f\xdf\x69\x7b\x37\x75\x7e\x7e\xe7\x12\x8f\x57\xba\x6a\x63\x71\x1b\xf9\xfd\x8d\x29\x16\x72\x8e\x64\x62\x94\x98\xbe\x2e\x04\xf1\x45\xb8\xb8\x2b\x7e\x47\x02\x7a\x48\x37\x65\x0f\xaf\x39\x14\x88\x85\xcf\x4a\x82\x21\xf6\xde\x2f\xe9\xfc\xb4\x50\xed\xf0\xad\x0f\x7e\xc4\x47\xb0\xd7\xb3\x67\xe8\x62\xfc\x8e\x05\x01\xe7\xdc\x7d\x25\xfc\x1c\x20\x24\x66\x37\xc7\xe1\x9d\x2c\x51\x82\xe8\x7b\x0f\xb4\xaf\x14\x70\x32\x0b\x9d\x81\xae\x06\x16\xf0\x21\xbc\x31\x5a\xf1\x35\x86\xae\x98\xb4\x55\x5c\xc6\x14\xce\x05\x29\xe4\xb1\x3c\x60\x1d\x3f\xae\x48\x8b\xa6\xf0\x21\x6b\xf9\x3d\x40\x6a\x52\x43\x6f\x7f\xb5\xc7\x57\xf6\x59\x7c\xd9\xf5\xb7\x79\xcb\x0e\xab\x78\x9b\xbf\xec\xdf\x7e\xdf\x3e\x1e\x84\xf0\x20\x6b\x6f\x7c\x38\xc2\x58\x03\x37\x8c\x4b\x18\x72\xef\x0a\x50\xf8\x37\xdf\x83\xa7\xf0\x41\x46\xeb\xad\xe8\xf8\xfe\x7e\xff\x79\xac\x98\x0c\x2f\xd8\x89\x84\xff\x2d\xf7\xeb\xf1\xc5\xe6\xc8\x51\xb3\x17\xfd\x2e\x99\x56\x7d\xd9\x4e\x8b\x44\x52\xbf\x30\x84\x44\xd4\xdc\x7f\x53\xdd\x63\x29\xfd\xe3\x66\x2f\xee\xc4\x20\x50\xee\xb0\xc4\x5b\xe2\x50\x84\x28\x14\x83\xaa\xfe\xa6\x58\x14\x7b\xee\x8d\xde\x1a\x94\xa2\xdf\x6b\x70\x22\x11\x29\x7a\x94\x11\x85\xa8\x18\x2b\xd3\xed\xc1\x69\x5c\x60\x0d\xdd\xdc\x8b\xbe\x81\x6b\xd7\xfd\xb1\x2a\xc6\xae\x59\xf6\xdd\xca\xf8\x48\xa2\xb1\x0e\xc4\xa3\x4b\xaf\x5b\x62\x96\x1c\x4b\xd1\xfa\xc4\x6c\xdc\x5f\xde\xbf\xdf\x7f\x4f\x99\xbd\xec\xe0\x0b\x1f\x21\xd5\xf5\x33\x3c\x57\xdc\x1a\x31\x20\xe0\xcb\x56\x71\xd3\x0c\x80\x72\xfd\x0a\x29\xe9\x52\x36\xa4\x5e\xce\xb0\x0e\x69\x2c\xaa\x63\x24\x60\x87\xcf\xd2\xdb\xb1\xaf\x71\x01\x56\x74\xc9\x44\x03\x0b\x6b\xd6\x5e\x03\xd9\x74\x39\x72\x04\xf4\xfe\xcd\x5d\x3a\x3f\x0c\x3b\x15\xb5\x78\x94\xac\x9b\x25\xcf\xc0\x29\x30\x64\xc3\xf3\xb9\xd1\x43\x8d\xcc\xde\x5a\xd9\x50\xda\xb0\x9f\xb6\xba\xc9\xf1\xed\x5c\xdb\x43\x33\x89\xe2\x9f\x0f\x9a\xc1\x5b\x4a\xd1\x7e\xcc\x4f\x26\x71\x08\x65\xec\xc8\x13\x38\x46\x74\x64\xc0\x0f\x6f\x49\x46\xaf\xef\x92\x08\xf9\x47\xa3\x2c\x91\x2c\xe2\x82\x7e\x32\x84\x07\x1a\x01\xec\xed\x72\x7e\xc7\x54\xd1\x56\x43\x96\xac\x82\x53\x36\x16\x6f\xef\x26\x32\x36\x5f\xf1\x1b\xa8\x13\x11\xda\x77\xe6\x79\xf2\xfa\xf0\xa0\x3b\x31\xec\x6f\xe9\x4f\xc4\x34\xca\x11\x57\xee\xb7\xf5\x56\xf4\xb5\xd2\x05\x7d\x0e\x5b\xba\x7b\x98\x9a\x14\x0d\xfa\x1b\x03\x77\x72\x07\xf5\x62\x95\x76\x5a\x9c\xf9\xa1\x12\x65\x33\xf6\x2e\x78\x3d\x3f\xc8\x9b\xf6\x24\x66\x80\x7c\x5f\x1a\xd6\x3e\x2c\xa2\x06\xf7\xd1\x11\xa6\xbd\xd3\xfd\x63\x2f\x67\x94\x89\xf7\xbd\x00\xed\xd9\xe1\x25\x53\x4c\x67\x06\x02\x4d\xb7\xfa\xf6\x04\xb8\x7a\x47\x9e\x43\x13\x36\xbc\xbf\xf6\x65\xf7\xbd\x6a\x19\xab\xc3\xa5\x97\x5e\x1a\x0d\xf2\xd8\x5c\x39\x80\x64\xf7\x65\x83\xee\x68\xd1\x93\x0e\x04\xdc\x07\x76\x82\x84\x1a\xe2\x47\xab\x64\xea\x67\x39\x97\x47\x27\x94\xe1\x74\xdc\x78\x95\xf4\xa0\x1d\xa9\x32\x04\x3a\x52\xc0\x68\x23\x19\xc2\xc6\xb3\x27\x7b\xc7\x5b\xf7\x8b\xac\x87\x04\x7e\xc3\xf4\x06\x2f\x0a\xbc\x6e\xc2\x04\x21\x9a\xf4\xed\x5f\x31\x33\x6a\x07\x96\x8d\x4e\xd4\x64\xac\x4f\x5e\xe8\x88\xba\x95\x88\x45\x61\x4f\x9b\x24\x3c\xa5\x4f\x42\xb7\x7f\x8a\x05\xe0\x68\x57\x5f\x77\xec\xa9\x23\x94\x30\xf9\x9f\x67\xd1\x91\x83\xc7\x36\xce\x8f\xc2\x44\xdc\xc5\x83\xde\xb9\x4f\xc9\x1b\xe9\xef\xd4\x2b\x1e\x45\x83\x1e\x8d\xf1\x9f\x3b\x59\xcd\x3b\xf7\x2a\x5d\x20\xbf\xa1\x5b\x07\xdd\xae\x45\x1d\xec\xf3\x93\xae\x4c\xeb\x46\xf1\x18\x77\x39\x39\xed\x3d\x1e\x03\x1e\x2c\x9a\x4e\xa5\x3a\xb6\x70\x52\xf3\x48\xdf\x08\xdb\xd1\x68\x64\x0e\xdd\xab\xbb\x5a\x4b\x3a\xb9\xb2\x3a\xba\xd4\xe8\x1d\x91\xa5\x91\x86\x40\xdd\xc8\x5d\xee\x66\xf7\x7a\xf7\xe7\xa2\x34\x91\x35\x4c\xf4\xd4\x40\xf4\x36\x44\xac\x6f\x6a\x2a\xd1\x01\x30\xba\x7f\x7c\xff\xbd\xf0\xa4\xe7\xf4\x48\x9f\xf0\x5c\x43\xb5\xc5\x4f\x43\x77\x96\x39\x05\x1f\x63\x83\x58\x3e\x8c\x50\x7f\xd7\xa3\x01\x2d\x9d\x01\xca\xa6\xf0\xe7\x9e\xfe\x03\x0b\x1a\x6b\x6d\x89\x70\x69\xdd\x3b\xab\x1c\xe0\x92\x0d\xd3\xa6\xa7\x3c\x9e\x8d\x89\x83\xcc\x43\x20\xaa\x4a\xb4\xc1\x2a\xa7\x56\xa2\xc1\x20\x84\x46\xed\xf0\x5c\xd9\xd2\x4e\x7f\x8f\x9f\x1a\x4a\x93\x13\x48\x54\x00\xa6\xab\x86\xa4\xa7\x17\xf8\xfb\x79\x76\x9f\x65\x90\x80\x83\x89\x57\xf2\x2e\xa0\xa0\x14\x75\xaf\x89\xf3\x83\x9d\xa2\x9b\x3e\xf2\xd6\x0c\x49\xf9\x6b\x9a\xb8\x0d\xeb\x92\xdb\xb8\xe3\x6d\xd7\x47\xd1\x24\xb7\xce\x8d\xb6\x3b\xc3\xa5\xf8\x94\x03\x33\xe6\xe1\x6d\x5d\x7d\xf8\x07\x0f\x11\xe6\x78\x88\x30\xb2\x1b\x26\x8a\xe8\x92\xd3\xad\x27\xce\xd9\xfa\xf7\x1a\x5c\x77\x1f\x14\xe7\x27\x7c\x25\xce\xe0\x48\x3a\xc2\x29\xe2\x64\xe3\xdf\x72\xc0\xab\x84\x21\x56\x8e\x4d\x60\x82\xb9\x47\xd2\x91\x10\xc1\x31\x49\x0d\xc1\x5b\xe2\xd4\xe0\xd1\x9d\x76\xa9\x1f\x43\x34\xc9\xb3\xab\x91\xde\xba\x24\xa4\x57\x9c\xe3\xf5\xd4\x71\xda\xba\x5a\x16\x65\xf7\x80\x7a\x97\x31\x3c\x9c\x44\x4d\x20\x5e\x12\x2d\x81\x4d\x9a\x6c\x9b\x62\xf7\x17\xdb\x43\x8c\x18\x2b\xb4\x78\x8e\xa6\xed\xc1\x7b\xc6\x91\xf4\x07\x0a\xc1\xd6\x8d\x17\x80\x7d\x0d\x9b\x00\x60\x37\x18\xa1\x53\xd1\x59\x04\x5a\x8d\xd5\x4c\x63\xd0\xf2\xce\x2f\x5f\xce\x48\xc0\xfe\x71\xb0\xba\x25\x69\xdd\x20\x1c\x6a\x02\x00\x97\x9b\x72\xa6\xa1\x53\x2b\x89\x4b\x46\x64\xfa\xa6\x96\x60\x37\x3e\x58\x2a\xa8\xf0\x19\x5e\xba\xa3\x4d\x7d\xf7\xab\xe5\x30\xb5\x77\x55\x12\x36\xe9\x97\x88\x02\x7d\x67\x45\xfb\xf7\xef\x14\x3f\x2a\x02\x10\xf3\xec\x3d\x9c\xe8\xbc\x90\xc4\x51\x63\x11\xa1\x87\xaf\xf0\xa3\x80\xb5\xef\x52\x49\xdc\xe3\x22\x54\xc2\xd1\x6b\x9b\x72\xa8\x7b\xf1\x9d\x2c\xc6\xfa\xc8\xfa\x4f\xc4\xf5\x29\x68\xd1\xc4\xbd\x4b\x23\x40\x99\xfa\x9c\x9a\x18\xed\x60\x52\x43\xdc\xb5\xd1\x2a\xde\xb5\x7b\x78\xc8\x7c\xb9\xd0\xb7\x93\x5f\xf2\x09\x20\xa9\x8d\xd9\x97\x33\xf2\x4a\x1c\x34\xd3\x74\x5c\xfc\x88\x0a\x65\xcb\xc5\xc7\xfb\xea\xe9\x6e\x17\xd3\xc2\x86\x2f\x3f\x46\x64\xba\xc4\x9c\x41\x9e\xb7\x35\x49\x2f\x6b\xeb\xae\xcb\xc5\x8c\x1f\xdb\x76\xe7\x21\xac\x79\x90\x18\x3e\x9c\x50\xf2\x27\x12\xff\xa8\xb8\xb1\x7c\xe7\xeb\x3e\x94\x9b\xb3\xec\xa3\x39\x51\xae\xbf\xa4\x23\xf9\xa3\xb4\x0f\x60\xfb\xd1\xbd\x01\x29\x0a\x10\xa3\x02\xa9\x71\x1f\xdf\xdd\x74\x8f\x90\xc7\x98\xf2\xd0\x48\x23\xea\x6d\x8f\x88\xa3\x06\x22\x1b\x8c\xde\x00\x87\x94\x12\xac\x7b\xd4\xf8\xef\xa3\xe4\x75\xa4\x83\x8c\x15\x3b\x76\xe5\x6f\x32\x4d\xfa\xfe\xb9\x91\x8b\xcd\x91\x17\xdb\xf7\x0d\x3e\xee\xdb\x1d\xd4\x97\x74\x6b\x48\x84\x31\x1e\xe4\xd5\x86\x68\xf7\xe4\xe8\x7e\xd4\x10\x2c\xdc\xa7\xa7\xfc\x65\xba\xfd\x87\x1f\x41\x4e\x79\x4c\x5b\xe3\x82\x79\xb6\xac\xea\xaa\xa5\x63\x14\x6e\x04\x45\x73\x8e\xd1\x7c\x5b\xd5\x2d\x35\x53\x9a\xd1\x32\x74\x4a\x22\x61\x6f\xd6\x72\x64\x2c\xff\x92\x46\xd0\xbc\xe3\x6c\xdb\xe0\xe5\xd8\x44\x6c\x60\x99\xc3\x97\x84\x42\x7a\xc1\xb7\x19\x1c\x4f\x8f\x5f\xc0\x60\xcf\x95\xbf\x14\xf5\x9e\xf2\x5a\xb2\x9a\x37\x34\x27\x54\xf0\xc8\xc2\x33\x66\x1c\x76\x5b\x71\xc8\xca\xd9\x9a\xf0\xdd\x6e\x67\x40\x49\xb8\xd6\x66\x4f\x23\x89\xb2\xa7\x3a\x0a\x74\x3e\xe5\xbf\xbd\x5e\x6a\x05\x87\xd2\x90\xeb\xba\xfa\xb6\x0a\x10\x10\xa3\x5f\xd8\x34\x58\x51\x97\xd5\xde\xb2\x1e\xc9\xe7\xd6\x6c\x7b\x28\x16\x4c\xad\x20\x46\xd9\x70\xd3\xe1\xe3\xea\x86\x0a\xb8\xe0\x5e\x74\xf9\xd2\x23\x68\x8b\x0b\x16\x39\x5e\x70\xb1\xd1\x9c\xbe\x6b\x41\xb6\x57\x89\x88\xe9\x5d\x0b\xea\x25\x1f\x2e\xb8\x04\x43\xef\x52\xb6\x9a\x5f\xd8\x05\xed\x58\x8f\x53\x38\x97\x21\x63\x85\xc8\x85\x5d\x81\x79\x55\x35\x38\x5b\x6d\x21\x9b\xb2\x91\x22\x70\xeb\x3b\x0a\xbf\x08\x9c\x16\xca\x40\x17\x24\xc6\xd2\xfa\x23\x39\x73\xdd\x93\x15\xa4\xf8\x5e\x0c\x4b\xb9\x31\x12\x46\x58\x50\x6a\xbc\x6e\x17\x08\x89\xe7\x7a\x3d\xc0\xba\x7b\x7a\x8a\xc0\xa2\x00\x59\x35\xb7\x6f\xea\x74\xf9\x0d\xca\x0f\xda\x7e\x5b\x05\x0b\xb3\x38\xb7\x6f\xe9\xc1\x43\xc0\xbc\x7b\x0d\x63\x7d\xb8\xb3\x0a\x79\xd3\x07\x77\x34\xf3\x76\xb1\xb2\x0d\x1c\xf5\xce\x67\x6c\x12\x31\x82\x4c\x81\x0e\x73\x42\xf4\xe0\x0c\x14\xaf\xb0\x2f\xa0\x32\xed\x3a\xc1\x30\x6d\xa2\x1b\x62\xc3\x6c\x0f\xd3\xab\x8b\x24\x8f\x6f\x1f\x66\x9a\x9b\xd0\x45\x05\x37\xfb\x99\x1e\x5b\x74\xcd\x43\xc2\x1b\x19\x19\x9d\xa7\x41\x18\xe1\x4c\xe3\xa8\xb2\x75\xba\x7c\x11\xde\x49\x36\xf3\xc5\xf5\x02\x6b\x08\xaf\xd1\x63\xef\x47\xf3\xa6\x59\xd5\x45\x03\x97\xe1\xae\x00\x1f\xce\xa8\x00\x33\xee\x27\x60\xd3\x6a\xc4\xb1\xed\xcc\xf8\xbe\x7d\x38\x64\xa5\xbe\x88\x70\x50\x90\x2f\x35\x50\xdc\xc0\xa6\xc6\x8e\xf0\xfb\x50\x68\x8b\xd0\x02\xef\x5a\xca\x77\x4e\x0a\x9d\xd8\xae\x43\x77\x14\xd2\x9e\xb9\x29\x41\x79\xfe\xa6\xc7\x69\xf1\x7d\xd1\x47\x02\xf8\xa4\xdd\x1d\xb0\xe5\x25\x52\x79\x28\x60\xce\x27\xdd\xf8\x20\xce\xd6\x39\xfe\xb6\x67\x70\xcf\x2c\xaf\xc1\x09\x1c\xa4\xfd\x97\x7a\x23\x29\x49\x5e\x38\xcd\xa3\xc7\xf9\xbb\xcc\x2e\xf4\x91\x57\xbd\x84\x3c\x91\xec\xd2\xb3\xbc\xe4\xa8\xf1\x6c\xe8\x49\x28\xa2\x4f\xc0\xeb\x6b\xe0\xfc\xb2\xd1\x35\xed\xc7\x65\x9e\xc9\x8b\xe0\xea\xe3\x77\xcc\x4f\x1e\x69\x1c\xf8\x17\x55\x06\x43\xe9\x78\xa4\xb1\xcd\x9d\x8e\xfa\x1d\xfc\xe8\x27\xbe\x8a\x38\x10\x92\x0e\x93\x4f\x11\x62\x78\x76\x98\xa8\x23\xb2\x53\x4e\xf5\x80\x1c\xf6\x97\x68\x7e\x7e\xfb\xe6\x92\xcd\xd4\x93\x1a\xf8\x64\xa8\x2f\xa1\xa4\xb5\x3c\xe1\x33\xe3\x31\x1b\x7b\x4b\x81\xfe\xa3\xf0\x4f\x70\x91\x81\x50\xc2\x1c\x29\x15\x37\xa3\x35\x1e\xee\x29\xb3\xb6\xd4\x00\x25\xa1\xff\x7b\xde\xa1\x93\x68\xf2\xfa\x8c\xdf\xdd\xf6\xb4\x1d\x1e\x02\xd5\x88\x59\x49\x42\x2c\x85\x9b\x75\xc4\xf1\x98\x23\xd0\xc3\xcf\x78\x48\x25\x00\x64\x42\xb9\xfd\x53\xb1\xf1\x8f\xf7\x0c\x5d\x92\xe3\xd7\x19\xbc\xd2\x2e\xe0\x0f\xb7\xf0\xf0\x83\x60\x39\xb0\x5f\x51\x00\xef\x34\x59\x9f\x88\xcf\x49\xe7\xa4\x32\x8e\x9d\x70\x35\xbe\x8a\xb0\x13\x46\xb8\xff\x7e\x37\x41\xc4\xe0\x05\xd4\x10\x91\xff\x3f\xfa\xe5\xd3\xb8\x3f\xfe\x49\xd8\xfd\xdd\xf9\xbf\xf5\x2a\x6c\x84\xbc\xd8\xe4\xf3\x50\x97\xe2\xdb\xed\x3d\xf1\x88\xe5\x84\x3d\xfc\x62\x66\xf7\x2c\xb1\x18\xda\xc3\xef\xb8\x28\x2f\xb1\xe3\xc4\x00\xc9\x4d\xfa\xb6\x3b\x9c\xe8\x2f\x4b\x1e\xc5\xa6\x3b\xaa\x8e\x64\x0e\x96\x76\xe1\x79\x7c\xe2\xd8\xd3\x03\x29\xbb\xe7\x25\x85\x1e\x8b\x95\xa4\xe1\x45\xb0\xa4\x73\xf8\x69\xda\x0a\x5e\x06\x25\x9a\xcf\x81\xba\xc8\x75\x2f\xa2\x62\x57\x89\xd5\x68\x1e\x6c\x24\xb6\xb1\xe8\x53\x95\x21\x25\x63\xeb\xb1\xa4\xa7\x9c\x97\x9d\x20\xcf\x17\x42\xa4\x1a\x18\x7b\xf3\x73\x4c\xca\xf8\x34\xa7\x87\x71\x49\x65\x43\xf9\x97\x62\x22\x2f\x29\xf2\xf4\x63\xde\x3d\x13\x69\x7c\xce\x88\x89\x96\x49\x3a\xcb\x95\xf5\x3a\x29\xe1\x48\x23\xa0\x31\xe6\x2a\x6c\x55\x80\xfa\xb6\xf1\x92\x7a\x5e\xb1\xcf\x9d\x6b\x6b\x97\xeb\x1e\x26\x19\x5b\x04\x06\x3d\xa1\x3f\x21\x85\xd5\x4a\x79\x39\xfd\x9a\xfe\x67\x8f\x8e\x93\xe4\xf0\xb6\x21\x67\x76\xaf\x1a\x8e\x80\x78\xb6\xfe\x0f\xa6\x46\x50\xd2\xcf\xc5\x8d\xdd\xe7\xc2\xf6\x08\x6e\x88\xf2\x56\xd2\x76\x0d\x3e\x8f\x48\xf9\x6c\x75\x0d\x35\x3d\x02\x12\x99\xec\xbc\x58\x9e\xb3\x5d\x01\x31\xb2\xa5\x18\x6c\xeb\xfb\x9d\x8a\x52\xc8\x0b\x1c\x4a\x0d\x3b\x64\x76\xca\xe1\x9d\xb3\xaf\x39\xac\x5a\x04\x41\xa3\xe1\xfc\x6e\x34\xa6\x69\xea\x62\xde\xe2\xda\x1d\xf8\x64\x4d\xb8\x58\x48\x85\x9c\x21\x28\x61\x8f\xa1\x4f\xe5\xff\x5d\xa0\xfc\x66\x9e\x3e\xc9\x37\x00\x93\x58\x6e\xd2\x25\x89\xe4\x16\x2a\xe0\x1b\x21\xcd\x67\xa1\xa3\x07\xb0\xc1\x46\x33\x73\x66\xfa\xf4\x34\x3b\xcc\xb3\xd3\x43\x9f\xe1\x36\xcd\x56\x1e\x3a\x38\x7d\xfa\xe2\x24\xbb\x83\x8a\x00\xc9\xe4\xc0\x80\xf5\x08\x4d\x00\x82\xe9\x82\x21\xb6\x31\x71\xa8\xad\x98\x7a\x60\x70\x24\x5c\x7c\xd3\xac\xf1\xf7\x1e\xb0\xfd\x5b\x7c\xc9\x51\x2f\x68\x83\x2c\xf0\x12\x06\x7c\x25\xa4\xc4\x24\x7b\xda\xae\x9b\x02\x01\x79\x34\x25\x73\xe7\x55\xbb\xce\xe1\xba\xef\xf0\x4c\xa6\x0f\x8f\xcb\x51\xab\xb2\x0f\x0f\x3e\x9c\xa4\x2b\x70\xd6\xac\x5d\xf4\x56\xeb\x8b\x27\xa7\xb0\x6b\x3d\xab\x83\xed\x8f\x8e\x75\x55\x6c\x01\xaa\xef\xb4\x4f\x4f\xe9\x9b\x81\x5f\xf2\x77\x58\x26\xb8\x09\x85\x57\xf1\x42\x29\xe6\xe4\xf0\x69\x76\x2a\x09\xc9\xf2\xd3\xc6\x39\xd0\x96\x97\xf3\xa2\x6e\x20\x1d\x4e\x84\x85\x5b\x41\xbe\xd9\xfd\xb9\xe0\x9b\x7c\xb1\xa1\x52\x96\x52\x6c\x11\x4e\x86\x86\x5d\x84\x4a\x43\xc8\xa3\xbe\x6c\x26\x77\xdc\x01\xed\x9d\x24\xdb\x7f\xdd\x3d\x91\x5b\x4c\xc4\xee\x52\x59\x32\xad\xfe\x6d\x3e\x1c\x93\x94\xb5\x75\xfb\x60\x5a\xcd\xbb\xda\xa6\xc5\x75\x4d\xbf\x97\x57\x91\xee\x1e\x70\x12\xed\x52\x38\x4c\x5a\x20\x05\x9c\x09\x9b\x95\x58\xba\x69\xc5\xd1\x83\x53\x83\x02\xdd\x53\x1a\x3d\xfc\x50\xca\xb2\xd2\x90\x89\x44\x97\xba\xdb\x1f\x10\xc9\xee\xf3\x1c\x89\x2a\x4f\x04\x87\xb4\xde\xb7\xcb\x0f\x72\x21\xe8\xf5\x7a\x7a\x3d\xe8\xf5\x7a\xab\xde\x35\xa1\x02\x9b\xed\x76\x16\xbd\xb8\x5c\xda\xe4\xb2\x23\x02\xba\x0c\x21\x07\xca\xd8\x41\x21\x82\x80\x6b\x66\x07\xc1\xfe\x99\x9a\xdb\xdf\x7e\x34\xb9\x3a\x3b\x43\x58\x39\x84\x20\xb5\xd3\xaf\xed\x0d\x5f\x50\xd8\x60\x39\xde\x01\xe6\x85\xe3\x05\x04\xb5\x23\xeb\xe8\x96\xb0\x6d\x0a\x0f\x2e\xd7\xb7\xbf\x40\xf5\xf8\x5a\xde\x8b\xbe\xfd\x2b\x38\x31\x3b\xcc\xea\xa2\xd6\x5a\xea\x56\xdf\xc5\x3f\x0a\xc7\xd0\x10\x42\x21\x01\xda\x88\xb3\x83\x02\x0d\x7a\xc3\xf2\x51\x5d\x55\x8d\xbc\x7d\x92\x08\x47\x72\x9a\x50\xcd\x83\xda\xa7\xfa\x69\xc1\x65\xe5\x62\x26\x6f\x20\x84\xd2\x72\x61\x4a\xeb\x5e\x74\xe7\x03\xf5\x70\x28\x4e\x83\xee\x97\xbd\xfd\x5f\xc9\x48\x55\xc7\x7c\x77\x27\x38\xd6\x99\x7a\xea\xae\xf0\x3b\x38\xf3\x85\xd1\x61\x6e\x95\xc8\x19\x5d\xcf\x39\x05\xe1\x22\xba\x47\xb9\xfb\xef\xfd\x77\x53\x35\xf7\x84\xf7\x28\x5c\xc4\xba\x7d\xc4\x47\xc0\xb1\xac\xd4\xa5\x8e\x48\x26\x5d\x66\x5f\xe8\xea\x72\xb8\xbb\x4f\x86\x93\x4a\x59\xce\xad\x65\x5e\x4f\x4f\x9f\x8c\x10\x58\x07\x10\x1e\xbc\x6a\xd8\xa9\x17\x41\x8f\x97\xb5\x3d\xfd\xfb\x27\xd1\xcd\x72\xf1\x71\x5c\x92\xe7\xe2\xa1\xdd\xfd\x7a\xfb\x4b\x3f\x39\x54\x06\x5f\xb2\x7b\xee\x8f\xeb\xa2\xb1\x9f\xdd\xe3\xf0\x0b\xf7\x9a\x22\x9f\xdf\xfb\x38\x59\xb5\x05\x7b\xda\x30\xf6\x4e\xcc\xca\xac\xb7\x15\xbf\xb9\xb4\x07\x7b\x41\x63\x90\xbc\xb7\x0b\x7b\x0a\x71\x69\x8f\xde\x5b\xee\x2c\x5d\xd3\x25\x11\x16\x96\xdf\x94\xba\x65\xa5\x11\x52\x3a\x4d\x4b\x7f\x63\xf2\xfd\x86\x2b\x58\x1d\xe9\x29\x66\x24\xd5\x34\x55\x19\x7c\xc2\x42\xb9\xd7\x9e\xb0\x71\xaf\x1c\x8d\x42\x82\x3d\xfb\xe0\xcf\xec\x41\x73\xe7\xbb\x4c\x5a\xd0\x3f\xa7\xce\xda\x45\x7d\xb7\xfc\xdb\xde\xab\xe5\xfa\xbc\x39\xde\xee\xa4\xaa\x58\xbd\x0a\xe5\x84\xd6\xc0\x68\x53\x75\xcb\x09\x23\x2a\xb1\x94\xe8\xe1\x88\xdd\x1a\x8b\x1b\xc4\xfe\xb5\x8b\xd5\xf4\x91\x24\x67\x4f\xe9\x2c\xbf\x69\x37\xfc\xa8\xea\x29\xc2\x3b\x3e\x44\xf6\xb0\x97\x5b\x3a\xd4\x98\xe9\x37\xfc\x99\x3d\x94\xcf\x8e\x7d\x8a\x7f\x33\xbc\xac\x66\x6b\xbe\xb1\x14\x1f\x68\xa8\xb3\xab\x9c\x36\xea\xf5\xb2\x4d\x38\x10\xed\x9e\x9d\x50\x1d\x15\x93\x37\xbf\xa1\xd4\xf6\x66\x6d\x5e\x0b\x3a\x52\x8d\x8f\x9e\xa0\x24\xf7\x62\xf7\x66\xb5\xf6\x41\x01\xf6\xd0\xdc\x1f\x5b\xdb\x52\x5b\xb6\x5c\x12\xcd\xff\x3d\x3e\xb2\x27\xfc\xd1\xa1\x4b\x9c\x8a\x59\x9d\x47\xec\x1a\xe4\x28\xee\xc4\xb4\xaf\x10\x43\xbd\xb1\x1d\xe5\xf4\xa4\xac\xa3\x1b\xbe\x1a\x67\x41\x0b\x87\xcc\xb9\x69\xf3\x22\x99\xac\x68\x57\x13\x73\x2a\xe6\x45\x7b\xba\xaa\x05\x06\x47\x2f\xd7\x87\xf0\x13\x4c\x6b\xb5\x0a\xd3\xfa\x87\x6f\x9e\x3c\xeb\x03\xee\x61\x3c\x9a\xbb\x9f\x67\x29\xc0\x3e\xee\x24\xb7\xf5\x3a\x30\xb9\x98\xdf\x33\x24\x81\x1c\x3b\x4c\x2a\x80\x2c\x06\x6f\x18\x14\x68\xde\xec\xe5\xc0\xba\x7a\x72\xa2\x47\x58\xd5\xc6\x25\x34\xb1\x70\x3d\xe0\xf0\xe4\x5b\x02\xdd\x3d\xf8\x36\xec\x4c\x99\x82\xe2\xf5\x59\x7e\x99\x99\x1f\xb8\xaa\x09\xa9\x4d\x5d\x44\x7c\x50\xcc\xde\x82\xf8\xe2\x8a\x8b\xb4\xff\x51\xf7\x3d\x30\xad\xf7\xcb\x22\xe7\xe7\xf3\x9c\xba\x61\xe5\xd0\x1d\xf0\x79\x3a\x41\xb6\x87\x1c\xf2\xd9\x36\x73\x65\x61\xa1\xdf\xd9\x4f\x53\x0b\x5a\x2e\x85\x0a\xfb\xa7\xb4\x5c\x68\xa2\xc7\x25\x26\x5d\xf6\x58\xa6\x52\x66\xba\xfb\x9f\x34\x79\xe1\xc2\x93\xe3\x09\x49\xe9\x50\x66\xb9\x08\xb8\x15\x35\xfd\xb7\x0f\x59\x51\x6e\xc6\x90\xeb\x47\xbe\x2e\xce\xe4\xbe\x30\x0c\xbd\xb7\xc8\xcf\x9b\x66\xeb\xe2\x30\x15\xfc\xd6\x5b\x7f\x44\x51\x35\xd2\x31\x5c\x29\x27\x72\x44\xaf\xda\x6d\xc1\x97\x39\x1e\x8d\x87\xc2\x68\xf7\xe1\xcd\x43\xeb\x26\x37\x7d\x52\xf1\xdb\x96\xca\x9f\x87\xbc\x76\x59\x2b\x43\xef\xf6\xa3\x6f\x35\x29\x11\x88\xb4\xf5\xa1\x20\xb4\xa7\x1f\x28\xc3\x52\xc0\xb0\x84\x4a\x41\xc1\x40\x6e\xb2\xa8\x11\x44\x9b\xfe\x78\x13\xa2\xce\x78\x6e\xa0\xf7\xf1\xe9\x8e\x28\x3e\x6f\xe9\x20\x41\xbd\x3d\xe3\x2b\x8e\x50\x82\x9f\xf0\xf0\x17\x3b\x6e\x70\x15\xe2\xe1\xba\x47\x40\xba\xab\x9c\x7d\xb0\xf6\x67\xbb\x68\xc3\x5d\x33\x0b\xac\x24\xfc\xc2\x18\x96\xe3\x7a\x77\x55\x56\x6a\x1d\x52\xcf\x2b\x3c\x54\xc6\xef\xb6\x73\x62\x34\xa4\x7e\xec\x60\x3f\x22\x42\x79\x03\x47\x07\x0e\xb0\x71\x47\x07\x22\xa9\x5a\x80\x82\x25\xa2\x37\xef\x93\x4f\x22\x35\xa8\x19\xc6\x8d\x13\x7d\x89\x58\x2a\x8c\xd3\x66\x9f\x26\x76\x9d\x5d\x66\xaf\xf7\x3e\xb9\xda\x4e\x9f\x6d\x27\x31\x18\x1f\xe0\xc2\xfb\xd4\x23\xbd\xd8\x6f\x0c\xe5\xd4\x04\x74\x01\x29\xe7\xc7\xf4\x25\x4d\x6f\x2b\x6a\x52\xeb\x8c\xc4\x99\xf8\xbe\xf3\x6e\xc4\x65\x88\x31\x2a\xbf\xf3\x38\xda\x5f\x12\x05\xfe\xd3\x2e\xda\x3b\x62\xc0\xef\x7f\x70\x26\xbc\x02\x42\x95\x52\x57\x16\x66\x3c\x1c\x4d\x2b\x8e\xdf\x66\x13\x77\xed\x13\x57\x2f\x3e\xb9\x1f\xbf\xfd\x91\x06\xe2\xe8\x05\xdd\x4f\xdb\x15\x24\xc8\x53\x2a\x3f\x75\xb2\xde\x85\x09\xe6\x89\x09\x1a\x3e\x11\xe5\xac\x34\x87\x60\xfd\xdd\x6b\x23\x5a\x55\xfa\x54\x80\xbf\xb2\x4a\x82\xb7\xc7\xf5\xe9\x0b\x00\x23\xd5\x25\xaf\xbc\xfc\xe4\xaf\x48\x98\xb9\x7b\x0b\xc9\xce\x84\xb2\x78\xc7\x4e\x8e\x44\x3a\xff\x49\xa3\xd1\xff\xf6\x2e\x86\xf0\x88\x3c\x6d\x72\xbd\x71\xd1\xbb\x2e\x51\x4a\x08\x64\xd0\x0b\x88\x3b\x4a\x61\x1c\x74\xa7\x31\xcb\x69\x34\x68\xf8\xca\xbf\xfb\xa4\x27\x04\x32\x9c\x74\x7d\x96\xe2\x77\xe1\x31\x01\xb1\x64\xeb\x85\x7f\x68\xc5\xbe\x93\x3d\x6d\x36\xd9\xef\x42\xf8\x81\xdd\xab\x0d\xaf\x24\x84\x93\xa7\x75\x64\x96\xd5\x14\x2f\xcb\xaf\xcc\xee\xd7\xf7\xdf\xe3\xf7\x3e\xe1\xf6\x54\x56\x12\x93\x00\x96\x1d\xb7\x7f\x65\xc3\xe6\xab\xa9\x3a\x40\x7d\xea\xa6\x9f\xc2\x6a\xb5\x2d\xf3\x82\xe3\xbb\x7f\xba\xa1\x84\x4d\x51\xe2\xd6\x5e\x12\xce\x01\x81\x97\x67\x5b\xf9\xce\xe9\x9b\x7d\xc3\xe5\xf3\x8a\x3e\x4b\xdc\x4d\xef\x7e\xd5\x14\x62\x6a\xa8\x63\xf7\x9a\xf6\x64\xad\xe3\x9a\x12\xa8\x3d\x01\x70\x96\x36\x91\x9c\x5f\x60\x91\x96\x89\xd5\x49\x68\xf9\x92\x78\x20\xa7\x4b\x07\x34\xfd\xbc\x22\x49\x90\xa1\xd1\x0b\x23\x89\x78\xf9\x1f\x69\xb9\x5c\x44\x21\xe9\x0a\xb6\xe7\x48\xd3\xee\x68\x32\x75\xa7\x39\x97\x5a\xd1\x25\xe2\xda\x9c\x8c\x50\xea\x9c\x4a\xfd\x92\x94\xda\x5c\xcd\x7c\xdf\x7c\xc7\x24\xd5\xf7\xcc\x77\x8b\x91\x4e\x72\xd1\x16\x41\xa7\x7f\xec\xde\xf9\xf5\x0f\x16\x3e\xa2\x2c\x7d\x33\x98\x5f\x11\xc0\x4b\x25\x78\xe8\x54\xde\x23\x47\x00\x82\x09\x3b\x8b\x73\x20\xf8\xa2\xdc\xb6\xaa\x48\xe8\x9e\x28\x10\x28\xad\xc3\x47\x32\xe5\x87\xc9\xf4\x99\x46\x9a\xf2\xd9\x9c\x76\xec\xdf\xb3\x31\x1c\xb1\x28\x0e\x46\xf7\xd1\x3f\xff\x33\x17\xa1\xe3\xd3\xbf\xfc\x4b\xf6\xf4\xeb\x8f\x59\xfe\x17\x71\x0c\x8f\xa8\xb8\x62\x03\xd3\x65\xe2\x5d\x08\x25\x29\x61\xeb\xa8\x60\x8b\x82\x1b\xf3\xf3\xef\x93\xb2\x1c\x6e\x80\x7d\x05\xf8\xa6\xd3\xbf\x5b\x1a\xa2\x7a\xfc\x9f\x00\x00\x00\xff\xff\xe9\x81\x43\x84\x5d\xb8\x00\x00") func confLocaleLocale_lvLvIniBytes() ([]byte, error) { return bindataRead( @@ -4479,12 +4479,12 @@ func confLocaleLocale_lvLvIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_lv-LV.ini", size: 45556, mode: os.FileMode(493), modTime: time.Unix(1441457544, 0)} + info := bindataFileInfo{name: "conf/locale/locale_lv-LV.ini", size: 47197, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_nlNlIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\xbd\xeb\x92\xdb\xc6\x92\x27\xfe\x5d\x11\x7a\x07\x48\x13\x1a\x49\x11\xdd\xd4\xd8\xfe\xff\x63\x27\x1c\xa2\xbc\xba\xf8\x48\x1a\xeb\xd2\xab\x96\xec\xd8\xe3\x70\xf0\x80\x44\x91\x44\x13\x04\x60\x5c\x48\xb7\x26\xe6\x89\xe6\x15\xf6\xdb\x79\xb1\xcd\x5f\x66\xd6\x0d\x00\x5b\x3a\x9e\xdd\xd8\x0f\x52\x13\x55\x59\xf7\xac\xac\xbc\x55\x56\x5a\xd7\x8b\xcc\xb4\xab\xf9\x8f\xa6\x4c\x8c\x29\x0f\x55\x9f\xe5\x1b\x93\x7c\x36\xc5\x7a\x63\xb6\x55\xdb\x99\xe4\x65\xde\x25\xad\x69\x0e\xf9\xca\x24\x1b\x82\xdd\x36\xe6\x40\xd0\x79\x99\xbc\xac\x6e\xdf\xba\x7d\x6b\x5b\xed\xcd\xfc\x55\x9f\xb7\xb7\x6f\x65\x69\xbb\x5d\x56\x69\x93\xcd\x5f\xd8\x5f\xb7\x6f\x99\x3f\xea\xa2\x6a\xcc\xfc\x67\xd3\xec\x4c\x59\x9a\x92\x8a\x98\xa2\x9e\xbf\xa2\xff\x6e\xdf\x6a\xf3\x4d\xb9\xc8\xcb\xf9\xeb\xb2\xa8\x36\x1b\x64\xb6\xd5\x2a\x4f\x8b\x85\xcd\xb8\xe4\xcf\xa4\x34\xdd\x91\x2a\xa0\x66\x09\xee\xfb\x84\x3e\x4c\x66\x92\xb6\x4b\xeb\xe4\x71\xbb\x4f\x8b\xe2\x49\xba\x5a\x55\x7d\xd9\x25\xbb\xaa\xae\x4d\x61\xca\xc7\x8f\x24\x5d\xdb\xa8\xfa\x6e\xfe\x74\xbd\x37\x45\xc6\x8d\x20\xa9\xaf\xe7\x4f\xd3\xd2\x26\x35\x66\x93\xd3\x78\x9b\xf9\x07\xfe\xd1\x18\xd3\xdc\xbe\x75\x34\xcb\x36\xef\xcc\xfc\x17\xf9\x7b\xfb\xd6\xc1\x34\x6d\x5e\x95\x18\x4d\x9b\xd3\x77\x9d\x6e\xcc\xfc\x22\xdd\xe4\x65\x7a\xfb\x56\x67\xf6\x75\x91\x12\xf8\xe5\x55\xba\x2c\xaa\x8a\x6a\x2d\xd2\x72\xd3\x03\xe6\x63\x9a\x16\xb7\x6f\xad\x1a\x43\xf9\x8b\xd2\x1c\xe7\x6f\xd3\x74\x87\x39\x4f\xca\xdc\xf4\x47\x33\x9b\xcd\x6e\xdf\xea\x69\xa2\x17\x75\x53\xad\xf3\xc2\x2c\xd2\x32\x5b\xec\x31\x73\x2f\xcd\xb2\xe9\xf3\x1d\xb5\xc8\x59\xa6\x48\xa8\xd4\x9e\xfb\x87\x71\x98\x8c\xe6\x69\x91\xb6\x18\xcc\xc6\x60\x38\x49\x5a\xb4\x58\x1a\x54\x57\xa6\xfb\xb0\x86\x32\x4d\xf7\xb4\x26\xfb\x34\x2f\xe6\x3f\x9e\xe3\x0f\xc6\xd0\xb6\xc7\x8a\x56\xed\x97\x74\xb5\xed\xba\x63\x55\x61\xdd\x1a\xb3\xe8\xae\x6b\x5e\xb7\x7c\x9d\xaf\xd2\x0e\xc3\x5d\xa5\x75\xb7\xda\xa6\xf3\xe7\x4f\x2f\x3e\x3e\x7f\xf5\x14\x8d\x34\xa6\xae\x68\x6e\xaa\xe6\x9a\x66\x4e\x7f\x02\xb4\x6a\x36\x69\x99\x7f\xa6\x72\x34\x5d\xef\xf9\xa3\x95\x4a\xf6\x79\xd3\x54\xcd\xfc\xb2\xce\xcd\xc6\x50\xfb\x34\x1b\x0b\xd4\x32\x7f\xc7\x33\x91\x34\x61\x35\xc8\xdc\xe7\x9b\x06\xd3\xaa\xf9\xf2\x69\x33\xd7\x55\xb3\xb3\x39\x07\xfa\x9d\xb8\x5e\x5c\x0b\x00\x75\xc4\xe6\x57\x51\x37\xd2\x92\x16\x86\xb3\x9f\x99\x2d\x4d\x67\x98\x4d\xf3\x97\x66\x7b\x9a\xd7\x3a\x2d\x4d\x31\x7f\x8a\xdf\xf8\x89\xfe\x2a\xa6\x2d\x5a\xd3\x75\x79\xb9\xa1\x89\x97\x84\xbc\x24\xfc\x29\x0a\x4a\x62\x14\xb3\xb9\xaf\xa3\xe4\xeb\xaa\x77\x4b\x3c\xff\x74\x4c\x74\x49\x35\xc3\x15\xa2\x9c\xb8\x3a\x1e\x4b\xbb\x58\x13\xde\xcb\x68\x5a\xfc\xa4\xc5\xeb\x8b\x82\x66\xef\xf7\xde\xb4\x5d\x3b\xbf\xa0\xaf\xf3\x34\x2d\x0f\x4d\xca\xa5\xf2\xb6\xa5\x8c\xf9\x4f\x47\xca\xe5\x41\x61\x09\xcb\x15\x46\x54\x96\x7d\xc1\x38\x74\xfb\xd6\xaf\xad\x49\x9b\xd5\xf6\x37\x74\x1a\x3f\xe6\x7f\xad\x0c\xed\x55\x46\xc9\x60\x79\xdf\xd7\x6d\x91\x6e\x08\xc3\xd3\xae\x15\xe4\xf2\x88\xa5\x4d\xcd\x2f\x9a\x6a\x49\xd5\x12\x8e\xad\xaa\xcc\xcc\x9f\xd3\x7f\xdc\x02\x06\x43\xbb\x91\x9a\xd0\x5f\x3c\x2d\xf4\x57\xd6\xa2\xcb\x3b\x9a\x8e\x20\x09\x3b\xbb\x26\x34\x3f\x10\x32\x26\xb4\xd3\xa9\xa7\x20\x46\x3b\x5e\xa6\x9a\x72\x9b\x4e\x36\xed\xef\x3d\xed\xcb\x45\xb6\x14\x3a\xf6\x7e\x4f\x54\x69\xd3\x26\x1d\x68\x95\x74\x8d\x48\x55\x9b\xbc\xbd\xbe\xfc\x1f\x6f\xce\x92\x0b\xa2\x68\x9b\xc6\xd0\xef\xa4\x5a\x27\xf4\x87\xca\x7e\x97\xd0\x9e\x36\xb4\xe3\x93\x07\x36\x81\x0a\x2c\x41\xe9\xf2\xdd\x32\x4d\x1b\x90\x3a\xea\x41\xb5\xa6\x5d\x90\xff\xfd\x3f\x0b\x93\x30\x11\x30\x0f\x69\x76\xa8\x5d\xe9\xfa\x8b\xb4\x4b\x97\x69\x6b\x06\xab\x86\x7c\x6c\x22\x9b\x7d\x8e\x2f\xd0\xcc\xb6\x9b\xbf\xa2\xff\x86\xd3\xa8\xfb\x33\xde\x91\xba\x21\xa9\x2e\xde\xcc\xae\x29\x81\xa5\x64\xd0\x53\x5f\x4b\xf2\xba\x2c\xab\x17\xcf\x88\x48\x10\x55\xa2\xdd\x62\xba\xa4\xef\xd6\xff\xba\xa0\x0e\x99\x86\x28\xeb\x2a\x4f\x76\x69\x93\xee\x88\xd6\x11\xba\xc9\x0c\xf3\xfc\xd0\x78\xda\xb6\x20\x9a\x43\x0b\x77\x79\xf9\xe6\x9c\x7e\xf4\x2d\x3a\xd3\x6d\x89\xc4\x51\x0f\xda\xdf\x0b\x4c\xb6\x36\xf7\x8a\x0a\xd7\x69\x86\x6e\xf0\x12\xd9\xd9\xcb\xb4\x7f\x54\x9d\x69\x9a\x05\xd1\xc4\xee\x7a\xa1\x45\xb9\xae\x21\x20\xd7\xb2\x4f\x37\xa0\x84\x5d\x42\xd8\xb3\x49\x3e\xe7\x57\xe5\x0c\x88\x63\x3b\x2d\xb3\xfc\xb1\x32\x98\x1a\x9a\x5c\x22\x71\xa0\x75\xe5\x70\xc2\x71\xa2\xf1\x2c\x3d\xad\xeb\x42\xa8\x96\x4c\x93\xcd\xb0\xbd\xbf\x60\x34\x4e\xb6\x39\x21\xd4\x55\x44\x19\x00\x8f\x35\xdf\x34\x15\xa1\x51\x41\x3b\x92\x26\xea\x8e\xec\x04\x19\x40\x40\xe7\x08\x53\xd2\x96\xf0\x25\xcb\x1b\xb3\x52\x92\xe5\x00\x6d\x5b\x4f\x8b\x02\x54\x6d\x5f\xe9\x71\xda\x84\xe5\xb1\xce\x72\x9e\x66\xe6\xb3\x09\x2a\x22\x3c\xa7\xf3\xb6\x90\x8d\xdc\xf4\x74\x5e\x01\x55\x3e\xe5\xdd\xa1\x22\x84\x2d\x33\x8f\xe2\x16\x6d\x2c\x90\x6d\xf7\x05\x2a\x74\x40\xc9\xbe\xa2\xe9\xed\x2a\x43\x23\xdd\x24\x5b\xb3\x5c\x52\xb3\x5d\xd5\x61\xed\x36\x71\xaf\xc2\x5e\xe0\xac\x41\x41\xde\x57\xbb\x1e\x27\x78\xe2\xf6\x5f\x56\xd1\x11\x52\xce\x5f\x10\x0f\x90\xbb\x4f\xd7\x3c\x55\x4a\x74\x75\xdd\xd1\xe0\x0e\x45\x65\x32\x1a\x11\x23\xca\xe5\xab\x64\x87\xe3\x31\xf9\xf4\xe1\x4d\x0b\xa4\xdb\x2e\xea\xaa\xe9\x08\xe9\x5e\x9d\xd7\x84\x8e\x9d\x4f\xb3\x75\xbd\xeb\xf7\x7b\x1a\xc2\x21\xe5\xbd\xc8\x40\xd4\x49\x93\xf4\x47\x54\x77\x0e\x06\x85\xb2\x75\xac\xdd\x59\x82\xd5\x25\x00\x45\xa7\x6a\x6f\xdb\x5d\xf7\xe5\xaa\x43\x39\xca\xa2\xd5\xa0\x4d\x9e\xee\xc0\x2d\x10\xb2\xd1\xd1\x57\x4b\x3f\x5e\x7d\xfc\x78\x61\x3b\xe2\x52\x1d\xe2\x20\xbd\x94\xee\x1c\x81\xfa\x5b\xec\x83\xa6\xa2\x33\x69\xbf\x4f\x65\x37\x14\x3d\xb3\x12\xdd\x4c\xf0\xae\x6f\x8a\x00\x1f\x31\x6a\x97\xfe\xa5\xb9\x42\x57\x1e\xe1\xbf\x4b\x9d\x32\x2a\xd3\x62\x4d\x28\x8f\x7f\x62\x12\x84\x40\xf1\xa1\x6e\xd1\xc9\xce\x04\xf6\x50\x55\xe3\x0c\x76\x9b\xe8\x3d\x7f\xd2\xa0\x07\x5b\x87\xcb\x2b\x8c\xb0\x06\x8e\xef\x1b\x9c\x6c\x7b\x9a\x12\x26\x61\x97\x6f\x3f\x5e\x24\x5b\xa6\x63\x9c\xb8\x6e\xaa\x3d\x71\x59\x9f\x81\x9d\x4d\x90\x66\x47\xf9\x23\xd7\x9a\x2a\xc0\x59\xf2\xe1\x2f\xcf\x93\xff\xff\xbb\x6f\xbf\x9d\x25\x18\xff\x2e\x45\xbf\x8f\x18\x25\xf8\x22\x19\x4f\x9a\x35\xb4\x49\x40\x0f\x40\xb2\x31\xd7\x77\xdf\x11\xb2\xdf\x7d\xcc\xd9\xff\xdd\xfc\x91\x12\xcf\x65\x66\xab\x6a\xff\x24\x21\x56\x60\x4f\xeb\x3e\xc3\xd9\x4e\xc7\x6b\x23\x3b\xc6\xf6\x27\x31\x32\xa8\x47\xa3\x7d\xa3\xd0\x93\x54\xd7\xb2\x85\x8b\x55\x55\xae\xf3\x86\x86\x47\xf8\x73\xc0\x31\x24\x39\xcc\x89\x48\x5f\x5b\xa9\x69\x51\x56\x5d\xbe\xbe\xf6\x80\xd2\x2e\xa7\x0a\x06\x00\xe7\x19\x61\x17\x3a\xc1\x3a\xeb\x97\x82\xc5\x34\xf6\x14\x1d\x26\x8c\x95\xec\xf6\x3c\x5e\x00\x3a\x8a\xe8\xa7\x11\x4a\xfd\x7e\xbd\x4e\x0a\x26\xf4\x20\xd7\x58\x2a\x8b\xd3\x31\x20\x21\x71\x4d\x1c\xef\xa5\xe4\x26\xcf\x5f\xbc\xe3\x4d\x40\xb8\x43\xc8\x9b\xf5\xd8\x15\x5c\xc3\x19\x91\x56\xc2\x8d\x25\x8e\xe0\x12\xa8\xa4\x18\x55\x54\x3b\x62\x61\x93\x14\x4c\xe6\x92\xea\xc3\x96\xc9\x88\x62\xd2\x71\xbf\x20\xdc\x3f\x10\x31\xa7\x23\x48\x7f\xd8\x9e\xa3\x89\xa0\x3f\x43\xf8\x41\x9f\x5c\x69\x3f\x03\xcb\xa6\x62\x8a\x43\xf5\x68\xc7\x04\xc4\xd1\xcd\x0c\xc7\x97\x5f\x50\xfa\xf9\xf7\xff\x45\x02\x07\x9d\x28\x84\x2e\x8c\x36\x3c\x0e\xda\x95\x59\xd0\x61\xbf\x76\xc4\x9c\xda\xe6\x21\xf5\x84\x8b\x4a\x6d\x4e\x97\x18\x74\x7b\xa2\x9c\xf4\x15\xc3\x00\xe3\xe8\xe8\xa6\x72\x8e\x2d\x9d\x76\x3b\x9e\x40\xe6\x5f\x88\xd3\x56\x69\x67\x71\xc8\x49\x32\xb0\xf5\x2a\x5f\x62\x30\xe7\x60\xeb\x71\xec\x11\x25\xab\x59\xda\xb8\xcf\x4c\xce\xe7\x9c\x8f\x8e\xe9\x8a\xb4\x9b\x4f\xa5\x27\xc0\x1d\x92\x9d\xa2\x63\xc3\xf6\xcb\x55\xb9\x34\xbb\xfc\x8a\xba\x76\x46\xbf\x3e\x83\x09\xf4\x30\x3a\x20\x2a\x4f\xb5\xe4\xe5\xa3\x70\xc4\xae\x3c\xfa\x33\xb3\xac\xb3\x32\xb3\xc2\x99\x7d\x22\x3a\x01\xf2\xc6\x67\x3c\xf1\x24\x46\x24\x4e\x99\x20\x57\x91\x15\xe2\x68\x68\x3c\x45\x67\x49\x16\x9d\x60\x54\xf6\xf5\x8b\xf9\x37\xc9\xae\xc9\xaf\x36\x5d\x92\xf6\x1d\x9d\x38\x5d\x4e\x28\x16\x57\x44\xa7\xd7\xb6\x0b\xba\xe2\xf9\x4b\xbb\x8b\x68\x80\xe0\xf9\x09\xc9\x5a\x6d\xd4\xc2\x4e\x4a\x4c\x56\x18\x98\xa0\x10\x4a\x18\x7c\xa6\x48\x4c\x86\xcf\x07\x0f\x26\x35\x84\x92\x17\x93\x36\xc7\x10\x2f\x36\x95\x0a\x0b\x3c\xd3\x0d\x1f\xb8\x90\x29\xdb\x6e\x41\xc7\xf3\x62\x0d\x22\x95\xcd\x5f\xf2\xc1\xd5\xea\x44\xd2\x92\xf6\xbb\xee\xfb\xe4\x3e\x41\xdc\x4f\x88\x08\x92\x50\x93\x55\xc9\xbd\x83\x65\xd6\xbe\x03\x35\x5a\xd0\x9e\xa1\xe6\x96\x22\x71\x08\xf7\x9a\x2c\x73\x93\xa1\x02\x9a\x8a\x0a\x7b\x8d\xa6\xa6\x2f\x81\x62\xcc\x10\x2a\x8f\x46\xf3\x5f\x1d\x4b\xde\x4e\x31\x0b\xbc\xa4\xf5\x26\x7c\xb3\x95\xe1\x5c\xbe\x47\xa4\x83\x3b\x85\x25\xab\x96\x7d\x4e\x82\xa8\x64\xcf\x30\xc8\x43\x5a\xe4\x19\x18\x75\x45\x0b\x74\x25\x9b\xe2\x9a\x65\xd7\x72\x4d\xab\xaa\x01\x1f\xf2\x3d\x0f\xc8\x56\x31\xc9\x87\x29\x1b\x06\x4e\x92\xfe\x8c\x0b\x3b\xd6\x08\xd3\x41\x28\x43\x42\xce\x0b\xde\xa9\x63\x66\xca\x55\x40\x89\xdb\x3e\xcf\xf2\x8d\xcf\xa3\xca\xda\xe4\xfc\x09\xfd\x4f\x13\x9c\x1e\x8c\x9c\x0a\x1b\xbb\x38\x3f\x09\x7b\x22\x89\xbd\xa0\x34\x57\x55\x41\x74\x4a\xcb\x78\x20\xd1\x2e\xc1\x74\x70\xc2\xf9\x89\xb9\xd8\x80\x02\x6c\x6c\x0d\x82\x32\x6d\xbf\xa2\xd3\xa1\x9d\xff\x62\x8a\x5d\xb5\xbf\x93\xfc\x92\x5f\x49\x89\x03\x21\x77\xbf\xc9\x30\xc1\x49\x2f\x2b\xca\xfc\x9b\xb0\x18\x1b\xb3\xab\x3e\x63\x73\xd1\xf1\x54\x24\x74\x7c\x7e\xce\xe5\xd8\x01\x37\x88\x2d\xcc\x82\xe2\xaf\xd0\xec\x90\xc0\xd6\x0b\xdb\x5c\x15\xd9\x48\x52\x01\x8d\x35\x03\x2d\x82\x85\x0c\xb7\x48\x7b\xcc\x69\xc6\x17\x4e\x3f\x84\x69\xeb\xcc\x1f\xdd\xfc\x17\x92\x1a\x41\xe9\x08\x4c\x68\x88\x66\xd0\x49\x7a\xcd\x0b\xdd\xce\xdf\x62\x3c\x21\xc7\x8c\x1d\x47\x42\xe2\xb2\xc2\xfc\x1e\x8c\x82\xbd\x34\x99\x81\x26\x67\x00\x4a\xd5\x10\x6b\xaf\xb5\xc4\xf2\x3d\x65\x89\x26\x42\x73\xf5\xe3\xf6\x2d\xa6\x9d\xac\xd6\x7a\xc6\xe4\x90\x57\xdb\xca\xd2\x33\x5a\x32\x16\xd5\xa5\xd9\xd7\x25\x58\xd0\xb8\x4d\x9a\x3a\x55\x7a\xfd\xa6\xf2\x73\x24\x31\x30\x00\x51\x2e\xc8\xdb\x5e\x1f\xb4\x50\x2a\x24\x7a\x21\xd6\x09\x39\x6a\x48\x98\x13\x30\x22\x5b\x53\x83\x5b\xd9\xb7\x1b\x12\xc1\xb0\x9c\x3d\xd1\x66\xa1\xa5\x02\xff\x43\xf2\x16\x4a\xa0\x3e\x29\x7b\x14\xbd\xe3\x74\x6a\xff\x48\x15\x3f\xb1\x1a\x8d\xaa\xb8\x33\x3c\x03\x45\x45\x45\x52\xdd\xfc\x92\x76\xd8\xf5\x59\xc4\x08\xd1\xde\xa1\x4d\xc5\x7a\x42\x9c\x61\xd9\x2c\x79\x67\xcc\x1e\x3b\xa2\x4b\x57\xd8\x07\x4c\xc3\x33\xe3\xc9\xaf\xf2\xf4\x24\xa9\x40\xc3\x36\x3a\xa3\xd1\x4d\x90\x4c\x6d\x6b\x69\x0e\x50\x65\x6c\x98\x50\xa5\x65\xd4\x76\xed\x79\xbc\x51\x37\x30\x7f\x7b\xb3\x5f\xa2\x3a\xe2\x99\xca\x6e\x5b\xf5\x24\x74\xe6\x57\xb7\x6f\x11\xd7\xb8\x21\xa2\x30\x41\xdb\x41\xbe\x36\x86\x05\x1d\x00\x99\x9b\x81\x7e\x70\x6a\x45\x22\x32\x47\x56\xa9\xda\x05\x2c\x2b\xda\xba\x83\x65\x99\xb9\x93\x43\x78\x0a\x66\x1d\x5b\x53\x76\x76\x76\x7f\xe4\x43\xca\x0d\xb7\x35\x76\x64\x34\xac\xae\xef\x1b\x95\xbc\x1f\x2f\x9f\xdc\x6b\x1f\x3f\x5a\x3e\x39\x4b\x9e\x29\x74\xc2\x0d\x1c\x9a\x94\x64\x6a\x22\xd4\x38\xbd\xef\x51\xc3\x0d\x48\xfd\x5e\xf0\xd5\xcf\x5a\x07\xb5\x59\xd1\x55\x95\x1c\xdd\x96\x81\x90\x83\x4a\x7b\x4c\xb5\x89\x1e\xe1\xa8\x13\xac\x47\x57\xca\x2c\xae\xec\x07\x8b\xbf\x8e\xed\xf5\x08\x8c\xc9\xe7\x91\x15\xf9\x3e\xef\x06\xd8\xd3\x2b\x51\x82\x34\x56\x02\xe3\xd2\x84\xa8\x19\x46\xc6\xf8\x68\xc7\xb1\x31\x19\x7a\xc1\xa4\x4c\x10\x95\x9a\xe1\x01\xa0\x3f\xb3\x84\x17\x24\xc9\x70\x14\x10\x11\xed\x3b\xab\x3b\xa2\x5e\xd0\xf0\x36\x4c\xe2\x6d\x65\x10\xf6\xd2\x76\x41\xa2\xa0\x2c\x80\xc9\x04\xc7\x9e\x19\x70\x5b\x38\xc7\x6c\xa7\xe4\x74\xb4\xab\x90\x85\xa3\x4f\x1e\xb8\x99\x7f\x38\x4b\x9e\x92\x28\x46\x2b\x5b\x6d\xe4\x44\x0d\xd1\x54\x6a\xa2\x0d\x70\x00\xeb\x4c\x54\x97\x88\x66\x1f\x68\x7e\xfd\x18\x8f\x79\x41\x43\xa8\x00\xb3\x2b\xf2\x1d\x51\xef\x52\xc5\x40\x3d\xa1\x53\x70\xc5\xc9\xae\xac\xea\x99\xce\xa9\xf6\xfc\x27\x80\xb3\x2e\x43\x16\x38\x9e\x1d\xee\x17\x1a\x64\xf5\x59\xc7\xa7\x36\xcb\x44\x4e\xea\x63\x26\xa1\x65\x32\xd1\x19\x16\x46\xc3\x91\xda\x03\x11\xe7\x06\xa8\x42\xc6\x08\x11\x90\x0b\xe0\x0d\xfa\x82\x2e\x75\xd3\x3d\xf2\xac\x50\xc2\x50\xd2\xb1\x07\xd4\x33\x12\xd9\x8a\xf6\xa1\x76\x8b\x30\xbb\x11\xc5\x5e\x1b\x6e\xb7\x0f\x5c\x24\xaa\xc6\x9f\xa3\xac\x69\xb4\xd8\x74\x8c\xf6\x0c\xb2\xd0\x7d\xaa\xb9\xa8\xa0\x4f\xa4\xb9\x57\x0e\x94\xd5\x05\x38\x52\x67\xc3\xd6\xac\xb4\x7a\xc3\x10\xaa\x5a\x28\x34\x49\x4f\xc0\x5b\x9c\xd7\xbc\x7b\x5c\x15\xb4\x9f\x16\xed\x16\xca\x84\x17\xd0\x21\x95\x9b\x4e\x98\xa4\xb8\x1a\x56\xac\x80\x6d\xc5\x1c\x90\x1c\xd1\x7a\xcd\x9c\x57\x81\xfd\x4a\x62\x59\x0a\xcd\xe9\xb5\x69\xe7\xff\x96\xde\xbe\x55\x56\x73\x22\xaa\x74\x80\x11\x55\x81\x9c\x99\x96\x68\x56\x94\xc4\xbf\x42\x06\x26\xd8\x4f\xc4\xeb\xbc\x9b\x62\x64\x71\x12\x71\x46\xc8\x3c\x49\x16\x4b\xe7\xf3\x68\x83\x5f\x4c\x31\xbc\x1f\x4c\x60\x18\x18\xb2\xb9\x97\x97\xaf\x3e\x8a\x30\x7b\xf9\x2a\x69\x0b\x43\x3b\xb1\xd0\xfa\x5f\x75\x5d\xdd\x7e\x6a\x0a\xd6\xaf\x5c\x9e\xb3\x1a\xe4\x22\xbd\x06\x77\x89\xd4\x77\xc4\x08\x55\xd4\x30\xf6\x0c\xe7\x7d\x34\xe9\x9e\xbb\x8a\x1f\x5a\xc7\x53\x3a\x37\x39\x8d\x7e\x50\xd7\x5b\xaf\xe0\x63\x15\xfd\x8f\x01\x7b\xed\x8f\x18\x31\x53\x88\x80\x64\xd8\xf6\x00\x55\xc3\x48\xdb\x98\x16\xf5\x36\x65\x26\x45\xa1\x78\x79\x80\xe6\x8c\x67\xb4\x51\x8b\x75\x5a\xf6\x7b\x1a\xb7\xd9\x01\x93\x00\xfa\xe0\x7c\xf1\xd0\xad\xda\x44\x4d\x19\xed\xac\x2f\xd7\x76\xe6\xeb\xa2\x7a\x1f\xcc\x1e\x26\x35\xdb\xb2\x06\xf5\xb6\xf9\x67\x13\xd6\xc6\x2a\x4a\xc9\x65\x62\x01\x46\x85\x79\xca\x01\x9c\x43\xb1\x7b\x21\x86\xd1\x46\x49\x3b\x91\x92\xf6\xe9\x1f\x51\x21\x22\x46\x94\x74\x73\x19\xa1\x1c\x52\xc0\x52\x88\x60\x78\x7a\x12\x33\x22\xc1\xb4\xd5\xdc\x00\x4b\xcb\x0d\x90\x92\x28\xdb\xb1\x54\xb0\xf7\x44\x76\x77\x4c\xb6\xd7\x55\xdf\x7d\xef\x6c\x4f\x74\x38\x29\x67\x3f\x7f\x2e\x29\x09\xf1\xbe\x2a\x0f\x55\x90\x99\xe3\x9d\xe8\x19\xfe\xe0\xcc\x46\xd3\xde\xae\x15\x6e\x49\xaa\xcb\x94\xc3\xca\xbc\x29\x6d\xb1\xa4\x94\x45\x07\xd9\x74\xc8\x0b\xd3\xb8\x68\xb6\x72\xa7\x7b\x53\xe3\xc9\x62\x58\x6c\xb8\xf1\xa6\x0a\x12\xb7\x31\x2a\x17\xd8\xd0\x4e\x96\xeb\x68\xa7\x8c\x0a\xba\xed\x33\x55\x42\x56\x91\xa1\x69\x8c\xd9\x7c\x40\xf7\x87\xe0\x39\x11\xba\x0d\x54\x89\xb6\xa1\xa0\x76\xc6\x8d\x44\x21\x8c\x47\x9a\x59\x30\x7d\x6e\x59\xfc\x2a\x8e\x45\x8a\x60\x39\x06\xc2\x1c\x3a\x4c\x02\x02\xfd\x46\x0d\x81\x3c\xc8\x5d\xf9\x14\x9d\xda\x57\xac\x84\x8d\xd4\xda\xaa\xda\xdf\x18\x48\x7d\xd9\x54\x65\x84\x7f\x10\x12\x4f\xd6\x66\xf2\x8d\x29\xc5\x28\x74\x43\x2d\xee\xdc\x9a\xac\x23\x1c\x5e\x50\x8b\x13\x4f\xcd\x1f\x04\x46\xd3\xb2\x61\x43\xbb\x97\x4b\x59\x25\x97\x0a\xa6\xcf\x60\x5a\x6e\x3b\x08\x37\xd2\x67\x9c\x33\x1e\x94\x55\xe3\x50\xec\xd1\xc2\x36\x9d\x9e\xad\xc7\xfc\x0a\x3a\x35\x36\x88\x41\x91\x6a\x4a\xd8\xfa\xa9\xbf\xc9\x03\x3b\xac\x87\xc2\x8d\xb3\x8e\x21\xdd\xcf\x92\x4f\x89\x52\xad\x46\x34\x0e\x60\x57\x06\x05\x88\x15\xf0\xe7\x9f\x3f\x94\xa1\xc0\xdf\x99\x6b\x7b\x2e\x1f\x4d\x20\xca\xe6\xac\x94\xa3\x91\xc8\xb9\xca\x0a\x7c\x3d\x29\xa4\xa7\xb4\x31\xff\xfe\x9f\xd4\xd3\xef\x99\xa2\x91\x00\x0a\x79\x80\xd3\xaf\x5d\xc5\x62\x8f\x48\x9d\xa6\xa0\xec\x9a\xaa\xe0\xe1\x81\xbf\x8a\x6a\x3d\x23\x62\x46\x4b\x46\xe3\x4f\x36\xcc\xb9\x34\x7c\x14\xd3\x28\x21\x1f\x33\x47\x0d\x46\xe0\x2c\xf9\x4c\xd3\x89\x5c\x36\x3a\x42\x74\x86\x6a\x0f\xf4\x9c\x4e\x1d\x2b\xe3\x07\xf6\x70\xa2\xab\xad\xe8\x5f\x20\x94\x13\x79\xee\x08\xf9\xb1\x1c\x62\xce\xfe\xe4\x25\x38\xc1\x02\xcb\x86\xf1\xe4\x65\x34\x78\x62\xee\xf0\x1d\xa0\xa8\x9b\x72\x96\x88\x64\xde\xc3\xa5\xa3\xb1\x81\x2c\x65\x6c\xdf\x9d\xd9\x26\xc1\xcd\xc2\x8e\x1d\xb4\x88\xb6\x68\x5d\x4c\xd6\x62\xc1\xa0\x16\x87\x2c\x54\xf3\xfa\x06\x72\xb0\xb0\xba\xcb\x4e\xed\x16\x79\xb9\x6b\x45\xcf\x5e\x8e\x1b\x57\xba\x34\x18\xe5\x8b\xc8\x78\x16\x8e\x54\x47\x69\x98\x89\x0d\x45\xe4\x7f\x74\x90\xe1\xcc\xb2\x4a\x9f\x0d\x5b\x58\x14\xda\x79\x76\x29\x0c\x89\x74\x74\x58\x60\xdb\x75\xca\x88\x8b\x09\x44\x54\xc4\x6d\xb5\xdf\x03\xdd\xbd\xf2\xd3\xf5\x22\x1a\xac\x98\xb7\xa5\x13\xf1\xd8\x89\xba\xa6\x2c\x04\x2e\x9b\xb4\x5c\x6d\x83\xad\xfa\xa2\x22\xcc\x95\xd4\x68\x93\x32\x43\x86\x0e\x43\xd2\xdf\x82\xfb\x5f\xa8\x9e\x9c\x90\x88\x15\xdc\xcc\xab\x8b\xce\x9b\xe6\xc8\xea\xbf\x61\xcd\x70\x25\x56\x7d\xdb\x55\x7b\x5b\xf0\x97\xfc\xea\x33\x04\x3c\x57\x4c\x6c\x3f\xb1\x7d\xe0\xaa\x22\x1e\xa0\x2a\x03\x87\x90\xaa\x0e\x2c\xf9\xb4\x02\xf3\x58\x63\xc1\xe2\x42\xde\xc1\xc4\x6f\xca\x65\xda\x98\x44\x53\x0c\x54\xe0\xeb\xaa\x28\xaa\x23\x4d\xd0\xfc\x67\x48\x52\x50\x91\xc0\x00\x48\x04\x6f\x7e\xc9\x84\xaf\xb4\x30\xd0\x63\x01\x86\x47\x0e\x4e\x74\xc6\x44\x1f\xec\x75\x73\x20\xf0\x17\x43\x9b\x65\x72\xff\x5e\x7b\x5f\x76\xa0\x02\x09\x2d\xf4\x65\x6b\xb0\x1b\x4d\x29\x12\x0a\xf7\x23\x63\xcb\xf3\xa0\x1e\x02\x6b\x60\x38\xb2\xf5\x31\x51\x80\xad\x93\x97\x43\x19\x69\xeb\x5d\x41\xcb\x61\x3d\x30\x2e\xac\xfb\xc5\xa4\x6a\x57\x69\x4d\x3b\x0f\x88\x49\x6b\xd5\x29\xea\x9a\x64\xac\x6f\xd2\xb9\xd5\xee\xb3\x71\x4f\x8c\x7d\x55\xd9\x06\x46\x6b\x36\xc9\x40\x1b\xf5\x3e\x52\x44\x65\xa6\x30\x1d\xf3\xd3\x82\x6d\x5e\x6c\xee\xf3\x6c\x4e\xff\xd0\xf9\xba\x5f\x52\x95\xce\x73\x44\x16\x8a\xd6\xdf\xf9\x8f\x58\xb7\x21\xd1\xb6\x1f\x87\x02\x5c\x65\x0b\x40\xa9\x48\xa7\xba\xdb\x1d\x6a\x47\x61\x9a\x27\x06\x16\xa5\x20\x58\x12\x78\x33\x81\x85\x26\xb4\x6e\x72\x9a\x17\x3a\x92\x44\x2f\xc9\x32\x2e\x46\x9d\xc3\xcb\x00\x29\x38\x72\x0e\x79\x0a\x6c\x54\xaf\x29\x6f\x8b\xcc\x64\x09\xd6\xf0\x55\xe1\xb3\x95\x90\x84\x68\x29\xf6\xa3\x30\xef\x23\x3f\xab\xa2\x92\xe9\x9b\xbf\xa9\xd4\xf5\xa8\xaf\x33\xa8\xca\xa2\x85\x63\x45\xf4\xd5\x91\x3d\xcb\x86\x10\x4e\x39\xea\x9d\x6c\x30\x0f\x92\x7a\xa8\x0a\x94\xdc\xf0\x10\x70\x98\xea\x66\x73\x1e\x53\x9f\xf4\x07\x68\x00\xef\xd4\x6c\x04\x23\x33\x3d\x66\x02\xa9\x52\xde\xa4\xd9\x2c\xf9\x05\x02\x7d\xcf\x04\x08\x07\xcf\x0f\x6c\xe6\x94\xd9\x17\xa5\x84\x35\xc3\xfb\xd9\x17\x09\xdb\x4f\xe9\xd2\x74\x8d\xd9\xed\x72\x6f\xb2\x27\x42\xe1\x55\x2b\xa2\x45\x22\xac\xee\x49\x6c\xd7\x66\x06\x3e\x3e\x8d\x48\x86\x46\x4e\xd1\x98\x9c\x30\x85\x20\xec\xec\x8c\xa7\x27\x81\xbd\x6e\xaa\x8c\x73\x6a\x10\x78\x55\x6f\x6f\x69\x23\x94\x7c\xb8\x58\x22\x86\xf9\xaa\xaa\x56\x95\x9b\xd2\xdc\x4f\x70\x78\x08\x35\x1f\x0a\xa9\x2b\x67\x3b\xe5\x7a\xa2\x34\x2d\x5e\x64\xc8\x8b\xc4\x6b\x69\x6f\x98\x2e\x2c\x48\x52\xd9\x40\xd6\xb5\xb6\x3f\xb5\x5e\xca\x72\x40\x4f\xb1\x5e\x1a\xb1\xa0\xcd\x20\x3f\x0f\x46\xe4\xcd\x23\x2f\x55\xe7\x34\x98\x94\xc0\x1b\xe8\xcc\xf3\x1c\xce\x73\x23\xd2\x33\x46\x63\x71\x48\x18\x99\x9e\x64\xb5\xa5\xea\x13\xf8\xe8\xb0\x2d\xb4\x2a\xc9\x91\x11\x4a\xdb\x55\x11\x30\x9b\xaf\xd8\x58\x61\x22\x00\x4c\xbe\x03\x60\xbf\xb1\x28\x7b\x82\x1d\x97\x5a\x6e\xe6\xc1\x07\x7d\xf3\x76\x88\xa8\x90\x1f\x5a\xb0\x25\x3e\xc1\x9e\xd8\x41\x07\xaa\x0a\x45\x45\x85\x88\x29\x16\x5f\x50\x9e\x06\xb1\xac\x87\x16\x33\xd6\x74\xa8\xf3\xde\x64\x2e\x0b\xfe\x8d\x57\x6e\x59\x8a\x58\x37\x84\x26\x30\x5a\x85\xa4\x11\xbb\x71\xe0\x33\x21\xeb\xa3\x16\x57\xa1\x75\x6a\x8d\x8e\x6c\x8c\x07\x93\x74\x6a\xc6\xe5\x9a\x9b\x6b\x22\x4a\xdc\x82\x4b\x50\x2d\xea\x6b\xcb\x21\xc3\x31\xd3\x76\xc3\xd2\x7d\x85\x71\xd4\x1f\x96\xc2\x8c\x37\x8d\x64\xc8\xa2\x85\x5d\xa6\x63\xed\x80\x93\xad\x14\xd0\x91\x49\x71\x12\x60\x11\x29\x9b\xa1\x8d\x65\x05\xb3\xce\x7e\xa8\xaf\x54\xc1\x9d\x30\x31\x53\x8d\xdc\x94\xae\x99\x58\x66\x9e\x02\x56\x82\x2d\xab\x3f\x94\x11\x61\xf1\x99\xfe\x5a\x7d\x73\x67\x62\xd6\x7c\xcf\x92\x47\xa8\xa2\x23\xda\xbc\x32\xed\x50\x0d\xed\xfb\x6d\x71\x0b\x87\x7e\x38\x0b\xc7\xb4\x95\x03\x1e\x43\xcd\x18\x57\x14\x29\xdc\xa9\xad\x6e\x9d\x81\x26\xaa\x95\x9a\x59\x30\xb1\x12\x87\x9f\x2c\x14\x64\x64\x01\x99\xce\x85\x52\x15\xf9\x15\x18\xc3\x54\x0c\xe0\x51\x5d\x4c\x9f\xbd\x4e\x94\xe5\x9b\x54\x74\x7c\x96\x3a\x27\xc1\xa1\x8e\xe2\x51\xd1\x5e\xb6\xd5\x96\x29\x1b\xeb\x50\x5b\xe7\x32\xf6\x98\x90\xac\x2a\x37\x4f\x5e\xb0\xa5\x04\x96\x73\xb3\xed\x0b\x66\xdf\x7f\x78\xfc\x48\x33\x93\xe7\x5b\xb3\xda\x25\x55\x0f\xf5\x32\x5c\xbd\x72\xe2\xf6\x19\x79\x31\xc9\x8f\xd3\x64\xdb\x98\xf5\xfc\xee\xbd\xf6\xee\x93\x84\x1d\xe9\x78\x0d\x30\x96\x70\x18\x8f\x1f\xa5\x4f\xc0\xed\xc6\xf0\xce\xbf\x8e\x40\x19\xa2\x66\xcf\xce\xbd\x5b\x1d\x60\x28\xcf\x63\xa0\xe7\x1b\xcc\x25\x65\x07\x9a\x85\x0b\x70\x30\x66\xe7\x26\x41\x30\xcc\x6e\xba\x99\x2f\xc2\x87\x2b\x17\x01\x86\xd6\xc3\x62\x7b\x15\x1c\x8a\x75\x66\xac\xe2\x41\x78\xee\xb4\xa0\x5a\x6c\x0d\x6e\x81\x85\xc3\x40\x32\x1b\x17\x09\xf1\x5f\x97\xb0\xfe\x38\x54\x70\x28\xa6\x5e\xc2\xe1\x88\x98\x9f\xe4\x8e\xa2\x59\x01\x0c\xd0\xee\x8e\xdb\xc5\x98\x8a\x60\x0f\xdb\xb1\x70\x2e\x3b\x99\x04\x95\x06\x72\xc5\x18\x52\x30\x10\xd8\x1e\x8a\x44\xce\x48\x16\xd6\x03\xda\xc5\x68\x05\xc8\x94\xc6\xe6\xbc\xfb\x60\xc8\x0d\x0c\x88\xa1\x20\x33\x62\x4a\x26\xba\x60\x27\x24\x6c\x2c\x22\xe8\xae\x42\xcc\x00\xa6\x91\x46\xf8\xd1\xcd\x0a\x8b\x1b\xac\x9e\xe0\x55\x7c\x03\x89\xaa\xf3\xe4\x15\xb9\x74\x06\x3b\xa1\xe3\xa5\xc8\xc0\x2b\xa8\x51\x02\xc1\x03\x93\xc3\xab\xd3\xe1\x3c\x95\x7d\xc9\x66\xc2\x29\xf4\x51\xf2\xc3\xc2\x1b\xd5\xf2\xdf\x48\x7c\x67\x34\xec\x2a\xda\x5b\xa3\x2a\x38\x15\x23\x1a\x17\x89\x3c\xe7\x2c\x41\x11\x7e\x5f\xc9\x89\xdb\xf1\xd4\x15\x95\x00\x3c\xe7\xaf\x96\xd6\xd3\x54\x24\x63\x96\x15\x7b\x5a\xdc\x0e\x86\x55\x84\x0c\xe0\x59\x40\x3e\xa0\x0b\xea\x7a\xd8\xeb\x87\x1c\xe2\x88\x8c\xf4\xe5\x32\x2f\x69\xda\xab\xd6\xde\x85\xb0\x69\x7e\x61\xd1\x2a\xb0\x47\x11\x04\x02\x42\xd9\xe9\xb8\x42\x5a\x9a\x32\xfc\x82\x27\x6c\x7e\x41\xa7\x01\x09\x59\x05\x5c\x84\x2c\xaa\xb5\x9c\xd5\xfa\x33\x57\x3c\x76\xd5\xa8\x2d\xe5\x74\x5f\x7d\xe4\x59\x77\x84\x48\x17\xa7\x95\xc9\xfa\x28\xd5\xc8\x80\x58\x23\xb1\x31\x02\x8a\x65\xa6\x73\x23\x44\x6d\x9a\x37\x56\xff\x3c\xbd\x78\xdd\xaa\xca\x88\x3d\x82\x98\x38\xb9\x76\xa5\xe2\xbf\x56\x38\x74\x99\x2a\x96\xfd\x99\xea\xb3\x8a\x9d\x45\x02\xec\x21\xc7\x84\x5b\xa1\x64\x7a\x1b\xcd\x2c\x3a\x09\x79\xb9\xde\x2f\xab\x02\xae\x47\x56\x88\x71\x23\x97\x51\x8f\x86\x1b\xe7\xcb\x5a\x18\x47\x75\xa2\xf9\xc4\x82\x04\x04\x27\x98\x8a\x3b\xc9\x5f\x87\x4a\x2a\xc7\x43\xd5\x27\xd7\x07\xfc\x16\xad\xae\x68\xd5\xc0\x84\x61\xd8\x8c\x36\x9f\x73\xa8\xf3\xc1\x94\x81\xeb\xe3\x4a\xd9\xa9\x0c\x27\xc8\x91\x1a\xf4\x14\x4e\x46\xf5\x73\x48\xbb\x42\xec\xf0\xa4\x6e\x0a\x4d\x74\xb6\x0f\x5f\x2c\x2d\x8b\xf6\xf3\x14\xe9\x9b\x1a\x5e\xb0\x8a\xd3\x94\xf0\x0b\xa4\x2f\x1c\x9b\xdb\x1d\xa7\xf1\x7c\xb0\x2e\x01\x19\xc4\x56\x25\x51\x43\xed\x10\xb4\x26\x5d\x20\xf6\x27\x55\xb5\xc3\xb6\x07\xae\x8a\x20\xc3\x7b\x4c\x1b\xb7\x96\x73\xbf\xd9\x43\xd3\xb9\x02\xa9\xd1\x9c\xc9\xd7\x16\xec\x28\x0b\x46\x18\x77\x40\xe7\x33\xb3\x26\xfe\x94\x78\xd3\x48\x77\x05\x1d\x1f\x33\xdd\xd0\xeb\x5a\xc6\x22\x79\xf7\xfa\xc7\x8f\x89\x67\x25\x3a\xd3\xf4\x9b\x24\x6b\xd2\x94\x56\xff\x8e\xf7\x6a\x1b\xf4\xd1\xb9\x18\xb8\xfa\xa9\x1b\xc3\x91\xa8\xbb\xdd\xd3\xf1\xe9\x33\x82\x74\x84\xd2\x0e\x01\x23\xa2\x85\x26\xf2\x43\xc4\xcc\x29\x27\xdc\x3c\x4f\xad\xe1\xed\x5b\xbf\x42\x9d\xf5\x1b\x89\x43\xac\x09\xff\x51\x75\xd3\x81\xfd\x65\xc2\xda\xe9\x6d\x33\xd6\x39\x19\xbb\xb5\x32\xd9\x94\xc9\x00\x64\xb9\xe9\x88\x7a\x98\x7d\xd5\xa4\x4b\xb9\x82\x65\xa7\xb2\xa7\x25\xdf\xb9\x99\x9c\xc1\x81\xa8\xcd\x97\x79\x81\xb3\xed\xaf\xd0\x9a\x40\x6e\xdc\x1a\xe8\x71\x38\x07\x19\x91\x8b\x7e\xd8\x1e\x35\xf5\xb8\xad\x09\xe5\x57\x74\x80\xb6\xf3\xbb\x7d\x4e\xd9\x59\x02\xa7\xa8\xbb\x4f\x48\x74\x38\xd0\x71\x45\x6d\x11\xc4\x93\xb0\x3a\xdc\x82\xb2\x75\x3e\xb0\xa2\xa2\x75\x92\xe1\xdd\x03\x5f\x75\x1a\x1b\xe6\x17\x69\xd6\xcd\x5c\x3c\xab\x6b\xd9\x3d\xa8\xa5\x7d\xc8\xea\xb7\x9d\x68\x77\x7f\x1e\xde\xa8\xe2\x2c\xf5\xf3\x6e\x6b\x6a\xbb\xd5\x56\x34\x6b\x34\xc2\x97\x06\xb7\xb2\x42\x43\xcc\x75\x22\xd2\xa0\x75\x6f\x5b\xc2\xcf\x75\x97\xd4\x15\x98\x33\x71\x2f\x24\x5a\x05\x6b\xa3\x28\x51\x79\xa5\xf4\x7a\x0f\xee\x1f\xe6\x57\x07\x46\x3a\x4e\xc7\x05\x3b\xbd\x5c\xe7\xbe\x6d\xd3\x97\x84\x6b\x2b\x28\xb0\x92\xd9\x86\x76\xc5\xa6\xac\x9a\xc0\xb1\x99\x58\x94\x9c\x78\x8e\xd6\xcc\xdf\xe0\x2f\x2b\x99\x34\x65\x5c\x81\x1c\xe2\x02\x66\xab\x40\x8b\x24\x11\x52\x79\x22\xe3\xfb\xfc\xea\x7c\x90\x3e\x5d\x4b\xab\x77\x03\x3d\xa3\x3e\x2a\x0e\xb7\xd6\x05\x36\x32\x71\xaa\xd4\xef\x94\x4e\x19\x94\xce\x86\xb8\xa2\xae\x54\x1b\xd3\xda\x16\xb2\xd0\x71\x3b\x68\xcc\x79\x9a\x85\xf7\xec\xa2\xeb\x7a\x44\x3a\xd2\xbe\xb0\xca\xed\xf9\xa5\x75\x9a\x56\xbd\xb6\xbd\xb5\x47\xdd\xea\x60\x3e\x29\xe6\x6f\xf9\x3b\xb1\xdf\x0f\x48\x4a\x7c\x78\x42\xed\x1b\x34\xf4\xe7\x95\xbe\xc3\x1d\xfc\x35\x1a\xdf\xd2\x40\x51\xd4\x77\xdb\xd0\x5d\xc0\xfa\x55\x63\x48\x1b\x39\x8f\xe1\xce\xf0\x56\x6f\x15\x26\x72\x45\x2b\xcc\x3b\xb9\x59\x3f\xab\xd7\x5c\xb4\x63\xb1\x55\x93\x65\xd1\x9b\xbb\x4f\x64\xce\x74\xbb\x32\xb2\xfb\x8a\x79\x25\xd0\xa8\xdc\x25\x08\x96\x42\x21\x66\xab\xa2\x2a\x89\x52\x66\xac\xd6\x98\x3f\xc7\x57\xa2\x7e\x19\x93\x20\x9e\x98\xee\xd4\x3d\xc7\xdf\x1e\x79\xf4\xf2\xf5\x47\x98\xd9\xdd\x4d\x0a\xe3\x5d\xfa\xeb\x14\xb3\x6f\xab\xb4\x06\x3c\x68\x60\x0b\xf1\xb3\x7d\x5f\x8a\x81\x2c\x28\x70\x26\xd7\x5e\xac\xaa\x2d\xb5\xf6\x77\xb9\xa2\x61\xd5\x6e\xfb\xb4\x9e\x29\x4e\xec\x68\x25\x98\x6c\x6c\x8c\x7c\x05\x34\x83\xaf\x88\x10\x0e\xaf\xe7\xaa\x1d\xda\x44\x56\xb1\x6b\xa6\x4b\x8e\xdb\x4d\xad\x67\x47\xc7\xc7\x54\x7d\xbd\x80\xd9\x6a\xfe\x13\xb1\x37\x7c\x9f\x71\x45\xfb\x74\x47\x27\xfa\x02\x79\x36\x99\x4d\x5b\xa2\xc4\xa8\x8b\x74\xb7\x54\xcf\x6d\xca\xcb\x88\x42\xed\x04\x08\x49\x3c\xa1\x6e\xbd\x47\xc2\x37\x6e\xe1\xd0\xc9\xf4\x43\xf2\x8c\xfd\xe3\x21\x34\x8b\x55\x68\x7e\x77\xb1\x24\xda\xb3\xbb\x1b\x0a\xd1\x5c\x4f\x09\xf1\xf9\x0e\x58\xf0\x23\xbb\x21\xbc\x33\x1b\x39\x0a\xe5\x93\x6d\x2a\xcc\xa1\xc3\xa8\x02\xd7\x44\x38\x3d\x8a\x89\x85\xed\x2b\x32\x49\x4c\x89\x19\xa7\x2b\xab\x78\x66\x7d\x4a\x48\x10\x7f\xef\x31\xf2\x4d\x9f\xc3\x1f\xaa\x24\xd1\x1e\xd7\xb4\x58\x2b\x60\x07\xd6\x6d\xf3\x56\x30\xef\x27\xa6\x41\x43\x92\x12\x79\xa4\x32\x3d\x55\x9f\xf2\xe1\x75\xe5\x68\x1b\xb0\x63\x1e\xc9\x0b\x6b\x75\x7e\x6e\xab\x02\x57\xa3\x7b\x38\xd2\xc0\x40\x26\x2d\x5e\xd0\x77\x22\xce\x71\xd6\x93\x2d\xac\x64\x5c\xc1\xed\x5b\x4a\x8c\x9e\xae\xbb\x94\x55\xe0\xc4\x80\xd3\x76\x99\x3f\xab\x60\x1f\x53\x33\x1c\xae\x49\x77\x29\x6e\xe1\x5a\x28\x6a\xe2\x9f\x49\xac\x5b\xb2\xba\x47\xa0\x4c\x94\x0d\x4b\x1e\x15\x78\xa3\x20\xa3\x4b\xb2\xb8\x53\x3b\xbe\x4b\x2b\x35\xba\x52\xfb\xbc\x20\x78\x9a\x54\x76\x1f\x2e\xea\x94\xe5\x2c\x4c\x17\x9d\x89\xf3\xe7\xf2\x17\x47\x41\x61\xd2\xd6\xb4\xa2\xfe\xb0\xd7\x7f\xd8\x40\xd1\xa4\xc7\xf9\x07\x9a\x4b\xfd\xa4\xa5\xe1\x6b\xb6\x2f\x59\xd9\x4c\x7c\x48\x99\x5b\x48\xf6\x48\x06\xf8\x2f\x84\xa5\x9b\xf4\x40\x33\xe7\xcb\x31\xb7\xc4\x5b\xe0\xc2\xfe\x62\xfd\xb1\xf4\x60\x36\xea\x91\xcd\x88\xee\xfa\xfa\xe4\x35\x64\x47\xe0\xb6\x4f\x02\x05\xad\x1a\xd0\x50\xd3\x37\x3e\x79\x4f\x34\x07\x6a\xf7\x67\x62\x1b\xf2\x19\x19\x3b\x11\xa6\x5d\xbf\xf7\x69\xe2\x14\xfe\xbe\x67\xed\x88\x4d\x2c\xa1\xef\xd6\xe3\xa8\x09\x7c\xac\x71\x3f\x5e\xf4\x9e\xb5\xbb\x4f\xec\xb3\x66\x83\x95\x08\x72\x4a\x30\x00\x94\x2a\xbb\x83\x7f\x46\xf9\x2b\x5a\x8c\x66\xa1\xe5\x3d\xbf\x5d\x8c\x6b\x72\xcb\xab\xab\x9b\x16\xc3\x86\x3c\x04\x37\xb6\x9f\x02\x93\xf6\x3c\xa4\x6f\x72\x12\x1c\x46\xba\x00\x1a\x46\x3e\x05\x2c\xfc\x6d\x6e\xad\xb8\x6a\xe1\xb6\x1a\xf4\xa1\x2d\xc0\x40\x9d\x80\x87\x24\xb2\xa1\xe3\x50\xcc\x08\xa2\x68\x37\x2c\xe0\x4c\xf4\x37\x04\xd6\xee\x1e\x6e\x2c\x06\x6d\x8e\x2d\xc3\x93\x71\x1a\x5c\xe8\x8b\x90\x93\xa9\xc5\xd5\xf5\x93\xd5\x7f\x33\x5c\x40\xc9\x5d\x10\x09\x5f\x19\xbd\x67\xf0\xd1\xec\xda\x4e\x56\x90\x2f\xac\x47\xed\x68\x6d\xdc\x5a\x8c\x0d\x3c\xd5\x5d\xba\x9c\xdf\xcb\x12\xcc\xb3\x2f\x88\x99\xb5\x39\x1b\x9d\x55\x97\x4b\x3b\x0e\x2e\xe9\x52\x6d\xdc\xbd\x30\x8b\x38\x97\x85\x30\x65\x01\x26\x46\x8c\xda\xb0\xd8\x0d\xf8\x36\x84\x18\x56\x1e\xf3\x7f\x23\xc4\xd2\xe2\x6e\x81\xd8\xe6\x77\x24\xc2\x5f\x9a\x09\x18\xdc\x19\xff\x42\x0b\xa7\x17\x57\xab\x61\x7e\xea\x23\xb3\x51\xe3\x8c\x19\x2e\xae\x28\xc9\xe5\x8b\xd1\x3b\x47\x77\xa7\x80\x5b\x0d\x71\x41\xe7\xf9\x75\xd5\xa3\xf3\xc9\x55\xd5\x0b\xa3\xc7\x83\x98\x2c\x26\xab\x9f\x2d\x96\xd7\xb6\xd4\xc6\xec\x09\x09\xd4\x19\x84\x6a\x98\x2c\xb6\x07\x7f\x5f\xe1\x16\x14\x17\x23\xf4\x97\xe8\x20\x53\x05\x5a\xbe\xb1\x4c\xff\x19\x17\xfd\x20\xca\x9b\xc1\x76\xde\x76\x1a\xac\xa1\x1b\xcd\x05\xc3\x00\x85\x09\x86\xc8\xe2\x29\x08\xd1\x8b\x8a\x51\x91\x78\x60\x7c\x04\x96\xc2\xe9\x86\xe9\xc0\xb1\x25\xde\xc2\x8a\xaa\xca\xd5\x2f\x95\xdb\x57\x6d\x07\xca\x0c\x15\xf9\x5b\x83\x3b\x66\x74\x52\xd3\x1e\xdd\x8d\x27\xd9\xb7\xe3\x0a\x70\x43\xe3\x02\xd8\x67\xbc\x10\xf3\x7b\xbf\x7e\xf3\x5b\x6b\xb5\xb6\x48\xce\x64\x31\x9c\xdd\xe1\xd1\xbd\x5f\xbf\xfd\x8d\xd8\xa6\x7b\xbf\x7e\xf7\x1b\x5b\x25\xc6\x95\x2c\xd6\xe9\xce\x9c\xac\x89\xcb\xbb\x42\x75\x63\x0e\x79\xd5\xc3\x6b\xa5\x21\x61\x33\x20\x23\x7f\x74\xca\x75\x65\x66\x40\x0f\xf4\x82\xf4\x90\x1c\x64\x9a\xf3\x72\x48\x0e\xca\x7e\xbf\xd0\x19\x68\x41\x2f\xaa\x7a\x2f\x3e\x11\x61\x0d\x92\x0f\x49\xa4\x9b\xff\x6d\x43\x4c\x8e\xa6\xa4\xe2\xf5\x43\xe3\xcf\x33\x62\x18\x31\x28\xcb\x3d\xfe\x93\x7c\x3d\xe1\x11\x61\x2a\xfe\xe6\x9b\xac\x9c\x1d\xe3\x47\xb9\xab\x66\x2f\x1d\xe4\x6c\xd6\x98\x0d\x28\x99\xc4\xe5\xb8\x2c\xf8\x36\x6b\x94\xa3\xdd\x08\x21\x12\xde\xec\x26\xec\xa2\x2b\xd4\xf0\x54\x2b\xf4\x2b\xd3\x54\xe1\x34\x69\x66\x5c\xa5\x02\xdd\x54\xa9\x92\x69\x8b\x45\x1f\x0c\x31\x14\xc1\x7e\xd2\xd9\xe7\x89\xb3\x07\x5c\xb5\xff\x47\xa7\x4c\x3a\xa7\xf5\x6c\xa5\x53\xd9\x9f\xa8\x47\xd8\x16\xe2\x66\xd7\xa8\xe9\x3e\xb4\x52\xb4\x4d\x34\x00\x46\xde\xb9\xf3\x0c\xbc\x2c\x4f\x26\xf5\x56\xca\xdc\xd8\x92\xe0\xed\xfd\x08\xe3\xeb\x8a\x63\x11\x5d\x54\x22\x0c\x68\x2a\xdb\x9f\x25\x18\x8d\x47\xdc\x81\xce\x4b\x93\xed\x55\x24\x92\x1d\x48\xbe\xc2\xb9\x0c\xe9\xb6\xb5\x77\x89\x83\xa5\xb3\x37\x7e\xac\x87\x3c\x4b\x17\x1c\x31\x41\xfc\x31\x4b\x18\xfd\x5c\x7c\x0a\xc2\x3d\x18\x85\xc1\xc7\xce\x92\x53\x97\xc7\x22\x53\x62\x70\x87\x08\x6a\x7c\x70\xfd\x29\x4b\x40\xd1\x80\x0d\x4d\x20\x71\x92\xd6\xcd\xc3\xce\xf8\xc8\x91\xc5\x76\x9a\x98\x60\x09\x48\x93\xfa\x44\x39\x7a\x65\xab\xf2\xd9\x2c\x9a\xbe\x28\x77\x55\x15\xc4\xca\x72\xee\xae\x60\x76\x76\x90\x0d\x2d\x27\xed\xe4\x01\x4b\x28\xb9\x7e\x03\xb4\xc2\x1d\x30\x26\x19\x6f\x1b\x1d\xc0\x4f\x0f\x4a\xf2\x86\x5e\x5f\x83\x6c\xbd\xdc\xa1\xfe\x7e\x31\xef\x12\x54\xa0\xb1\xa8\x42\x3e\xf6\x04\xd8\x0d\x76\xc5\x5c\xf9\x27\xaf\x46\xcf\x4b\x8e\xa5\xd0\xb9\xe0\x12\x91\x33\x98\x1b\xee\x97\xb4\xeb\xd3\x1d\xb1\x6a\x76\x5e\x84\x91\x71\x35\x32\x2d\xaa\x2c\x86\x9d\x57\xa7\x84\x9b\xe2\x78\xc2\xac\xfb\x86\x79\x0f\xe7\x9f\xa5\x34\x77\x12\xdc\xd9\x14\xb4\x0c\xa2\x87\xa1\xa0\x97\x17\x59\x57\xa1\x02\x2e\xaa\xe0\x1b\x52\x90\xef\x59\x49\x27\xea\x4a\x86\x9c\x0d\x9b\xc0\xf5\xe5\x39\xfe\x1b\xb5\x2d\x7f\xe7\x07\xdb\xac\x05\xd0\x23\x54\x65\xdb\xbf\xf0\x97\xd3\xb2\x09\x08\xd1\xf8\xc6\xb4\x7d\xd1\xb5\xd6\x38\x8a\x8f\xb4\x63\x42\x7a\xc0\x65\x30\xdf\x91\xb2\x22\xa1\x9e\x18\x16\x56\x78\x48\x93\x3f\xba\x3b\xcc\xd6\x3a\x26\x3d\x60\xe2\x09\x93\x11\xdf\xb9\x66\x23\x4f\x6a\x15\x7c\xa6\xf5\x46\x75\xbd\x6d\x22\xf5\xc3\xb7\x38\x0c\x32\x35\xbf\x9f\x48\xfd\xba\xe9\x6b\x2f\x26\xa7\x9b\xa4\xeb\xd9\x03\x87\x49\x05\x4f\xb3\x68\x47\xda\xef\x03\x9a\x00\xaa\xf7\x88\x2b\x7f\x84\xa3\x3e\xb3\x14\x30\xf9\xa7\x7b\x09\xbe\x41\x17\xee\xbb\xe9\x14\x79\xe1\x22\x5c\x14\xd0\xb0\x74\xe7\x97\x9b\x77\xbc\x2c\xf2\x31\x2f\x12\x34\x90\x29\xe1\x6d\x19\xc3\x1f\xe3\x1e\x98\xa5\xe8\xfc\x3b\x69\xd3\x3d\xe2\xdd\xc1\xb0\xc6\xd8\x67\x41\xbe\x73\x20\xb6\xf6\x3d\xa6\x4f\x39\x00\x69\x44\x52\x06\xed\x40\x89\x35\xd5\x50\x5e\x76\xd5\x44\xed\x54\xfa\xff\xfb\xad\x75\x23\x48\x97\x0b\x4f\x59\x69\x4f\xbf\xc8\xdb\x15\x4d\x65\x6e\x62\x88\x81\x28\xef\xb3\xa0\x09\x68\xf9\x02\xa3\xe8\x7e\x9d\xc7\x95\x05\xd2\x03\x9a\xb0\x84\x7b\x3f\xbf\x60\xb5\x44\x22\xc9\x09\xf4\x42\x82\xf8\xba\xca\xc4\x60\xc3\x0c\x03\x2a\x90\x70\x01\x38\x90\x4a\xf4\x8b\x59\x3c\x31\xc4\x2a\xe2\x4f\x88\x2e\x9a\xf1\x71\x54\x29\x65\x26\x4b\x16\x96\x65\x06\x95\x12\xc0\x2f\xf4\xfa\x8e\xad\x01\x41\x01\x68\x77\xb0\xb5\x11\xb1\xae\xa0\x54\x1c\xf7\xcf\x55\x25\x90\x49\xd6\xc3\x54\x97\x58\x22\x83\x42\x50\x9b\x79\x4a\x16\x74\x9c\x4e\x95\x05\xeb\xd8\xb9\x1b\xb2\xa6\xff\x93\x84\x0a\x4a\x77\x83\x46\xfe\xf9\x60\xe4\x49\x35\x31\x53\x61\xad\xac\xaf\x9e\xae\xf8\x7e\x77\x73\xd5\x4b\xb3\x4a\x7b\x5a\x90\x6e\xcb\x8e\x66\x8d\x44\x11\x28\xf2\x55\x87\x71\x62\x2b\x59\x5e\xa2\xbd\xa1\x45\x17\xdc\x8a\x17\x17\xf5\xa9\xfe\x4e\x42\xc4\x74\x55\x05\x27\x9d\xa4\xad\x8a\x03\x51\xf6\x2e\x5e\xca\x78\x9b\x5f\x06\x1b\x04\x7b\x28\x24\x8b\xec\x20\xe0\xf4\x5f\x5e\x5d\x13\x4a\x9f\x41\x7e\x28\x6b\xeb\x99\x19\xe5\x9f\x10\xb9\x87\x10\xd9\xfc\x9e\xe3\xfa\x27\x60\xa0\x18\xed\x69\xd2\x41\x2e\xac\x12\xe2\x90\x16\x99\xe8\xa1\x06\xdd\x51\x26\x7f\xd8\x84\xe5\x93\xe3\xc1\xd1\x89\xb5\x04\xa9\xa4\x99\x65\x4d\x82\x53\xb1\x78\x1b\x8e\x5e\x81\x70\x67\xaa\x53\x5d\x89\xc3\x54\xd8\x8e\x2a\x40\x74\xa2\x12\xa5\x64\x01\x84\xc6\x3a\xcb\x3b\x13\x4f\x23\xa3\xd3\x33\x13\x6a\x7c\xc3\x5c\x3b\xf6\x9f\xfd\xb0\x93\x07\x12\xfb\x89\x38\xb9\x87\x83\xc1\x9a\xb4\x81\xdd\x6a\x33\x6e\xde\x85\xea\xd0\x0a\x17\xb2\x81\xe6\x7f\x91\xe8\x4a\xe1\xb4\x8a\xdf\x88\xbd\x3d\xc3\xae\x15\x6c\x5f\xb8\x7b\x45\xac\xe8\xf9\x7e\x7f\x9e\x65\x77\xa7\x46\xef\x58\x00\x37\x0b\xd6\x8a\x13\x30\x02\xa9\x13\xda\xef\x44\x55\x04\x4c\xd5\x34\xba\x01\x20\x58\x32\x1b\x16\xcf\x38\xfb\xee\x32\x98\x43\x75\xf6\xb4\x2b\x7a\x06\x1e\x95\x9d\x08\x1a\x36\x9f\xb2\x5b\x22\xd1\x91\x6a\xbc\x8e\xc3\x38\x8a\x41\x9e\x32\x6f\x6e\x74\xd6\xde\x39\xd5\x4d\xf5\x9c\xf5\x2c\x06\xe3\xcf\xfe\x86\x89\xf1\x71\xe1\xee\x0c\xf0\x43\x19\x42\xd7\x6e\x64\x79\x9f\x80\xfc\x7f\xc1\x13\x4e\x75\x63\x84\x0e\x27\xdd\x2c\xf8\x32\xd0\x74\x64\x4d\x9b\x3c\x13\x9c\x6f\x39\xd0\x99\xc4\xda\xd2\x8c\x20\x6e\x08\x3c\xf2\x40\xe0\xf4\x0a\x43\x00\xb4\xad\xaa\x1d\x22\xaa\x2c\xf9\x47\x90\xb1\xc9\x3b\xc9\x43\x08\x9e\xad\x6c\x1b\x97\x89\xf0\x33\x2b\x1f\xbe\xf3\x19\x47\xa3\x99\x0e\x08\x4a\x07\x1c\x25\x34\x8b\xcf\xa2\xb6\x3d\xa4\x98\x73\x7c\x04\x20\x7c\x19\xe2\xbd\x0f\xb7\x23\x97\x22\x5c\xb6\xfa\x98\x4f\x4e\x84\xde\xcb\x88\x5a\x54\x7f\x6d\x98\x5b\xc4\xbe\x2a\xce\x24\x7c\x40\x4b\x1e\x62\x0f\x20\x32\xdb\xda\xac\x68\x70\xd5\x51\xaf\x82\xc9\x02\xe3\xc8\xa0\x73\x29\xb0\xc8\xcd\x82\xca\x3b\xe2\x1f\xdb\xb5\x95\x41\xf9\x5a\x9b\xbb\xbc\x35\x01\xa6\x56\x4a\xe6\x16\x9d\xf9\x89\x8b\xf8\xa8\x02\xe2\x6d\xed\xaf\x33\xaa\xbd\x32\xbc\x67\xc6\xa1\xf7\xfa\x20\x8a\x53\xa2\x31\x9f\xe4\x06\x5a\xd8\x41\x0e\x02\xcb\xf7\x3a\xc1\x9c\xb4\x62\x9a\x96\x9b\x6b\x6a\xcc\x72\xb7\x3a\xe5\xf6\x9a\x72\xb6\x63\x53\xfb\x67\xeb\x3c\xe2\xd7\x72\x78\x77\x67\x6c\x51\x1b\xc0\xca\xf8\x25\x5e\x04\xb5\xc2\x57\xac\x87\xad\x79\x84\x67\x07\xc2\x46\xf4\x3b\x47\xb3\x11\x37\x9d\x59\xf2\x52\xbd\xaf\x3f\x23\x44\x97\x04\x02\xbb\x72\x07\x0f\x5c\x28\xf9\xce\xf5\x78\xee\x11\x84\x8e\x76\xd4\xe2\x9b\xf9\x79\x02\xc6\x84\x57\x1d\x07\x5f\x22\xce\x58\x49\xbe\x26\x79\xff\x98\xf0\x74\x31\x93\x4f\x48\x9c\xe5\x87\x3c\xeb\xe1\x69\x44\xe7\xdb\x8d\xd5\x7e\x1b\x56\x0b\x3b\x1e\x8c\xfb\x27\xab\xb6\x0b\x2a\x31\x82\x13\xbe\xaf\xb1\x4e\xae\xab\xfe\x7e\x83\x88\x17\x46\x18\x3f\x23\x25\xa6\xc7\x03\x8a\xa4\x02\xbf\xf2\x3c\x7c\x17\x37\x71\xd7\xd1\x42\xfe\x0f\x68\xac\x6e\x4d\x68\xa5\xf1\xdc\xd7\xf7\xe3\x55\x0a\x67\x8a\xf7\x89\x67\xd5\xac\xdf\xcf\xf3\xa7\xef\xde\xbd\xff\xe8\x5d\xa8\x96\xc4\x71\x11\xfe\x97\x66\x76\xba\xba\x6f\xc7\xd5\xf1\x64\x39\x97\xa7\xe2\x5a\x78\x58\xe6\x04\xe1\xf5\xd9\x5c\xb3\x7c\xe7\xb8\x60\xbf\x09\xcf\x68\x70\xab\xa2\xe7\x80\x09\x2f\xe5\x32\x6b\x4a\x69\x2c\x73\x9f\x59\x65\x5b\xcb\xf3\x2a\x4b\x60\xf8\x6e\xa7\xa7\x82\x55\x3c\xab\x83\xae\xb2\x69\x1e\xc3\x7f\x3d\x6a\x39\x61\x1e\x18\xf6\x4c\x0e\x74\x27\x7e\x43\x32\x90\xa5\x61\x56\x76\x8f\x43\x22\x33\xac\x1e\x41\x04\xa3\x75\xc7\x7b\x43\xe8\xfd\x97\x1a\xfd\xf6\x74\xa3\x70\x80\xea\xcc\x54\xab\x88\xaf\x7a\x20\x99\x82\x38\x14\xcc\x1c\xb6\x79\xd2\xe5\xfb\x9b\x16\x83\x1b\xfb\x4e\x1a\xbb\x06\xda\xa6\x25\x0b\x3e\x3b\x63\xea\xa0\x85\xb8\xf3\x67\x08\x98\x05\x4c\x53\xc2\xe9\x9d\xbd\x26\x96\x88\xc5\x28\x9e\xa8\x84\xd0\xae\x8d\xc8\xd2\x80\x88\xbb\x43\x30\x74\x74\x19\xc7\x02\x3b\x71\x5f\x68\xbc\x35\x44\x2f\xf8\x2e\x26\x70\x01\x20\x18\xbf\x85\xa3\xdd\xcc\xd7\x2a\xdd\x66\x5b\xee\xb8\x42\xf1\x57\xcd\x3c\x99\x0f\x29\x96\xef\x56\xc5\xea\x86\x11\xf9\x8f\xfd\x09\x4f\xf9\x11\x3a\x70\xf8\x94\x87\x88\xea\xe4\x0b\xe2\xdf\xf8\x78\x6b\xa2\xcb\x06\xa7\x8a\xb9\x49\x0d\xca\xe5\x83\x7b\x23\xae\xb0\x60\xd0\xd7\x94\x0f\xfc\x11\xc3\x05\xc5\x05\xfe\x9c\x6f\x62\x2f\x24\xd6\x94\xbf\x1d\x88\x52\xb8\x38\xaf\x2e\xe0\xe1\x49\x06\xaf\x16\xb8\x28\x8b\x5c\xec\x9a\x19\x5e\x33\x9b\xee\x33\x06\x7c\x14\x5e\xc5\xf2\x2c\x93\x13\xc3\x9c\x8b\x1c\x3d\x96\xb5\x61\xe7\x61\x04\xea\xf8\x03\xbe\x56\xdc\x0f\x60\x1b\x6b\x69\x11\xa9\x3f\x6f\xdd\x6d\xcf\xce\xf8\xf8\x45\xd8\x25\xa5\xe1\x70\x04\x60\xd5\x24\x72\x9e\xe9\x11\x0f\x38\x67\xdd\x0f\x2e\x32\xc3\x39\x5b\x6e\x52\x1f\x72\xd6\x56\x25\xbf\x68\xa9\x4c\xe2\x1a\xbb\xd8\x06\x61\xc9\xb0\xc4\x59\x22\xa1\x80\x10\x39\x00\x33\x73\xf1\xfe\xf2\xa3\x57\x33\xf1\x61\x6d\x8a\x9d\x9d\xcf\x4f\x1f\xde\xdc\xb7\xce\xe3\xa8\x1e\x1c\x40\xf2\x16\xed\x05\x5c\x2b\x2a\x06\x33\x9a\x97\x72\x5d\xe6\x66\xdf\x1d\x37\x4d\xf0\x9f\x81\x4a\x2a\x9c\x76\x9d\x72\xaf\x83\xb5\x73\x1f\x5f\xed\x38\x05\x6e\xaf\x22\x28\x9d\xcf\x21\xd6\x4a\x79\xa6\x66\x82\x88\x09\xb4\x4a\xe1\xf1\xc5\x84\x9c\xb2\x61\x75\xc5\xb9\x90\xa8\xc7\xc8\x2c\x79\x51\x45\xf4\xcb\xde\x08\xfd\xe1\xa6\x2e\xf8\xd8\x81\xd2\xb2\x53\xa8\xc8\x0e\x1d\x29\x67\x86\x35\xcd\xac\xa2\xe0\x67\xab\x13\x98\x80\x68\x6b\x30\x01\x24\x24\xb9\x1b\xd5\x43\x18\x11\xd2\x70\xbd\x8b\xff\x4e\x40\xd4\x12\x22\x68\xfe\x86\x43\x03\x4d\x00\x2c\xab\xec\xda\xdd\xe9\x19\xb1\xeb\xea\x2d\x65\x79\x76\xbb\x9d\x58\xba\xcc\xe4\x2d\x0b\x36\x1e\x02\x02\xfa\x4f\xe7\x2d\xed\x1d\x29\x39\x66\x82\x8b\x91\x89\xb0\x90\x5c\x93\x5e\x39\xe1\xab\x1d\x08\x13\xc5\x20\xd8\x3d\xe1\x05\x52\xe6\xc5\xb8\x06\xef\x10\xee\x58\xf4\xd9\xb8\xbf\x6c\x33\xf0\x3c\xe2\x56\xa3\x01\x76\x52\xd3\x9a\xe8\xc8\x19\x8b\x64\xfb\x0a\x9b\xb5\x51\xa3\x9f\xbf\xc2\x58\x4b\xa8\x35\x76\xa9\x84\x4f\x7a\x41\x87\x92\xc2\x48\xac\xa3\xb4\x10\x1e\x95\x6b\x0e\xc3\xf3\x4e\x75\x86\x7d\xa7\x5f\x71\x1f\x62\xbe\xd7\x02\x58\x53\x24\xc3\xe4\xc3\x35\xd0\x23\x4e\x81\x05\x28\xb8\xcb\x3b\x45\xc5\x2c\x8d\xb2\xdb\x9f\xdd\x2b\x59\x63\x0a\x0a\xa0\xca\xd3\x01\x21\x18\x06\x48\x83\x9f\xa3\x30\xec\x1d\xae\x87\x06\xb7\xab\x69\x7e\xec\x7d\x9f\x98\xf6\xb8\x8b\xa9\xd8\x0a\xa0\x20\x07\x26\x3d\xb8\x27\xa2\xc4\xaa\xcd\xad\xd3\x3d\x6d\x34\x50\xca\x98\x2a\x3e\xf8\xb7\xcb\xf7\xef\xce\xb4\xab\x7f\x9c\x7f\x73\xfe\xaf\xff\xf2\x2f\xe7\xc7\xe3\xf1\x9c\x76\x79\x71\x7e\xa0\x4d\x7c\xde\x37\x34\xcb\xc8\xcf\x74\x18\x04\x6e\xf6\x4f\x4c\xf9\xf9\xf1\x23\xfa\x3b\x7b\x38\x26\x59\x12\x12\x5b\x34\xfe\x41\xa4\xf8\xff\x02\xe5\xd2\xdd\xc4\x31\xc9\x47\x11\xb7\xc2\xd3\x1a\xcb\x2a\x9e\x1c\xcf\xe5\x43\x1d\x63\xbd\x8c\x6a\x56\x8d\x81\x83\xc8\xd6\xe4\x21\x6a\xb4\x45\xba\xda\x2d\x4e\xbe\x3d\x32\x80\xcb\xa9\x29\xee\xcc\xeb\x95\x46\x84\x1f\x81\x88\xc9\xee\x27\xb1\xd6\xb9\x3c\xbe\x10\x25\xd8\xf2\x2c\xbf\x72\x6b\x15\x1d\x28\x47\xd5\x3e\xa4\x2a\xbc\x59\x2a\x4b\x33\xd7\xe4\x9b\x0d\xe4\x2b\x8e\x17\xf2\xc3\xa8\x5e\x76\x5e\xac\xca\xe2\xda\x86\x4f\xc6\xed\x0d\x42\x2d\x59\x5f\xe4\x5a\x3d\x3e\xc3\xcf\x46\x15\x70\x3c\x3c\xcf\xbe\xcf\x5f\xef\x44\x3f\x66\x85\x07\xa0\x63\xeb\x65\x07\xb9\x82\x34\xae\x46\xee\xd0\xf3\x15\x3a\x42\xe9\x64\x97\xc3\xe5\x85\x08\x7d\x97\xe4\x3b\x09\x2b\x89\xa2\x13\xe5\x44\xcb\xf8\xbc\x31\x7f\xff\x4f\x33\x9e\x36\x55\xc3\xc9\xec\xb1\xfd\x87\xc3\x12\x76\xb4\xa3\xbc\xda\x6d\x72\x52\xd8\x8d\x73\x7a\xba\x1c\xa1\xc5\x97\x1e\xd1\x91\x1f\x6f\xb8\xe3\x39\x4a\x24\x07\x8b\x34\xeb\x51\xba\xd5\x63\x13\x19\xf8\xdc\xf3\xc5\x69\xb7\x95\x53\x55\x3d\x45\xeb\x9c\xae\x89\xb8\x1d\x58\x79\x75\x74\x7c\x46\xb0\xde\x12\x14\x66\x63\x52\x8d\x4d\x39\x62\xa1\x98\xf2\x0c\xae\x81\x1e\x3d\x3b\x35\xc1\x78\x29\x69\xb3\xbc\x97\xea\x23\xf5\x73\x0c\x17\x35\x60\x8f\x5c\xbc\x33\x32\xc9\xc4\xab\x9c\x32\x64\xec\xa6\x99\x0b\x71\xee\x59\x28\x57\x80\xe0\x2e\x1f\xf4\x2e\x25\x62\x78\x37\x9b\xa1\xfa\x89\xbb\xe2\x5c\xb4\x92\x41\x7f\x31\x1b\xb2\xed\x3c\x35\x8e\x6f\x06\x5b\x1f\xfb\x52\x6c\xa8\x0d\xe2\xf6\x6e\xf8\x8a\x30\xee\x02\x58\x27\x7a\xcb\x83\xda\x1b\xd1\xd3\xba\x23\x69\x49\x6e\x96\x5d\xe2\xb7\xdc\xe7\x1a\x41\xe8\x3b\x13\x02\x92\xe9\x6b\x13\x43\x32\xb1\xc5\xd2\x17\x0a\x44\x94\x93\xf5\xc2\xc1\x9c\xd6\x45\x75\x2d\x17\xc3\x83\x28\xdb\x41\x54\x97\x70\x0a\x3c\x34\xee\xb5\xea\x50\x24\xd1\x16\x09\x35\x4c\xd5\x22\xac\xfe\x93\x86\x54\xb2\x8e\x39\x71\xb9\x53\xe2\x47\xa4\xf6\x9f\xe8\xf6\xe8\xfa\xb2\x83\x89\xef\x59\xbf\x88\x5a\x73\x0c\xc2\xf0\xb2\x75\x58\xd8\xdf\xb8\x1e\x14\xde\x4b\x9c\xbe\x93\x97\xad\xa3\x39\x9b\xb8\x4a\x1d\x8f\x3c\xb8\x4d\xed\xe5\xc5\xe8\x32\xf5\xd4\xb0\x27\xfc\x1c\x4e\x2e\xc4\x44\xb1\x2f\xdc\xa7\x1e\xf4\xd0\x69\xbb\x23\xe5\xf6\xc4\x65\x42\xfb\x32\x51\xac\xed\x9b\xbc\x5d\x7d\x53\xe7\xec\x7c\x0d\xe6\xfd\x0b\x4e\x11\x59\xbe\x5e\xcf\x96\x4d\x75\x6c\x71\x39\xb9\x6f\x56\x24\x50\x17\xa9\xf4\x0b\x2f\x26\x28\x04\x9c\x01\x08\x5f\x96\x24\x4c\x94\x05\xce\x3b\x76\x78\xe3\x2c\x31\x25\xce\xe5\x8f\xa6\xb1\xe1\x35\x0e\x17\xff\x82\xd2\x1d\x03\x24\x7c\x68\x10\x0b\x65\xa6\x05\xdb\x6d\x75\x5c\xe0\x17\x5f\xb4\x46\xc4\x23\x3a\xc9\xb9\xe8\x65\xc7\x6f\x45\x09\x14\x7e\x2b\x41\xd1\x63\x8f\xcd\x7d\x6a\xa8\x0e\x6e\x2e\xf9\x63\x71\x1f\x9c\x98\x4a\x52\xbc\x8d\xe4\x5e\xe6\x01\x83\xeb\x78\xf7\xb2\x48\xa9\x10\x54\x67\x27\x8e\x28\xc9\xb3\xd7\xef\xf4\x8b\x7d\xeb\x39\xa4\x90\x5a\xcf\xf9\xda\x2b\x8f\x58\xe2\x86\xb2\xb6\x67\xe6\xfc\xf8\x3f\xe8\x0f\x9f\x25\x77\x25\xf8\xb7\x7f\xc2\x8c\x3f\x3d\x4c\xd6\xa4\xeb\x0e\x9c\xd4\xca\xd4\x9d\x4f\xae\x71\x35\x58\x4a\xfe\x4c\x18\x53\x54\x35\xae\x1f\x1f\xf4\x71\x39\x0b\x45\xdd\xc2\x62\xd0\x64\x2e\x39\xd4\x93\x4d\x67\x4b\x98\x57\xf7\xdb\xe4\x14\x32\x55\x30\xc7\x7e\x96\x52\x09\x15\x2b\x53\x98\x72\xc0\xd0\x04\x7c\xad\xf8\x7e\x8c\xdb\x65\xd4\x92\xf8\xba\xcf\xa8\x86\x15\xbf\xe6\x65\x73\x89\x59\xd0\x08\x90\xe9\xc6\x5e\xa9\xb4\x39\xcc\x9b\x22\x2c\x5a\x0c\x6e\x03\xeb\xda\x30\x40\xfe\x26\x08\xe5\x32\x07\xb2\x12\x86\x25\xbc\x69\xd2\x71\x14\xeb\x2b\xd5\xa3\x69\x30\xb6\xc1\xb2\xa8\x0e\x58\xd7\x26\xe9\x84\x88\x5a\x20\xcb\xcd\x1e\x49\x0e\x59\xec\x33\x25\xa0\x82\x5c\x91\xa7\x5a\x0a\xcd\x8b\xe2\x0c\x7c\xd3\x6c\x05\xc7\x06\xf6\x98\x4b\x36\x1a\xae\xa3\xd5\xe3\x07\x3b\xb0\x74\x1c\x5f\x68\xdc\x64\xe8\xa9\xae\xe5\x35\xee\xa2\x15\x96\x6c\x09\x70\xe5\x60\x14\x49\xcc\x75\x4f\xaf\x0d\x91\x64\x14\x57\x60\x49\x6c\xd1\xf9\x70\xd9\x02\x78\xcb\x47\x81\x41\xa6\x6d\x46\x25\xfa\x04\xfe\x8f\x9e\x25\x56\xc8\x20\xc6\x33\x6f\x6f\x0d\x82\xe3\x9e\x86\x41\x58\xea\xc2\xe4\xea\x79\xe4\x5a\xc2\x92\xb4\x5b\x37\xef\x7e\x89\x02\x24\xc2\x33\x09\x11\xfa\xdb\xd7\x10\x62\x44\x76\x5b\xc8\x56\x36\x46\x6c\x8b\x71\x8b\xb4\xc0\x0d\xcb\x6b\x0d\xbf\x27\x6f\x31\xc6\x26\x9a\xf8\x98\xba\x7d\xeb\x57\x22\xc7\xbf\x05\x71\x55\x75\x49\xde\xc7\xcf\x7e\x85\x00\xc3\x4b\xc1\xa3\x17\xc2\xe4\x4e\xb0\xbc\xc5\xa8\xb7\x82\x67\x52\x81\x04\xae\x09\x1f\xff\x0a\x1f\xff\x91\xd8\x69\x2e\x00\x8e\x17\xec\xe2\xb8\xee\xdb\x41\xbc\x9b\xb1\xe6\x70\xe6\x6e\x6b\x4d\x3f\x71\x18\xf8\x49\xf1\x55\x2e\x61\x45\x71\xdf\x4d\x7e\xdd\xbe\x55\x9b\xaa\xa6\x6d\xf3\x16\x77\x5e\x4b\x8e\xdd\x89\x47\xda\x5a\xe2\xaf\x60\x9b\x7c\x6d\xd8\x73\xa4\xcf\x3b\x16\x34\xf8\xde\x94\x49\xf7\x2d\x87\x7c\x6d\x11\xa3\xed\xc8\xe1\xf4\xa1\xe9\x6c\xe7\x85\x91\x3b\xb5\x9c\x78\x43\xac\xc1\xe0\x82\x19\x6a\xd3\x9b\x1e\xf8\x19\xf4\x17\xb3\x38\x71\xe3\x37\x8e\x3a\x2b\x2b\xc6\x69\x37\xc1\xda\x85\xf8\x14\x44\x84\x74\x68\x02\x3f\x57\x8d\x76\xaa\xae\x72\xea\xf1\x9f\x97\xa1\xab\x2b\xec\x24\xae\x21\xb7\xab\xb0\x4c\x1b\xfb\xd0\x18\x57\x81\xe0\xed\x3f\x28\x28\x4c\x3a\x24\x9e\x38\x16\xe4\x17\x96\x50\x61\xc1\xa0\xc3\x66\x83\xd0\x53\x55\xef\x4b\x42\x38\x34\x36\x1e\xdc\x0f\x27\x2e\xd2\x0e\xd0\xf5\xcf\x5d\xa4\x1d\xc6\x11\xfe\x9a\x8b\xb4\x7f\xda\xe4\x7e\x3a\xe4\x5f\xa8\xc6\x8b\x63\xff\xb9\x9c\x71\x10\xc0\xaf\xb4\x80\x4f\xa8\x98\xd4\x04\x4e\x88\xc5\xbd\x19\x05\x53\x0e\xe2\xfc\x9d\x28\x63\x95\xb6\x0a\x3f\x56\xe4\x8b\x61\x40\x6a\x39\x73\xba\x87\xff\xd3\xb1\xff\x18\x77\x63\x2a\x70\x62\x56\x1c\x73\x19\x0e\xf6\x1f\xb7\x28\x8d\x4c\xdc\xd1\x2b\xaa\x43\x99\x75\x1c\xcc\x62\xd8\xe1\x71\x99\x30\xb6\x05\xab\x39\x55\x4b\x99\xe0\xe2\x86\xeb\xb9\x8f\x0a\x11\x79\x98\x7c\x1a\xc7\xb6\x40\x68\x8b\xd3\x91\x2d\x4e\x98\xa4\xbe\x14\xe2\x62\xd8\x69\x90\x28\xe1\x3a\xc2\x60\x25\x3c\xce\x36\x9f\x1e\xa7\xa3\x6a\x2f\x06\x53\xf2\xa5\xa8\x17\x63\x6c\x9a\x36\xed\xfc\xc8\x4a\xcb\x81\x15\x88\x51\x49\x6e\xda\x04\xba\xa7\x28\x20\xaf\x9f\x2c\xeb\xe6\x1f\x76\x2e\xd0\x96\x41\x1f\x29\xbd\x63\xb2\xa0\xb4\x5f\xf8\x80\x95\x0b\x4a\x3a\xcc\xb0\x04\x73\x2f\x97\xfe\xf2\x83\x09\x20\xc4\xa2\x8b\xd0\x79\x13\xc9\x51\xc9\x6a\x54\xfd\xf0\xee\x83\x4d\x57\xeb\xdb\x1b\x84\xdc\xb0\x69\x2b\x30\x1f\x29\x07\xda\x5b\x82\xbf\x2f\x7d\x96\xd8\x5b\xe2\xd0\x36\x36\x8f\x38\x0f\xc9\x82\xde\xd8\x27\xeb\x51\xa9\x2e\x79\x74\x8e\x33\xfb\x81\x33\x1b\x9a\x15\x91\x4f\xe4\xe6\x5c\x1c\xdc\x7c\xef\x39\x5b\xb6\x07\x2a\x13\xae\xcf\x51\xea\x39\xfb\xfd\xa8\x1d\x3c\x28\xf3\xae\x8f\x8e\x62\x3d\x8c\x67\x08\xf6\x8b\x91\xea\xba\xd8\x64\xd7\xef\x4e\x3a\x2e\xa9\x60\x9b\x34\xa6\x13\x47\xad\x50\xc1\x76\x22\x3b\x7c\x98\x92\x0f\x28\xf6\x67\xf2\x71\xbb\x3f\x0f\x9f\x65\x4a\x58\xe1\x24\xcf\xc7\x25\x62\x33\x94\xbb\xf2\x33\x5b\x3b\x73\xd1\xb6\x75\xcb\x0c\x0f\x7a\x10\xc2\xfc\x97\xbb\xc0\x7a\x48\x77\x83\xdb\x46\x41\xb7\x96\x17\x69\x50\x1e\xe1\xd2\x4e\x3d\x73\x8f\x12\x0d\xba\x15\x42\x7d\xa9\x5b\xdc\xea\x3f\x8b\xbf\xec\x74\xe3\x89\x18\x59\xcb\xa1\x49\x9b\x35\x43\xe2\x72\x68\x36\x41\x1f\xed\x95\x7f\xd7\xa2\x7d\xc6\x6b\x14\x01\x40\xe0\x4f\x9c\xd6\x92\x29\xde\x34\x23\xee\x44\x36\x51\x13\x1e\x4b\x53\xd1\xb0\xbe\x82\x84\xf8\x2a\x2c\xb0\x7f\xeb\x49\x7d\xb4\x3c\x30\xfb\x7d\x8d\xd8\x5a\xe9\xa9\xe5\x2c\xf9\x85\x01\x65\x2f\x25\xe7\x6b\x4f\x7f\x81\xb6\x31\x9e\xc0\x6d\x0e\x8e\x25\xa4\xf9\x35\xce\xe4\x59\x03\xa5\x1e\x36\x2e\x17\xb7\x2e\x5b\x55\xb9\xd3\x51\xb5\xf6\x79\x62\x23\x8c\x84\xa7\x22\x63\xc8\x78\x21\x83\xe8\xa3\x61\x8c\x23\x7e\x33\x26\x0b\x5c\x31\x05\x58\x54\xe1\xe1\x72\x8c\x96\x81\x4b\x30\x19\xd2\xbe\x14\x6c\x31\x98\xd2\x4b\x8d\xfb\x66\xf9\x85\x97\xf2\x3e\x9c\xc3\xee\xa9\xb8\x7f\xb3\x88\x66\x0c\xb1\x69\x80\xa9\x16\x11\x40\x72\xfc\xda\x5b\x87\xbd\xef\x75\xb0\xfa\xd0\x64\x34\x9c\x82\xed\x1d\xa6\x9c\xa6\x25\x5f\xd9\xac\xd2\x9a\x3f\xd9\xf2\x80\x8a\x9c\x22\x21\x5f\xd9\x17\x47\x62\xfe\xec\x44\x9c\xea\x4e\x12\xb9\x8f\x04\x41\x60\x83\x95\x0a\x84\x32\xe0\x6a\x2c\x98\x0d\x76\x41\xf0\xf0\x7b\xb0\x13\x06\x61\x3f\xa2\x0d\xa1\xfe\x33\x12\x37\xca\x5f\x6b\xf3\xf5\x96\xb4\x84\x90\xd8\xa1\x18\x71\x6f\x07\x04\x8f\xca\x8f\x9e\xad\x08\xa9\xa1\xd3\x3e\x82\xce\x9e\x09\xd3\xd7\x8b\x94\xcc\xb1\xfb\x6d\x6f\x44\xdc\xe7\x35\x21\x81\xdf\x3d\x39\x38\x7f\x61\x7f\xc9\x4b\x1b\x6d\x60\x98\x64\x79\xd3\x39\x22\x32\xbf\xdc\x04\xf1\xd9\xa3\x79\x8b\x5f\xf2\x0b\xdf\x20\x40\xc0\xfd\xbe\x73\x2f\x12\xb4\x1a\x43\x6d\x03\xb5\x87\x7b\x0e\x12\xf1\x5b\xd8\xf9\x6c\x7e\x79\x8d\xe7\x19\x58\xe8\xdd\x55\x08\xbe\xa7\x54\x7a\x5f\x95\xa8\x1e\x46\x4d\x28\x88\xf8\x96\x53\x63\x0e\xee\x16\xf3\xe0\xfa\x72\x30\x44\xd6\xb0\xd2\xf4\x12\x27\x76\xa9\xbf\x24\xb4\x87\x87\x70\x5e\x87\xad\x5a\xac\xb4\xd1\xa0\x0e\x74\x6b\xcf\x8a\xdc\xbe\xe5\x7a\xfa\x36\xd1\xbe\x6a\xd7\x26\x9b\x5c\xc0\x6a\x2d\x8f\x72\xb8\x57\x3d\x15\xf3\x97\xac\x83\x5c\x3e\x09\x98\xa1\xb3\x20\x35\x7c\x95\x31\x4a\xb7\x6f\x11\x58\xbb\x49\x98\x19\xae\x49\x98\x7e\x90\x17\x0a\xc2\xa4\x56\xde\x28\x08\x93\xc4\x2b\x23\x4c\xa9\xd3\x86\x06\x91\xd7\x88\x1d\x18\x81\x5a\x77\xca\xb0\xe9\x71\xf1\x41\x14\xcf\xb8\x8a\x89\x3e\xe9\x5b\x93\x51\x0f\x7c\x7c\x98\x30\x99\x1f\xdb\xb5\xcf\x20\x87\x19\xca\xe7\x0f\xaa\x75\xd7\x18\x82\x1a\xf8\x26\x6b\x98\x22\xf2\x81\xbc\xaf\xeb\x53\x79\x9f\x86\x09\x5e\x1c\x34\x63\x68\xca\x2c\xf4\x79\x8e\x09\xf4\x12\x91\xdf\xa1\x98\x8a\xfc\x53\x80\xf2\x34\xa8\xe8\x6e\xdc\x33\xd1\x13\x70\x4d\x5f\xfa\xb7\xef\x43\x10\x5c\x65\x29\x17\x1a\xdf\xb4\xe2\x60\x5f\xcf\x91\x94\x50\x12\xad\x45\x96\xbc\xc7\x9b\x61\xed\xcd\x45\xdc\xd1\xc7\xda\x3a\x2e\x81\xa7\xfd\xe1\xfb\xec\x85\xef\xe8\xf0\xf3\xb5\xe9\x09\x8a\xc7\x4b\x3b\x11\x5a\x6c\x2c\xd7\xf9\x20\xfa\xb3\x80\x98\x43\x18\x30\xf6\x6b\xea\x89\x7b\xa7\x00\x3e\xbc\x5f\x83\x5d\x2e\xbc\xcf\x57\xf5\x94\x95\x81\x88\xfd\x43\x95\xb4\xa3\x50\x9b\x63\x96\x82\x41\xc5\x1e\x72\x73\x5d\x71\x3f\xa7\xeb\xf8\x42\x17\xf1\xd2\xf1\x66\x65\xdf\x74\x4d\x9b\x25\xe1\x18\x7b\x2c\x1b\xfb\x6c\xff\x18\x03\xc2\x32\x9e\x87\x19\x95\x0d\xcc\x69\xfc\x36\xa8\x7d\x77\xc9\x57\xd4\x98\xf6\xba\x5c\x2d\xf8\x65\xdd\x76\xcb\xa6\xdc\x57\xb4\x71\x55\x52\xb9\x3f\xa3\xc4\x47\x12\x0b\x29\xff\x6c\xd8\xde\xd9\xde\x4f\x1e\xbc\xe1\x07\x10\xbe\x9f\x08\xf0\xcd\x27\x16\xbf\x89\x00\xb2\xc8\xe2\x8a\xf2\x70\x60\xcc\x10\x00\x98\xdf\x23\xba\xf3\xf0\xe6\x4e\xc4\xd3\x3a\x8c\x87\xad\x15\x6f\xa5\xa3\x98\xe2\x53\x63\x0a\x5c\x11\xa2\x81\x0d\x57\xfc\x5c\xbc\x87\x1e\x88\x7b\x09\x5c\x53\x87\x6f\x1a\xab\xa5\xae\x15\x05\x9d\x89\x5e\xbd\x38\x35\x98\xb0\xf5\x93\x88\xa2\x4d\x4f\x8c\x28\x3a\x74\xe4\xf1\xfc\xbe\x86\x7f\xf7\xfc\x13\xff\x49\x24\x31\xda\xe6\x3d\xe8\x3e\xe1\x46\xd5\x54\x3d\x09\x0a\xc6\xbd\x90\xf0\xd2\xa6\xb4\x53\xf0\xac\xce\xbf\x5e\xf4\x1c\xdc\xca\x16\xd9\xf0\x8b\xca\x5e\xa2\x0f\x0b\x12\x27\x9e\x16\xb6\x18\xd4\xac\x2b\xd6\xb3\x7f\xa4\xe4\xb4\x08\x42\xd5\xb8\x4a\xc2\xc2\x5a\xac\x5a\x76\x29\x75\x28\x63\x7f\xaa\x3e\x0e\x44\xed\x81\xeb\x8a\xe3\x2d\x2e\x0a\x9a\xa6\xbe\x5e\x60\xe0\x2d\xa2\xdb\xb0\x71\xa7\x49\xde\x70\x32\x3f\xf3\x39\xd1\x84\xed\x99\x16\x73\x0d\x51\x07\xd5\x38\x74\xa2\x20\xe2\x47\x0c\x0b\x6d\x24\x9c\xc4\xb0\x84\x9d\xc3\xad\x49\xeb\xc1\x0c\xbe\xa2\xa4\xa9\xd9\x63\xd0\xe1\x2c\x00\xf8\xdc\xcd\x39\xc7\x77\x36\x83\x89\x0b\xcb\xe5\x59\x61\xb8\x4c\xf2\x96\x13\x2c\xa9\x5d\x9f\x2c\xc0\xce\x12\xf3\x57\x55\x55\xfb\xa5\x7d\x3d\xb9\xba\x61\x31\xb5\x44\x8d\xfa\xc7\xc1\xa7\x37\x43\x1a\xc9\x25\xab\xe5\x15\xd1\x9f\x56\x4a\xc8\x47\x0c\xb5\xac\xaa\x0e\x4f\x4a\xd4\x60\xba\xd8\x73\x8e\x83\xaa\xd9\x54\xd8\xd0\x57\xbb\xa9\x8e\x09\xf8\x70\xe6\x08\xbc\xe6\x58\x53\x37\xcd\xdd\x1e\x11\x29\xa9\xbd\xa6\x5f\xc1\xcd\xb2\xd5\x46\xdf\x5e\x22\x8e\xa5\x4b\x9e\x9c\x8e\x51\x51\xd7\xf2\xa8\xf4\x74\xd3\xab\x74\xb5\x35\x13\x6d\x3f\x47\xfa\x97\x1a\x1f\x15\xf6\xad\x8f\xca\x4f\x36\x2f\xaf\x03\x41\x3b\xbe\xec\x57\x3b\xd3\xe1\x4e\xd8\x76\xc1\x06\x76\x5f\x97\x3e\x2e\xc4\x27\x2c\xb1\xbd\xb4\xb3\x00\xd5\xf1\x7d\xc8\xc9\x5a\xe9\xf8\xa1\xe3\x25\x65\x0f\x0a\xbf\x93\x9f\x13\x36\x22\x31\x4b\xa7\x4b\x55\xb8\xec\xbd\x50\x8e\x5b\x77\x27\x78\x1d\x57\xc3\x53\xb9\x08\xd7\xaa\xa8\xa0\x1b\x35\x17\x4f\x94\x71\x7d\x10\x0d\xe4\x24\x5c\x5d\xaf\x0a\xe3\xa4\x84\x84\x7a\xa2\x69\x21\x38\x47\xe8\x27\x70\xa6\xa2\x97\xec\x06\x70\x60\x21\x03\xf0\x2a\x57\x42\xbd\xd2\xd1\x39\x3d\x26\x77\xb6\xa0\x52\xb9\xaf\x2c\x52\xe3\x92\xfb\xd7\x95\xb1\xdd\x93\x22\x6f\xd4\x6d\xf7\xe6\x32\xda\xa9\x76\x1e\x81\x89\xba\x94\xa5\x3e\xb9\xa4\xa1\xc1\xed\x09\x5d\x39\x54\xa0\x95\x4a\x7c\x10\x7b\x81\x0d\x9f\x65\x7f\x37\x7c\x91\x5d\x45\x5f\x85\x04\xbb\xfb\x8e\x99\x5c\x49\xb0\x3c\x1c\xe8\xb9\xf3\x3a\x74\x99\x61\x18\x1f\x49\x0a\x9e\x89\xb7\x49\x1a\xc3\x2c\x08\x5e\x66\x73\x06\x61\x65\xb4\x52\x66\x63\xc5\x19\x28\x88\x76\x2b\xee\x40\x02\xc2\x21\x5d\xe7\x6f\x38\x88\x6b\x54\x8c\x85\x0c\xe1\xd9\xc3\x40\xb9\xfc\x10\x4f\x19\x8c\xea\xc4\x0b\x5b\x17\x5f\x7c\x5e\xcb\xf7\x3b\x30\xb3\xb0\xc7\xa4\x7f\xeb\x8c\x41\xf2\x76\xe1\xa7\x2e\x8c\x0b\xce\x2c\xc6\x68\x26\x01\xce\x93\x19\x82\x8a\xd8\xe9\x6f\x86\xaa\x7a\xc5\x8d\x18\x76\x50\xf8\xa4\x33\x2f\x62\xad\x4e\x52\x74\x69\xbd\x1f\x58\x2f\xb9\xc7\x55\x28\x77\x2b\xdb\x5e\xf5\xe7\x85\x17\xb6\xce\x5f\x04\x9e\x9a\x1f\x17\x00\xdd\x3e\x3f\x16\x3e\x63\xc5\xf0\x03\xcb\x53\x38\x88\x48\x8d\x28\xd0\xc3\x87\x17\xe3\xd9\x09\x1e\x7c\x74\xef\x4b\x5a\x2b\xc4\xc9\x07\x26\x43\x75\xce\x97\xdf\x61\x0c\xbb\x61\x9f\x9c\x8c\xa6\xef\xff\xce\xa3\x93\xf2\x68\xde\x8c\xaf\x55\x85\x1b\x37\x7c\x45\xcf\x6f\x5d\x86\x0d\xf6\x23\x7f\x47\x7e\x0b\x9c\x62\x95\xcb\x6f\x44\xaf\xac\x5a\x1e\xde\x87\x71\x2b\x81\xc2\x47\x50\x0a\xc9\xa6\xb0\x05\xa6\x42\xce\x47\xed\x4b\xc2\xc0\xcc\x25\x89\x1c\x00\xd8\x04\xcf\x2a\x4a\x32\xc2\xf6\xb6\xfe\x69\x45\x49\x1c\x05\xa9\x15\xe5\x93\x6e\xe0\xa8\xc7\xe1\xee\x8f\x7a\x2c\x05\x82\x68\x1d\xe9\x90\x4e\x28\x84\xef\xbd\x24\x04\x01\x1d\x25\x41\x1e\x86\x83\x27\x95\x7f\xfb\xcc\xe6\x59\x37\x93\x67\x41\xb4\xc1\xa0\xab\x5c\x57\xd0\xc5\x2e\xa8\x96\x01\x86\x64\xa8\x0c\x3a\xa2\x7e\xc0\x2f\xd4\x03\x58\x12\xb7\x55\xdb\x11\x27\xd7\xba\x76\x6a\x84\x66\xbc\xa0\xfd\xea\x52\x58\xd2\xcf\x4a\xea\x13\xdf\xa4\x78\xf1\x2e\xca\x70\x0f\xa4\x21\x3b\xb1\x6f\x9e\xbb\xf1\xe0\xc4\xe0\x30\x4f\x78\x14\x30\xb9\xe4\xb0\xb9\xc9\x33\x76\xef\xd3\x6e\x77\x5d\x93\x2f\x7b\xd8\xe9\xc4\xd3\xa1\x6a\xd8\xda\xa7\xe9\x7d\x37\x06\x6c\x7b\xb9\x1d\xf1\x14\xa4\xe9\x8b\xd0\xe1\xab\xe6\x23\x30\x89\x27\x25\x9d\x93\x68\x52\xae\x02\x56\x4c\x6b\x3e\x1f\x37\x03\x80\x3d\xc8\xe7\xa2\x4d\x89\x75\x4b\x9e\x66\xc9\xe5\x53\x9b\xd1\xee\xbb\x5a\x02\xa7\x5f\xbe\xfd\x78\x11\x3f\xb5\x1a\x2e\x18\xe0\x78\xfa\x19\x6c\x1b\xac\x01\x72\x78\x1d\x38\xa7\x0e\x17\x43\x5f\x15\xec\x8a\x96\xfd\xff\x41\xd0\x93\x8f\x6f\x2e\xcf\x4d\xb9\x6a\xae\x6b\x56\x92\x6a\x1d\xbb\xbc\x06\x98\x3e\xfd\x3b\xbf\xa4\x6f\x40\xe2\x5e\x13\x7d\xbb\xe5\x86\xe9\x82\xa4\xbf\x7c\xa5\x0b\x70\xf1\xf4\x6d\xa2\x09\x21\xf2\x68\xbb\x1c\x2e\x87\x78\xa7\x9c\x23\xec\xb9\x1e\x20\x19\x97\x6e\xf8\x41\x17\xc9\x56\x8d\xad\xee\x81\xbc\x26\x0a\x42\xff\xb9\xea\x82\x38\x24\xc1\x46\x3a\x8f\xa3\x3e\xe8\x4a\xf8\x33\x4d\x9f\xae\xb5\xe0\xf6\xdd\xda\xe1\xf9\x16\xee\x25\x2f\x2e\x9f\x68\xe6\x46\x47\x8e\xb0\x26\x12\x96\xf1\xe7\x8b\xfd\x9d\x0e\x6b\x10\x94\x8a\x01\x17\xb2\xb3\x63\x6f\x08\xf0\x67\xe7\x5f\x28\xe2\xbd\x21\x26\xa6\x44\x6e\x6d\x44\x6f\x7f\xe0\x81\x95\x5e\xa3\x1e\xf0\xdb\x37\xe2\x18\x11\x3d\x06\x22\x9a\x0a\xab\x24\x50\x1d\xfc\x25\x7f\xad\x22\x4d\xbc\x02\xa6\x75\xad\x34\xc7\xbe\xda\xaa\x58\x13\xe4\x1f\x80\x29\x2e\xdb\x3a\x5c\x06\x00\xb8\xc1\xe4\x01\xce\xf9\x1a\x93\x66\x0f\x68\x96\xa6\x56\xeb\x35\x42\x32\x21\xce\x1f\x47\xfa\xc0\xc7\x39\x7d\xf4\xad\x2f\x48\xd3\x01\x84\x85\xae\x82\x65\xfe\xcd\xfc\x03\xff\x3c\xa7\x9f\xd1\xd5\x3d\x57\xa4\xe9\xf5\x85\x64\xa7\x2a\xcd\x82\x38\x1a\x11\x18\x37\xac\x60\x49\xdc\x30\x1f\x82\x0d\x09\xa0\x12\xfe\x3f\xbc\x90\xbe\xe4\xc0\x26\x75\x9a\xf9\x79\x86\x05\x60\xb5\x90\x88\xe6\xae\x8c\x18\x20\xb0\x95\xfc\x35\xca\x71\x59\x1a\xc7\xb0\xe0\x9b\x6a\xe3\x5e\xef\x9c\x68\x6c\xd5\xe4\xb5\x5e\x4b\xbb\xe4\xdf\x7a\x2b\xcd\xf5\x1c\x6b\xa3\xc8\xc5\x13\xf1\x7e\xbf\x31\x3b\x17\xb7\xd8\xbd\xdc\x3d\x9e\x93\x6c\x69\x71\xe5\x85\xda\x2f\x26\xb1\x85\xc0\x82\xd3\xd0\x27\x06\x87\x90\x4f\x0c\x0e\x52\x9f\xc8\xdd\x7a\x39\xd5\x7e\xdb\x16\xb2\x2c\x97\x97\x6f\x06\x4b\x12\xe4\xba\x67\x5e\x52\xb9\x99\xc6\x8c\xe9\x5d\x04\x0c\xdd\x90\x40\x7c\xf7\x61\x58\x86\xa7\xf4\x22\x98\x40\x4d\x9b\xae\xa3\xfd\xbd\xc8\x3b\xf3\x5d\x50\x85\x25\xab\xc1\x2e\xa2\xcf\xc9\x89\xb1\x14\x35\x7e\x6e\x52\x4f\xad\xf0\x7d\x49\xa5\xad\xc2\xad\x0d\x51\xdd\x92\xe5\x0f\x9e\x00\x8b\xb6\xd6\x73\x19\xb6\x6b\xb8\x74\xe0\xe9\x34\x89\xcd\x74\x54\x76\x55\xa9\x45\x99\x81\xdd\x95\x55\x1d\xba\xf3\xbb\xae\x4a\xa4\x53\x1b\xf9\x94\x9d\xb8\x5f\xeb\xab\xa3\xf6\x79\x10\x0d\x56\xaa\xb6\xd8\xbc\xc4\xab\x58\xae\x06\x1e\x22\x3b\xf5\x5e\xeb\x08\x43\x0f\x5f\x07\x66\xdf\xcf\x65\xa5\x45\xfc\xba\xad\x68\x2b\xa2\xd7\x76\x2d\x39\x91\x2b\x70\x70\xb6\x5f\x14\xac\xa2\x7f\xaa\x56\x83\xe7\xa0\x8a\xc5\x60\x28\xad\xe9\xfc\x43\xac\x41\xa1\x0f\xc8\x09\x9f\x55\x9d\x28\x6d\xef\xdc\xea\xf2\xda\x7b\x66\x93\xeb\xfb\x7b\x6f\x7a\xaa\xdb\x94\x1b\xec\x52\xfc\xe1\x37\x1b\xa4\x85\x26\xbf\xf2\x6b\x29\x17\xd1\x58\x10\x27\x72\x35\x7f\x66\x6f\xa1\x89\xd6\x1b\xae\xa2\x57\xc1\x32\x0e\xce\x78\x1c\xef\x2b\xd3\xc8\x64\xa6\xfe\x61\x7f\x96\x44\xd4\x6d\x3c\x58\x04\x4f\xe1\xdf\xf2\x97\x76\x3d\xea\xb9\xc2\x4d\xf3\xac\x31\x8c\xc5\x43\xda\x1e\x15\x5c\x94\x00\x94\xbc\xfa\xf1\xcd\xfb\x84\xc3\xc2\xc5\xc0\xe3\xdd\xad\x19\x63\x5a\xa0\x19\x27\xb6\xbe\x98\xa0\x74\x1c\x6c\x7c\x3a\x9f\x5c\x02\x81\xbb\x71\x1c\x82\x6a\xd6\xf0\x8c\x8f\xe9\xaa\x14\x25\xb3\xb4\xc6\x6e\x13\x40\xfd\x1a\xc0\xb8\x07\x7f\x04\xc8\x7e\x8e\x5b\x2c\x7d\x7b\x25\x5b\x5c\x02\x2a\x22\x7e\x11\x8e\x8a\x20\xb0\xe5\x64\xb7\x2c\x24\x49\xcc\x87\x9c\xef\x4c\x30\xac\xfd\x74\x70\x36\xc1\x56\x79\xa1\xdf\x8a\xba\xbe\x73\x84\xce\xb9\x72\x85\xcf\xf9\x77\x12\x9d\xed\xba\x41\xb1\x87\x04\x94\x1a\xec\x12\x85\x9c\xda\x9c\x9b\x95\x9b\x10\x51\x7f\xbd\x7c\xee\x9e\x40\xe2\x70\x33\xa3\xa1\x14\xf9\xda\xa8\x8a\x8d\xc7\x92\x64\x7d\xef\x07\xb2\xed\xba\xba\x8d\x2e\x1a\xf3\x73\x3d\xc3\x01\xf8\x4a\xb4\x6f\xa8\x04\x17\xfa\xd7\xd1\x66\xaa\x73\x56\x7d\xda\x59\xf9\x4b\x65\x23\x1e\x0d\xe7\xd9\x02\x2a\x7d\x17\x48\xfd\x18\x11\xe5\x8d\xbe\xe8\x3d\xb7\x4f\x7b\x4f\xf3\x1e\x38\xcc\xb5\x61\x3a\xc4\x27\x9b\x05\x08\x1f\x70\x04\x60\x99\x1d\xe7\xf1\x30\x5b\x91\x08\x3a\x7f\x4e\xff\x9d\x77\x1a\x94\x50\x33\x82\x8d\x66\x93\xc0\x5a\x64\x3d\x87\x7d\x4a\xcb\x92\x7d\xdf\x1c\x74\xec\x20\x61\x93\x47\xe1\xe0\x6d\x86\xf9\xc3\xac\x7a\x67\x15\x79\x9a\x96\x1d\x2d\xe5\x8e\xcf\x0f\x6f\x27\x0c\xeb\xa9\xe4\xc6\x9e\x38\x14\x4b\xe8\xbb\x95\x7d\x96\x5a\x81\x26\xee\x23\xb8\x9e\xe3\x51\x1e\xf0\x47\x4d\x27\x6b\x37\xd5\x0f\xcb\x98\x09\x84\x73\x1a\xb1\xde\x19\xf2\x49\x58\x01\xc9\xeb\x84\x1f\x89\x2d\x12\x70\x2b\x61\xd2\xe2\x1b\x09\x9f\xad\xae\x37\x3e\x73\x22\xca\xa4\xcd\xaa\x6a\x2a\x33\x0b\x41\x99\x93\x77\x8f\x8a\x6a\x4f\x96\xf2\x1e\xcc\xc9\x20\x7e\xea\xa1\xb3\xc2\xa1\xfd\x5b\xfc\x32\xd9\xc0\xbd\xc8\x3e\xda\x20\x21\x0f\xfc\x45\xad\x7b\xad\xbd\x9f\x55\xba\x68\x6e\xf2\x3b\x8b\x9e\x8d\x0a\x43\xf2\x7e\xe3\x43\xef\x22\x20\xaf\x8f\x46\x3c\x7c\x73\xc0\x45\x79\xa7\x4a\xd9\xd9\x4a\x44\x27\x7d\x01\xdb\x77\xe3\x51\xdb\xac\x1e\xdd\x0b\x23\xc5\xc7\xfd\xb4\x61\xe4\x7d\xc5\x32\x50\x89\x8d\xff\x37\x0d\x1d\xce\x5f\x83\x01\x3e\x12\x65\x8f\x54\xde\xfe\x53\x18\x89\x5e\xeb\x88\x22\xb5\xfe\x4d\x35\xc5\x71\x80\xdc\xb0\x3e\x0d\xb6\x3c\x51\x5d\x14\xaf\xff\x6f\xea\xda\x82\x6b\x06\xd2\xaf\xaf\xeb\xd4\x44\xf4\xd8\xbf\x69\x84\xdf\x7f\xbc\x4b\x2e\xde\xd4\x08\x21\x08\x83\x34\x7a\x87\xae\x85\xac\xac\x5b\xd6\xe1\x02\x79\x3c\xe1\xf0\x04\x5d\xba\x99\x53\x97\xfa\xa3\x06\x77\x9f\x5c\xcb\xc4\x2f\xe6\xa0\x3a\x17\xab\x3f\x44\x14\x8e\xf4\xfd\xad\x0b\xcc\xec\x9e\x67\x72\x21\xb7\x73\x1b\x61\x94\x05\xe8\x6f\x6d\x08\x5f\xde\x01\x88\xc6\x4b\xf8\x9f\x6e\x2a\xea\x97\xfa\xb7\xf2\x53\x68\xf0\xf6\x96\xe7\xb0\xca\x1e\xbb\xed\x38\xc7\xdf\x6f\xda\xf9\x37\x09\x4b\x25\x78\x5f\x9d\xaa\xf8\x66\x4f\x09\xfb\xbc\xec\xfb\x4e\xbe\xb7\xf4\x8d\x73\x81\x3f\x32\xfa\xc8\xd2\x8d\x7c\x1c\xe9\x83\xf8\xe0\x9d\x96\x23\x3a\xfb\x0d\x02\x9e\x93\x8c\xc5\x09\xd7\xf4\x89\x90\xad\xfc\x25\x4d\x70\x80\x7b\x6d\xad\xe4\x74\xb4\xd4\x49\xe0\x7b\xf9\x29\xc9\xdb\xaa\x6f\x38\xd1\xb6\x9c\xa5\xd7\xfc\x2d\xcf\x29\x23\x05\x2d\x73\xd2\x11\x9e\x2a\x52\x19\xb1\x75\x5b\xa9\x2b\x4d\x5d\x13\xd7\x26\x95\xba\xae\xd8\x13\x19\x49\x4d\x7a\x5c\xd8\x1e\xd9\xee\x48\xaa\xed\x8f\x76\x86\xa7\x34\x6b\xaa\x1a\xa1\x34\x7f\xf3\x0f\x1a\xda\x57\xaa\x5e\xe0\xda\xa3\x17\x46\x11\xb0\x07\x4a\xe7\x5d\x91\xef\x94\xd5\xef\x6b\xdc\xc1\x64\x95\xb3\x8d\x81\x9b\x97\x75\xaf\xe2\x66\xf8\x34\x5d\x1c\x1a\x88\x1d\x74\x11\x4a\x21\xa8\x80\xa5\x5a\x5a\xe0\xc5\x92\x8e\x43\xbd\x58\xdc\x6e\x20\xe6\x52\x43\x0f\xfe\xfd\xdf\x39\x5e\x77\xfe\xd9\xfc\xc7\x7f\x24\x6f\x9f\x3d\x14\xe6\x96\x29\x6e\xc6\x31\xb9\xf6\xe9\x1f\xf9\x1e\x0e\x65\x41\x11\x4a\xfb\x4b\x54\x8a\x2f\x62\xb2\xcb\x25\x5b\x1b\xbc\xb2\xc6\x3d\x24\x79\xfb\xd6\xff\x0e\x00\x00\xff\xff\x42\x5c\x6c\xbe\xe2\xab\x00\x00") +var _confLocaleLocale_nlNlIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\xbd\x6b\x8e\x1b\xc7\x96\x2e\xfa\x5f\x80\xe6\x10\x56\x43\x2d\x1b\xa8\xa2\xda\xf6\xbd\xb8\x0d\xc3\x94\xaf\xa4\xd2\x96\xd4\xd6\xa3\xae\x4a\xb2\x71\xb7\x61\x70\x27\x99\x41\x32\xc5\x64\x26\x77\x3e\x58\x2e\x35\x7a\x06\x67\x00\x67\x0e\x3d\x85\xf3\x6f\xcf\xe4\x8c\xe4\xac\x6f\xad\x15\xaf\xcc\x64\x49\x7b\x37\x0e\x0e\x0c\xab\x98\x11\x2b\xde\x11\x2b\xd6\x3b\xb2\xc3\x61\x91\xdb\x76\x35\x7f\x66\x2b\x63\x6d\x75\xac\xfb\xbc\xd8\x58\xf3\xc9\x96\xeb\x8d\xdd\xd6\x6d\x67\xcd\xf3\xa2\x33\xad\x6d\x8e\xc5\xca\x9a\x0d\xc1\x6e\x1b\x7b\x24\xe8\xa2\x32\xcf\xeb\xbb\x77\xee\xde\xd9\xd6\x7b\x3b\x7f\xd1\x17\xed\xdd\x3b\x79\xd6\x6e\x97\x75\xd6\xe4\xf3\x0b\xf7\xeb\xee\x1d\xfb\xc7\xa1\xac\x1b\x3b\xff\xc5\x36\x3b\x5b\x55\xb6\xa2\x22\xb6\x3c\xcc\x5f\xd0\x3f\x77\xef\xb4\xc5\xa6\x5a\x14\xd5\xfc\x65\x55\xd6\x9b\x0d\x32\x39\xa5\xee\xbb\xf9\xe3\xf5\xde\x96\xb9\x4f\xea\x0f\xf3\xc7\x59\xe5\x92\x1a\xbb\x29\xa8\x77\xcd\xfc\x1d\xff\x68\xac\x6d\xee\xde\xb9\xb6\xcb\xb6\xe8\xec\xfc\x57\xf9\x7b\xf7\xce\xd1\x36\x6d\x51\x57\x68\xbb\x2d\xe8\xfb\x90\x6d\xec\xfc\x32\xdb\x14\x55\x76\xf7\x4e\x67\xf7\x87\x32\x23\xf0\xab\x8f\xd9\xb2\xac\x6b\xaa\xb5\xcc\xaa\x4d\x0f\x98\xf7\x59\x56\xde\xbd\xb3\x6a\x2c\xe5\x2f\x2a\x7b\x3d\x7f\xca\x3f\x67\xb3\xd9\xdd\x3b\x3d\xcd\xc6\xe2\xd0\xd4\xeb\xa2\xb4\x8b\xac\xca\x17\x7b\x0c\xef\xb9\x5d\x36\x7d\xb1\xa3\x86\x38\xcb\x96\x86\x26\x69\xcf\xdd\x42\xf7\x6d\x4e\xa3\x5c\x64\x2d\xc6\xb0\xb1\x18\x85\xc9\xca\x16\xf3\x87\xea\xaa\x6c\x1f\xd7\x50\x65\xd9\x9e\x26\x6e\x9f\x15\xe5\xfc\xd9\x39\xfe\xa0\xeb\x6d\x7b\x5d\xd3\xd4\xfe\x9a\xad\xb6\x5d\x77\x5d\xd7\x98\xdc\xc6\x2e\xba\x9b\x03\x4f\x6e\xb1\x2e\x56\x59\x87\x51\xae\xb2\x43\xb7\xda\x66\xf3\xa7\x8f\x2f\xdf\x3f\x7d\xf1\x18\x8d\x34\xf6\x50\xd3\x94\xd4\xcd\x0d\x4d\x98\xfe\x04\x68\xdd\x6c\xb2\xaa\xf8\x44\xe5\x68\x96\xde\xf2\x47\x2b\x95\xec\x8b\xa6\xa9\x9b\xf9\xd5\xa1\xb0\x1b\x4b\xed\xd3\x24\x2c\x50\xcb\xfc\x4d\x61\xfb\x6b\x6b\x9a\xb8\x1a\x64\xee\x8b\x4d\x83\xd9\xd4\x7c\xf9\x74\x99\xeb\xba\xd9\xb9\x9c\x23\xfd\x36\xbe\x17\x37\x02\x40\x1d\x71\xf9\x75\xd2\x8d\xac\xa2\xf5\xe0\xec\x27\x76\x4b\xd3\x19\x67\xd3\xfc\x65\xf9\x9e\xe6\xf5\x90\x55\xb6\x9c\x3f\xc6\x6f\xfc\x44\x7f\xb3\xd5\xaa\xee\xab\x6e\xd1\xda\xae\x2b\xaa\x0d\x4d\xbc\x24\x14\x15\x6d\x9b\xb2\xa4\x24\xde\x59\x2e\xf7\x65\x92\x7c\x53\xf7\x7e\x89\xe7\x1f\xae\x8d\x2e\xa9\x66\xf8\x42\x94\x93\x56\xc7\x63\x69\x17\x6b\x6b\x73\x19\x4d\x8b\x9f\xb4\x78\x7d\x59\xd2\xec\xfd\xb5\xb7\x6d\xd7\xce\x2f\xe9\xeb\x3c\xcb\xaa\x63\x93\x71\xa9\xa2\x6d\x29\x63\xfe\xf3\x35\xe5\xf2\xa0\xb0\x84\xd5\x0a\x23\xaa\xaa\xbe\xe4\x3d\x74\xf7\xce\x6f\xad\xcd\x9a\xd5\xf6\x77\x74\x1a\x3f\xe6\x7f\xae\x2d\x1d\x28\xde\x92\xd1\xf2\xbe\x3d\xb4\x65\xb6\xa1\x8d\x9d\x75\xad\x6c\xae\xb0\xb1\xb4\xa9\xf9\x65\x53\x2f\xa9\x5a\xda\x63\xab\x3a\xb7\xf3\xa7\xf4\x0f\xb7\x80\xc1\x64\x65\x49\x4d\xe8\x2f\x9e\x16\xfa\x2b\x6b\xd1\x15\x1d\x4d\x47\x94\x44\x3f\x0e\x07\xda\xe6\x47\xda\x8c\x26\xb7\x84\x41\x1a\x60\x8c\x1d\x2f\xd3\x81\x72\x9b\x0e\xe3\xcb\xeb\x15\x35\xbe\xc0\xa9\xa7\xde\xbc\x5c\x1b\x9a\xc5\x07\x0d\x6d\xa1\xbe\xaa\x68\xe2\x08\x8f\x6c\x5a\x4c\x64\x41\x55\x5c\x30\xec\x99\x39\x94\x36\x6b\xb1\xcb\xb2\xdc\xfc\x98\x19\xaa\x6a\x63\xbb\xf9\xbd\xc5\x92\x8e\xe8\xee\x9e\x21\x24\xb4\x9e\xdf\xbb\xdf\xde\x7b\xf4\xbc\xa7\x62\x34\xff\xb6\xfd\xf1\x61\xf6\xc8\xac\x32\xca\xa1\xf9\xbd\x31\x4b\x4b\x9b\xce\xa2\x2d\x43\x87\x81\xd6\xc7\x64\xd5\x4d\xb7\x45\x83\x84\xbb\xe8\x47\x6b\x80\x0e\xbe\xc2\xec\xfd\xb5\x27\x74\xb1\xc8\x97\x82\x0c\xb9\x3f\x9c\xd8\xd8\xd6\xbc\xbe\xb9\xfa\xff\x5e\x9d\x99\x4b\x42\x86\x9b\xc6\xf2\x6f\xfa\x87\xe0\xbf\xa7\xad\x68\xde\x17\x17\x4f\x68\x01\xa8\xa8\xcc\xce\x45\xd6\x65\x4b\xf4\x3c\xdd\x18\xc8\xc7\x39\x75\xd9\xe7\xf8\x02\xee\x6c\xbb\xf9\x0b\xfa\x67\xb8\x52\x8a\x02\xd2\x43\xaf\x67\x9e\xea\x62\x7c\xe1\x9b\x12\x58\x4a\xd6\x19\xd6\x5a\xcc\xcb\xaa\xaa\x2f\x9e\x10\x1e\x22\x7c\x47\x07\xd2\x76\xa6\xef\xd6\xff\xba\xa0\x0e\xd9\x26\x2b\x17\xab\xc2\xec\xb2\x26\xdb\x11\x16\xa5\x1d\x2d\x8b\xc8\x83\xa5\xf1\xb4\x6d\x49\x68\x8d\xf6\xc6\xd5\xd5\xab\x73\xfa\xd1\xb7\xe8\x4c\xb7\x25\xe4\x49\x3d\x68\xff\x5a\x62\xbe\xb4\xb9\xf7\x5b\x6b\x70\x50\x0c\x00\x4c\xbd\x1e\x4e\x8f\xc9\xb5\xa3\x54\xaf\x6d\x9a\x05\xa1\xdd\xee\x06\x93\xcd\x15\x9e\x02\x96\xda\xe8\x1c\x54\x75\x47\x6b\x69\xb8\x94\xd6\x50\x54\xc7\xac\x2c\x72\x9a\x72\x37\x17\x69\x51\x24\x99\xbc\xa6\xc5\x43\x61\xda\xac\xf5\x35\xf6\x40\x93\xad\x30\x56\x73\x6f\x76\x8f\xf6\x42\x6e\xee\x9d\xdf\xa3\x0a\xab\x7a\x21\x48\x04\xa8\x3c\x27\xc4\x42\x47\x63\x21\xd7\x4b\x23\x78\xf1\xff\xc7\x16\x92\x8e\x68\xbe\x89\xf3\xcd\x75\xd1\x6d\xe9\xc2\x32\x7c\x5d\x60\x7f\x65\x95\xe1\x2a\x8d\x22\xa1\x64\xe0\x0e\x63\xe9\xca\x32\xd2\x32\xee\x73\x62\xc0\x77\xef\xb8\x05\x93\x1d\xf6\xbe\xb6\x80\xe6\x76\x4a\x5c\x25\xd5\x70\xb3\xe1\x56\xe7\x59\x79\x7c\x38\x94\x72\x29\xc8\x16\x71\x19\x6e\xe5\x2e\x19\x4b\x98\x6d\x41\xe7\xf5\x63\x82\x78\x01\x8f\x63\xb2\x69\x6a\x3a\xd0\x25\x21\x3c\x9a\xb8\xaf\x04\xd1\xc8\xba\x45\xd7\x48\x6b\x68\xd6\xe9\x38\xe5\x74\x5e\x56\x7a\x23\x78\x40\xd7\xd6\xe3\x92\xa7\x6d\x5f\x2b\x49\xd1\xc4\xe5\x31\x74\xa1\x29\x72\xfb\xc9\x46\x15\x11\x1a\x21\x9a\xa3\x14\x3c\x49\xf8\x62\xc1\xc7\xe4\x43\xd1\x1d\x6b\xdb\xd8\x2a\x07\x49\x92\x1e\x19\x07\xe4\xda\xbd\x40\x85\x1e\xc8\xec\x6b\xda\xea\x5d\x6d\x69\xa4\x1b\xb3\xb5\xcb\x25\x35\xdb\x61\x61\x09\x28\xed\x55\xdc\x0b\x5c\xe5\x28\xc8\x98\x61\xd7\x83\x8a\x31\x11\x7a\xa3\x1b\xba\x9a\x5f\x10\x1d\x54\xf8\x4f\xdf\x3c\x55\x4a\xd7\xd6\xba\xa3\xc1\x1d\xcb\xda\xe6\x34\x22\x34\x76\x75\xf5\xc2\xec\x40\x74\x98\x0f\xef\x5e\xb5\x38\x70\xdb\xc5\xa1\x6e\x3a\x3a\x70\x2f\xce\x0f\x74\x14\xbb\x90\xe6\xea\x7a\xd3\xef\xf7\x34\x84\x63\x86\x69\x32\x0c\x44\x9d\xb4\xa6\xbf\x46\x75\xe7\x20\xd2\x28\x5b\xc7\xda\x9d\x19\xac\x2e\x01\x74\xb4\x7e\x76\x63\xea\xbd\x6b\x77\xdd\x57\xab\x0e\xe5\x28\x8b\x56\x83\x48\xba\x6c\x67\x4b\xba\x4a\x08\x21\x75\xdd\x41\xfa\xf1\xe2\xfd\xfb\x4b\xd7\x11\x9f\xea\x37\x0e\xd2\x2b\xe9\xce\x75\x96\x35\x34\xc4\x0e\x97\x24\x5d\xf9\xfb\x7d\x06\x84\xd4\x98\xb2\x67\x02\x0d\x9b\x1f\xfb\xae\x6f\xca\x68\x3f\x62\xd4\x3e\xfd\x73\x73\x85\xae\x3c\xc4\x3f\x57\x3a\x65\x54\xa6\xc5\x9a\x50\x1e\xff\xc4\x24\xf0\xde\x31\x4c\x33\xb9\xed\xe4\x66\x02\x67\xa8\x3e\xe0\xa8\xfa\x43\xf4\x96\x3f\x69\xd0\x83\xa3\xc3\xe5\x15\x46\x28\x2f\x4f\xfb\x0e\x08\x87\x3d\x4d\x09\xa3\xef\xab\xd7\xef\x2f\xcd\x96\x71\x38\x27\xae\x9b\x7a\x4f\xb4\xeb\x27\xec\xce\x26\x4a\x73\xa3\x7c\xc6\xb5\x66\x0a\x70\x66\xde\xfd\xe9\xa9\xf9\xbf\xbf\xff\xee\xbb\x99\xc1\xf8\x77\x19\xfa\x7d\x8d\x51\x5a\xd0\xe4\x02\x9c\xe3\x22\xfa\x54\x7c\xac\x80\x5e\x31\xd7\xf7\xde\xd0\x66\xbf\xf7\x23\x67\xff\xbf\xf6\x8f\x8c\x28\x59\x3b\x5b\xd5\xfb\x47\x86\x2e\xbd\x3d\xad\xfb\x0c\xa4\x13\x21\xe5\x46\x4e\x8c\xeb\x8f\xb1\x32\xa8\x87\xa3\x73\xa3\xd0\x93\x37\x8e\x23\xb6\x17\xab\xba\x5a\x17\x0d\x0d\x8f\xf6\xcf\x11\xb7\x7c\xc0\x83\x3a\xf7\xad\xd4\xb4\x20\x24\x56\xac\x6f\x02\xa0\xb4\xcb\xa9\xb2\x03\xb0\xe7\x79\xc3\x2e\x74\x82\x75\xd6\xaf\x64\x17\xd3\xd8\x33\x74\x98\x76\xac\x64\xb7\xe7\xe9\x02\xd4\xeb\x35\x6e\x7d\xb9\xa5\xde\xae\xd7\xa6\xe4\x4b\x0e\x57\x15\x96\xca\xed\xe9\x14\x90\x36\xf1\x81\xf8\x88\x2b\xc9\x35\x4f\x2f\xde\xf0\x21\x00\x02\x6e\xa8\x24\x4e\x05\xd7\x70\x86\x4b\xc3\x12\x16\xa6\x43\x5e\x61\x2b\xe9\x8e\x2a\xeb\x1d\x31\x06\x26\x03\x39\xb1\xa4\xfa\x70\x64\xdc\x95\x41\x7b\xff\x48\x17\x10\x5d\xbf\xfa\xc3\xf5\x1c\x4d\x44\xfd\x19\xc2\x0f\xfa\xe4\x4b\x87\x19\x58\x36\x35\x63\x1c\xaa\x47\x3b\x26\x20\x1e\x6f\xe6\xb8\xba\xc3\x82\xd2\xcf\xbf\xfd\x0f\x62\xba\x88\x74\xa2\xed\xc2\xdb\x86\xc7\x41\xa7\x32\x8f\x3a\x9c\xdc\x71\xae\x79\x70\x7e\xf1\xa2\x52\x9b\xd3\x25\x06\xdd\x9e\x28\x27\x7d\xb5\x7a\x17\x7a\xbc\xa9\x77\x62\x6b\xf6\xd9\x8e\x27\x90\x2e\x1b\x54\xee\xb8\x96\x67\xfc\x69\x9e\xca\xe7\x30\x5b\x9b\x7d\x27\xd4\x99\x61\x3a\x80\xb8\x0e\xa3\xd9\xd8\xfe\x06\x3b\x9e\x8e\x6d\xb9\x3e\x8f\x3b\x3c\x53\x42\x8f\x58\x26\x65\x3a\x17\xc7\x82\x38\x3b\x37\x02\xda\x75\x16\xbb\x1c\xab\x0b\xfe\x0c\x17\x2c\xe1\xcc\x03\x73\x8b\x0f\x5a\x60\xca\x4f\x05\x5f\x52\xd3\x15\x69\xcf\x1e\xcb\x98\xb1\x4b\x89\xa3\x4d\x2e\x28\x37\x03\xbe\xca\xa5\xdd\x15\x1f\x69\x12\xce\xe8\xd7\x27\x50\xf3\x01\x46\xa7\x8e\xca\x53\x2d\x45\xf5\x30\x9e\x5b\x5f\x1e\xfd\x99\x39\x1e\x48\xb9\x12\x21\x61\x3f\x10\x46\x02\x22\xad\x0a\x42\x16\x44\xf9\x59\xe1\xef\x65\x29\x7c\x45\xba\x14\x18\x1a\x2f\xc6\x99\xc9\x93\xbb\x92\xca\xbe\xbc\x98\x7f\x6b\x76\x4d\xf1\x71\x43\x84\x54\xdf\xd1\xdd\xd6\x15\xb4\x99\xd3\x8a\xe8\x9e\xdc\x76\x51\x57\x02\xa3\xe0\xce\x2b\x0d\x10\xcc\x1b\x6d\xe7\x56\x1b\x75\xb0\x93\xac\xef\x80\x46\x8a\x71\x91\xa2\xa0\x90\x29\xac\xaf\xe5\x9b\x28\x80\x49\x0d\x31\x0b\xcd\x48\xd4\x73\x36\x8b\x4d\xad\x5c\x1f\xcf\x74\xc3\x57\x3b\x64\x02\x6d\xb7\x20\x42\x60\xb1\x06\x3a\xcc\xe7\xcf\xf9\x8a\x6c\x75\x22\x69\x49\xfb\x5d\xf7\x83\x79\x40\x10\x0f\x0c\xa1\x5b\xe2\x4e\xf3\xda\xdc\x3f\x3a\x92\xf8\x7b\xe0\xbd\x05\x9d\x4e\x6a\x6e\x29\xac\x23\x8b\x20\xe8\x0c\x17\x36\x47\x05\x34\x15\x35\x4e\x35\x4d\x4d\xcf\xcc\x0f\x93\xdd\x4a\x04\xd3\xfc\xd7\xd7\x15\x1f\x5c\x5a\x08\x42\x5c\xc5\xaa\xf8\xdb\x7f\x02\x11\xd1\x7a\xf3\x76\x97\xca\x40\x01\xdc\x27\x24\xc5\x9d\xc2\x92\xd5\xcb\xbe\x28\x73\xcd\x9e\x61\x90\x42\x20\x13\x79\xac\xdb\x02\x5d\xc9\xa7\x78\x13\xc1\x0f\x5c\xd3\xaa\x6e\x40\xf1\xfc\xc0\x03\x72\x55\x4c\x52\x7c\x4a\xf0\x1d\xa8\xa3\xf4\x67\x5c\xd8\x13\x61\x98\x0e\xda\x32\xc4\xad\x5e\x30\x4e\x18\x93\x6d\xbe\x02\x4a\xdc\x12\x2f\x57\x6c\x42\x1e\x55\xd6\x9a\xf3\x47\xf4\x2f\x4d\x70\x76\xb4\x72\xff\x6c\xdc\xe2\xfc\x2c\x84\x90\x24\xf6\xb2\xa5\xb9\xaa\x1a\x3c\x70\x56\xa5\x03\x49\x4e\x09\xa6\x83\x13\xce\x4f\xcc\xc5\x06\x18\x60\xe3\x6a\x90\x2d\xd3\xf6\x2b\xba\x87\xda\xf9\xaf\xb6\xdc\xd5\xfb\xaf\xcc\xaf\xc5\x47\x29\x71\xa4\xcd\xdd\x6f\x72\x4c\xb0\xe9\x65\x45\x99\x52\x14\x62\x66\x63\x77\xf5\x27\x1c\x2e\xba\x08\x4b\x30\xb6\x9f\x0a\xb9\xe0\x40\x77\xe2\x08\x33\xc7\xff\x1b\xe4\x68\xc4\x79\xf7\x42\xa0\xd7\x65\x3e\xe2\x07\x81\xcd\xed\x40\x1c\xe4\x20\xe3\x23\xd2\x12\x43\xb2\xda\x2e\xbc\x34\x0e\xd3\xd6\xd9\x3f\xba\xf9\xaf\xc4\xfe\x03\xd3\x11\x98\xe0\x10\xcd\xa0\x3b\xfb\x86\x17\xba\x9d\xbf\xc6\x78\x62\xda\x1c\x27\x8e\xb8\xfd\x65\x8d\xf9\x3d\x5a\x05\x7b\x6e\x73\x0b\x49\xdc\x00\x94\xaa\x21\x26\x42\x6b\x49\x05\x35\x94\x25\x22\x25\xcd\xd5\x8f\xbb\x77\x18\x77\xb2\x10\xf1\x09\xa3\x43\x5e\x6d\x27\x14\x99\xd1\x92\xb1\xcc\x45\x9a\x7d\x59\x81\xd8\x4d\xdb\xa4\xa9\x53\x11\xe3\xef\x2a\x08\x49\x78\x13\x06\x20\xcc\x05\xc1\x49\x90\xe7\x2d\x14\x0b\xcd\x5f\x67\xd9\x0e\x2b\x4e\xd5\x3a\x6c\x48\x3b\x27\x22\x79\xb6\xf6\x00\xba\x68\xdf\x6e\xe6\x2f\x78\x39\x7b\xc2\xcd\x82\x4b\x05\xfe\x27\xf3\x1a\xd2\xbc\xde\x54\x3d\x8a\x12\x93\xd4\xd6\xab\x22\x2b\x17\x7f\x4f\x15\x3f\xd7\x87\x03\xad\x4c\xd5\x7f\x35\xbc\x6d\x45\xd6\x48\xbc\xe0\xfc\x8a\x4e\xd8\xcd\x59\x42\x72\xd1\xd9\xa1\x43\xc5\x52\x59\xdc\x61\xf9\xcc\xbc\xb1\x76\x8f\x13\xd1\x11\xaf\x0b\xf2\x79\x2f\x27\xcb\xa3\x5f\xe5\x1e\x88\x27\x82\x84\x74\x44\x0d\xa0\x9b\x40\x99\xda\xd6\xd2\x1e\x21\x93\xda\x30\xa2\xca\xaa\xa4\xed\x43\xa0\x26\x47\xdd\xc0\xfc\xed\xed\x7e\x89\xea\x88\x3a\xab\xc0\x1f\xe7\xb4\xe4\x1f\xef\xde\xa1\x0b\x7a\x43\x48\x61\x02\xb7\x03\x7d\x6d\x2c\xb3\x54\x00\xb2\xb7\x03\xfd\xe4\xc5\xc2\x84\x64\xae\x59\x80\xed\x16\xb0\xaa\xe9\xe8\x0e\x96\x65\xe6\x6f\x0e\xa1\x5e\x98\x48\x6d\x6d\xd5\xb9\xd9\x7d\xc6\x97\x94\x1f\x6e\x6b\xdd\xc8\x68\x58\x5d\xdf\x53\xcb\xcc\xd5\xfc\xb8\x7c\x74\xbf\xfd\xf1\xe1\xf2\xd1\x99\x79\xa2\xd0\x86\x1b\x38\x36\x59\xb6\x01\xa2\xc6\xed\x7d\x9f\x1a\x6e\x80\xea\xf7\xb2\x5f\xc3\xac\x75\x90\x7f\x96\x5d\x5d\xcb\xd5\xed\x08\x88\xae\xf6\x3b\xf2\x8a\x92\x58\x42\x55\x43\x76\xd5\x98\x70\x5f\x32\x2d\x2d\xc7\xc1\x01\x7b\xfa\x3a\xec\x5f\xcc\x3d\x0f\xac\x2c\xf6\x45\x37\xd8\x3c\xbd\xe2\x24\xb0\x7d\x15\x36\x5c\x66\x08\x99\x61\x60\xbc\x1d\xdd\x30\x36\x96\x88\x45\x95\xeb\xc9\x3e\xa5\x66\xb8\xff\x98\x95\x99\xe1\xf5\x30\x39\x6e\x02\xc2\xa1\x7d\xe7\x64\x80\xd4\x0b\x1a\xdd\x86\x31\xbc\xab\x0c\x5c\x65\xd6\x2e\x88\xe7\x94\xf9\xb7\xb9\x6c\xb1\x27\x16\xc4\x16\xae\x31\xd7\x29\xb9\x1c\xdd\x22\xe4\xba\xbb\x84\xf9\xf9\xda\x4f\xfc\x37\x33\xf3\x98\x78\x3e\x5a\xd8\x7a\x23\x17\x6a\xbc\x4b\xa5\x26\xda\xff\x47\xd0\xe8\x84\x74\x09\x67\xf6\x5c\x73\x25\xd2\x65\x3f\xc6\xeb\xa2\xec\x20\x24\x22\x98\x5d\x59\xec\x08\x79\x57\xca\x6f\xea\x05\x9d\x81\xfc\x36\xbb\xaa\x3e\xcc\x74\x4e\xb5\xe7\x3f\x03\x9c\x85\x26\xb2\xbe\xe9\xec\x70\xbf\xd0\x20\x8b\x41\x3b\xbe\xb4\x99\xf9\xf2\xec\x25\xd3\x08\x2d\x63\x89\xce\x32\xd7\x1b\x8f\xd4\xdd\x87\xb8\x36\x80\x14\x72\x74\x39\xc6\x16\xd8\x36\xe8\x0b\xba\xd4\x4d\xf7\x28\x50\x42\x86\xa1\xa4\x63\x5f\x53\xcf\x88\x37\x2c\xdb\x6f\xb4\x5b\xb4\xb1\x1b\x51\xa6\xb4\xf1\x69\x7b\xc7\x45\x92\x6a\xc2\x35\xca\x12\x63\xb7\x9b\xae\x93\x23\x83\x2c\x74\x9f\x6a\x2e\x6b\xc8\x85\x69\xee\x95\x00\x65\xb9\x04\x6e\xd4\xd9\xb0\x35\xc7\x16\xdf\x32\x84\xfa\x20\x08\x1a\x87\x82\xf6\x2d\xae\x6b\x3e\x3c\xbe\x0a\x3a\x4e\x8b\x76\x0b\xa9\xc5\x05\x84\x55\xd5\xa6\x13\x1a\x29\xad\x86\x25\x38\xa0\x5a\x31\x07\xc4\xb0\xb4\x41\xfc\xc9\xd7\x38\xcb\xda\x7e\xc3\x4c\xfd\xae\x87\x0d\x97\x85\x3b\x69\x97\x22\x90\x76\xe9\x53\x67\x13\xe0\x42\x71\x32\x4d\x7a\x23\x30\x8a\x23\xb3\x1c\xab\xdb\x9e\x98\x6c\x86\x74\x69\xd1\xed\xe3\x48\x8e\x77\x9a\x60\x34\xe1\xcc\x10\x11\x42\x04\xa8\xc8\xed\x89\x67\xcd\xd0\xe9\x1b\xdb\xce\xff\x2d\x83\x48\x73\x4e\xf7\x00\xdd\xb9\x84\x08\xc1\x84\x67\x15\xaa\x16\x05\xc5\x6f\x10\x10\x10\xec\x07\x22\xcf\xde\x4c\xd1\xde\xb8\x3c\x39\x23\xa6\xf7\x24\x8b\x45\x17\x73\x1b\x93\xd3\x97\x53\x34\xfa\x3b\x1b\x29\xa5\x86\x94\xf9\xd5\xd5\x8b\xf7\xc2\xe9\x5f\xbd\x30\x6d\x69\x09\x7b\x94\x5a\xff\x8b\xae\x3b\xb4\x1f\x9a\x92\x85\x4f\x57\xe7\x2c\x23\xba\xcc\x6e\x40\x10\x23\xf5\x0d\xd1\x6e\x35\x35\x8c\x73\xce\x79\xef\x6d\xb6\xe7\xae\xe2\x87\xd6\xf1\x98\xae\x7a\x4e\xa3\x1f\xd4\xf5\x36\x48\x3f\x59\xd2\xfa\x2c\xe2\x08\xc2\xad\x28\x2a\x32\xe1\xe9\x2c\xeb\xbd\x20\x87\xe1\xbd\xcb\xb2\x33\xdd\x1e\x59\x79\x20\x0e\x14\x74\x95\x42\xf1\x96\xc2\xd1\xe4\xb3\x41\xbb\xa3\x5c\x67\x55\xbf\xa7\x71\xdb\x1d\x76\x3f\x40\xbf\x3e\x5f\x7c\xe3\x77\xda\x44\x4d\x39\x61\x83\xcf\xd7\x76\x16\xea\xa2\x7a\xbf\x9e\x7d\x63\x0e\xb8\xea\x86\xf5\xb6\xc5\x27\x1b\xd7\xc6\xf2\x5b\xc9\x65\x04\x07\xda\x8a\xc9\xe0\x01\x9c\x3f\x16\xf7\xe3\x53\x41\x87\x3b\xeb\x84\xb1\xdb\x67\x7f\x24\x85\x08\x81\x52\xd2\xed\x65\x04\xdb\x49\x01\x87\xd5\xa2\xe1\xf9\x83\x41\x1b\x09\x6a\xd5\xe6\x16\x58\x5a\x6e\x80\x54\x84\x8d\xaf\x2b\x05\x7b\x4b\x57\xc5\x8e\xaf\x9a\x75\xdd\x77\x3f\x78\xbd\x27\xdd\xa7\xca\x8c\xcc\x55\x88\x60\x88\x5c\x57\x16\xae\x06\x9b\x9f\x62\x8f\xc0\xa3\x44\x64\x06\x9a\x0e\x3a\xd5\x18\x8d\x50\x5d\xb6\x1a\x56\x16\xd4\xb8\x8b\x25\xa5\x2c\x3a\xb0\xd3\x43\xf2\x9d\xc6\x45\xb3\x55\x78\xc1\xa4\x2a\xee\x16\xc3\x62\xc3\x83\x37\x55\x90\x08\xa4\x51\xb9\x48\x7f\x7b\xb2\x5c\x47\x27\x65\x54\xd0\x1f\x9f\xa9\x12\xb2\x8a\x0c\x4d\x63\xcc\xe7\x83\xbb\x6a\x08\x5e\x10\x72\xde\x40\xce\xea\x1a\x8a\x6a\xe7\xbd\x61\x14\xc2\x86\x4d\x33\x8b\xa6\xcf\x2f\x4b\x58\xc5\x31\x17\x14\x2d\xc7\x80\xff\x64\x79\x12\xd5\xd9\xb0\xc2\x3d\x62\x61\xb9\x2b\x1f\x12\x4a\xe3\x23\x4b\xa8\x13\x99\xbf\xea\x3d\x36\x16\x8c\x6a\x3e\x55\x19\xed\x3f\xf0\xb5\x27\x6b\xb3\xc5\xc6\x32\xa5\x78\x6b\x2d\x1e\xfd\x4f\xd6\x11\x0f\x2f\xaa\xc5\x73\xd4\xf6\x0f\x02\xa3\x69\xd9\xb0\x25\x46\x60\xa5\x59\x5e\x99\xc9\x4e\x9f\xc1\x9a\xa1\xed\xc0\x8f\x49\x9f\x71\x37\x06\x50\xd6\x1b\x40\xea\x49\x0b\xdb\x74\x4a\x0f\x5c\x17\x1f\x21\x70\xac\x30\xa9\x90\x32\xdb\x0a\xc6\x20\xd4\x5f\xf3\xb5\x1b\xd6\x37\xc2\x40\xb0\x58\x24\xdb\xcf\xcc\x07\xa3\x58\xab\x11\x21\x09\x48\xac\x41\x01\x22\x5f\xc2\x9d\x1d\x08\x09\x68\x37\x76\xf6\xc6\xd1\x12\xd7\x36\xe2\xbe\x0b\x96\x58\xd2\x48\x84\x16\x60\xed\x86\xde\x14\xd2\x53\x3a\x98\x7f\xfb\x4f\xea\xe9\x0f\x8c\xd1\x7a\x11\x11\x72\xfa\x8d\xaf\x58\x94\x35\x99\x17\x6e\x54\x5d\x53\x97\x3c\x3c\xd0\x84\x49\xad\x67\x84\xcc\x68\xc9\x68\xfc\x66\xc3\xd4\x56\xc3\xe4\x03\x8d\x12\x2c\x3d\x33\x01\x20\x5e\xce\xcc\x27\x9a\x4e\xe4\xb2\xc2\x1b\xdc\x3e\xe4\x9e\xc0\xe7\x74\xeb\x38\xb1\x44\x64\x8b\x41\x78\xb5\x15\x91\x11\xe4\x08\x84\x9e\x3b\xda\xfc\x58\x0e\x31\xa5\xf8\x10\x98\x4e\xd9\x05\x8e\x74\xe4\xc9\xcb\x69\xf0\x44\x90\xe2\x3b\xda\xa2\x7e\xca\x99\x89\x93\x79\x8f\x97\x8e\xc6\x06\xb4\x94\xb3\x6d\xc1\xcc\x35\x09\x0a\x1c\x36\x14\x51\x8b\x68\x8b\xd6\xc5\xe6\x2d\x16\x0c\x3a\x03\xb0\x6f\x07\x5e\xdf\x88\x75\x17\xf2\x7c\xd9\xa9\x52\xa7\xa8\x76\xad\x28\x21\xaa\x71\xe3\x8a\x97\x06\xa3\xbc\x48\x34\x8b\xf1\x48\x75\x94\x96\x09\xef\x98\xab\xff\x7b\x07\x19\xcf\x2c\xeb\x3b\x58\xeb\x87\x45\xa1\x93\xe7\x96\xc2\x12\x17\x4a\x97\x05\x8e\x5d\xa7\xcc\x83\xe8\x87\x44\x7e\xde\xd6\xfb\x3d\xb6\x7b\x90\xd7\xfa\x5e\x24\x83\x15\xd3\x0a\xe9\x44\x3a\x76\xc2\xae\x6c\xa6\xb0\x58\x36\x59\xb5\xda\x46\x47\xf5\xa2\xa6\x9d\x2b\xa9\xc9\x21\x65\x82\x0c\x1d\x86\x70\x82\x8d\x14\x16\xaa\x44\xa0\x4d\xc4\xd2\x7f\xe6\x2f\x44\x21\x40\x73\xe4\x94\x03\x50\xf5\xf8\x12\xab\xbe\xed\xea\xbd\x2b\xf8\x6b\xf1\xf1\x13\x78\x52\x5f\x4c\x14\x63\xa9\xf2\xe4\x63\x4d\x34\x40\x5d\x45\xc6\x48\xf5\x21\xb2\x22\xa1\x15\x98\xa7\x42\x16\xa6\x6f\x8b\x0e\xe6\x25\xb6\x5a\x66\x8d\x12\xc2\x45\x67\xa1\x1f\x58\xd7\x50\xb1\xd3\x04\xcd\x7f\x01\xf7\x07\xa9\x0e\xb4\xa3\x84\xf0\xe6\x57\x8c\xf8\x2a\x07\x03\xd1\x1b\x60\x78\xe4\xa0\x44\x67\x8c\xf4\x41\x13\x37\x47\x02\xbf\x18\x2a\x74\xcd\x83\xfb\xed\x03\x39\x81\x0a\x24\xb8\x30\x94\x3d\x80\xdc\x68\x2a\xe1\xaa\xb8\x1f\xf9\xfc\x05\xf3\x4f\x49\x3d\x04\xd6\x40\xab\xe6\xea\x63\xa4\x00\x45\x30\x2f\x87\x12\xff\xce\xb2\x87\x96\xc3\x59\xff\x5c\x3a\xd3\x9f\x49\x69\xb4\xe2\x9a\x76\x1e\x21\x93\xd6\x49\x80\x08\xb5\xe1\x0f\xdd\x2a\xb6\xa3\xd9\xd9\x9d\x3b\xd5\x07\x6b\x3e\x45\x13\x5a\x57\x6d\xa4\xd1\x67\x7d\x15\x04\x68\x6f\x13\xd9\x59\x6e\x4b\xdb\x31\x3d\x2d\xbb\x2d\xf0\x1d\x7d\x91\xcf\xe9\x7f\x74\xfe\xd0\x2f\xa9\x4a\x6f\xb5\x24\x0b\x45\xeb\xef\x6d\x97\x9c\xc9\x9a\x28\x08\xae\x87\x4c\x67\xed\x0a\x40\x0e\x4a\xb7\xba\x3f\x1d\xaa\x64\x62\x9c\x27\xda\x27\xc5\x20\x58\x12\x18\xd0\x81\x84\xa6\x6d\xdd\x14\x34\x2f\x74\x25\x89\x28\x95\xf9\x72\x8c\xba\x80\xf9\x09\x52\x70\xe5\x1c\x8b\x0c\xbb\x51\x0d\xf5\x82\xa2\x36\x97\x25\x80\xe5\x8e\xdc\xad\xb4\x49\x08\x97\xe2\x3c\x0a\xf1\x3e\x32\xed\x2b\x6b\x99\xbe\xf9\xab\x5a\xcd\xde\xfa\x03\x34\x41\x8b\x64\xe1\x58\x76\xfe\xf1\x9a\x4d\x0f\x87\x10\x9e\xb9\x0a\x06\x5e\x98\x07\x49\x3d\xd6\x25\x4a\x6e\x78\x08\xb8\x4c\xf5\xb0\x79\x6b\xbd\x0f\xfa\x03\x38\x80\x4f\x6a\x3e\x82\x71\xb2\x97\xf7\xb0\x35\x52\x1b\xa4\x6b\x42\x53\x26\x5b\xaf\x89\x54\x31\x84\x9d\xe8\xaa\xbf\x31\xdb\xfa\x5a\x11\xab\xcc\xe7\x50\xf4\x23\xb2\x2b\xda\x98\xbd\x25\x4c\x02\x5c\x0a\x09\x65\x62\x22\xd6\x08\x73\xe7\x74\x65\x09\x46\xe0\x43\x4e\x1b\xac\xb3\x01\x25\x44\xfa\xc8\xa9\x32\xde\x68\x43\xe0\x55\xa8\xbe\xa5\xbd\x5c\xf1\xfd\xe0\xf0\x10\x86\x5c\xd7\xad\x8a\x54\xa5\xb9\x9f\x61\xd0\x11\x0b\x5c\x14\x52\x27\xdf\x75\xca\xf7\x44\xd1\x52\xba\x4e\x60\xf9\x88\x5c\xd2\xde\xf0\xd1\x5e\x10\xb3\xb1\x01\xbb\xea\x74\x9b\xaa\x9d\x15\xe4\x00\xf1\xc8\x7a\x69\x45\x6f\x27\x56\x3d\xe9\x88\x82\x52\xe6\xb9\x8a\xba\x06\x93\xb2\x84\xf8\xb2\xd8\xe1\x08\x9c\x05\xb2\xc1\x5b\xa6\x24\xd2\xcd\x64\x2c\x7e\x1f\x25\x0a\x2f\x39\x2e\x52\xf5\x89\x2d\xe5\x37\x4c\xac\xcb\x12\xac\x1f\x33\xcc\x75\x19\xd1\x8b\x2f\x58\x45\x62\x13\x00\x4c\xbe\x07\x60\xb3\xc3\x24\xbb\x61\x6e\x7c\x91\x40\x09\x87\x6e\xde\xd8\x6b\x73\xe9\xa5\x0e\x13\xa4\xb7\x34\x77\x3b\xbd\x3d\x18\x44\x50\x93\x24\x85\xc2\x1c\xd0\x04\xf0\x1d\x95\xe3\x7e\xdd\x31\x29\xd2\x8b\x75\xda\xb5\xdb\x33\x09\x01\x2c\x86\xc1\x3c\x5f\x62\x62\x10\x2b\xf4\x58\xaa\xa1\x46\xa2\x93\xb9\xcc\xe4\x37\x41\xf8\xe6\xb0\xdf\xa1\xa1\xfd\x04\x9d\x5a\x8c\x06\x81\xf7\x06\xc6\x23\xb2\x90\xaa\x10\x16\xbc\xa6\x6a\xf9\x44\x05\x7a\xa4\x53\xab\xfa\x6c\xae\xb9\xb9\x21\x04\xc4\x2d\xf8\x04\x95\x0d\xbd\x74\xd4\x30\x0c\x80\x5d\x37\x1c\x8e\x0f\xf2\x23\xc1\xf4\xa1\xd7\x94\x0b\x6c\xa7\x92\x8b\x0b\xfd\x1e\xe6\xcb\xf0\x38\xd7\x8a\x8d\x63\x2a\x7e\x12\xfc\x03\x33\xac\xa3\x55\x6c\x83\x29\x66\xa3\x11\xb6\x65\x83\xa5\x4a\x8a\x7c\xcc\x05\x63\x23\x5a\x13\x68\x8a\x6b\xe3\x50\xd1\x4f\xa3\xb6\xdd\xc2\x6b\x1f\x89\xe6\x34\x4b\x51\x62\xa3\x3b\xb9\x93\x5d\xb1\x79\xe6\x57\x50\xd1\xe6\xbc\x29\x65\xc8\xb2\x6f\xe3\xc5\xa0\xcb\xf9\x88\xfb\xb9\x12\xd0\x91\x2e\x77\x12\x60\x91\x48\xf9\x21\x07\x67\xc9\xbe\xee\xab\x58\x52\xac\x13\x43\x87\x31\x57\x59\xa8\x17\xf2\x83\x46\x38\x03\xcd\xcf\xeb\xca\x92\xc7\x65\xfd\x87\x52\x52\xcc\xff\xd3\x5f\x27\xe3\xef\x6c\xca\x5b\xec\x99\x75\x8a\xe5\xa2\x74\x0d\xac\x6c\x3b\x14\xfd\x87\x2e\xbb\x79\x03\xd5\x12\x4f\xc0\x75\xd6\x0a\x85\x82\x51\xe6\x7c\x00\x74\xa7\x7b\xb2\x43\x6d\xa2\x23\x51\x5a\x2b\x35\x33\x67\xe5\x58\xa6\x30\x4f\x28\x28\x5b\xa4\x60\xbe\x06\xcb\x53\x16\x1f\x41\xd9\x66\x62\x74\x90\xd4\xc5\x77\x76\x10\x44\x33\x83\x96\x89\x60\xd5\x6f\x8f\x88\x2a\x41\xf1\xa4\x68\x2f\xb8\x62\xcb\x78\x9d\x05\xd7\xad\x37\x08\xfc\x91\x4e\x4e\x5d\x6d\x1e\x5d\xb0\x76\x0a\xd6\x0a\x76\xdb\x97\xcc\x7f\xfc\xf4\xe3\x43\xcd\x34\x4f\xb7\x76\xb5\x33\xb0\xae\xac\x2b\x18\xf2\x15\xc4\xae\xf0\x89\xc4\x24\xff\x98\x45\x86\xc0\x86\xcd\x24\x79\x0d\x30\x96\x78\x18\x6c\x19\x4c\xe4\x7a\x0a\xef\xad\x27\x09\x94\x21\x0e\x6c\x16\xbd\xf7\xab\x83\xcd\xc9\xf3\x18\x09\x2a\x07\x73\x49\xd9\x91\x68\xe4\x12\x24\x98\xdd\xf9\x49\x90\xcd\xe5\x30\xc9\x2c\x14\x61\xea\x80\x8b\x60\x73\x1e\x86\xc5\xf6\xca\xf9\x94\xeb\xdc\x3a\xc9\x89\x30\x0d\x59\x49\xb5\xb8\x1a\xfc\x02\x0b\x89\x84\x64\x56\xe8\xd2\x9e\x7f\x59\x41\xe3\xe6\xb7\x82\xdf\x62\x6a\x62\x1f\x8f\x88\x09\x62\xee\x28\x9a\x15\xc0\x68\xdb\x7d\xe5\x51\x13\xa6\x22\x42\x4c\x6e\x2c\x1e\x35\xc5\x95\x46\x8c\xd1\x18\x52\x76\x20\x76\x7b\xcc\xd3\x79\xc5\x64\x5c\x0f\x10\x32\x6f\x2b\x40\x12\x02\xb2\xde\x76\x13\xca\xf3\x48\x69\x1b\x73\x62\xe6\x57\xa8\x76\x7a\x66\xeb\x40\x2b\xfd\x34\xd1\x05\x37\x21\x71\x63\xc9\x2d\xe5\x2b\xcc\x15\x55\xd1\x08\xdf\xfb\x59\x61\x7e\x89\xe5\x2b\xbc\x8a\xaf\xc0\x12\x76\xe1\xce\x40\x2e\xec\x8a\x1d\xd7\xf4\x5c\x98\xf8\x15\xe4\x40\x11\xe7\x84\xc9\xe1\xd5\xe9\x40\x4d\x28\xea\xfe\x74\x62\xfb\x28\xfa\x61\xee\x93\x6a\xf9\x7f\x4c\x2e\x56\xb1\x5d\x4d\x67\x6b\x54\x05\xa7\x62\x44\xe3\x22\x89\x5d\xa4\x43\x28\xc2\xb0\x28\x3a\xf1\x27\x9e\xba\xa2\x2c\x4c\x60\x5d\x54\xbb\x7d\x1a\x8b\xe4\x4c\x73\xe3\x4c\x8b\xa9\xc7\xb0\x0a\x23\x95\x17\xa2\x9f\x0b\xe8\x03\xc2\xac\xae\x87\x8d\x44\x04\x30\x8d\x46\xfa\x6a\x59\x54\x34\xed\x75\x2b\xa0\x4c\x34\x72\x5a\x58\x58\xb4\x8a\xdd\xa3\x1b\x04\x1c\x4e\xd5\xe9\xb8\x62\x5c\x9a\x31\xfc\x82\x27\x6c\x7e\x49\x17\x01\x71\x89\x25\xcc\xb2\xdc\x56\x6b\x39\xab\x0d\x84\x84\xd8\x63\xab\x21\x81\x94\xd3\x73\xf5\x9e\x67\xdd\x23\x22\x5d\x9c\x56\x26\xeb\xbd\x54\x23\x03\x62\x91\xca\xc6\x0a\x28\x96\x99\xee\x8d\x78\x6b\xd3\xbc\xb1\xfc\xea\xf1\xe5\xcb\x56\x65\x5e\x6c\x85\xc5\xc8\xc9\xb7\x2b\x15\xff\xb9\x06\x25\xc1\x58\xb1\xea\xcf\x54\x20\x57\xee\xdc\x26\xc0\x19\x52\x4b\xe7\xa3\xe7\xaa\xa6\x8f\xd1\xcc\x6d\x27\x41\x2f\x37\xfb\x65\x5d\xc2\xdc\xcb\x71\x61\x7e\xe4\x32\xea\xd1\x70\xd3\x7c\x59\x0b\xeb\xb1\x4e\x32\x9f\x58\x90\x08\xe1\x44\x53\xf1\x95\xf9\xf3\x50\xca\xe6\x09\xc3\xc3\xc9\xf5\x01\x11\x49\xab\x2b\x62\x41\x50\x96\x18\x36\x6f\x9b\x4f\x05\xf4\x11\xa0\x34\x41\xca\x72\xa5\x6c\xc8\x87\x1b\xe4\x9a\x1a\x0c\x18\x4e\x46\xf5\x4b\x8c\xbb\xe2\xdd\x11\x50\xdd\xd4\x36\xd1\xd9\x3e\x7e\xb6\xb4\x2c\xda\x2f\x53\xa8\x6f\x6a\x78\xd1\x2a\x4e\x63\xc2\xcf\xa0\xbe\x78\x6c\xfe\x74\x9c\xde\xe7\x83\x75\x89\xd0\x20\x8e\x2a\x31\x5a\xaa\x48\xa1\x35\xe9\x22\xb9\x85\xa9\xeb\x1d\x8e\x3d\xf6\xaa\xb0\x71\x7c\xc6\xb4\x71\xa7\x44\x0d\x87\x3d\xb6\x57\x50\x20\xe5\x96\x19\x7d\x6d\x41\x63\x33\x5b\x88\x71\x47\x78\x3e\xb7\x6b\x22\xba\x89\xe0\x4e\x84\x6f\x10\x52\x32\x27\x01\xc1\xb4\x23\x2c\xcc\x9b\x97\xcf\xde\x9b\x40\x4a\x74\xb6\xe9\x37\x26\x6f\xb2\x8c\x56\xff\xab\x60\x49\x38\xe8\xa3\x37\xeb\xf0\xf5\x53\x37\x86\x23\x51\x13\xc7\xc7\xe3\xdb\x67\x04\xe9\x11\xa5\x1b\x02\x46\x44\x0b\x4d\xe8\x87\x90\x99\x97\xae\xf8\x79\x9e\x5a\xc3\xbb\x77\x7e\x83\x3c\xee\x77\x62\x06\x59\x94\xff\x4c\x85\xeb\x91\x02\x69\x42\x5d\x1b\x94\x4b\xce\xf4\x1c\xa7\xb5\xb6\xf9\x94\xce\x03\x68\xb9\xe9\x08\x7b\x10\x6f\xd0\x64\x4b\xf1\x5f\x74\x53\xd9\xd3\x92\xef\xfc\x4c\xce\x60\xb4\xd5\x16\xcb\xa2\xc4\xdd\xf6\x67\x88\x7d\xc0\x35\x6f\x2d\x04\x51\x9c\x83\x8c\xc4\x01\x23\x6e\x8f\x9a\xfa\xb1\x3d\xd0\x96\x5f\xd1\x05\xda\xce\xef\xf5\x05\x65\xe7\x06\x86\x68\xf7\x1e\x11\x3f\x74\xa4\xeb\x8a\xda\x22\x88\x47\x71\x75\x70\x21\x74\x75\x7e\xed\x18\x65\x67\x98\xc4\xa7\x07\x9e\x08\x34\x36\xcc\x2f\xd2\x9c\x13\x81\xd8\xcd\x1f\xe4\xf4\xa0\x96\xf6\x1b\x96\x1f\xee\x44\x3c\xfd\xcb\xd0\x1d\x91\xb3\xd4\x8a\xbf\x3d\x50\xdb\xad\xb6\xa2\x59\xa3\x11\x3e\xb7\x70\x69\x8c\x35\x49\x37\x46\x58\x5c\x67\x52\xb8\x84\x6d\xf1\xce\x1c\x6a\x10\x67\x62\xd2\x49\xb8\x0a\xea\x52\x91\x02\xf3\x4a\xf1\x46\x79\xbb\x87\x87\x6d\xf1\xf1\xc8\x9b\x8e\xd3\xe1\x94\xaa\x0e\xa9\xfe\xdb\x35\x7d\x45\x7b\x6d\x05\x09\x9c\x99\x6d\xe8\x54\x6c\x2a\xb8\xbc\x79\xb3\x75\x22\x51\x0a\xa2\x39\x5a\x3b\x7f\x85\xbf\x2c\x25\xd3\x94\x71\x05\x72\x89\x0b\x98\xab\x02\x2d\x12\x9b\x4b\xe5\x09\x8d\xef\x8b\x8f\xe7\x83\xf4\xe9\x5a\x5a\xf5\xa7\x0d\x84\xfa\xa8\x38\x4c\x89\x17\x38\xc8\x44\xa9\x52\xbf\x33\xba\x65\x50\x3a\x1f\xee\x15\x35\x5f\xdb\xd8\xd6\xb5\x90\xc7\x66\xf9\x51\x63\xde\xba\x2f\x76\x52\x4d\x7c\x5d\x09\x75\x64\x7d\xe9\xa4\xf3\xf3\x2b\x67\x12\xaf\x82\x79\xe7\xf2\x4a\xdd\xea\xa0\xff\x29\xe7\xaf\xf9\xdb\xb8\xef\xaf\x89\x41\xfc\xe6\x84\xdc\x3a\x6a\xe8\x1f\x97\x5a\x0f\x4f\xf0\x97\x88\xac\x2b\x0b\x31\x59\xdf\x6d\x63\x7b\x07\x67\xcb\x8e\x21\x6d\xe4\x3e\x86\x3d\xc6\x6b\x75\xc9\x35\xe2\x7c\x18\xe7\x9d\x3c\xac\x9f\xd4\x52\x31\x39\xb1\x38\xaa\x66\x59\xf6\xf6\xde\x23\x99\x33\x3d\xae\xbc\xd9\x43\xc5\xbc\x12\x68\x54\x3c\x45\xa2\xa5\x50\x88\xd9\xaa\xac\x2b\xc2\x94\x22\x9b\x98\x3f\xc5\x97\x51\xc3\x92\x49\x90\x80\x4c\x77\x6a\x13\x15\x7c\x83\x1e\x3e\x7f\xf9\x1e\x76\x02\xde\x4f\xc6\x06\x87\x8d\x43\x86\xd9\x77\x55\x3a\x0d\x24\x44\xc8\xa5\xd8\x36\xbf\xad\x44\xc3\x17\x15\x38\x13\xa7\x26\x27\x68\xcc\x9c\x01\x81\x38\xe0\x38\xa1\xe3\x3e\x3b\xcc\x74\x4f\xec\x68\x25\x18\x6d\x6c\xac\x7c\x45\x38\x83\x1d\x80\xe0\x92\x30\x57\x91\xd7\x26\x51\xeb\xdd\x30\x5e\xf2\xd4\x6e\xe6\x4c\x53\x3a\xbe\xa6\x0e\x37\x0b\x88\x87\xe7\x3f\x13\x79\xc3\xce\xc0\x3e\xc9\xdf\xe7\x4f\x91\x95\xc7\xd0\x6a\x24\x71\xc9\x52\x9f\xff\xf9\xdf\xfe\xfb\xf9\x53\xb8\x58\x3e\xed\x9a\x92\x7e\xb1\x18\xe7\x40\xb8\x6e\x45\x27\x7e\x07\xeb\x43\x7c\xba\x06\x58\x18\x2d\x92\x90\x43\x99\xed\x96\x6a\x77\x8f\x16\x08\xd7\xed\x04\x08\x49\xbc\x34\x7e\xe7\x8c\xd8\x78\x78\x6b\xd1\x1d\xf7\x93\x79\xc2\xde\x0d\xb7\xfb\xf1\x1a\xae\xa7\x02\x23\xfe\x15\x88\xf9\x6b\xb6\xc8\x78\x63\x37\x72\xa9\xca\x27\xab\x97\x98\xd6\x87\x7e\x09\x86\xa5\x30\x8a\x12\x6d\x13\xab\x9a\x64\xba\x19\xa7\xf3\xe9\x50\xac\xca\xfc\x57\x9d\xa0\xd6\xbf\xf6\x18\xf9\x06\xde\xc3\xf3\xab\xca\x96\xec\xce\xc7\xf2\x05\x37\x30\x88\xcf\x64\x0f\xff\xcc\xd8\x6c\x88\x9c\x12\x7b\x62\xc6\xcc\xea\x11\x20\x46\xc5\x91\x08\x3c\x3e\x50\x6c\x57\x49\x9c\xc7\x5a\x4d\xd7\xdb\xba\x44\x60\x82\x1e\x36\x45\xd0\x15\x4a\x8b\x97\xf4\x6d\xc4\xb6\xd1\x19\x22\xc6\x95\x8c\x2b\xe0\xf6\xa9\xbf\xec\x35\x2a\x1a\x87\x68\x77\x81\x47\x43\x86\xf7\xab\x86\xe9\x98\x59\x66\xab\x9d\x81\x08\x10\x24\x30\xfe\x53\xcc\xf8\x78\xdd\x65\xbb\x1d\xcf\x12\x02\x2b\xcc\x9f\xd4\xd0\x36\xaa\x52\x13\x5e\xb2\x5d\x06\x7f\x7a\x07\x45\xbd\xfc\x67\xaa\x66\xc9\xb2\x27\x81\xb2\x49\x36\xf4\xa2\x54\xe0\x95\x82\x8c\xdc\xdd\xe1\x1d\x3f\xf6\x8a\x97\x1a\x7d\xa9\x7d\x51\x12\x3c\xad\x0b\xdb\x8f\x97\x87\x8c\x99\x3e\xcc\x38\x5d\xd0\xb4\xff\xf9\x2f\xe6\x81\x07\xd8\x8a\x2c\xc6\x79\x9a\xb1\xba\xa7\xc9\xae\xe7\xef\x68\x39\xf4\x93\xa6\x88\x1d\xe6\x9f\xb3\xdc\x9f\x88\xa2\xaa\x70\x90\x6c\x92\x0e\xf0\x5f\x69\xa3\x6f\x32\x88\x4a\x43\x39\x26\xdd\xf8\x3c\x5e\xba\x5f\x2c\xca\x97\x1e\xcc\x46\x3d\x72\x19\x89\xd7\x7e\x48\x5e\x83\x91\xc5\xf1\x08\x49\x40\xe7\x74\x74\x09\xa1\xdb\xbe\x09\xc9\x7b\x3a\xc9\xd0\x80\x3c\x11\x4d\x5b\xc8\xc8\xd9\x8c\x34\xeb\xfa\x7d\x48\x13\xaf\x80\xb7\x7d\x6e\xa3\x1a\x2a\xa8\x1e\xf4\x6e\x6c\x22\x23\x7b\x04\xb8\x10\xf9\xeb\xc1\x47\x06\x08\x59\xb3\xc1\x4a\x44\x39\x15\xa8\x11\x4a\x95\x03\xc6\x3f\x93\xfc\x15\x2d\x46\xb3\xd0\xf2\x81\xf8\x2f\xc7\x35\xf9\xe5\xd5\xd5\xcd\xca\x61\x43\x01\x82\x1b\xdb\x4f\x81\x49\x7b\x01\x32\x34\x39\x09\x0e\x95\x67\x04\x0d\x95\xa9\x02\x96\x21\x2e\x83\x56\x5c\xb7\x30\x5c\x8e\xfa\xd0\x96\xa0\xe6\x4e\xc0\x83\x2d\xda\xd0\xdd\x2c\x1a\x1d\x51\x65\x58\xe6\xb6\x26\xfa\x1b\x03\x6b\x77\x8f\xb7\x16\x83\x68\xc9\x95\xe1\xc9\x38\x0d\x2e\x28\x4a\x30\xd2\xd4\xe2\xea\xfa\xc9\xea\xbf\x1a\x2e\xa0\xe4\x2e\xe8\x16\x58\x59\x75\x34\x79\x6f\x77\x6d\x27\x2b\xc8\xa1\x27\x92\x76\xb4\x36\x6e\x2d\xdd\x0d\x3c\xd5\x5d\xb6\x9c\xdf\xcf\x0d\xe6\x39\x14\xc4\xcc\xba\x9c\x8d\xce\xaa\xcf\xa5\x13\x07\x33\x58\xa9\x36\xed\x5e\x9c\x45\x64\xd4\x42\x28\xc4\x68\x27\x26\x54\xe3\xb0\xd8\x2d\xfb\x6d\x08\x31\xac\x3c\x25\x46\x47\x1b\x4b\x8b\xfb\x05\x62\xf5\xeb\x35\xdd\x1d\x95\x9d\x80\x41\x68\x86\xcf\xb4\x70\x7a\x71\xb5\x1a\x26\xee\xde\x33\x4d\x37\xce\x98\xc1\x73\x49\x51\x2e\xfb\xe0\xef\x3c\xde\x9d\x02\x6e\x35\x58\x0d\x91\x04\x37\x75\x8f\xce\x9b\x8f\x75\x2f\x54\x27\x0f\x62\xb2\x98\xac\x7e\xbe\x58\xde\xb8\x52\x1b\xbb\xa7\x4d\xa0\xa6\x35\x54\xc3\x64\xb1\x3d\x98\x8d\x1a\x6e\x70\x5c\x8c\xb6\xbf\x84\xf7\x99\x2a\xd0\xb2\x73\x3c\xfd\x63\x7d\x1c\x93\x24\x6f\x86\x8b\xac\xed\x34\xec\x4a\x37\x9a\x0b\x86\xc1\x16\x26\x18\x42\x8b\xa7\x20\x44\x48\x2b\xfa\x5d\x22\xc8\xf1\x11\x29\x6d\xa7\x1b\xa6\x0b\xc7\x95\x78\x0d\x85\xb6\x4a\x7a\x3f\x57\x6e\x5f\xb7\x1d\x30\x33\xe4\xf5\xaf\x2d\x9c\x0c\xe9\xb2\xa7\x33\xba\x1b\x4f\x72\x68\xc7\x17\xe0\x86\xc6\x05\x70\xce\x78\x21\xe6\xf7\x7f\xfb\xf6\xf7\xd6\x89\x90\x91\x9c\xcb\x62\x78\x25\xc8\xc3\xfb\xbf\x7d\xf7\x3b\x51\x5e\xf7\x7f\xfb\xfe\x77\x56\x91\x8c\x2b\x59\xac\xb3\x9d\x3d\x59\x13\x97\xf7\x85\x0e\x8d\x3d\x16\x75\x0f\x1b\xa0\x86\x38\xdf\x08\x8d\xfc\xd1\x29\xe1\x96\xdb\x01\x3e\x50\x5f\xfc\x21\x3a\xc8\x35\xe7\xf9\x10\x1d\x54\xfd\x7e\xa1\x33\xd0\x02\x5f\xd4\x87\xbd\x58\x98\xc4\x35\x48\x3e\xd8\xa2\x6e\xfe\x97\x0d\xd1\x49\x9a\x92\x89\x0d\x15\x8d\xbf\xc8\x89\xe6\xc4\xa0\x1c\x01\xfa\x4f\xf2\xf5\x88\x47\x84\xa9\xf8\x4b\x68\xb2\xf6\x4a\x95\x67\xe2\xac\xe8\xdc\x4e\x0a\xd6\xb1\xcc\x06\x98\x4c\x22\xec\x5c\x95\xec\x38\x9d\xe4\x68\x37\x62\x08\xc3\x87\xdd\xc6\x5d\xf4\x85\x1a\x9e\x6a\x85\x7e\x61\x9b\x3a\x9e\x26\xcd\x4c\xab\x54\xa0\xdb\x2a\x55\x34\xed\x76\xd1\x3b\x4b\x04\x45\x74\x9e\x74\xf6\x79\xe2\xdc\x05\x57\xef\xff\xde\x29\x93\xce\x69\x3d\x5b\xe9\x54\xfe\x0f\xd4\x23\x64\x0b\x11\xc4\x6b\xd4\xf4\x00\x22\x32\x8b\x98\x2e\x58\x48\x08\xfa\xdc\x7d\x06\x72\x98\x27\x93\x7a\x2b\x65\x6e\x6d\x49\xf6\xed\x83\x64\xc7\x1f\x6a\x0e\x26\x76\x59\x0b\x3f\xa1\xa9\xac\xe1\x97\x08\x2d\x61\xe3\x0e\x04\x70\x9a\xec\x7c\xd1\x88\xfd\x20\x66\x0f\xf7\x32\x58\xed\xd6\x39\x93\x47\x4b\xe7\x5c\xbe\x9c\xbf\x01\x33\x28\x1c\x9c\x43\xac\x5b\x2b\x68\x20\x7d\x28\x14\xda\x7b\x50\x4e\x83\x8e\x9d\x99\x53\xde\x83\x89\x5e\x53\xdd\xde\xc0\x67\x40\xa7\xc0\x31\x94\x98\x89\x4a\x06\x6c\x69\x02\x89\x92\x74\x16\x37\x6e\xc6\x47\x36\x45\xae\xd3\x44\x04\x4b\x68\xa9\x2c\x24\xca\xd5\x2b\x47\x95\xef\x66\x11\x3b\x26\xb9\xab\xba\x24\x52\x96\x73\x77\x25\x93\xb3\x83\x6c\x88\x5c\xe9\x24\x0f\x48\x42\xc9\x0d\x07\xa0\x15\xea\x80\x77\x92\x0d\x8a\xda\x01\xfc\xf4\xa0\x24\x6f\x68\x43\x37\xc8\x56\x57\x19\xb5\x9e\x4c\x69\x97\xa8\x02\x0d\x26\x17\xd3\xb1\x27\xc0\x6e\x51\x72\x16\x4a\x3f\x05\x99\xbe\xb7\xc0\x70\x71\x4c\x12\xd3\x3a\x3f\xdc\xcf\x89\xfa\xa7\x3b\xe2\x64\x04\xbc\x08\x23\x4d\x6f\xa2\xe7\x54\x5e\x0c\x27\xef\x90\xd1\xde\x14\xd3\x1e\x26\xdd\x37\x4c\x7b\x78\x6b\x37\xc5\xb9\x93\xe0\x5e\xc1\xa1\x65\x3a\x3a\xb6\x28\x18\xf8\x45\x16\x9c\x28\x8f\x8c\x2a\xd8\x47\x0e\x22\x02\x96\x18\x8a\xec\x94\x21\x67\xc3\x26\xe0\xbf\x3e\xc7\x3f\xa3\xb6\xe5\xef\xfc\xe8\x9a\x75\x00\x7a\x85\x2a\x6f\xfb\x27\xfe\xf2\x22\x3f\x01\x21\x1c\xdf\xd8\xb6\x2f\xbb\xd6\x69\x6a\xf1\x91\x75\x8c\x48\x8f\x70\x07\x0c\x1d\xa9\x6a\x8e\x21\x26\x32\x13\x69\xf2\x99\x77\x62\x77\xaa\x3a\xe9\x01\x23\x4f\xe8\xaf\xd8\xe9\x9e\x35\x4e\x99\x93\x36\xda\x36\x68\xf8\xd5\x77\x47\xea\x87\xa5\x76\x1c\x2e\x6e\xfe\xc0\x48\xfd\x7a\xe8\x0f\x81\x4d\xce\x36\xa6\xeb\xd9\xc6\x89\x51\x05\x4f\xb3\x08\x58\xda\x1f\x22\x9c\x00\xac\xf7\x90\x2b\x7f\x88\xab\x3e\x77\x18\xd0\xfc\xd3\x7d\x83\x6f\xe0\x85\x07\x7e\x3a\x85\x5f\xb8\x8c\x17\x05\x38\x2c\xdb\x85\xe5\xe6\x13\x2f\x8b\x7c\x5d\x94\x06\x0d\xe4\x8a\x78\x5b\xde\xe1\x3f\xc2\x13\xd0\x61\x74\xfe\x6d\xda\x6c\x8f\xf0\x92\xd0\xf2\xf1\xee\x73\x20\xdf\x7b\x10\x57\xfb\x1e\xd3\xa7\x14\x80\x34\x22\x29\x83\x76\xd8\x50\x69\xa2\xa1\xa2\xea\xea\x89\xda\xa9\xf4\xff\xf5\x7b\xeb\x47\x90\x2d\x17\x01\xb3\xd2\x99\xbe\x28\xda\x15\x4d\x65\x61\x53\x88\x01\x2b\x1f\xb2\x20\x09\x68\xd9\x85\x55\x04\xd1\xde\xa6\xcd\x01\xe9\x05\x4d\xbb\x84\x7b\xef\xdc\x07\x25\x59\xa3\xcf\xf5\x6c\x8a\xc5\xab\x0c\x89\xdc\xc1\x36\xc0\x02\x86\x0b\xc0\x1c\xd7\xc7\x2d\x89\x27\x86\x48\x45\xfc\x89\xb7\x8b\x66\xbc\x1f\x55\xea\x2d\xb0\x74\x06\x07\x06\x58\x52\x03\xa2\x42\xd0\xe9\x60\xd5\x27\x42\xca\x41\xc2\x39\xee\x9f\xaf\x4a\x20\x4d\xde\xb3\x99\xaa\x43\x32\x28\x04\xc9\x5b\x6c\x4b\x16\xce\x6e\x56\x2d\x58\xe0\xcf\xdd\x90\x35\xd5\x98\x6a\x7e\xd0\xc8\x3f\x1f\x8c\xdc\xd4\x13\x33\x15\xd7\xca\xc2\xf3\xe9\x8a\x1f\x74\xb7\x57\xbd\xb4\xab\xac\x6f\x61\x23\xc7\xa6\x7c\x8d\x84\x91\x28\x8b\x55\x87\x71\xe2\x28\x39\x5a\xa2\xbd\xa5\x45\x1f\x47\x8d\x17\xb7\x17\xc1\x1a\x44\x80\x12\x8d\xa8\xab\x6b\x58\x0c\x99\xb6\x2e\x8f\x84\xd9\xbb\x74\x29\xd3\x63\x7e\x15\x1d\x10\x9c\xa1\x18\x2d\xb2\xb5\x82\x97\x7f\x05\x71\x4d\xcc\x7d\x46\xf9\x31\xaf\xad\x77\x66\x92\x7f\x82\xe5\x1e\x42\xe4\xf3\xfb\x9e\xea\x9f\x80\x81\x6c\xb5\xa7\x49\x07\xba\x70\x42\x88\x63\x56\xe6\x22\x87\x1a\x74\x47\x89\xfc\x61\x13\x8e\x4e\x4e\x07\x47\x37\xd6\x12\xa8\x92\x66\x96\x25\x09\x5e\xc4\x12\x14\x4a\xea\x50\xe2\xef\x54\x2f\xba\x12\xeb\xad\xb8\x1d\x15\x80\xe8\x44\x19\xc5\x64\x11\x84\x86\xd5\x2b\x3a\x9b\x4e\x23\x6f\xa7\x27\x36\x16\x1a\xc7\xb9\x6e\xec\xbf\x84\x61\x9b\xaf\x25\xcc\x18\x51\x72\xdf\x0c\x06\x6b\xb3\x06\x4a\xb4\xcd\xb8\x79\x1f\xab\x45\x2b\x5c\xc8\x01\x9a\xff\x49\x02\x79\xc5\xd3\x2a\x46\x2c\xce\x17\x89\xed\x3c\x58\xd9\x71\xef\x23\x91\xa2\xe7\xfb\xfd\x79\x9e\xdf\x9b\x1a\xbd\x27\x01\xfc\x2c\x38\x95\x52\x44\x08\x64\x9e\x69\xff\x2a\xa9\x22\x22\xaa\xa6\xb7\x1b\x00\xa2\x25\x73\xd1\x27\xad\x57\x36\x2f\xa3\x39\x54\x73\x5a\xb7\xa2\x67\xa0\x51\xd9\xa2\xa1\x61\x5d\x2e\xdb\x48\x12\x1e\xa9\xc7\xeb\x38\x8c\x88\x1a\xe5\x29\xf1\xe6\x47\xe7\x94\xaf\x53\xdd\x54\xdb\xe4\x40\x62\xf0\xfe\xd9\xdf\x32\x31\x21\x04\xe1\x57\x83\xfd\xa1\x04\xa1\x6f\x37\x31\x03\x98\x80\xfc\x3f\x41\x13\x4e\x75\x63\xb4\x1d\x4e\xda\x7c\xb0\x6b\xd5\x74\x8c\x5c\x97\x3c\x93\x3d\xdf\x72\x4c\x3d\x09\xeb\xa6\x19\x51\xe0\x18\x98\x07\x02\xc1\xa9\x43\x48\x04\xb4\xad\xeb\x1d\x42\xea\x2c\xf9\x47\x94\xb1\x41\x54\x4d\xe4\x21\x06\xd3\x56\x8e\x8d\xcf\x44\xfc\xa1\x55\x08\xc4\xfb\x84\xc3\x11\x4d\x87\xf6\xa5\x0b\x8e\x12\x9a\xc5\x27\x11\xdb\x1e\x33\xcc\x39\x3e\x22\x10\x76\x2d\x79\x1b\xe2\x2d\x89\x8b\x89\xcf\x56\x73\xff\xc9\x89\x50\x2f\x97\xa4\x45\xb5\x88\x87\x02\xe6\x4b\xfc\x40\xa6\xfc\x3f\xe0\x1b\x12\x14\x38\xb3\xa8\xf2\x8e\xe8\xc7\x76\xed\x78\x50\x76\x12\xf4\xae\x70\x13\x60\xaa\x32\x65\x6a\xd1\x6b\xb0\xb8\x48\x88\x2b\x21\xf6\xec\xc1\x39\x54\x95\xa7\xb1\xd7\x1e\x47\x79\xec\xa3\x30\x5e\x46\x83\x7e\x89\x3f\x5f\xdc\x41\x0e\xe7\xcc\x5e\xb2\x20\x4e\x5a\xd1\x93\x8b\x1f\xa0\xea\xc3\xbc\x8f\xac\xf8\x02\x2a\x65\x3b\xd6\xfb\x7f\x72\x96\x2c\x61\x2d\x87\x9e\x50\x63\xa5\xdc\x00\x56\xc6\x2f\x11\x43\xa8\x15\x76\x58\x1f\xb6\x16\x36\x3c\x6b\xca\x1a\x91\xef\x5c\xdb\x8d\xd8\x0c\xcd\xcc\x73\x35\x05\xff\x84\x18\x6d\x12\x09\xee\xa3\xbf\x78\x60\xcf\xc9\x1e\xec\xe3\xb9\x47\xbc\x43\x3a\x51\x8b\x6f\xe7\xe7\x06\x84\x09\xaf\x3a\x2e\x3e\x23\x96\x61\xa6\x58\x13\xbf\x7f\x6d\x78\xba\x98\xc8\xa7\x4d\x9c\x17\xc7\x22\xef\x61\xf6\x44\xf7\xdb\xad\xd5\x7e\x17\x57\x0b\x55\x20\x2c\x0d\x4e\x56\xed\x16\x54\xa2\x7d\x73\x04\xdc\xc2\xc7\x62\x86\xe6\x9d\x09\x3f\x2b\x25\xa6\xc7\x03\x8c\xa4\x0c\xbf\xd2\x3c\xec\xd9\x6c\xbc\x73\x5f\xe2\x4b\x20\xce\x02\xb0\xb1\x12\x8f\x02\x4f\x7d\xfd\x30\x5e\xa5\x78\xa6\xf8\x9c\x04\x52\xcd\x19\x21\x3d\x7d\xfc\xe6\xcd\xdb\xf7\xc1\x9e\x6b\x49\x14\x17\xed\xff\xca\xce\x4e\x57\xf7\xdd\xb8\x3a\x9e\x2c\x6f\x7f\x55\xde\xa8\x7b\x02\x0f\x9d\xd6\xb8\xd1\x18\xd1\x8e\x0a\x0e\x87\xf0\x8c\x06\xb7\x2a\x7b\x0e\x3f\xf1\x5c\x5c\x83\x33\x4a\x63\x9e\xfb\xcc\x09\xdb\x5a\x9e\x57\x59\x02\xcb\x9e\xb2\x01\x0b\xd6\xe9\xac\x0e\xba\xca\x76\x02\x18\xfe\xcb\x51\xcb\x86\x69\x60\xe8\x33\x39\xa6\xa2\x18\x31\xc9\x40\x96\x96\x49\xd9\x3d\x2e\x89\xdc\xb2\x78\x04\x21\xac\xd6\x1d\x9f\x0d\xc1\xf7\x9f\x6b\xf4\xbb\xd3\x8d\x36\x1c\xd5\x64\xaa\x55\xf1\x21\xa1\xa1\x8a\x1f\x1b\x8e\xb9\xe9\x8a\xfd\x6d\x8b\xc1\x8d\x7d\x2f\x8d\xc5\x1e\x25\x3b\x6b\x0f\x51\x0b\x69\xe7\x83\xca\x5a\x10\x67\xb0\x3c\x9b\x58\x22\x66\xa3\x78\xa2\x0c\x6d\xbb\x36\x41\x4b\x03\x24\x1e\x85\x56\x89\x4c\xd3\x46\xc1\xe0\x4e\xb8\x6e\x8d\x8f\x86\xc8\x05\xdf\xa4\x08\x2e\x02\x04\xe1\xb7\xf0\xb8\x9b\xe9\x5a\xc5\xdb\xac\xcb\x1d\x57\x28\xc6\xb3\x79\x40\xf3\x31\xc6\x0a\xdd\xaa\x59\xdc\x30\x42\xff\xa9\x71\xe3\x29\xa3\x46\x0f\x0e\x03\xf7\x78\xa3\x7a\xfe\x82\xe8\x37\xbe\xde\x9a\xc4\xf3\xe1\x54\x31\x3f\xa9\x51\xb9\x62\xe0\xc4\xe2\x0b\xcb\x0e\xfa\x92\xf2\x91\x71\x64\xbc\xa0\x08\x87\x50\xb0\x5f\xfb\x42\x82\x8d\x85\x48\x11\x28\x85\x30\x04\x6a\x8f\x1e\xdf\x64\x30\xb1\x81\xbd\xb4\xf0\xc5\xbe\x99\xa1\xc7\xdf\x74\x9f\x31\xe0\x6b\xa1\x55\x1c\xcd\x32\x39\x31\x4c\xb9\xc8\xd5\xe3\x48\x1b\xb6\x64\x46\xd8\x93\x3f\x60\xf8\xc5\xfd\xc0\x6e\x63\x29\x2d\x1e\xc6\x28\x5a\xef\x3b\xdb\xd9\x10\xc1\x0a\xa7\xa4\xb2\x1c\xdc\x01\xa4\x9a\x84\x4e\xb4\x3d\x42\x4f\x17\x2c\xfb\x81\x5b\x38\x2c\xc5\xc5\x2f\xfd\x58\xb0\xb4\xca\xfc\xaa\xa5\x72\x09\xa1\xed\x23\x45\xc4\x25\xe3\x12\x67\x46\x82\x41\x21\x0e\x03\x66\xe6\xf2\xed\xd5\xfb\x20\x66\xe2\xcb\xda\x96\x3b\x37\x9f\x1f\xde\xbd\x7a\xe0\x2c\xd9\x51\x3d\x28\x00\xf3\x1a\xed\x45\x54\x2b\x2a\x06\x31\x5a\x54\xe2\xbb\x73\xbb\xf9\x8f\x9f\x26\x98\xe0\x40\x24\x15\x4f\xbb\x4e\x79\x90\xc1\xba\xb9\x4f\xfd\x4c\x4e\x81\x8f\xbd\xe2\x14\x22\x71\x87\x83\x54\x29\xbe\xbe\x18\x91\x53\x36\xb4\xae\xb8\x17\x8c\x5a\x8c\xdc\xe6\x11\x77\xba\x0b\x21\x78\xa4\xb4\xfc\x39\xef\xb8\x61\x4d\x33\x27\x28\xf8\xc5\xc9\x04\x26\x20\xda\x03\x88\x00\x62\x92\xbc\x7f\xfa\x10\x46\x98\x34\xf8\x9a\xf1\xdf\x09\x88\x83\x04\x5c\x9a\xbf\xe2\x40\x4b\x13\x00\xcb\x3a\xbf\xf1\x0e\x46\x23\x72\x5d\x0d\xae\x1c\xcd\xee\x8e\x13\x73\x97\xb9\x3c\x1d\xc3\xca\x43\x40\x40\xfe\xe9\x4d\xb7\x83\x55\x27\x47\xa0\xf0\x41\x52\x11\x17\x94\x6b\x52\xff\x17\xf6\x33\x41\xa0\x30\x06\xc1\xe9\x89\x7d\x79\x99\x16\xe3\x1a\x82\x75\xba\x27\xd1\x67\xe3\xfe\xb2\xce\x20\xd0\x88\x5b\x0d\x07\xd9\x49\x4d\x6b\xc2\x23\x67\xcc\x92\xed\xeb\x8a\xe3\x6f\x89\xd2\x2f\x38\x89\x1e\x24\xd8\x1e\xdb\x77\xc2\x40\xbe\xa4\x4b\x49\x61\x24\x72\x54\x56\x0a\x8d\xca\x35\xc7\x91\xa0\xa7\x3a\xc3\x86\xdc\x2f\xb8\x0f\x29\xdd\xeb\x00\x9c\x2a\x92\x61\x8a\xe1\x1a\xe8\x15\xa7\xc0\x02\x14\xb9\x55\x4f\x61\x31\x87\xa3\xdc\xf1\x67\x5b\x4f\x96\x98\x02\x03\xa8\xf0\x74\x80\x08\x86\x21\xf2\x60\x74\x29\x04\x7b\x07\x07\xdc\x28\x52\x00\xcd\x8f\x73\x3e\x4a\x71\x8f\x77\xfd\xc5\x51\x00\x06\x39\x32\xea\x81\xd3\x8a\x22\xab\xb6\x70\x1e\x00\x74\xd0\x80\x29\x53\xac\xf8\xf5\xbf\x5d\xbd\x7d\x73\xa6\x5d\xfd\xe3\xfc\xdb\xf3\x7f\xfd\x97\x7f\x39\xbf\xbe\xbe\x3e\xa7\x53\x5e\x9e\x1f\xe9\x10\x9f\xf7\x0d\xcd\x32\xf2\x73\x1d\x06\x81\xdb\xfd\x23\x5b\x7d\xfa\xf1\x21\xfd\x9d\x7d\x33\x46\x59\x12\x7d\x5d\x24\xfe\xd1\xa3\x04\xff\x05\xcc\xa5\xa7\x89\xc3\xdf\x8f\xe2\x97\xc5\xb7\x35\x96\x55\x2c\x39\x9e\xca\x87\x5a\xe9\x06\x1e\xd5\xae\x1a\x0b\x03\x91\xad\x2d\xe2\xad\xd1\x96\xd9\x6a\xb7\x38\xf9\x8a\xd0\x00\xae\xa0\xa6\xb8\x33\x2f\x57\xfa\xf8\xc0\x08\x44\x54\x76\x3f\x8b\xb6\xce\xe7\xb1\x77\x96\xec\x96\x27\xc5\x47\xbf\x56\xc9\x85\x72\xad\xd2\x87\x4c\x99\x37\x87\x65\x69\xe6\x9a\x62\xb3\x01\x7f\xc5\xd1\x57\x7e\x1a\xd5\xcb\xf6\x8f\x75\x55\xde\xb8\xf8\xd9\x70\x25\xa1\xad\x25\xeb\x8b\x5c\x27\xc7\x67\xf8\xd9\xa8\x02\x8e\x88\x18\xc8\xf7\xf9\xcb\x9d\xc8\xc7\x1c\xf3\x80\xed\xd8\x06\xde\x41\xfc\xa1\xc6\xd5\x48\x38\x03\xf6\xe7\xa3\x2d\x6d\x76\x05\x4c\x5e\x08\xd1\x77\xa6\xd8\x49\x5c\x51\x14\x9d\x28\x27\x52\xc6\xa7\x8d\xfd\xdb\x7f\xda\xf1\xb4\xa9\x18\x4e\x66\x8f\xf5\x3f\x1c\x98\xb2\xa3\x13\x15\xc4\x6e\x93\x93\xc2\x96\xa0\xd3\xd3\xe5\x11\x2d\xbe\xf4\x8a\x4e\x8c\x8a\xe3\x13\xcf\x71\x42\x39\x5c\xa8\x5d\x8f\xd2\x9d\x1c\x9b\xd0\xc0\xa7\x9e\x5d\xd3\xfd\x51\xce\x54\xf4\x94\xac\x73\xb6\x26\xe4\x76\x64\xe1\xd5\xb5\xa7\x33\xa2\xf5\x96\x10\x3b\x1b\x9b\x69\x74\xd2\x11\x09\xc5\x98\x67\xe0\x93\x7a\x1d\xc8\xa9\x09\xc2\x4b\x51\x9b\xa3\xbd\x54\x1e\xa9\x9f\x63\xb8\xa4\x01\x77\xe5\xd2\xbd\x3f\x4d\xc4\x2b\x9f\x32\x24\xec\xa6\x89\x0b\x31\xee\x59\x28\x55\x80\x50\x39\xef\xd4\xb1\x13\x41\xdc\x9b\xcd\x50\xfc\xc4\x5d\xf1\x26\x5a\x66\xd0\x5f\xcc\x86\x1c\xbb\x80\x8d\x53\x37\x65\x67\xf0\x5f\x89\x0e\xb5\x41\xe0\xe6\x0d\xfb\x2b\xc3\x31\xc1\x59\xf4\x3b\x1a\xd4\xb9\x67\x4f\xcb\x8e\xa4\x25\x71\x73\xbb\xc2\x6f\x71\x2e\x1b\x41\xe8\x93\x26\x02\x92\xeb\xc3\x26\x43\x34\xb1\xc5\xd2\x97\x0a\x44\x98\x93\xe5\xc2\xd1\x9c\x1e\xca\xfa\x46\xbc\xd4\xa3\x30\xeb\x51\x8c\x9c\x78\x0a\x02\x34\x9c\x6c\x75\x28\x92\xe8\x8a\xc4\x12\xa6\x7a\x11\x57\xff\x41\x03\x54\x39\xc3\x9c\xb4\xdc\x29\xf6\x23\x11\xfb\x4f\x74\x7b\xe4\x4b\xed\x61\x52\xa7\xef\x8b\xa4\x35\x4f\x20\x0c\x3d\xbf\xe3\xc2\xc1\xfd\x7b\x50\x78\x2f\x51\x0f\x4f\x7a\x7e\x27\x73\x36\xe1\xd7\x9d\x8e\x3c\x72\xed\x0e\xfc\x62\xe2\xd9\x3d\x35\xec\x09\x3b\x87\x93\x0b\x31\x51\xec\x33\xce\xdd\x83\x1e\x7a\x69\x77\x22\xdc\x9e\xf0\x6c\x74\x6f\x8c\xa5\xd2\xbe\x49\x57\xef\xdb\x3a\xe7\xe6\x6b\x30\xef\x9f\x31\x8a\xc8\x8b\xf5\x7a\xb6\x6c\xea\xeb\x16\x9e\xd2\x7d\xb3\x22\x86\xba\xcc\xa4\x5f\x78\x9c\x43\x21\x60\x0c\x40\xfb\x65\x49\xcc\x44\x55\xe2\xbe\x63\x83\x37\xce\x12\x55\xe2\x5c\xfe\x68\x1a\x2b\x5e\xd3\xf7\x02\x2e\x28\xdd\x13\x40\x42\x87\x46\x61\x69\x66\x5a\xb0\xdd\xd6\xd7\x0b\xfc\x62\xaf\x6f\xc4\x8f\xa2\x9b\x9c\x8b\x5e\x75\xfc\xea\x9b\x40\xe1\xb7\x22\x14\xbd\xf6\x58\xdd\xa7\x8a\xea\xc8\x8d\x2a\x5c\x8b\xfb\xe8\xc6\x54\x94\x12\x74\x24\xf7\xf3\x00\x18\xf9\x06\xde\xcf\x13\xa1\x42\x54\x9d\x9b\x38\xc2\x24\x4f\x5e\xbe\xd1\x2f\xb6\xad\xe7\x00\x4d\xaa\x3d\x67\x1f\x5c\x1e\xb1\x44\x61\x65\x69\xcf\xcc\xdb\xf1\xbf\xd3\x1f\x21\x4b\xdc\x2d\xf8\x77\x78\x8c\x90\x3f\x03\x4c\xde\x64\xeb\x0e\x94\xd4\xca\x1e\xba\x90\x7c\x80\x9f\xb2\x94\xfc\x85\x76\x4c\x59\x1f\xe0\x0b\x7d\xd4\xd7\x21\x1d\x14\x75\x0b\x8b\x41\x93\xb9\xe4\xc0\x59\x2e\x9d\x35\x61\x41\xdc\xef\x92\x33\xf0\x54\xd1\x1c\x87\x59\xca\x24\xf0\xae\x4c\x61\xc6\xe1\x57\x0d\xe8\x5a\xb1\xfd\x18\xb7\xcb\x5b\x4b\x22\x2c\x3f\xa1\x1a\x56\xfc\x2e\x9f\xcb\x25\x62\x41\xe3\x69\x66\x1b\xe7\xdf\xe9\x72\x98\x36\x45\x90\xb9\x14\xdc\x85\x56\x76\x11\x99\x82\x33\x09\xe5\x32\x05\xb2\x12\x82\x25\x76\x56\xe9\x38\x8c\xf9\x47\x95\xa3\x69\x68\xbb\xc1\xb2\xa8\x0c\x58\xd7\xc6\x74\x82\x44\x1d\x90\xa3\x66\xf1\x2e\xda\x62\x9f\x2b\x02\x95\xcd\x95\x58\xaa\x65\x90\xbc\xe8\x9e\x81\x6d\x9a\xab\xe0\xba\x81\x3e\xe6\x8a\x95\x86\xeb\x64\xf5\xf8\xc5\x16\x2c\x1d\x87\x7a\x1a\x37\x19\x5b\xaa\x6b\x79\x8d\x62\xe9\x98\x25\x57\x02\x54\x39\x08\x45\x62\x73\xfd\x23\x8a\xc3\x4d\x32\x0a\x72\xb0\x24\xb2\xe8\x7c\xb8\x6c\x11\xbc\xa3\xa3\x40\x20\xd3\x31\xa3\x12\xbd\x81\xfd\x63\x20\x89\x15\x32\x8a\xf2\xcd\xc7\x5b\xc3\x0c\xf9\x57\x88\x10\x98\xbc\xb4\x85\x5a\x1e\xf9\x96\xb0\x24\xed\xd6\xcf\x7b\x58\xa2\x68\x13\xe1\x9d\x8c\x64\xfb\xbb\xe7\x30\xd2\x8d\xec\x8f\x90\xab\x6c\xbc\xb1\xdd\x8e\x5b\x64\x25\xdc\x3d\x6f\x34\x98\xa1\x3c\xa6\x9a\xaa\x68\xd2\x6b\xea\xee\x9d\xdf\x08\x1d\xff\x1e\x45\xa9\xd5\x25\x79\x9b\xbe\x30\x17\x03\x0c\x3d\x94\x47\x8f\xd1\x89\x83\xb2\xbc\xaa\xaa\x2e\xca\x33\xef\x82\x35\xfd\x7c\x68\x64\xb9\xc4\xfe\x51\x42\x1c\xc2\x89\x4d\x7e\xdd\xbd\x73\xb0\xf5\x81\x36\xf2\x6b\xb8\xc4\x56\x1c\x9b\x14\x0f\x1b\xb6\x44\xf1\x40\x5b\xf8\xd2\xb2\x2d\x07\x71\xed\x4c\xfa\xb3\x27\x93\xcd\xf6\x2d\x87\xb4\x6d\x11\x83\xee\x9a\x5f\x38\x80\xec\xb1\x9d\x97\x56\x5c\x6e\x39\xf1\x96\x58\x8a\x91\xd7\x18\x6a\x53\xdf\x0b\xfc\x8c\xfa\x8b\x89\x99\x70\x08\x4e\xa3\xea\xca\x1c\x72\xda\x6d\xb0\x6e\x72\x3f\x44\x11\x2f\xfd\xc2\xc1\xf2\x54\xa3\xb9\xaa\xf1\x9a\xda\xe0\x17\x55\x6c\x7c\x0a\xcd\x85\x6f\xc8\xef\x73\xf0\x1c\x1b\xf7\xca\x1c\x57\x81\x80\xfa\x3f\x29\x28\x94\x2c\xc4\x30\x78\xa2\xe0\x57\xe6\x19\xa1\x53\x20\xf4\xbf\x41\xb8\xad\xba\x0f\x25\xc1\xae\xb1\x3a\x11\x9c\xd9\x4f\x27\xfc\x6c\x07\x1b\xe8\x1f\xf3\xb3\x1d\xc6\x49\xfe\x12\x3f\xdb\x7f\x58\x09\x7e\x3a\xa4\x61\x2c\x58\x4b\x63\x1b\xfa\x9c\x71\x90\xc3\x2f\xd4\x49\x4f\x08\x7d\xd2\x02\x9e\x12\x8a\x27\xe3\xef\x57\x7f\xa8\xa6\x9b\x76\xeb\x7f\x45\xd1\x1d\xeb\x25\x27\x98\xbe\x41\x98\xbd\xb7\x89\x16\x53\x23\xec\x49\x91\x20\x55\xd5\xa3\x9e\x48\x55\xc7\x2c\x5f\x44\xe3\x26\xaf\x0e\x0f\x39\xc3\x71\xfc\x0a\x3e\x40\xb7\x96\x89\xc3\x59\xb0\x30\x51\x65\x81\x06\xee\x11\x7e\xca\x43\x20\x88\xc4\x8e\xe3\xc3\x38\x9c\x05\xa2\x59\x9c\x0e\x66\x71\x42\xf1\xf3\xb9\xa8\x16\xc3\x4e\x03\xed\xc8\xdd\x1e\xc7\x27\xe1\x71\xb6\xc5\xf4\x38\x3d\xa6\xba\x18\x4c\xc9\xe7\x02\x5d\x9c\x79\x79\xd1\x04\xf1\x1e\xc9\x92\x9f\xb1\x68\x70\xa0\x6b\x61\xe5\x83\xf8\xb3\x44\x12\x9e\x24\x88\x70\x98\x2c\x67\x4c\x1f\x77\x2e\x92\x49\x41\xea\x27\xbd\xe3\xa3\xae\xf8\x5c\x6e\xdb\x95\x0f\xa4\x3a\xcc\x70\x48\x70\x2f\xae\x75\xc5\xd1\x46\x10\xa2\x37\x45\x08\xc0\x89\xe4\xa4\x64\x3d\xaa\x7e\xe8\x61\xe0\xd2\x55\xc7\xf5\x0a\x51\x36\x5c\xda\x0a\x57\x7c\xc6\x01\x03\x97\xa0\xa2\xab\x90\x25\x5a\x8d\x34\x9a\x8d\xcb\xa3\xfb\x5d\xb2\x20\x9d\x0d\xc9\x7a\xfd\xa9\xe1\x1b\x91\xfe\x7c\xc9\xc3\xde\x0e\xf2\x0b\xe1\x02\xc4\x3f\x2d\x0d\xc8\xbe\x0f\xf4\x23\x6b\xdd\x94\xd4\xd5\xf7\x45\xf5\xee\xfc\x61\xd4\x0e\xde\xed\x79\xd3\x27\xd7\xab\x5e\xb0\x33\x04\x28\xc6\x48\x75\x5d\x5c\xb2\xef\x77\x27\x1d\x97\x54\x10\x27\x1a\xc6\x89\x03\x55\x28\xfb\x38\x91\x1d\xbf\x34\xca\x97\x0e\x5b\x0d\x85\x58\xe3\x9f\x86\xaf\x5f\x19\x16\xeb\xc8\x2b\x7d\x46\x34\x73\xe2\xd4\x3e\x73\xb5\x33\xad\xea\x5a\x77\x24\xe7\xa0\x07\x31\xcc\x7f\xb9\x0b\x2c\xed\xf3\x7e\xd2\x2e\x72\xbb\xd3\x6f\x48\x83\xfa\xa0\xb1\x74\xea\x89\x7f\xfb\x69\xd0\xad\x18\xea\x73\xdd\xe2\x56\xff\x59\xac\x52\xa7\x1b\x37\xa2\xca\xac\x86\x8a\x63\x96\xbf\x88\x61\x9f\xdd\x44\x7d\x74\xbe\xf9\xbe\x45\xf7\x5a\xda\xc8\x55\x5f\xe0\x4f\xdc\xc0\x92\x29\x36\x2b\x23\x8a\x43\x0e\x51\xe3\xc9\x8a\x13\x01\xb0\xbe\x00\x85\x84\x2a\x1c\x70\x78\x52\x4b\x2d\xa1\x02\x30\x5b\x57\xa5\x34\xac\x1f\xb6\xa3\x16\xf9\x55\x04\x25\x19\x25\xe7\x4b\x6f\x74\x81\x76\x61\x9d\x40\x41\x0e\xae\x25\xa4\x85\x35\xce\xe5\x29\x06\xc5\x1e\x2e\x14\x17\xb7\x2e\x47\x55\x29\xce\x51\xb5\xee\xbd\x69\x80\x26\xa2\xd0\x31\x64\xba\x90\x51\x14\xd5\x38\xac\x11\xbf\xcd\x93\x47\x06\x8f\x02\x2c\x02\xe7\x78\x39\x46\xcb\xc0\x25\x18\x0d\x69\x5f\x4a\x96\xcb\x4f\x49\x7f\xc6\x7d\x73\x64\xc3\x73\x79\x86\xcf\xef\xee\xa9\x50\x7f\xb3\x04\x67\x0c\x77\xd3\x60\xa7\xba\x8d\x00\x94\x13\xd6\xde\x99\xc5\xfd\xa0\x83\xd5\xf7\x3c\x93\xe1\x94\xac\x55\xb0\xd5\x34\x2e\xf9\xc2\x66\x15\xd7\xfc\x83\x2d\x0f\xb0\xc8\x29\x14\xf2\x85\x7d\xf1\x28\xe6\x1f\x9d\x88\x53\xdd\x31\x89\x91\x46\x14\xf2\x35\x5a\xa9\x88\xd1\xc2\x5e\x4d\x99\xad\xc1\x29\x08\x62\xf1\xf8\x24\x0c\xe2\x73\x24\x07\x42\xad\x54\x24\x54\x54\x70\x1e\x0b\xf5\x56\xb4\x84\xe0\x8b\x21\x7e\xf0\xef\x1d\x80\xe3\xde\x88\xee\x73\xf4\xd4\x46\x8c\x0d\xbd\x8c\x0f\x78\xf6\x4c\x88\xbe\x5e\xde\xde\xe0\xf7\x06\x5c\x6f\x84\xa9\xe6\x35\x21\xb6\xda\xbf\xec\x38\xbf\x70\xbf\xe4\x75\x90\x36\x52\xff\x31\x0f\xe9\x09\x65\x26\x9b\x9b\x28\xa6\x7c\x32\x6f\xe9\x83\x89\xf1\xbb\x09\x78\x24\xa0\xef\xfc\x2b\x0a\xad\x86\x4d\xdb\x40\xb8\xe0\x5f\xdd\x44\xa0\x15\x36\xf1\x9a\x5f\xdd\xe0\x49\x09\x66\x64\x77\x35\xe2\xed\x29\x96\xde\xd7\x15\xaa\x87\xea\x10\x62\x18\x7e\x10\x00\x06\x5a\xc4\x9f\x6d\xec\xfc\x4f\xf8\xa9\xf1\x34\x39\xe1\x55\x86\x6f\xc2\x05\x44\xda\xbc\xc7\xbf\x3f\x98\xfb\x1c\xe4\xde\x8f\x9c\xc5\x9b\x34\xeb\x44\xa0\x5d\xe9\x2f\x89\xab\x11\x20\xbc\xc9\x5f\xab\xea\x22\xed\x4b\x54\x07\x7a\xbb\x67\x29\x6a\xdf\x72\x3d\x7d\x6b\x74\x08\xda\xe3\xc9\x26\x17\x50\x19\xcb\xfb\x22\xfe\x4d\x55\x3d\x10\x4b\x16\x00\x2e\x1f\x45\x34\xd2\x59\x94\x1a\xbf\x89\x99\xa4\xbb\x67\x15\x9c\xd2\x22\xce\x8c\x97\x2a\x4e\x3f\xca\x63\x0b\x71\x52\x2b\xcf\x2d\xc4\x49\x62\x12\x11\xa7\x1c\xb2\x86\x06\x51\x1c\x10\x45\x30\x01\x75\xb6\x8c\x71\xd3\xe3\xe2\x83\x78\x9e\x69\x15\x13\x7d\xd2\x97\x3e\x93\x1e\x84\xe0\x2c\x71\x32\x3f\x75\xec\x9e\xbb\x8e\x33\x94\xfc\x1f\x54\xeb\x7d\x08\xa2\x1a\xd8\x8d\x34\x4e\x11\xb6\x41\x5e\x37\x0e\xa9\x7c\x7c\xe3\x84\xc0\xde\xda\x31\x34\x65\x96\xfa\xd2\xc8\xc4\xf6\x12\xee\xde\x6f\x31\xe5\xee\xa7\x00\xe5\x61\x56\x11\xd3\xf8\xe7\xc0\x27\xe0\x9a\xbe\x9a\x7f\x70\x8f\xe5\xc6\x20\xf0\x23\xa9\x16\x1a\xe9\xb4\xe6\xb0\x5f\x4f\x91\x64\x28\x89\xd6\x22\x37\x6f\xf1\xfc\x59\x7b\x7b\x11\x7f\x23\x72\x38\x08\x2e\x61\xa1\x19\xad\xd8\x30\xc1\x11\x4a\xf1\x9d\x18\x6a\xd3\x8b\x15\x4f\xc7\xa6\xef\xe3\xc5\xe1\x5d\xd4\x7d\x81\x77\xce\x31\x0e\x1d\xfb\x25\xf5\xa4\xbd\x53\x80\x10\xe8\xaf\xc1\x29\x17\x92\xe8\x8b\x7a\xca\x72\x3f\x04\xde\xa1\x4a\xda\x51\xd0\xcd\x31\xa5\xc1\xa0\xa2\x8c\xb8\xbd\xae\xb4\x9f\xd3\x75\x7c\xa6\x8b\x78\x67\x7a\xb3\x72\x2f\xea\x66\xcd\x92\xf6\x18\x9b\x0b\xdb\x95\x3e\xa1\x3e\xde\x01\x71\x99\x40\xda\x8c\xca\x46\xba\x2c\x7e\x99\xd5\x3d\x21\x15\x2a\x6a\x6c\x7b\x53\xad\x16\xfc\xae\x71\xbb\x65\x3d\xea\x0b\x3a\xb8\xca\xc0\x3c\x98\x51\xe2\x43\x09\x44\x54\x7c\xb2\xac\x6c\x6c\x1f\x98\xaf\x5f\xf1\x43\x10\x3f\x4c\x84\xfa\xe6\x8b\x8c\xdf\x86\x00\x5a\x64\x2e\x46\x49\x3b\xd0\x6b\x08\x05\xcc\x4f\x2b\x7d\xf5\xcd\xed\x9d\x48\xa7\x75\x18\x19\x5b\x2b\xde\x4a\x47\x31\xc5\xa7\xc6\x14\xd9\x01\x24\x03\x1b\xae\xf8\xb9\x98\xee\x7c\x2d\xb6\x1d\xb0\x0b\x1d\xbe\x28\xad\x6a\xb2\x56\x64\x71\x56\xa4\x8d\xaa\x44\x3b\x35\x98\xb8\xf5\x93\x1b\x45\x9b\x9e\x18\x51\x72\xe9\x40\xaa\xd9\x50\x8d\x30\xae\x9e\x7f\xe0\x3f\x46\x12\x93\x63\xde\x03\xef\xd3\xde\xa8\x9b\xba\x27\xfe\xc1\xfa\x97\x22\x9e\xbb\x94\x76\x0a\x9e\x65\xe9\x37\x8b\x9e\x23\x4b\xb9\x22\x1b\x7e\xcf\x3a\x30\xfa\x71\x41\xbe\x94\x5d\x31\x48\x54\x57\x2c\x52\xc7\x2d\x9d\x95\x51\x9c\x18\x5f\x49\x5c\x58\x8b\xd5\xcb\x2e\xa3\x0e\xe5\x6c\xcc\xd4\xa7\x21\xa9\x03\xf0\xa1\xe6\xc8\x8b\x8b\x92\xa6\xa9\x3f\x2c\x30\xf0\x16\xa1\x65\x58\xb3\xd2\x98\x57\x9c\xcc\xaf\xac\x4e\x34\xe1\x7a\xa6\xc5\x7c\x43\xd4\x41\xd5\xcc\x9c\x28\x88\xe0\x0d\xc3\x42\x1b\x89\xe5\x30\x2c\xe1\xe6\x70\x6b\xb3\xc3\x60\x06\x5f\x50\xd2\xd4\xec\x31\xe8\x70\x16\x00\x7c\xee\xe7\x9c\x23\x3d\xdb\xc1\xc4\xc5\xe5\x8a\xbc\xb4\x5c\xc6\xbc\xe6\x04\x87\x6a\xd7\x27\x0b\xb0\xa5\xc2\xfc\x45\x5d\x1f\xc2\xd2\xbe\x9c\x5c\xdd\xb8\x98\xaa\x81\x46\xfd\xe3\x30\xd4\x9b\x21\x8e\xe4\x92\xf5\xf2\x23\xe1\x9f\x56\x4a\xc8\x47\x0a\xb5\xac\xeb\x0e\x2f\x66\x1c\x40\x74\xb1\xd9\x1a\x47\x34\x73\xa9\x50\x60\xaf\x76\x53\x1d\x13\xf0\xe1\xcc\x11\xf8\x81\x03\x3d\xdd\x36\x77\x7b\xc4\xa6\xa4\xf6\x9a\x7e\x05\x1b\xc7\x56\x1b\x7d\x7d\x85\x88\x96\x3e\x79\x72\x3a\x46\x45\x7d\xcb\xa3\xd2\xd3\x4d\xaf\xb2\xd5\xd6\x4e\xb4\xfd\x14\xe9\x9f\x6b\x7c\x54\x38\xb4\x3e\x2a\x3f\xd9\xbc\x3c\x74\x04\x69\xff\xb2\x5f\xed\x6c\x07\x87\xac\xed\x82\xb5\xdb\xa1\x2e\x7d\x27\x89\x6f\x58\x22\x7b\xe9\x64\x01\xaa\x63\x67\xc4\xc9\x5a\xe9\xfa\xa1\xeb\x25\x63\xf3\x85\x70\x92\x9f\xd2\x6e\x44\x62\x9e\x4d\x97\xaa\xe1\x69\xbd\x50\x8a\x5b\x4f\x27\x68\x1d\x5f\xc3\x63\xf1\x42\x6b\x95\x83\xd0\x83\x5a\x88\x19\xc8\xb8\x3e\x84\x15\x92\x9b\x70\x75\xb3\x2a\xad\x8f\x30\x64\xa8\x27\x9a\x16\x83\x33\x6f\x41\xe0\x8c\x45\xaf\x58\x07\x7f\xe4\x38\x45\x80\x57\x76\x13\x52\x97\x8e\xee\xe9\x31\xba\x73\x05\x15\xcb\x7d\x61\x91\x03\x3c\xcc\xbf\xac\x8c\xeb\x9e\x14\x79\xa5\x36\xb3\xb7\x97\xd1\x4e\xb5\xf3\x04\x4c\xa4\xa8\xcc\x0c\x8a\x87\x84\x86\xb9\xa7\xed\xca\x71\xfa\x1c\x57\x12\xc2\xd9\x0b\x6c\xfc\x28\xfe\x9b\xe1\x7b\xf8\xca\x11\x2b\x24\xc8\xdd\x37\x4c\xe4\x4a\x82\xa3\xe1\x80\xcf\xbd\xc9\x9f\xcf\x8c\x63\xe8\x48\x52\xf4\x48\xbf\x4b\xd2\x00\x62\x51\xe4\x30\x97\xa3\x4f\x5d\xeb\x7b\xc8\xe0\x33\xd7\x37\xf3\x2b\x04\x14\x7a\xe7\x9f\x55\xaf\x2b\xf3\x06\x19\xca\xb1\x9a\xf7\xb5\xc1\xf3\x5c\xf1\xd0\xbc\xa1\x94\x0d\x03\x63\x7d\x9f\xd7\x18\x69\x17\x86\x1a\x23\xa9\x62\x10\x59\x46\x87\xc6\xc4\xb4\xd8\x03\x3d\x4e\x78\x66\x73\xc5\xa9\x0e\x90\x03\xcd\xce\x5f\x71\x68\xd9\xa4\x30\x33\x3c\xc2\x3f\x0c\x2a\x78\xc5\xac\x10\x1e\x32\x76\x05\x86\x0f\x66\xbf\x82\x2c\xdc\x20\xec\x11\x22\x7b\x42\x95\xd6\xe0\x39\x19\xf0\x02\xa2\x7a\xcb\x7d\xef\x4f\xbc\x7b\x76\xf9\xd9\x47\xcf\xc2\xe0\x23\x45\x12\x5b\x5e\x86\x17\xe8\x18\xa4\x68\x17\x61\x17\xc4\xc1\xce\x99\x5a\x1a\x6d\x0a\x80\xf3\xbe\x88\x41\x85\x83\x0e\x1e\xa6\x2a\x40\xf2\x13\x06\xed\x2d\x6c\xdb\x99\xac\x72\x7a\x35\x29\xba\x74\x56\x14\x2c\x79\xdd\xc3\xa5\xca\x7b\x77\xbb\x90\x01\xbc\x87\x85\x42\x0d\x0e\xc5\x53\xf3\xe3\xa3\xba\xbb\x47\xe1\xe2\x97\xc9\x18\x7e\xa0\x5b\x8b\x07\x91\x08\x4a\x75\x07\x0f\x9e\xc3\x4c\x67\x27\x7a\x86\xd3\xbf\xfa\xe9\xf4\x2c\x27\x9f\xfd\x8c\x05\x56\x9f\x7f\x1d\x33\xee\x86\x7b\x08\x34\x99\xbe\xff\x3d\x4f\x81\x46\x73\x15\x9b\xde\xb9\xd9\xfd\x9c\x03\x8c\xbc\x84\x38\x63\xef\xae\x18\x85\xc5\x4f\x23\x06\x24\xc6\xb0\x11\x66\xe2\xef\xc4\x58\x83\x53\x9c\xf4\xfd\x95\x08\xde\x55\x0c\xc6\x18\x29\x6d\x25\x92\x88\xc9\x8e\x44\xb2\x2d\x5d\x81\xa9\x30\xfc\x49\xfb\x92\x30\xd0\x03\x4a\x22\x87\x32\xb6\xd1\x5b\x99\x92\x8c\x00\xc4\x6d\x78\x2f\x53\x12\x47\xb1\x72\x45\x3a\xa7\xe8\x23\xe9\xf1\x00\x81\xbc\xe6\x3c\x73\x89\x3c\x57\x08\x81\x43\x1e\xe7\x39\x3f\xfb\xe6\x30\x94\xe6\x84\x9e\x4b\x42\x14\x53\x52\x12\xe4\x99\x40\x18\x73\x85\x97\xf0\x5c\x9e\xb3\xab\x79\x12\x05\x3c\x8c\xba\xc9\x75\x0d\xba\x17\x57\xcd\x40\x53\x48\x50\xd0\x9f\x00\xa9\x49\xf2\x85\x1a\x23\x4b\xe2\xb6\x6e\x3b\xa2\x6b\x5b\xdf\xde\x01\x51\x22\x2f\xe9\xc8\xfb\x14\x96\x7b\xe4\x15\xf5\x8d\x9d\x3a\x2e\xde\x24\x19\xfe\x41\x3c\x64\x47\x4f\xe1\x4d\x80\x04\xa3\x97\x06\x02\x88\x1f\xc4\xaf\xd8\xe5\x32\x12\xa5\xed\xc2\xcf\xa9\xc1\xb3\xae\xa8\xf8\x45\x03\x76\x16\xab\xf0\xc8\x0a\x9c\xbe\xcd\xb6\xd8\x6c\x83\x05\x4c\x1e\xbd\xbb\xa2\x33\x89\x1b\x9b\x63\x5c\xe1\x02\x33\x57\x1c\x33\xd8\x3c\x61\xdb\xc6\x08\x82\xc6\xc3\xf9\x61\x34\x59\xd7\x35\xc5\xb2\x87\x56\x55\x6c\x4d\xea\x86\x75\xb3\x9a\xde\x77\x63\xc0\xb6\x17\x8f\x91\xc7\x40\xb3\x9f\x85\x8e\xdf\xcd\x1f\x81\x49\x8c\x2d\xe9\x93\x44\xd8\xf2\x15\xb0\x1a\x41\xf3\x99\x0a\x18\x00\xec\x71\x15\x2c\xda\x8c\x28\x6a\xf3\x38\x37\x57\x8f\x5d\x46\xbb\xef\x0e\x12\xd9\xfe\xea\xf5\xfb\x4b\x73\xcb\xfe\x01\x24\xef\x04\x06\xdc\x46\xdb\x01\x39\xbc\x25\x38\xe7\x10\xef\x0b\x35\x06\x52\x53\x77\xe6\xce\xf1\x4d\xcb\xc5\xdf\x27\xc0\x4e\x5f\xbe\x58\x63\xa2\xd1\x69\x62\x56\x84\xdf\xab\x1b\xa3\x25\x66\xe6\x75\x5f\x76\xc5\xa1\xb4\x2e\xc5\xb4\xdb\xba\x2f\x11\x56\x9e\xf8\xf8\x43\xd6\x30\xd5\xb1\xbc\x91\xd0\x41\xe6\xc1\xd9\x83\x59\x7a\xe6\x16\x5d\xd9\xb2\xe7\x06\xae\x50\xf3\xfe\xd5\xd5\xb9\xad\x56\xcd\xcd\x81\x05\xef\x3a\xce\x5d\x71\x00\x98\x3e\x81\x3d\xbf\xa2\x6f\x40\xc2\x23\x8d\xbe\xfd\xe9\x80\x3a\xcc\x36\xc7\x62\xa5\xdb\xe4\xf2\xf1\x6b\xa3\x09\x55\x74\xf8\xb5\x5d\x0e\x74\xe4\x48\xaf\xd0\x03\x24\xc3\x5d\x8a\xdf\x05\x6a\x3c\x11\xe6\x3b\x43\x83\x25\xa4\x4b\xff\xf8\xea\x40\x3c\x3d\x83\xc6\x6f\x48\x25\x89\xaa\xd3\xcf\x75\xa0\x20\xf4\xf9\x66\xf7\xa0\x81\x7b\xbb\x79\x48\x4d\x78\xb4\x96\xd2\x77\x69\x2b\x29\x99\x97\xe5\xf9\x98\xc8\x8b\xd1\x58\xb8\xa8\xd2\x6a\xbe\xd4\xc4\x28\xae\x6b\xfe\x81\xff\x7c\x66\xdc\x6a\x8b\xa4\xfe\xa9\x8c\x56\xd2\x02\x29\xe0\x42\x90\xaa\x3c\x40\x93\x56\x1c\x9e\x85\x1c\x17\x90\x37\xa8\x50\xf9\x60\x7e\x30\xa9\x75\xc1\xba\x57\xec\x49\xbd\x8e\xcf\x68\xbb\x9e\xf2\x72\x8d\x2a\x4f\x6e\xf6\xb4\xde\xcf\x5f\xf0\x22\x67\x73\x22\x2e\x55\x2c\x5d\xf1\xd7\x2a\x51\x2f\x29\x60\x76\x38\xe8\x3d\xe1\x9e\x4f\xd6\x6d\x1b\xe5\x1f\xb1\x55\x7d\xb6\xb3\xd5\x8d\x00\xe0\xfc\x16\x00\xce\xd9\x03\x4e\xb3\x07\x77\x8c\xa6\xd6\xeb\x35\xa2\x79\x21\x44\x24\x07\x89\xc1\xc7\x39\x7d\xf4\x6d\x28\x48\xdb\x14\x27\x06\x92\x36\x96\x58\x6d\xe6\xef\xf8\xe7\x39\xfd\x4c\xbc\x3e\x7d\x91\xa6\xd7\xa7\xca\xbd\xa0\x3f\x8f\x42\xb0\x24\x60\xdc\xb0\x82\x99\xb4\x61\x26\x5c\x9a\xba\xee\xe4\x19\x8b\x38\x96\xc1\x92\x63\xe2\x1c\xb2\x3c\xcc\x33\xf4\x57\xab\x85\x04\xc3\xf7\x65\x44\x7d\x86\xb3\x1c\x3c\x70\xc7\x65\x69\x1c\xc3\x82\xc4\xa2\xf8\x37\x78\x27\x1a\x5b\x35\xc5\x41\x3d\x1a\xaf\xf8\xb7\x3a\x34\xfa\x9e\x63\x6d\x74\x6f\xf2\x44\xbc\xdd\x6f\xec\xce\x87\xbc\xf6\x4f\xe8\x8f\xe7\x24\x5f\xba\xbd\x72\xa1\xda\xb7\xc9\xdd\x42\x60\x11\x15\x13\x12\x23\xa2\x21\x24\x46\x04\x50\x48\xe4\x6e\x3d\x9f\x6a\xbf\x6d\x4b\x59\x96\xab\xab\x57\x83\x25\x89\x72\xfd\x73\x45\x99\x38\x35\x32\x2f\x72\x0f\xb1\x66\x37\x74\x55\xdc\xfb\x26\x2e\xc3\x53\x7a\x19\x4d\xa0\xa6\xf9\x3a\xd6\x28\xdb\xfe\xb5\x2c\x3a\xfb\xfd\x3d\x76\x4e\xbf\xd7\x15\xf9\x32\xaa\xc5\xa1\xf6\xe8\x20\xd1\xe7\xe4\xdc\x78\x86\x3a\x79\x34\x55\xef\xf7\xf8\x95\x54\xc5\xef\x42\x64\x0f\x77\xbb\xbb\x1a\x02\x27\x6e\x45\xdd\x10\x08\x44\xd7\x35\xb8\xac\x34\x11\xc3\xbe\x20\xa2\xa2\xab\x2b\x2d\xca\x6c\xcb\xae\xaa\x0f\xb1\x33\x88\xef\xaa\xc4\xc9\x75\x71\x73\xd9\x05\xe0\xa5\xbe\x0a\xec\x5e\xba\xd1\x50\xb7\x6a\x63\x50\x54\x78\xe0\xcd\xd7\xe0\x5e\xb8\x66\x71\x5a\xfa\xfe\xb4\xc8\xd1\x92\xf7\xb0\xb5\x10\xcf\x8b\x8a\x1b\x64\x5a\x2a\x2f\x62\xb0\xe3\x93\xcf\xce\x58\xc5\x27\xc4\x40\xb5\xab\x1d\xe2\x49\x22\xd9\xbc\x2e\xaa\x62\xdf\xef\xcd\xcf\xf6\xc6\x5c\x51\xb6\xbc\x67\x3a\xee\xd9\x81\x58\x82\x6c\xfe\x8c\x3f\xa9\x53\xfc\x19\xb0\x96\x38\x69\xc2\x1d\x64\x51\xb2\x1e\xeb\xb1\xaa\xd6\x9e\xe2\x52\x2c\x07\xd3\x45\x17\x55\x20\x5a\xa3\x42\xef\x90\x13\x3f\xad\x3c\x51\xda\x79\x85\xeb\x16\x72\x9e\x90\x93\x7b\xe8\xaf\xbd\xed\xa9\x6e\x5b\x6d\x80\x0c\xf0\x87\x1f\x26\x91\x16\x9a\xe2\x63\x98\x23\x71\x95\x64\x69\x15\x61\xc5\xf9\x13\xe7\x27\x29\xaa\x21\x98\x4e\x7f\x8c\xb6\xca\x80\x96\x01\x19\xb3\xb2\x8d\xcc\x7d\xd6\xf9\xc7\x76\x99\xc7\x55\xc7\x86\x68\xcd\xc2\x45\xf2\x9a\xbf\xb4\xeb\x49\xcf\x15\x6e\x9a\xa5\x49\x61\xdc\xfa\xd2\x29\xac\x61\xde\x07\x20\xf3\xe2\xd9\xab\xb7\x86\x03\x17\xa6\xc0\x63\x24\xa2\x19\x63\x94\xa3\x19\x27\x30\x8c\xe8\x69\x75\x1c\xac\xa1\x3d\x9f\x5c\x02\x81\xbb\x75\x1c\xb2\xeb\x9d\xd1\x06\x3e\xa6\xab\xd2\xd3\x91\xd3\xde\xa3\x2e\x09\xa0\x7e\x0d\x60\xfc\xfb\x58\x02\xe4\x3e\xc7\x2d\x56\xa1\xbd\x8a\xd5\x92\x11\xa6\x12\x9b\x22\x8f\xa9\x10\x7a\x75\xb2\x5b\x0e\xf2\xd0\xd4\xc7\x82\xbd\x7a\x18\xd6\x7d\x7a\x38\x97\xe0\xaa\xbc\xd4\x6f\xdd\xba\xa1\x73\xb4\x9d\x0b\xa5\x7e\x9f\xf2\x6f\x93\x90\x10\x7a\x22\x71\x86\x04\x94\x1a\xec\x8c\x42\x4e\xe1\x89\xcd\xca\x4f\x88\xc8\x88\x9f\x3f\xf5\x2f\x86\x71\x40\xa4\xd1\x50\xca\x62\x6d\x55\x0e\xcd\x63\x31\x79\xdf\x87\x81\x6c\xbb\xee\xd0\x26\xae\xf0\xfc\xba\xd5\x70\x00\xa1\x12\xed\x1b\x2a\x41\xc8\x89\x75\x72\x98\x0e\x05\xeb\x07\xdc\xac\xfc\xa9\x76\x31\xb9\x86\xf3\xec\x00\xf5\x0e\x11\x48\xfd\x18\x21\xbb\x8d\x3e\xff\x8f\x20\xe7\x82\x47\x27\x49\x1c\xd0\x0c\xda\x30\xd1\x0a\x93\xcd\x02\x84\xef\x51\x02\x70\x34\x95\xb7\x16\x9a\xad\x1a\xba\x21\x9e\xd2\x3f\xe7\x9d\x86\xcd\xd4\x8c\xe8\xa0\xb9\x24\x50\x30\x79\xcf\x81\xc9\xb2\xaa\x62\xea\xda\x43\xa7\x2f\x10\xb8\xe4\xd1\x83\x05\x2e\xc3\xfe\x61\x57\xbd\x57\x1d\x3e\x26\xfa\x97\x96\x72\xc7\x77\x54\x50\xa6\xc7\xf5\xd4\xe2\x53\x2a\xc6\xf8\x12\x9c\x71\xe5\x9e\xa6\x57\xa0\x09\xff\x1c\xdf\x73\xbc\x3c\x05\x32\xac\xe9\x64\xed\xa6\xfa\xe1\xe8\x3f\x81\xf0\x06\x57\xce\x84\x49\x3e\x69\x57\x80\x0b\x3e\x61\x83\xe5\x8a\x44\x44\x51\x9c\xb4\xf8\x56\x02\xbc\xab\xd9\x5a\xc8\x9c\x88\x83\xea\xb2\xea\x03\x95\x99\xc5\xa0\xcc\x6f\xf8\x37\x78\xb5\x27\x4b\x79\xb1\xe8\x64\x98\x49\xb5\x6e\x5b\x81\x30\xf8\x3d\x7d\xc8\x6f\x60\x9a\xe7\x9e\x15\x91\xa0\x1c\xc1\x95\xf0\x7e\xeb\x3c\x08\x2b\x1f\x6f\x50\x7e\xe7\xc9\x2b\x6b\x71\xd0\xe8\x6f\x43\x70\x68\x84\x8c\x0e\xf1\xb2\x87\xaf\x62\xf8\x77\x08\xa8\x52\x36\x54\x14\xe6\x4e\xc4\xa0\x51\x37\x1e\xb6\xcd\xea\xe1\xfd\xf8\x2d\x83\xb4\x9f\xee\xa1\x83\x50\xb1\x0c\x54\x5e\x6f\xf8\x8b\x06\xb7\xe7\xaf\xc1\x00\x1f\x8a\x1c\x50\x2a\x6f\xff\x29\x7e\x2b\x41\xeb\x48\x62\x09\xff\xc5\xe9\x32\x92\x10\xce\x71\x7d\x1a\x0e\x7c\xa2\xba\xe4\x45\x89\xbf\xa8\xfd\x17\x82\x4c\x49\xbf\xbe\xac\x53\x13\xf1\x8d\xff\xa2\x31\xa8\xff\xfe\x2e\xf9\x88\x68\xa3\x0d\x41\x3b\x48\xe3\xcb\xe8\x5a\xc8\xca\xfa\x65\x1d\x2e\x50\xd8\x27\x1c\x40\xa3\xcb\x36\x73\xea\x52\x7f\xad\xcf\x0f\x4c\xae\xa5\x09\x8b\x39\xa8\xce\xbf\x26\x11\x6f\x14\x8e\x45\xff\x9d\x0f\x1d\xee\x1f\x10\xf3\x41\xe1\x0b\x17\x03\x97\x05\xf9\xdf\xb9\x20\xd3\x7c\x02\x10\x2f\x9a\xf6\x7f\xb6\xa9\xa9\x5f\x6a\x1b\xce\x2f\x07\xc2\x53\x42\xde\x7c\xab\x7a\x9c\xb6\xeb\x39\xfe\x7e\xdb\xce\xbf\x35\xcc\xfc\xd0\xb6\xb9\x4f\x55\x7c\xbb\xa7\x84\x3d\x31\xe9\x7d\x27\xdf\x5b\xfa\xc6\xbd\xc0\x1f\x39\x7d\xe4\xd9\x46\x3e\xae\xe9\x83\x68\xed\x9d\x96\x23\x3c\xfb\x2d\x42\xf2\x13\x57\xc1\x09\x37\xf4\x89\xa0\xc2\xfc\x25\x4d\xf0\x13\x0c\xda\x5a\xc5\xe9\x68\xa9\x93\xa7\x19\xe4\xa7\x24\x6f\xeb\xbe\xe1\x44\xd7\x72\x9e\xdd\xf0\xb7\xbc\x3e\x8e\x14\xb4\xcc\x49\xd7\x30\xe7\x92\xca\x88\xac\xdb\x4a\x5d\x59\xe6\x9b\xb8\xb1\x99\xd4\xf5\x91\xad\xf8\x91\xd4\x64\xd7\x0b\xd7\x23\xd7\x1d\x49\x75\xfd\xd1\xce\xf0\x94\xe6\x4d\x7d\x40\xb0\xd7\xdf\xc3\xfb\x9f\xee\x1d\xb5\x0b\x38\xe6\x06\x9e\x17\x21\xa5\xa0\xce\xd8\x95\xc5\x4e\xd9\x89\xfe\x00\x2f\x61\x56\x66\xb8\x28\xcd\x45\x75\xe8\x95\xab\x8d\x5f\x72\x4c\x83\x57\xb1\x71\x3b\x82\x7d\x44\x15\x30\xf3\x4c\x0b\xbc\x58\xd2\x75\xa8\xae\xef\xed\x06\xdc\x34\x35\xf4\xf5\xbf\xff\x3b\x47\x94\x27\x0e\xe1\x3f\xfe\xc3\xbc\x7e\xf2\x8d\x10\xb7\x8c\x71\x73\x8e\x1a\xb7\xcf\xfe\x28\xf6\xb0\xba\x8c\x8a\x50\xda\x9f\x92\x52\xec\x2a\xcc\xe6\xca\xac\xc7\x0a\x16\x79\xfe\xdd\xd5\xbb\x77\xfe\x57\x00\x00\x00\xff\xff\x3c\xfe\x79\xfe\xf3\xb1\x00\x00") func confLocaleLocale_nlNlIniBytes() ([]byte, error) { return bindataRead( @@ -4499,12 +4499,12 @@ func confLocaleLocale_nlNlIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_nl-NL.ini", size: 44002, mode: os.FileMode(493), modTime: time.Unix(1441457542, 0)} + info := bindataFileInfo{name: "conf/locale/locale_nl-NL.ini", size: 45555, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_plPlIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\xbd\x5b\x93\x1c\x45\x96\x27\xfe\x2e\x33\x7d\x07\x47\x6d\x32\xc0\xac\x48\x0c\xf8\xdf\x8c\x3f\x29\x56\x48\x34\xa8\xd1\xa5\x96\x2a\xad\x6c\xc0\xb0\xc4\x33\xc3\x2b\x2b\x2a\x33\x23\xa2\xe3\xa2\x24\x72\x6c\x1e\x16\x03\xdb\xcf\xc0\xf2\x32\xdf\xa1\x9f\xb6\x87\xa7\x69\xd5\xf7\xda\xf3\x3b\xc7\xaf\x11\x91\x25\xd1\xd3\x36\xfb\x52\x59\xe1\x77\x3f\xee\x7e\x6e\x7e\xce\x71\x5d\x55\x8b\xcc\x34\xab\xf9\x67\xe6\xb0\x2c\xb7\xa6\x29\xb4\xea\x9a\xeb\x1f\xbb\xb5\x56\x5f\xe4\xad\x2a\x74\x95\x37\x9a\x12\xf7\xea\x8b\x52\x65\x87\x5c\x5f\xff\xa8\xaf\x5e\xfd\xbc\xd2\x0a\x89\xf4\xd1\x14\xfd\x4e\x35\xa6\xde\x9b\xfa\x60\x6e\xdf\xba\x7d\xeb\xb2\xdc\x99\xf9\x59\x5b\x97\x54\x60\x7d\xfd\xe3\xdf\xfe\xb2\x2f\xf4\xed\x5b\x99\x6e\x2e\x97\xa5\xae\xb3\xf9\x69\xb7\xad\xf2\xf6\xf6\x2d\xf3\x43\xb5\x2d\x6b\x33\x7f\x96\x6d\xea\x7e\xaf\xaf\xa8\xa6\xd9\x56\xf3\xd3\x72\x57\xae\x6e\xdf\x6a\xf2\x75\xb1\xc8\x8b\xf9\x37\x7a\x5b\xae\xbb\x2b\xd5\xe4\xaf\x7e\xa1\xd4\x72\x95\xeb\xed\xc2\x65\x7e\x6d\xae\x4c\xd3\xd6\x7a\x75\xa5\x55\x55\x1f\x7a\x55\xa1\x72\x4f\x85\xcd\x2a\x57\x4d\x55\x5e\xff\x68\x56\x87\xa2\xbc\xfe\x75\x95\x97\xfb\x7e\x75\xf9\xb1\xfa\x50\x6d\xea\x72\xa3\x3e\x69\x76\x7a\xbb\xbd\xb7\x29\xaf\x34\x0d\xbb\xc8\x8d\xda\x94\x45\xab\x3f\x79\x5f\xd2\x6d\xff\x65\xd7\xce\x5f\xf4\x3c\x00\x9b\xd2\x55\x34\xa2\x5a\xba\xf5\xa3\xaa\xcd\x3a\x6f\x5a\x53\x4f\x64\xed\xcd\xb2\xc9\x5b\x07\x8f\xdb\xb7\x5e\x9a\xba\xc9\xcb\x62\xfe\x82\x7e\xaf\xe8\xbb\xd2\xeb\x90\xd9\x9a\x5d\xb5\xd5\x28\x7d\xd0\xcb\x6d\x59\xdc\xbe\xb5\xd5\xc5\xba\x43\x91\x3f\xbd\xfa\xe5\xd0\x6f\x6e\xdf\x5a\xd5\x86\x0a\x2c\x0a\xb3\x9f\x3f\x6f\xf7\x7f\xfb\x4b\x7d\x50\x05\xcd\x6c\x36\x9b\xdd\xbe\xd5\xd1\x2a\x2c\xaa\xba\xbc\xc8\xb7\x66\xa1\x8b\x6c\xb1\x03\x78\x4f\x39\x41\x75\xd7\xbf\xf5\xed\xa6\xdc\x17\xf9\x46\xab\x5c\xed\x69\x74\x2b\x63\x67\x65\x32\x02\xe6\x42\x37\x02\xec\x72\xaf\x8b\x5e\x5d\xe9\x4d\x89\xd5\x44\xa3\x85\xa6\x15\x7d\xaa\x0f\x7b\xad\x9e\x47\xcd\xd0\x12\xee\x74\xbe\x9d\x7f\xfe\x1e\x7e\x30\x97\xa6\xd9\x97\xb4\xc2\x5f\x6a\xda\x41\x25\xe0\xb2\x68\xfb\xca\xcc\x5f\xd0\x1e\x3a\xd0\xda\x14\xa8\x47\x7b\x64\xa5\xab\x76\x75\xa9\xe7\x0f\xe4\x17\xdd\xd4\xa6\x2a\x09\x50\x65\xdd\xd3\xa2\x56\xe5\xa1\xa7\x7f\xf3\x6e\x77\xfb\x56\x59\xaf\x75\x91\x1f\x74\x0b\xa8\x3d\xb3\x1f\x2b\x80\x6e\x97\xd7\x75\x59\xcf\x9f\xf0\xcf\xed\x5b\x04\x92\x05\x5a\x99\x3f\x2d\xf7\x46\xd5\x49\x23\xc8\xdb\xe5\xeb\x1a\xb0\xa5\x6c\xad\xf8\x83\x5b\x41\xd6\x45\x59\x6f\xe6\x7f\xa4\x3f\xb4\x6c\xe3\x8a\x34\x02\xa9\x54\x26\xbd\xd3\xa1\x58\x1b\xce\xa4\x55\x3f\xbc\xfa\x39\x3b\xe8\xab\xb8\xc8\x2e\xbf\x7d\x4b\x67\x3b\x02\x6c\xa5\x0b\xb3\x9d\x9f\xe2\xaf\xe2\x14\xaa\xae\x57\xab\xb2\x2b\xda\x45\x63\xda\x36\x2f\xd6\xcd\xfc\x79\xd3\xea\x7d\x4e\x3b\x51\xcb\x4e\xa4\x95\x19\x67\xdd\xbe\xd5\x97\x9d\x5f\xe3\xf9\x39\x6d\x80\x2b\x25\x5f\x36\xcb\x57\x3a\xdf\x97\x57\x86\x8e\x72\xa8\xca\xb3\x69\x16\x17\xc6\x64\xf3\xaf\x68\xf4\xd7\x3f\x2a\xbd\x69\x3b\xbd\x95\xf3\x41\xeb\xd7\x6d\xb7\x04\xc2\x3f\x77\xb4\x83\x9b\xf9\xb3\xd5\xc1\x10\x40\xe8\xa8\x1b\x75\xd8\xe5\xb4\x27\x6e\xdf\xca\x9b\x86\x32\xb1\xa5\x96\x5b\xb3\xeb\xd1\xe6\x4a\x17\x2b\x9a\xdd\xfd\xa2\xdb\xe2\x90\xdc\xbe\xf5\x6d\x63\x74\xbd\xba\xfc\x0e\x13\xc0\x3f\x74\x80\x9a\x43\xb7\xc9\x69\x57\xe5\x86\xf7\xe9\xd1\xb5\xc6\x5e\x9b\x47\x3b\xcc\x76\x38\xff\x86\xd0\x48\xd9\xf0\x31\xa5\x0e\xcb\xcc\xcc\xbf\x2a\x33\xee\x2b\x2f\x68\x82\xdb\x2d\x75\x66\xff\x9b\x3f\xe2\x5f\x59\xa3\x36\x6f\x09\x4a\x5f\xd1\x79\xcf\x55\x6e\xd3\xfb\xab\xc2\xa8\x6c\x4b\xf8\x22\x27\x9c\x45\x8d\xae\x4b\xd5\xd5\xdd\x8a\xb0\x96\x85\x13\x20\x40\x47\x76\x91\x2d\x05\x33\x7e\x51\xae\x1b\xb5\xef\x77\x9a\x50\xe2\x93\xfe\xec\xbf\x3e\x3e\x51\xa7\x65\xd3\xae\x6b\x43\xff\xab\x6d\xb7\x54\xf4\x4b\x15\x3e\xa2\xa9\x51\x1d\xe9\x34\x5a\xce\xa5\x26\xc4\x94\x11\xfc\x56\x97\x52\x00\x47\xe2\xbc\xaf\xd2\x8c\x4b\x6a\x72\xfe\x25\xfd\x99\x02\xc3\xe8\x64\x51\x33\xd1\xa1\x1c\xf6\x00\x3c\x4a\x4d\xd0\x32\x35\x87\x57\xbf\xf0\xd1\x7f\xf5\x3f\x08\x21\x6d\xf9\xf0\x3f\x7a\xfa\xf4\xd9\xc3\xcf\xd4\x81\xf6\x59\x56\xf2\xaa\xec\x54\xd7\x5e\xfc\x7f\x8b\xb5\x29\x4c\x4d\xd8\x95\x50\x27\x00\xc4\x73\xa5\x39\x35\xcd\x96\x30\x09\x01\xfd\xbc\xee\x69\xae\x67\x8f\x31\x9e\xf6\x72\x7e\xfd\x3f\x57\xb9\xb9\xfe\x0d\x78\xa0\xf9\xf3\x16\x10\xb3\xfd\xfa\x0c\x95\x95\x32\xb6\x00\x20\x53\xd7\x0b\xc2\x72\x6d\xbf\xb0\x75\xd2\xa6\x7c\x0d\x99\x8d\xab\xa8\x80\xa0\x77\xe5\xf5\x6f\x46\x2d\x31\x95\x0a\xfb\x7a\x86\x1d\xe0\xc6\x3c\x82\x7a\xb9\xfe\xdb\x5f\xb6\xb4\xd4\x58\x3d\x3a\x6e\x44\xe6\x22\x80\xe9\x6a\x4b\x90\x58\x5d\xe5\x21\xc7\x0d\xfe\x39\x6d\x83\xeb\x5f\xa9\x8f\xb6\x6b\xe9\x40\x53\x6b\xdb\xcd\xab\x9f\x09\x63\x62\x0f\x5e\xff\x5a\xd0\xff\x05\xb5\x41\x60\x6d\x70\xc2\xe2\x23\x9f\xbf\x25\x7b\x5b\xe6\xf4\x95\x6e\x81\x4d\x23\x84\x42\x94\x30\x2a\xe0\x3a\x7c\xa1\x5a\x22\xa0\x1b\x29\xdd\xa9\x03\x6d\x01\x8d\x5e\x0e\x42\x79\x8d\xa2\x4d\xda\x37\xed\x26\x8f\x91\x1a\x13\x67\x1c\xa5\x8e\x48\x12\xb6\x8b\xcc\x2b\x41\xf2\xd1\xae\x26\x8c\xb8\x2e\x43\x69\x3f\xd7\x50\x5c\xed\xba\x26\x27\xb4\x68\x68\xe6\x19\x0d\xe1\xd5\x2f\x15\xd6\xc2\x0f\x2b\x99\x05\x41\x83\x1b\xd7\x40\x0b\x18\x0b\xc1\x18\x9b\xbf\x24\x3a\x50\xcc\x1f\x12\xfd\x67\x8a\xcf\x9f\xae\xaf\xf3\x52\xed\xab\xeb\x1f\x7b\xac\x24\x31\x06\xcf\xbf\x7e\x6c\xb8\x83\x2d\xa8\x02\xb7\x52\x95\x44\xc2\xcd\x81\x76\xd8\x97\xbc\xeb\x2e\x17\x55\x59\xb7\xc4\x0f\xd4\x2d\xd2\x42\x92\x6b\xf2\x69\xb7\x33\xb5\x42\x4a\x77\x82\xed\xdc\x12\x39\xc4\x71\xde\x94\x35\x20\xa6\x29\x4d\xf8\x12\x54\xff\xff\xa9\x20\xc3\x76\xcf\xbb\xc7\x9c\x28\xbd\xec\xe9\x58\x5f\xff\x48\x18\xee\x80\x4d\x75\xd1\x15\x9b\xd5\x15\x2d\xac\x0c\xe0\xb2\x6d\xab\x68\x04\x5f\x9e\x9f\x9f\x46\x89\x13\x63\xc0\xb4\x78\x0c\xb4\x9c\x6e\x83\x69\x05\x76\xc0\x41\xb4\xc0\x9e\xc5\x86\xeb\x6a\xc2\x98\x59\x6d\x1a\xc0\x61\xb8\x1b\x29\xf3\x08\xd0\x34\xaa\xf4\x31\xcc\x30\xaa\xf7\xf1\xe7\x0c\x34\x9d\x76\xab\x26\xa8\x33\x3a\xd7\x74\x7a\x0c\x13\x66\x3e\x27\x65\x05\x02\x3a\x79\x50\xaa\xd5\x15\x72\x0a\x63\xe9\xf9\xb8\x88\x40\x51\xdb\xf6\x68\x21\x76\x04\x05\x46\x58\x67\x16\xbe\x4f\x00\x1c\x4e\xbe\xa8\xcb\x1d\xb1\x74\xd1\x97\x9b\x8c\x4c\x98\xc0\x5f\x6e\x3b\x75\xe7\x59\x76\x87\x16\x6d\x5d\x66\x98\xdb\x41\x7d\xfd\xc7\x07\xea\xff\xfe\xe8\xc3\x0f\x67\xea\x49\x38\xe6\x6d\x49\x85\x41\xdf\x1a\x82\x2e\x4f\x5e\xf1\x08\x4f\xd4\x92\xe8\xed\xf5\x5f\xff\xfd\x5f\xb5\x6d\x93\x28\xf8\x4e\x13\x0e\x51\x77\xf8\x20\xdc\x51\x9f\x70\xc1\xff\x62\x7e\xd0\xc4\x52\x99\xd9\xaa\xdc\xdd\x9b\x81\x68\x13\xd9\xac\xdd\x89\xc9\xf4\x9e\xd8\xd8\x08\x66\xca\x71\x32\xb6\xdc\x00\xed\xd2\x12\xa0\x4a\x1f\x18\xbe\xc5\xaa\x2c\x2e\xf2\x7a\x37\x7f\x21\xdb\x88\x86\xdb\x12\xcc\xea\xec\xc0\x70\xab\x3d\x7b\x9a\x4b\x9b\x8b\xa2\x6c\xf3\x8b\x3e\x2a\x2e\xbd\x0b\x98\x3d\x78\x4d\x4d\x6c\xe2\x02\x3f\xf9\xca\x1c\x5f\x0e\x10\x35\xc6\x92\xc2\xb0\xd3\x22\x5f\x5c\x6c\xf3\xc2\x08\xb6\x76\x7d\xb4\xc0\xda\x36\x27\x2d\x42\x1b\xb9\x22\x7e\xf6\x85\x3d\x03\xea\xc1\xc3\xa7\x27\x34\xc7\xbd\x69\x09\xa2\xa8\x46\xf0\x24\xe0\x67\xdd\x06\x54\xb3\xdf\x9d\x44\xa8\x08\x5b\x36\x27\x1c\xd5\x94\x4b\x20\x84\xe5\xab\x5f\x32\xc2\x59\x55\x49\x00\x02\xce\xda\x96\x1b\xda\x51\x44\xef\x09\x0d\x10\x16\x23\x6e\x61\x41\x0c\xd7\x4b\xc2\x26\x75\xe8\x4f\x86\x4d\x07\xee\x0b\x9b\x35\x2e\x6c\x87\xf8\x50\x92\x7d\x41\x45\xdc\xad\x5a\xd1\x31\x2e\x49\xf4\x20\xb6\x67\x65\x1a\x3a\xcf\x5b\x62\xaf\x38\xbb\x51\xc4\x87\xab\x8e\xc4\x0b\x9d\x99\x8c\xf6\x92\xc2\x8a\x37\x84\xaa\x55\x66\x2e\x74\xb7\x6d\xa3\x71\xc9\x5a\xd6\xc2\x60\xfa\xb1\x35\x9a\x20\x74\x20\xe4\x0f\x54\x1c\xd6\x11\x2c\xfd\x54\xc5\x21\x28\x8f\x56\x4f\x50\xf4\x09\xa1\xfe\xed\xa6\x14\xa6\x50\xda\xa2\x21\x02\x96\x07\xd0\xbb\xbf\xfd\x85\x68\x8e\x6a\xf7\x40\x67\x74\x1a\x98\x2d\x9c\x59\xfe\x84\x58\x6b\x2b\x04\x2d\x5e\xe6\x24\x0c\xb8\xd5\x26\x3e\x85\xaa\xd1\xc2\x58\x46\x3e\x67\x92\x0a\xc4\xba\xde\xd2\x99\xe1\x84\x06\xe2\xc6\x74\x3b\x76\x1e\xe7\x3c\xac\xd0\x48\x34\x6a\x92\xae\xec\x62\xef\xca\xf5\x36\x8f\x9a\x06\x8b\x81\x96\xfb\x13\xb5\xe6\xe3\x44\xe7\xba\x5c\xea\x15\xf1\xc6\x76\x9e\x9c\x4d\x30\xf0\x63\x9b\x39\x16\xd9\xb2\xad\xc2\x70\x3d\xc5\xe4\x89\x1c\x91\xcc\x90\x4e\x3e\x05\x94\x56\x74\x02\xf5\xe1\x24\x06\x29\x61\x92\x47\x0f\xd5\x5c\x7d\xa0\x68\xa3\x32\x3b\x21\xa4\x6c\x50\x51\x77\xb4\x73\x74\xdb\x93\x6c\xc8\x7b\x54\x06\x31\x3a\x68\x53\x9d\xba\xc2\x47\x65\x22\xc7\xf3\x0f\x38\x36\x8b\x29\x42\xc6\xa9\x45\x15\xd7\x7f\x55\x97\xb6\x8c\x54\x4d\x85\x2a\xcb\xd7\x2e\xd6\x44\x63\x49\xd2\x90\x4f\x92\x53\x84\xaf\x69\x69\x63\x2d\xd6\x79\xbb\xb8\x00\xc6\xca\x18\x74\x5d\xa6\x81\xac\x20\x7f\xf2\xea\xa0\x0c\x81\x1b\x6c\x13\x09\xf8\x2b\x9e\xd9\x1d\xaa\x73\xe7\x63\x75\xf7\xa5\xe3\xdd\x3e\x02\x6a\x5a\xd0\xf1\xc9\xb7\xd8\xdc\x56\x7c\xd8\xf7\xd8\x31\x86\xd9\xaf\x72\xc9\xc7\xb5\xa3\x64\xcb\x95\x9d\x30\x6a\x06\x87\x59\x95\xcb\x1a\x1d\x90\x20\x42\x34\x0f\x6c\x97\xab\x79\x50\x77\x71\x34\xd5\xd3\x47\x9f\xab\x3d\x64\x5e\x2a\x7d\xa0\xfd\xb1\xec\xf2\x6d\x36\xc3\xf4\x5e\xea\x6d\x9e\x81\xd9\xb6\x7b\xe0\x08\xeb\xcc\x63\x68\x18\xc7\x54\xb5\xde\x17\x46\x46\xef\xea\x07\xbe\x2b\xf0\x92\x29\xcf\x82\xfa\x4c\x8c\x6d\x03\x5a\x1a\xf0\x3c\x11\xe6\x4f\x7b\x82\x04\x96\x98\x2d\xf2\xb4\x39\xd4\xb7\x42\x13\x51\xf9\x68\xe3\x11\x13\x4d\xed\x35\xea\xbd\x7b\xf4\x97\x80\xaa\x5f\x1a\x21\x0e\xeb\x63\x4b\x23\xfc\x9d\x6c\x6d\x2a\xd6\x31\x99\x48\x27\x95\x9c\x0d\x34\x80\x81\xe7\x19\x35\xb1\x8f\x45\xbb\x78\x9f\x6a\xd7\x82\xec\x9a\xa6\x5b\x11\x6e\x6c\xe6\x0f\x0e\xcc\xd4\xbe\xa5\x1e\xe4\x86\x70\xf8\xae\xe7\x31\x9c\x28\x90\xda\x3d\x10\x7d\x4d\x03\xa3\x22\xbc\xad\x88\xbc\x12\x97\xc4\x83\xcc\x68\x61\x0f\x86\x39\x88\x6f\xa1\xd7\x21\x41\xab\x13\x6e\xb9\xdc\x66\xd3\x6c\x27\x04\x22\x33\xd0\x08\xb8\xe2\xee\x30\x34\xfb\x9c\x00\xbd\xf0\x3a\x21\x80\xaa\x35\x3f\x10\xab\x45\xbd\x59\x4c\x86\x49\x99\x0d\xc1\x5b\x90\x8a\x53\x25\x41\x67\xb1\xeb\x79\xbd\x9b\xf9\x13\x6c\xd2\x88\x2b\xc6\x31\xdb\xd2\x06\x2e\x81\x95\x5f\x1a\x5b\xea\x45\x53\x89\x2c\x90\x94\xa4\x46\x88\x75\xb7\x6d\x04\x26\xde\x70\x8e\xe8\x16\x6c\xa6\x7c\x10\xd9\x67\x0c\xc9\xea\xad\xff\x46\xff\xf1\x42\x3b\x99\x78\x46\x0b\xc5\x02\xb8\xed\x12\x98\x2b\xa7\x5d\x1b\x75\x09\xe1\x8c\xc0\x68\xd5\x5e\xdf\x59\x39\x38\x12\x81\x59\x46\xff\x96\x70\x13\x84\xe7\xa0\xe8\x59\x58\x5d\x01\x9d\x7e\x80\xe0\xfa\x37\x68\x7c\x44\x5f\x55\x46\xac\xc8\xa5\xa9\xc0\xb3\xec\x9a\xf5\xfc\x89\x26\xd4\x79\x45\xab\x22\x85\x3e\x55\xb1\x12\x4d\xb0\xe6\x5b\x5e\x97\xf6\x46\x0d\x9c\x12\xa3\xf2\xea\x67\xfa\x26\x70\xb8\xfa\x29\x1d\x14\xd5\x13\x49\x76\xbc\x86\xb4\x51\x9b\x83\xa6\x6d\x56\x47\x1a\x3a\x66\xbf\xaf\x7f\xd4\x9e\xeb\x26\xb6\x73\xa6\x20\xa5\xe6\x54\xb2\x94\x6d\xbc\x69\x09\x3f\x24\x28\xd7\x88\x7a\x31\x6f\xba\x11\xd5\xc6\x70\x81\x2c\xe3\x2e\x4f\x8e\x33\x61\x6e\x04\x7d\x34\x02\xa3\x44\xea\x48\xb1\x3c\x93\xd9\x9d\xd9\x2d\xd1\x83\x21\xc8\x57\x24\xeb\xbc\xfa\x05\x12\xe1\x8e\xb5\x10\xc4\x70\xae\x09\x61\x78\x6c\x4e\x25\x4a\xca\xc1\x29\xda\x09\x3e\xd7\x52\xc8\x4c\x17\xa2\xa3\x26\xa5\x3e\xf5\x8a\x45\xc2\x40\x7b\x50\x05\x1a\xce\x92\xb0\x6c\x23\x47\x40\x63\xf5\x52\xad\xa2\xac\xc0\xcc\xd3\x14\xe1\x40\x98\xbf\x6c\x4c\xd1\xba\x75\x60\x9d\x95\xe7\x6e\x09\xd1\xc8\xa9\x54\x29\x97\x4a\xc3\x8d\xd6\x05\x23\x2a\x98\x65\xf8\x64\x79\xef\x6e\xf3\xc9\xfb\xcb\x7b\x01\xcb\x37\x40\x3f\xc4\x9a\x80\xd0\x13\x79\x20\x5c\xdc\x6c\x88\x3a\x17\x1b\xca\x2b\xb3\x65\x5e\xd6\x4c\xeb\xf7\x6a\x45\x7b\x65\x0d\x79\xe8\x6a\xb9\xcd\xaf\x7f\x23\x84\x43\x27\x61\x0d\x86\xa8\x50\x77\x33\x16\xbc\xb2\x72\x53\x5e\xff\x24\x82\x17\xb5\x4f\x48\x2a\x5e\xa8\x99\xd7\xff\x5a\x6a\x98\x6c\x60\x1a\x60\xc3\x9a\x2f\x2b\x12\x58\x64\xa3\x57\x7c\xe6\xf9\x14\xba\x23\x73\x7f\xd3\xf6\x7b\xd4\x63\x72\xe6\x8f\x0c\x83\x69\x9b\xef\xf2\x00\x2c\xc2\x8b\xad\x69\x69\xf7\x1c\x96\x7d\xab\x68\x22\xbf\x10\xd5\x04\x44\x7a\xe8\xb8\x0f\x0e\x78\x1a\x0d\xb2\x16\xa9\x97\xad\x7b\xe0\xc9\x43\x57\x06\x5c\xfe\x11\x21\x8b\xa2\x6b\x7b\xc8\x8f\xba\x59\x74\x85\x5d\x22\x93\xc9\x46\x7d\x91\xd3\x16\x3a\x61\x9a\xb8\x43\xab\x04\x7f\xbf\x18\x40\x72\xf1\x8c\xd4\x3b\x7e\x0d\xde\x9d\xa9\x3f\xd1\x96\xd9\x0a\x15\xc2\x16\xe9\x77\x76\x17\xc5\xe2\xcb\xb1\x05\x06\x4a\xae\xe2\x8d\x25\x0b\x4d\xe3\xa5\x2d\xf7\xea\xe7\x13\x92\x28\xf3\x4d\x91\x5f\x01\xb2\x55\x59\xc8\x92\xb1\x42\x7d\x95\x37\x9b\x99\x85\x98\x9d\xc2\x57\xb6\x2c\xeb\x47\x9c\x14\x6d\x9b\x1b\x03\xc9\xc9\x94\xcc\x5d\x34\x8c\x72\x5a\xe2\x2e\x4c\x91\x4e\xd5\x13\xd7\x46\x34\xf2\x80\xc5\x81\xa8\x93\xce\x40\x67\x99\x14\xec\xb0\x29\x30\x0a\x0c\xa6\x3d\x3a\x96\x77\x9c\x9a\xf9\xdd\xd1\xb0\x0e\xac\x04\xac\x49\x9c\x81\x76\x56\x71\x3b\x96\x47\x76\x27\x56\xda\xf6\x07\xf6\x6b\x5f\xc4\xf8\x22\x8e\x38\xb3\x1e\x32\x6c\x9b\x96\x77\xe4\xa6\xcc\x02\xf0\xf9\x9e\x04\xd0\x59\xa3\x2a\xaf\x02\xcf\xb1\x88\x09\x79\x3f\x1b\xf6\xea\xe4\xe5\x89\xc9\x1d\xdc\x98\x69\x52\x8e\x69\xf4\xd5\xda\xb2\x5c\x34\x97\x50\x58\x3c\x04\xa3\x26\x67\x5e\x46\x3d\xd4\x9f\x01\x87\x5d\x11\xb6\x54\x58\x6b\xf5\xff\xa8\x43\xa1\x37\x44\x5c\x85\xce\x93\xe4\xa2\xa1\x51\xed\x4d\x33\x3f\xd7\x9b\xdb\xb7\x8a\x12\xf3\x24\xba\x58\x66\x10\x5e\xbf\x81\x86\xec\x27\x2e\x0a\xb1\x9b\x4a\x3e\x27\xfc\xfc\xf4\x18\x3f\x0c\xfa\x16\x65\xa6\xfa\xf5\xcf\x79\x19\xef\x27\xe7\xf8\x74\xc8\x3a\x7f\x6d\x26\x6e\x11\xfc\xfc\xcf\xce\xbe\x3c\x67\xc6\x5d\xda\xdf\x6c\xbb\x15\x4d\x8c\x15\x46\x5f\xb6\x6d\xd5\x3c\xaf\xb7\x73\xd1\x90\x3c\xff\xfa\x31\x5a\xef\x21\x16\x22\x15\xba\x97\x0c\x67\x7c\x5f\x02\xed\x81\xfe\x9e\x1b\xbd\x8b\x06\x7b\x30\x7c\x87\xd4\xdd\xbe\x75\x9f\xa8\x72\x94\x01\x01\xa2\xee\x0f\x22\xd9\xdf\x07\xe9\xf8\x3c\xe2\xda\x47\x22\x43\x10\xb6\x0c\xdf\x59\x7c\x3f\xa5\xd0\x34\xb3\xef\x09\x89\x6d\xab\x4b\xcd\x8c\x91\x2f\xca\x9a\x39\x46\x7c\xcd\x86\xc6\xc9\x82\x16\xc1\x21\xec\x20\x42\xae\x76\x01\x49\x06\xbe\xd0\x05\x54\x52\x10\x6d\x28\x83\xd0\x4c\x4f\x78\x83\x56\x02\xb9\x34\x16\x00\x30\xdb\xd4\x40\x26\xb4\x88\x83\x1e\x33\x3a\xa4\xff\xf0\x5e\x4f\x92\x1e\x65\x0c\x9b\xba\xac\xcc\x06\xbd\x37\xf9\xc1\xc4\x7d\xb6\x6a\x49\x6c\x3e\x25\x12\x8e\x44\x3e\x33\xc0\x83\x32\xd0\x3b\xe0\x84\x61\x48\x2b\x68\x65\xae\x88\x9c\xff\x66\xae\xc0\x7f\xbb\x9d\x8c\xaa\xfa\x87\xbf\xb7\xaa\xe0\xac\x78\xad\x62\xc9\x01\xfa\x3d\xec\x58\xc2\xac\x56\xc3\x46\x55\xa0\xb5\x7b\x83\x0a\xb4\xe7\xb8\x74\xb1\xc1\x36\xb6\x35\xe8\x74\x51\xe7\x84\xf2\x96\xe0\x4a\xb2\x8f\xfd\x0d\x19\x11\xc0\x55\x59\xd7\x66\xd5\xe2\xc6\x43\xd9\x54\x6e\xff\xb0\xd6\x84\x61\x78\x85\x66\x11\x12\x08\x52\x8c\xd5\x59\xe5\x29\x31\x88\xea\x32\x01\x97\xea\xe1\x9a\x6f\xb1\x34\x86\x24\x61\xbd\x31\xc5\x14\x73\xcf\xb3\x62\xc6\x10\xf5\x7f\xb1\xfa\x08\x12\xbd\xa6\xeb\xc6\x87\x7d\xb2\x2e\x31\x48\x47\xaa\x46\x6a\xf5\xc9\x9a\x2d\x9d\xd4\x23\x55\xdd\xa9\x9d\xac\x27\x4b\xcb\x75\x68\xce\x59\x82\x7b\x92\x0a\x96\x1d\xe1\xdb\x50\x08\xaa\xdb\xad\x59\x43\x7f\xea\xfa\x1d\x76\x66\x37\x16\x00\x9c\x95\x87\x7d\xb9\x05\x6f\x89\x3d\x95\xcf\x22\xf0\xfa\x85\x0a\x2b\x7b\x44\x86\xba\xb4\x3a\x47\xbf\x97\x82\xec\x87\x69\x10\x45\xa4\xea\x68\x27\x12\x80\x79\x5c\xcf\x2b\xb3\x07\xdd\x88\x24\xbc\x0a\xd3\x00\x87\xa1\xf9\xf2\x62\x6a\x61\x9c\x54\x3c\xd5\x36\x8d\x0a\x02\xf2\x74\xe3\xd2\x20\x2c\x01\xc0\x83\x90\xec\xbd\xfd\xbd\xcd\x07\x95\x88\xbb\xb0\xba\x61\x06\xa5\x03\x4c\xdc\xac\x71\xb7\xdf\xd8\xfe\xe6\x07\xc2\xbc\xc4\x48\x43\x6f\x90\xe8\x86\x00\x4a\xca\x02\xed\x43\x85\xad\x6e\x5a\x88\x80\x32\xbd\xf9\xf3\xa6\xdb\x0f\x6b\x70\x1f\xe0\x8e\xa9\xd2\x8e\x98\x42\xea\xb7\x80\xa8\xaf\xcc\x26\xaf\xfa\x64\xd2\xf9\x4c\x3d\x01\x7e\x61\x74\x0e\xbd\x6c\x92\xcb\x67\xcc\xcd\x17\xf7\x18\x1b\xd3\x47\xcc\x83\x5b\x64\x42\x92\x10\xcd\x5b\x51\x9d\xec\x09\xa1\x5e\xe4\x1b\x21\xf7\x2d\x38\x58\x5c\x6e\x78\xfa\xf6\x31\x0b\xa0\x24\x8e\x43\x1e\x7a\x69\x6a\xa2\xcd\xbe\x69\xbe\xb3\x0c\x34\xe6\x75\x4d\x41\x79\x4a\xa5\xb4\x60\x7a\xc8\x50\xa8\x95\xa0\xb0\xa1\x18\x70\xfd\x57\xa8\xe7\x83\x9e\x53\xf4\x68\x44\x25\x9d\xbe\xe3\x39\x8e\x03\x6d\x02\xe4\x79\x25\x12\x14\xde\x65\xe6\x74\x20\xa2\xab\x20\x22\xd0\xd2\xe9\xc2\x32\xc8\x05\xfe\x79\x60\xd6\xed\xf5\x09\x8d\xee\x2a\x81\x27\x2d\x41\xbc\xc7\x4e\x9c\xbe\x90\xaf\xbc\xbb\xe2\xd5\xcf\x34\x4d\xe6\x7a\x6b\x30\xe6\x07\x9a\xf5\xcc\x75\x03\xbe\x1c\xb7\xf6\x71\x2f\xd2\x01\x6e\xa5\x69\xfa\x6e\x9d\x69\xdd\xf7\xc4\x1d\xc4\x98\x28\xf4\x43\xb8\xb3\xac\x3a\x0c\x87\x7a\x72\xb7\x11\xae\x6b\x8b\xd8\x86\xd3\x4a\x2c\x08\x6c\x9f\x3c\xbf\xdf\x39\xb3\x7f\xff\x57\xd7\x61\x32\xbd\x18\x8e\x7c\xc3\x71\x5e\xaa\x2e\x5a\x04\x46\xff\x51\xaf\xd8\xe8\xac\xac\x17\x01\x78\x93\x6f\x37\x5d\xbc\xfb\x99\x76\x87\xde\x2b\xb1\x93\x61\xae\x32\x0f\x50\x76\xfc\x18\x0f\xa0\xd5\x2c\xf0\x2e\x6b\x5d\xac\x2e\x87\x87\x51\xab\xb5\x06\x7d\xa3\x9d\x13\x9f\x44\x66\x24\x31\x5e\x28\x3d\x2e\x75\xb1\x36\x0b\x7b\x51\x20\x8c\xa6\x93\xf5\x44\xf1\x8f\x56\xec\x25\x00\x2e\x75\x7c\x15\xb9\x0c\x18\xd4\xd4\x7b\xae\xb3\x8f\x74\x65\x50\xc2\x5c\x95\xc4\x54\x94\xb8\xa8\xb4\x97\x7f\xd7\x3f\x46\x46\x09\x74\x28\x53\x9d\x0c\xcb\x95\x79\xdb\xcf\x4f\x3b\x12\x67\x89\xc3\xd1\x22\xe0\x14\xcc\x61\x43\xca\xdf\x6e\x4b\xe8\x36\xe7\xcf\x96\x50\x54\xb0\xcd\x44\x8f\xd5\xd0\x40\x73\x34\x79\xda\x89\x24\xa1\xf3\xed\xbc\x14\x86\x3a\x4f\x0a\xb3\x70\x01\x10\x80\x95\x9e\x31\x89\x00\xa3\x50\xbf\x84\xc6\x70\x4c\x18\xee\xdc\x6d\xee\xc8\xea\x81\x40\x1d\x6c\x03\xc0\xaa\xa1\x7e\xa5\x5b\x42\xb0\x85\x88\x5c\x3c\xb4\x6c\xfe\xe2\x50\xd2\xf2\xad\x18\x59\xf7\xc7\x9a\x8c\x28\x57\x3f\xb3\xa6\x1c\x62\x4d\x42\x4b\xe3\x6c\x4e\x4e\xad\xb5\xc9\x48\xc1\x6d\x51\x4f\x43\x72\x0b\xa1\x15\x63\xaf\x6c\x59\xc7\x44\xcc\x0b\x14\x94\x43\x7b\x2c\xc3\xf7\x9d\x04\x52\x56\x60\x34\xf3\xfb\x56\xd7\x6a\xf8\xf8\x34\x91\xb5\x0f\xa5\x64\x74\x34\x5a\x68\xe7\x3b\x5a\x58\x2b\xc8\x77\x39\xa1\x99\x47\x0f\x31\xd4\x8a\xd7\x66\x91\x8e\x52\x55\x76\xc5\x7a\x3f\x7e\xb9\x61\x38\x1f\xa9\x0f\x2c\xb2\x73\xe5\x69\x87\xbb\x6b\x18\x7b\x4c\x7a\xb6\x89\x70\x17\x60\xc4\xfc\x86\xbb\x3b\x1a\xd0\x01\xea\xb1\x83\x28\xaa\xad\xea\x72\xa7\xc4\x8c\x62\xa3\xaf\x7f\xcb\x60\x27\x40\x32\x1d\x73\x33\xfb\x9e\xf2\xe9\xdc\x5d\xd9\x83\xd7\xbe\xfa\xe5\xdf\xff\xd5\x5e\x8d\x60\x21\x61\x85\xc3\xb4\xf6\x11\x54\x4e\xd4\x0a\xf6\x01\xc9\xe1\xe5\xd8\x9a\x6c\x5b\x0a\xec\xe6\x8f\xcb\x2d\x91\x16\x6b\x9a\xd4\x55\x19\x54\x87\x0e\x16\xdf\x88\xc2\x3a\x3f\x74\xc1\x56\x28\x2d\xe2\xd5\xc4\xb1\x41\x91\x53\x0b\xc1\xa6\x4e\xb8\x79\xa6\x10\xd2\x94\xe3\x8a\xec\xe9\xf3\x46\x62\xdf\x88\xb9\x41\x51\x3a\x23\x89\x2e\x91\x05\x07\xc5\x65\x31\x6e\xac\x73\x42\xd8\xb8\x57\xab\xcb\x95\xd3\x87\xf5\x45\xc7\x54\xec\x53\x35\xb8\x1c\x0f\x77\x93\xdb\x9c\x88\xb4\x2a\xb3\x02\xf4\xea\x67\xa7\xc8\x16\x1d\xd0\xba\xf4\xf7\x68\xd0\x39\xe7\x45\x07\x63\xa2\x82\x5a\x85\xf5\xd2\xc8\x98\xc9\x08\x75\x4d\xb1\x8b\xbb\x6b\x2b\x40\xbf\x75\x91\xe9\x3a\x83\x42\x56\xb0\x4d\x3f\x5d\xc9\x5b\x7b\xb8\x5b\xd9\x52\x0d\xcc\x0f\x08\xad\xb9\x06\x56\x97\x65\xd9\x58\xdd\xaf\xbb\x33\x85\x8e\x5e\x6c\xfd\x94\xbb\x2c\xb5\x8b\xe8\x70\x5e\xb4\xcc\xd1\xdd\x80\x34\xca\xbb\x42\xae\x43\xdd\x80\x18\x3d\x2c\xf2\x1d\xac\x0b\xa1\x59\xd6\x99\x18\xfe\xe1\x10\x06\xae\x13\x17\x3b\x07\xd6\xbd\x14\xe5\x60\x46\xe1\xb2\xe8\x85\x98\x81\x7a\x1c\x0d\x3c\x22\x06\x0f\x96\xb7\x01\x17\x02\xcc\x5d\x82\xd4\xd9\x09\xcf\x06\x13\xf0\x9b\xf0\xf9\x70\xf0\x10\x31\xbd\xe6\xf6\xd8\x6e\x14\x02\x64\x37\x58\xd0\xb8\xca\xf1\x74\xba\x82\x72\x1b\x71\x9b\xf7\xe5\x1e\x27\x68\x12\x00\x6f\x9f\xcb\x56\x84\x23\x1d\x4b\xe0\xda\x3f\xc3\x25\x13\x1b\xc7\xdd\xcc\xa8\x0f\x46\xe4\x67\x69\xc5\x33\x3b\xaf\x12\x26\x76\x7c\x0a\x4c\x34\x43\x6b\x0c\x81\x7b\x50\x68\x7c\xfd\x85\x2c\x1b\x73\xf1\x15\x92\x18\xbc\xc2\x26\x89\x4d\x7c\xac\xba\x87\x41\xc1\x82\x4e\x23\xf2\x4d\xef\x95\x2b\xd6\x6c\xd1\x66\x46\x96\x8b\x8c\x0c\xa1\x16\x73\x25\x45\x50\x8a\xd0\x25\x89\xf1\x58\x19\xde\x81\x31\xe6\x9c\x44\x94\x09\x76\xf4\x86\x0a\xd6\x7e\xf8\xfa\x27\x88\xac\x35\xed\xbd\xba\x07\x6f\x60\x9b\xf5\x69\x56\xe9\xcb\x1b\x81\x0d\x51\xa3\xbe\x1d\x25\xf0\x65\x3a\xe8\xa2\x74\x96\xf1\x71\x91\xc4\x87\xc4\x6e\x5c\xc9\x59\xf1\xca\x61\x2a\x10\x67\x8e\xd2\x17\x89\x32\x1d\x0a\xe2\xff\xf3\x0a\xf4\xbb\x99\xd5\x9a\x9f\x1c\xd3\x99\x07\x5d\xa3\xbb\x4d\x77\xd3\x49\x51\x7a\x04\x0b\x8f\xd7\x33\x91\x90\xa2\xed\x86\x6d\x63\x37\x88\xa7\xe6\xd1\x16\x11\x79\x81\xb6\x08\x93\x76\x74\x05\x51\x43\xe0\xc9\x79\xc2\x04\xc8\x96\xb1\xac\xfb\x36\x87\x21\x16\xe7\xf6\xa8\xc7\x1b\x23\x22\x95\xc4\x85\xe7\x5e\xc1\xab\x2c\x75\x67\x06\xe2\xc4\x1a\x74\xf1\xc1\xaa\xcb\x03\x71\x64\x85\x86\xf6\xda\x1a\x87\x59\x84\xfa\x09\x53\xce\xf5\xbd\xe4\xe2\x44\xcc\xc0\x3f\xfd\xe4\x7d\x9b\xa9\xce\x9c\xcc\x52\x40\xeb\x0e\xba\xbb\x87\xe5\xd1\x46\x7d\xa2\xd5\x65\x6d\x2e\xe6\xe0\x82\xee\x29\xb6\x26\xb4\x2a\xe1\x30\xe6\x4f\xde\xd7\xf7\x58\x9a\xa0\x51\xf0\xe0\x7b\xd1\x08\x27\x75\xdb\xbe\x12\xa5\x58\x25\xc6\xb1\x8c\xb4\x5c\xed\x59\xd8\xa1\x03\x90\x05\xcb\x36\xca\x88\xd4\x12\xc2\x6b\x2a\x4a\x54\x7c\x37\x5a\xb4\x38\xdb\x0a\x05\x60\xcc\x92\xcd\x42\x25\xa6\xa4\xc3\x4a\xfb\xbc\xbd\x84\x74\x06\xd2\xb8\x63\x1c\x45\x22\x5e\x6d\x74\x46\xdb\x00\x2c\x39\xb7\xe0\x6a\x27\xaa\x53\x49\xb6\x9d\xce\xcf\x6b\x23\x5c\xae\x5d\x6e\xbf\xaf\x9e\x9a\x3d\xaf\x27\x3a\x7b\xfb\x6e\xf3\x76\x18\x1e\x95\x34\x99\xb2\xe5\xc0\xcd\xf4\x6f\xf9\x43\x8b\xd9\xdb\x23\xeb\x86\xcf\x39\xe0\x61\x28\xbd\x80\x55\x3a\x6c\xf1\x23\x25\xee\xb0\x9c\xec\xaf\xa8\x70\x9b\xca\xb2\x1e\x1f\x35\x9b\xae\xb5\x12\x6f\xe7\x4b\xef\x86\x2c\x9c\xdf\x8b\x96\x64\x61\xdd\xe8\xf4\xb6\x09\xb3\xa0\x1e\x1c\x61\x42\x26\x86\xe7\x00\xe4\x80\xe3\xe1\x22\x20\x18\x41\x06\x80\x65\x61\x84\x4e\x63\x69\xb5\x12\xbc\x9a\xcf\x44\xef\x50\x0a\x3f\x54\x32\x05\xf6\xb2\xc8\x67\xb5\xde\x04\x31\x04\xd6\xdb\xbc\x38\x2d\xe8\xa9\x1c\xc0\xcb\xbc\xe1\xfe\xe9\x07\xcd\x11\x0a\x56\x68\x5b\xfd\xbf\x24\x03\xf6\x30\x1d\x29\x37\xb4\xd9\x86\x35\x38\xf5\x68\x9d\x80\x1e\x84\xaf\x8f\x90\x43\x80\x25\x21\x08\x86\xda\x6e\xc2\x03\x03\x46\xf1\xf6\xde\x79\x02\x4d\x24\xeb\x81\x36\xa6\x5c\x38\x1c\x96\xf0\x85\x73\x6d\x51\x85\xb3\x12\x19\x20\x8b\xae\x58\xe6\x45\x36\x1f\xd6\x32\x2e\xc7\xaf\xd8\x57\xac\x0b\x18\x49\x29\x81\x46\x97\x59\x85\x4b\xe0\x04\x51\x6a\xae\xbb\x60\xb8\x25\x9e\x00\x4d\xb9\xa4\x49\x01\x1a\x9c\x07\x70\xd8\x2d\xd6\x39\xb3\x65\x7b\xbf\x2f\x75\x5f\xf4\x9c\xd8\x59\x64\xcd\x89\x76\x95\x1a\x07\x2c\xfc\xaf\xfa\xb2\xa3\x4d\xf5\xd2\x28\xd7\x48\xa6\xda\x4b\xdd\x2a\x62\x5e\xa1\x3c\xe7\x85\xa3\x79\xc8\xc0\x28\x4b\x6c\xa0\xd5\xfd\xd3\x47\x30\xd2\xf5\x1d\x4a\x9b\x7f\xa2\x6d\x44\xf4\x8a\xb8\x8b\x1c\x18\x17\xb2\x8a\xed\x1b\x06\x2a\x50\xc3\xd1\xb2\x18\x02\x48\x11\x9b\x05\x9f\x0f\x58\x69\x69\x30\x42\x25\x32\xe5\x68\x9e\xc3\x39\xda\xe9\xa5\xf9\xb2\x12\x24\x7f\x3f\xf5\x10\xf0\x30\xf3\x64\x6b\xdf\x7b\x2c\x1d\x13\xaf\xb7\xd4\x58\x35\x29\x5c\x13\x8d\x93\x84\xa7\x8a\x96\x52\xae\x4c\x67\x0a\xa6\x38\x16\x4b\xd0\x81\xb6\x76\x76\xeb\xd2\x9a\xab\xf5\x91\x56\x23\x60\x2e\x99\x80\x63\x37\xa2\x45\x4f\x10\x98\x10\x06\xbb\xf6\x80\x90\x00\x22\x5a\xf9\xc9\xaa\xd3\x38\xcd\xd6\x8d\x5a\x73\x4b\x40\x7b\x94\xe8\x57\x67\x75\x42\xb6\xce\x9b\x21\x36\x6f\xd0\x74\x13\x52\x8b\xe7\xec\x8f\xc7\x33\xbb\xa3\x8f\x2d\x8c\x1d\x4a\x9b\xae\xca\x53\x66\xd4\xd9\xee\xe1\x4a\x81\x95\x87\x0e\xe9\xb7\x84\x77\x17\x76\x08\xe3\x0e\x83\xc3\x09\xb3\xa3\x70\x77\xf9\x89\xe8\x6f\xf3\xec\xed\x3d\x54\x6b\x22\x5e\xd3\xd6\xab\xf7\x50\x66\x76\x58\x0c\x29\x7d\x42\x0c\xa8\x63\x13\x60\x87\xf6\xe4\xd9\xf5\xbf\x7d\x1e\x78\x03\x1e\x3f\xdf\x07\x5d\xf0\xf8\xf5\x5b\xc1\x5a\x6f\x30\x84\xc8\x66\x2f\x00\x7e\x38\x50\x6f\x47\x18\xc8\x99\x38\xf4\x0c\x8a\x39\x04\x28\x2a\x48\xcf\x45\x5b\x28\xb2\x4c\x7b\xd0\xf0\x50\x39\x39\xb2\x4a\xb7\x6f\x7d\x0b\xad\xd5\x77\x24\xd7\xb0\x06\xfb\x45\xa4\x46\x8c\xae\x65\x26\x2f\x5e\xc3\xa5\x8d\xe5\xa3\x1e\x92\xa4\x67\xac\x7e\x28\x51\xdf\xc3\xe6\x6e\x43\x0b\x07\xd1\xfa\x84\x24\x6e\x9d\x69\x71\x0a\xda\x2b\x31\x8a\x61\x7d\xa0\x83\x6f\x07\xa1\x9d\x84\x2a\x0f\xde\x19\xcc\xa6\x9a\x7c\x99\x6f\x41\xb6\x5e\xe4\x59\x29\xa8\x15\x3c\x05\x67\x20\x3d\xb2\x77\x1f\x5f\x1d\x7c\xd2\x54\x84\xd9\x56\x44\x88\x9a\xf9\x9d\x0e\xf7\xf6\x84\xdf\xcc\x0f\xed\x9d\x7b\x15\xfc\x06\x5b\xee\x8c\x8a\xdc\x8b\x1b\x84\x4b\x97\x6b\xf5\x9d\x07\x2c\x83\xa9\xf2\x82\xb0\x21\x91\xb6\x97\x7a\xdb\xd1\xf0\x73\xd8\x0b\x5f\x5c\x90\x30\xc7\xa6\xc3\xa8\xd1\xbc\xcb\x8a\xb4\x8d\x28\x6c\xcf\xf0\x2f\xcb\x96\x36\x95\x6d\xdb\xad\x9f\xd8\xc1\xa6\x8d\xe6\x80\xfc\x58\xf5\x2e\xc6\xdd\x96\xe5\x87\x1a\xdb\x83\x00\x54\x9b\xd7\x81\x77\xc2\xb3\x2a\x6f\xec\x37\xbc\xfe\xbc\xc7\x9f\x4f\xf1\x2a\x04\xab\x0b\x10\x13\xec\xd9\x3a\x6f\xf3\x75\x51\xd6\x34\x48\x62\xfe\x88\x40\x98\xf9\x63\xfc\xb2\x2a\xc8\xa6\x4c\x55\x55\x5b\x29\xc5\x83\xd0\x19\xed\x93\xaf\xf9\xc7\x7d\xba\x3a\x67\xb4\x6b\x01\x22\x25\xc9\xca\x39\x29\xb2\xb6\xbf\x24\x89\x38\x6f\xe7\x8f\xe8\x4f\x8e\xd3\x6c\x04\xc2\xc1\xc3\x4b\x35\x5c\x9d\x96\x0c\x8a\xa6\x86\x0d\xb7\x43\x0b\xd6\xc8\x8d\xa1\xed\xdc\x19\xd3\x7d\x6a\xed\xb5\xad\x4a\x19\xbe\x25\x8c\x59\x82\x2e\xd9\xf9\x01\xd2\x40\x08\xdd\xd3\xd2\xce\x9f\x65\xd7\xbf\xee\x81\x64\x18\x17\x4b\x2e\x90\xdf\x3b\x22\x4b\xf5\xef\xde\xa8\x6e\x4d\xf6\xdf\x3f\x46\xdd\x7a\xa4\xc9\x91\xba\xb5\x30\xd0\xce\x74\x2d\x5c\xe6\xd8\xdb\x2c\xb1\x32\xb0\xfe\x8b\xc1\x7d\xcc\xfa\x30\x0e\xb2\xfc\x51\x1a\xac\x03\x6f\x77\x62\x0f\x74\x7a\x9e\x70\x90\xd4\x92\xce\xc3\x9d\x7b\x02\x29\x7f\x96\x5c\xa3\xbc\x38\xa7\x4e\xf9\x3f\x58\x1e\x5b\x68\xb6\xc2\x6d\xe7\x82\x58\xd9\x9a\x59\x5f\x78\xa8\x74\x56\xa7\x70\xa4\x50\xc4\x73\x5a\xc6\x25\xf6\x66\x79\xff\x8b\x47\xe7\xec\x1b\x53\xd6\x0a\x4a\xce\xad\x12\xa7\x08\x05\x13\xdf\x59\x68\xd2\x5d\xa9\x71\x99\xa1\xfd\xaf\x37\xb6\x71\x77\x8f\x4c\x8c\xdc\xbd\x03\x4b\x74\x5e\x69\x63\x1d\x9d\x72\x56\x75\xc9\xd1\xa6\xc5\xe0\x03\xdf\x38\x7f\x9b\xde\x1f\x7a\x76\x6b\xa1\x9d\x7d\x31\xff\x27\x62\xc6\x68\xfc\xb4\xf8\x8c\x40\x62\x88\x83\x4f\x73\x32\x17\x10\x74\xc6\x74\xa5\xea\x17\xd0\x4f\x12\xb3\x59\xe5\xac\x72\xa4\x63\xb8\x21\x4a\xbb\x40\x96\x4d\x65\x6d\xe5\xea\xb2\xdc\xb3\xce\x94\x92\x68\x4b\x9d\x59\x16\x06\x32\x82\x00\xd2\x79\xf9\x8d\x05\x5f\xa8\xa0\x9d\x8f\x90\xd9\x7d\xaa\x9e\x65\x74\x1e\x40\xb4\x48\x62\x95\x2b\x9a\xf9\x9d\xc5\x92\x70\xca\xe6\x4e\x24\xc1\xb2\xe3\x35\xa4\xd5\xb7\xc0\x19\xef\xd9\x88\x00\xeb\x0e\xea\xfe\x13\xcc\xbf\x65\xfb\x03\x71\x4b\xa6\xbb\xee\x40\x71\x5c\x76\x58\x0a\xbd\xde\xe7\xfa\x90\x6d\xd8\x5d\x1b\xa9\x7c\xff\x21\x80\x63\xe4\xc8\x5b\xdd\x22\x3d\x16\x63\x68\x62\x0d\x71\x46\x7f\xee\x00\x89\x75\x97\x67\x86\x66\x4b\x47\x76\x85\xfb\xea\x60\xb2\xe5\xe6\x0d\x0c\x23\xbb\xf2\x2b\xd9\x66\xe9\x96\x8c\x0c\x67\x19\x75\xae\xca\x1d\xb1\xea\x59\xec\x2e\x9d\xba\x07\x13\xb4\x40\xd4\x1b\xd6\xa6\xc1\x40\x1e\x1c\x5e\xd5\xc1\x02\x07\x92\xb2\x74\xf5\x02\x68\x87\x38\x18\xbb\x7b\x98\x00\xbe\xb6\x91\xdb\xb7\x2c\xda\xfa\xc2\x23\xab\xb6\x36\x66\xfe\x90\xf5\x0f\x2e\x97\x5d\xb5\x5b\xbd\x6e\xa4\xd8\x2f\xe0\x02\x48\x68\xd0\xeb\xdc\x95\x30\x51\x16\x2e\xd9\xe0\xde\xcb\xd9\x23\x7f\x5c\xb8\xf0\x36\xf0\xb0\xdf\xaa\xaf\xad\x23\x2f\x44\xca\xa5\xa1\xd4\xcf\xdb\x9e\x48\x78\xdb\xe3\xf4\x6c\xe1\x13\x50\x50\xd5\x27\xfe\x5f\xec\xb4\xdd\x2e\x6f\x9b\xf9\x03\xfe\x65\x37\xa7\xad\xd1\x0d\x95\x7a\xc1\xd6\xfc\xb0\x68\xc5\x6d\x01\x1d\xa6\xf9\x03\xf0\x9a\xbd\x4d\xa0\x05\x61\x6f\xde\x2f\xf9\xd7\x97\x63\x73\x69\x14\xfe\x86\xf9\x6a\x68\xf2\x43\x1d\xda\xba\x3b\xcd\x27\xe1\x33\x43\xe2\xda\xf5\xaf\x44\xd6\x0b\xd1\xda\x5f\xff\xca\x4e\xaf\x7e\x40\xb3\xd1\xc0\x5c\x86\xf5\x30\xe6\x5d\x7a\xe8\x36\x24\x76\xad\x86\x45\x2e\x20\xfb\x9d\x71\x66\x48\x04\x92\x2d\xeb\xf9\x7d\xe0\xd7\x90\xba\x23\xb4\x04\x6d\xf8\x8b\xa0\xf2\x0b\x99\xd0\x54\xcf\x1f\xea\x56\x87\x24\xb1\x69\x3f\x83\xc3\xd1\xc1\x84\x64\xda\x79\xb0\x8c\x2f\xf7\x8d\xc4\x43\xb0\x06\xe2\x70\xd9\x67\xa5\xf2\x21\xf6\x66\x0e\x99\xb3\xd1\x32\x45\x79\x05\x58\x00\xca\x96\x03\x63\xa6\x8a\xac\x68\xad\xea\x85\x6d\xe4\x45\x8f\x6b\x4d\xd6\x59\x4e\x95\xf5\x1b\x60\xfe\x95\x16\x15\x2d\xa5\xb0\x72\x35\xed\x33\x94\x7b\x5a\x2a\xbf\x55\x26\xba\x0d\x05\x1f\xe0\x5b\xed\x26\xcb\x12\x8f\x5e\x44\x45\x9f\xd1\xa7\x8a\x37\x60\xd2\x6c\xd9\xc0\x68\x36\x6a\x17\x09\xc7\x8a\x13\x2d\x43\x1c\x03\x33\xbf\x6f\xff\x99\x18\xa3\x2f\x23\x43\xd4\x53\x25\xa1\x62\x71\xc5\x68\xca\xa3\x32\x82\x5c\xe6\x0f\xf8\x47\x3d\x42\x62\x5c\xdf\x2e\x12\x74\x63\x8f\xf1\xdf\x38\x6f\x41\x9c\xcf\xca\x58\x77\x08\x2e\xc3\x0a\x3a\xf6\x8b\x4f\xfa\xb0\x4d\xd9\x9e\xd2\xd6\x18\x8e\xad\x5e\xce\xef\x66\x0a\x40\x0c\x55\x01\x24\x97\x23\x10\xf3\x79\x74\xea\x60\x2f\x2f\xcd\xda\x4d\xa6\x27\x73\x89\x95\x59\x08\xdb\x06\x18\x78\x06\x6e\x9b\x8c\xc1\x56\x78\xed\x4e\x1a\x96\x3b\xd2\xf8\x78\xc3\xd8\x8a\x7e\x39\xe8\x90\xf7\xec\x11\x3d\x6a\x9b\x8a\xac\x73\x2a\x72\xa4\xe9\xd1\x96\xb0\xd5\x1c\x23\x35\x95\x3e\x83\xf3\x8c\xc5\xae\xf7\x09\x99\xca\xbf\xd3\x25\x1b\x1b\x42\x83\x68\x38\x91\x7c\xb7\x03\x59\x07\x43\xdf\x93\x75\x64\x89\xb3\xc5\xb2\xe7\x2a\xb2\xc8\xec\xa8\x78\xac\xc6\xce\x14\x50\x14\xc0\x47\x0e\x35\x9e\xf8\xcf\xa9\x1a\x0d\x8c\x80\xcf\xe8\xcf\x54\xc6\x0c\xac\x77\x03\xb3\xb3\xab\x02\x38\x6a\x04\x4e\x2e\x84\x0d\x4a\x85\x9e\xf1\xcf\x64\x89\x1a\xae\x64\xad\x5c\xe1\x91\xe8\x80\x8f\x6d\xaf\xe4\x7b\xb4\xeb\xa4\x63\x22\x26\xae\xc2\x63\xfc\xaf\xea\x37\xa9\xb6\x23\xf9\x1c\xb8\x15\xea\xe8\x27\xf4\xbf\xb2\x1f\x37\xf5\xe2\xca\x4b\x37\xe3\x0a\x38\x41\x0c\xff\xb9\xfc\xa7\xee\x7e\xfb\xc1\x77\x0d\x16\x20\x28\xf5\xbf\xfd\xf0\x3b\xe2\x8a\xee\x7e\xfb\xd1\x77\x0d\xb8\xa2\x71\xdd\xc5\x85\xde\x98\x51\x03\x5c\xcf\x17\xae\x6a\xf3\x32\x2f\x3b\xd0\x68\xf9\x27\x42\x09\x3f\x60\x11\xec\x3d\xe9\xe0\x6c\xb3\x06\xa1\x6c\xf7\xba\x8e\x30\xb7\xc5\x89\x92\x79\xd0\xbb\x8d\xa8\x5b\x42\x8b\xdd\x6e\x61\xa7\xda\x00\x01\x6c\xe0\x88\x4f\xd4\x29\x5a\x62\x0f\x89\x85\x6e\xe7\xdf\xfb\x2f\xcc\x3a\xcf\x30\x67\x9a\x84\xe3\x09\xff\x20\x5f\xf7\x78\x42\x80\xc0\xf7\xa1\xa7\x32\x5c\x10\x5c\x9a\x1a\x4c\x35\xf1\x55\xfe\xa6\xa2\x37\xed\x6c\x80\x93\x24\x90\x07\xa3\xa4\x41\x8e\x1d\x44\x5c\x42\xdc\x7b\x25\xdd\x97\xae\x0d\x83\x46\x8a\x7d\xcd\x1f\xc3\xbc\xb4\x29\x29\x33\xd9\x96\x45\xb1\x6e\x97\x7c\xc5\x80\x02\x23\x9b\x42\x9a\x61\x24\x74\xe7\x77\x02\x48\x06\x64\x9b\x70\x1f\xbf\xb7\x11\x61\x28\x88\xff\xbc\xb0\xcd\x5c\x10\xa8\x8b\x15\xeb\x7b\x09\xe0\x5c\x4a\x41\x14\x21\xd1\x49\xca\xfe\xde\x1e\x48\x56\x41\xd8\x22\xcb\x07\xd9\x44\x36\x5e\x9f\xb3\x51\x7b\xd8\x95\x13\x0a\x26\x9b\xe5\xbc\x97\x88\xbf\x27\xb9\xc8\x98\x51\x10\x24\x5c\x53\x67\xba\xde\x95\x69\x95\xbc\x58\x38\xa3\x78\x16\x05\xc4\x4d\xd9\x1a\x44\x88\x9f\xbb\x35\xdc\x68\xcd\x15\x74\xfa\x3b\x38\x4b\xa8\x91\x6b\x5a\x7a\x83\x97\x38\x0a\xd1\x69\x94\x33\xc0\x62\x4b\x72\x88\x4d\x96\xb7\xf3\xcf\xb3\x3e\x59\xf5\xd4\xfa\xc3\x0d\x56\xbf\x64\x07\xb0\xbc\x39\xf8\x34\x21\x93\x6d\xe4\x76\x30\x62\xb3\xa4\xc8\x8a\xa4\xfb\x9a\xf6\x17\xfd\x3d\x5e\x04\x9a\x45\x3a\xae\x47\xf2\xc3\xae\xe7\x43\x6d\x91\x02\x2e\x4f\x2d\x1f\x09\x49\x23\xa9\x31\x35\x37\xc9\x89\x8d\xa8\x06\x59\xd6\xb9\xe3\x49\x99\xc1\x50\x94\x35\xa9\x47\x06\x34\x75\x61\xf7\x9a\xa2\xb2\xc2\x0f\xb9\x77\xd9\xbc\x9c\x2f\x4a\x89\xda\xec\xca\x97\x84\x42\x5a\xda\xd2\x05\x07\x72\x40\x15\xdc\x3d\x69\xce\xdd\x32\x6d\xb4\xed\xaa\x87\x4c\x55\x15\x89\xb6\x2d\x28\xac\x33\xe2\xf9\xf4\x58\xcf\x4e\x7b\x2d\xbc\xd6\xeb\x2e\xe3\xac\x04\x85\xa3\x57\xd1\x36\x5e\x88\xf5\x06\x4b\x1e\xf8\x56\xa2\x49\x6c\x8e\x14\x93\x69\xba\xb2\xb0\x1e\x75\xf2\x1b\x63\xa1\x1d\x91\x0b\x3a\xaa\xa8\xaa\x6c\x98\x25\x28\x0d\x94\xad\x3d\x1b\xb6\xba\x24\xd9\x6b\x8e\x3f\xa3\xee\xe4\x77\x6e\x7f\x5d\xb6\xa5\x82\x56\xe6\xfc\x23\x7f\xd9\x11\xb8\x22\x84\xb8\x6b\xd3\x74\x5b\x22\x10\xac\x98\x2f\xf4\xd6\x1c\xd8\xf6\x6a\xdf\x8b\xc9\xe7\x2c\x14\xa5\x85\x22\x76\x83\x55\x13\xd2\x5f\x84\xeb\x39\x4f\x16\x40\x66\xbb\x34\x2b\xdd\x11\xea\xc6\x78\x79\xb6\x97\x46\x67\xd1\xfc\xa9\x88\x79\x69\x0a\xdf\x3c\xcc\x70\xe3\x80\x53\xf3\xef\x7d\xeb\x4e\x69\x32\x00\xd5\xd2\xb4\x7b\x2c\x5d\x4b\xed\x09\x74\x45\x97\xd1\x7c\x1c\x13\x6d\x42\x75\xef\x73\x0f\xef\x83\x72\x67\x16\xed\xfd\x81\x3f\x2c\xf2\xb3\xc0\x14\x56\xde\xa9\x05\x62\x99\xd9\x15\xe1\x03\x2e\x8b\x8a\xfd\x86\xdb\x51\xb5\x33\xd4\x27\x53\xfb\xcc\x22\xdd\x46\x70\xf0\x27\x70\x08\x73\x48\x96\xff\xa7\x2d\x4c\x15\x5c\xfa\x47\x3e\xdd\x35\xcf\x4d\x59\x7a\x2e\xbd\x48\xca\x7f\xac\x75\xaa\xfd\x7f\x7d\xe7\x77\x28\xc9\x02\x20\xd5\x08\x3b\x27\x96\x82\x0f\xa2\x8f\xb4\x50\x2c\x63\x27\xf5\x59\x73\x8b\xfd\x44\xeb\x28\x7b\x35\x73\xd9\x96\xf0\xd2\x1e\xe1\xa1\xcf\x4f\x59\x61\xa0\x24\x59\x4e\x7a\xb2\x86\x88\xe8\x62\x6a\x1c\x72\x0b\x48\xbe\xb6\xc1\x58\x66\x29\x54\x88\xc3\xad\xa3\x7e\xb0\x5b\x6c\xc6\xf9\xa8\x51\x7f\xa8\x2d\xf8\x06\x67\x5a\x5a\x20\xfe\x52\xd3\xd1\xe0\x5b\x3c\x88\xf1\xfe\x36\x60\xba\x29\x29\xa9\x32\xa2\xb0\xb0\x0f\xb7\xd8\x04\x95\x58\xcd\x17\x21\xaa\x70\x6c\x75\xb1\x60\x95\x38\x0f\x43\x16\xd4\xaa\x07\xfd\xa4\x91\xff\xde\x60\xe6\xaa\x9c\x80\x54\xdc\x2a\x6b\x96\xa7\x1b\x7e\xbb\xbd\xb9\x69\x77\x2a\x5b\x3e\x5b\x38\x84\xb8\xd9\xda\xe6\xab\xb6\xf1\xe7\xc9\xe9\x2d\x8e\xf7\xe8\x34\x8d\xb2\xb8\x68\xcf\x2a\xd5\x60\x6a\x09\x00\x95\x5b\x76\x06\x28\xb7\x8c\xc7\xd3\xa5\x4c\x4f\x39\x2f\xeb\xe0\xb0\xc5\x0a\x29\xa7\x26\x21\xca\x3d\x90\x27\xa3\x32\x63\xf9\x37\xca\x9c\x94\x81\x87\xf9\x99\xd3\x27\xdc\x6d\xd2\xde\xcb\x05\x2d\xf9\x82\x45\x14\x0e\xd8\x80\x30\x0a\x40\x8f\x84\x4a\xe1\xd9\x3b\x1a\xc6\xfc\x99\xe0\x8f\x71\x17\xc4\x33\x80\x43\xbf\x1a\xce\x8e\x28\xd2\x12\xb8\x91\x00\x6a\x85\xfb\x90\x0f\x28\x5a\x1f\x01\x03\x32\x57\x3b\xb2\x97\x36\x9f\x28\x21\x22\xb5\x4c\x54\x46\x78\x13\x76\x8c\x4c\xd2\x2d\x21\x6e\x56\x75\x5e\x09\x0a\x88\x33\xdd\xd4\x1f\xd2\xb6\x7f\x88\xc6\xdf\x71\x71\xa3\xde\x1d\x4c\xd0\xb0\x51\xaa\x55\x32\x25\x79\x3e\xa2\x87\x6d\x6c\x21\x27\x85\xdb\xc4\xb7\xc4\x6a\x6a\x81\xe8\x6d\xd1\x13\xef\xf8\xf7\x76\x4f\xed\xbe\xb7\xdb\xbd\x97\x65\x6f\x4f\xcd\xd9\x53\x73\x3f\xe9\x81\xed\x91\x15\xac\x87\x28\x20\x6a\xc8\x32\x47\xc4\x2b\x4f\x03\x0e\xf9\xd1\x12\x3d\x07\x49\x33\xb8\xe1\x51\x59\x80\x1a\x93\xed\x68\xd9\x1a\xa0\xb5\xb2\xda\x1a\xb5\x2f\x71\x26\x97\x72\xce\xac\xa1\x56\x3c\x0d\x61\x31\x1f\xf0\x4f\x92\x13\xf8\x2f\xfa\xb9\x79\x6c\x36\xa4\x87\x70\x0d\x40\x49\xbb\x23\xd0\x00\xeb\x7a\x13\x2c\x3c\x27\x17\xc0\xf9\xd0\x26\x4d\x96\x1b\xb3\x71\xa1\xe7\x7f\x28\x2b\x37\xd5\xb7\xb7\xd2\x49\xf0\xc2\xcd\xd6\x07\xec\x14\x33\x15\x46\xd3\x25\xce\x64\x7f\x37\xf3\x67\x15\x7b\x19\xf8\xf4\x28\x8e\x08\xc2\x42\x21\x82\xc8\xf5\x8f\x55\xad\x57\x71\xe5\xcb\xb2\xdc\x34\xf3\x17\x66\xc9\xff\x44\x19\xeb\xbc\x95\xbc\xb3\x4d\xdd\x57\x34\xa6\x2f\x10\xf0\xd6\x67\x13\x8f\x94\xaf\x26\x43\x7f\x7a\x3b\xd7\x78\x2c\x19\x16\xba\x5e\x20\x58\x05\x2c\xff\xcd\x05\x3b\x19\x2e\xcd\xa1\xca\xcd\x0a\xfc\x7f\x43\x32\x41\x54\x9e\x5d\x04\x9e\xd9\x50\x3c\x5a\x39\x67\x01\x9f\x6f\xcd\xae\x7d\xff\xf7\xa7\x0c\xc7\x63\x58\x88\x09\x33\xae\x3b\xe4\xc6\x53\x8c\x2e\xbe\x41\xf4\x3f\x3d\x75\xc7\x19\x9b\xe5\x8b\x31\x7e\xc6\xf6\xd1\xeb\x72\x16\x35\xdb\x12\x6f\xd8\x5c\x70\x9c\x4a\x56\x86\x37\xe2\xa1\x24\x31\x85\xed\xf5\xf8\xa8\xb0\x6c\xc1\x70\x1d\xd9\x0e\x2c\x06\xa8\xa3\xbc\x28\x38\xa8\xe7\xd0\xa1\x32\xf6\x28\x5d\x4b\x84\x2d\xc8\x92\x1d\x5f\x0e\x5a\x7b\xf3\x61\x10\x10\xdf\x3f\x07\x82\x65\x37\x48\xb0\x22\x8d\x5c\x1c\x4b\xb0\xd9\xd4\xd3\x4f\x64\x53\xe7\x4a\x96\x8c\x4d\x24\x59\xd4\xbd\x62\xa8\xb1\xc5\x6d\x58\xe5\xd8\xc1\x65\x30\xad\x51\x31\x0b\x86\x32\x98\xa1\x74\x69\x5f\x7c\xf5\x4d\x4c\x4e\xb6\xaf\xcb\xb6\x9b\x4d\x1a\x47\x11\x90\xc4\xb0\x64\x6a\x55\x38\x54\x1d\x65\x2e\x3e\x98\xbf\xa7\xc0\x6d\xf0\x01\x17\xed\x8c\x58\x96\xe5\x17\x8a\xa0\xc2\x57\x9b\x35\xb3\xed\x04\xf9\x2c\x7f\x99\x67\xb4\x99\x38\xe0\xda\x8d\xcd\x7e\x18\x37\x4b\x47\x9f\xef\x77\x8f\x36\x5d\xa8\x38\x0e\x30\xcb\x17\x54\x86\xb0\xc7\xdb\xc4\xd2\x00\xfd\x30\x37\x67\xa4\x46\x33\xd9\x31\xd0\x91\x15\xd9\x2d\x23\xc3\x8e\xa8\xca\x7b\x64\x25\x28\x4b\xf0\x11\x6c\x80\x84\x0e\x7b\x96\xea\xe3\xf1\x5a\xc4\x90\x62\xee\x34\xf0\x5f\xce\x2c\xe6\xc1\xfd\xa7\x4f\x9f\x9d\x07\x9b\x23\xd8\xe9\x15\x59\x59\x4c\xec\x80\x04\x42\x83\xe6\x18\x58\x7c\x73\x56\x88\xde\x34\x73\xb8\x98\xa5\xab\xba\x17\xb1\xcc\xb1\xb6\xe1\x32\xfa\x84\x26\xb7\xda\x76\x19\x72\x11\xd6\x1b\xdc\xf0\x89\x45\xc4\x27\x4e\x3d\x26\x52\xaa\x2c\x81\x10\x96\x80\x05\xcb\x14\xaa\x83\xa1\xf2\xa5\x38\xa6\xff\x68\xd4\xb3\x62\xc6\x16\x76\xc9\x27\xc1\xcc\xc6\x5b\x23\x80\x3f\xdd\x19\x6c\x1c\x43\xcc\x54\x06\xe5\xa1\xbe\x10\x62\x2b\x68\xff\x75\x9d\x7e\x78\xbc\xd3\x3a\x7f\xa9\x39\xce\xe7\xa8\x57\x21\x53\x34\xd5\x96\x21\xc7\x66\xd2\x6d\xbe\xbb\x69\x31\xb8\xb3\x8f\xa4\xb3\x98\x68\x6d\x8c\xa9\xa2\x1e\xd2\xc1\x9f\xa8\x4a\x76\x9a\x60\x50\x15\x0c\xa1\x26\x96\x88\x65\x23\x31\xe0\xa6\x6d\xc7\x12\xc0\x31\x8c\x1d\x4c\xf2\x40\xb5\x06\xf7\xd0\x6f\xe2\x28\x33\x3e\x1d\xa2\xe0\x1b\x61\xb3\xa8\x28\xb4\x17\x8b\x21\xce\xbe\xfe\x75\xaa\x31\x31\xe3\xcc\xac\x5f\x90\xf8\x4e\x4c\x0d\x52\x3b\xa7\x52\x84\x44\xd7\xa9\x27\x42\x44\x89\x63\x53\xbc\x63\x26\x78\xbe\x38\xcc\xa9\xe3\x6d\x1b\x9c\x41\x80\xef\xf6\x81\x90\x3b\x9f\xb4\xa3\x35\x3d\x94\xbf\x49\x1d\x26\xd8\x3c\x77\xd8\x50\x3c\x62\xd9\x5e\xd3\x6d\xbd\x18\xd4\x1b\xf3\x2f\xc9\xba\xc3\xa7\x3d\x67\x7f\xe5\x85\x44\xa3\x4a\x82\xd3\xb1\xe5\x4a\xe4\x95\x9e\x78\x2a\x8b\x49\xf4\x30\xd0\x88\x9d\x03\x3b\xd5\xdc\x34\x07\x00\x63\x2f\x8c\x8d\x85\xa0\x65\x73\x46\xfc\x8f\x90\x22\xc7\x04\xb1\x8c\xb9\xeb\x56\x97\x44\xf8\x37\xac\x0d\xa2\xfd\x0c\x93\x1e\x75\xfa\xec\xec\x9c\x55\x40\x74\x6e\xea\x7c\xbd\x06\x9e\x56\x2f\x2e\x4d\x01\xc4\x45\x1c\xf4\xce\x58\xe4\xb5\x5a\x75\x35\xf8\x47\x1b\x8b\x6e\x6f\x79\x4b\x3a\x42\xd9\x56\x50\x1d\x47\x51\xb5\x6e\xa3\x38\x36\x48\x13\x5d\x90\x42\x54\x5a\x3e\xa0\x4d\x65\x56\xc4\x49\xcf\xd4\x63\x12\x29\x0a\x85\x50\xf8\x68\x93\x0f\xdd\x8d\x66\x30\x7e\x26\x5f\xc0\x12\xc5\x7a\x6f\xf8\x29\x5b\x98\x24\x4a\x50\xa2\xd7\xb6\xd2\x0d\x05\xc7\xbc\xb3\x2d\x71\x23\xe7\xcc\x08\x99\xb2\xa9\x95\x1c\xf8\x5d\x59\x53\x8b\x9b\x98\xe7\xe3\x43\xf0\x9b\xd0\xf6\xfc\x3a\x6d\xe8\xb0\xa5\x99\x93\xe2\xaf\xff\x4d\x62\x89\x9a\xc9\x32\x4d\x05\x72\x8e\xe0\x49\xfc\xcf\x44\x19\x11\xae\x9a\xf9\x97\xf2\x3b\x51\xa2\x92\x30\x3d\x73\x1b\xae\x67\xa2\xc4\xb2\xcc\xfa\xf9\x67\xf4\x67\x82\xef\xb6\xc0\x2e\x89\x3b\xae\x88\xfb\x04\xc5\x6b\x38\x70\x77\x05\x2b\xdb\xe0\xf3\x0e\xcc\x4f\x58\x81\xf2\x4f\x9c\x8f\xa2\xc9\x7a\x17\x2d\x93\xed\x2b\x6d\xd8\x4b\x84\xaf\x17\x63\x6a\xb4\x69\x36\xec\x04\x26\x91\xb2\x88\x9b\x83\xfb\x42\xef\x62\x61\x6d\xca\xa2\xe7\x06\x06\xfe\xa1\xd6\x42\x39\x41\x6e\x76\xc0\xac\xb2\xb7\x06\xf9\x86\xce\xea\x36\xb7\x1d\x45\x56\x6c\xe2\xec\xa1\xe1\x4d\x66\x0e\x72\xa7\x41\xc3\x75\x66\xc3\xb8\x3a\xd9\x58\x27\x4e\x3a\x5f\xec\xb4\x33\x53\xa7\x36\xe4\xb5\x70\xd6\x1c\x64\xe8\x4a\xe1\xfe\x40\xe2\x85\x79\xf7\x53\xd5\x12\x74\x6c\x8f\xec\x84\x3c\x1a\x60\x64\x48\xdc\xb0\x4c\xd3\x4d\x14\x1a\x38\x0d\x4d\x94\xb4\x84\xcc\x56\x48\x7c\x56\xa5\xf0\x34\x0a\xb2\x38\x06\xd4\xc1\xec\x7a\x05\xc7\x4b\x09\x2f\x2a\xea\x4f\xa0\x16\xa7\xfd\xac\x38\x02\x97\x8b\x61\x26\x8e\x8a\x07\xa2\xf1\x07\x9a\xdc\x1a\xe8\x0e\x8e\x18\x87\x0c\xaf\x7e\x5c\xff\x14\x1c\x2c\xbd\x65\x3a\xa2\x38\xb4\x34\x24\x84\x59\xb0\x9a\x0a\x1b\x80\xf4\xa0\xab\xbe\x65\xd7\xb0\x77\xfe\x74\xf6\xec\xe9\x89\xed\xfc\x87\xf7\xf6\xfb\xfd\x7b\x28\xfa\x5e\x57\x6f\x4d\x81\xc4\xcc\x8e\xe6\x04\x71\xa8\xef\xe5\x6d\xf5\xc9\xfb\xf4\xfb\x2e\xe1\x3b\x79\x76\xc3\x9d\x71\x88\x22\x76\xdf\xb1\x2a\xfe\xfa\xaf\x04\xb5\xfd\xcd\xf8\x29\x38\xaf\x75\x16\x66\x1c\x91\x1d\xbc\x6c\x81\xd8\x60\x34\xd4\x21\xd2\xb2\x87\x89\xc3\x8e\x4f\x04\xbd\x8a\x49\x2d\xd6\x2f\x98\x98\x1e\xb4\xdf\x2c\xb1\x7c\x69\x56\xb5\x41\xec\xef\x0d\xfd\xc4\xe9\x5b\xbd\xda\x04\x5f\xf0\xe7\xf6\x9f\x51\x89\x9c\xfa\xe1\xb1\x3c\xa2\x7f\x24\x2a\xd7\xa0\x84\x5c\x9b\x3d\xc0\xdf\x28\x8f\x89\x87\x77\x5b\x01\x5f\x93\xc9\xe3\x2d\x9a\x44\x1d\x78\x53\xca\xa4\xe4\xf0\xb5\xd0\x7f\x30\x78\x62\xd8\x7c\x3a\x6a\x8e\x0d\xfd\xca\x62\xdb\xbb\xa0\xc7\xbe\x4d\x59\x5e\xe4\xdb\xd5\x9c\x8d\x2a\x73\x3c\xba\xc0\x78\xcf\x1f\x29\xd8\xf0\x7a\xae\x3f\xe4\xc4\xe6\xf0\x83\x36\xc4\xd9\x7b\xfe\x98\x88\xd7\x0e\x9c\x22\xbe\xd4\x1e\x0e\x3d\xd2\xda\x44\x8d\x58\xff\x77\x24\xd7\x9b\x57\x16\x08\xc7\x55\xd6\xb0\x27\x74\xda\xb1\x49\x18\xcc\x4f\xe9\xcf\x34\x74\xe4\x15\x8c\x1c\xe1\x11\x9a\x4b\x76\x2d\x8a\xd8\xd6\xf8\xc0\x72\x00\x46\x89\xb9\x58\x8c\x33\x82\xa7\x01\xcc\x42\x57\x12\x85\xd6\x1f\xcb\x3e\x40\xfe\x84\xc4\xf3\x3e\x5e\x40\x79\x13\x01\xba\x01\xbb\x6b\xfb\x21\xab\xc2\x48\xc2\xbb\x26\x82\x41\x8b\xab\x7a\xde\x6d\x82\xa7\x76\x4c\xce\x18\x15\xc5\xfb\x66\x5c\x2f\xe9\xf1\x6c\x54\xc1\x77\x3c\x0a\x99\x30\x94\x30\xdc\x00\x84\x91\xb8\xb1\x6b\x31\x97\x59\x58\x66\x00\x81\x4a\xac\x8f\xa0\x99\x3e\xcf\x3c\x46\x7f\x98\xc7\xd8\x18\x90\x93\x03\x17\x90\x2c\x98\x3d\xe0\x3e\x8c\x60\x6d\x63\x96\x1f\x06\xbe\xae\x67\xa8\x43\x0c\x27\x3b\xc6\x46\xce\x92\x31\x8f\x3f\x1b\x1d\x6a\xf1\xa0\x3a\x17\xc7\xaf\x41\xde\xe0\xe9\x88\x21\x3a\x20\xde\x0f\x4f\xe8\xc8\xab\x35\x09\x08\xab\x6d\xd9\x27\x61\x47\xf6\x59\x0d\x94\x5e\xe4\xa9\x0e\x0d\x53\x0d\xa5\xe7\xf7\xb3\x4c\x3d\xe4\x4f\xf5\x95\x89\x41\xcc\x86\xc9\xa1\xd1\x7f\xb2\xbe\x76\x50\xea\x8a\x5f\x2b\x3b\xb8\x4b\x4d\x2a\x91\xc8\x52\xb1\xca\x7d\x62\x88\x9e\x3c\x3e\x90\xdf\xa8\x50\xea\xfb\xfb\xd0\x37\x7f\xdc\xf7\x37\xae\x19\x1c\x80\xa3\x9a\x6f\xe4\x00\x9c\x80\x67\xe8\xdd\x1b\x66\xf9\x26\x0e\xbe\x53\x13\xf6\x4c\xb2\x65\x7b\x27\x21\x3e\x51\x7e\xcc\x2b\x67\xf1\xc4\x02\xbb\x1c\x6b\x95\xbd\xde\x02\xba\xf9\x81\x6c\xfd\x46\xec\xf2\xd4\x40\x1c\x3c\x22\xc0\xbe\xde\x84\x20\xcb\x2f\x2e\x66\xcb\xba\xdc\x37\x70\x94\xc5\xeb\x04\x2c\x2e\x4b\x94\xfc\x2b\x75\xfd\x57\x62\x36\x32\x8e\x25\xca\x25\x71\x7d\x4e\xbb\xa2\x86\x77\xca\xca\xa6\xc9\x9d\xdc\x5c\x7e\x6c\x1a\xdf\x60\xa6\x51\xda\x1f\x39\x36\x82\x56\xb9\x9d\xd9\x67\x9a\x7c\xa4\x74\x17\x84\x43\x5e\x61\xa0\x16\x9a\xcb\x72\xbf\xc0\x7f\xec\xf6\xdb\x90\x2c\x0d\x87\x4f\xc4\x1b\x6b\x61\x99\x8d\x07\x1d\xd0\x82\x2b\x8d\x32\xb2\x14\x8e\xa0\xdd\xcd\x7c\x9c\x0a\x76\x75\xdf\xb2\xc9\x40\xe4\x4a\xa7\xa2\x92\x40\xb9\xd7\x3f\x85\xcc\x3c\xce\xb4\xe2\x2e\xac\x72\x6c\xa2\x83\x1b\xa1\x81\xcf\x1e\x3d\xb5\x5f\x6c\x42\xce\x51\x6c\xc0\xfc\x11\x1f\xdb\x6e\xb9\x57\x09\xa9\xc9\xca\x95\xd9\xd8\x4a\xdd\xe5\x88\x0f\x00\xff\x2f\xa6\xd7\x36\x2a\x7d\x28\x91\xd5\xfa\x82\x38\x99\xc3\x06\x90\x77\x89\xc4\x60\xbb\x5a\xf2\x4c\x1b\x49\xca\xf2\x7c\x4b\x28\x43\xc0\xc1\x02\x9c\xd1\x4f\xbe\x2d\x82\xad\xbc\xdc\x2f\x19\x6b\x7c\xe3\x12\x35\x04\x9e\x08\x8a\x01\x28\xb2\xc2\xe0\xe0\x10\x4f\x5c\x95\x99\xe8\x65\xf7\xc3\xa9\xc8\x3e\x5a\xb8\xc7\xaf\xfc\x26\x62\x02\xe1\x0a\x11\x8d\x4f\x9c\x70\xf5\xba\x8b\x33\x99\xa3\x7c\x20\xbe\x81\xa1\xc2\xc0\x35\x2c\x38\x38\xf4\x68\x20\x3c\xb5\xd2\x45\xcf\xcd\x81\xcb\x5e\x1d\xb4\xd5\xec\x39\x8f\xcd\xc1\x82\x24\xf6\x51\xa3\x09\x39\x5e\x13\x78\x6a\xb1\xcb\x82\xcc\x20\x4c\xb7\x48\x37\x51\x80\x93\x84\x00\x3d\xd1\xf5\x86\x24\x9d\x42\x4c\xba\x5c\x93\xfb\x1a\x17\x1f\x4f\xad\xa9\x56\xb4\x9a\xfc\x42\xc6\x69\xb9\xce\x70\x02\xc7\x43\x88\x4d\xb2\xa5\x36\xf4\x23\xaf\x7e\xc6\xf5\x82\x0b\x7f\xe0\xea\x80\x8f\x06\xa7\x77\xfd\xdf\xb5\x7d\x3c\xcb\x3e\x69\x36\xdc\x3a\xa9\x7f\xfb\xfe\xd8\x3e\x8a\x2a\xd8\x85\x78\x70\xb9\x82\x8c\x73\xd8\xc3\x03\x86\xc5\x90\x6e\xaf\xd7\x5e\x6b\xaf\x5d\x5b\x12\x9e\x87\xc4\x06\x8e\xa3\x2e\x1a\x1d\xb3\x69\xa8\x89\x9e\xcd\x3e\xb7\x85\x8e\x07\x86\x85\x62\x2e\x0f\x0b\x46\x3c\x8e\x7d\x8c\x21\xda\x61\x78\xb2\x40\xce\x83\x58\xbb\x11\x73\x96\x1c\x0b\x96\x51\xdd\xc1\x10\xf3\xb2\xf1\x81\x72\x5b\x70\x61\x89\x8d\x0d\x00\x67\xcf\x91\xdc\x80\xc8\xdd\x07\x6f\x4f\xbe\x2d\x21\x66\x23\x44\x65\xbc\x7d\xeb\xdb\xb2\x5e\x7f\x17\x85\x06\x4d\x9e\x1a\x88\x54\x5c\x71\x11\xf7\xf0\x18\x30\x44\xe1\xdc\x58\xe3\x0b\x9f\xd8\x8b\x95\x30\x11\x61\xdf\x76\xcf\x0f\x50\x1d\x7c\x68\x77\x89\xa0\x82\x36\x25\x82\x4a\xf2\x6c\x91\x8d\x9d\x12\x37\x29\x61\xb8\xe1\x84\x1d\x3d\x8b\x93\x3c\xe8\x93\xc6\x5e\xe5\x98\x53\xc2\x9c\x23\xfe\xa0\x33\x3c\x0a\x4d\xca\x6a\x54\xe5\xc2\x5a\x43\x07\x9e\xd4\xfa\x7d\xc9\x1d\xf3\xfc\x71\x97\xb1\x23\x50\x5e\xbc\xc4\x0b\x6a\x50\x9d\xe1\x6a\x90\x56\x8d\x58\x9f\x5f\xd5\xa6\x44\xec\x67\x89\x90\xda\xcc\xbf\x91\xf8\xa4\x3d\x82\x85\xed\x39\x9a\x3d\xd4\x88\xcd\xdc\x05\x39\xdc\xa3\x25\xc9\x4a\x42\xe0\xa5\xaf\x2a\x04\x9f\x2a\xb4\x9a\x3c\x3d\xc9\x11\x50\xc1\xc1\x0b\xec\x22\x5f\xd6\x63\xa1\x52\x6d\xce\x54\x49\x07\xf4\xcf\xbc\x77\xbe\x44\x15\xc2\x3b\x38\x76\xe7\xf4\x41\x7c\xed\x25\x52\x0b\x63\x4c\x1f\x87\x95\x18\x97\xbe\xd9\x74\xb4\xdd\x56\x97\xb3\xa8\x2b\x7f\xbe\x68\xd1\x10\x0f\x96\x57\xce\x86\xd3\x2f\xfc\x24\x3e\xb5\x35\x70\xc9\x92\x37\x8d\x67\x46\x20\x70\xe2\x05\xb1\xbc\xdc\xf9\x1b\x43\x1b\x4e\x02\x77\x87\xf6\xe5\xb4\x41\x4b\x37\xb8\x99\xc6\x1b\xe9\x1f\xe3\x65\x3a\xdd\xe2\xc8\xc9\xf4\xef\xbb\x0e\xbf\x29\x28\x5d\xac\x99\x4b\xa2\xd3\xf9\x8c\xe9\x30\x75\xff\xd1\xfb\x68\x9a\xf0\x74\xcc\xb9\x04\x47\x1c\xa9\x75\x24\xf4\x5c\x54\x75\xa6\x5e\x54\xbc\xc5\xc0\x2f\x16\x3a\x8e\x1c\x12\xbc\xd4\x24\xca\x4f\x74\x84\x7f\xbe\x31\x56\xcc\xf4\x8c\xa7\x22\x9f\xc5\xab\xf9\xfb\xae\x74\x92\x7b\xe4\x67\x09\x72\x19\x8a\x9e\x69\x64\x05\xe8\x00\xcb\x1b\xcb\xdb\x8b\xff\xe8\x15\xd6\x20\x9a\x87\xb0\x0b\x12\x44\x01\x8f\xfe\xc0\x3e\xf1\x78\xdc\x05\xbe\x8f\x70\x41\x17\xcc\x5b\x47\xaf\x7c\x5e\x17\x7d\x61\x38\x4a\x60\xa1\x51\x08\x86\xe9\x3d\x11\xd5\x10\x72\x9d\x86\x68\xbd\x61\x72\xc7\xa2\x12\x4e\xdf\x8e\x40\xdc\xdc\xbb\x7b\x05\x0e\xd6\xe2\xae\x22\xed\x55\x08\xfc\xe3\x49\x6c\x71\xd0\x12\xb9\x26\x60\xe3\x00\xb4\xae\x20\x5a\x28\xe2\x4d\x7c\x23\x2e\x11\x69\x04\xb5\x0b\xad\x5f\xf9\x70\xa5\x66\x98\xe3\x30\x61\x23\xf1\x13\xfa\x03\x58\x55\x5f\x44\xae\x4d\x49\x62\x91\xd8\x0a\xa3\x1c\x57\xbb\x73\xc1\x32\xf3\xa8\xf6\x94\x9f\x80\xcb\xb3\x17\x58\x0f\x98\xf0\x98\x4d\xc8\xa0\xe5\x5e\x19\xbd\x9d\x3f\xdf\xd4\x7d\xd4\x96\xc8\x78\xce\x58\xdd\xa5\x12\x9b\xf1\x12\xae\x83\x9d\x35\x3c\xb3\xc9\x96\x16\xca\xa9\xd6\x3c\x2a\xb5\x27\xda\x62\x35\xf1\xe3\xc0\x92\x70\x0e\x38\x80\x62\x36\xb9\xbc\x83\xc1\xe6\x10\x42\x14\x39\x7e\xdb\xdd\xe6\xe3\x51\xf3\x78\xa1\xc5\x91\x59\x0e\x2e\xc3\x41\x6f\x41\x67\x67\x08\x2a\xeb\x23\xca\xba\xc4\xc1\x60\x25\x11\x7c\x91\x0d\x1b\xc4\xba\x30\x1b\x53\x07\x1c\x75\xdf\x76\x13\xa5\xbc\x4b\x7f\x44\x5d\x86\xaf\xc4\xed\x9d\x78\xa4\x39\x1c\x87\x75\xff\x76\x51\x27\xe2\x67\x88\x66\xae\x07\x66\x97\x27\x06\xc2\x0f\x53\x75\x53\xa5\xde\x64\x20\x32\x0d\x01\x7b\xee\xde\x4f\xe1\x8b\x47\x17\xe4\x25\x79\x96\xcb\x8f\x46\xde\xba\xb2\xa3\x79\x3e\xb4\xc9\xd1\x53\xc5\xde\x0c\x2e\x6e\x00\x20\xdf\x4b\x1b\xfa\x7f\x04\x94\x13\x79\x97\x20\xe3\xf7\x0b\x65\xb4\x05\xc6\x3a\xbc\x22\x8d\x47\xec\x7c\xd8\x93\xee\x9d\xdd\x4d\x0c\xc2\x49\x92\x2b\x59\x62\xaf\x32\xe2\x36\xe2\x03\x64\xac\x72\x1b\x51\x98\xa0\x7b\x0a\x0b\xe5\xb0\x45\x14\xf8\x27\x81\x6d\x2c\x7a\x4b\x1b\xae\x06\xc0\x3b\xb4\x76\x0a\xa5\x93\x90\xd7\x7e\xba\x8e\x71\x7c\x10\x18\xc7\x01\x47\xf7\xc6\x94\x5c\x0a\xbb\x20\x43\xcc\x50\x0a\x05\x8a\x20\x19\x16\x3c\x93\x98\xfb\x16\x7d\xc8\x65\xb4\x3f\xa8\xc3\x11\x44\x8d\x06\x22\x20\x51\x99\x6e\x2a\x3a\x5e\x48\x8f\xfb\xfd\xc5\xbc\x20\x7d\x70\x02\x66\x5f\x94\xd3\x31\x69\xff\x14\x61\x11\x86\xd0\xae\x5c\x13\xdc\x3b\x3c\x6b\xc4\xb2\x5c\xb4\x7c\x78\x63\x88\xaf\xe1\xa6\x0f\x44\x3c\x3c\x6f\x89\x90\x8c\xee\x88\xd5\xe3\x2c\x41\x21\xc3\xad\x95\x4c\x92\x40\x69\xa6\x76\x94\xc5\x45\x7e\x4b\x7c\x3c\x31\xa7\xa3\x18\x27\x7e\xa5\xd8\xc1\x7c\x80\x74\xfe\xae\x41\x09\x5e\xfa\x3d\x63\x4a\xb0\x4f\xfa\x1a\xe0\x68\x60\xf6\xd9\xc6\x37\x1e\x98\x3f\x4a\x7c\x2c\xdf\x78\x54\x27\x09\x46\xf2\xf8\x66\x02\xcf\xbc\xc1\x98\x8f\xc5\x2c\x1f\x6d\x75\x7f\x88\xa2\xa7\xd7\xe5\x20\xa5\x66\x39\x83\x6a\xd6\x90\x45\xc2\xf3\x08\x19\x0e\xed\x15\x44\xc4\x59\x91\x5c\xd8\x10\x19\x5f\x27\x61\xeb\x6d\xf0\xce\x8a\x64\x6e\x1b\x9b\x24\xe3\x9b\x85\x93\x24\xf8\x3b\x02\x4a\xe1\x1d\x76\x0e\x6f\x2f\x42\xa5\xe8\x00\x78\x39\xbe\xbb\x7d\xcb\x3f\x11\x88\xa0\x16\x55\x6e\x5f\x47\x6f\x22\x33\x18\x84\x5a\x8f\x59\xa1\x41\xdc\xf0\x1b\xe2\xba\x77\xed\x25\xdc\xa8\xad\x6c\xf2\x3c\x0d\x95\xaf\x6d\x10\xb0\x35\xc2\x02\xba\xf7\x19\x35\x22\x97\xb0\x41\xd8\xfc\x34\x91\xf4\x1b\x42\xc0\x04\xac\x3d\xbf\x92\x54\xa0\xbb\xf9\x13\xf9\x15\x25\x11\x42\xdb\x9a\x97\xf3\x17\x54\x0a\xdc\xc1\xd0\xf7\x37\x9a\x27\xab\x5d\x09\x3c\xc4\xc0\x9d\x79\xbd\x6c\x9c\xef\xad\x01\x21\xa5\x89\x45\x41\x52\x9d\x47\xc2\x0a\xde\xae\x41\x13\xb0\x7d\xe1\x91\xb8\x51\x76\x93\xbd\x2d\x70\x25\x3d\xff\x4c\xb3\xb3\x26\x6b\x77\x39\x6a\xa0\x7b\xd5\x04\xd1\x6c\x33\x44\xb3\x1d\xbd\x10\x10\x72\x12\xf3\xa3\x90\x6c\x03\xa9\xfa\xd8\xea\xb8\x90\x0c\xb9\xc9\x16\x4f\x5a\x8b\x82\xe9\xa7\x55\xaa\x10\x50\x3f\x4e\xd6\x9b\x41\xc7\x7c\xe1\x34\x68\x35\x44\x67\x4d\x86\xc8\xf7\x4e\xd0\xe7\xa4\xa9\xd3\x11\x28\xc7\xa3\x1c\x4e\xd9\x07\x9d\x8a\x13\xa1\x2b\xbb\xfe\x29\x4e\x41\xc0\xa1\x22\x3c\x60\x1c\x15\x15\x59\x61\x38\x4a\xcd\xbb\xcd\x5a\xbe\xa7\xe3\x90\xb8\x1f\x71\xca\x41\xa3\x3b\x35\xd1\x8e\x3d\xe6\xc3\x54\x29\xef\xe4\xca\xe1\x94\x0e\x5a\x58\x5b\xcf\x04\x4d\xec\xc8\x58\xd9\xe3\xc2\xdd\x4f\x17\x94\x07\x40\xa3\xe7\x3e\xa7\x8b\xd5\x1d\x9d\x4b\x79\xc6\x3e\x2e\x00\xf7\x93\x62\x61\xa3\x77\x96\x1c\x31\x4b\x18\x08\x0e\xf6\x64\xc5\x74\x23\xfc\xbf\x7a\x86\xa7\xbb\x6e\xae\x1d\x59\xe7\x39\x45\xde\xd1\x96\x26\xa5\x71\x1f\xb4\x2f\x81\x8b\xa5\xe0\xc4\xbd\xe2\xfe\x5b\x07\x49\xb6\xb1\xc3\xdd\xc7\xdd\x89\x7d\x4f\x08\x16\xf8\x06\xcd\x4c\x8f\x3b\x69\x28\x0c\x37\x04\x16\x4c\x58\x85\x51\x3f\xac\x81\x44\x58\x9d\xfc\xa5\x19\x0f\x94\x33\xf6\x83\xb7\x75\x5f\xd7\x8a\x1f\xe7\xe9\x18\x64\xe5\xeb\x1a\x4f\xc6\x88\xa7\x8e\xd7\x2b\xfb\xc8\xaa\x8c\xed\xfa\x57\x3a\x15\xc4\x45\x1d\x8e\x8f\x29\xae\x35\x01\xb3\x84\x61\xd1\x36\xc6\x36\x40\x56\x66\xd2\xb8\x96\xa7\x6b\x26\xa1\x86\xe8\xea\xc5\x6a\xc1\x8f\xed\x36\x97\x7c\x69\x2c\xbb\x5a\x67\x9d\x8d\xf1\x6c\x3c\xee\xe3\xa0\x89\xd0\xbf\xab\xb7\x67\x54\xfa\x7d\x89\x43\x94\x1f\x0c\xdf\xbe\x36\x6f\xab\x77\xa0\xeb\xd7\x1f\xfb\x7a\x25\xa1\x63\xc1\xc3\xcc\x8e\x82\x95\x74\xcb\xf8\xee\xcd\xa3\x08\x30\xb7\xa3\xb1\xcf\x18\x8e\xb1\x71\x3c\x67\xfb\x36\x71\xd3\x6d\x56\x78\xae\xec\xd8\x4c\x23\x1b\x08\x10\x55\x66\xea\xf8\x32\x56\x32\x18\xe9\xc0\xc4\x39\x26\xbe\xea\x1d\x58\xb3\x98\x4c\xed\x2f\xe1\xa8\x25\x8f\xb7\x0b\x89\xe5\xa8\x6e\xb0\xd9\xb6\xde\xa5\xc7\xa6\x16\x77\xeb\xe7\x77\x7f\xa0\x2b\x79\x3b\x19\x04\x07\xca\xe5\xeb\xda\x9a\x87\xc9\x56\x25\xd1\x85\xed\x6c\x40\x7c\xe5\xe9\xfd\xae\x82\x39\x38\x89\xa1\xf8\x71\xef\xed\x27\x38\xa4\xab\x71\x69\xbb\x58\x13\x81\xef\x48\xd6\x31\xd1\x7b\x00\x5f\xb8\xb4\x66\xaa\x06\x89\x31\xc4\x7d\x2d\x3a\x8e\x34\x15\x2a\x81\xaa\x42\x4f\x25\x97\x11\xab\x04\x6d\xb6\x65\xab\xb7\xae\x22\x94\xbf\x2b\xbe\x1d\x78\x40\xc7\x1a\x6c\x66\xcb\x66\xd4\x3d\x3f\xc3\xc4\x66\xd4\x36\x2a\x67\xdc\x84\xad\x5c\x2e\x5b\x4d\x03\x83\x77\x2d\xbe\xd5\x33\xfb\x1d\x17\xad\x4a\x36\x3e\x59\x6c\x09\x7c\x5d\xb5\x00\x04\x70\x70\x39\x51\x3d\xe6\x44\x75\x8e\xc4\x89\xf6\xdd\xe0\x6c\x2d\xdb\xcb\x7d\x9b\x7a\xb4\x1a\xc2\x46\xa4\x55\xfe\x48\x29\xe3\xe2\x0e\x86\x97\x46\x57\x47\x21\x48\xfb\xaa\x49\x58\x1c\x2e\x3d\x04\xc0\x97\x94\xa8\x6e\x80\x42\x5c\x29\xcf\x48\x8c\x8c\x2b\x3c\xca\xb6\xe6\x68\x61\x36\xe2\x60\xfe\x34\x5e\xcf\x9b\x87\x65\x6f\xcf\xd2\x61\x7d\x6d\x13\x47\x95\xca\xe5\x95\x59\x11\x11\x79\xb4\x15\xd3\x7a\xa8\x35\x36\x7c\x87\x8c\x97\x71\x69\x99\x24\x28\xad\xaf\xb4\x2c\xcb\x16\x52\x7e\x05\xae\x90\x2d\xf4\x18\x72\x2e\x55\x9d\x21\x55\x3d\x47\xea\x80\x35\xa4\xc2\x43\xc0\x49\xe1\x1b\x20\xb7\x43\xfc\xc8\x05\xc2\x7f\xac\xda\x8e\x0e\xaf\xed\xee\xc9\x19\xa2\x4e\x9e\xf9\xe4\x71\x7f\xa3\x8a\x61\xb7\x0e\xeb\x4e\xf6\xbb\xd2\xab\x4b\x33\xd1\xf1\x03\xa4\xdf\xdc\xf3\xa8\x6a\xe8\x7a\x54\x7b\xf2\xcc\xf0\x8b\x39\x50\xe5\x2f\xbb\xd5\xc6\xb4\x70\x12\xbb\x5c\xb0\x89\x40\x68\xea\xd4\x15\x52\x9f\x71\x21\xf5\x25\x15\x52\xe7\x28\x34\xd9\x28\x51\xac\x9d\x69\x35\x9b\x7d\xf8\x46\xdc\x9a\x77\x44\xbc\x36\xd6\x24\x59\x7e\xc4\xa2\xf9\x8b\x07\x09\x27\x05\xbf\xef\x85\x15\x09\xec\xe1\x04\x5f\xe5\x9b\x7b\x86\x02\xea\x8c\x0b\xb8\x73\x0a\xbb\xf3\xa9\xf1\x40\x68\x11\x32\x4a\x0c\x39\x5f\xec\x5b\xf3\x92\x60\x7c\x66\x06\xfd\x73\x30\x7b\xaa\xc2\xd8\xf4\x01\x0c\x06\xca\xcc\xbd\xa7\x27\x66\x0e\xce\x6a\x6d\x50\x51\x50\x9e\xab\x79\xd6\xe1\x55\x10\x7e\x97\x89\xad\x0e\xf6\x8d\xbc\x80\xcc\x1e\x93\x13\xd3\xf6\xb5\x2b\x38\xbf\xff\xee\xea\x6e\xd4\x52\x3b\x98\xd8\xf9\x6a\x66\xb2\x9a\x1d\x6d\x38\x97\x76\x76\xc4\xa3\xa0\xa0\x95\x5c\xc5\xa7\xc3\x06\x8f\xa7\x6d\x6d\xb6\xf3\x53\xfc\xc5\xdd\x9f\xc4\x8e\x77\x2f\xfa\xd3\x8a\xa4\xaf\x27\x49\xfd\xd7\xbe\x08\x6f\x8b\x79\x56\xdc\xa5\x38\xf6\x31\x13\x0b\x4d\xb6\x47\xf4\x79\x71\xcc\x1f\x49\x9a\x78\x9d\x5e\x32\xac\x15\x29\x2e\x81\x4b\x7e\xa9\xd9\x65\x24\x71\x67\x6c\xbb\xcc\x5d\x8b\x0d\xd4\xf5\xff\xb2\x76\x4f\x69\x5c\x5b\x29\xc8\x01\x5c\xe7\x8f\x4b\x0e\x1e\x9d\xd4\x66\x21\x49\x24\x8b\xc7\x2c\x2f\xdd\x77\xb5\xe5\x7d\x69\x0b\xd5\xe9\x07\xad\xec\x3b\x60\x09\x2b\x7c\xe3\x83\x56\x61\x26\x1e\xc8\xd6\xd4\x21\x81\x6e\xde\x2c\x02\x38\x7d\x0c\x6f\xbe\x71\xb5\xec\x77\x5c\x92\x81\xeb\x4b\xed\xf4\x0d\x3e\xa7\x7e\xea\xb8\xe3\x85\x9d\x3c\x73\x3b\xa1\xb2\x73\x2c\x8d\x5b\x10\x0b\x4c\x6b\xb5\x1c\x4c\xc2\xbf\xf0\xda\x92\xd9\x6b\x5f\x04\x73\x52\x87\x14\x9f\xbe\x1e\x2c\x53\x10\xfc\x27\x3d\xda\x18\x77\xf6\x9f\xf3\x74\xa3\xbc\x3e\x37\x63\x9f\xab\xd7\x1c\xd3\xf8\xe2\xd7\x56\x8b\xcf\x1d\x27\x0c\xcd\x30\x38\x71\x42\x99\x2e\x26\x6d\x34\x11\x3e\x79\xaf\xed\x7a\x1c\xce\x7d\xfa\xf6\x4d\x72\xe2\x51\x49\xca\xf8\x9e\x4f\xd2\x39\xb4\xaf\x49\xdf\x32\x44\xfc\x20\xc9\x85\xe5\x76\x63\x5f\x34\x34\xd6\x9e\x0b\xe9\xa3\x40\xb4\xa2\x5e\xb3\x47\x38\x99\x0b\xde\xc8\xd0\x99\xdc\xa3\xfb\xa3\x7c\xa5\x5d\x05\xc4\xff\x08\x2e\x7b\xc1\xce\x2d\x45\x1a\xb6\x6c\x34\x2b\x49\x09\x31\x1d\xe5\x5b\x9e\x62\xcb\xdc\xb3\x6b\x25\xac\x68\x24\xe7\x98\x8d\x4d\x34\x6c\x6f\x39\x3d\xd1\x35\x17\x28\x8e\x3c\x08\x2e\x45\x06\x36\xcd\x92\x08\xff\xb4\xf9\x97\x25\xc2\x9e\x48\x42\x85\x58\x8d\xa7\x1c\xab\x51\x12\x58\x2d\x91\x15\xc4\xd9\x16\x99\x7a\xf8\x34\x49\xf6\xaf\x93\x71\xa6\x7b\x28\xdd\x4f\x09\x94\x85\x83\x46\xc1\xf5\x42\x9d\x71\x70\x5c\xf5\x19\x07\x90\xb2\xa3\x6e\xdb\x3a\x5f\x76\xb8\xc9\xc4\xd0\xef\xb7\x75\x4f\x5f\x2a\xdf\xd9\xc5\x1c\x96\x6a\xba\x3a\x29\x58\x88\xd1\xc7\x44\x49\x79\xc7\xdd\x16\x33\xf6\x6d\x2d\x2e\x23\x51\xa9\x64\x48\x12\x93\xca\xd7\x66\x95\xbb\xcd\x67\xda\x33\x28\xb0\x03\xee\x5c\x34\x7a\xfe\xa4\x51\xf7\x33\x75\x76\xdf\x65\x34\xbb\xb6\x92\x48\xe9\x83\xe5\x51\x67\x4f\xce\x4f\xe3\x52\x0c\xef\x33\x16\xe0\x46\x79\x1e\xf4\x49\x8e\x7d\xbd\xaf\x45\x14\x5d\xfb\x58\x5f\x73\xe8\x2f\xac\x22\x57\x9d\x3f\x3e\xf3\x6d\x6c\xf2\x0a\xe5\xec\xe3\xbb\xd0\x6e\xe4\x50\x96\xc8\x5b\xbb\x62\x3a\x4f\xe8\xb5\xc5\xb3\x5d\x3f\x76\x71\xcd\x0a\x77\x3a\x24\x6a\xe6\x2b\x13\x6f\xa2\x4e\x5c\xcd\xd4\xe9\xfd\x27\x83\xd1\x70\x30\x9e\xda\xac\x73\x8e\xd7\xe7\xc6\x85\xd4\x9d\x6e\xc1\xda\x10\x52\xb3\x51\xf7\xac\xed\x86\x3d\x0f\x79\x05\x4d\x07\x61\x53\xa2\x08\x1b\xbf\x35\x23\x4a\x9d\xbc\x15\x38\xb1\xcf\x63\x2a\x37\x7a\x4d\xd6\xbf\x8c\xa3\x1d\x47\x61\xd2\xf3\x35\x65\xda\x32\x68\x25\x52\x51\xa5\x46\x2d\xa9\xc6\x25\x6e\xf5\xe8\x5b\x87\x13\x87\x30\x89\xaa\x40\x50\x0a\x65\x02\x94\x1c\xbd\xe3\x43\x9f\x5e\x1a\x1e\x6d\x52\x4a\x3b\x23\xcf\x69\xc8\x24\xaa\xc1\x9b\x6c\x46\xdc\x5d\x83\xd3\x3f\x4c\xdc\x3c\x04\x2d\x84\x2d\xaa\xab\x2a\xde\x3b\xee\xf1\xd4\x3c\x29\xf0\x12\xbb\x45\x6c\x2f\xf5\x64\x01\xb8\x61\x89\x85\x23\x1c\xc3\xc6\x65\x06\x48\xcc\xa6\x96\x17\x17\x88\xfc\x84\xa0\x81\x84\x21\xe9\xd0\x2b\x9b\x12\xea\xe5\x0d\x6f\x5c\xa8\x42\x58\x99\xb0\x86\x05\xb7\x6c\x5b\x68\x2a\x0a\xf8\x2f\x4b\x66\x68\xb6\xee\xec\xcb\xc5\x13\x2f\xdf\x76\xa2\x06\xce\xc5\xb3\x63\x5d\x26\x95\xc2\x38\xb8\x98\xde\x25\x37\x38\x42\x50\x6b\x92\x77\x87\x2f\x04\x0c\x34\x86\x6e\x11\x70\x27\xb2\x5a\x48\xac\xf3\x89\x5a\xd6\xec\x5d\xec\xe6\x45\x87\xe6\xeb\xd2\x44\x5f\x5f\xd1\x01\x20\x8c\x50\x22\x0b\x4d\xf8\xea\xf8\x19\x20\x68\x9b\xdd\x74\x0c\xa2\xd8\x0f\x3c\xb3\x1e\x55\x25\x5e\x44\x62\xc9\x44\xe2\x7e\xb0\x9f\x6b\xf9\x43\x1f\x56\x65\x39\xb9\xb5\x96\x9a\x76\xa6\x88\x91\x71\xd1\x40\x4c\x43\x5a\x44\xbf\x42\x62\x4c\x87\x43\xea\x70\x98\x71\x5e\xd3\x6c\xa3\x45\x3b\x3b\x7b\x3c\x95\xe9\xdf\x6f\x69\xd9\x33\x0f\xcf\x4a\xde\x41\xc4\xd2\x35\x6d\xd7\x3b\xef\xc6\x35\x52\x38\x0f\x73\xa6\xda\x69\xfe\xbc\xcd\x5b\xf3\x51\xd4\x8c\xc3\xc7\x53\x00\xb2\x88\x39\x5a\x0e\xc1\xc4\xe9\xd3\x91\xf6\xd9\x8e\xab\xd4\xea\xd7\x3f\x35\x39\x3c\x19\x1e\x9b\xbb\x73\x91\x22\x70\x37\x2c\xf8\x6c\x48\x59\x7b\x29\x42\x14\xb6\x2d\x0b\x76\xde\x10\x06\xfe\xd0\xaf\x88\x28\x47\xd5\xe3\x81\x4a\x84\x55\x17\x71\x95\x2d\xe1\xdd\x30\x97\x54\x4f\xfb\x47\x45\x8b\x7e\xe7\xab\xf1\xac\xd8\xcb\xbe\x1f\x5c\x74\x0e\x26\xe3\x9e\xba\x65\xfd\xc9\xe0\x79\x5c\x4e\x0c\x4f\xb8\x06\xb4\x23\xde\x80\x70\x65\x58\x6c\xf9\x92\xe1\x85\xbe\xfe\xcd\x86\x89\xd8\x94\x19\x4e\x08\xd3\x13\x91\xf0\xa2\x3d\x09\x1b\xda\x36\x3c\xa5\x1a\xb5\xc0\xba\x05\x56\xb9\x41\x76\xce\x10\x0c\xa7\x31\xad\x7d\xc9\x51\x1e\x45\xf5\xad\x38\x9f\xe2\x49\x24\x3b\xed\x50\xeb\xeb\xfe\xb9\x33\x1d\xf5\x69\x8a\x35\x6d\xb8\x87\xd8\x14\x6e\xd8\x24\x85\x6c\x22\xb4\x29\x2e\x7a\xac\x10\x20\x24\x37\x7f\x9c\x23\x3a\x2f\xb4\x0f\x5d\xf0\x73\x0c\x6b\xfc\x77\x30\x12\xd1\x4a\x1d\x21\x18\x55\xb9\x3a\xb4\xfd\xb0\xa4\xe3\x88\xef\x3b\x31\x35\xcd\x76\xbb\x93\x8e\x4c\x19\x76\xe6\x97\x9f\x3f\x7e\x36\x2c\x39\x71\xe8\x6d\xce\x18\x47\xd8\x8c\xa3\x18\x41\x6e\xe1\xa6\x26\x61\x6f\xef\x92\x72\xc7\xa6\x20\xbb\x70\xaa\x15\xce\x19\x94\x23\x71\xb1\x12\xc6\x93\x7f\x27\xcb\xf8\x37\x85\x1e\xe1\x1f\x36\x43\xf7\x0a\xdd\xaa\xcc\x6a\xfa\xe7\x50\x98\xab\xf1\x08\x70\x3c\x7d\x24\x63\x83\x60\x01\xb6\x1a\x0c\xb9\x5c\x45\xc8\x8c\x1e\xf9\x88\xd1\xc9\x34\xe1\x6f\xa2\x13\xed\x4a\xd2\x7e\x78\x99\x67\xce\x9d\x76\xbf\x1a\x96\x73\xf9\x93\x4d\x66\x52\x27\x6c\x8e\x15\x1d\x88\x3c\xe1\x45\xe9\x24\xb1\xb1\x42\x84\x4e\xed\x61\xc7\x19\x94\xf2\xe1\xa8\x8f\x0b\xaf\x57\x1e\x7a\xa2\xc4\x0b\x20\x8c\xae\xd5\xf4\x68\x5e\xdb\xfc\xc2\x44\xfa\x42\x7b\xa6\xd3\xb9\x5d\xb6\x6d\xd5\xc4\x4e\xdb\xfc\x66\xd0\x70\x32\xd3\x2d\x4d\x0c\xb5\xca\x59\xb5\xeb\x20\x15\x5b\x61\xe3\xf5\xeb\x18\x77\xb9\xa2\x96\x58\xb0\x64\x01\x53\xdc\x61\x39\x77\x8c\xd6\xb5\x7f\xc0\xdb\x82\xea\x0b\x9b\xa2\x13\x96\x61\x72\x91\x46\x5c\x02\x4a\x06\xaa\x19\xe5\x7b\xab\x93\xd9\xaa\x2e\xf1\x0c\x25\x3b\x5b\x29\x7c\x84\xac\xf8\xc0\xba\xb4\x86\xf6\x6b\xd6\xe1\x7a\x03\x01\xba\x8b\x92\xc6\xbb\x8b\x6a\x24\x66\x2a\x8c\xbe\x42\x66\x88\x6c\x5f\x82\xe7\xc0\xe3\x2d\x69\x01\xf3\x83\x59\x75\xfe\x2e\x88\xd7\xc0\x3e\x7d\x9f\xeb\xb8\x99\xd2\x69\xea\xe8\xb7\x0f\x19\x91\x7b\x88\x1f\x2d\xc1\xad\x95\x96\xf8\x8d\x4f\x58\xd0\xad\xe2\xc6\xe2\x2e\x47\x3d\x7a\xdb\x1d\x67\x23\x23\x9f\x0b\x04\xef\x98\x34\xe7\xe9\x42\x8d\xc0\x0a\xc5\x29\x8b\x0f\x12\xa3\xa7\x90\x19\x8d\xdd\x25\x95\x15\x25\xcc\xe2\x22\x2c\x45\x84\x9b\xf1\x49\x73\xa2\xd7\x5e\xdf\xc3\x54\x6a\x05\xb6\xe0\xbb\xf4\x35\xb5\xce\x2a\x67\x07\xe1\xf1\xd2\x60\xe9\x77\x1b\xe7\x40\x57\xf8\x80\x76\xf2\x7f\x16\x07\xa6\x4a\x02\x10\x7f\x10\x02\x0d\xc3\xbc\xff\xf8\x6b\x09\x3e\x7a\x3d\x35\xba\xef\xab\xd5\x25\xe1\x3b\x76\xc4\x8f\x07\xf1\x7e\x53\xaf\xde\xbf\x1b\x07\xa7\x97\xf0\x17\x51\x34\x67\x8c\x33\x6a\x55\xe6\x28\x11\xfe\xbf\x97\x10\xe8\x39\xd0\xb2\x68\x9e\x92\xb6\x45\x29\xc5\xcd\xff\x81\xdb\x0f\x0d\x7d\xef\x5b\x4a\x63\x50\xbb\xf8\xa1\x49\x50\xe0\xb8\x4d\x1b\x5a\x1a\x23\x6e\xfe\x10\x47\xd4\x4f\xdf\x1e\xf8\xbe\xf1\x81\xe7\xff\xae\xc1\x4d\x44\xce\xfd\xde\x46\x37\xfe\xfd\x43\xf3\x71\xb9\x78\x2d\x24\xe4\xd6\xdf\xfe\x42\x3c\xd1\x60\x6f\xc8\x0a\xfb\xe5\x4d\x57\xea\xce\x3d\xb7\x5b\x38\x26\x44\xab\xd7\xf3\x52\xbc\x3f\x65\x8e\x88\x2f\xf1\x7b\x17\x36\xdd\x2d\x1c\xda\xfc\x43\x1f\x88\xda\x3e\x1a\x55\xb1\x1d\x55\x21\x6e\x18\xb8\xe7\xfa\x30\xf8\xcc\xf2\xf6\x47\xf4\x61\xda\xfc\x7a\x5d\xce\xe5\xcc\xf2\xe3\x6c\xb0\xd4\x67\x67\x5a\x36\xd2\xc7\x97\xfd\xf7\x83\x66\xfe\x01\x91\x93\x4d\x57\x64\xc4\x55\x21\xfc\xef\x07\x3b\x4a\x41\x70\xdf\xd6\x25\x5c\x52\x82\x3c\x16\xe8\x52\x32\x4a\x01\xbe\x25\xae\x8c\xbf\xf7\xf4\xdd\xf6\x71\x0a\xa1\x20\x6e\xc6\x34\x44\xe3\x57\x92\xd6\x53\x4a\x5d\x6e\xf8\xa3\x31\x84\xc4\x33\x0e\xe1\x2f\xbd\xdb\xd0\xc3\xd4\xad\x04\xf6\xe7\x7f\x39\xf1\xb2\xec\x6a\x4e\x92\x31\x70\x1a\xde\x5f\x46\x12\xd0\x2c\xbe\xf7\xc6\x6c\x38\xa1\xed\xd7\xa5\x4b\xa4\x31\xb4\x97\xb6\x31\x8c\xe3\x97\x55\xcf\xe9\x88\xaa\xcb\xc9\x5b\x2d\x3d\xd4\x7a\xbf\x70\x03\x92\xd1\x48\x9a\x1b\x0e\xff\x32\x74\xb3\xba\xac\x10\x78\xf4\xbb\xf0\x14\xa3\x7b\x26\xeb\xb9\xb8\x35\xd8\x38\x49\x6d\xd7\x92\x48\x01\xf5\xfd\x86\xbe\x8b\xfc\x4a\xc2\x21\x61\xb7\x35\x6c\xee\x3a\x63\x87\x45\x0e\x0d\x9c\x17\x55\x67\x85\xdd\xa7\x36\x3c\x59\xa1\xa3\xa2\x5e\x50\x96\x67\x70\xfb\x0a\x26\xaf\x2c\x55\xd3\x62\x2f\x96\x44\x28\xbf\x2e\xe1\xa9\x5e\x5b\x63\x9a\x77\xfe\xf9\x9f\x39\x46\x79\x7e\x30\xff\xf2\x2f\xea\xc9\x67\xef\xca\x15\x02\x91\xd1\x83\xe6\x97\x23\x50\x74\xa7\x37\x0d\x09\x3e\x5b\x22\x64\x54\x7e\xa7\x7f\xf8\x63\x52\x85\x7d\x65\xd9\xdc\x95\xaf\x48\xec\x6b\xd1\xd6\xd5\xfc\x7f\x07\x00\x00\xff\xff\x3f\x7c\xb3\x43\x26\xad\x00\x00") +var _confLocaleLocale_plPlIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\xbd\xcd\x8e\x1c\x47\x92\x27\x7e\x27\xc0\x77\x70\xb1\x41\x48\x02\x4a\x29\xa8\xf5\xff\x58\x68\x95\xd2\x52\xa4\x5a\x62\x8b\x1f\xb5\xac\xe2\x10\x23\x41\x48\x45\x46\x78\x65\x45\x65\x66\x44\x76\x7c\x30\x15\x39\x98\xc3\x0a\x2d\xec\x65\x1f\x60\x35\xba\xcc\x3b\xf4\xad\x47\xa7\x69\xd6\x8b\xec\x93\xac\xfd\xcc\xcc\x3d\xdc\x23\x22\x8b\x94\xa6\x31\x07\xb2\x32\xfc\xdb\xcd\xdd\xed\xcb\xcd\xcc\x93\xdd\x6e\x91\xd9\x3a\x9d\x7f\x66\x0f\xcb\x72\x63\xeb\x22\x31\x6d\x7d\xfd\x43\xbb\x4a\xcc\x17\x79\x63\x8a\x64\x97\xd7\x09\x25\xee\xcd\x17\xa5\xc9\x0e\x79\x72\xfd\x43\x72\xf5\xea\xc7\x34\x31\x48\xa4\x8f\xba\xe8\xb6\xa6\xb6\xd5\xde\x56\x07\x7b\xfb\xd6\xed\x5b\x97\xe5\xd6\xce\xcf\x9a\xaa\xa4\x02\xab\xeb\x1f\xfe\xf6\x97\x7d\x91\xdc\xbe\x95\x25\xf5\xe5\xb2\x4c\xaa\x6c\x7e\xda\x6e\x76\x79\x73\xfb\x96\xfd\x7e\xb7\x29\x2b\x3b\x7f\x9a\xad\xab\x6e\x9f\x5c\x51\x4d\xbb\xd9\xcd\x4f\xcb\x6d\x99\xde\xbe\x55\xe7\xab\x62\x91\x17\xf3\xaf\x93\x4d\xb9\x6a\xaf\x4c\x9d\xbf\xfa\x49\x53\xcb\xb6\x99\xbf\xe8\x38\x59\x53\xda\x1d\x95\xab\xec\x95\xad\x9b\xca\x97\xad\xec\x2a\xaf\x1b\x5b\x4d\x64\xed\xed\xb2\xce\x1b\x37\xca\xdb\xb7\x5e\xda\xaa\xce\xcb\x62\xfe\x82\xfe\x5e\xd1\xf7\x2e\x59\xf5\x99\x8d\xdd\xee\x36\x09\x4a\x1f\x92\xe5\xa6\x2c\x6e\xdf\xda\x24\xc5\xaa\x45\x91\x3f\xbe\xfa\xe9\xd0\xad\x6f\xdf\x4a\x2b\x4b\x05\x16\x85\xdd\xcf\xef\xf3\xcf\xd9\x6c\x76\xfb\x56\x4b\x50\x59\xec\xaa\xf2\x22\xdf\xd8\x45\x52\x64\x8b\x2d\xa6\x7b\xca\x09\xa6\xbd\xfe\xa5\x6b\xd6\xe5\xbe\xc8\xd7\x89\xc9\xcd\x9e\xc6\x95\x5a\x9d\x8f\xcd\x68\xe6\x8b\xa4\x96\xc9\x97\xfb\xa4\xe8\xcc\x55\xb2\x2e\x01\x5d\x34\x5a\x24\x04\xe1\x27\xc9\x61\x9f\x98\xe7\x41\x33\x04\xd2\x6d\x92\x6f\xe6\x9f\xbf\x87\x3f\x98\x45\x5d\xef\x4b\x82\xf8\x97\x09\xad\x68\x09\x88\x2c\x9a\x6e\x67\xe7\x2f\x68\x4d\x0f\x66\x57\x16\xa8\x47\x6b\x96\x26\xbb\x26\xbd\x4c\xe6\xf7\xe5\x2f\xba\xa9\xec\xae\x24\x10\x95\x55\x37\x7f\x46\x3f\x0f\x1d\xfd\xcc\xdb\xed\xed\x5b\x65\xb5\x4a\x8a\xfc\x90\x34\x80\xd7\x53\xfd\x48\x01\xb4\x6d\x5e\x55\x65\x35\x7f\xcc\x7f\x6e\xdf\x22\x60\x2c\xd0\xca\xfc\x49\xb9\xb7\xa6\x8a\x1a\x41\xde\x36\x5f\x55\x80\x2a\x65\x27\x86\x3f\xb8\x15\x64\x5d\x94\xd5\x7a\xfe\x07\xfa\x8f\x16\x6c\x5c\x91\x46\x20\x95\xca\xa8\x77\xda\xa4\x2b\xcb\x99\xb4\xde\x87\x57\x3f\x66\x87\xe4\x2a\x2c\xb2\xcd\x6f\xdf\x4a\xb2\x2d\x01\x76\x97\x14\x76\x33\x3f\xc5\xff\x86\x53\xa8\x7a\x92\xa6\x65\x5b\x34\x8b\xda\x36\x4d\x5e\xac\xea\xf9\xf3\xba\x49\xf6\xb9\x2d\xf2\xc4\xac\xcb\xa2\xa1\x22\x13\x59\xb7\x6f\x75\x65\xeb\xd7\x78\x7e\xbe\xff\xdb\x5f\xae\x8c\x7c\x69\x96\xaf\x74\xbe\x2f\xaf\x2c\x1d\xad\xbe\x2a\xcf\xa6\x5e\x5c\x58\x9b\xcd\xbf\xa2\xd1\x5f\xff\x60\x92\x75\xd3\x26\x9b\xa2\xbc\xfe\x39\xa5\xd1\xee\xda\xcd\x86\x40\xf8\xa7\x96\xf6\x6e\x3d\x7f\x9a\x1e\x2c\x01\x84\x8e\x9e\x35\x87\x6d\x4e\x7b\xe2\xf6\xad\xbc\xae\x29\x13\x5b\x6a\xb9\xb1\xdb\x0e\x6d\xa6\x49\x91\xd2\xec\xee\x15\xed\x06\xc7\xe3\xf6\xad\x6f\x6a\x9b\x54\xe9\xe5\xb7\x98\x00\x7e\xd0\xd1\xa9\x0f\xed\x3a\xa7\x5d\x95\xcb\x3e\x3d\xba\xd6\xd8\x6b\xf3\x60\x87\x69\x87\xf3\xaf\xe9\x58\x97\xf5\xc1\xca\xe6\x29\x33\x3b\xff\xaa\xcc\xb8\xaf\xbc\xa0\x09\x6e\x36\xd4\x99\xfe\x9a\x3f\xe4\xbf\xb2\x46\x4d\xde\x10\x94\xbe\xaa\xca\x75\x6e\x72\x4d\xef\xae\x0a\x6b\xb2\x4d\x62\x76\x39\xe1\x10\x6a\x74\x55\x9a\xb6\x6a\x53\xc2\x22\x0a\xa7\xac\x4c\xd7\x74\x90\x80\x1c\x68\x38\x0f\x2f\x0c\x01\xf6\xed\x8a\xb6\x54\x5b\x14\x04\x5a\xc2\x4b\xab\x1a\xcd\xe5\x99\x35\x0f\xb8\xec\x89\xd9\x6d\x6c\x52\x63\xd7\x25\x99\xf9\x38\x31\x4d\x52\xad\x6c\x33\xbf\xb3\x58\xd2\xd1\x5d\xdf\x31\x97\x95\xbd\x98\xdf\xb9\x5b\xdf\xf9\xe4\x8b\x96\xaa\x6d\xf2\xc2\xd6\x1f\xbf\x9f\x7c\x62\x52\x42\x15\x17\x04\xf6\xce\x2c\x2d\xed\x42\x8b\xbe\x0c\x1d\x89\x62\x65\x0d\x41\xbc\xb9\x44\x87\x79\x61\xe8\x47\x6d\x80\x25\xde\x02\xf8\xfe\xd4\x12\x32\x59\x64\x4b\xc1\xa4\x3c\x1e\x4e\xac\x6c\x6d\x1e\x77\x67\xff\xfd\xd1\x89\x39\x2d\xeb\x66\x55\x59\xfe\x4d\xff\x51\xf9\x0f\x69\x73\x9a\xf3\xfc\xc1\x67\xb4\x02\x54\x55\x60\x13\xec\xba\x65\x72\xe8\x4c\x46\x9d\xa6\x97\x52\x00\x27\xf7\xbc\xdb\xc5\x19\x97\xd4\xee\xfc\x4b\xfa\x6f\x6a\xb5\x46\x08\x80\x9a\x09\x70\xc7\xb0\x07\x85\x30\xed\xa6\xfa\xf0\xea\x27\xc6\x50\xaf\xfe\x27\x61\xcc\x0d\xe3\xa8\x87\x4f\x9e\x3c\x7d\xf0\x99\x39\xd0\x71\xc8\x4a\xde\x3c\x5b\xd3\x36\x17\xff\x65\xb1\xb2\x85\xad\x92\xcd\x22\xcd\x79\x1d\x79\xc2\x34\xa7\xba\xde\x10\xc2\xa3\xbd\x71\x5e\x75\x4b\x73\x76\xf6\x08\xe3\x69\x2e\xe7\xd7\xff\x92\xe6\xf6\xfa\x17\xa0\xab\xfa\x4f\x1b\x00\x4e\xfb\x3d\xbf\xb4\x06\xc7\xc8\xa0\x98\x29\x2f\x86\x70\xa2\xa1\x36\xc9\x92\x96\x95\x1a\xb7\x55\xb5\x20\xb4\xdc\x74\x80\x3a\x37\x7b\xac\xb0\xb4\x46\xa7\xa2\x28\x1b\x5a\x54\xc3\xb5\xb4\x85\xbc\x78\x99\x6c\xf2\x8c\x60\xef\x00\x13\x57\x45\x92\xc9\x4a\x5a\x45\x54\xa6\xdd\x5c\xee\xb1\x19\x08\x53\x11\x59\xa9\xcd\x9d\xd9\x1d\xda\x14\x99\xb9\xf3\xde\x1d\x6a\xb0\x28\x17\x82\x5e\x80\xe9\x33\x22\x9a\x74\x24\x17\x42\x83\x2a\xc1\x96\xff\x88\xbd\x24\x03\xd1\x7c\x13\xe6\x13\x0d\x68\x2e\x89\xb6\x19\xa6\x26\xd8\x68\x49\x21\xf8\xc9\x28\x76\x8a\x26\xee\x70\x99\x2e\xf1\x3d\x2e\xe8\x3e\x27\x26\x7c\xfb\x96\x5b\xa8\xd1\x56\x2b\x57\x7f\xfb\xcb\x86\x8e\x21\x76\x2e\xa1\x42\x62\x09\x82\x5d\x92\xec\x36\xb4\xfc\xe9\x55\xde\xe7\xb8\x15\x7b\x4e\x47\xf4\xfa\x67\xda\x23\x4d\xdb\x10\xb2\xa5\xd6\x36\xeb\x57\x3f\x12\x35\x03\x7e\xb8\xfe\xb9\xa0\xdf\x05\xb5\x41\x7b\xa9\x06\xf6\x0b\xd1\x71\xfe\x96\xe0\x1d\x59\xbc\xaf\x08\xe2\x44\xe9\x02\x64\x4f\x5c\x43\x50\xc0\x75\xf8\xc2\x34\xc4\x6c\xac\xa5\x74\x6b\x0e\xb4\xef\x13\xf4\x72\x10\x2e\xc5\x1a\x42\x20\x5d\xdd\xac\xf3\x90\xe0\x30\x23\x03\x34\xd7\x12\xa3\x80\x33\x22\xf3\x8a\x08\x70\x80\x71\x88\x5a\xad\xca\xbe\xb4\x9f\x6b\x5f\xdc\x6c\xdb\x3a\x27\x92\x65\x69\xe6\x19\x0d\xe1\xd5\x4f\x3b\xfa\xdb\x0f\x2b\x9a\x05\x41\x83\x1b\x4f\x80\xb2\x31\x16\x82\x31\x4e\x7c\x49\x34\xba\x98\x3f\x20\x5e\x89\xb9\x23\xfe\xf4\x27\xa1\x34\xfb\xdd\xf5\x0f\x1d\x9d\x31\x70\x59\xcf\x9f\x3d\xb2\xdc\xc1\x06\x14\x9b\x5b\xd9\x95\x3b\xe2\xb6\x0e\x74\xac\xbe\xe4\xa3\x76\xb9\xd8\x95\x55\x43\xbc\x53\xd5\x20\xad\x4f\x72\x4d\x3e\x69\xb7\xb6\x32\x48\x69\x4f\x70\x86\x9b\xbf\xfd\xa5\x02\xaa\x5d\x97\x15\x20\x96\x50\x9a\xf0\x70\xa8\xfe\x5f\xa9\x20\xc3\x76\x6f\x76\x44\xb1\xec\x89\x49\x96\x9d\xd9\x77\xd7\x3f\x10\xf5\x39\x00\x29\x5c\xb4\xc5\x3a\xbd\xa2\x85\x95\x01\x5c\x36\xcd\x2e\x18\xc1\x97\xe7\xe7\xa7\x41\xe2\xc4\x18\x30\x2d\x1e\x03\x2d\xa7\xdb\x60\x89\x01\x93\xe6\x20\x5a\x24\x33\xd9\x70\x6d\x45\xd4\x2c\x03\x2a\x25\x38\x0c\x77\x23\x65\x1e\x01\x5a\x82\x2a\x5d\x08\x33\x8c\xea\x7d\xfc\x77\x06\x7e\x8b\x76\x6b\x42\x50\x67\x52\x9b\xa4\x97\xc6\x32\xd3\xc4\xe7\xa4\xdc\xe1\x38\x4e\x1e\x94\x5d\x7a\x85\x9c\xc2\x2a\xaf\x35\x2e\x22\x50\x4c\xb4\x3d\x5a\x88\x2d\x41\x81\xb1\xf4\x99\xc2\xf7\x31\x80\xc3\xc9\x17\x55\xb9\x25\xf6\x37\xf8\x72\x93\x91\x09\x13\xf8\xcb\x4d\x6b\xee\x3c\xcd\xee\xd0\xa2\xad\xca\x0c\x73\x3b\x98\x67\x7f\xb8\x6f\xfe\xdf\x0f\x7f\xff\xfb\x99\x79\x5c\x5e\xff\x62\xcd\x12\x2b\xd2\x94\x54\x18\xbc\x47\x4d\xd0\xe5\xc9\x1b\x1e\xe1\x89\x59\x12\x2f\x74\xfd\xd7\x7f\xff\xd7\x44\xdb\x24\xba\xb6\x4d\x08\x07\x9b\x3b\x7c\x10\xee\x98\x8f\xb9\xe0\x7f\xb3\xdf\x27\xc4\xe8\xda\x59\x5a\x6e\x3f\x99\x81\xa1\x22\x5c\x5c\xb9\x13\x93\x25\x7b\x62\xf9\x03\x98\x19\xc7\x65\x6a\xb9\x01\xad\xa1\x25\x40\x95\xae\x67\xc3\x17\x69\x59\x5c\xe4\xd5\x76\xfe\x42\xb6\x11\x0d\xb7\x21\x98\x55\xd9\x81\xe1\xa6\x2c\xba\x2c\x2d\x83\x96\xf0\x57\x7e\xd1\x05\xc5\xa5\x77\x01\xb3\x07\xaf\xad\x88\x79\x5f\xe0\x4f\x9e\xda\xe3\xcb\x01\x86\x03\x84\x4e\x85\x1b\x5a\xe4\x8b\x0b\x90\x7d\x21\x51\xae\x8f\x06\xa4\x4a\x73\xe2\x22\xb4\x91\x77\x24\x65\xbc\xd0\x33\x60\xee\x3f\x78\x72\x42\x73\xdc\xdb\x86\x20\x8a\x6a\x04\x4f\x02\x7e\xd6\xae\xc1\xd1\x74\xdb\x93\x00\x15\x61\xcb\xe6\x84\xa3\xea\x72\x09\x84\xb0\x7c\xf5\x53\x46\x38\x6b\x57\x12\x80\x80\xb3\x36\xe5\x9a\x76\x54\x0e\xb2\xe6\xc8\x06\x31\xc3\x2f\x09\x9b\x54\x7d\x7f\x32\x6c\x3a\x70\x5f\x68\xd6\xb8\xb0\x0e\xf1\x81\x92\x16\x57\x90\x49\x54\x4a\xc7\xb8\x24\x31\x8d\x58\xd2\xd4\xd6\x27\xa0\x65\x46\xb2\x6b\x43\x2c\x8f\x69\x49\x14\x4b\x32\x9b\xd1\x5e\x32\x58\xf1\x1a\x74\x34\xb3\x17\x49\xbb\x69\x82\x71\x45\xe4\xcc\x8f\xad\x4e\x08\x42\x07\x42\xfe\x40\xc5\xfd\x3a\x42\xd0\x9a\xaa\x38\x04\xe5\xd1\xea\x11\x8a\x3e\x21\xd4\xbf\x59\x97\x42\x10\xa5\x2d\x1a\x22\x60\x49\x55\xcd\xf6\x6f\x7f\x21\x9a\x63\x9a\x3d\xd0\x19\x9d\x06\x66\xd9\x41\x2e\x0b\xee\xde\x09\x38\x9f\xf3\xa7\xf1\x72\x4e\x9c\xad\x03\x7b\x26\xac\x9b\x61\xde\x80\x24\x14\xa3\xd9\x38\x38\x0c\x1c\xda\x54\x9b\x8b\xf7\xc2\x29\xcd\x94\x0b\x24\x01\x4b\xe5\xd6\xc5\xcb\x9c\x84\x41\xb7\xaf\xf6\x1d\x06\x48\x5b\x40\xc5\x39\xda\x98\x19\x0e\x2b\x71\xbb\x1b\x3a\x9d\x9c\x50\x43\xdc\x9c\x6e\x47\x07\x76\xce\x00\xe8\x1b\x09\xe0\x93\x76\x6e\x5b\x6d\xcb\xd5\x26\x0f\x9a\x06\x07\x87\x96\xbb\x13\xb3\xe2\x83\x4b\x18\xa4\x5c\x26\x29\x49\x48\x0a\x51\xce\x26\x68\xfb\xb1\xcd\x9c\xa0\xa4\xc2\x8b\xb0\xb5\x4f\x00\x66\x22\x7c\x24\x39\xc6\x60\x8e\x97\x84\x98\x6d\x3a\x6f\x87\x93\x70\xf1\x08\x67\x3d\x7c\x60\xe6\xe6\x03\x43\x47\x62\x9d\x78\xa2\x39\xa8\x98\xb4\xb4\x47\x93\xa6\x4b\x0f\x72\x1a\x64\x10\xa3\x23\x3d\xd5\xa9\x2b\x7c\x54\x32\x1e\x70\x4b\x8e\x21\x56\x9c\xd4\x67\x9c\x2a\x52\xba\xfe\xab\xb9\xd4\x32\x52\x35\x16\xad\x55\xba\x59\xac\x88\x9a\x93\xbc\x29\x9f\x24\xad\x0a\x07\xd5\xd0\x16\x5e\xac\xf2\x66\x71\x01\xdc\x98\x31\xe8\xda\x2c\x01\x5a\x84\xfe\x81\x57\x07\x65\x08\xdc\x04\x44\xc2\xf1\x36\xe5\x99\xdd\xa1\x3a\x77\x3e\x32\x77\x5f\x3a\xd6\xf8\x43\x20\xc1\x05\x1d\xd4\x7c\x83\x8d\xaa\x42\xe4\xbe\xc3\x8e\x21\x2a\x47\xff\xca\x25\x23\x86\x96\x92\x95\x03\x3e\x61\x22\x00\x06\x7e\x57\x2e\x2b\x74\x40\xe2\x28\x51\x57\x30\x78\xae\xe6\xc1\xdc\x05\x12\x30\x4f\x1e\x7e\x6e\xf6\xd0\x79\x50\xe9\x03\xed\x8f\x65\x9b\x6f\xb2\x19\xa6\x27\x8c\x31\xb1\xc5\xba\x07\x8e\x48\x26\x3c\x86\x9a\xb1\xd9\xae\x4a\xf6\x85\x95\xd1\xbb\xfa\x3d\x87\xe7\xb9\xfe\x01\x77\x84\xfa\x4c\xf6\xb5\x81\x44\x1a\xf0\xdc\x17\xe6\x4f\x7b\x82\xc4\xd6\x90\x01\xf3\x5c\x40\x5f\x5f\x45\x67\xe2\x27\x82\x8d\x47\x32\x0a\xb5\x57\x9b\xf7\x3e\xa1\xff\x09\xa8\xc9\x4b\x2b\x64\x68\x75\x6c\x69\x84\x93\x94\xad\x4d\xc5\x5a\x26\x48\xf1\xa4\xa2\xb3\x81\x06\x30\xf0\x3c\xa3\x26\xf6\xa1\x80\x1f\xee\xd3\xc4\xb5\x20\xbb\xa6\x6e\x53\xc2\xc2\xf5\xfc\xfe\x81\xd9\xe7\xb7\xcc\xfd\xdc\x12\xb5\xd8\x76\x3c\x86\x13\x03\xa2\xbe\x07\x49\xa9\x68\x60\x54\x84\xb7\x15\x11\x72\xe2\xc7\x78\x90\x19\x2d\xec\xc1\x32\xaf\xf2\x0d\xb4\x6d\x24\x6e\xb7\xc2\x97\x97\x9b\x6c\x9a\xc1\xdd\xb4\x4b\x4f\x33\xdd\x66\x77\xc5\xdd\x61\xa8\x49\x00\x49\x2f\x17\x5e\x53\x07\x50\x35\xf6\x7b\x62\xea\xa8\x37\xc5\x64\x98\x94\x5d\x13\xbc\x05\xa9\x38\x05\x1f\x34\x57\xdb\x8e\xd7\xbb\x9e\x3f\xc6\x26\x0d\xf8\x6f\x1c\xb3\x0d\x6d\xe0\x12\xc8\xf2\xa5\xd5\x52\x2f\xea\x9d\x48\x1d\x51\x49\x6a\x84\x84\x04\x6d\xa3\x17\x17\x2c\xe7\x88\x86\x49\x33\xe5\x83\x18\x0c\xc6\x90\xac\x74\xfc\x07\xfa\xc5\x0b\xed\x34\x23\x33\x5a\x28\x56\xc3\x68\x97\xc0\x5c\x39\xed\xda\xa0\x4b\xc8\xbe\x04\x46\x55\x46\x7e\xab\xda\x90\x40\x11\xc2\x9a\x9a\x6f\x08\x37\x41\x85\xd2\x2b\xfa\x16\x2a\x93\xd1\xe9\x07\x08\xae\x7f\x21\x19\x91\xd6\x1f\xf0\x29\x03\xa6\xe7\xd2\xee\xc0\x1d\x6d\xeb\xd5\xfc\x71\x42\xa8\xf3\x8a\x56\x45\x0a\x7d\x6a\x42\xd5\xa6\x60\x4d\x12\x8a\xea\x92\xf8\xd1\xcd\xe2\x8d\x1a\x38\x25\x96\xe8\xd5\x8f\xf4\x4d\xe0\x70\xf5\x63\x8a\x2b\x0a\x48\x92\x00\x79\x0d\x69\xa3\xd6\x87\x84\xb6\x59\x4f\x65\x13\x11\xa2\xae\x7f\x48\x3c\x7f\x4f\x0c\xee\xcc\x40\x09\x90\x53\xc9\x52\xb6\xf1\xba\x21\xfc\x10\xa1\x5c\x2b\x4a\xdf\xbc\x6e\x47\xfc\x01\x86\x0b\x64\x19\x76\x79\x72\x9c\xdd\x73\x23\xe8\x82\x11\x58\x23\xf2\x4d\x8c\xe5\x99\xcc\x6e\xed\x76\x89\x1e\x2c\x41\x7e\x47\x52\xd5\xab\x9f\x20\x7b\x6e\x59\x17\x45\x14\x7a\x45\x08\xc3\x63\x73\x2a\x51\x52\x0e\x4e\xd1\x56\xf0\x79\x22\x85\xec\x74\x21\x3a\x6a\x52\xea\x53\xaf\x58\x26\x0c\xb4\x07\x55\xa0\xe1\x2c\x09\xcb\xd6\x72\x04\x12\xac\x5e\xac\x55\x96\x15\x98\x79\x9a\x22\xbc\x0e\x73\xb2\xb5\x2d\x1a\xb7\x0e\xac\xb9\xf4\x7c\x34\x21\x1a\x39\x95\x26\xe6\x87\x69\xb8\xc1\xba\x60\x44\x05\xb3\x0c\x1f\x2f\x3f\xb9\x5b\x7f\xfc\xfe\xf2\x93\x1e\xcb\xd7\x40\x3f\xc4\x04\x81\xd0\x13\x79\x20\x5c\x5c\xaf\x89\x3a\x17\x6b\xca\x2b\xb3\x65\x5e\x56\x4c\xeb\xf7\x26\xa5\xbd\xb2\x82\xe4\x75\xb5\xdc\xe4\xd7\xbf\x10\xc2\xa1\x93\xb0\x02\xeb\x55\x98\xbb\x19\x8b\x78\x59\xb9\x2e\xaf\xff\x2c\x22\x1e\xb5\x4f\x48\x2a\x5c\xa8\x99\xd7\xca\x2f\x9a\xd2\xef\xff\x33\x4a\x62\x95\x58\x09\x65\x59\xe5\x74\x15\x50\xa9\xf2\x69\xe7\xf3\xe7\x0a\xdf\x5b\x37\xdd\x1e\x00\x63\x42\xe6\x0f\x0b\x03\x68\x93\x6f\xf3\x1e\x4c\x84\x11\x1b\xdb\xd0\xbe\x39\x2c\xbb\xc6\xd0\x14\x7e\x22\x7a\x09\x58\x74\xb8\x73\x38\x38\xb0\x25\x68\x90\xb5\x88\x9d\x6c\xda\x03\x4f\x1b\xba\x52\x60\xf1\x0f\x09\x4d\x14\x2d\xeb\x3f\x68\x61\x17\x6d\xa1\x8b\x63\x33\xd9\xa2\x2f\x72\xda\x3c\x27\x4c\x0d\xb7\x68\x95\x20\xef\x97\x01\xe8\x4d\x05\x29\xe9\xeb\x1d\x0f\xfd\x77\x67\xe6\x8f\xb4\x59\x36\x42\x7f\xb0\x39\xba\xad\xee\x9f\x50\x44\x3a\xb6\xb4\x40\xc6\xbb\x70\x4b\xc9\x12\xd3\x78\x69\xb3\xbd\xfa\xf1\x84\xa4\xd6\x7c\x5d\xe4\x57\x90\x63\x77\x65\x21\x8b\x85\x13\xd1\xa5\x79\xbd\x9e\x29\xc4\x74\x0a\x5f\x69\x59\xd6\xc1\x38\x49\x5d\x9b\x1b\x03\xc9\xc9\xad\xcc\x57\xd4\x8c\x6c\x1a\xe2\x2b\x6c\x11\x4f\xd5\x93\xd5\x7a\x5d\x5e\x25\x15\xc3\xe2\x40\x74\x29\xc9\x40\x61\x99\x08\x6c\xb1\x1d\x30\x0a\x0c\xa6\x39\x3a\x96\x77\xdc\x35\xc3\xbb\xa3\x61\x1d\x58\x09\x5c\x91\xc8\x04\xed\xbc\xe1\x76\x94\x3b\x76\x67\x55\xda\xf6\x47\xf5\x99\x2f\x62\x7d\x11\x47\x96\x59\x0f\xdd\x6f\x9b\x86\x75\xf1\xeb\x32\xeb\x81\xcf\xf7\x56\x80\xce\x0a\x55\x79\x15\x78\x8e\x45\x48\xc2\xbb\xd9\xb0\x57\x27\x93\x4f\x4c\xee\xe0\xc6\x4c\x93\x72\xec\xa2\xaf\xd6\x94\xe5\xa2\xbe\x84\x52\xe4\x01\x58\x34\x39\xed\x32\x6a\x86\xef\xb6\x17\xde\x81\xbd\xae\x08\x4f\x1a\xac\xb5\xf9\xff\xcc\xa1\x48\xd6\x44\x56\x85\xc2\x03\x56\xdf\xea\x71\x02\xf1\x71\x67\xe9\x54\x74\xdc\x2e\x7d\xea\xf4\xa1\xb8\x30\xae\xff\x60\x2b\x12\xa6\xa5\x8c\xdb\x15\x19\x56\xbc\x9e\x06\xb2\x94\x74\x69\x01\x41\x73\xbc\xcb\x33\x4d\x30\x9a\x70\x62\x5e\xd8\x4d\x4a\x54\x58\xc6\x4c\xc2\x2d\x06\xdd\xd9\x7a\x7e\x9e\xac\xa1\x1d\xc5\xda\x10\x15\x2f\x33\x08\xf5\x5f\x43\x73\xf8\x67\x2e\x0a\x75\x04\x95\x7c\x4e\xd4\xe4\xc9\x31\xee\x1d\xd4\x38\xc8\x8c\xef\x84\x3e\xe7\x09\xde\x0b\xb6\xef\xed\x5b\xa7\x43\x46\xff\x99\x9d\xb8\xf9\xf2\x6b\x76\x76\xf6\xe5\x39\x8b\x19\xd2\xfe\x7a\xd3\xa6\xb4\x18\xac\x48\xfb\xb2\x69\x76\xf5\xf3\x6a\x33\x17\xcd\xd1\xf3\x67\x8f\xd0\x7a\x07\x71\x19\xa9\xd0\x49\x65\xc0\x4b\xfb\x12\x48\x1a\xdc\xc2\xb9\x4d\xb6\xc1\x60\x0f\xb6\xde\x51\x5e\x7b\xfb\xd6\x3d\xe2\x21\x82\x0c\x88\x3b\x55\x77\x10\x8d\x07\xab\x6f\x3f\x0f\x64\x8c\x91\x80\xd3\x8b\x86\x96\xef\xd9\xbe\x1b\x6e\x22\x56\xd5\xcd\xbe\xa3\xa5\xdf\xec\x48\x98\x05\x1b\xe7\x8b\xb2\xc6\x92\xa9\x54\xbd\xa6\x71\xb2\x58\x48\x70\xe8\x77\x3d\x91\x02\xdd\x74\x26\xd9\x5c\x24\x05\x54\x75\x10\xc4\x28\x83\x50\x63\x47\xb8\x8e\x56\x02\xb9\x34\x16\x00\x30\x5b\x57\x40\x80\xb4\x88\x83\x1e\x33\x42\x2c\x7f\xf7\x5e\x4f\xa2\x1e\x65\x0c\xeb\xaa\xdc\xd9\x35\x7a\xaf\xf3\x83\x0d\xfb\x64\xb5\x37\x12\x09\xaf\x23\x9f\xd9\xf5\x41\x19\xe8\x63\x80\x15\x30\xa4\x14\xda\xaa\x2b\x62\x3e\x7e\xb1\x57\x90\x16\xdc\xe9\x43\xd5\xe4\xfb\xdf\x5a\x55\xf0\x6c\xb8\x56\xa1\x9c\x03\xbd\x27\x76\x2c\x51\x03\xd5\x3c\x52\x15\x68\x33\xdf\xa0\x02\xed\x39\x2e\x5d\xac\xb1\x8d\xb5\x06\x9d\x2e\xea\x9c\xd0\xf4\x12\x3c\x54\xf6\x91\xbf\xd5\x25\x72\x9d\x96\x55\x65\xd3\x06\xb7\x74\x5e\x99\xc1\x62\xe0\x2a\x21\xac\xc8\x2b\x34\x0b\x10\x57\x2f\x73\xa9\x2e\x2f\x8f\x09\x58\x50\x97\xd9\x0d\xa9\xde\x5f\x4d\x2f\x96\xd6\x12\x8b\x90\xac\x6d\x31\x25\x8a\xf0\xac\x98\x8d\x45\xfd\x9f\x9a\x44\xaf\x20\x17\xd3\x75\xc3\xc3\x3e\x59\x97\xd8\xb9\x23\x55\x83\xeb\x86\xc9\x9a\x0d\x9d\xd4\x23\x55\xdd\xa9\x9d\xac\x27\x4b\xcb\x75\x68\xce\x59\x84\x7b\xa2\x0a\xca\x3c\xf1\x0d\x3e\xc4\xea\xcd\xc6\xae\xa0\x57\x76\xfd\x0e\x3b\xd3\x8d\x05\x00\x67\xe5\x61\x5f\x6e\xc0\x09\x63\x4f\xe5\xb3\x00\xbc\x7e\xa1\xfa\x95\x3d\x22\xf1\x5d\xaa\x2e\xd6\xef\xa5\x5e\x52\x65\xe5\x18\xe1\xef\x8a\x8d\x0d\x02\x71\x9d\xc7\xf5\x7c\x67\xf7\xa0\x75\x81\x3c\xba\xc3\x34\xc0\x15\x25\x7c\xa9\x33\xb5\x30\x4e\x86\x9f\x6a\x9b\x46\x05\x71\x7e\xba\x71\x69\x10\xd6\x24\xe0\x9b\xd2\xdc\x6e\x7e\x6d\xf3\xbd\x02\xc7\xdd\x5e\xde\x30\x83\xd2\x01\x26\x6c\xd6\x3a\x8b\x0d\x6c\x7f\xfb\x3d\x61\x5e\x62\xfb\xa1\xe5\x88\x34\x59\x00\x25\x65\x81\x5e\xa3\xc2\x26\xa9\x1b\x08\xac\x32\xbd\xf9\xf3\xba\xdd\x0f\x6b\x70\x1f\xe0\xe5\xa9\xd2\x96\x18\x59\xea\xb7\x80\x62\xc2\xd8\x75\xbe\xeb\xa2\x49\xe7\x33\xf3\x18\xf8\x85\xd1\x39\xf4\xd5\x51\x2e\x9f\x31\x37\x5f\xdc\xef\xac\x6d\x17\x30\x3c\x6e\x91\x09\x49\x42\x91\xd0\x88\xa2\x67\x4f\x08\xf5\x22\x5f\x0b\x8b\xd2\x80\xeb\xc6\xa5\x8f\xa7\x6f\x1f\xb1\xb8\xdc\x8a\x1a\xf4\x25\xf3\x08\xbe\x69\xbe\xc7\xee\x69\xcc\xeb\x9a\x82\x52\x99\x4a\x25\x82\xe9\x21\xf1\xa1\x56\x84\xc2\x86\x42\xcb\xf5\x5f\x21\x35\xf4\xfa\x5f\xd1\xfa\x11\x95\x74\xda\x99\xe7\x38\x0e\xb4\x09\x90\xe7\x55\x5e\xb8\x08\x28\x33\xa7\xb1\x11\xcd\x0a\x11\x81\x86\x4e\x17\x96\x41\x8c\x4e\xce\x7b\x01\x43\xaf\x95\x68\x74\x57\x11\x3c\x69\x09\xc2\x3d\x76\xe2\xb4\x9b\x6c\xa6\xd1\x16\xaf\x7e\xa4\x69\x32\xa7\x5e\x41\x98\x38\xd0\xac\x67\xae\x1b\xc8\x12\xb0\x34\x09\x7b\x91\x0e\x60\x49\x41\xd3\x77\xeb\x4c\xeb\xbe\x27\xee\x20\xc4\x44\x7d\x3f\x84\x3b\xcb\x5d\x8b\xe1\x50\x4f\xee\x96\xc6\x75\xad\x88\x6d\x38\xad\xc8\xea\x45\xfb\xe4\xf9\xfd\xca\x99\xfd\xfb\xbf\xba\x0e\xa3\xe9\x85\x70\xe4\x9b\x9f\xf3\xd2\xb4\xc1\x22\x30\xfa\x0f\x7a\xc5\x46\xe7\x4b\x0c\x11\xd7\xd7\xf9\x66\xdd\x86\xbb\x9f\x69\x77\xdf\x3b\x4a\x15\x7a\x67\x9c\xf7\x50\x76\xfc\x18\x0f\x40\x6c\x35\x16\xcb\x2a\x29\xd2\xcb\xe1\x61\x4c\xcc\x2a\x01\x7d\xa3\x9d\x13\x9e\x44\x66\x24\x31\x5e\xa8\x68\xd8\x5a\x63\xa1\x17\x28\xc2\x68\x92\xbc\x09\x69\x40\x2f\x44\xd0\x8a\x5e\x8e\xe0\xb2\xcb\x57\x91\x4b\x92\x41\xcd\x64\xcf\x75\xf6\x81\x66\x0f\x2a\xa3\xab\x92\x98\x8a\x12\x17\xb8\x7a\x29\x7a\xfd\x43\x60\x48\x43\x87\x32\xd6\x20\x31\x37\x9e\x37\xdd\xfc\xb4\x25\xe1\x9b\x38\x9c\x44\x84\xb2\x82\xa5\x02\xe8\x24\x60\x5c\x60\xab\x7a\xfe\x74\x09\xb5\x0a\xdb\xf9\x74\x58\x8d\x04\x68\x8e\x26\x4f\x3b\x31\x2f\xc5\x54\x43\x0a\x43\xf9\x28\x85\x59\x20\x02\x08\xc0\x4a\xcf\x98\x44\x80\x51\xa8\x5e\x42\xbf\x39\x26\x0c\xb0\x7b\x91\xd5\x03\x81\x3a\x68\x03\xc0\xaa\x7d\xfd\x5d\xd2\x10\x82\x2d\x44\x4c\xe4\xa1\x65\xf3\x17\x87\x92\x96\x2f\x65\x64\xdd\x1d\x6b\x32\xa0\x5c\x62\x74\xf0\x8d\xb3\x80\xa2\xa5\x71\x76\x52\xa7\x6a\x21\x35\x52\xc7\x2b\xea\xa9\x49\xd6\x22\xb4\x62\xf5\x2a\x9b\x35\x62\xc4\xbc\x40\x9d\xca\x84\xd2\x12\x00\x59\xc2\xa6\x71\xf1\x3d\x30\x81\x94\xd5\x2d\xf5\xfc\x9e\x6a\x86\x2d\x1f\x9f\x3a\xb0\x50\xa3\x94\x8c\x8e\x46\x83\xbb\x84\x96\x16\x56\x95\x0f\x6d\x4e\x68\xe6\xe1\x03\x0c\x75\xc7\x6b\xb3\x88\x47\x69\x76\xba\x62\x9d\x1f\xbf\xdc\x87\x88\xb1\x57\x32\x22\xfd\xbe\x3c\xed\x70\x77\x3d\xa5\xc7\xa4\x63\x03\x19\x77\x31\x48\xcc\x6f\x7f\xa7\x49\x03\x3a\x40\x99\x77\x10\xb5\xba\x2a\x5a\xb7\x46\x6c\x6a\xd6\xc9\xf5\x2f\x19\xec\x27\x48\x0e\x65\x6e\x66\xdf\x51\x3e\x9d\xbb\x2b\x3d\x78\xcd\xab\x9f\xfe\xfd\x5f\xf5\x22\x07\x0b\x09\xcb\x31\xa6\xb5\x0f\xa1\x20\xa3\x56\xb0\x0f\xf2\x1a\x26\x84\x43\xdb\xc7\x4d\x29\xb0\x9b\x3f\x2a\x37\x44\x5a\xd4\x9c\xae\xdd\xe1\xea\xcb\xc3\xe2\x6b\x51\xaf\xe7\x87\xb6\xb7\x6f\x8b\x8b\x78\xc1\x30\x34\x82\x73\x4a\x2c\x9a\xa8\x72\xf3\x4c\x21\xa4\x29\xc7\x15\xe9\xe9\xf3\x86\x8d\x5f\x8b\x19\x46\x51\x3a\xe3\x91\x36\x92\x05\x07\xc5\x9d\xc2\xe8\x1c\x16\x59\x6a\xa9\xb5\xcf\x71\xbd\x79\x71\x41\x9c\x91\x69\x2e\xe9\x3b\xe9\xcc\x65\xb9\x37\x9b\xbc\x58\x43\xa3\x05\x6b\xce\xa1\xbe\x4a\x14\x77\xb4\x53\x5b\x58\xb3\x15\x5d\xd1\xc2\x7c\x6e\x64\x4d\xe7\x6e\x0c\x23\x54\xe1\xae\xf9\x0a\x10\xe3\xa4\xc8\x92\x2a\x83\x2e\x58\x50\x47\x37\x5d\xc9\x9b\xb4\xb8\xab\xe7\xd2\x0c\x6c\x2c\x08\x47\xb9\x06\xd2\xcb\xb2\xac\x55\xed\xec\x2e\x86\x71\x3d\x70\x80\xc2\xa8\x33\xee\x46\x58\x57\xc4\x21\xb0\x60\xcd\x82\x6b\x09\x69\x94\x97\x58\xee\x7c\xdd\x80\xf8\xac\x2f\xf2\x2d\x0c\x5b\xa1\xd4\x4e\x32\xb1\x3c\xc5\x89\xea\x59\x48\xdc\x29\x1d\x58\xf9\x53\x94\x83\x19\xf5\xf7\x54\x2f\xc4\x2e\xd8\x23\x5c\x20\x05\xb1\xea\x50\x46\x05\x2c\x05\xd0\x70\x09\xba\xa5\x13\x9e\x0d\x26\xe0\x77\xd4\xf3\xe1\xe0\x21\x2f\x7a\xa5\xf1\xb1\xad\x25\xd4\x44\x77\x4b\xaf\xec\x95\xb3\xe6\x04\xff\x72\x13\xb0\x8e\xf7\xe4\x0a\xa9\x57\x0b\x00\xde\x3e\x97\xcd\x58\x2f\xbd\x25\x2d\xd4\x09\x8b\xa8\x80\xa8\x18\xcc\x13\xbb\x37\xa7\x5e\x6f\x32\xc1\xab\x7f\x86\x8b\x30\x36\xe3\xbc\x99\x3d\x1f\x0c\xdd\x83\x43\x85\x32\x05\x40\x09\x63\x50\x3e\x2f\x36\x00\x85\x9a\x86\xe0\xae\x16\x5a\x69\x7f\x69\xcc\xf6\x7c\x7c\xcd\x85\xc2\x65\x0a\x0b\x2d\x36\x78\x52\xc5\x14\xc3\x8c\xc5\x9b\x5a\xa4\x9a\xce\xab\x54\xd4\xc0\x56\x33\x03\x1b\x5b\x46\x81\x50\xe0\xb9\x92\x22\x1e\x05\x48\x92\x84\x77\x2c\x21\x6f\xd5\x10\x5f\x4e\xa2\xc7\x08\x27\x7a\xb3\x0d\xb5\x3c\xbf\xfe\x33\x04\xd5\x8a\x36\x69\xd5\x81\x23\xd0\x66\x7d\x9a\x6a\xbb\x78\xc7\xb0\xc9\x74\xd0\xb7\xc3\xff\xbe\x4c\x0b\x0d\x94\x1b\x2c\xe5\x00\x09\xaa\xf2\xe5\x81\x7e\x0f\xf3\x65\x56\x9c\x6b\xc5\x08\x34\x56\xa6\x09\xea\xa9\xec\xb6\x7c\x69\x15\xd1\x64\x34\x05\x36\xb9\x61\x1b\x3f\x18\xf9\xc4\x78\xc7\x3c\x60\x44\x44\x48\xaa\x68\x80\x05\x1c\x16\xfa\x74\xd4\xb7\xdb\x00\x3a\x46\x5a\x31\x03\x19\xd4\xc8\xb4\x32\xa7\x89\x63\xfb\xd5\xb7\x70\x6f\x9d\xf1\x06\x95\xe9\x3e\x20\xf6\xe9\x4a\xd0\x85\x5b\x27\x14\x08\x33\x47\xe9\x8b\xe8\x2a\x03\x4a\xfa\xff\xe0\xf5\xc5\xdb\x77\xeb\xb7\x7f\xfb\xcd\xc5\xdd\x4c\xaf\x2b\x4e\x8e\x5d\x56\xf4\xaa\x5e\x67\xc6\xe0\x66\x12\x53\xa7\x00\x0c\x9e\x44\x65\x22\xec\x05\x67\x08\x67\x41\x77\xbd\x67\x4c\x82\x7d\x2f\xa2\x0f\xed\x7b\xe6\x52\xd0\x15\xa4\x26\x01\x25\xe7\x09\x3f\x23\xe7\x40\xa5\x90\x4d\x0e\x5b\x3b\xce\xed\x50\x8f\x77\x7b\x40\xf5\x49\xa0\xc8\xbd\x7e\xdd\x28\xa3\xc2\xbc\xd0\x89\xda\xec\x31\xb6\xa8\xca\x03\x31\x97\x45\x82\xcb\x03\xb5\xff\x53\x72\xf2\x31\x33\x01\xab\x4f\xa2\x1b\x2b\x3e\xea\xdd\xa7\x1f\xbf\xaf\x99\xe6\xcc\x89\x5f\x05\x2e\x3d\xc0\x42\xec\x61\x5c\xb6\x86\xad\x74\x6f\x1b\x6d\xd8\x60\x54\x35\xf2\xfd\x98\xd9\x50\x1a\x82\x11\x8d\x82\x07\xdf\x89\x42\x3e\xaa\x4b\xa8\x50\xf4\x7b\x3b\xb1\x4d\x67\x94\xed\x6a\xcf\xfa\xcd\x39\x00\x59\x6f\xbc\x48\x19\x81\x86\x45\xd8\x66\x43\x89\x7c\x3e\x68\x27\xf6\xdb\x1f\x05\x66\x7d\x25\x66\x0a\x86\x95\x60\x5a\x0b\x41\x53\x6d\x7a\x51\x37\xd9\xc0\x3a\x9c\xb6\x01\xa4\x0b\x6e\xc1\xd5\x8e\xb4\xc0\x92\xac\x9d\xce\xcf\x2b\x2b\x0c\xbb\x2e\xb7\xdf\x57\xc0\xfa\x58\x4f\x74\x86\x5d\xde\x0f\x8f\x4a\x8e\xcf\xa6\x62\x22\xcc\x5e\xf1\x90\x1b\xbe\xc7\x44\x94\x5e\xc0\x29\x84\x20\x1b\xea\xa3\x87\xe5\x64\x7f\x05\x85\x9b\x58\x2c\xf7\x48\xb6\x5e\xb7\x8d\x0a\xef\xad\x2f\xbd\x1d\x72\xa3\x7e\x2f\x2a\xc1\xc6\xba\xd1\xc1\xf5\xe2\x3e\xdb\x55\x99\xfb\xb4\x13\xd2\xcb\xd4\xdd\x86\x12\xb3\xc4\x0d\x7f\x3a\x31\x3c\x07\x20\x07\x9c\x37\xc1\x5a\x2c\x57\xd1\x69\x2c\x55\xc1\xc2\xab\xf9\x54\x54\x28\xa5\xb0\x83\xa5\x18\x5c\x3b\xb1\xea\xb3\x2a\x59\xf7\x12\x15\x9c\x27\x78\x71\x1a\x70\x13\x72\x00\x81\xab\xd1\x3f\xfd\x41\x73\xb8\xb1\x44\xdb\xe6\xff\x27\x71\xb6\x83\xcd\x4e\xb9\xa6\xcd\x36\xac\xc1\xa9\x47\xeb\xf4\xe8\x41\x44\x94\x00\x39\xf4\xb0\x24\x04\xc1\x50\xa3\xbf\x43\xe1\xa5\x83\x4f\x8a\x5e\xf8\x4f\xa0\x89\x68\x3d\xd0\xc6\xb8\x81\xf4\xd2\x61\x09\x5f\x38\x4f\x14\x55\x38\xf3\x9c\x01\xb2\x68\x8b\x65\x5e\x64\xf3\x61\x2d\xeb\x72\xfc\x8a\x7d\xc5\x6a\x8d\x91\xc0\xd5\x33\x1e\x65\xb6\xc3\xed\x7b\x84\x28\x13\xae\xbb\x60\xb8\x45\x8e\x38\x75\xb9\xa4\x49\x01\x1a\x9c\x07\x70\xe8\x16\x6b\x9d\x65\xba\x1a\x56\x48\xdd\x17\x1d\x27\xb6\x8a\xac\x39\x51\x57\xa9\x76\xc0\xc2\x6f\xa6\x9d\x97\x09\x91\x5b\xd7\x48\x46\x84\x39\x69\x60\x01\x8f\x7b\x00\x5e\x38\x9a\x87\x0c\x8c\xc5\x01\x56\x6c\xdd\x3b\x7d\x08\x3b\x6c\xdf\xa1\xb4\xf9\x47\xda\x46\x44\xaa\x88\x65\xca\x81\x71\x21\x76\x69\xdf\xb0\x0c\x82\x46\x91\x96\xc5\x12\x40\x8a\xd0\xf2\xfb\x3c\x3a\x1d\x6e\x2f\x05\xa8\x44\xa6\x1c\xcc\x73\x38\x47\x9d\x5e\x9c\x2f\x2b\x61\x6b\x10\x5d\x37\x0a\x07\x33\x4f\xb6\xf6\x9d\xc7\xd2\x21\xf1\x7a\xcb\x8c\xb5\xac\xc2\x0a\xd2\x38\x49\x0e\xdc\xd1\x52\xca\x8d\xf5\xcc\xc0\x06\x4a\xb1\x04\x1d\x68\x35\xa5\x5c\x95\x6a\x27\xd8\x05\x0a\x9a\x1e\x73\xc9\x04\x14\x77\x85\x8b\x1e\x21\x30\x21\x0c\xba\xf6\x80\x90\x00\x22\x58\xf9\xc9\xaa\xd3\x38\x4d\xeb\x06\xad\xb9\x25\xa0\x3d\x4a\xf4\xab\x55\xf5\x96\xd6\x79\x33\xc4\xe6\x2d\xc9\x6e\x42\x6a\xe1\x9c\xfd\xf1\x78\xaa\x3b\xfa\xd8\xc2\xe8\x50\x9a\x78\x55\x9e\xb0\x98\xc2\x06\x27\x57\x06\x82\x0c\xd4\x61\xbf\x44\x92\x8b\xb0\x43\x18\x77\x3f\x38\x9c\x30\x1d\x85\xbb\xfe\x8d\xb4\x18\x9a\xe7\x64\xe1\xc4\x69\x0a\x68\xeb\x55\x7b\xe8\x65\x5b\x2c\x86\x94\x3e\x21\xae\xda\xb1\x09\x30\x00\x7c\xfc\xf4\xfa\xdf\x3e\xef\x79\x03\x1e\x3f\x5f\x6d\x5d\xf0\xf8\x93\xb7\x7a\x33\xc9\xc1\x10\x02\x63\xc9\x1e\xf0\xc3\x81\x7a\x03\xce\x9e\x9c\x89\x3f\xdd\xa0\x98\x43\x80\xa2\x4d\xf5\xa2\x81\x42\x91\x6d\xfa\x0f\x09\x1c\xc4\x4e\x8e\xac\xd2\xed\x5b\xdf\x40\x01\xf7\x2d\x49\x75\xac\x8c\x7f\x11\x68\x44\x83\x1b\xa6\xc9\x3b\xe4\xfe\xfe\x49\xf9\xa8\x07\x24\xe7\x5a\x55\x75\x45\x37\x11\x30\x76\x5c\xd3\xc2\xc1\xb2\xfb\xc4\xec\x77\x49\x96\x88\x4f\xde\xde\x88\x35\x12\xab\x36\x1d\x7c\x5b\xe8\x2c\x48\xa4\xf4\xe0\x9d\xc1\x5e\xad\xce\x97\xf9\x06\x64\xeb\x45\x9e\x95\x82\x5a\xc1\x53\x70\x06\xd2\x03\x97\x86\xf1\x2d\xc8\xc7\xf5\x8e\x30\x5b\x4a\x84\xa8\x9e\xdf\x69\x61\x36\x41\xf8\xcd\x7e\xdf\xdc\xf9\x64\x07\x37\xda\x86\x3b\xa3\x22\x9f\x84\x0d\xc2\xa3\xd2\xb5\xfa\xce\x7d\xd1\x92\x94\x17\x22\xc1\xbc\x4c\x36\x6d\xac\x33\x81\x75\x38\x6a\xd4\xef\xb2\x4e\x70\x2d\xba\xe7\x33\xfc\x64\xc9\x5a\x53\xd9\x7d\x41\xdd\x34\x0f\x9a\x36\x9a\x03\xf2\xc3\x5b\x04\xb1\xdf\x57\x96\x1f\x1a\x79\x0f\x02\x50\x6d\x5e\x07\xde\x09\x4f\x77\x79\xad\xdf\x70\xb7\xf5\xae\xb6\x3e\xc5\x2b\x50\x54\x13\x22\x56\xf6\xb3\x55\xde\xe4\xab\xa2\xac\x68\x90\xc4\xfc\x11\x81\xb0\xf3\x47\xf8\xcb\x5a\x2d\x4d\x99\xaa\x6a\x36\x52\x8a\x07\x91\x64\xb4\x4f\x9e\xf1\x1f\xf7\xe9\xea\x9c\xd1\xae\x05\x88\x8c\x24\x1b\xe7\x1d\xcc\x17\x17\x25\x89\xf9\x79\x33\x7f\x48\xff\xe5\x38\xcd\x2a\x23\xf6\x0e\x96\xca\x88\x72\x1b\xb4\x6e\x50\x9c\xd5\x6c\xa0\xdf\x37\xa3\x26\x86\x0c\xf2\xe7\xb0\x62\xa1\x01\xc6\x9b\x55\xed\xf2\x55\x45\x0e\x1f\x22\x46\x2f\xbd\x6e\xdc\xf9\xe2\xd2\x68\x08\xe7\xd3\xfa\xce\x9f\x66\xd7\x3f\xef\x81\x69\x18\x21\x4b\x2e\x30\xe0\x3b\x22\x50\x75\xef\xde\xa8\x3e\x8e\x36\xe1\xdf\x47\x7d\x7c\xa4\xc9\x91\xfa\xb8\xb0\x50\x50\xb5\x0d\xdc\x56\xb7\xc9\x6a\x60\x35\xa1\x3e\xc4\xbd\x6f\xa4\xfa\x11\x0f\xb2\x7a\x0f\xc3\xe1\x62\xd0\x46\x27\x1e\x21\x89\x0f\x15\x4e\x93\x59\xd2\xa1\xb8\xf3\x89\x40\xca\x1f\x28\xd7\x28\x2f\xce\xa9\xbb\xcc\x18\x2c\x8f\x16\x9a\xa5\xb8\xbd\x5d\xa8\x62\x60\x7e\x06\x4f\xa4\x56\xb5\x25\x47\x0a\x05\x8c\xa7\x72\x2f\xa1\xd7\xd2\xfb\x5f\x3c\x3c\x67\x1f\xa8\xb2\x32\x50\xda\x6e\x8c\x38\xbf\xb0\x87\xe3\xac\x6f\xd2\x5d\x11\x72\x99\xa1\xf5\xb5\x37\x78\x72\x77\xa9\x4c\x91\xdc\x3d\x0a\x8b\x75\x5e\x1d\xa5\x0e\x6d\x39\x6b\xfb\xe4\x7c\xd3\x62\xf0\xa9\xaf\x9d\x5f\x55\xe7\x4f\x3e\xbb\x2f\xc1\x33\x22\xf4\x73\x44\x4e\x08\x71\x30\x6b\x4e\xf0\x02\x96\xce\x98\xb8\xec\xba\x05\x54\xb3\xc4\x71\xee\x72\xd6\xba\xba\x94\xde\x52\x9a\x72\xe2\xc2\x6a\xf6\x70\xca\x5a\x97\xff\xf3\xbf\xfe\xf7\x7b\xf7\x01\x97\xfb\x4d\xb5\xa1\x5f\xac\x46\xd9\x41\x71\x4a\xa7\x7a\x0d\x6b\x45\x7c\x6a\xfb\x20\xfb\x75\x7a\x59\xee\x59\x9b\xcc\x0d\xd3\xea\x08\x47\x04\x91\x43\x96\xc4\x39\xc3\x8e\xe5\x68\x28\xe7\x9d\x57\x99\xdd\x7e\x6a\x9e\x66\x74\xb2\x40\x03\x6f\x74\x34\xe6\xb0\x06\x10\x7e\xdf\x02\xa3\xbd\x67\xf3\x0a\xec\x20\x30\x0b\x7f\x86\x19\xbf\x1c\x24\xd0\x01\xc9\x74\x17\x41\x28\x8e\x6b\x20\x25\xf8\xab\x7d\x9e\x1c\xb2\x35\x07\x43\x40\x2a\xdf\x0c\xc9\x12\x30\xae\xe5\x43\xa3\x38\x94\xa5\x22\x9a\x58\x4d\x8c\xd6\x9f\x5a\x40\x62\x05\x77\x67\x9a\x2d\x1d\xfe\x14\x37\xf9\xbd\x01\x9e\x9b\x37\x10\x96\xec\xef\xaf\x64\xc3\xc6\x9b\x3b\x30\x80\x66\x4c\x9c\x96\x5b\xe2\xfc\x33\x8f\xa9\x8a\xa1\xb3\x3f\x41\x0b\x3c\x42\xcd\x1a\x47\x38\x3a\x80\x61\xdc\xb5\xb0\x4d\x82\xe0\x2d\x5d\xbd\x00\x02\x23\x86\x48\xf7\x21\xd3\xd3\xd7\x36\xc2\xfd\xd3\x60\xd9\xc1\x75\x74\xb6\xa1\x9a\x43\x86\xf7\x05\x87\x6d\x9a\x21\x86\x96\x30\x3d\xcd\xa0\x7a\x0b\x80\xba\x7d\x4b\x71\xe8\x17\x1e\x73\x36\x95\xb5\xf3\x07\xac\x11\x71\xb9\xec\xd1\xdb\x24\xab\x5a\x8a\xfd\x04\xbe\x84\xc4\x98\x64\x95\xbb\x12\x36\xc8\xc2\x0d\x26\xfc\xfd\x39\x7b\xe4\xa0\x0f\x9f\xfe\x1a\x21\x30\x36\xe6\x99\x7a\xf6\x43\xc8\x5d\x5a\x4a\xfd\xbc\xe9\x88\xa9\x68\x3a\x1c\xe5\x0d\xdc\x43\x0a\xaa\xfa\xd8\xff\xc4\x66\xdd\x6e\xf3\x06\xa7\x01\x7f\xd9\xb7\x8e\xe7\x56\x13\x00\x33\x31\x3e\xe3\xab\x18\x3a\xd9\xf3\xfb\xe0\x7e\x3b\x4d\x20\xd8\xb0\x7b\xff\x97\xfc\xd7\x97\x63\xcb\x79\x14\xfe\x9a\x39\x7d\x93\x86\x75\x68\xf7\x6f\x13\x3e\x96\x9f\x59\x12\x20\xaf\x7f\x26\x46\xa3\xc8\x49\xe8\x03\xad\x66\xf7\x72\x3f\xa0\xd9\x68\x60\x2e\x43\x43\x0e\xf0\x46\x3f\xb4\x6b\x12\x04\xd3\x61\x91\x0b\x48\xa3\x67\x9c\xd9\x27\x02\xe3\xd3\xe9\xbe\x07\x64\xdf\xa7\x6e\xe9\xac\xe3\x76\xe2\x45\xaf\x7f\xec\x33\x71\x73\x30\x7f\x90\x34\x49\x9f\x24\xee\x0d\x67\xf0\x72\x3b\xd8\x3e\x99\x36\x2f\x9c\x24\xca\x7d\x2d\x01\x4b\xd4\x57\x00\xd1\x3b\x58\xc9\x7f\x08\xc3\x1b\xf4\x99\xb3\xd1\x32\x05\x79\x05\x98\x12\xca\x96\x33\x67\xa7\x8a\xa4\xb4\x56\xd5\x42\x1b\x79\xd1\xe1\xce\x98\x15\xa8\x53\x65\xfd\x06\x98\x7f\x95\x88\x26\x9c\x52\x58\x87\x1d\xf7\xd9\x97\x7b\x52\x1a\xbf\x55\x26\xba\xed\x0b\xde\xc7\xb7\xd9\x4e\x96\x25\xa9\xa1\x08\x8a\x3e\xa5\x4f\x13\x6e\xc0\xa8\xd9\xb2\x86\x15\x75\xd0\x2e\x12\x8e\x15\x27\xc2\x8a\xc0\x26\x76\x7e\x4f\x7f\x4c\x8c\xd1\x97\x91\x21\x26\x53\x25\xa1\xf4\x71\xc5\x68\xca\xa3\x32\x82\x9f\x34\x0a\x8b\x79\x88\xc4\xb0\xbe\x2e\x12\xb4\x75\x8f\xf0\x6b\x9c\xb7\x20\x36\x2c\xb5\xea\x19\xc3\x65\x58\x65\xc8\x81\x32\xa2\x3e\xb4\x29\xed\x29\x6e\x8d\xe1\xd8\x24\xcb\xf9\xdd\xcc\x00\x88\x7d\x55\x00\xc9\xe5\x08\xc4\x7c\x1e\x9d\x3a\x18\xd8\x4a\xb3\xba\xc9\x92\xc9\x5c\xe2\xab\x16\xc2\x43\x02\x06\x9e\x9b\xdc\x44\x63\xd0\x0a\xaf\xdd\x49\xc3\x72\x47\x1a\x1f\x6f\x18\xad\xe8\x97\x83\x0e\x79\xc7\x6e\xf8\xa3\xb6\xa9\xc8\x2a\xa7\x22\x47\x9a\x1e\x6d\x09\xad\xe6\xb8\xba\xa9\xf4\x19\xfc\xa8\x14\xbb\xde\x23\x64\x2a\x3f\xa7\x4b\xd6\x1a\x53\x87\xd8\x00\xe2\x3f\xdc\x0e\xcc\xf4\x06\x78\xb2\x8e\x2c\x71\xb6\x58\x76\x5c\x45\x16\x99\xbd\x63\x8f\xd5\xd8\xda\x02\xaa\x0b\xb8\x4b\xa2\xc6\x63\xff\x39\x55\xa3\x86\x55\xf8\x19\xfd\x37\x95\x31\x03\x7d\xaa\x61\xd3\x77\x55\x00\x47\x8d\xc0\xc9\x85\xb0\x41\xa9\xd0\x53\xfe\x33\x59\xa2\x82\x57\x61\x23\x57\xaa\x24\xcc\xe0\x63\xd3\x19\xf9\x1e\xed\x3a\xe9\x98\x88\x89\xab\xf0\x08\xbf\x4d\xf5\x26\xd5\xb6\x65\xdd\x00\xb7\x42\x41\xfe\x98\x7e\x1b\xfd\xb8\xa9\x17\x57\x5e\xba\x19\x57\xc0\x09\x62\xf8\xcf\xe5\x97\xb9\xfb\xcd\x07\xdf\xd6\x58\x80\xfe\x9a\xe1\x9b\xdf\x7f\x4b\x8c\xd5\xdd\x6f\x3e\xfc\x96\x83\xb7\x8c\xeb\x2e\x2e\x92\xb5\x1d\x35\xc0\xf5\x7c\xe1\x5d\x65\x5f\xe6\x65\x0b\x1a\x2d\x3f\x02\x94\xf0\x3d\x16\x41\xef\xad\x07\x67\x9b\x75\x1a\x65\xb3\x4f\xaa\x00\x73\x2b\x4e\x94\xcc\x43\xb2\x5d\x8b\x02\xa8\x6f\xb1\xdd\x2e\x74\xaa\x35\x10\xc0\x1a\xd1\x1f\x88\x3a\x05\x4b\xec\x21\xb1\x48\x9a\xf9\x77\xfe\x0b\xb3\xce\x33\xcc\x99\x26\xe1\xd8\xca\xdf\xc9\xd7\x27\x3c\x21\x40\xe0\xbb\xbe\xa7\xb2\xbf\xb2\xb8\xb4\x15\x38\x7c\x62\xcd\xfc\xdd\x49\x67\x9b\xd9\x00\x27\x49\x64\x1f\x46\x49\x83\x1c\x1d\x44\x58\x42\x7c\xca\x25\xdd\x97\xae\x2c\x83\x46\x8a\x3d\xe3\x8f\x61\x5e\xdc\x94\x94\x99\x6c\x4b\x51\xac\xdb\x25\x5f\x31\xa0\xc0\x0b\xc7\x90\x66\x18\x09\xdd\xf9\x95\x00\x92\x01\x69\x13\xee\xe3\xd7\x36\x22\x0c\x05\xb1\xb0\x17\xda\xcc\x05\x81\xba\x48\x59\x03\x4d\x00\xe7\x52\x72\xe3\x9b\x28\xdf\xf3\x6b\x7b\x20\x76\x16\x11\xcc\x94\x0f\xd2\x44\xf6\x0c\x90\x80\x2f\xfd\xae\x9c\x50\x79\x69\x96\x73\x64\x23\x11\x81\x84\x34\x6b\x47\xf1\xd0\x60\x0d\x90\x25\xd5\xb6\x8c\xab\xe4\xc5\xc2\x79\x1c\xb0\x34\x21\x1e\xeb\x6a\xa0\x22\xc1\x15\xc4\x19\xd5\x34\xf6\x0a\xb7\x0c\x5b\x78\xcf\x98\x91\x97\x62\x7c\xa7\x18\x39\x3d\xd2\x69\x94\x33\xc0\x92\x4f\x74\x88\x6d\x96\x37\xf3\xcf\xb3\x2e\x5a\xf5\xd8\x1a\xc7\x0d\x36\x79\xc9\xbe\x80\x79\x7d\xf0\x69\x42\x26\x9b\xc0\xa7\x63\xc4\x66\x49\x91\xb4\xdc\x10\x9f\xf9\x15\xfe\x3f\x5e\x04\xba\x4e\x3a\xae\x47\xf2\xfb\x5d\xcf\x87\x5a\x91\x02\xae\x73\x95\x8f\x84\xb0\x12\xd5\x98\x9a\x9b\xe4\x84\x16\x6a\x83\x2c\xf5\x9c\x79\x5c\x66\xb0\xc2\x65\xdd\xee\x91\x01\x4d\x5d\x21\xbe\xa6\xe8\xd8\xae\x81\xf3\x23\x73\x06\x62\x9d\x23\x53\x06\xc4\x25\xe2\x5c\xb5\x72\x90\x76\x6f\x30\x67\x98\xee\xd9\x89\xf8\xc2\x6b\xbd\xee\x7a\x50\x25\x28\x1c\xbd\x1d\x6d\xe3\x85\x18\xc9\xb0\xe4\x81\x6f\x23\xba\xcd\xfa\x48\x31\x99\xa6\x2b\x0b\xd3\x5c\x27\xbf\x31\x16\xda\x12\xb9\xa0\xa3\x8a\xaa\x46\xe3\xae\x71\xd0\x07\xad\x3d\x1b\xb6\x8a\x20\x51\x73\xfc\x37\xea\x4e\xfe\xce\xf5\xaf\xcb\x56\x2a\xa8\x32\xe7\x1f\xf8\x4b\x47\xe0\x8a\x10\xe2\xae\x6c\xdd\x6e\x88\x40\xf0\x55\x41\x91\x6c\xec\x81\x8d\xe1\xf6\x9d\xd8\xd3\xce\xfa\xa2\x1c\x8e\x4c\xb4\x1b\xd2\x5f\x80\xeb\x25\x54\x19\x2f\x80\xcc\x76\x69\xd3\xa4\xad\x21\x02\x2b\xfe\xbe\x44\x70\xb4\x7e\xfe\x54\xc4\xbe\xb4\x85\x6f\x1e\x36\xce\x61\x04\xba\xf9\x77\xbe\x75\xa7\xc1\x19\x80\x6a\x69\x9b\x3d\x96\xae\xa1\xf6\x04\xba\xa2\x0e\xa9\x3f\x0a\x89\x36\xa1\xba\xf7\xb9\x87\xf7\x41\xb9\x33\x45\x7b\xbf\xe3\x0f\x45\x7e\x0a\x4c\x61\xe5\x9d\x66\x21\x94\x99\x5d\x11\x3e\xe0\xb2\xa8\xd8\x6f\xb8\xaf\x35\x5b\x4b\x7d\x32\xb5\xcf\x14\xe9\xd6\x82\x83\x3f\x86\x87\xa0\x43\xb2\xfc\x9b\xb6\x30\x55\x70\xe9\x1f\xfa\x74\xd7\x3c\x37\xa5\xf4\x5c\x7a\x91\x94\xff\x58\xeb\x54\xfb\xff\xf9\xd6\xef\x50\x92\x05\x40\xaa\x11\x81\x52\xcc\x30\xef\x07\x1f\x71\xa1\x50\xc6\x8e\xea\xb3\x1a\x19\xfb\xc9\x3a\x13\xc8\xcc\x65\x2b\xe1\xa5\x3d\xc2\x43\x77\x4e\x83\x92\xac\x61\xec\xc2\x35\x44\x18\x21\x5b\xe1\x90\x2b\x20\xf9\x22\x49\x63\x9c\x84\x50\x21\x0e\xb7\x0a\xfa\xc1\x6e\xd1\x8c\xf3\x51\xa3\xfe\x50\x2b\xf8\x06\x67\x5a\x5a\x40\xd4\x35\x3a\x1a\x7c\xaf\x08\x31\xde\xdf\x4f\x4c\x37\x25\x25\x4d\xd6\xb2\x25\xa7\xc3\x26\xa8\xc4\x3a\xc7\x00\x51\xf5\xc7\x36\x29\x16\xac\xa4\xe7\x61\xc8\x82\xaa\xae\xd2\x4f\x1a\xf9\xef\x0d\x66\x6e\xca\x09\x48\x85\xad\xb2\x9a\x7b\xba\xe1\xb7\x9b\x9b\x9b\x76\xa7\xb2\xe1\xb3\x85\x43\x88\xbb\xb6\x4d\x9e\x36\xb5\x3f\x4f\x4e\x6f\x71\xbc\x47\xa7\xac\x94\xc5\x6d\x45\xdb\x05\xbd\x1c\x4c\x5e\x01\xa0\x72\xc3\x9e\x16\xe5\x86\xf1\x78\xbc\x94\xf1\x29\xe7\x65\x1d\x1c\xb6\x50\x21\xe5\xd4\x24\x44\xb9\x07\xf2\x64\x50\x66\x2c\xff\x06\x99\x93\x32\xf0\x30\x3f\x73\xfa\x84\xbb\x75\xdc\x7b\xb9\xa0\x25\x5f\xb0\x88\xc2\xb1\x3b\x10\x51\x03\xe8\x91\x50\x29\x5c\xbd\x47\xc3\x98\x3f\x15\xfc\x31\xee\x82\x78\x06\x70\xe8\x57\xc3\xd9\x11\x45\x5a\x02\x37\x12\x40\x55\xb8\xef\xf3\x01\x45\x75\xc0\x50\x87\x5b\x25\x6a\x71\xf3\x91\x12\x22\x50\xcb\x04\x65\x84\x37\x61\xaf\xd3\x28\x5d\x09\x71\x9d\x56\xf9\x4e\x50\x40\x98\xe9\xa6\xfe\x80\xb6\xfd\x03\x34\xfe\x8e\x0b\x56\xf6\xee\x60\x82\x96\x8d\x84\x55\xc9\x14\xe5\xf9\xe0\x2e\xda\xd8\x42\x4e\x0a\xb7\xc9\xf1\x8e\xe4\x1b\x88\x5e\x8b\x9e\x78\xaf\xca\xb7\x3b\x6a\xf7\xbd\xed\xf6\xbd\x2c\x7b\x7b\x6a\xce\x9e\x9a\xfb\x49\x0f\xac\xa1\x54\xb0\x1e\xa2\x80\xa0\x21\x65\x8e\x88\x57\x9e\x06\x1c\xf2\x83\x25\x7a\x0e\x92\x66\x71\xdd\x64\xb2\x1e\x6a\x4c\xb6\x83\x65\xab\x81\xd6\xca\xdd\xc6\x9a\x7d\x89\x33\xb9\x94\x73\xa6\xa6\x63\xe1\x34\x84\xc5\xbc\xcf\x7f\xa2\x9c\x9e\xff\x82\x23\xf5\x8d\x63\xd3\x3b\x0b\xe1\x1a\x80\x92\xb6\x47\xa0\x01\xd6\xf5\x26\x58\x78\x4e\xae\x07\x67\x6f\x99\x3a\x51\x6e\xcc\xc6\xf5\x3d\xff\x5d\x59\xb9\xa9\xbe\xbd\xdd\x50\x84\x17\x6e\xb6\x87\x60\x8f\xa3\xa9\xb8\xba\x2e\x71\x26\xfb\xbb\x9e\x3f\xdd\xb1\x0b\x87\x4f\x0f\x42\xca\x20\x16\x19\x82\xc9\x5c\xff\xb0\xab\x92\x34\xac\x7c\x59\x96\xeb\x7a\xfe\xc2\x2e\xf9\x47\x90\xb1\x42\xa8\x4d\xe4\x9d\xad\xab\x6e\x47\x63\xfa\x02\x11\xa9\x7d\x36\xf1\x48\x79\x3a\x19\x0b\xd8\x9b\x13\x87\x63\xc9\xb0\xd0\xd5\x02\x71\x4b\xe0\x56\x61\x2f\xd8\x83\x73\x69\x0f\xbb\xdc\xa6\xe0\xff\x6b\x92\x09\x82\xf2\xec\x7f\xf1\x54\xa3\x32\x25\xc6\x79\x62\xf8\x7c\x35\x83\xf7\xfd\xdf\x9b\x32\xe4\x0f\x61\x21\x96\xe2\xb8\xfd\x08\x5d\x22\xbe\x46\xc8\xc9\x64\xea\xc2\x35\x0c\x94\x08\x15\x3f\x6c\xb1\x30\xe4\x55\x39\x0b\x9a\x6d\x88\x37\xac\x2f\x38\x22\x2c\x2b\xc3\x6b\x71\xff\x92\xa0\xdf\x7a\x61\x3f\x2a\x2c\x5b\xb0\xbf\x1b\x6d\x06\x36\x0c\xd4\x51\x5e\x14\x1c\xe5\x77\xe8\xad\x1a\xba\xeb\xae\x24\xac\x1b\x64\xc9\x96\x6f\x2a\xd5\xfe\x7f\x18\x0f\xc6\xf7\xcf\x91\xa1\xd9\xc7\x14\xac\x48\x2d\xb7\xd8\x12\x7d\x3a\x76\xa3\x14\xd9\xd4\xf9\xe9\x45\x63\x13\x49\x16\x75\xaf\x18\x6a\x6c\x03\xdc\xaf\x72\xe8\x3d\x34\x98\xd6\xa8\x98\x82\xa1\xec\x0d\x63\xda\xb8\x2f\xbe\x87\x27\x26\x27\xdb\x57\x65\xd3\xce\x26\xcd\xb5\x08\x48\x62\xea\x32\xb5\x2a\x1c\x1f\x91\x32\x17\x1f\xcc\xdf\x33\xe0\x36\xf8\x80\x8b\x76\x46\x6c\xdd\xf2\x0b\x43\x50\xe1\x7b\xd6\x8a\xd9\x76\x82\x7c\x96\xbf\xcc\x33\xda\x4c\x1c\xc8\xee\xc6\x66\x7f\x1f\x36\x4b\x47\x9f\x2f\x9b\x8f\x36\x5d\x98\x30\x30\x38\xcb\x17\xb9\x8f\xd4\x0c\xf4\xc3\xdc\x9c\x95\x1a\xf5\x64\xc7\x40\x47\x2a\xb2\x2b\x23\xc3\x5e\xbe\xc6\xbb\xbb\x45\x28\x4b\xf0\x11\xac\x92\x84\x0e\x7b\x96\xea\xa3\xf1\x5a\x84\x90\x62\xee\xb4\xe7\xbf\x9c\xa1\xce\xfd\x7b\x4f\x9e\x3c\x3d\xef\xad\xa0\x60\x39\x58\x64\x65\x31\xb1\x03\x22\x08\x0d\x9a\x63\x60\xf1\xcd\x59\x21\x7a\xd3\xcc\xe1\x62\x96\xae\x2a\x8d\x20\xed\x58\xdb\xfe\xbe\xf2\x84\x26\x97\x6e\xda\x8c\x03\x5a\xe7\x0d\xc7\x20\x3e\x51\x44\x7c\xe2\xd4\x63\x22\xa5\xca\x12\x08\x61\xe9\xb1\x60\x19\x43\x75\x30\x54\xbe\xa1\xc7\xf4\x1f\x8e\x7a\x36\xcc\xd8\xc2\x52\xfa\xa4\x37\xfc\xf1\xa6\x11\xe0\x4f\xb7\x16\x1b\xc7\x12\x33\x95\x41\x79\x98\x5c\x08\xb1\x15\xb4\xff\xba\x4e\x7f\x7f\xbc\xd3\x8a\x03\x94\x4c\xf5\x2a\x64\x8a\xa6\x2a\xfe\x5b\x6c\xb8\xdd\xe4\xdb\x9b\x16\x83\x3b\xfb\x50\x3a\x0b\x89\xd6\xda\xda\x5d\xd0\x43\x3c\xf8\xfe\x72\x58\x4c\xa2\x7a\xd3\xac\x89\x25\x62\xd9\x48\x4c\xca\x69\xdb\xb1\x04\x70\x0c\x63\xf7\x46\x82\xa0\x5a\x83\xab\xec\x37\x71\x5c\x1a\x9f\x0e\x51\xf0\x8d\xb0\x59\x50\x14\xda\x8b\xc5\x10\x67\x5f\xff\x3c\xd5\x98\x18\x96\x66\xea\xa7\x25\x8e\x1c\x53\x83\x4c\x9c\xc7\x2e\x5e\x47\x48\x62\xdf\x88\x80\x12\x87\xc6\x81\xc7\x8c\x02\x7d\x71\x18\x78\x87\xdb\xb6\xf7\x4c\x01\xbe\xdb\xf7\x84\xdc\x39\xfc\x1d\xad\xe9\xa1\xfc\x75\xec\xc2\xc1\x06\xc3\xc3\x86\xc2\x11\xcb\xf6\x9a\x6e\xeb\xc5\xa0\xde\x98\x7f\x89\xd6\x1d\x01\x03\x72\x76\x06\x5f\x48\x60\xb2\x28\x4e\x21\x9b\xd1\x04\x2e\xff\x91\x1b\xb8\x18\x69\x0f\xa3\xb8\xe8\x1c\xd8\x77\xe9\xa6\x39\x00\x18\x7b\x61\x6c\x14\x82\xca\xe6\x8c\xf8\x1f\x21\x45\x8e\x09\x62\x19\x73\xdb\xa6\x97\x44\xf8\xd7\xac\x0d\xa2\xfd\x0c\xfb\x22\x73\xfa\xf4\xec\x9c\x55\x40\x74\x6e\xaa\x7c\xb5\x02\x9e\x36\x2f\x2e\x6d\x01\xc4\x45\x1c\xf4\xd6\x2a\xf2\x4a\xd3\xb6\x02\xff\xa8\x61\x09\xf7\xca\x5b\xd2\x11\xca\x36\x82\xea\x38\x74\xaf\xfa\xe4\xe2\xd8\x20\x4d\x74\x41\x06\xa1\x90\xf9\x80\xd6\x3b\x9b\x12\x27\x3d\x33\x8f\x48\xa4\x28\x0c\xde\xc6\xf0\x91\xf5\x6f\xb4\xa4\xf1\x33\xe1\xd8\xfd\xea\x4f\xe2\xa7\xac\x30\x89\x94\xa0\x44\xaf\xb5\xd2\x0d\x05\xc7\xbc\xb3\x96\xb8\x91\x73\x66\x84\x4c\xd9\x78\x44\x00\xf8\xdd\xa8\xa9\xc5\x4d\xcc\xf3\xf1\x21\xf8\x4d\xa8\x3d\xbf\x4e\x1b\x3a\x6c\x69\xe6\xa4\xf8\xeb\x7f\x93\xb0\xb2\x76\xb2\x4c\xbd\x03\x39\x47\xa0\x27\xfe\x31\x51\x46\x84\xab\x7a\xfe\xa5\xfc\x9d\x28\xb1\x93\x18\x48\x73\x8d\x85\x34\x51\x62\x59\x66\xdd\xfc\x33\xfa\x6f\x82\xef\x56\x60\x97\xc4\x1d\xef\x88\xfb\x04\xc5\xab\x39\x5a\xfc\x0e\x76\xbf\x7d\x40\x01\x60\x7e\xc2\x0a\x94\x7f\xe2\x7c\x46\x6d\xd6\xb9\xc0\xa9\x6c\xf1\xa9\x11\x50\xf1\x9e\x85\x98\x77\xa3\x4d\xbb\x66\x8f\x34\x09\x9d\x46\xdc\x1c\x1c\x2a\x3a\x17\x1c\x6d\x5d\x16\x1d\x37\x30\xf0\xd7\x55\x9b\xe9\x08\xb9\xe9\x80\x59\x65\xaf\x2e\x02\x96\xce\xea\x26\xd7\x8e\x02\x93\x3a\x71\x3f\x49\xe0\xdf\x66\x0f\x72\xa7\x41\xc3\x75\x86\xcc\xb8\x3a\x59\xab\x53\x2d\x9d\x2f\x76\x23\x9a\x99\x53\x8d\xb3\x2e\x9c\x35\x47\x70\xba\x32\xb8\x3f\x90\x00\x72\xde\x1d\xd8\x34\x04\x1d\xed\x91\x3d\xbc\x47\x03\x0c\x4c\x9b\x6b\x96\x69\xda\x89\x42\x03\x37\xa6\x89\x92\x4a\xc8\xb4\x42\xe4\x43\x2c\x85\xa7\x51\x90\xe2\x18\x50\x07\xbb\xed\x0c\xfc\x5b\x25\xd2\xac\xa8\x3f\x81\x5a\x9c\xf6\x73\xc7\x21\xd9\x5c\x50\x3b\xf1\x07\x3d\x10\x8d\x3f\xd0\xe4\x56\x40\x77\x70\x0d\x39\xd0\x9a\x40\x70\xea\xfd\x58\xbd\xad\x3c\x42\x64\x34\x34\x24\xc4\xb0\x50\x4d\x85\xc6\xa2\x3d\x24\xbb\xae\x61\x67\xb5\x77\xfe\x78\xf6\xf4\xc9\x89\x76\xfe\xfd\x7b\xfb\xfd\xfe\x3d\x14\x7d\xaf\xad\x36\xb6\x40\x62\xa6\xa3\x39\x41\xf0\xf3\x4f\xf2\x66\xf7\xf1\xfb\xf4\xf7\x5d\xc2\x77\xf2\x0e\x8f\x3b\xe3\x10\x45\x74\xdf\xb1\x2a\xfe\xfa\xaf\x04\xb5\xfd\xcd\xf8\xa9\x77\xa7\x6b\x15\x66\xfc\x0c\x00\x78\xd9\x02\xc1\xe2\x68\xa8\x43\xa4\xa5\x87\x89\x63\xdd\x4f\x44\x14\x0b\x49\x2d\xd6\xaf\xb7\x77\x3d\x24\x7e\xb3\x84\xf2\xa5\x4d\x2b\x8b\x80\xf3\x6b\xfa\x13\xa6\x6f\x92\x74\xdd\x3b\xda\x3f\xd7\x1f\xa3\x12\x39\xf5\xc3\x63\x79\x48\x3f\x24\xe4\xd9\xa0\x84\x5c\x9b\xdd\xc7\xff\x41\x1e\x13\x0f\xef\x48\x03\xbe\x86\x97\x11\x2b\xb2\xe5\x50\x51\x32\x29\x39\x7c\x0d\xf4\x1f\x0c\x9e\x10\x36\x9f\x8e\x9a\x63\x5b\xc1\xb2\xd8\x74\x2e\xfe\xb5\x6f\x53\x96\x17\xf9\xba\x9a\xb3\x51\x65\x0e\x50\xd8\x33\xde\xf3\x87\x06\x06\xc5\x9e\xeb\xef\x73\x42\x03\xfd\x41\x1b\xe2\x7c\x3f\x7f\x44\xc4\x6b\x0b\x4e\x11\x5f\x66\x0f\x17\x23\x69\x6d\xa2\x46\xa8\xff\x3b\x92\xeb\x2d\x34\x0b\xc4\x3a\x2b\x2b\xd8\x13\x3a\xed\xd8\x24\x0c\xe6\xa7\xf4\xdf\x34\x74\xe4\xd9\x99\x1c\xb1\x27\xea\x4b\x76\x76\x0a\xd8\xd6\xf0\xc0\x72\x44\x4e\x09\xc2\x59\x8c\x33\x7a\xdf\x07\x58\x96\xa6\x12\x90\xd8\x1f\xcb\xae\x87\xfc\x09\x89\xe7\x5d\xb8\x80\xf2\x10\x07\x74\x03\xba\x6b\xbb\x21\xab\xc2\x48\xc2\x3b\x4b\x82\x41\x0b\xab\x7a\xde\x6d\x82\xa7\x76\x4c\xce\x18\x15\x85\xfb\x66\x5c\x2f\xea\xf1\x6c\x54\xc1\x77\x3c\x8a\x47\x31\x94\x30\xdc\x00\x84\x91\xb8\xb1\x6b\x31\x97\x59\x28\x33\x80\x28\x30\xea\xb5\x68\xa7\xcf\x33\x8f\xd1\x1f\xe6\x31\x36\x06\xe4\xe4\xc0\xf5\x48\x16\xcc\x1e\x70\x1f\x46\xb0\xd2\x40\xf9\x87\x81\xf7\xed\x19\xea\x10\xc3\xc9\xae\xba\x81\xfb\x66\xc8\xe3\xcf\x46\x87\x5a\x7c\xba\xce\xc5\x15\x6d\x90\x37\x78\xaf\x64\x88\x0e\x88\xf7\xc3\x9b\x5a\xf2\x8c\x55\x04\xc2\xdd\xa6\xec\xa2\x98\x2e\xfb\xac\x02\x4a\x2f\xf2\x58\x87\x86\xa9\xf6\xa5\xe7\xf7\xb2\xcc\x3c\xe0\x4f\xf3\x95\x0d\x41\xcc\xb6\xcd\x7d\xa3\xff\xa8\xde\x7f\x50\xea\x8a\xa7\x2d\xc7\x11\x90\x9a\x54\x22\x92\xa5\x42\x95\xfb\xc4\x10\x3d\x79\xbc\x2f\x7f\x83\x42\xb1\x37\xf2\x03\xdf\xfc\x71\x6f\xe4\xb0\x66\xef\x92\x1c\xd4\x7c\x23\x97\xe4\x08\x3c\x43\x7f\xe3\x7e\x96\x6f\xe2\x72\x3c\x35\x61\xcf\x24\x2b\xdb\x3b\x09\xf1\x89\xf2\x63\x5e\x39\x0b\x27\xd6\xb3\xcb\xa1\x56\xd9\xeb\x2d\xa0\x9b\x1f\xc8\xd6\x6f\xc4\x2e\x4f\x0d\xc4\xc1\x23\x00\xec\xeb\x4d\x08\xb2\xfc\xe2\x62\xb6\xac\xca\x7d\x0d\xd7\x5d\x3c\x89\xc1\xe2\xb2\x3c\x98\x70\x65\xae\xff\x4a\xcc\x46\xc6\xc1\x65\xb9\x24\xae\xcf\x69\x57\x54\x70\x95\x49\x35\x4d\xee\xe4\xe6\xf2\x47\xd3\xf8\x06\x33\x0e\xd8\xff\xd0\xb1\x11\xb4\xca\xcd\x4c\xdf\x6d\xf3\x41\xf3\x5d\x50\x14\x79\xfa\x83\x5a\xa8\x2f\xcb\xfd\x02\xbf\xd8\x11\xb9\x26\x59\x1a\x2e\xa8\x08\xe6\xd6\xc0\x32\x1b\xaf\x88\xa0\x05\x57\x1a\x65\x64\x29\x1c\x41\xbb\x9b\xf9\x70\x20\xec\x7c\xbf\x61\x93\x81\xc0\xb9\xcf\x04\x25\x81\x72\xaf\xff\xdc\x67\xe6\x61\xa6\x8a\xbb\xb0\xca\xd1\x44\x07\x37\x42\x03\x9f\x3d\x7c\xa2\x5f\x6c\x42\xce\x21\x82\xc0\xfc\x11\x1f\xdb\x6c\xb8\x57\x89\x57\xca\xca\x95\xd9\xd8\x4a\xdd\xe5\x88\x1b\x01\xff\x16\xd3\x6b\x7d\xa0\xa0\x2f\x91\x55\xc9\x05\x71\x32\x87\x35\x20\xef\x12\x89\xc1\x76\xb5\xe4\xc5\x46\x92\x94\xe5\xcd\xa0\xbe\x0c\x01\x07\x0b\x70\x46\x7f\xf2\x4d\xd1\xdb\xca\xcb\xfd\x92\x55\xe3\x1b\x97\x98\x40\xe0\x09\xa0\xd8\x03\x45\x56\x18\x1c\x1c\x42\xcb\x9b\x32\x13\xbd\xec\x7e\x38\x15\xd9\x47\x0b\xf7\x1a\x9e\xdf\x44\x4c\x20\x5c\x21\xa2\xf1\x91\x5b\x70\xb2\x6a\xc3\x4c\xe6\x28\xef\x8b\xb7\x62\x5f\x61\xe0\xac\xd6\xfb\x48\x74\x68\xa0\x7f\xdf\xa7\xed\x5d\x30\xa0\x5c\xca\xd2\x43\xa2\x9a\x3d\xe7\x43\x3a\x58\x90\xc8\x3e\x6a\x34\x21\xc7\x6b\x02\x4f\x2d\xb6\x59\x2f\x33\x08\xd3\x2d\xd2\x4d\x10\x47\x26\x22\x40\x8f\x93\x6a\x4d\x92\x4e\x21\x26\x5d\xae\xc9\x7d\x85\x8b\x8f\x27\x6a\xaa\x15\xac\x26\x3f\x96\x72\x5a\xae\x32\x9c\xc0\xf1\x10\x42\x93\x6c\xa9\x0d\xfd\xc8\xab\x1f\x71\xbd\xe0\x02\x32\xb8\x3a\xe0\xa3\xc1\xe9\x5d\xff\x8f\x44\x9f\xa9\xd3\x37\x0e\x87\x5b\x27\xf6\xb8\xdf\x1f\xdb\x47\x41\x05\x5d\x88\xfb\x97\x29\x64\x9c\xc3\x1e\x4e\x34\x2c\x86\xb4\xfb\x64\xe5\xb5\xf6\x89\x6b\x4b\xc2\x25\x91\xd8\xc0\x21\xf5\x45\xa3\x63\xd7\x35\x35\xd1\xb1\xd9\xe7\xa6\x48\xc2\x81\x61\xa1\x98\xcb\xc3\x82\x11\x8f\xa3\xef\x72\x04\x3b\x0c\xaf\x57\xc8\x79\x10\x6b\x37\x62\xce\xa2\x63\xc1\x32\xaa\x3b\x18\x62\x5e\x36\x3e\x50\x6e\x0b\x2e\x94\xd8\x68\x74\x3d\x3d\x47\x72\x03\x22\x77\x1f\xbc\x3d\xf9\xb6\x84\x98\x8d\x3e\xe4\xe5\xed\x5b\xdf\x94\xd5\xea\xdb\x20\xee\x6a\xf4\xea\x44\xa0\xe2\x0a\x8b\x08\xe8\xae\xff\x05\x18\xa2\x70\x8e\xb5\xe1\x85\x4f\xe8\x57\x4b\x98\x88\xb0\x6f\xb3\xe7\x57\xcf\x0e\x3e\xca\xbf\xc4\x74\x51\xf6\x19\xe1\x17\x9d\x69\x50\xdf\x8e\xc0\x6b\x57\x2e\xd4\x5e\xb9\xe7\x1a\xd5\xb9\x4b\x6e\x81\xe7\x8f\xda\x8c\x5d\x75\xf2\xe2\x25\x5e\x20\x84\x72\x0b\x97\x77\x04\x57\x62\x4e\x7e\x36\xeb\x12\xe1\xba\x25\x40\x6c\x3d\xff\x5a\xc2\xb3\x76\x88\x95\xb6\xe7\xa7\x07\xa0\xe8\xab\xe7\x2e\xc6\xe3\x1e\x2d\x49\x56\x14\x01\x30\x7e\x02\xa3\x77\x9c\x42\xab\xa1\xc3\x54\xc7\x01\x60\xc1\x63\x0b\xc4\x02\xff\xd7\x63\x91\x62\x35\x67\xaa\xa4\x83\xf5\x67\xde\xa3\x5f\xc2\x2b\xe1\x79\x24\x5d\xdb\xae\x17\x30\x3b\x89\xee\xc2\x38\xcd\x87\xa1\x25\xd6\xa2\xab\xd7\x2d\x6d\x88\xf4\x72\x16\x74\xe5\x4f\x00\x89\x06\x08\x87\xbb\x85\xcb\xbd\xbe\x7d\x50\xf8\x49\x7c\xaa\x35\x70\x0d\x92\xd7\xb5\x67\x17\x20\x12\xe2\x61\xb9\xbc\xdc\xfa\x3b\x3d\x0d\x41\x81\xdb\x3d\x7d\x50\x6f\xd0\xd2\x0d\x5e\xa9\xe1\xee\xf9\xfb\x38\xa5\x4e\xb7\x38\xf2\x49\xfd\x6d\x17\xd6\x37\xc5\xe4\x0b\x75\x67\x51\x70\x3e\x9f\x31\x1d\xa5\xef\x37\xdf\x18\xc7\xe5\xa7\x22\xad\x85\xb0\xf8\x75\x57\x16\x7a\x1b\x4d\x0d\xbc\x49\x7c\xbe\xa9\xb8\x7c\x7c\x51\x18\x5c\x27\x4e\x48\x85\x83\x10\x71\x4f\xa3\xcb\x47\x89\x3a\xa7\x55\x02\xd6\x5c\x70\x42\xc4\x0f\x1e\xbd\xe0\x7d\x1a\xe1\x94\xa1\x4c\x18\x07\x61\x80\x72\xae\xbc\xb1\xbc\x02\x21\x78\x2f\xb9\x97\x99\xfb\x08\x0d\x12\x6f\x01\x0f\x33\xc1\x70\xf0\x78\x88\x06\xbe\x28\x70\xf1\x19\xec\x5b\x47\xef\x62\x5e\x17\xa8\x61\x38\x4a\x20\x9f\x51\xb4\x86\x08\xa1\x4f\xd5\x10\x3a\x1a\x07\xa6\xbd\x61\x72\xe9\xf1\xd8\x41\x13\xd7\x16\x90\x03\xf7\x4e\xe1\xcf\x71\x5d\xdc\x1d\xa1\xde\x51\xc0\x8b\x9e\xe4\x09\x07\x2d\x11\x38\x7a\x24\xdc\x03\xad\x2d\x88\x48\x89\xdc\x31\xd8\x5b\xb7\x6f\x29\x46\x17\x22\x9c\xfa\x20\xad\x76\x98\xe3\x10\x60\x2d\xa1\x16\xba\x03\x78\x48\x5f\x44\xee\x33\x49\x94\x90\x30\x0c\xa3\x1c\x57\xbb\x75\x21\x42\xf3\xa0\xf6\x94\x01\xbf\xcb\xd3\x9b\xa5\xfb\x4c\x6f\xec\xba\xcf\xa0\xe5\x4e\x6d\xb2\x99\x3f\x5f\x57\x5d\xd0\x96\x08\x5f\xce\x8a\xdc\xa5\x12\xfd\x7f\x09\x9f\xbe\x56\x2d\xc2\x34\x59\x49\x20\x43\xfb\xeb\x84\x47\x65\xf6\x44\x52\x54\x45\x3e\x0e\xc1\x09\xab\xfd\x03\x08\x65\x9d\xcb\x8b\x25\x6c\xa7\x20\xb4\x90\xa3\xbc\xdd\xad\x3f\x1a\x35\x8f\x57\x74\x1c\x75\xe5\x38\x34\x1c\xea\x17\xe4\x75\x86\x50\xba\x3e\x8e\xae\x4b\x1c\x0c\x56\x12\xc1\xb0\x68\x84\x21\x56\x52\x69\xf8\x1d\xb0\xba\x5d\xd3\x4e\x94\xf2\x8e\xff\x01\x51\x19\xbe\x19\xb8\x77\x72\x4b\xc2\x91\x3b\xd4\xb5\xdb\x05\xa8\x08\x9f\x8a\x9a\xb9\x1e\x98\x8f\x9d\x18\x08\x3f\x1e\xd6\x4e\x95\x7a\x93\x81\xc8\x34\x04\xec\xb9\x7b\xe9\x86\x6f\x04\x5d\x3c\x98\xe8\xe9\x34\x3f\x1a\x7d\x75\x58\x31\xf8\xd0\x58\x26\x99\x2a\xf6\x66\x70\x71\x03\x00\xd5\x5e\xea\x83\x07\x23\xa0\x9c\xc8\x6b\x0c\x19\xbf\x66\x29\xa3\x2d\x30\xd6\xe1\xdd\x65\x38\x62\xe7\x9f\x1e\x75\xef\x0c\x62\x42\x10\x4e\x52\x5a\xc9\x12\x43\x92\x11\x93\x11\x1e\x20\xab\x5a\x67\x04\x6c\x82\x52\xa8\x5f\x28\x87\x2d\x82\x18\x41\x11\x6c\x43\x99\x58\xda\x70\x35\x00\xde\xa1\x19\x52\x5f\x3a\x0a\xf4\xed\xa7\xeb\xf8\xc5\xfb\x3d\xbf\x38\x60\xe4\xde\x98\x80\x4b\x61\x17\x8f\x88\xf9\x48\xa1\x40\x01\x24\xfb\x05\xcf\xe4\xa5\x01\x45\x1f\x72\x4b\xec\x0f\xea\x70\x04\x41\xa3\x3d\x11\x90\x00\x4e\x37\x15\x1d\x2f\xa4\xc7\xfd\xfe\xc6\x5c\x90\x3e\x0c\x08\xec\xbe\x28\x27\xb1\xbf\xf9\x63\x80\x45\x18\x42\xdb\x72\x45\x70\x6f\xf1\xf4\x14\x0b\x59\xc1\xf2\xe1\x35\x28\xbe\x1f\x9b\x3e\x10\xe1\xf0\xbc\x89\x40\x34\xba\x23\xe6\x88\xb3\x08\x85\x0c\xb7\x56\x34\x49\x02\xa5\x9d\xda\x51\x8a\x8b\xfc\x96\xf8\x68\x62\x4e\x47\x31\x4e\xf8\x66\xb5\x83\xf9\x00\xe9\xfc\xa6\x41\x09\x5e\xfa\x35\x63\x8a\xb0\x4f\xfc\x62\xe3\x68\x60\xfa\xb4\xe6\x1b\x0f\xcc\x1f\x25\x3e\x96\x6f\x3c\xaa\x93\x08\x23\x79\x7c\x33\x81\x67\xde\x60\xcc\xc7\x22\xb5\x8f\xb6\xba\x3f\x44\xbd\xae\x52\x0f\x52\x6c\x2f\x33\xa8\xa6\x16\x26\x12\xc4\x47\xc8\x70\xdf\x5e\x41\x44\x9c\x35\xbc\x85\x86\xbf\x78\x16\x05\xeb\xd7\x38\x9f\x3b\x12\x86\x35\xee\x48\xc6\x2a\xff\x93\x28\xe4\x3d\x62\x4f\x11\x4e\xde\x73\x50\x7f\x91\x25\x45\x38\xe7\xe5\x20\xf1\xdc\x3f\xe3\x88\x68\x13\x3b\x28\x29\xf9\x61\xdf\xc0\x3e\x05\x01\xe6\x43\x56\x68\x10\x2d\xfd\x86\x68\xf6\x2d\x71\xe8\x45\xa3\x06\x1e\xd1\x2b\x0d\x82\xa6\xe4\x8d\x4d\x44\x10\x74\x6f\x68\x26\x88\x4a\xc2\x96\x5a\xf3\xd3\xe8\x21\xe7\x9a\x10\x30\x01\x6b\xcf\x6f\x43\x15\xe8\x6e\xfe\x58\xfe\x8a\xf6\x06\xd1\x28\xaa\x1a\xcf\x53\xad\xec\xfc\x0f\xf8\xa9\x41\x21\x39\xe1\x51\x82\xef\xa6\x6c\x88\x09\x3a\xc7\xff\x1f\x99\xbb\x19\xab\x78\xdd\xec\x59\x4b\x4a\x40\x23\xb6\xee\xcc\xab\x51\xc3\x7c\x6f\xbc\x07\x91\x4d\x0c\x00\xa2\xea\x3c\x3e\xd6\xc7\xb6\x35\x9a\x80\xa9\x0a\x8f\xcf\x8d\xbd\x9d\xec\x6d\x81\x1b\xe4\xf9\x67\x09\xfb\x56\xb2\x32\x96\xc3\x0e\xba\x17\x5e\xf0\x94\x5c\x86\xa7\xe4\x46\xaf\x25\xf4\x39\x91\xb5\x50\x9f\xac\x91\x58\x7d\x9c\x79\xdc\x1f\xf6\xb9\xd1\xc6\x8f\x5a\x0b\x1e\x16\x88\xab\xec\xfa\xc7\x05\xc2\xe4\x64\x3d\xe8\x98\xef\x87\x06\xad\xf6\xe1\x5d\xa3\x21\xf2\x35\x11\x9e\xc5\x8b\x53\xa7\x43\x58\x8e\x47\x39\x9c\xb2\x0f\x58\x15\x26\x42\xb5\x75\xfd\xe7\x30\x05\xc1\x8a\x8a\xfe\x91\xeb\xa0\xa8\x48\x10\xc3\x51\x26\xbc\x07\xd5\x50\x3d\x1e\x87\x84\xe9\x08\x53\x0e\x09\xba\x33\x13\xed\xe8\xe1\x1f\xa6\x4a\x79\x27\x26\x0f\xa7\x74\x48\x84\xe1\xf5\xac\xd1\xc4\x8e\x0c\x35\x3f\x2e\xf4\xff\x74\x41\x79\xba\x35\x78\xa8\x75\xba\x58\xd5\xd2\x69\xad\xda\xf4\x12\xaf\x5e\xf4\x05\xe0\x2d\x52\x2c\x34\xfc\x67\xc9\xd1\xb6\x84\xad\xe0\x40\x51\x1a\x3b\xd1\x8a\x54\x60\x9e\xe2\x19\xb3\x9b\x6b\x07\xc6\x74\xee\x0d\xf4\xa3\x2d\x4d\x2a\x17\x7c\xd4\xbf\x08\x2e\x4a\xd7\x89\xa7\x1d\x3c\x85\x57\xeb\x70\xf7\x61\x77\x62\x8e\xd3\x47\x1b\x7c\x83\x66\xa6\xc7\x1d\x35\xd4\x0f\xb7\x8f\x4c\x18\x31\x10\xa3\x7e\x58\x1d\x89\x28\x38\xf9\x4b\x3b\x1e\x28\x67\xec\x07\xaf\x22\xbf\xae\x15\x3f\xce\xd3\x31\xc8\xca\xd7\x35\x1e\x8d\x11\x8f\x54\xaf\x52\x7d\x1e\x57\xc6\x76\xfd\x33\x9d\x0a\xe2\xad\x0e\xc7\xc7\x14\xd6\x9a\x80\x59\xc4\xc6\x24\x1a\xa4\x1b\x20\x2b\x33\x69\x3c\x91\x67\x7c\x26\xa1\x86\x98\xf3\x45\xba\xe0\x67\x92\xeb\x4b\xbe\xe3\x95\x5d\x9d\x64\xad\x06\x89\xb6\x1e\xf7\x71\xd4\x45\xa8\xcb\xcd\xdb\x33\x2a\xfd\xbe\x84\x0d\xca\x0f\x96\x2f\x4b\xeb\xb7\xcd\x3b\x50\xcd\x27\x1f\xf9\x7a\x25\xa1\x63\xc1\xc3\xcc\xa4\x82\xc1\x74\xcb\xf8\xee\xcd\xa3\xe8\x61\xae\xa3\xd1\x67\x28\xc7\xd8\x38\x9c\xb3\xbe\x2a\x5d\xb7\xeb\x14\x4f\xb7\x1d\x9b\x69\x60\xb2\x00\x52\xcb\xac\x1e\xdf\x9d\x4a\x06\x23\x1d\x58\x24\x87\x24\xd9\xbc\x03\xe3\x13\x9b\x99\xfd\x25\xfc\xaa\xe4\x81\x7f\x21\xbc\x1c\x11\xce\x78\x7d\x5b\x76\x6c\x6a\x61\xb7\x7e\x7e\xf7\x06\x1a\x94\xb7\xa3\x41\x70\xa4\x5d\xd6\xa6\x55\x3c\x4c\x36\x02\x89\xf5\x69\x11\x39\xe4\x08\x75\xd4\x11\xac\xb7\x49\x38\xc5\x1f\x7e\x37\xd8\x56\xd1\x99\x4c\xdb\x0a\x77\xac\x8b\x15\x91\xfd\x96\x24\x20\x1b\xbc\x92\xf0\x85\x4b\xab\xa7\x6a\x90\x70\x43\x3c\xd9\xa2\xe5\xc0\x50\x7d\x25\x50\x55\x68\xaf\xe4\xee\x20\x8d\xd0\x26\xb3\x0b\xae\x22\x34\xc1\x29\x5f\x15\xdc\xa7\x63\x0d\xe6\xb3\x61\xab\xe7\x8e\x9f\xa4\x62\xab\x67\x0d\xeb\x19\x36\xa1\x95\xcb\x65\x93\xd0\xc0\xe0\x0c\x8b\x6f\xf3\x54\xbf\xc3\xa2\xbb\x92\x6d\x45\x16\x1b\x02\x5f\xbb\x5b\x00\x02\x38\xb8\x9c\x68\x1e\x71\xa2\x39\x47\xe2\x44\xfb\x6e\x70\x5a\x4b\x7b\xb9\xa7\xa9\x47\xab\x21\xca\x43\x5c\xe5\x0f\x94\x32\x2e\xee\x60\x78\x69\x93\xdd\x51\x08\xd2\xbe\xaa\x23\x16\x87\x4b\x0f\x01\xf0\x25\x25\x9a\x1b\xa0\x10\x56\xca\x33\x12\x2e\xc3\x0a\x0f\xb3\x8d\x3d\x5a\x98\x6d\x2e\x98\x6b\x0d\xd7\xf3\xe6\x61\xe9\x65\x57\x3c\xac\x67\x9a\x38\xaa\x54\x2e\xaf\x6c\x4a\x44\xe4\xe1\x46\x2c\xe1\xa1\xec\x58\xf3\x95\x2f\xad\x3e\xe2\x6f\x48\x54\x5b\x5f\x69\x59\x96\x0d\x64\xff\x1d\xb8\x42\x36\xa8\x63\xc8\xb9\x54\x73\x86\x54\xf3\x1c\xa9\x03\xd6\x90\x0a\x0f\x01\x27\x85\x6f\x80\xdc\x16\xb1\x27\x17\x88\xd6\x91\x36\x2d\x1d\x5e\xed\xee\xf1\x19\x22\x56\x9e\xf9\xe4\x71\x7f\xa3\x8a\xfd\x6e\x1d\xd6\x9d\xec\x37\x4d\xd2\x4b\x3b\xd1\xf1\x7d\xa4\xdf\xdc\xf3\xa8\x6a\xdf\xf5\xa8\xf6\xe4\x99\xe1\xd7\x83\x70\x33\xb1\x6c\xd3\xb5\x6d\xe0\xd3\x75\xb9\xe0\x1b\xfd\xbe\xa9\x53\x57\xc8\x7c\xc6\x85\xcc\x97\x54\xc8\x9c\xa3\xd0\x64\xa3\x44\xb1\xb6\xb6\x49\xd8\x4a\xc3\x37\xe2\xd6\xbc\x25\xe2\xb5\x56\x0b\x62\xf9\x23\x06\xc8\x5f\xdc\x8f\x38\x29\xb8\x69\x2f\x54\x24\xd0\xc3\x09\xbe\xca\x37\xf7\x14\x05\xcc\x19\x17\x70\xe7\x14\x57\x12\x53\xe3\x41\x7c\x21\x21\xa3\xc4\x90\xf3\x3d\xbc\x5a\x83\xf4\xb6\x62\x76\xd0\x3f\x0b\x3e\x54\x85\xb1\xe9\x7d\xdc\xef\x97\x99\x7b\x5b\x50\xac\x12\x9c\x91\xd9\xa0\xa2\xa0\x3c\x57\xf3\xac\xc5\x5b\x29\xfc\x46\x15\x1b\x09\xec\x6b\x79\xc1\x9a\x1d\x1c\x27\xa6\xed\x6b\xef\xe0\xab\xfe\xab\xab\xbb\x51\x4b\xed\xde\x22\xce\x57\xb3\x93\xd5\x74\xb4\xfd\xb9\xd4\xd9\x11\x8f\x82\x82\x2a\xcf\x8a\x0b\x86\x46\x9f\xa7\x6d\x6d\x37\xf3\x53\xfc\x8f\x8b\x40\x09\x3e\xcf\xaf\x57\xc8\x6b\x5a\xf1\x4b\x52\x52\xff\xb5\x6f\xf9\x6b\x31\xcf\x8a\xbb\x14\xc7\x3e\x66\x62\x50\xc9\xe6\x83\x3e\x2f\x0c\xd1\x23\x49\xc2\x63\x45\x72\xb4\x64\xa8\xd1\x27\x6e\x84\x4b\x7e\x69\xdb\x65\xe8\xeb\xda\xfa\xf0\x32\xfb\x54\x74\xf3\x33\x4a\x34\xf2\xf8\xb2\xfa\x9c\x3d\x09\x9d\x2d\xce\x4b\x03\xb3\xde\x70\x72\xa1\xc9\x98\x4e\xf4\x0d\x9c\xb2\x67\xae\x89\x28\x58\x8d\xce\x8e\x79\x7c\x31\x9c\xba\x17\xe9\x02\xcc\x19\xa7\xba\x82\x1c\x82\x76\xfe\xa8\xe4\x18\xd8\x51\x6d\x16\xd5\x44\xbe\x19\xb4\xf0\x88\x85\xb8\x27\x6c\x97\x2c\x15\x86\x0f\x71\x3f\xc2\xdd\x80\xc9\x1b\x09\xf0\x29\xae\x98\xb0\x4e\x34\x6d\xa1\x0c\x8f\x1f\xfc\x91\x37\xca\xf4\x69\xb7\x88\xa3\xbf\xf1\x8d\xb2\x1e\x14\x7e\xaf\xa8\x81\x45\xb4\x49\xf2\x7a\xd1\xef\x0a\x1f\xcb\x9c\x6f\x91\x55\x8a\x08\x4b\xf2\x1e\xf1\xa5\xb6\xc9\x0d\x9e\xae\x1e\x76\xb8\xb7\x86\x75\x3e\x33\x6d\x7d\x65\xe7\xce\x1a\xb6\x20\x76\x9f\x6a\x2b\xdd\x1b\xa2\x7f\xe1\x55\x41\xb3\xd7\x3e\xf2\xe6\x84\x27\x29\x3e\x7d\xf7\x59\xc6\x20\xf8\x4f\x7a\x87\x33\xec\xec\x3f\xe7\x35\xce\x00\x06\xa1\xe1\xe1\x3d\x3d\x51\xaf\xb7\x3a\xc4\x7b\x84\x33\x76\x14\x7b\x0d\xb2\x0a\xae\x92\x7f\xd4\x6a\x21\xf6\xe1\x84\xa1\x65\x0a\x27\x4e\x5c\x34\x88\x1d\x1e\xc1\x81\xf1\xcf\x6b\xbb\x1e\x47\xc5\x9f\xbe\x99\x94\x9c\x70\x54\x92\x32\xbe\x03\x95\x74\x0e\x69\x6c\xe3\xd7\x2d\x11\xf4\x48\x72\x61\x6e\x5e\xeb\x1b\x97\x56\x8d\xd0\x90\x3e\x8a\x9e\x2b\xaa\x47\x45\x21\xd1\x5c\x06\x48\xe4\x31\xe7\x19\x9e\xa1\xab\x84\xc0\x25\xb8\x4e\xe6\xa7\x7a\x14\x4d\x69\x4e\x30\x0f\x49\xe9\x43\x4f\xca\xb7\xbc\xe0\x97\xb9\xd7\xfa\x4a\x98\x12\x49\xce\x31\x43\xa3\x60\xa0\xdc\xd8\x60\x80\xd4\xb6\x8d\x0a\x4d\xa1\x42\x41\x82\x52\x68\x60\x80\x2d\x89\x70\xa6\x9b\x7f\x59\x42\x07\x2a\x09\x3b\x04\x96\x3c\xe5\xc0\x92\x92\xc0\x4a\x99\xac\x20\xbe\x9e\xc8\xc6\x83\x27\x51\xb2\x7f\xb9\x8e\x33\xfb\x37\xeb\x26\x8a\x78\x23\xc4\xa4\x42\x4c\xcb\x8f\xc4\xef\xd9\xe5\x42\xd4\x84\xd7\x9b\x3c\x91\xb3\xdb\x00\x17\x23\x88\x3a\x5b\xf5\x22\x0c\x38\x22\xd2\x24\xe6\x32\x5f\x5d\xb2\xd7\x2f\x21\x9b\x95\x18\x04\xeb\xcb\x8b\x0a\x4a\x50\x72\x8e\xa9\x05\x12\x66\xce\x38\x76\xb0\xf9\x8c\xe3\x6b\x05\x25\xb2\x42\xf2\xfb\xd9\x24\x4d\x53\xe5\xcb\x16\xd7\xcc\x0c\xc5\xa6\xea\xe8\xcb\xe4\x5b\xdd\x4d\xc3\x52\x75\x5b\x45\x05\x0b\x31\xc4\x99\x28\xc9\xaf\xa3\xb9\x62\x56\x9f\x47\xe3\x32\x12\xcb\x4b\x46\x22\x91\xbc\x7c\x6d\xbe\x0f\xd1\x7c\x66\x01\x06\x05\xb6\xc0\xfd\x8b\x3a\x99\x3f\xae\xcd\xbd\xcc\x9c\xdd\x73\x19\xf5\xb6\xd9\x49\xb0\xfb\xb3\xc7\xe7\xa7\xe6\x86\x2d\x83\x92\xbc\xf8\x67\x2c\x4b\x1b\x94\x0f\xf3\xfc\x3e\x88\x72\xd4\xea\x49\x8d\xf9\x59\xd4\xc7\x37\xad\x12\x7f\x1f\x29\x76\x9c\xec\x62\x69\x2b\x04\x12\xcc\xf1\x22\x02\x5f\xb1\x72\x0d\x3c\x63\xbd\x69\x72\x84\x5b\xd1\x14\x53\x5f\x96\xed\x26\xe3\x87\xf9\xed\x2e\xa9\x5c\x34\x55\x0e\x53\x64\xde\x3e\x79\x7b\x16\x9f\xb4\x45\x83\x18\xc9\xfa\x34\x66\x7d\xe8\x2e\xf4\x36\xc0\x9c\x3f\x3a\xf3\xf3\x5c\xe7\x3b\x94\xd3\x77\xab\xa1\x0c\xcb\xa1\x5b\x93\x67\xaa\xc5\x31\x82\xc8\x58\x83\x67\xe2\x7e\x68\xc3\x9a\x3b\x5c\x0c\xda\xea\x65\x9e\xda\x50\xc5\xda\x8a\x23\xa1\x39\xbd\xf7\x78\x30\x1a\x0e\xb5\xe4\x38\x31\x3f\x2e\xa4\x6e\x93\x06\x9c\x30\x11\x0f\x8d\xa9\xa8\x06\x40\x8a\x46\xf2\x1d\x14\x63\x44\xb5\x88\xf2\xe2\xda\x41\x5b\xf5\x21\x6e\x86\xdc\x93\x5c\xff\xfa\x85\x08\x79\x89\xd1\x33\xcc\xfe\x1d\xa6\xc4\xb1\x9f\x36\x40\x75\x31\xdb\x17\x77\xf3\x3a\x6f\x81\x59\x8c\xdc\x7a\x5a\x17\x37\xf3\xa6\x06\x56\x61\x5b\xf3\xe7\xa2\x4c\xba\x79\xe2\x6a\x89\xa5\x0e\x06\x8c\x6b\xe2\x0a\x71\xc1\x85\xa0\x59\xbe\xb4\x1e\x34\xdc\x87\xcb\x19\x57\xe8\x5f\x5b\x18\xc0\x87\x52\x56\xa5\x86\xcf\xa3\x1d\xab\x14\xfd\x04\x1c\xd5\x11\x1f\x85\xa0\xf1\x88\x39\x88\xdb\x7d\x3d\x8f\x20\xfa\x3b\xa7\x36\x9b\xb8\x46\xeb\x95\x67\x5a\x34\xd9\xed\xc2\x3d\xec\xde\x3f\xce\xa3\x02\x2f\xb1\x6b\xc5\xc2\x37\x99\x2c\x00\x67\x3f\x7e\xef\x93\x1f\x98\x18\x97\x19\x50\x1f\x4d\x2d\x2f\x2e\x10\x5f\x0c\xa1\x29\x89\x5a\x12\x92\x34\x9a\xd2\xd7\xcb\x6b\x3e\x40\xd0\xe0\xb1\x0e\x6c\x05\x3f\x01\x39\x3e\x50\xb0\x15\xf0\x92\x97\xcc\xbe\xd9\xaa\xd5\xc7\xc7\x27\x1e\xaf\x6e\xe5\xf6\x22\x17\xff\xa1\x55\x19\x55\xea\xc7\xc1\xc5\x92\x6d\x74\x1d\x29\x1c\x50\x55\x96\xcd\xf0\x51\x8c\x81\xa2\xdb\x2d\x02\xae\xf2\xd2\x85\x44\xd4\x9f\xa8\xa5\xce\x15\xe2\x9d\x21\xaa\x5f\x5f\x97\x26\xfa\xfa\x8a\x0e\x00\xfd\x08\x25\x7e\xd5\x84\x47\x98\x9f\x01\x42\x03\xea\xf6\x65\x10\x85\xd1\x06\x32\xf5\xdb\x2b\xf1\x12\x18\x0b\xd4\x12\x5d\x86\xbd\xa9\xcb\xef\xbb\x7e\x55\x96\x93\x5b\x6b\x99\x1c\x3a\xd5\x7e\x84\x45\x7b\x5e\xa8\x4f\x0b\x18\x8f\x3e\x31\x64\xa3\xfa\xd4\xe1\x30\xc3\xbc\xba\xde\x04\x8b\x76\x76\xf6\x68\x2a\xd3\xbf\x5b\xd4\xb0\xff\x27\xde\x88\xbd\x83\xb8\xb8\x2b\xda\xae\x77\xde\x0d\x6b\xc4\x70\x1e\xe6\xf8\x76\x60\x2f\x78\xa7\xfe\xd3\x26\x6f\xec\x87\x77\xd8\x83\xff\x4e\x93\x67\xcb\xa0\x2d\x47\x1c\xa6\xa0\xa4\x54\x22\x58\x13\x15\xd0\xa3\x27\x53\xf5\xb9\x9a\xab\xe8\x59\xd4\xc4\x3f\xb1\x3a\x3c\x1e\x9e\xb4\xb8\xc3\x11\x53\x13\x37\x2c\xb8\x07\x55\x81\xec\xbf\x20\xb6\xa4\x29\x0b\xf6\x13\x12\xa9\xed\xd0\xa5\xc4\xc9\x04\xd5\xc3\x81\x4a\x30\x5f\x17\xdc\x97\x9d\x2e\xdc\x30\x97\x54\x2f\xf1\xcf\x04\x17\xdd\xd6\x57\x73\x8f\x57\xb3\x4a\x6f\xf0\xe0\x35\x27\xf6\x8f\x32\xfb\x3a\x0c\x09\x55\x58\xc4\xd7\xfd\x47\x00\xc0\xae\x6d\xf9\x01\x81\x5a\x6d\xba\x9e\x3f\x90\x64\xf3\x98\x44\xe0\x6d\xbb\x85\x43\x9a\x39\x43\xc8\xbd\xfb\xc8\x1e\x0f\x6d\x47\xd2\x45\x32\xff\x9c\x3f\xcd\x7d\xf9\xec\xf1\x9b\x38\xb7\xc2\x33\x67\xb1\xe1\x4b\xb8\x17\xc9\xf5\x2f\x1a\xf5\x64\x5d\x66\x38\x8a\x4c\x42\x93\xb4\xbb\x8a\x36\x3f\x0c\xce\x9b\x9e\x07\x0e\x5a\x60\xdd\x1b\xab\xa4\xa1\x5b\xca\x10\xdb\xa9\xb6\x8d\x3e\x95\x2a\x4f\x29\xfb\x56\x9c\x8b\xfc\x24\x36\x9f\xf6\x0f\xf7\x75\xff\xd4\xda\x96\xfa\xb4\xc5\x8a\x76\xf6\x03\x6c\x3c\x37\x6c\x12\x6f\xd7\x01\x7e\x16\x8f\x53\x56\x98\x11\x36\x9d\x3f\xca\x11\x6c\x1a\xda\xb9\xb6\x77\xdb\xed\xf7\xd1\x6f\xe0\x9c\x82\x95\x3d\x42\x99\x76\x65\x7a\x68\xba\x61\x49\x27\x39\xdd\x73\xfa\x8f\x38\xdb\x6d\x00\x3a\x9b\x65\xbf\xfb\xbf\xfc\xfc\xd1\xd3\x61\xc9\x09\xec\xa2\x39\x63\x64\xa4\x19\x47\x51\x8f\xdc\x52\x4f\x4d\x42\x6f\xb7\xa3\x72\xc7\xa6\x20\x47\x62\xaa\x15\xce\x19\x94\x4b\x32\xda\x97\x2c\x11\xf0\xdf\xc9\x32\xfe\xbd\xae\x87\xf8\xc1\x3e\x1b\xfe\xc2\x63\x57\x66\x15\xfd\x38\x14\xf6\x6a\x3c\x02\xa0\x00\x1f\x98\xdb\x22\xf6\x85\x56\x83\xf9\xa3\xab\x08\x6d\x82\x47\x70\x62\xaa\x35\xcd\x61\xd4\x01\xd6\x70\x25\x69\x3f\xbc\xcc\x33\xe7\x1d\xbe\x4f\x87\xe5\x5c\xfe\x64\x93\x99\xd4\xe9\x37\x47\x4a\x07\x22\x8f\x98\x6f\x3a\x49\x84\x01\xd3\x43\x80\xb7\xf5\x78\xe3\x0c\x4a\xf9\x1e\xef\x8c\x0b\xaf\x52\x0f\x3d\x51\x72\xf7\x20\x0c\xae\x9d\x93\xd1\xbc\x36\xf9\x85\x0d\xf4\xe9\x7a\xa6\xe3\xb9\x5d\x36\xcd\xae\x0e\x63\x10\xf0\x7b\x5c\xc3\xc9\x4c\xb7\x34\x31\xd4\x5d\xce\x57\x1f\x0e\x52\xa1\xd3\x05\x1e\xd7\x0f\x11\xa9\x2b\xaa\x04\x89\xc5\x3d\x18\xb0\x0f\xcb\xb9\x63\xb4\xaa\x1c\x86\x76\x47\xe9\x0b\x4d\x49\x22\xde\x64\x72\x91\x46\xec\x08\x4a\xf6\xe4\x39\xc8\xf7\xb6\x5a\xb3\xb4\x2a\xf1\xce\x2b\xfb\x0e\x1a\x7c\xf4\x59\xe1\x81\x75\x69\x35\xed\xd7\xac\xc5\xf5\x1f\xe2\xcd\x17\x25\x8d\x77\x1b\xd4\x88\x5e\x5c\x60\xf4\xd5\x67\xf6\x0f\x35\x94\x60\x6e\xf0\x16\x51\x5c\xc0\x7e\x6f\xd3\xd6\xdf\x95\xf2\x1a\x70\xac\x17\x59\xf6\xbe\x99\xd2\xa9\x80\xe9\x6f\xd7\x67\x04\xbe\x54\x7e\xb4\x04\xb7\x46\x5a\xe2\x47\x74\x61\x77\x9a\x86\x8d\x85\x5d\x8e\x7a\xf4\x16\x6f\xce\x86\x4c\x3e\x17\x88\x45\x33\x69\x04\xd7\xf6\x35\x7a\x9e\x2b\x4c\x59\x7c\x10\x99\x0a\xf6\x99\xc1\xd8\x5d\x52\xb9\xa3\x84\x59\x58\x84\x05\x9f\xde\x72\x64\xd2\x08\xef\xb5\xe6\x2d\x30\x30\x4c\xc1\x7a\x7c\x1b\xbf\x54\xd8\xea\xe5\xc5\x20\xda\x63\x1c\xfb\xff\x6e\xed\xfc\x41\x0b\x1f\x9f\x51\x7e\x67\x61\x9c\xb5\x28\x9e\xf6\x07\x7d\xdc\x6c\x38\xc5\x1c\x7f\xfc\xc3\x3f\xc6\x40\x8d\xee\xbb\x5d\x7a\x49\xf8\x8e\xe3\x4a\x84\x83\x78\xbf\xae\xd2\xf7\xef\x86\x6f\x2d\x48\x34\x97\x20\x38\x39\xc6\x19\xb4\x2a\x73\x94\x07\x2b\xbe\x93\x88\xfe\x39\xd0\xb2\xe8\x24\xa3\xb6\x45\x5d\xc9\xcd\xff\x8e\xdb\xef\x1b\xfa\xce\xb7\x14\x87\x54\x77\x37\x2f\x51\x8c\xeb\xb0\x4d\x8d\x94\x8e\x11\xd7\xbf\x0b\x1f\x88\x88\x9f\xd2\xf8\xae\xf6\xef\x28\xfc\xa6\xc1\x4d\x04\x82\xfe\x4e\x83\x75\xff\xfa\xa1\xf9\x30\x73\xbc\x16\x12\x41\xee\x6f\x7f\x21\x9e\x68\xb0\x37\x64\x85\xfd\xf2\xc6\x2b\x75\xe7\x13\xb7\x5b\x38\xc4\x49\x93\xac\xe6\xa5\x38\x33\xcb\x1c\x11\x2e\xe5\xd7\x2e\x6c\xbc\x5b\x38\x52\xff\xef\x7d\x5c\x75\x7d\x03\x6d\xc7\x76\x86\x85\x38\x2f\xe1\x1e\xf8\xf7\xbd\x0b\x38\x6f\x7f\x04\xd3\xa6\xcd\x9f\xac\xca\xb9\x9c\x59\x7e\xf8\x10\xfe\x2d\xec\x1b\xce\xae\x2d\xf8\xd2\x9f\x1f\xd4\xf3\x0f\x88\x9c\xac\xdb\x22\x23\xae\x0a\xd1\xac\x3f\xd8\x52\x0a\x62\x55\x37\x2e\xe1\x92\x12\xe4\x21\x4e\x97\x92\x51\x0a\xf0\x2d\x71\x65\xfc\xbd\xa7\xef\xa6\x0b\x53\x08\x05\x71\x33\xb6\x26\x1a\x9f\x4a\x5a\x47\x29\x55\xb9\xe6\x8f\xda\x12\x12\xcf\xf8\x45\x0a\xe9\x5d\x23\x69\x53\xb7\xf2\x4e\x05\xff\xe4\xc4\xcb\xb2\xad\x38\x49\xc6\xc0\x69\x78\xe0\x1c\x49\x40\xb3\xf8\xde\x5b\xbb\xe6\x84\xa6\x5b\x95\x2e\x91\xc6\xd0\x5c\x6a\x63\x18\xc7\x4f\x69\xc7\xe9\x08\x12\xcd\xc9\x9b\x44\x7a\xa8\x92\xfd\xc2\x0d\x48\x46\x23\x69\x6e\x38\xfc\x97\xa1\x9b\x55\xe5\x0e\x71\x74\xbf\xed\x9f\x39\x75\xaf\xbe\x3d\x17\x67\x20\x0d\xfb\xd5\xb4\x0d\x89\x2d\xb8\x17\x5a\xd3\x77\x91\x5f\x49\x74\x2f\xec\xb6\x9a\x8d\xc4\x67\xec\xdd\xcb\x91\xae\xf3\x62\xd7\xaa\x54\xfd\x44\xa3\xed\x15\x49\x50\xd4\x4b\xe4\xf2\xce\x74\xb7\x83\xa1\x38\x8b\xef\xb4\xd8\x8b\x25\x11\xca\x67\x25\x02\x2f\x54\x6a\x6c\xf6\xce\x3f\xfd\x13\x87\xdc\x27\x89\xe4\x9f\xff\xd9\x3c\xfe\xec\x5d\xb9\x9b\x22\x32\x7a\x48\xf8\x21\x14\x14\xdd\x26\xeb\x9a\x84\xab\x0d\x11\x32\x2a\xbf\x4d\xbe\xff\x43\x54\x85\x5d\xbf\xd9\x48\x9c\xef\xde\xf4\x39\x76\x8d\x9c\xf0\x7f\x03\x00\x00\xff\xff\x80\x4a\x75\xf9\x96\xb3\x00\x00") func confLocaleLocale_plPlIniBytes() ([]byte, error) { return bindataRead( @@ -4519,12 +4519,12 @@ func confLocaleLocale_plPlIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_pl-PL.ini", size: 44326, mode: os.FileMode(493), modTime: time.Unix(1441457542, 0)} + info := bindataFileInfo{name: "conf/locale/locale_pl-PL.ini", size: 45974, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_ptBrIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\xbd\x5b\x6f\x1c\xc7\x92\x27\xfe\xfc\x17\xa0\xef\x50\xf6\x40\x7f\xd9\x00\xd5\x86\xed\xff\x65\x61\xb8\xed\xa5\x28\xda\xd2\x59\x49\xe4\x11\x69\x0d\x76\x0d\xa3\x9d\xdd\x95\x6c\x96\xd5\x5d\xd5\xa7\xb2\x8a\x14\x35\x98\x87\xc1\x7e\x8b\x7d\x1a\xe3\x3c\x0c\x7c\x00\x3f\x0d\xf6\xe5\x3c\x0e\xbf\xd8\xc6\x2f\x22\xf2\x56\x55\x4d\xcb\x73\x76\xe7\xe0\xc0\x62\x57\x46\xde\x22\x33\xe3\x96\x11\x91\x66\xb7\x5b\x94\xd6\xad\xe6\xdf\x6d\x0b\x67\xdb\xab\xea\xf6\x5f\x9a\xa2\xb4\xc5\xb7\x55\x57\x98\xbe\x6b\x1e\x5d\x36\x6e\x67\x4b\x53\x36\x85\x2d\xcc\xb6\x5a\xdf\xfe\x7c\x65\x37\x05\xd5\x68\xab\x8e\xbe\x6d\x8b\x6f\x9b\xfb\xf7\xee\xdf\xbb\x6c\xb6\x76\x7e\x7a\xfb\xf3\xba\xaa\x4d\xf1\xac\xae\x56\x95\xd9\xdc\xbf\x57\x1a\x77\xb9\x6c\x4c\x5b\xce\x4f\x4d\x55\x53\x3d\x6a\x79\xd5\xd4\x5d\xdb\x6c\xec\xfd\x7b\xf6\xed\x6e\xd3\xb4\x76\x7e\xcc\xff\x9a\x96\x5a\xb1\x9b\xdd\xfc\xf0\xa7\xbe\x34\xf7\xef\xb9\x6a\x5d\x2f\xaa\x7a\x7e\x4c\xe0\x28\x73\x0d\xda\x5c\x64\x9f\x4b\x53\x9c\xf1\xe7\x2f\x8a\xcf\xfe\xed\x2f\x85\xed\xcc\xce\x14\x5f\xba\xad\xd9\x6c\xbe\x32\x8e\x6b\xb4\x45\xbf\x35\xdc\xa9\xf9\xf2\x13\x29\xd1\xb6\x9b\xbe\x9b\x9f\x99\xaa\xd5\x9f\xfd\x6e\x7e\x44\x0d\x3a\xe9\xad\xb5\xeb\xca\x75\xb6\x9d\xbf\xe2\x3f\xf8\xdb\xb5\x5d\xba\xaa\xb3\xf3\x33\xfa\xcf\xfd\x7b\x57\xb6\x75\x55\x53\xcf\x5f\xd3\xbf\xb7\x7f\x26\x24\xec\xcc\x3a\xa0\xe0\xfe\xbd\xce\x6e\x77\x1b\x43\xd0\x2f\x9a\xd2\x6e\xa8\x78\x63\xea\x75\x0f\x90\x67\x65\xd5\x6c\x09\x62\xd5\x5a\x2a\x5f\xd4\xf6\x7a\x7e\xd4\xd2\x40\x67\xb3\xd9\xfd\x7b\x3d\x2d\xc2\x62\xd7\x36\x17\xd5\xc6\x2e\x4c\x5d\x2e\xb6\xc0\xd0\xa9\x6d\xe9\x43\x41\x8b\xd0\xbb\xfe\xf6\xe7\xb6\xc2\x6a\xd0\x9c\x2e\xaa\x75\xdf\x9a\xdb\x7f\xb9\xfd\x9f\xd6\xc9\x34\x6c\x49\xc8\x59\x18\x37\x7f\xdd\xac\x6e\xff\x52\xdc\xfe\x82\xc5\x41\xa3\xb5\xa1\x05\xfa\x4e\x6b\x13\xee\xb7\xa6\xda\xcc\x8f\x1f\xe1\x1f\x0c\xdd\xb9\xeb\x86\x96\xe9\xcc\xd6\x97\x06\xb3\x5f\x74\x37\x3b\x4b\x93\x2f\xab\x35\xcf\x76\x65\x76\xdd\xea\xd2\x10\x8a\xf8\x5f\xb4\xda\xda\x5d\x43\xf8\x68\xda\x1b\x82\xe3\x3f\x6f\xff\x95\xdb\x6e\xda\xb5\xa9\xab\x77\xa6\x03\x7a\x4e\xf4\x07\x0d\x12\x48\xda\x56\x6d\xdb\xb4\xf3\x63\xda\x54\x9b\x4b\xfa\x4d\xb3\x5f\xa0\xa1\xf9\xcb\xe6\xaa\x29\xf2\x76\x50\x46\x3b\xae\x05\x16\xa9\xd8\x14\x2f\xf0\x43\x1b\x42\xe1\x45\xd3\xbe\x91\x8a\xdf\xd0\x5f\xd8\x5c\xe3\x06\x68\x30\x52\x79\x38\x10\x53\xd3\x62\x70\xf1\xb7\xb6\xb5\x35\x6f\x95\x04\x86\x31\x6a\xca\x2d\x61\x73\x67\x68\xeb\x86\x1d\xdc\x14\x87\xf8\xca\x9b\xa2\x6c\x68\x5b\x98\xd5\xaa\xe9\xeb\x6e\xe1\x6c\xd7\x55\xf5\xda\xcd\x8f\xf2\x85\x29\x68\x97\x1e\x61\xff\xd1\x0a\xed\x01\xb9\x7f\xef\xa6\xe9\xc3\xba\xd3\x2a\xf4\xc5\x8e\x97\x5c\x0b\x42\xbd\xb3\xde\xb8\xf1\xc2\xf3\x4c\xdd\xe2\xc2\xda\x72\xfe\x0d\xfd\x07\x98\x78\xd9\x74\xb7\xbf\xd2\xa4\xa8\x78\xd7\x6f\x36\x84\xe4\x3f\xf5\xd6\x75\xd4\x44\xb3\xa1\xd3\xd9\x85\xc1\xd9\xe2\x94\xca\xef\xdf\xab\x9c\x23\x80\xf9\x69\xdb\x2c\x37\xb4\x3b\xb8\xd9\x95\xa9\x57\x34\xf5\x23\xfe\x07\x47\xe0\xfe\xbd\xef\x9d\x35\xed\xea\xf2\x07\x4c\x06\x7f\xd0\xde\x74\x7f\xea\x2b\xa7\xfb\x77\xef\xa6\xc0\x1e\x4c\xf6\x1f\xf7\x16\x3a\xa3\x9e\xe8\x94\xcc\x8f\x6e\xff\x95\xf6\x1b\xd3\x93\xef\xab\xda\x75\x74\x58\xa9\x1f\xfd\x6b\xfe\x8c\xff\xf5\xeb\xd7\x55\x1d\x61\xea\x18\x27\x9e\x27\x51\x25\xa5\xc5\xce\xb4\xa6\x38\x6d\xab\xad\xad\xe8\x8f\xe3\xb7\x76\xd5\x6b\x35\xa0\x81\x36\xf4\xa2\x5c\x0a\xd9\xfb\xb6\x59\xbb\x82\x71\xd3\x16\x2f\x6e\xce\xfe\xf8\xfc\xa0\x38\x6d\x5c\xb7\x6e\x2d\xfd\x5d\x34\x7d\x41\xff\x10\xfc\xe7\x34\x35\xaa\x22\x9d\x8e\xd6\xd7\x16\x8f\x09\x43\x4c\x37\x9f\xd0\x9e\x70\x02\x8b\x03\x74\x5e\xed\x1a\x6c\x99\x61\x39\x51\xd5\x6e\xfe\x94\xfe\x33\x42\xcc\xf0\x28\x52\x4b\x7c\x74\x5f\x12\x81\x9d\x6a\x89\xca\x41\x35\xa9\x8d\xd3\xa6\x2d\x2e\xcc\x55\xd3\x1e\x10\x95\xb0\x45\x53\x6c\x2d\xad\x5f\xe5\xb6\x4d\xf1\xec\xe5\xcb\x93\x27\x8f\x69\xe3\x6c\xe9\x33\x6d\x9f\x9f\x68\xbf\x72\x23\x2b\x42\xd4\x8a\xc8\x1c\xcd\xa2\xef\x2e\xfe\xd3\x62\x6d\x6b\xdb\x12\x95\x5d\x55\x82\x43\x46\x09\xcd\xdd\xb9\x0d\x51\xa2\x92\xa9\x59\x53\x9c\x9d\x3d\xc7\x40\xbb\x4b\xda\x19\x74\x14\x70\x8e\xdd\x9f\x36\x40\xab\x0e\xe5\x84\x1a\xe6\x02\x8c\xd8\xb4\x84\xf2\x2b\xfe\x73\xe9\x07\x0f\x86\xe2\xf0\x25\xa2\xd7\xb6\xed\x82\x68\x66\x77\xb3\xd0\xb6\xb8\x83\xe9\x96\xec\xb0\x25\x6d\xa6\xa8\x79\xf5\x69\xa0\xc4\xa1\x3a\x3a\xd0\xc4\x9f\x96\x2d\x40\x67\xd8\x54\x7e\x76\xd3\xcb\x48\x64\xc0\x54\x3c\x28\x6c\x0a\x3a\xd7\xc4\x1a\x33\xd4\x1f\xee\xe8\xe4\x10\x55\xbb\x6a\x62\xa1\x9f\xf1\x51\xb3\x69\x68\x13\x11\x7a\x6b\x86\x36\x85\xeb\x4d\xd1\xa4\x34\xa7\x30\x34\xfa\x0f\xe4\x88\x2c\x52\xec\x01\xfa\x95\xa9\xde\xa1\x8f\xfc\xd0\x04\x50\xdf\xcd\x79\x83\xd9\x36\xd8\xb2\x11\x0e\xbf\xb6\x4d\x27\x08\x05\xe3\xa6\x1d\x85\xfe\x9c\xd9\x5c\xd1\xc7\x9a\x50\x41\x23\xaa\x5a\x2b\xe0\x38\xa5\x3d\xf1\x3b\xec\x3b\x3e\x1a\x40\x54\xdc\x80\xbe\x2c\xae\x65\xe0\x39\xa5\xbd\xb2\x05\xed\x96\xc2\xac\x2c\x71\xd7\xc2\x34\x61\x75\x5a\x1d\x7f\x3a\x2e\xe2\x51\xd6\xb7\xef\x91\x5a\x12\xeb\x23\xee\xfd\xa4\xd9\xde\xfe\x5a\xa3\x3b\xf9\xe0\x3b\x7b\xe6\x68\x5f\x9a\x0b\x62\xe4\xc5\x77\xaf\x9e\x3b\xd9\x84\xab\x4d\x03\x5a\xbd\x2d\xae\x2a\xe2\xf7\x67\x4f\x79\x3f\x5e\x2e\x76\x4d\xdb\x61\xd3\x77\xfc\x31\x7e\xf3\x6d\xbd\xbc\xfd\xeb\xd6\xb6\x8c\xdd\x1d\x43\x61\x7d\x1c\x91\x56\x96\x73\x88\x74\xa3\x1a\xf6\xc9\xed\xcf\x34\x45\xe2\xb5\xcd\x01\xcd\xb0\x7a\x6b\x8b\x2b\xf3\xae\x52\x22\x42\x44\x02\x2b\xce\x33\x68\x69\x2e\xad\x6b\x74\x08\x97\x5d\xb7\x4b\xc7\xf0\xf4\xfc\xfc\x34\xf9\xba\x77\x14\x34\x0f\x0c\xc4\x14\x86\xb7\x93\x6c\x8d\xaa\xa5\x41\x78\x64\xcd\x64\x7b\xf5\xed\x66\x4e\x48\x98\xda\x79\x54\x34\x81\x31\xc6\x19\x9f\xea\x14\x61\x18\xd7\x27\xf8\x8f\xa3\xf5\xe8\xcc\x76\x79\xfb\x0b\xa8\x00\x0b\x00\x7c\x2a\x9a\x1d\x18\xf5\xde\x63\x71\xb2\x5b\xa1\xb8\x72\x2a\x34\xec\x23\x82\x84\x97\x44\x7e\xf4\x92\x85\xdb\x12\x3e\x02\xb5\x2b\xce\x5e\x00\x49\xfc\xf1\xa2\x6d\xb6\xf3\x27\xf6\xff\x4a\x7e\xc6\x2d\x67\xeb\x92\x88\x92\xb6\xc5\xdd\xca\xe6\x23\x51\x00\x25\x34\x55\x4b\x12\xc4\xaa\xba\x08\x18\x7c\xf5\xcd\x51\xf1\xff\x7e\xfe\xd9\x67\xb3\xe2\xa4\x20\xb9\x60\x6b\x3a\xdd\xaf\xb4\xda\x24\x02\x6a\x23\x44\xd0\x8b\x0f\x71\x9e\x3f\x2c\xbe\xe4\x2f\xff\xd9\xbe\x35\x24\xa8\xd9\x19\xd1\xc6\xaf\x66\x10\x0b\x88\x01\xb7\x7a\x38\x1e\x49\xc7\x38\x95\x5b\x4b\x3d\x43\x10\x52\x80\x9c\x4c\x0f\x60\xbc\xf0\xb8\x60\x4e\xdd\x6e\xe7\x4f\xcd\xb2\x22\x9a\x46\xbb\xe8\x48\xbe\xe8\xa0\x59\x62\x61\xf9\xb2\x91\x96\x17\x75\xd3\x55\x17\x37\x49\x85\x97\xf8\x10\x66\x49\x15\x8e\x9a\xb6\xb5\x38\x39\xd8\xc6\x16\xb2\x01\x61\x7d\x65\xf7\xf3\xa6\x33\xbf\xdd\x6d\x71\xd2\x53\x4f\x2e\x2c\x14\x2d\x69\x73\x71\xb1\x21\xb9\x46\x88\xfb\xa1\xec\x74\xa6\xf1\x27\x52\x90\x43\xd0\xce\xde\x91\x9c\xfc\x44\x0e\x05\xa8\xdd\xd1\x93\x97\xc4\x67\xc0\x63\x68\xbb\x6d\x51\x91\x7a\x24\x39\xa6\x14\x86\x7b\x50\x74\x91\x62\xf1\xe9\x71\x9e\x3a\x95\x95\xdb\x35\x75\x85\x79\xbe\x63\x1a\xbe\x69\x56\x66\xb3\x05\x06\xc1\x6c\x49\xa2\x20\xd1\x60\x41\x02\xdf\x95\x21\x3c\xf8\x3e\x69\x78\x61\x9b\x7d\xab\x65\x63\x68\x3f\x4e\xf9\x1c\x00\x0b\x3a\xe4\xc5\xaa\xa7\x13\x43\xca\x0e\xc9\x55\x44\xc5\x0e\x0a\x12\x2d\x0a\x29\x76\xc4\x60\x6c\xd1\x93\x32\x62\x4a\x12\xa2\x96\x37\xe0\xa3\xf4\x95\x50\x57\xda\x0b\xd3\x6f\xba\x64\x60\xad\xea\x05\x2c\xe4\xc6\xc1\xb1\xce\xd4\x86\x35\x9d\x82\xce\x91\xc8\x94\x25\xab\x05\x0c\x7a\x92\x7b\x20\x54\x88\x29\x57\xc3\xb8\x01\x74\x2a\x7f\x12\x55\x71\x8e\x68\x24\x34\x08\x51\x73\xdc\x4c\xc5\x1c\x92\xe2\x55\x5b\x5a\x5c\x55\xa4\x65\xbc\x62\x31\xc7\xf2\x20\xa9\xa9\xb0\xa9\xb8\x0b\x43\xc4\x82\x58\xd6\x26\x70\x2b\xac\xa3\x28\x33\x6e\xba\x3d\x9d\xc7\x99\x8e\xcb\x0f\xd9\xc5\xe6\xb1\xaa\x60\xc6\x44\x88\xa8\x57\xda\x09\x24\xaa\xd1\xff\x7d\xb3\x07\xe8\x92\x36\x39\xd5\x76\x61\x7a\x02\x6f\x59\xe9\xc3\x71\x75\x10\x52\x54\x2d\x9b\x79\x89\x5c\xe5\x61\x11\xe1\x44\xd3\x11\xce\x4f\x9b\xac\x0a\xd8\x08\x8a\x1f\xe6\x92\x23\xcd\xac\x49\xe1\x3c\x20\x5e\x8d\x9e\x0c\x84\x21\x54\x66\x79\x31\xd1\xb1\x3e\x7a\xf6\x64\xfe\xe9\xc7\xbc\x3a\x44\x4f\x68\x42\x32\x44\x3a\xd9\x44\xad\x95\x07\x0e\x9b\x0e\x63\xdc\x73\x1e\x55\x17\x40\xbd\xa1\x1e\xc1\xd5\x12\x89\xc3\x26\x5c\xd9\x6b\x22\xb9\x70\xa8\xf4\x25\x7e\xf7\xe4\x05\xa7\x84\x21\xa4\x5e\xae\xed\xa9\x40\xbd\x58\x13\x47\xf6\x52\x75\xab\xfc\x99\x96\xa2\x5b\x90\xca\xb7\xb8\x00\x9d\x23\x75\xc2\x6c\x88\xbc\x11\xa3\xef\x44\xa0\x82\xf8\xb8\x05\xaf\x2c\x1e\x12\xd4\xc3\x2f\x8a\x07\x57\x5e\xf8\xfb\x1c\xc4\x6b\x41\x47\xa9\xda\x60\xcf\x43\x57\xc1\xba\x43\x39\x96\xd5\x71\xbd\x70\x40\x15\xd6\x0e\xc0\x10\x45\x62\xa5\xff\xde\xfe\x0b\x89\x4b\x44\x47\xaf\x6b\x1c\x3f\xe0\xc9\xd7\x5d\x56\x35\x90\x40\xc5\x17\x6c\x56\x00\xa5\x79\x40\x9b\xe7\xe5\xed\x7f\x3f\x49\xe1\xd6\xcd\xb2\xaf\x36\xe5\x0c\x13\xbc\xa2\x8d\x5c\x42\xc8\xd7\x9d\x92\xad\xc3\x9f\xa7\x64\x51\x1e\xa1\x08\x03\x2b\x50\xd8\xce\xc8\xdc\x7c\x5b\x51\x6a\x3b\x9c\x16\x76\x6e\x7f\x21\x1d\xe4\xea\xf6\x67\x02\xd6\xaa\x41\x92\x02\x5e\x68\x03\xad\x2e\x33\x61\xca\x08\xc3\x97\x01\x71\xf7\xd4\x44\xb2\xfb\x4c\xd7\xc3\xb0\xf1\xc0\x15\x8f\xbe\xa2\xff\x12\x9a\xcd\x95\x15\x96\xb2\x1e\x2d\x0f\x64\x3d\x90\x9f\x4c\x39\xfc\x73\x93\xcf\x21\x3b\x3c\x23\x94\xec\x3d\x2c\x82\x95\xc1\xe4\xfc\x26\x72\xfd\x0a\x07\x61\xfe\xd8\x6e\x1f\x5d\x55\xb4\x31\x3e\x28\x8e\xa9\x64\xdb\xb0\x9e\xca\x0c\xd1\x31\xfd\xba\xe2\x63\x4a\x07\xb6\xd9\x5c\x92\x10\x26\x02\x21\x49\x5c\xd5\x55\x45\x9b\xe2\x11\x9d\x73\x9c\x2c\x30\xd3\x55\x5f\x61\x4d\x58\x38\xf9\x1e\x86\x25\x52\x02\x7b\x11\xb6\x9b\x4d\x09\x99\x6a\x70\x3c\x40\x27\x86\xa6\x0c\x0f\xab\xe7\xc0\x5d\x57\x84\xff\x45\x30\x48\x2d\x78\x70\x6f\xbb\xf9\x79\x4b\x6c\x87\xf9\x32\x7e\xf2\xce\x88\xb6\xaa\xa3\x60\xab\xda\xde\xf0\x0e\x70\xf3\x17\xb6\x77\x99\x94\xee\x70\x0c\x37\xb4\xe5\x9b\x96\x99\xa2\xc2\x65\x20\xd4\x50\x00\x40\x05\x6a\x8d\x54\x03\x6a\x8c\x64\x67\x22\x88\x43\xb3\x03\x15\x8b\x9d\x44\xbb\x53\x6b\x09\x95\x30\xdd\x65\x5b\xdb\x6b\xfa\x8b\x77\x85\xd7\xdc\x67\xb4\xb4\x6c\x2c\x90\xfe\x9f\xd5\x05\x7e\x15\x41\x21\xaf\xc4\x52\xf0\xbd\x5a\xdd\x7e\x50\x5d\x7d\x3e\x98\x0b\x41\x10\xbd\x83\x7e\x1f\xed\x53\x0b\x35\x71\x88\x9d\xaa\x60\x73\x8a\x5a\x34\x82\xa8\x73\x69\x77\x90\x8b\xb6\x6e\x3d\xff\x03\xed\x96\x8e\x0e\x69\xa0\xbf\x5f\x17\xb0\xd6\x59\xa1\xba\x1f\x04\x53\xde\x7b\xd6\xfd\x03\xf5\x6c\xb1\x3f\x7c\xf5\x9c\xa9\x8a\xbd\x8c\x14\x47\x70\xd4\x55\x4f\x02\x24\xe8\xfa\x15\x4b\x1c\xc2\x50\x1d\xef\x60\x66\x69\x4e\xe5\x2a\x3a\xf1\xb3\x22\x28\xcc\xcc\x6e\x20\x67\x4a\x97\x5d\xa3\x9a\x72\x7e\x0c\x68\x67\xc0\xfc\x37\x92\x01\x30\x72\x90\xd7\xd8\xbd\x9e\xc2\x54\xcc\x0b\xcc\x1d\x34\x4f\x64\xd1\x8b\xa6\x4a\x47\x64\x98\x6d\x6f\xed\x76\x89\x06\xed\xfc\x39\xfd\x05\x1e\x48\x95\x5f\x54\xdb\xfb\xf7\x48\xa8\x5d\x13\x1d\x09\xa4\xfe\xd8\xd1\xa9\x22\x3d\xdd\x78\x52\x0f\x00\x3b\x02\xa0\xa3\x46\xba\x28\x20\xbe\x0e\x86\x4e\x22\x48\xd7\xf3\x53\xe5\x95\x90\x36\x22\xb2\xd5\x04\x1a\xf1\x3d\x0b\x5c\x46\x84\x17\x96\x52\xa9\xbd\xce\x63\xfd\xbb\x2d\xa3\xbb\xb0\x2a\x2d\xdb\xc1\xe4\x31\x4d\x5b\x93\x26\x52\xaa\xa4\xf1\xe5\xf2\xab\x07\xee\xcb\x4f\x96\x5f\x25\x0c\xe0\x00\x54\x9c\xe4\x5c\x16\x74\x88\x6f\xac\x4c\xf5\x96\x87\x66\xd5\xcc\x5b\x43\x6e\x68\x6f\xff\xf5\x6d\xb5\xa5\xbf\x1e\x94\xc5\x25\x8d\xcd\xeb\x87\x0d\x24\x78\x70\x27\x68\x77\x1e\xd3\xb3\x60\x42\xf6\xec\x8f\x17\x19\x2b\x0b\x30\xab\xf4\xc2\xac\xf8\xd0\xf2\xc9\xf1\xdb\x5c\xe5\x60\x30\xb0\xb0\xcd\x79\xca\x9b\x6a\x5b\x75\xe3\xed\xe6\x49\x1b\xc8\x24\x4f\x15\xfc\x11\x3a\x47\x40\x09\x4b\x7a\x82\x0f\x0c\x60\xdb\xd3\x8a\x17\x17\x90\xaa\x6e\xff\x02\xd3\x63\xb2\x19\x69\xfb\xac\x7b\xa2\x50\xb6\xf8\xbc\xa0\xed\x47\xb2\x07\x04\x3a\x22\x13\x8b\xbe\x56\xcc\xda\x52\x76\xdc\x49\xc5\x8c\x50\xba\x87\x1c\xd8\x57\xdc\x6d\xa6\x3c\xc9\x18\x6a\xe9\x5a\x16\x86\x46\xf7\x51\x58\x85\x8f\x67\xb4\x81\xb4\x0d\x86\xa2\x7d\x61\x97\x84\xa1\x6c\x02\xf9\x9a\x12\xbd\xf5\xa2\x56\x6b\x79\xc6\xac\x63\x61\x1f\x1c\x90\xf6\xc9\xcb\x48\xb2\xd5\xb2\xe1\x63\x67\x96\xb4\x9a\x6c\x76\x00\x16\x75\xec\x47\x02\x05\x9b\x88\xac\x62\x68\x28\xae\x4e\x8e\x39\xaf\x7f\xb2\x94\x21\xc6\xfd\xce\xd2\x2e\xef\xec\xfe\x19\x13\x47\x55\x50\x9a\xf3\xed\x3f\x17\x35\x1d\x84\xb0\xdb\xb1\x43\x30\x1e\x0c\xab\xdb\x33\xaa\x8f\x5a\xfb\xf1\xe4\xb8\x5a\x4b\x3a\x01\x51\x87\xc0\x3c\x9d\x37\x9d\xbb\xf4\x10\xbe\x52\x30\xd9\x4d\x7a\x52\x3d\x3f\x66\xa3\x67\xdc\x46\xe8\x60\x25\x26\xd0\x31\xca\x89\x6c\x93\x6c\xda\x03\xf5\x7e\x66\xc2\x8f\x3d\x62\x63\xa7\xc1\x26\x35\x46\xb1\x1f\x0c\xce\x98\x0e\x38\xd4\xea\x9a\x66\xe1\x2e\x61\xd0\x38\xe1\x23\x05\x71\x98\xcd\x84\x0a\x9a\x18\xd7\xa0\x53\x53\x21\x6d\x59\x74\xf0\xff\x09\xa7\x26\xed\xcf\xc0\x5e\x7b\x63\xdd\xfc\x0c\x14\xab\x6e\xe6\x2f\xc5\xd6\xde\x94\x50\x6a\x0f\x37\x44\x2b\xd5\x8a\x0c\x15\x9d\x60\xbf\xa3\x96\x5e\xa6\x12\x6f\x1f\x24\x5e\xf0\xa5\x97\xa9\xf9\xad\xcd\x4c\x63\xc7\x7a\xa6\x47\x0b\x7f\xff\xde\xe9\x40\x4a\x7e\x65\xb3\xcb\x8c\x22\x4c\xfd\xec\xec\xe9\x39\x4b\xe9\x2f\xd5\x66\xb7\xba\x24\x11\x4b\xac\x49\x4f\xbb\x6e\xe7\xbe\x53\x13\x0c\xcc\x27\x67\x68\xf8\x06\xc2\xa9\xff\x2a\xf6\xd3\x35\x35\x74\x6e\xcd\x36\x19\x2b\x49\x76\x84\xf3\x1d\x89\x0d\x87\xc4\x4a\xb3\xf9\x41\x97\x68\xe3\x2d\x04\xab\x00\xc7\x89\x74\x3e\x71\xbf\x10\xb5\x2f\xcb\x77\x27\x3f\x8e\xac\x9c\x6c\xaf\x9a\xfd\x48\xc4\x6c\xb3\xbb\x34\x2c\xe4\x04\x58\xd8\x40\xf8\x6a\x2f\xb5\xf5\x9a\xcd\x85\xa9\xfb\xed\xed\x2f\x6d\xb5\x82\x76\xde\x17\x97\xb7\xbf\x5e\xd8\xba\xf8\xe8\xd1\xc7\xac\x74\xf5\xcb\x0d\x44\x13\x10\x8a\xc5\xc7\x83\x96\x4b\x3a\x7f\xff\x9b\x5b\x77\xd5\x3b\x9b\xb5\xc9\x56\xc6\x07\x0e\x65\x2c\xb2\x8e\xca\x59\x7c\x23\xe5\xd7\x6e\x1a\xde\x89\x0e\x72\x72\x1c\x03\x57\x34\x6f\xf7\x57\x24\xea\xb4\xbd\xfd\x99\xb8\x49\x33\xae\x28\x64\x26\x43\x36\x9d\xb6\x3d\x84\xd5\x1f\x42\xaa\x07\xab\x9c\xd6\x8a\x95\xc4\x28\xa7\xa2\x33\x43\xd5\x6f\x88\xfd\xd6\x0a\x79\xdc\xb2\xc2\x4f\x52\x71\x7d\x49\x04\xb5\x6c\xbe\x08\x77\x6d\xc4\xb9\x58\x13\x59\xf1\x81\x94\x6f\x9e\x8e\xd3\x67\x58\x4f\x4a\xdb\xcf\x92\x13\x1c\xf5\x0c\xb1\x4a\x45\x1a\xd2\xa6\x47\x98\xb5\x25\x62\x9e\xb0\xdb\xb0\xb5\x20\xde\x10\x2e\x96\x44\x85\x17\x9d\x79\x63\xeb\xd1\x91\x2c\x7e\x22\xf6\x06\x6e\x0e\x6d\x58\xc9\x0e\xe9\x44\xd3\xd5\x06\xca\xd1\xa8\x2a\xc9\x2a\x7b\x6a\x0e\xad\xe6\xa3\xaa\x1d\x1d\xb6\xbd\x75\xe5\xe0\x8d\x2b\xc9\x9a\x72\x05\x9a\x6b\x39\x45\x38\x42\xa5\xde\x49\x9d\x6a\xb3\xb1\x6b\xd8\x45\x7d\x87\xb4\x0e\x75\xde\x0f\x76\x13\xec\xa9\xc9\xee\xaf\x50\xa9\x72\xb3\x04\xa9\x61\x81\xe2\x8a\xa6\xaa\x8b\x2c\x8d\x96\x09\xbb\x87\xda\x44\x3f\x50\x23\x51\x3f\x79\x0c\x51\x6a\x5d\xd9\xb6\x13\x99\x09\xd2\x1a\x28\x71\x55\x83\xae\x82\x4b\xe8\x40\x07\xcb\xa0\x9a\xad\x37\xb2\x8d\x7a\xa1\x7d\x09\x75\x35\xeb\x26\x13\xcd\x6c\xd2\x32\x89\x41\xc4\x23\x6c\xa7\xf7\xd1\x89\xea\xdc\x4c\xb5\x1d\x58\xe2\xbe\x96\x3d\x9b\x89\xca\x22\xd3\x6b\x9a\x4d\xa6\x96\xfb\x4b\x72\x6c\x76\xfb\x96\xc8\x64\xae\x54\x97\xaa\x4b\x73\x11\x26\xb9\x21\x79\x16\xda\x96\x4c\x2e\x05\x36\x4c\xb8\x70\x77\x02\xfb\xa8\x68\xdf\xb7\x7f\xdd\x74\x20\x0a\x90\xc3\xe9\x64\xd6\x61\xa5\xc5\xac\x19\x27\x4c\xfa\xc3\x13\xd0\x13\x70\x0c\x16\x7e\x9a\x9e\xc5\xfb\x14\x86\x8f\x96\x9f\x3f\xae\x27\xde\xd8\x9b\x54\x4b\x51\x99\xcc\xd9\x75\x5f\x41\x61\x16\x74\xac\x58\x8f\x67\x29\xd8\xb3\xa3\x2f\x58\xd3\x23\x1d\x18\x5a\x07\x43\xdd\x84\xf6\xf8\x06\x33\x72\x84\xd8\x46\xd6\xc2\x41\xb1\x65\xe3\x9b\xeb\xb7\xdc\x15\x90\x1c\x44\x08\xb3\x47\x12\xf7\xf5\x77\xb0\x74\x45\xdb\x2c\xf4\x43\x6f\x80\x38\x1c\x1a\x13\x2f\x0c\x69\xaa\xbd\xd8\x08\x88\xb0\x77\x74\x88\x80\x79\xb9\xe4\x87\x0c\x24\x46\x06\x52\xb1\xe9\x14\x41\xd3\x53\x8c\xd1\xca\x8d\xf6\xab\x17\x6d\x3b\xbd\x33\xb1\x6f\x57\x1b\x62\x84\x38\x33\xc4\x1c\x6b\x77\x61\xdb\xdb\x5f\x1f\x6d\x4c\x30\xdd\xcd\x7c\x8f\x10\x97\x71\xb5\x3f\xec\xf0\xc2\xbc\x83\x28\xd4\x8d\xe9\x8c\xef\x4b\xee\x0c\x8c\xf4\xc2\x1d\x8e\xba\xc0\x66\x1a\x4c\x0c\x26\x8f\xe1\x6d\x5f\x98\xa1\x79\x9f\x39\x72\xbf\xef\x33\xc1\x14\xa9\x72\x4d\x81\xbe\x07\xab\x20\x9d\x83\x01\x39\x23\x37\x4f\xc4\x95\xd7\x7d\xed\xa2\x99\x36\xeb\x98\x8e\xc0\xed\x5f\x1e\x6d\xa0\x2a\xd3\x87\x5d\x53\xd1\x5e\xd9\x99\xb5\x01\xa3\xbc\x0a\xf4\x82\x68\xaf\x61\x1d\x93\xef\x54\x2f\xb3\x23\xd8\x9a\xad\x58\xd3\xe8\xb0\x56\xf5\xf0\x10\x92\xc4\x87\xb1\xc2\xaa\x70\x69\xea\xb5\x5d\xa8\x55\x9f\x45\x42\x10\x15\xc8\xbe\x6a\xa4\x27\x8c\x79\x3b\x3e\x6e\x65\x42\x15\x31\xdc\x0f\x6a\x26\xf5\xea\x29\xd7\x88\x9f\x1a\x12\x1f\x9a\x1a\x66\xce\x55\x4b\x33\xed\xd9\xd0\xb4\x4d\x1c\x15\x2a\x3b\xb2\x81\xb0\x4e\x58\x75\x37\xac\x08\x56\xbc\x6a\xa7\xb7\x7f\x5d\xe2\x0e\x0e\x6a\xf6\x66\xd3\x5c\xdb\x96\x84\x5c\x9c\x5b\x12\xd1\xd8\xf7\x86\x46\x40\xd4\x6e\xfe\xc2\xb4\xb0\x7b\x7b\x30\xd8\xd9\x18\xac\x2e\xd9\xad\x01\xe4\x79\xc6\x3c\x01\x22\x7b\x7b\x45\x35\x3c\x4f\x49\x18\xed\xc3\x07\xee\xe1\x40\xda\xf6\x3c\x29\x36\xb0\x33\x1d\x61\xa0\x16\x75\x88\x87\x54\xb2\xb8\x8d\x55\x27\xe9\x9f\x14\xd5\x8a\xfd\x85\xd8\x68\xbb\x33\x25\x5f\xba\x70\xcb\xac\x0b\x34\xa3\x6e\x67\xea\xde\x21\xae\x26\xb4\x54\xde\x1d\xe5\x54\x5d\x51\x86\xd6\x67\xa5\x40\x6e\x7e\x04\x2a\xe1\xf4\x16\x96\x6d\x3b\x73\xd6\x9b\x9d\x78\x67\x55\x72\x99\x2e\x57\x98\x44\xee\xe6\xf1\x3a\xd3\xf1\x69\x72\xf3\xa1\x05\xac\xb4\xa4\xd0\x43\x37\x12\xbd\x5e\xb5\x70\xc2\xf6\xfc\xbb\xaa\xc4\x38\x77\x90\x21\x57\x8b\x7c\x88\x7e\x95\x9a\x30\x76\xb9\x21\x80\x3f\x4d\x26\xbb\xa9\xac\x0d\x4c\x71\x3b\xb8\xaa\x76\x6c\xd5\x67\x3c\xfb\x4b\x17\xb3\x61\xbf\x90\x3a\xbb\x82\x6b\xed\xc6\xf0\x8d\x28\x0e\xd8\x3f\x0b\x75\x39\x28\x6c\x04\x6f\x08\xfb\x0a\x4b\xec\xe3\xda\x2e\x8b\x0b\x0b\x75\xdf\xd0\x91\xbe\xba\xfd\xc5\x25\x86\xa4\x0b\x78\xe6\x44\x8b\xff\x91\x18\x32\x9a\xa1\xab\x19\x6e\xc6\xf8\x9e\xe9\x39\xae\xc8\xa2\xf6\xd0\xef\x4a\x58\xe8\x3c\x12\x0e\x3b\xb9\xbf\xc1\x82\xfb\x35\xcb\x41\x82\xb5\xf6\x84\x0f\x8e\xf8\x18\xb1\xcc\x63\xb4\x6e\x29\x06\x0a\x82\x03\xcd\x9f\x85\xc3\x17\x5c\xc8\x46\xb6\x57\xd1\xea\xb0\xbd\x07\xa0\x82\xfb\x89\xed\xcd\xfd\x69\x2d\x4f\x85\x18\x73\xc0\x65\x55\xf7\xa6\xfd\xba\x88\xd7\xda\x58\x95\x70\x89\x48\x7a\xc3\x1b\x97\x2c\x01\x7d\xa2\x35\x70\x7d\xd4\xe8\xb5\x0d\xbe\x79\x91\xc6\x26\xdd\x98\xac\xf0\xd2\x9c\xa6\xc4\x5b\xd7\x43\x21\x29\x47\x5c\xcc\x68\x99\xae\xe2\x55\x6d\xad\x69\x87\x4e\x03\xa6\x58\xf6\x6e\x65\xa0\x6e\xc4\xdb\xca\xd5\x65\xd3\x38\x35\xac\x4a\xc7\xc7\x6c\x15\x37\xde\x86\x52\x78\x48\x5d\x3d\x4f\xf2\xc2\xfa\xae\x06\xa6\x7b\xab\x03\x46\x0d\xb9\xbd\xf4\xe3\x63\xea\xb0\xa8\xb6\x70\x3c\x3c\x09\x0e\x34\xde\x1e\x97\xaa\x29\x0c\xb3\x9d\x41\x6d\x1f\xcc\x31\x5e\xe9\xbc\x64\xf3\x89\x27\xb8\x34\x71\x07\xc7\x01\xd9\x36\x72\x9f\x7b\xfb\xeb\x95\xdd\x1c\x24\xc4\xeb\x52\x30\x73\xfb\x33\x71\x97\xd9\x60\x46\x61\x3b\x2a\x9b\x1e\xcc\x49\xbb\xc9\xb6\xa7\x19\x6c\xcf\xb0\xeb\x02\x71\x7a\xd1\x97\xa6\xc6\x6d\x12\x53\x4e\x26\x54\xcd\xa6\x1c\x5e\xd8\x33\x2e\xc5\x43\x30\x94\xb0\x5d\xfb\x6c\x60\x15\x89\x22\xfb\xa1\xca\xa7\x3c\x96\x89\xfb\xa2\xd9\x68\x2c\x61\x7e\xbe\xaa\xc0\xeb\xde\xcf\xa7\x52\xbc\x56\x2b\x5e\xa9\x86\x57\x7f\x07\x0a\xa0\x60\x81\xa1\x11\xf2\xa4\x59\x9d\x71\x51\x8b\x71\xa9\xcf\x85\xba\x36\x2a\x4c\xf4\x6e\xb4\x19\xb4\xb7\x96\x88\x66\x34\x4d\x27\xc5\x50\x4d\xc2\x07\x35\xb0\xa3\x49\x8f\x68\x64\x42\x1a\x71\xbb\x69\x59\x0a\x26\xba\xef\x69\x20\x7d\x84\x82\x4a\xd2\x8b\x69\x6f\xe6\xa7\xbe\xa1\xf0\x49\x4d\xb3\x4f\xd4\x2c\x45\x73\x6d\x62\x77\x9e\x0d\x04\x20\x66\x06\xb8\xd3\x2c\xf9\xf0\xc8\xe7\xc3\xb2\x62\x5a\xd0\xaa\x19\x7a\xca\x22\x84\x1a\x43\xe8\x51\xd9\x22\xb3\x73\xc3\xde\xfb\x37\xd8\xb6\x33\x83\x6e\x6e\xdb\x3e\xf2\xb6\x6d\xef\xc2\x5c\x62\xa5\xa1\xbb\x4c\x99\xb8\x0f\xbc\x8d\xbb\x56\xd1\x10\xc2\x64\xb8\x7a\xce\x86\x33\x4b\x27\x13\x8e\x16\xad\xe9\x18\x31\xca\x00\xf9\x68\x29\x46\x46\x94\x3f\x6c\xa4\xc0\xe7\xe3\x56\x4a\x39\x3e\xfa\x84\x22\x12\x51\xcb\x5a\x83\xc8\x07\xbc\xaf\x58\x42\x55\x32\xb3\xa9\x9c\xdc\x31\xae\x42\x13\xc1\x44\xcb\x02\xdc\xd6\x2b\x3f\x4c\xd0\xe1\x56\x83\x63\x49\xdc\xb5\x72\xc2\x24\xa4\x5e\xd4\x12\xbd\xd1\x1a\x16\x14\x3a\xf7\xea\x1d\xa6\x84\xf9\x4b\x5c\x05\xd4\xeb\xaf\x92\xdb\x0e\x03\xff\xf2\xaf\xbf\xfc\x44\x4b\xd4\x25\x07\x7b\x19\x48\x25\x59\xcd\xe8\x5a\x9a\xe2\xb2\xb5\x17\xf3\x0f\x1f\xb8\x0f\xbf\x5a\xdb\xd6\xb4\xc9\x98\xbf\xfc\xc4\x7c\xc5\xba\x7b\xb3\xe9\x75\xd6\x19\xfc\xce\xbb\xd1\x62\x46\x90\xbb\x31\x31\xad\x37\x8b\x5b\x38\xc7\xdb\x51\x34\x3f\x2a\xce\x13\x8b\xc5\x77\xdb\xa0\x8e\xa9\x2c\xca\x6d\xd2\x62\x59\xf5\xc0\x61\xd3\xd6\xed\x5f\x4b\xb1\x99\xe8\x75\xc4\x96\x8e\x6b\x33\x8b\x0d\x32\x67\x0e\x0d\xf2\x71\x1d\x36\xcb\xb5\x59\x72\x1f\xf6\x00\x56\x4e\x6d\xf9\x76\x82\xd5\xe5\x48\x16\x1c\xdf\xf5\xd2\x97\xd9\x2f\x0f\x26\x6c\x90\x84\x1a\x82\x8e\x0d\x7b\x65\xd1\x34\xdb\x90\x19\x81\xfc\x20\x50\x03\x51\xa2\x95\x16\xf8\x69\x71\x19\x44\x24\xec\xa7\xff\x62\x6f\x8a\x27\xfa\x61\x0c\x22\x7b\x92\xcb\x6d\xd1\x5d\x56\xb2\x07\x09\xa2\xb8\x26\xbd\x4a\xec\x01\x96\xdd\x82\x20\x67\x74\xb6\x2c\x0c\x8f\x9b\x16\x9e\xa4\x6f\xb9\x55\xd5\x9b\xa2\x59\xf1\xa4\xc1\x87\xe2\xda\xd4\x5d\xd1\x35\x5e\x82\xb1\x5f\x4f\x74\x1b\x4e\xa4\xf6\x86\x9b\x5f\x2c\x6f\x21\xf3\x2a\x0b\x05\x80\x50\x78\xf3\x81\xa0\x8d\x26\x74\x18\xcf\x27\xf4\x16\x36\x67\xf0\xfa\xdd\xfe\x0f\x98\x2a\xe0\xff\xf0\x4e\x49\xb2\x65\xa3\xfb\x22\xa8\x2f\x2f\xf5\xb6\xc3\x04\x35\x06\x77\x3b\xec\xa2\xc6\xeb\xd1\x81\x15\x4b\xf4\x07\xab\x89\x26\xb5\xa7\xfe\xff\xc4\xd1\xe1\xfa\xd3\x35\x6f\x68\x0b\x26\xb0\xe7\x40\x19\x7f\x2d\x2a\xe8\x93\x34\xf2\xaa\x2e\x30\x2e\xd4\x31\x37\x2e\x25\x1d\xa2\x0d\x24\x84\x23\xd3\x0b\x8a\xc3\x70\xf2\xc3\xad\xf0\x1d\x14\x43\xea\x3a\xa9\x9b\x92\x06\x11\xbc\x37\xd5\x5a\xe9\xf2\x5d\xc4\xa1\xaf\x97\xa4\x8d\xc1\x0c\x73\x45\x7c\xa6\x67\x79\x50\xbe\x25\x1b\x54\x6c\x06\x32\x22\x7f\x51\xab\xe0\xa5\x49\x69\xa3\x6c\x8d\x05\xa3\x23\x99\xe6\x39\x7e\x33\x9b\x3d\x14\x5a\x7d\x2a\x26\x14\xef\x83\xac\xf7\xea\xa1\x9a\xe7\x5e\x5c\x4f\x71\xee\x14\xdd\xd2\x14\x76\x19\x1f\x18\xdf\x40\x49\x7b\xd7\x74\x05\xc9\xb6\xb4\x8b\x64\x19\x20\x32\xf3\x78\xa8\xc8\xb2\x7f\x45\x71\x78\xfa\x0c\x1c\x38\x74\x26\x6d\x9e\xf2\x9d\x37\x21\xae\xee\xd4\x45\x4f\x17\x34\x73\x6d\xd2\x7b\xd5\x66\x28\x62\x4b\x43\x99\x6b\xb4\x8e\x3b\x4c\x2e\x9d\xd8\x64\x99\xe0\x9a\x54\x6f\x0e\xdf\x90\xce\x41\x9b\xa5\xe7\x35\xeb\x06\xd9\xf1\x2f\x8e\x32\x6b\x27\x6f\x87\x9d\xbf\x96\xab\xa7\x1a\x51\xab\x95\x5e\x63\x17\xa9\x9b\x18\x09\x59\x98\xa7\xd8\x3c\xa2\x89\x23\xd2\x18\x19\xff\xb1\x98\x63\x38\xc4\x23\xac\x72\x24\x35\xa7\x2a\xff\xd2\x1a\x33\xd2\x79\xa2\x09\xe1\x99\xac\x35\xa6\x3e\x5e\x8c\x0e\x6b\xc7\xcd\xfc\x26\x2d\x6a\x2e\x8a\x44\xa9\xbe\x8b\x12\xa5\x73\x0a\x7b\xfc\x74\xb2\xd7\x40\x93\xa4\xe7\x01\x4d\xa2\x3e\xea\x87\x5d\x21\x8e\x06\xe8\x44\xa4\x79\x25\x89\x71\x30\xb8\x5c\xb8\xb6\x1b\x71\x2f\xd6\xde\xfd\xdd\xba\x57\xe9\x93\xcb\x75\x85\xd0\x6b\xf5\xc3\x54\x81\x2e\x05\x9a\xd6\x2a\x6c\x40\x36\x6e\x98\x1a\xeb\xc5\x8b\x06\xdd\xdb\x73\x79\x76\x09\x3b\x3d\x79\x72\xfc\xea\xf6\x9f\x22\x83\x87\xfd\x84\xb0\xce\x5a\xf8\x07\xd1\x69\x6e\x30\xb0\xe8\x3a\x87\x21\xaa\x86\x9d\xc3\xa8\x4f\x5f\x28\x4f\x22\x7b\x06\x80\x91\x88\x29\x25\xe1\xfd\x26\xb3\x29\x27\xa6\x30\xa9\x04\xb3\x3d\x06\x76\xaa\x1f\x48\x85\x61\xe3\x35\xe1\xbf\x49\xae\x5d\xc2\xf1\x9b\x88\x1a\x48\x83\x13\x00\xe6\xe4\xd2\x3a\x75\x4a\x5a\x36\x44\x57\xf8\x32\x68\x07\xcf\xd0\x1a\x36\xc1\x2d\xad\x7b\x5b\xbd\x43\x94\x5f\xe5\x12\xcc\xde\xfe\xb5\xc6\x65\x5e\x40\xea\x0c\xbe\x48\x8e\xbd\x77\x89\xd1\xbc\xd6\x3f\xc1\x63\xb4\x00\xdf\x7d\xff\x7c\x47\x2f\x57\x68\xd9\x75\xc4\x97\x6e\x47\xd4\x6b\x45\xac\xc3\xcd\x3f\xec\x2b\xdc\x4f\x17\xf0\xc2\xfa\xf0\x2b\x28\x01\x57\x44\x02\xa8\x3f\x02\xf9\x2a\x6d\x13\x41\x5f\xbe\xe1\x8f\x8e\x58\xe1\xc2\x59\xe0\xa3\x74\x65\x36\x44\xf9\xf9\xe8\x98\x8b\x0b\x52\xda\xf8\xe8\xa0\x86\xfb\x98\x6d\x67\x6f\xc4\x5c\xcb\xe1\x62\x43\xb4\x71\x31\x7b\xa5\x6b\x34\x99\x7e\x1a\x4d\x27\x58\xd9\x48\x60\x64\x7d\x57\x35\xba\x56\x9c\x68\x03\x26\xc4\xb5\x26\x9f\xf2\xb2\xba\xe8\xd5\x42\xc8\xcb\xa4\xd4\x00\xe1\x94\x21\x42\x89\x3e\x23\x58\x30\x04\x0a\x86\x2f\x7e\x00\x67\xb4\x8f\x20\x13\x58\xaf\xd0\xbb\x62\xb6\xae\xba\x6a\x5d\x37\x2d\xcc\x45\x15\x31\x79\x67\xe7\xcf\xf1\x2f\x31\xbd\xf0\x65\x5c\x1f\xca\x7c\x0c\xaa\xd9\x84\x0a\xad\x35\x25\xfb\x20\x55\xe6\xd1\xd6\xfa\xdf\x59\x7d\xc2\x6d\x21\x9f\x0b\x1f\xeb\xc8\x57\x03\x0d\xa9\xcc\x55\x37\x7f\x46\xff\xa9\xa0\xb3\x2b\x95\x8b\x81\x61\x74\x18\x50\x9d\xd6\x1a\x26\x29\xc7\x4e\xd9\xb1\x05\xf5\x3a\xe3\x65\x12\x77\xb3\x7c\x95\xd4\x13\x5b\x4d\xd0\xf3\x57\x30\x3b\xab\x75\xd3\x47\x17\xd2\x00\x68\x39\x68\x2f\xd0\x20\xe4\x0f\xd1\x79\xc4\x8b\xae\xf8\x08\x7a\xd5\xc7\xbf\x69\x8d\xcd\x96\xed\x3f\xd6\x22\x9b\x76\x3d\x93\xf0\x3e\x58\x74\xfa\xee\x32\xf5\xda\x3a\xcc\x5d\x09\x34\x52\x32\x8d\x3b\xb3\x59\xc4\x64\x0a\x90\x9d\xcc\x6c\xa6\xaa\xe2\x6f\xf3\xc3\x89\x53\x59\x2c\xe9\x70\xd1\xd1\xb4\x82\xc7\x70\x34\x7d\xbb\xbc\x64\xdc\xe1\x70\xcd\x14\x62\x86\xb8\x14\xa2\x91\x65\xd9\x82\x03\x65\x57\xb0\x47\x28\xda\x03\x29\x87\x84\x2d\x82\x11\xfb\xdb\x10\xed\x12\x02\x5c\xce\x3e\xf9\xf6\xd9\x39\x94\xb2\x7e\x1b\xa3\xc6\xd2\xc8\x27\x09\x31\x98\xc5\x6e\xfc\xdd\x1c\x7f\xcf\x63\xb2\xf8\x53\x70\x7a\x6d\x0e\xd2\x0b\x8d\xd4\x09\x87\xfa\xca\x42\xab\x84\x68\xd0\x72\x31\x25\xd1\xe3\xee\x99\x59\x42\x64\x16\x74\x0a\x2e\xe6\x03\xa1\x44\x1d\xd7\x2f\x34\x9a\x75\x48\x3c\x20\xd6\x42\x39\xa3\x6e\x49\xea\x61\x56\xb6\xbb\x59\xc0\x26\x4a\xdc\x0b\xc2\x10\x7d\xa1\x33\xfc\x86\x58\xfd\x02\x45\xfa\xd5\x3b\xf8\xdf\xfe\x4c\x67\x0b\xed\x86\xbb\x25\xf6\x3d\xe3\x66\x2a\x5b\x0a\x74\x2e\x76\xa1\x41\xac\x84\x0f\x31\x1c\x68\xd1\xaa\xae\xfb\x78\xa3\xaf\x0b\x30\x02\xf6\xb0\x21\x65\x58\xee\x8a\xe6\x1f\x2e\x96\x44\xbb\xde\x7c\x98\x28\xc7\x1c\xe1\x0d\x4d\xf8\x03\x88\xde\xd7\xec\xb1\xf0\xc4\x56\x6f\xc5\xdb\xf1\x64\x89\xb3\xc8\x01\xd7\xe2\x33\x1d\x7e\xf7\xf0\x39\x46\x48\x36\x64\x13\xb5\xae\x54\x30\x97\xf3\xe7\x6f\xc2\x4f\x8e\x0b\x06\x11\xe7\xb3\xa3\x44\xd6\x2b\x43\x19\xb1\x25\xd2\x47\xe8\xc2\x35\x8e\x9d\x7f\x0b\xcd\xff\xd5\xed\xcf\xbb\xaa\x0c\xf3\x06\xe9\x52\x5a\xb4\x11\xab\xd1\xf0\xc0\x64\x7e\xb2\x4c\xa9\x09\x27\xf0\x90\x57\xea\xe5\x4d\xba\xd9\x42\xd6\xd0\x6a\x38\x6e\xc8\x7a\x7f\x7a\x5c\x69\xc0\x6d\x07\x1b\x4c\x7a\x3c\xa5\xdf\xa3\x2d\x20\x1b\x10\x51\x08\x93\x6d\xdc\xbf\x97\xd0\x45\x92\xd4\x5b\x6b\xe7\xb7\xff\xd4\x5e\x31\x5f\xd0\x5b\x3b\x44\x95\x77\x66\xed\x18\xc6\x15\xff\x77\x71\x6e\xe0\xf9\x2f\xa5\x56\x3f\xe3\xaa\x8f\x40\xa4\x68\x1c\x1a\x8c\x90\x62\xfa\x40\xff\x2d\x5e\x69\x60\x31\x54\xd3\xa5\x85\x51\xb2\x83\x90\xde\x01\x6c\x0b\x02\xdf\x11\x22\x1d\x5f\x8c\x89\xaf\xf4\x96\x08\x21\x22\xa0\xf9\x5f\xb0\x96\x8d\x35\x24\xd0\xce\x9f\xb3\xd9\x96\x7d\xce\xe8\x33\x5f\x57\xb4\x06\xb1\xf1\xbd\xfe\xa2\xb5\xe0\xc0\xe2\xa7\xf4\x2f\xb0\x81\x7b\x1e\x2e\x60\xaf\x68\xc0\xbe\x86\xfc\x14\xe0\x59\xca\xe2\xd3\xf1\x9c\xfe\x93\x08\x5d\x6c\x36\x96\xfe\x67\xa3\xf1\xf8\x82\x61\x78\x73\xb1\x1a\x42\x5c\x40\x8f\x7c\x0c\xfb\x7e\x1b\x3f\x82\x4a\x37\xed\x9c\x89\x73\xfc\x4a\xf2\x97\x83\x09\xfe\x05\xb1\x61\x9c\x94\x58\x02\x01\x7a\xfe\xc4\x74\x26\x7e\x12\xc7\xf5\x17\xac\x1f\x93\x2c\x88\x80\x68\x5f\x44\x9b\xcc\x17\x41\x71\x4a\xbc\xbf\x91\x46\x80\x75\xa9\x5d\x88\xa9\x8e\x25\xb3\xf1\xd2\x24\x85\x35\xa4\x0b\x2a\x27\xbe\xbe\x2d\xac\x82\x64\x10\x2b\x5a\xa2\x76\xa1\x8d\x3c\xaf\xb6\x3b\xcc\x38\x29\x0f\xeb\x4c\xf4\x5f\xff\x1a\xf6\x10\x41\xd0\xcb\x16\xbb\x61\xa2\x8b\x08\x35\xd1\x0b\xe9\x05\x75\x02\x21\x3b\xaa\xa0\x41\xb5\xbc\x63\xb2\xc6\x1a\x07\x27\xd9\x21\x2c\x89\x84\x97\x12\x36\x9d\x00\x13\x83\x43\xe2\x04\x38\x08\xe2\x06\xc3\x71\x86\x8b\x89\xb1\x05\xb8\x89\xa1\xc1\xea\xe2\x8b\x99\xe5\x9b\xae\xad\x96\xfd\xed\xaf\x65\x44\xa4\xd0\x89\xf9\x19\x47\x6a\xa4\xb5\x15\xfb\x7c\xfd\x30\x85\x7e\x29\x5f\x90\x80\xb4\xb2\x83\x08\x08\x0f\xce\xb1\xf7\x59\x3f\x7e\x49\xf3\xde\x18\x85\x9d\x59\xce\x1f\x94\x8a\xb8\x58\x0d\x38\xf3\x65\x23\x44\xd1\x81\x82\xa3\xbb\x34\x7a\x3c\x1c\x64\x5a\x4a\xe2\xcf\x42\x24\xbc\x40\x72\xfd\x28\x45\xf2\x13\xdb\xde\xb0\xee\x60\xad\xf6\x16\x8f\x9a\x97\xbd\x94\x34\x3d\xaa\x1b\x56\xe6\xd0\x2f\xca\x14\xc8\xba\x22\x90\xa4\x75\x6c\x53\x59\x45\xcf\x2c\xf2\x2a\x41\xce\x9a\x2a\x98\x21\x34\x46\xc9\x66\x88\xd9\xde\x45\xfa\x39\x55\xc3\x69\xfe\x0e\x62\xde\xa4\x50\x27\x83\x75\xd0\x2b\x20\x28\x4c\xd6\x93\xe5\x2e\x17\xcb\x1b\xae\x06\xae\x23\x71\x77\xed\x1d\x95\x40\x65\x09\x59\x88\xa1\x43\xa5\x17\x30\x5b\x11\xee\xe0\xb7\x3e\x59\xc9\xb1\x5b\x70\x5b\xda\xda\x4c\x22\x03\xe5\x33\x08\xf0\xae\x13\xea\xc4\x11\x18\x93\x50\xd8\xc0\x1e\xca\x30\x79\x9b\x86\x13\x53\xa5\x58\x18\x04\x5a\x8d\x97\x12\x84\x17\x2f\xac\xa7\xab\x83\xa9\x84\xda\x6c\xd0\xfc\x5d\xd5\x89\x05\x76\x20\xba\x30\x65\x73\xe7\x2b\x8e\x4f\xbc\xbb\xbb\x50\x81\xfb\x9b\xa8\x81\xe3\xc7\x4b\x35\x97\xbf\x8a\x07\xdf\x7f\xfa\x83\x43\xa4\x69\xbc\x3c\xf8\xfe\xb3\x1f\x48\x44\x7a\xf0\xfd\xe7\x3f\x38\x88\x48\xe3\xba\x8b\x0b\xf3\xc6\xce\xe5\xf4\x6a\x03\x58\x6c\xae\x18\xa0\x77\xad\xbd\xaa\x9a\xde\x85\x9c\x3c\x88\xb2\x24\x01\x22\x25\x3c\x6f\x3b\x62\xe9\x72\xdf\xe4\x63\x32\x07\x84\x82\xcd\x1d\x53\x74\xa2\xd4\x32\xa5\x13\xb1\xd1\x7e\xbb\x50\x2c\x38\xd0\x11\xc1\x81\x38\x1c\xc5\x16\x04\x00\x2a\x4d\x37\xff\x31\xa0\x09\x38\xa8\x4a\x60\x80\xa6\xe4\xc5\xc5\xbf\x93\x5f\x5f\xf1\xec\x80\x8f\x1f\x63\x5f\x4d\xb8\x6c\x50\x4a\x10\x2f\x40\xa0\xaf\xf4\x2c\xea\x67\xd4\x4d\xb2\x8e\x7c\x83\x41\xb7\x83\x22\x1d\x94\x82\x1c\xc9\xa0\x10\x33\x7d\x91\x43\xb7\x96\x51\x23\x60\xaf\xac\x59\xb6\xd5\xa8\x30\x6f\x4b\x81\xd8\x1b\x57\x5a\x1d\x92\x6a\xbf\x6f\x8e\x46\xe5\x82\x6b\xa0\x49\x31\x8d\x0b\x9d\xdf\x89\x27\x19\x94\x36\x43\x1d\xca\xc6\xf9\xfd\xed\x88\x0c\x42\xb2\xe9\x85\xb6\x74\xc1\xe6\x6e\x36\x44\xd3\x01\x61\xa8\x02\xaa\x0d\xc7\x3f\x01\xf6\xf7\xf6\x40\x72\x2e\x52\x2e\x3d\xdb\x8a\x88\xa4\x5f\x39\x0a\x6b\x3e\x70\x8a\xf7\xdb\x94\xcd\x62\xa7\xa9\xd3\x65\x28\xf3\xc1\x4e\xa4\x0d\x90\xc6\x45\xe4\x3f\x8d\x6d\x82\xfe\x87\x20\x9c\xad\xc8\x83\x69\x95\xaa\x5e\x78\x87\x7b\x56\x1c\x58\x7b\x82\xd3\x60\x85\x5b\xe9\x96\xf3\x69\xb0\x5d\x0f\x81\xa7\x66\x56\x4c\x84\xac\x65\x57\x81\xdf\x70\x6c\xeb\xa6\xa1\xf3\x15\xe2\x95\x78\x99\xb3\xe3\x6d\xcb\xaa\x9b\x1f\x97\x55\xb6\xfc\x43\xbf\x15\x3f\x4c\x73\x35\x92\x23\x84\xf7\x76\x59\x38\xc3\x48\x98\x10\xa0\x55\xb3\x69\x90\xb1\xa4\xbd\x13\x06\x36\x51\x3a\xc1\x76\x24\x32\x0a\x40\x3c\x05\x7c\xd0\xe3\x7d\xe7\x50\x1e\x13\xf0\xa9\xe9\x49\x89\xba\x7a\x05\x5b\x7b\x56\x98\x45\x8e\x04\xc7\x90\x3d\x63\x0e\x86\x79\x6e\xcb\xbd\x1f\xb0\x9a\x6a\xd5\xf1\x32\x93\x56\x60\xdf\xea\xaa\xd6\x88\xe9\x36\x3a\x21\xc5\xb9\xb2\x53\xea\x86\xfd\x3a\x2a\x68\xa4\x10\x45\xc0\x44\x67\xc5\x1f\x7b\x0e\x91\xf1\xd7\xb2\xde\xa0\x3b\x3d\x84\x78\xef\x14\xfa\x66\xcf\x02\xf1\x3e\x1d\xdd\x83\xaa\xfa\x85\x03\x49\xfb\x89\xc8\x07\x1b\x41\x59\x85\xc1\xfe\xa2\x7e\xd5\x05\xc6\xed\x81\x94\x39\x07\xf0\x12\xee\x9e\x2d\x2b\x83\xde\x02\xe1\x62\x92\x28\x4d\x05\x00\x55\x8f\xb5\x7d\x17\x9b\x9f\x0d\xdb\x5f\x92\x22\x37\xc7\x7f\x46\x1d\xcb\xbf\xf3\x95\xf6\xe9\xcb\x95\x85\xaa\xd2\xfa\x0d\xff\x92\x8c\x3d\x97\x1e\x84\xc8\x7c\x6b\x5d\xbf\x21\x86\xf2\x12\xb6\x73\x5b\x73\x06\x39\x31\xbe\x79\x10\xa2\x40\x24\xca\xb0\xd9\x43\x3a\x3a\xbf\x84\x77\x28\x0b\x22\x5c\x26\x57\x22\x5c\x56\x2c\xed\xca\x20\x43\x12\x06\xca\xd6\xc7\x4b\x6b\xca\xc2\xeb\xbf\x9c\x04\xc2\x5e\xd9\x3a\x34\x0f\x67\xe2\x34\x87\xd6\xfc\xc7\xd0\xba\xd9\xc0\x04\x7a\x83\x9b\xd3\x9e\x2f\x69\x18\x80\x7a\xe8\xae\x71\x8b\xd2\x51\x7b\xb4\x71\xae\x1b\x35\x86\xb8\x2f\x52\x46\x4f\x64\xf0\x13\xee\xe1\x13\x70\xfb\x52\x49\xe2\xdf\xf1\x0f\x25\x8c\x8a\x45\xd1\x1c\x8e\xf8\x9f\x22\xd5\xba\x3d\x04\x9f\x7b\x59\x56\x5c\x00\xe1\x3a\x87\x76\x1f\x75\xc9\x02\x42\xe9\x75\x57\x21\xcf\x5f\x22\xee\xcc\xd3\x5f\xfe\xbb\xa8\x10\xe8\xe5\xbf\x7f\x1e\xbe\xfb\xe6\xb9\x29\xe5\xf9\xd2\x8b\x7c\xf9\xdb\x5a\xa7\xda\xff\xcf\x0f\x61\x8f\x92\xe6\xb1\xf0\x44\x95\x4f\xf1\x91\xfe\x50\x81\x33\x85\x1a\xa8\xec\xb1\x88\x2d\xca\xd8\x47\xb4\x8e\xb2\xd9\x4b\x5f\xac\xbc\x99\xf6\x08\x8f\x7d\x7e\xca\x66\x87\x42\x3e\xeb\x4d\x5c\xba\x86\xb0\x36\xda\x16\xd6\x5d\xc5\x24\x5f\x4b\xf1\x5d\x5b\x8e\x16\x12\xf7\xda\xa4\x1f\xec\x16\x2d\x38\x1f\x35\x1a\xee\xd7\x14\x7f\x83\x2b\x7f\x69\x81\x64\x56\x43\x47\x82\xaf\x20\x61\x19\x08\xd7\x1b\xd3\x4d\x09\x64\x51\xf6\x20\x51\x85\x27\x2a\xa8\xc4\x76\x44\x89\x09\xc9\x07\x4e\x44\x6a\xc1\xa6\x7a\x1e\x86\xac\xe8\x7f\x6d\x7a\xbe\x4c\xf6\x93\xe6\x9c\x24\x83\x99\x17\xcd\x04\xa6\xd2\x56\xd9\xf4\x3d\xdd\xf0\xc3\xee\xee\xa6\xfd\xa9\xec\xf8\x6c\x99\x56\x9c\x9b\x88\x0c\x75\x2e\x9c\x27\x6f\x06\xd9\xdf\xa3\x37\x54\xca\xe2\xa2\x3d\x35\xc7\xc1\x58\x06\x04\x35\x1b\x60\x89\xe8\xdb\x15\x1d\xe0\x2e\x5f\xca\xfc\x94\xf3\xb2\x0e\x4e\x5b\x6a\xd2\x8a\x26\x17\xb5\x66\x24\x45\x63\x3d\x3b\xb3\x86\xed\x53\xb6\x87\x10\xa5\xc8\xaa\x65\xc3\xf1\x1f\x69\xd7\xcd\x82\xd6\x7b\xc1\xda\xcd\x19\x07\x51\x98\x77\xe3\x11\x44\xf9\x74\xd8\x70\x90\x81\xf3\xe9\x10\x27\x5a\x82\x18\x22\x78\x94\x04\x2a\x99\x98\x46\x59\xaf\x83\x73\x83\x43\x4e\x82\xc0\x04\x67\x79\xeb\xa9\x91\x63\x02\x31\x22\xa0\x9c\xdf\xfe\xda\xf5\x9b\xbc\x64\x7c\x13\x96\x16\xfa\xc9\x9e\x62\xa2\xc5\x47\x8d\x24\xa5\xda\x7c\x3c\x98\x9a\x35\x6d\x30\xcf\x24\x05\x21\x21\x88\x36\xb3\x90\x23\x01\x1b\x31\x27\x8a\x0a\x66\x7e\x64\x8f\xc2\x7d\x51\x2b\x89\x41\xd8\xef\x44\x73\x48\x99\xcd\xba\x11\x07\xc5\x87\x86\xfe\xf7\x68\xbb\x7d\x54\x96\x0f\xa7\x66\x9f\x78\x59\x8b\x6d\x22\xb8\x36\x05\x1f\xd7\x81\x73\x43\xd6\x88\x17\x95\x02\xef\x1d\x63\x11\x20\xc9\x5a\x31\xd6\xec\x95\xa1\x73\xe2\xa3\x4d\x1a\xf6\x99\xd1\xad\x79\x00\x0f\xbb\x8a\x79\xb7\x38\x45\x68\xc0\x10\xc7\x09\xf9\xc0\xf0\xde\x8d\xd6\x72\x28\x7e\x26\x65\x2a\x98\xe9\x3a\x1b\x2f\x9f\x49\xfa\x8a\xd1\x40\xf7\xa0\xc3\x3b\x81\xef\xc7\xc5\xb4\x48\x37\x46\xc8\xb4\x34\xc7\xc6\x7a\xe9\x53\xfc\x19\xd8\xb9\xc5\x53\xc4\xe8\x61\x00\x65\x68\x42\xba\x33\x1c\x27\x05\xe5\xdf\xcb\x77\x21\x96\xdc\xbb\x93\xfc\x69\x5a\xcc\x9b\x1a\x99\xc7\x02\x9b\xb7\x82\x6c\x37\x9c\xfb\x5d\x39\x42\x7d\xc9\x4c\x32\xb6\x11\x42\x77\xa3\xa2\x24\x15\x09\xb3\x50\xf9\xa1\x07\x2a\x40\x5d\x36\xcd\x1b\x37\x7f\x8a\xff\x42\x07\xb8\xb6\xcb\xa4\x70\x5d\x75\x59\x39\xe7\x14\x4c\xca\x49\x6c\xaa\x56\xfb\xb3\x9d\x3e\xbe\xfd\x99\xca\x4d\x3a\xa8\x12\x8c\xb8\x5d\xbc\x83\x75\xef\xbf\xd1\xb1\xe5\xa4\xa3\xb6\x65\xcb\x76\x00\x0a\xf1\x0e\xc5\xc9\x85\xa6\x0f\x0e\x65\xea\x35\xbe\x3f\xc3\xaa\x2d\xbc\x73\xfc\x70\xaa\xea\x92\x8d\x4b\x14\xb9\xa4\x15\x2f\x13\x66\xcd\x52\x96\xf9\x0b\x5c\x36\xd7\x49\x90\x41\xc7\x2c\x15\xce\x54\xf1\xfa\x7a\x96\x34\xee\x2f\xd2\xe6\xe7\xfa\x07\x6d\xba\xd3\x18\xeb\x35\x01\xa9\x3e\x5d\x11\x7c\x74\xa1\xa4\x97\xc1\x1c\x4d\xd8\x27\x51\xa2\xfc\x19\xfa\x49\x1e\x66\x86\x20\xe0\x24\x4c\x0e\x77\x91\x55\x27\x1e\xde\xc3\xbc\x54\x61\x30\x9c\x17\x97\x43\x3d\x21\xac\x38\xb9\x00\xdf\x35\x7c\xf9\xcd\x89\x3a\x6b\x71\x21\x15\xad\x76\x18\x42\xba\xe5\xd4\xa2\x89\x3b\x68\x5c\xe7\x3c\x6a\x87\x2f\x97\xf3\x9b\xe0\x01\xa8\x4f\x3d\x2d\x4e\x8c\x49\xe0\x27\xb7\x30\xec\x5b\xef\x60\x31\xaa\xab\x66\xd3\xe5\x49\x33\x34\x75\x10\xb1\x5a\xfb\xce\x4c\xad\x11\xa7\xd6\xa3\x63\xb6\xf8\x74\xfe\xa8\x80\x4c\xc2\xcb\x0e\x66\xe8\x5d\xa0\xaa\x0b\xd2\xed\xaf\x0b\xc6\x0c\x0b\xf7\x44\x29\x90\x9e\xa8\x84\xbf\x3f\xa2\x5a\xee\x6c\xf6\xb3\xb4\x59\x8e\xea\x6c\xaf\xf6\x37\x5d\x17\x69\x96\x64\xd6\x42\x08\xe6\xa6\xe9\x1f\x22\x1c\xae\x56\x97\x16\x2b\x35\xdc\x64\xc7\x20\x62\xaa\xf0\xab\xb8\xc3\x31\xb7\x45\x88\x3c\x4b\x45\x3f\x75\x09\x83\x87\x93\xb8\x6b\x05\xc1\xeb\x8b\xf1\xaa\xa4\x98\xe2\x83\x12\xa5\x34\xef\x0f\x74\x74\xf8\xf2\xe5\xc9\x79\xf4\xb1\x82\x0b\x22\x29\xbe\xf5\xc4\x7e\xc8\x30\x34\x68\x8e\x91\x15\x2e\xe6\x36\x37\xea\x0b\xcb\x53\x27\xc6\xdb\xde\x88\xf2\xe6\x05\xe0\x78\x0a\x0f\x10\x2f\xbd\xe9\x4b\x94\x22\xe5\x29\x78\xf5\x81\xd8\xa0\xdc\x41\xe1\x4d\x90\x8c\xd7\xd4\x63\x2e\x92\xc7\x26\xc7\xea\x60\xa8\x7c\x4d\x8f\xe9\x3f\x1b\xf5\x5c\xb0\xf8\x0b\x9f\xe5\x83\xe8\x5d\x24\x13\x59\x8a\x6e\xb9\x45\x20\x76\x69\x77\xf0\xb8\xaf\x3b\xa2\x2c\x1d\x3b\xa0\x09\x1f\xf8\xad\x4e\x3f\xdb\xdf\x29\x5c\xa2\xe0\x2c\x36\xee\xd5\x7b\xeb\x99\x8e\x31\x87\x13\x5d\x74\xd5\xd4\xe1\xcc\x3b\xfb\x5c\x3a\x4b\xfd\x06\xdf\x58\xbb\x4b\x7a\xc8\x07\x7f\x50\xec\x64\xa7\x29\xe5\x8c\x2e\x60\x13\x4b\xc4\x1a\x14\x23\x8a\x04\x8d\x96\xf5\x84\x7d\x04\x3d\x5a\x40\xb0\x39\x62\x46\xd1\x8c\xf2\xd0\x80\xcc\x36\x89\x04\x72\x83\x78\x85\xf1\x09\x11\xeb\x20\x8b\xe8\xe2\x39\x17\x40\xb6\xe6\x0d\x89\xdf\x9e\x7a\x7f\x63\xde\xd1\x24\xcf\x07\x5e\x11\xe3\xf6\xc4\x67\x15\x41\xcf\x70\xfd\x1a\x87\xd7\x73\xc6\x01\x4f\xda\x47\xf1\x14\x09\x8f\x4e\x1d\x10\xa7\x1d\x0f\x03\x30\xbc\xc0\xd3\x5d\x9b\x84\x0b\x10\x79\xe4\xb9\x79\x2e\xcf\x86\xd1\xbd\x15\x13\x31\x8c\xa9\xfc\x2a\xd6\x1a\xc4\x81\xa4\x63\x95\x9d\xb5\xaf\xa1\x61\x1b\x3e\x96\x3e\x5b\x6a\x04\xeb\x57\x1c\x8e\xbd\x90\xec\x56\x69\x0c\xbe\x78\xd0\x68\xb4\xfd\x28\xf7\x03\xe7\x11\xca\xbc\xae\xf2\x68\x15\xce\xb2\x94\x0c\x62\x36\x98\x3f\x09\x36\x10\x65\x12\x9c\xfd\xbd\x7c\x19\xca\x42\xc2\x88\x52\x81\x08\x2c\x57\x81\x9d\x7a\x6f\xd9\xf8\x44\x02\x89\x84\x6f\xe1\xeb\x25\xe9\x4c\xed\x36\x04\x42\x95\x22\x33\xe2\x22\x6d\xc5\x6a\x1f\x9b\x92\xf0\xaf\xe1\xdb\x89\x15\xc3\xb2\x6f\x36\x8c\x84\x0c\x18\x4b\x12\xf0\x98\xdf\xb6\x84\x5f\xa6\xe4\x20\xb2\xb0\xd1\x41\x06\xc8\xed\x73\xa7\x27\x67\xe7\x6a\x5a\x86\x85\x0c\x00\x38\x1e\x9c\x41\x39\x32\x55\x3a\x3f\x35\xf5\xd2\xce\x8a\x33\x53\x2d\x0d\x09\xc6\x6c\x1e\xd3\xb8\x97\x3b\x1d\x76\x0a\xf6\x8d\xa1\x25\xf0\x18\xd1\x30\x96\x80\x44\x45\x74\x34\xc1\xaa\x83\xf3\x18\xdd\x43\xc8\xb1\x3f\xb4\x42\x64\x1e\xd0\xb0\x2e\xa5\xdc\x8c\xe9\xfa\x06\x11\x59\x1b\x08\xe6\x37\x85\xfa\x86\xdc\x19\x90\xb1\x77\x08\x7e\x43\xeb\x68\x7f\x33\x32\x63\xd8\xd2\xcc\x9b\x0c\x82\x9d\x60\x02\x82\x7d\x0b\xd4\xc9\xc0\xa5\x8f\x01\x04\x18\xd1\xe6\x48\xba\x35\x4b\xc4\x2a\x48\xc6\xbf\x11\xd4\x4e\x92\x10\xcd\x35\x19\xd1\x04\xc4\xb2\x29\x6f\xe6\xe7\xc8\x66\x38\x21\xd5\x67\x3b\x5d\xd3\x85\xb3\x1c\x49\x34\xab\x93\x9b\x63\xc4\x80\x20\x10\x6d\x87\x03\x4a\x00\x31\xc3\x18\xcc\xe9\x6c\xc3\x8f\x8e\xa7\x08\xf1\xe4\xc6\x34\xbb\x27\xe7\xd2\xf4\x41\x1b\x92\xf9\x4b\xfd\xcf\xd8\x3d\xbc\x4d\x43\x03\xb3\x08\x52\x93\xf1\x63\x1d\x2e\xdf\x1b\xf8\xe0\x44\x92\x3b\x79\x79\x7c\xe8\xa5\xa8\x64\x08\x23\x3f\x28\xd2\xe8\xa7\x92\xf3\x8e\x6f\x77\x1b\xef\xcd\x68\x76\x92\xbf\x8d\x15\x37\x75\x34\x4b\x2b\x84\x2c\xf1\x92\x87\x3b\x86\xef\x72\xe8\x13\xe3\x74\x62\x68\x99\x07\xf6\xd3\x7c\x97\x7b\x98\x51\x34\xd4\x04\xac\xf2\x42\xad\x92\x44\xf9\x0e\xe0\x12\x82\xa6\x6a\xee\x5d\x34\x41\xcc\xad\xa0\x0c\xde\xda\xaa\x4e\xa6\xf0\x9a\xd4\x75\x01\x7f\x2a\x49\xd0\xde\x5c\x8a\x0e\x15\x83\xec\x3c\x15\xaa\x6a\x79\xe8\xc5\x65\xf1\xa9\x3e\x8b\x78\xa4\x51\x2d\x47\xe1\x24\x89\xb7\x35\xab\xaa\x6c\x9c\x35\x36\x7c\x2b\x14\x44\xb2\xcb\xb5\xc5\x47\x7f\x38\x3b\x79\x79\xa0\xc3\x7c\xfb\xe8\xfa\xfa\xfa\x11\x6a\x3f\xea\xdb\x0d\x2c\xfc\xa5\x2d\x75\xdc\x07\xc8\xd4\xfd\x95\xed\x56\x5f\x7e\x42\xff\x7e\x3c\x2b\xf8\x3a\x3e\xd3\xe1\x03\x77\x08\x77\x03\x46\xef\x37\xf7\x93\xb4\x40\xdb\xbf\x85\xf3\xdf\x90\x9e\xe9\x21\x8b\x39\xd8\x43\xaa\xaf\x94\x8b\x63\x69\x73\x7f\xdb\x24\xea\x2d\x2a\xb6\x76\xd5\x5a\xf8\x93\xe0\x9f\xac\x60\x63\x56\x6f\x16\xc9\xe3\x2c\xf2\xc7\x08\xa2\xa2\xae\x78\x24\xcf\xe8\x0f\xac\xdf\x08\x22\xdc\xe8\x25\x25\xbc\x84\xb2\x51\xfe\x28\x46\x0c\x5d\xd3\xf1\x9a\x18\x65\x8e\x26\x6e\x78\xe5\x82\x5f\x8f\x1a\x64\x2f\xc5\xa6\xde\xdc\xcc\x0f\x49\xc0\x45\xa8\xaf\x36\xac\x4b\x89\x72\x5d\xb9\xd9\xa8\x32\xa7\xdb\x8b\x72\xfd\xfc\x59\x01\xcf\xe6\xa0\x54\xc4\x92\x34\xce\x60\xd0\x86\x44\xcf\xcf\x9f\xdb\x8e\xc4\x86\x42\x7e\x15\xd7\x08\x85\x92\xd6\x26\x6a\xf8\xeb\x13\xf6\x90\x9d\x2c\x14\x3c\x3d\xe6\x2b\xa0\x03\x24\xfc\xee\xcc\xba\x50\xcf\x9a\x49\x14\xb0\x77\xe6\x34\x72\xe4\x5d\x11\xa2\xab\xf8\xc5\x31\x59\x89\x50\x9c\x9e\x67\xce\x3c\xa9\xc9\x26\x47\xdf\x83\x87\x76\x3c\xe4\xf1\xa8\x06\x9c\xab\xa8\xc1\x46\x04\x5e\x36\x44\x28\x9a\x09\x39\x0e\xc4\x83\x29\x87\xe7\x75\x2f\x39\x45\xaa\x1c\x01\xda\x02\x9c\xa6\x42\x04\xec\x20\x61\xb9\x09\x89\x3d\x48\x54\x19\x95\xc2\x6e\xf9\xfb\xcc\x88\xa4\xe0\x59\x97\x4f\xe3\xbe\x4a\xfc\x6f\x26\x74\x14\xdf\x89\xb7\xe3\x4d\x77\x21\xfe\x3c\x0b\x15\x01\x90\xc6\x85\x33\x7c\xae\x0d\xf2\xf3\xb2\xab\x8f\x1b\x88\x79\xf9\x59\x9d\x20\xaf\x72\x9a\x22\x85\x8d\x72\x63\x76\xa3\x7f\x06\x30\x8e\x00\x2e\xa1\xea\x75\xd6\x3b\xd9\x7b\x1a\x2b\x79\x48\x33\x27\xfe\xc1\x89\x95\x00\x33\x0d\x8d\x1b\x94\x8d\xde\xc8\x18\x9e\x76\x52\xbe\x6a\x31\xcc\x66\x56\x32\x52\x39\x37\xcd\x4d\x96\x92\x05\xef\xc4\xf0\xd7\xc1\x44\x23\xa8\xb8\x1d\xfa\x88\xed\x60\x21\x6a\x16\x69\x6b\x42\xfb\x25\xa9\x10\x73\x5f\xdd\x24\xb8\xd9\x91\x8e\x78\xe2\x15\x82\x38\xea\xe4\xd6\xd8\x35\x17\xdd\x35\xed\xde\x4c\x3b\xcb\x6f\x00\x26\x46\x3f\xc5\x35\xc7\x43\xdc\x17\x1d\x8d\x25\xc9\xc6\xf1\xbb\xa2\xa4\xd3\xd6\xf3\x50\xe9\x3d\xad\x4f\x05\x4b\x73\x8a\xd7\x49\x0b\xd9\x9d\xa1\xd0\xa3\xb6\x7f\x3b\x24\x7a\x0a\x7b\xd3\x36\xf3\xd0\x45\x39\xdc\x0f\x13\x55\x47\x66\xf4\xbd\x43\x8c\x76\x75\xd6\x91\x9c\xf3\xf6\x58\xff\x44\xcc\xd8\xc0\xb9\xd7\x39\xe2\xce\x11\x79\x8c\x1d\x4d\x8f\x63\xbf\xaf\x44\x59\x5d\x5c\xcc\x48\xbb\xbc\x76\x08\x47\xc6\xa3\x0f\xec\x26\xfe\x4d\x23\x04\x82\x8b\xe1\x16\x40\xfb\x6d\x67\x2a\xfd\x20\x17\x8d\x73\xf9\x47\xbf\xf1\xb5\x6c\x9e\xe2\x9e\xdf\x60\x2a\x9e\x50\xa9\x1c\x8b\x98\x03\x85\x13\x00\x72\x35\x77\xd9\x5c\x2f\xf0\x17\xc7\x50\xbb\xf9\x8b\x86\xdf\x32\x60\xac\x76\xb7\xbf\x3a\x24\xed\x62\x92\x8e\x66\x7c\x1d\x40\xca\x22\x78\xde\x88\x84\x10\x41\xe8\xf6\x17\x27\x31\x1e\x8f\xa7\xed\x61\x01\xca\xf7\x47\xb4\x16\x11\xc2\xa6\xe5\x56\xf6\x46\x0a\xe0\x51\x45\xa4\xe7\xf1\xb3\x97\xfa\x8b\x5d\xeb\x39\xbb\x10\x90\x76\x28\x03\x90\x9c\xa4\x6c\x09\x9a\xed\x71\xdf\xf7\xc5\x12\x15\xc1\x7f\x8b\x21\x26\x01\x8b\x50\x65\x6b\x2e\x48\x7b\x32\x6e\xd5\xf3\x6b\x52\xfe\x3b\xc9\xed\xbe\xf2\x69\x7b\xfb\xcb\xa3\xc9\xca\x84\x2c\xac\xc5\x31\x4e\x32\x7b\x6e\xfb\x02\xbe\x48\xb3\xea\x73\xe4\x3f\x1a\x68\x59\xf3\x88\x89\x0c\x83\xec\xc5\xc0\xa4\xec\x81\xf3\x79\xd0\x4a\xde\xfe\x57\xfe\x95\xbf\xd0\x2b\x6f\xa5\x45\xfa\x6e\x19\x09\xb0\xfa\xfc\x8b\x80\x90\x0c\x91\xa7\x49\xa0\x0f\x69\x29\x8b\xa6\x4f\x24\x5f\x5a\x5e\x2b\x44\x67\xf9\xb4\x40\x5c\x37\x06\x7f\x1c\xc0\x3a\xb1\xc2\x0d\x2d\x8a\x98\x84\x70\xf9\x56\x0d\x6e\xfc\x54\xc6\x60\x85\x16\x19\xe1\xc5\x70\x5e\x0f\xe7\xe4\x45\xda\x6b\x52\x45\x16\xdb\x32\xa1\xbf\xbc\xbb\x52\x16\xf8\xc2\xb4\x6f\xf0\x58\x83\xf8\xb0\xf9\x06\xae\xdb\x8a\x53\x32\x73\xaa\xb5\x36\x5b\x47\x7e\x81\xe4\xb5\x7f\x62\xa4\x1d\x77\x9a\xba\xb7\x1f\xeb\x7d\x26\x72\xd6\x25\x6e\x9d\xb1\x12\x84\x73\x7e\xc3\x00\x59\xd7\xd6\xec\x72\x35\x9b\x4d\xed\x9b\x71\x3a\x01\xff\x5c\x04\x69\xb8\xbf\x5c\x55\x66\xb2\x92\xe2\xff\x35\x12\x7c\xd0\x78\xc5\x15\x94\x9d\xbd\x92\xbd\xc0\x2f\x3e\xc0\xc2\x2b\x56\x1a\x23\x06\x29\x7d\x87\x44\x22\x95\xd9\x73\x30\x3c\x86\x93\x0e\x10\xcb\xc4\x52\xa4\x2c\xd7\x78\x2d\xf8\xb1\x07\x39\x17\x7a\xc9\x3a\x3e\x1e\xac\x1c\xfb\x03\x22\xce\x75\xe3\x86\xfc\x2e\x5c\xa8\xaf\x92\x66\xec\xfb\x83\xe7\x5b\x55\x1f\x26\x14\x18\x98\x0f\x44\xa4\xba\x92\x15\xae\x69\xd7\x3f\x24\x49\x5b\xb3\x28\x84\xd1\xd3\x8a\x11\x6c\x10\x7e\x4c\x62\x52\x5d\xc2\x10\x9f\x65\x7b\x13\xfb\xc3\xaa\x17\x6b\x99\x44\x20\x4b\xfc\xb1\xe6\x5a\x94\x84\x36\xe1\x6d\x28\x9f\x28\x79\x68\x2c\x54\xcd\x52\xd2\x85\xc9\x4b\x33\xa3\xf4\x44\x3e\x45\xa0\xa8\x8e\x92\x9d\x48\x35\x00\xa4\x8b\x94\x90\xad\xc1\x74\x38\xa8\x4b\xe4\xd9\x32\xc8\xbd\x1c\xb0\x65\x9b\x1d\xe7\x9e\xe3\x2b\x75\xce\xf4\x89\x77\xeb\xf0\x92\x0d\x6e\x3a\xe1\xbf\x54\x95\x48\x26\x46\xbb\x98\xd4\x65\xc9\x5c\x4b\x52\x2a\x27\x14\x45\xbc\x14\xd2\x08\xaa\x4d\xd4\xcd\xc5\x06\x1a\x3e\x67\xf9\x09\xdb\xc1\x7b\x13\x31\xe2\x0c\x4d\xa6\xcf\x32\x1c\x6b\xe2\x69\xe0\x6d\xec\x51\x11\x33\xd9\xfa\xa5\xf3\xf0\x5c\x72\x47\x85\x78\x24\x20\x09\x22\x86\x55\x84\x27\xdd\x2b\xbc\xd3\xb7\x1a\x45\xa0\x12\x83\x26\x4e\x95\x57\x15\xd8\x93\xcb\xcd\x92\x8e\x7c\x8b\x4f\xc4\xcc\x8b\xc7\x91\x58\xff\xf4\x15\xbf\x56\x58\x95\x2b\x82\x54\xf2\x47\xb6\x09\x73\xd8\x35\xfc\x12\x55\xea\x10\x8b\x50\x92\xad\x55\x72\x48\x7f\xfd\x9b\x61\xbe\xf9\x1e\xfa\x8f\x8d\xf3\xcd\xfa\x9e\xfd\xed\x97\xff\x7b\xd3\x09\xa6\x26\xc2\x24\xaf\x60\xf8\xbc\x2f\xc1\xe0\xde\x0b\xf8\xa8\xfe\xed\x1f\xa8\xde\xbc\xd3\x24\xb3\x1d\x97\x9d\xae\x24\x7b\xe0\x9e\x7a\x79\x16\xc1\xe1\x99\xff\x9b\x53\x09\x6a\xee\xe1\x90\x51\x70\x2b\x12\xab\x19\xad\xcd\x1e\x54\x44\xb9\x74\xf4\x9a\xce\x20\x1d\xec\xbe\x0c\x76\xfb\x6e\xcf\x07\x54\x68\xa8\x23\x0f\xf3\x69\x30\x8b\xfb\x8d\x3a\x77\x67\xd8\x18\x4f\xfb\x6f\x4e\xb5\xb1\xe7\xca\xeb\xee\x9c\x1b\xc3\x51\x83\x94\x4d\x24\xde\xf8\x8d\xb9\x06\x02\x38\x91\x9a\xf7\xdf\x99\x8d\x63\xea\xca\x28\x5a\x08\xc2\xe5\xd1\xdf\xdb\xa5\x6e\x2b\x3e\xf8\x31\x53\x25\x9f\xfe\x80\xc0\x6e\xf2\x29\xcf\x88\x4a\xe0\xd1\x8d\xf7\xe1\xfd\x7b\xca\x30\x44\x86\x58\xcd\x63\xce\xd3\xbc\xc0\xd3\x57\x62\x21\x18\x9e\x26\xd4\x48\xa0\xe4\x3a\x19\x49\xf9\x26\x0b\x92\xfa\xa8\x3e\xea\x25\xcd\x48\xe2\xbf\xe9\xfd\xde\x0b\x66\x65\xf1\x33\x92\xd7\x59\xb3\x99\x9f\xac\xfa\x0d\x0b\xe3\xbe\x40\xb4\x47\x1f\xd0\x1d\xbf\x93\xe4\xc2\x11\x0e\x55\xf2\x4d\xb9\xab\x77\x5d\x27\x66\x2f\xf9\xc1\xfd\x63\x2b\xa3\x34\xa3\x3e\x6f\x1e\x31\x61\xce\x3e\xa9\xf2\x19\x3b\x6c\xca\x7d\xa3\x4a\xfa\x5f\x8c\x3a\xc1\xfb\x38\x91\x7d\x23\x7f\x10\x27\x3f\x06\xfb\x9e\x21\xa3\xf0\x1c\x6f\x12\x99\xf6\x91\xb3\xfe\xab\x8c\x58\xee\x16\xfc\x37\x88\x5b\x9a\x20\x6a\x7e\x18\x52\xf6\x3d\xa7\xb3\xd1\xb7\x66\x02\x28\x49\xca\x10\x18\x59\x48\x55\x64\x39\x80\x48\x82\xd0\x47\xef\xbf\xd2\x56\x36\x33\xdf\x22\x0b\xe1\xe3\x7e\x8f\xd9\x92\x6f\xa6\xa0\xc6\x1d\xfb\x8c\x35\x2b\xb3\x33\xef\x38\x35\x88\xe5\x6e\xd9\xf5\x33\xeb\xfb\x80\x9d\x0e\x19\xb5\x17\x7c\x8d\xce\x56\x4f\xc6\x2c\x9d\x2f\x17\x46\x25\x6f\x8f\x0d\x46\x35\x7a\xeb\x62\x0c\x3b\x85\x94\xc1\xd8\x62\xbf\xec\x4e\x5f\xf0\x3d\xed\x1d\xe3\xf4\xd6\x94\xf6\x11\x5b\x53\x1b\x79\x14\x33\xb9\x46\x4e\x86\xed\xb3\x07\xa4\xdd\x07\x2f\xa4\x72\x28\x2a\xc1\xd8\xbf\x8f\x81\x4b\xb9\xf8\xf3\x8c\x84\x1a\x1c\x23\x27\xc9\xc2\x05\x35\x5d\xd3\x21\x37\xd3\x80\x5a\xec\x21\x15\xf1\x46\xc6\x83\xef\x75\x03\x8b\x95\x34\x29\xc4\x90\xbe\xc8\x30\xbd\x50\x2a\x27\xd9\x0d\x25\xc5\xdf\x25\x10\x48\x05\x9f\x84\x0a\xf2\x6a\xc6\xb3\xf2\x76\x61\x20\x63\xb1\x4f\x49\x49\xa4\xaf\x2f\x82\x8f\x40\x5e\x23\x69\x78\x8a\x4d\xec\x07\xf6\xeb\x6a\xf3\x6d\xe5\xd9\xc2\x3e\x71\x22\xa0\xc4\x8e\x8e\xa9\x70\xcc\x32\x79\x20\xd9\x67\x5d\xcf\x16\x6e\x36\x35\x9a\x24\x06\x48\x45\x58\xb0\x26\x49\x3d\xa7\x7c\x2a\x97\x1b\x12\xf2\x31\xdc\x4d\xc7\x51\x8a\xe6\xc4\xa1\x36\x49\x8a\xc6\x99\x2d\x75\x0f\x28\x29\x0a\x7b\xe2\x0b\x25\x8c\xe9\xab\x9d\x77\x10\x1d\xdf\xc7\x80\xf2\x8c\x47\xd3\xbd\xd7\x68\xac\x10\xa8\x64\x34\x2f\xb2\xd1\x6c\x78\x34\x43\x22\xf3\x1e\xc3\xd2\xb7\x33\xdf\x7f\x58\x65\x14\x73\x0e\x27\x0f\xcf\xc4\xd0\x0e\xd2\x91\xd9\x48\x63\x26\xc9\xcb\x7b\x0f\x7d\x7f\x96\xfa\xf1\xde\x0e\x47\x27\x79\x83\x3f\x1e\x9f\xb4\xf2\xb8\xae\xba\xf9\xb0\x17\x68\xe0\xc6\xb1\xd9\x9a\xf4\x59\xb5\x3d\x79\x4f\xd1\x51\x62\x9a\xf4\x11\xb4\x8e\x5f\x55\x2d\x13\x52\x9b\xa6\xcf\xc9\x5e\x9b\x80\x15\xeb\x51\x93\x3f\x70\xf0\x3d\xaf\xd8\x0f\xf7\xef\x85\xe7\x1a\xe7\xf1\x4d\xc6\x55\x78\x93\x91\x5f\xe7\x0d\x2f\xa9\x48\x2a\xf9\xe0\x52\x39\xce\x29\x7f\x67\xc6\xff\xbe\xbb\x94\xf7\x13\x58\x0d\x3a\x4c\x5e\x53\xe0\xba\xe2\xb8\x3f\x10\xf2\x91\x5b\x86\x9d\xe9\x48\x9d\xa2\x69\x6d\xf9\x2e\x35\x37\x39\xe0\xed\xab\x1a\x7d\xce\x5f\xc8\xbf\xde\x78\x09\x8b\xd8\xfc\x30\xc4\x64\xa7\xc1\xd8\x6c\x5e\x0d\x33\x67\x5b\x30\xcc\x34\xb2\x63\xbd\xc5\x38\x85\x08\xee\x94\x50\x0a\x13\x3f\xfc\xa4\x8d\x1b\x8c\x8f\x0d\xd0\x3d\x8d\x96\xff\x01\xf7\xd5\x41\x61\xdc\x3a\x85\xc9\x9e\x17\xb8\x6d\xa7\x35\x1f\x3f\xdf\xcf\x39\x26\xfd\x23\x38\x48\x7e\x5c\x22\xf9\x71\xfa\xc8\x44\xfc\x98\x5b\x7d\xd2\x12\x7f\x87\xa4\xa9\x60\xb3\xb2\x01\x13\x4f\x9a\x93\xb4\x40\x7c\x9e\xd2\xef\x16\x21\xbe\x9b\xbc\x91\x89\x3e\xe5\xa8\x67\x9f\xd8\x77\x67\x34\xb6\x24\x82\x3d\xff\x9e\x26\x23\x4d\x4b\x5c\x78\x16\x22\x1f\x96\xbc\xe1\x99\x7e\x63\xbb\xdb\xa0\x3f\x42\x53\xb5\xd6\xdc\xa1\x1c\x33\x9c\x16\xa6\x3a\x46\xfa\x3d\xc6\x1b\xa4\x5f\x25\x5f\x4b\xfa\x85\x98\xae\xbd\x30\x72\xed\x9b\x0d\x4e\x4c\x52\x53\xa0\x65\xcc\x95\xa0\xef\xa4\x24\x38\xa4\x6d\xcb\xec\x6c\x62\x2f\xe6\x66\xa6\x93\xa0\x70\x4e\x03\xcb\xf3\xac\xfa\x18\xeb\x34\x48\xdb\xe3\x46\x4b\x5e\xc8\x4f\x21\x10\xf4\x53\x2f\x34\x83\x6b\xc3\x49\xd2\x24\x02\xa8\x38\xc1\xeb\x6b\x56\x63\x5d\xcc\xaa\xd9\x6d\x24\xca\xea\xae\xba\x81\x0f\x4b\xd6\x0e\xdf\x44\x92\xfe\xb5\x71\x7a\x51\x1e\x42\x38\x86\x8e\xa8\xb1\x7d\x65\xf0\x55\xcd\x77\xfa\x26\x6a\xbe\x2e\x5c\xae\x05\x5b\xa5\x6e\x28\x82\x05\xa8\x7b\xbf\x66\xd2\xe1\x4e\x36\x33\x18\xeb\xc8\x69\x76\xd4\x09\x5b\x3b\x91\xf9\xa8\xba\xb2\xd9\x28\x45\x59\x8d\x7e\x5f\x43\xee\xf5\x5b\x6d\x0d\x30\x7b\x67\x5b\xef\x8f\x61\x3c\x55\xbd\x5e\xe9\x9b\xb7\xe2\xc7\x4b\x9c\xd6\x4a\xc2\xe0\x0d\x9c\x9c\xea\xbb\x06\x9a\x56\x0f\x03\x3c\xf6\xd1\x40\x03\xda\x63\x86\x4d\x8b\xcb\xeb\xb4\x59\x27\xf6\x41\x84\xe0\xa6\x5e\x2d\xf8\xb1\x64\x77\xc9\xf7\xe9\xaf\xac\xd5\x3b\x12\xbc\x32\xab\x09\x18\x1f\xce\xa8\xf8\x13\xc9\x1f\x55\xbd\xb3\x7c\x51\xec\x1e\x16\x1f\xd1\x7a\xd7\xfa\x98\x73\x92\xfb\x5c\x5e\x72\xb3\x3f\x11\x9a\x3c\x1d\x76\x51\x04\x25\xc5\x15\x19\x2f\xef\x1a\xc4\xc4\xd6\x19\x90\x61\x5d\x85\xd6\xaa\x64\xb6\x7f\x15\x92\xd6\x13\xc7\x8f\x6c\x9e\x61\x07\x05\x97\x93\x8c\xac\x4c\xec\x81\x8f\xe0\xad\xea\x9c\x28\xf3\xea\xe8\xd2\xa4\x89\xfd\x06\x2f\x46\xac\xe2\x63\x1d\xfc\xee\xa7\x9a\x05\xf7\xa1\x21\x1d\x68\x74\x69\xde\x3f\xbe\x24\x01\xc0\xd4\x5e\xf5\x58\x1a\xed\xd5\x8c\xa3\xc2\xfa\xdc\x52\xd7\x70\xce\x9f\x9f\xc1\x99\x18\xae\xd3\xcf\xab\x35\x5b\x60\x12\xc2\xd4\xb7\xb8\x91\x5e\xac\x9b\x96\xe4\x47\x12\x7d\xe6\xdf\xfa\xbf\x1c\x87\x3a\x55\x6e\x0a\x9c\xef\x4e\x6e\x16\x3d\xe7\x1a\xfb\x4e\x24\x59\x92\x54\x31\xd0\xf0\xe4\x45\xac\xc5\x3a\xa6\xaf\x03\x43\xf6\x8a\xaf\x38\xce\x59\xf5\xcc\x6a\xa2\xa8\xcc\x64\x03\xad\xd5\x2c\x3b\x08\x66\x88\x81\x56\xd8\x93\x65\x57\xe5\xa0\xbb\x86\xf3\x71\x2e\x36\x84\xd8\x7e\xb7\xc0\xd4\xdd\xfc\xe5\xbf\xfd\x55\xfd\xe5\x10\xda\x8f\xfd\x57\x9c\xe2\x9a\xaf\x6a\xf3\x03\x3a\x18\x5d\x5e\x9b\xc7\x15\x43\xc0\xfc\x18\x26\xea\x23\xff\x47\x5e\xf7\x79\xb5\xb4\xed\x6f\x54\xf6\x68\xbd\xb4\x66\x97\x20\x95\x11\x09\xae\xf6\x94\xbe\xa7\xf0\x0c\xb7\x17\x33\x70\x39\x22\x80\x09\x0c\xa5\xf5\xaa\x72\x63\x93\x3a\x46\xeb\x90\x14\xed\xf6\xd7\x61\x27\x98\x71\x2d\xd2\x4c\xbe\x73\xcd\xbe\x5a\x7a\x41\x58\x8e\xeb\x09\x6e\x26\xc6\xd8\x2c\x7f\xb2\x2b\x62\x5e\x27\xf4\x6f\x27\x8e\xbe\x43\x1c\x2c\x9b\xa6\x83\xba\xb4\x83\xb4\xc9\xee\x8d\xc9\x5e\x3c\xad\x70\x9d\xfd\xd8\x83\x0c\x84\x4d\x82\xbe\x0b\x79\x52\x79\x8c\xbd\x2d\xf2\x90\x52\x6f\x6d\xbf\x22\x6d\x96\x18\x4d\xd6\xe5\x31\x0a\xa0\xe5\xca\x2a\x9f\x11\xec\x9d\x95\x43\xd7\x13\x15\xb5\xf3\x7c\x83\xae\xcc\xea\xd2\xbe\x6f\xf7\x47\x00\xbe\xbb\xfa\xbe\x01\x70\xd5\xa9\x11\xc8\xdb\x4e\xb8\x8b\x58\xf6\xab\x37\xb6\x43\x50\xdf\xe5\x82\x9d\x22\x62\x63\xfa\x40\x16\x57\x67\xfd\xef\x31\xc3\x16\x4f\x09\xb6\x38\x07\x6c\xc6\x16\x57\xb4\x12\xb0\x39\x74\x26\x5d\x0b\x7c\xf1\x82\xff\x91\xb6\x95\x0d\xa5\x41\xf0\xfe\x42\xb5\x0d\x3d\xb3\x90\xdd\x42\x1b\x27\xfc\xde\x84\x3f\xb7\x42\x56\xbd\xf2\x34\x5e\x59\x68\x45\xc2\x9e\x57\x37\xab\x8d\x8d\xd9\xaa\x5e\xd9\x55\xb5\xda\x20\x4b\x90\x8c\x25\xad\xc4\x0f\x24\x50\x25\x26\xb1\x4f\xac\x63\x75\xa5\xf0\x8f\x25\xbc\xb6\xef\xc6\x55\x84\x10\xfa\x3a\xa7\x86\x56\xb0\x50\x2a\xb8\x17\x74\x87\x64\x05\x77\xc3\xfa\x91\x08\xa8\x1f\x81\x54\x19\x01\x6b\xef\x42\x9f\x58\xce\x8d\x61\x50\x80\x54\x75\x57\xc2\x69\xf4\xf1\x01\xda\x92\x76\x93\xa8\xc6\xfe\xfd\x01\x7d\xb7\xb9\x09\x8f\x74\xf9\xca\x77\xbf\xe5\xaf\x30\x5e\x6e\xf7\x1f\xbc\xd0\x59\x8a\xab\x6a\x19\x5a\x9b\x4c\xcc\x24\x45\x22\x8f\xb1\x92\xed\x3f\xa9\x37\xad\x26\xa8\xf3\x5f\xb3\xbc\x40\xda\x2c\x8b\xe1\xe2\xa9\xc5\x5e\x5a\x13\xc9\x8e\x05\x92\x73\xf4\xca\x9d\x65\x56\x99\xf5\xa6\x45\xf6\x5c\x59\x56\x9f\xe9\x3f\x60\x02\x52\xf7\xbd\x92\xa6\x2f\xa4\x95\x3e\x8f\xfb\x9d\x4f\xa5\xc5\x19\x05\x24\xab\x53\x46\x86\xe0\xca\x2d\x22\x4a\x93\x1c\xf1\xfa\x38\x14\xe3\x38\x03\x66\x34\x27\x80\xfc\x6a\xe6\xc0\xdb\x6e\x6a\x11\xf8\x6e\x1a\x71\x05\x0b\xf1\xa6\xdd\xdf\x82\x5c\x95\xf0\x86\x58\xc3\x05\x9a\xce\x38\xc7\x7c\x4f\x61\x27\x31\xf5\x9e\x06\xec\x64\x13\xbc\xeb\x86\x32\x03\xfc\x8d\xd7\x41\x71\x9d\x9e\x64\xf6\x32\xff\x8e\xe7\x41\xab\x47\x9b\xcc\xb6\x94\xf6\xfb\x7f\xf4\x8d\x50\x79\xd7\x70\xc6\x41\x6f\xef\x75\x58\xa7\xbc\x68\xb2\xc3\xc8\xbf\x07\x1e\x24\xfc\x6d\x60\xab\x17\xe7\x3c\xc2\x12\x1f\xc2\xf7\x26\x15\xe3\x27\x04\xf2\x2b\x3e\xf9\x92\x8c\x47\x3e\x8c\x6e\x11\xe5\x33\x67\x6e\xb6\xce\xe7\x6e\xd6\x47\x32\xa5\x0c\x71\x07\x8e\xb9\x1b\xcc\x34\xfe\xeb\x38\xc7\xb0\x58\xe5\xf4\x48\xbf\x2f\x12\x07\x74\x42\x5a\x40\xa2\x96\x68\x09\x65\x92\xb7\x8f\xb0\x68\x85\x38\x4d\xf9\x90\x24\xfb\x94\x0f\xf2\x18\x60\x19\x9e\x0c\x2c\x43\xc9\x94\xa7\x50\x32\x91\xc4\x05\x7d\xcf\x68\x19\x2c\xb3\x9e\x4c\x82\x8d\xbc\xc4\xe5\x33\x9d\xdd\x6e\xfe\xb4\x41\x10\x9a\x7c\x40\x54\x16\x1e\x7c\xc1\xb1\x93\x2f\x6c\xed\x28\xeb\xf9\x63\xfa\xb7\x78\xf2\x32\xfb\x1c\x1e\xc3\xe3\x42\xff\x92\x7e\x98\x1b\x98\x0f\x27\xf9\x42\xb0\x4a\x71\xc6\x29\x92\x8b\xc7\x9c\xf0\x4b\x07\xdf\x71\xda\x52\xdc\xa1\x62\x06\x92\xc4\xb4\x8b\x67\x90\xaf\x69\xc7\xc0\xae\x6f\x73\x78\xd7\x2c\x69\x65\x27\x61\xe5\x1d\x37\x0f\x18\x9e\x71\x63\x28\xc9\x27\x26\xa3\x93\x6c\x62\xa1\x3e\x5f\x02\x68\x39\xf3\xac\x01\xc0\x16\x94\x76\xe1\xcc\xfc\x05\x69\x58\x65\x71\x76\xe8\x0b\xdc\xb6\xdb\x49\xf2\x7d\x1f\x39\x30\x62\x26\x67\x2f\xce\x4f\x53\xf0\xb0\x08\xa3\x92\xb8\x1a\x59\x91\xbe\x2d\xd9\x6d\x5c\xf2\x08\x25\x71\xca\x5d\xd7\xac\x5b\x73\x41\xb4\xef\xfc\xf9\x59\x68\xe7\x4d\xb5\x03\xa8\xbe\x04\x3d\x3f\xa3\xdf\x28\x87\xef\x1f\xfd\x0e\x0b\x8f\x5b\x25\xa8\x98\x2b\x9b\xf3\xc2\x33\x0d\x62\x2d\x4e\x0f\x5f\x0c\x06\xc0\x99\x94\x5a\xbb\xae\x38\x11\x63\x1c\xca\x2b\xfe\x44\xcb\x87\xa9\x6f\x6f\x7f\xee\xd8\x15\x40\xcf\x46\xb5\x73\xf3\x27\x92\xf2\x43\x1b\x8b\x4c\xbd\x18\xfb\xc5\x4c\x6f\xfa\x9c\x23\x0e\x1f\x95\x66\xb6\xab\x8c\x31\x3d\x66\xf9\x93\x4d\x83\x8e\x4c\xb6\x4c\x77\x3e\x23\x99\xb6\xb9\xe7\x2e\xf3\x8e\xc1\xe7\x29\x0c\x85\xd1\xdd\x01\xb8\x10\x42\xc0\x77\x95\x89\x8f\xfe\x7b\xd4\x89\x17\x57\xf9\xdc\xe4\xe6\x32\x18\xf9\x0e\x60\xaf\xb4\x3f\x99\xc1\x5b\x32\x82\x21\x6f\x84\x98\xbc\xd2\x00\x27\xf0\x66\x89\x50\xc1\xec\x76\x79\xb0\x63\x7c\xbf\x37\x83\xb9\x82\x7f\xa0\xba\x92\xee\x87\x0a\x21\x75\x93\x10\x23\xaa\xa6\xdf\x9b\x8b\x0b\x24\xf0\x42\x42\x48\x52\x74\xf1\x60\xd5\x89\x7c\x89\x35\x2b\xc7\x5b\x18\x66\x12\xb6\x36\xac\x21\xfd\x87\x1d\xdc\x40\xe2\x63\x46\xd7\x10\x13\x4d\xa7\xd7\xf6\xfa\x90\x76\x78\xd2\x16\x7a\x9b\x4a\xe0\x7f\x6e\x32\xb8\xd8\xfd\x1e\x18\xb0\xdc\x96\xf4\xdb\xfc\x31\x89\x57\xa6\x7a\x37\x66\xb2\x7e\x3d\x70\xcd\xb2\x5a\x48\xc2\xfb\xe9\xaa\x2c\x9f\xa9\xf3\x7d\xc1\x8e\xee\x72\x00\xb5\x05\x9a\xeb\xfb\x57\x17\xd9\x37\xf6\xbe\x02\x95\xc9\x23\xa3\xce\xf8\x5b\x32\x29\x5c\x54\xe8\x16\x1c\x61\xea\x30\x3f\xaa\xaf\x18\xd8\xc4\x65\x59\xee\xdf\x69\x8f\xfd\x7d\xd2\x13\x31\xcc\xc7\x2a\x09\xbf\x8d\x1f\x13\xd6\x16\x3f\x26\xac\x3a\x7e\xcc\x06\x99\x16\x38\xb7\x49\xd6\xf0\xec\xec\xf9\x54\x61\x78\x5d\xc8\x48\x84\x23\xa3\xef\x43\x44\x6d\xaf\x49\x8c\xf9\xf0\xe3\xb4\x4e\x8a\xec\xe1\xf7\xe9\x76\xdc\x9f\xf0\x50\xf0\xe7\x49\x33\x9e\x48\xdf\x7d\x22\x89\x60\x27\x2b\x22\x14\x3a\x7f\xb8\x54\xc2\xcf\x5b\xab\x74\x2b\x49\x71\x15\x9e\x86\x1d\x9e\x15\x4f\xe9\xd3\x93\xe2\x69\x7d\x1c\x1f\x22\x58\x04\x54\xef\x62\x88\xf3\x76\x4d\x1d\x42\x59\x1e\x37\x9d\xf6\x23\x75\xd3\x81\x4a\x22\x5d\x9f\x58\x97\xa3\x00\xc2\x30\x8f\xe5\x85\x5b\xcd\x87\x20\xf8\x79\x6d\xe3\xc9\xe4\xc9\xf1\x85\x2a\xc2\xd4\xd2\x47\xb8\xd9\x74\xd8\xb6\x36\x59\x5d\xff\x3c\x33\xdb\x53\x46\x0f\x3a\x8b\xf5\xa4\x8c\x0f\x25\x7b\x8a\x24\xc1\x96\x08\xe3\x58\x6c\xf8\xca\x43\xe2\x31\xa9\x79\x36\x12\x5e\xc5\xdb\x5f\x18\x8f\x6d\x17\x1f\xf7\x4d\xea\xbc\xb2\xa5\xbe\x60\x2b\xaf\x0b\xf3\xf0\x46\xf5\x7d\xf0\xf6\x9e\x75\xb6\x79\x9c\xa3\x56\x22\x54\xf5\xd4\x8d\xad\xd7\x10\x40\x0c\xc9\xc1\x97\xcc\x2b\xe8\xbc\x27\x87\x4c\x62\x20\xd9\x82\x40\xe4\x6f\xf0\xee\x91\x44\x45\xc6\xe5\x1c\x88\x0f\xa7\x78\x03\x51\x64\x07\x0e\x45\x60\x49\x23\x59\x81\xfd\xbc\x62\xbc\x08\x0a\x3f\x25\x1d\xe7\x10\x7e\x07\xd2\x11\x69\xb2\xdd\xf7\xf4\xf8\xf9\xc9\x10\x78\x7c\xc6\xb5\x60\x4c\x11\xb4\x60\x9a\x00\xc8\x0d\xdf\xde\x63\xc6\x97\x7d\x03\xe0\x3b\x66\x22\x3b\x6d\x3f\x6a\xc4\xd4\x97\x01\x93\xe0\xb1\x13\xf9\x93\xfe\xe5\xac\x29\x7b\x00\xa7\x5f\xb0\x9a\x82\xa4\x1f\x9c\x2a\xd5\xbe\x9d\xec\xd7\x59\x71\x79\xd9\x33\x4c\xbc\x77\xed\x5c\xca\xc1\x7c\x05\xd2\xbc\x49\x0a\x90\xe4\xda\x57\xb6\x94\x64\xd1\x43\x60\x0f\xb4\x1f\xa7\xbe\x76\x1c\x35\xed\xf1\xca\xe6\xf2\xc4\x11\x7f\x1b\x9e\x64\x1c\x36\x81\x4e\xce\xb1\x9a\x55\x07\x35\xd6\xab\x80\x31\xb1\xe1\x9d\xdb\xad\xb0\xb2\x04\x7f\x62\x47\x1b\x4c\x73\x53\x5d\xd8\x41\x95\xd7\x55\x69\xa6\x26\x7b\xd9\x75\x3b\x97\x85\xbe\xf3\xa3\x53\xc3\x99\xed\x6d\x71\x34\xcf\x5d\xc5\x26\xdf\xfd\x6b\xe3\x13\xa1\x0f\xe0\x95\x5f\xcc\x83\x1c\x8f\x79\x02\xb4\x76\x23\x0a\xbf\xd6\x57\xe7\xf9\x8c\x09\x65\x4b\x1e\xa2\x8f\xe2\xc3\xde\x6d\x9c\xca\x0a\x00\x4c\x24\xa0\x46\x0a\x83\x8f\xcb\x6c\xd5\x12\x53\x38\x57\xc7\x81\xa3\x16\x6f\x60\xfa\xa2\xe4\x08\xfb\x4f\x8e\xf6\x69\xd9\x6f\x10\x98\xdf\xd4\x50\x73\xe0\x7d\x12\xe0\xb3\xd7\x09\x5e\xdb\x77\xb1\x28\x3c\x6d\x90\xd8\x74\x63\xa9\x65\x17\x81\xc1\x65\x4f\x62\x4f\x4d\xdb\x69\xe4\x25\x4c\x7d\x4f\xdb\xe1\xbe\x24\x95\xe9\x3c\xe0\x44\x66\x52\x3f\x05\x42\x23\x08\x10\xbf\xf9\x4f\x7b\xed\xf6\xd7\x55\xd5\x4c\x8f\x25\xee\x86\xb4\x8b\xe0\x42\xe4\x5d\x74\xe4\xe7\x02\xe9\x53\x52\xaf\xa2\x97\x03\xaf\x22\x5f\x2b\x91\x93\xd2\x4f\x8b\x4f\xe7\xb9\xa8\xe9\x0b\xc7\x53\xf1\x25\xcd\x6e\x7e\xb2\x9b\xa5\x90\xac\x76\x04\xfd\xea\xaa\x12\x87\x5d\xa7\x83\x4a\x3c\x13\xc7\x0f\x87\x7f\x0f\xb6\xda\xc0\x83\x2b\x7d\xce\x2f\xcf\x23\xc8\x66\xe0\x3c\xa8\xb0\x78\xe0\x7c\x3c\x61\x1d\x92\x12\xca\xdf\x65\x9a\x58\x2c\xcb\x33\xfd\x69\xcc\x27\xdd\x35\x77\xbd\xa3\x11\xde\x2f\xa0\x46\xe1\xa5\x47\x6d\x0e\xdf\xf9\xfe\xc4\xb5\xab\x4f\x1e\xa4\x8f\x13\x68\x1e\x91\x24\x65\x77\xde\xa6\x4c\x4f\x1e\x7a\x78\x28\x0e\x44\x70\x36\x41\xca\xdf\xbc\x65\xb1\x6f\x49\xe3\xc8\xf1\xad\xed\x3f\x0c\x6d\xe4\x19\xc6\xd5\x5a\x9e\xa7\x7c\x4e\xdb\xd3\xc4\xe1\x83\xe6\x7e\x94\x69\xc6\xc7\x27\x1e\x8a\xff\x12\xbf\x54\xbe\x44\x5e\xe5\x22\x0c\xf2\xfd\x46\x37\x91\x18\xf9\x47\x4d\x5e\xfd\xfb\xc7\x16\x32\xa9\x8d\xf7\x43\x9a\x37\x0d\xfe\x97\xb2\xba\x2e\x4b\x5e\x93\x6d\x16\xbf\x57\x38\xe7\x46\x67\xd6\xf3\x6f\x68\x47\x22\xf0\xa4\x11\x1f\xcc\x5a\x62\x62\xef\x5e\xdd\x41\xb3\xe3\xf5\xd5\xfc\xf5\x9f\x85\xa4\xe3\xfc\xc4\x98\x64\xb1\xf7\x34\x92\x93\x0b\x7e\x16\xdf\x07\xa3\xfd\x8f\x3c\xd3\xb4\xfb\xcd\xba\x99\x9b\x8e\x74\x73\x3c\x68\x86\x47\xff\x10\x58\xa0\x8f\x49\x30\xef\x37\x12\x5b\xc0\x9f\xe5\xcf\x4f\xdd\xfc\x53\x76\x21\xab\x35\xeb\xf3\xa7\x5b\xfa\x40\xfa\x05\x8c\x5d\xfc\xfb\x92\x7e\xe3\x09\x4b\xf9\x55\xd2\xaf\xb2\xd2\x1f\xd7\x5c\x17\xb6\x52\xad\x4a\xf4\x98\x2a\xdf\xfe\xc5\xc9\xef\x1b\xfa\x65\x6a\x69\xc7\xe1\x51\xec\x92\x1f\x6f\xd0\xee\x9c\x66\x99\xa6\xae\xe4\x51\x07\xe9\x55\x3e\x5f\x36\x7d\xcb\x1f\xd1\xb5\x7c\xc2\x5b\xdf\xf8\x82\x77\xc2\xf9\xc3\xb5\xb5\x6f\xb4\x41\x8c\x41\xdb\x6b\xea\xee\x52\x9a\xb3\x40\x14\xbe\xdd\x58\x23\x8d\x99\x5a\x9b\x6f\xcd\xf5\xc2\x8f\xc8\x0f\x47\xbe\xfa\xf1\xe8\x60\x18\xbd\x65\xdb\xec\x90\x4d\xf6\x87\xf8\x1e\xa8\x7f\x61\xed\xb0\xa5\xe1\xc1\xa7\x1b\xf9\x90\xba\xe4\x85\x54\x43\xff\x4a\xdc\xf4\x06\x6f\x2c\xc8\xd2\xfb\x57\xa3\x38\x40\x04\x9e\x6c\x3e\x53\x74\x55\xef\x7a\xd5\x8a\x87\x6f\x34\x4a\x2a\xb6\x34\x03\x16\xfa\xeb\x88\x08\xcf\xf4\xe1\x39\x5a\xfd\xc5\x92\xb8\xe9\x09\xfc\xf2\x45\x60\x8f\x6e\x3e\x1f\xfd\xc3\x3f\x70\x96\xfa\xea\x9d\xfd\xc7\x7f\x2c\x5e\x3c\xfe\x18\x76\x1b\x38\x1f\x37\xc5\xa6\x42\x96\x39\x5a\xaf\x9f\xe1\x06\x0a\xc8\xad\x79\xfb\x4d\x06\xcc\x31\xc4\xec\xab\xcb\x77\x31\xc1\x57\xf7\xfe\xbd\xff\x15\x00\x00\xff\xff\x92\xeb\x6b\xe6\xca\xaf\x00\x00") +var _confLocaleLocale_ptBrIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\x5b\x8f\x1c\x47\x96\xde\xb3\x09\xf0\x3f\xa4\xb8\xa0\x29\x01\xdd\x25\x48\xf2\x0d\x82\x4a\x72\xb3\xd9\x12\x35\x26\xd9\x3d\xec\x16\x07\xb6\x20\x94\xa2\x2a\xa3\xab\x53\xcc\xca\xac\xc9\x4b\x37\x9b\x8b\x7d\x58\xf8\xd5\x3f\xc0\xf0\xd3\x0a\xf3\xb0\xd0\x00\x7a\x5a\xec\xcb\x3c\xba\xfe\x89\x7f\x89\xcf\x77\xce\x89\x5b\x66\x56\x93\xda\xb1\x77\x30\x10\xbb\x32\x4e\xdc\x4e\x44\x9c\x38\xf7\x30\xdb\xed\x22\xb7\xed\x6a\xfe\xdd\x26\x6b\x6d\x73\x5d\xec\xfe\xb1\xce\x72\x9b\x7d\x53\x74\x99\xe9\xbb\xfa\xf0\xaa\x6e\xb7\x36\x37\x79\x9d\xd9\xcc\x6c\x8a\xf5\xee\xe7\x6b\x5b\x66\x54\xa3\x29\x3a\xfa\xb6\xc9\xbe\xa9\xef\xdf\xbb\x7f\xef\xaa\xde\xd8\xf9\xd9\xee\xe7\x75\x51\x99\xec\xdb\xaa\x58\x15\xa6\xbc\x7f\x2f\x37\xed\xd5\xb2\x36\x4d\x3e\x3f\x33\x45\x45\xf5\xa8\xe5\x55\x5d\x75\x4d\x5d\xda\xfb\xf7\xec\x9b\x6d\x59\x37\x76\x7e\xc2\xff\x9a\x86\x5a\xb1\xe5\x76\x7e\xf4\x53\x9f\x9b\xfb\xf7\xda\x62\x5d\x2d\x8a\x6a\x7e\x42\xe0\x28\xe3\xdf\x75\xdf\xcd\xcf\x4d\xe1\x7e\xf6\xdb\xf9\xb1\xa1\x4e\x04\xa2\xb1\xeb\xa2\xed\x6c\x33\x7f\xc9\x7f\xf0\xb7\x1b\xbb\x6c\x8b\xce\xce\xcf\xe9\x3f\xf7\xef\x5d\xdb\xa6\x2d\xea\x6a\xfe\x8a\xfe\xdd\xfd\x89\x06\xbe\x35\x6b\x3f\xec\xfb\xf7\x3a\xbb\xd9\x96\x86\xa0\x9f\xd7\xb9\x2d\xa9\xb8\x34\xd5\xba\x07\xc8\xb7\x79\x51\x6f\x08\x62\xd5\x58\x2a\x5f\x54\xf6\x66\x7e\xdc\x14\xa6\x99\xcd\x66\xf7\xef\xf5\x84\xb8\xc5\xb6\xa9\x2f\x8b\xd2\x2e\x4c\x95\x2f\x36\x98\xd5\x99\x6d\xe8\x43\x46\x88\xeb\xdb\x7e\xf7\x73\x53\x00\x83\x34\xf9\xcb\x62\xdd\x37\x66\xf7\x8f\xbb\x7f\xb6\xad\x4c\xc3\xe6\x34\xcf\x85\x69\xe7\xaf\xea\xd5\xee\xcf\xd9\xee\x17\x20\x14\x8d\x56\x86\x90\xfa\x9d\xd6\x26\x7c\x6d\x4c\x51\xce\x4f\x0e\xf1\x0f\x86\xde\xb6\x37\x35\xa1\xf6\xdc\x56\x57\x06\xb3\x5f\x74\xb7\x5b\x4b\x93\xcf\x8b\x35\xcf\x76\x65\xb6\xdd\xea\xca\x10\x8a\xf8\x5f\xb4\xda\xd8\x6d\x4d\xf8\xa8\x9b\x5b\x82\xe3\x3f\x77\xff\xc4\x6d\xd7\xcd\xda\x54\xc5\x5b\xd3\x01\x3d\xa7\xfa\x83\x06\x09\x24\x6d\x8a\xa6\xa9\x9b\xf9\x09\x6d\x84\xf2\x8a\x7e\xd3\xec\x17\x68\x68\xfe\xa2\xbe\xae\xb3\xb4\x1d\x94\xd1\x2e\x69\x80\x45\x2a\x36\xd9\x73\xfc\xd0\x86\x50\x78\x59\x37\xaf\xa5\xe2\xd7\xf4\x17\x36\xc4\xb8\x01\x1a\x8c\x54\x1e\x0e\xc4\x54\xb4\x18\x5c\xfc\x8d\x6d\x6c\x45\x9b\xac\x89\x61\x18\xa3\x26\xdf\x10\x36\xb7\x86\xb6\x9b\xdf\x75\x75\x76\x84\xaf\xbc\x29\xf2\x9a\xb6\x85\x59\xad\xea\xbe\xea\x16\xad\xed\xba\xa2\x5a\xb7\xf3\xe3\x74\x61\xb2\xdc\x64\xf4\xa9\xc3\x3e\xdc\x03\x72\xff\xde\x6d\xdd\xfb\x75\xa7\x55\xe8\xb3\x2d\x2f\xb9\x16\xf8\x7a\xe7\xbd\x69\xc7\x0b\xcf\x33\x6d\x17\x97\xd6\xe6\xf3\xaf\xe9\x3f\xc0\xc4\x8b\xba\xdb\xfd\x4a\x93\xa2\xe2\x6d\x5f\x96\x84\xe4\x3f\xf6\xb6\xed\xa8\x89\xba\xa4\x13\xd5\xf9\xc1\xd9\xec\x8c\xca\xef\xdf\x2b\xda\x96\x00\xe6\x67\x4d\xbd\x2c\x69\x77\x70\xb3\x2b\x53\xad\x68\xea\xc7\xfc\x0f\x8e\xc0\xfd\x7b\xdf\xb7\xd6\x34\xab\xab\x1f\x30\x19\xfc\x41\x7b\xb3\xfd\x63\x5f\xb4\xba\x7f\xf7\x6e\x0a\xec\xc1\x68\xff\x71\x6f\xbe\x33\xea\x89\x4e\xc9\xfc\x78\xf7\x4f\xb4\xdf\x98\x06\x7c\x5f\x54\x6d\x67\xca\x92\xfa\xd1\xbf\xe6\xdf\xf2\xbf\x6e\xfd\xba\xa2\x23\x4c\x9d\x74\x86\xf6\x2e\x26\x51\x44\xa5\xd9\xd6\x34\x26\x3b\x6b\x8a\x8d\x2d\xe8\x8f\x93\x37\x76\xd5\x6b\xb5\xbc\x5e\xbd\xa6\x13\x06\xe2\x40\xe3\xf9\xf6\x32\x23\xfc\x3e\x6a\x6c\xd6\xf4\x55\x45\x18\x26\x0a\xb4\x6e\xd1\x56\x41\x4d\x3e\x61\xd8\x83\x6c\x5b\x5a\xd3\x12\x88\x35\x79\xf6\x85\xc9\x3a\xd3\xac\x6d\x37\x7f\xb0\x58\xd2\x91\x7e\xfd\x20\xbb\x6a\xec\xe5\xfc\xc1\xc3\xf6\xc1\x97\xdf\xf4\x54\xad\xa4\x6d\xd2\x7e\xf1\xb1\xf9\x32\x5b\x19\x2a\x21\xdc\xde\x66\x4b\x4b\x5b\xd5\xa2\xaf\x8c\x0e\x4f\xb5\x26\xf2\x57\xdd\x76\x57\xe8\xb0\xa8\x32\xfa\xa3\xcd\x40\x3d\x3e\x00\xfe\x08\x99\x44\x15\xf2\xa5\x90\x52\x1e\x0f\xaf\x5d\x93\x3d\xbf\x3d\xff\xfd\xb3\x83\xec\xac\x6e\xbb\x75\x63\xf9\x6f\xfa\x0f\x41\x7f\x96\x51\xc3\x17\xc5\x93\xc7\xb4\x00\x54\x51\x50\x33\xda\x85\x36\x7b\x4c\xeb\xc8\x14\xf9\x09\xed\xdc\x56\x60\x71\xcc\x2f\x8a\x6d\x8d\x8d\x3d\x2c\x27\x7a\xdd\xcd\x9f\xd2\x7f\x46\xcb\x37\x24\x18\xd4\x12\x13\x98\x17\x44\xba\xa7\x5a\xa2\x72\x45\xf9\x59\xdd\x64\x97\xe6\xba\x26\xbc\x52\x9b\x59\x9d\x6d\x2c\xed\xb2\xa2\xdd\xd4\xd9\xb7\x2f\x5e\x9c\x3e\x79\x4c\xdb\x7b\x43\x9f\x69\x93\xff\x44\xa7\x8a\x1b\x21\x44\x9a\x15\x11\x63\x9a\x45\xdf\x5d\xfe\xa7\xc5\xda\x56\xb6\x31\xe5\x62\x55\xc8\x4a\x33\x62\x68\xee\x6d\x5b\x12\xbd\xcc\x99\xe6\xd6\xd9\xf9\xf9\x33\x0c\xb4\xbb\xa2\xfd\x4b\x07\x16\xd4\xa6\xfd\x63\x09\xe4\xea\x50\x4e\xa9\x61\x2e\xc0\x88\x4d\x43\x88\xbf\xe6\x3f\x97\x6e\xf0\xb8\xaa\xda\x09\x1c\xdb\xa6\x59\x10\x79\xef\x6e\xb1\x4c\xdc\xc3\x69\x76\x1c\x9a\xba\xbb\x7e\x56\xf1\x0e\xa5\x61\xe2\x92\xcc\xae\xcd\xdb\xa2\xd6\x36\x8b\xea\xda\x94\x45\x4e\x0b\x38\xc4\xe7\xa0\xc9\xa8\x1d\xdb\x6c\xa8\xf5\x8c\x3e\x46\x58\x7a\x30\x7b\x40\x17\xc4\x83\xc3\x07\xd4\x70\x55\x2f\x84\x8c\xe1\x36\xc9\xe9\xa0\xd2\x89\x5b\x34\x7a\xab\x31\x89\x96\xab\x22\x0c\x8b\x36\x9e\x59\x16\x84\x29\xa2\x88\x75\xa6\xa0\x35\x8d\x76\x93\xad\x70\x51\x65\xfd\xc6\xf0\xd5\x6b\x30\x22\x13\x53\xc3\x04\x39\x8e\x7a\xea\x56\x39\xa2\x16\x68\xb3\x8c\xea\x4c\x20\xc4\xcc\x40\x03\xdc\x32\x4f\xef\x67\xa2\xda\x86\xce\x0d\x21\x07\x67\x84\xc8\x30\x71\x1f\x09\xce\x8e\xb6\x44\xe8\x68\x86\xd7\x75\x28\x74\x4b\x7f\x5c\x97\x35\x9d\x29\x9a\x5e\xc5\xd0\x26\x6b\x7b\x93\xd5\xf1\x15\x91\x19\xda\x10\x1f\x08\x45\x5b\xc4\xdb\x08\xd0\x2f\x4d\xf1\x16\x7d\xa4\x34\xce\x83\xba\x6e\x2e\x6a\xac\x56\x8d\x13\x1c\xe0\xf0\x6b\x53\x77\xb5\x8c\x9d\x78\x23\x9a\x35\xfa\x6b\x4d\x79\x4d\x1f\x89\x7a\xd0\x7a\xe6\x45\x63\x05\x1c\x44\xb5\x27\xf6\x04\x07\x90\x29\x19\x96\x25\x9c\x44\x57\x16\x36\xb5\x67\x11\x72\x7b\x6d\x33\xda\x10\x99\x59\xd9\xb6\xa5\x09\xd5\x7e\xc3\x37\x3a\xfe\x78\x5c\xb4\x63\xac\x6b\xdf\x21\x35\x27\x4e\x85\xf8\xa6\x27\xf5\x66\xf7\x6b\x55\xd4\xee\x83\xa7\x9f\x2d\x1d\x50\x73\x69\x69\x27\x7c\xf7\xf2\x59\x2b\xa7\x71\x55\xd6\xb8\x5a\x37\xd9\x75\x61\xe8\x10\x3e\xe5\x83\x79\xb5\xd8\xd6\x4d\x87\xd3\xdf\xf1\xc7\xf0\xcd\xb5\xf5\x62\xf7\x97\x8d\x6d\x18\xbb\x5b\x86\xc2\xfa\xb4\x74\x13\x32\x2b\x89\x7d\x42\xd5\x88\x59\xec\x76\x3f\xd3\x14\x69\x33\xd7\x07\x34\xc3\xe2\x8d\x95\x23\x24\x7d\x63\xeb\xd2\x8a\xeb\xc6\x5d\xf5\x4d\x5b\xeb\x10\xae\xba\x6e\x1b\x8f\xe1\xe9\xc5\xc5\x59\xf4\x75\xef\x28\x68\x1e\x18\x88\xc9\x0c\x6f\x27\xd9\x1a\x45\x43\x83\x70\xc8\x9a\xc9\xf6\xea\x9b\x72\x4e\x48\x98\xda\x79\x54\x34\x81\x31\xc6\x19\x93\xb7\x18\x61\x18\xd7\xc7\xf8\x4f\x4b\xeb\xd1\x99\xcd\x72\xf7\x0b\xc8\x21\xf3\x6b\x7c\x2a\xea\x2d\x0e\xed\xde\x63\x71\xba\x5d\xa1\xb8\x68\x95\xc7\xdb\x77\x1b\x10\x5e\x22\x16\xdd\x31\x82\xed\x86\xf0\xe1\xc9\x7e\x76\xfe\x1c\x48\xe2\x8f\x97\x4d\xbd\x99\x3f\xb1\xff\x26\xfa\x19\xb6\x9c\xad\x72\xa2\x3b\xda\x16\x77\x2b\x9b\x8f\x38\x37\x94\xd0\x54\x2d\x31\x7c\xab\xe2\xd2\x63\xf0\xe5\xd7\xc7\xd9\xbf\xff\xec\xd3\x4f\x67\xd9\x69\x46\x77\xe3\xc6\x74\xba\x5f\x41\x02\xfa\x8d\x36\x42\x24\x33\x7b\x80\xf3\xfc\x20\xfb\x82\xbf\xfc\x67\xfb\xc6\x10\x5f\x6d\x67\x74\x49\x7c\x39\x03\x17\x47\xfc\x52\xa3\x87\xe3\x50\x3a\xc6\xa9\xdc\x58\xea\x19\x7c\xab\x02\xa4\xf7\xd5\x00\xc6\xf1\xfa\x0b\x66\xac\x9a\xcd\xfc\xa9\x27\x7f\xc7\xf2\x45\x07\xcd\x0c\xa6\x50\x43\x69\x79\x51\xd5\x5d\x71\x79\x1b\x55\x78\x81\x0f\x7e\x96\x54\xe1\xb8\x6e\x1a\x8b\x93\x83\x6d\x6c\xc1\xca\x11\xd6\x57\x76\xff\x25\x7d\xee\xb6\xbb\xcd\x4e\x7b\xea\xa9\xf5\x0b\x45\x4b\x5a\x5f\x5e\x82\xbf\x90\x5b\xee\x48\x76\x3a\x5f\x76\xa7\x52\x90\x42\xd0\xce\xde\x92\x58\xf3\x44\x0e\x05\xa8\xdd\xf1\x93\x17\x74\xe1\xe2\xb2\xa5\xed\xb6\x41\x45\xea\x91\xd8\xce\x5c\xf8\xa3\x83\xac\x0b\x14\x8b\x4f\x4f\xeb\xa8\x13\xdd\x1c\xdb\xba\x2a\x30\xcf\xb7\x7c\x07\x95\xf5\xca\x94\x1b\x60\x10\x5c\x87\xde\x2b\xc4\x9f\x5f\x1b\xc2\x83\xeb\x93\x86\xe7\xb7\xd9\x37\x5a\x36\x86\x8e\xc6\x19\xee\x1d\x07\x4e\x78\xb8\xa4\xbb\x86\x90\x43\x7b\xad\xc5\xce\xc7\x00\x4c\x1b\x8d\x55\x00\x09\x02\x82\x18\x6d\x46\x3a\x47\x28\xa1\x03\xec\x89\x61\x8b\xbd\xb4\x35\x39\xe6\x12\x8d\x37\xb9\x07\xc3\x98\x59\x5a\x6d\xfc\x52\x4f\x41\xa7\xb8\xe5\x11\x27\xb5\x80\x58\xd7\xf9\x81\x10\x27\x26\x68\x35\xa3\x0c\xd0\xc9\x1d\x48\x64\xb8\x35\x7a\xbd\xf2\xd5\xda\xe2\x2a\xad\xb8\x5b\x27\x7b\x9d\xf0\xcf\xcc\x8b\x60\x69\xb1\x0e\xe8\x25\x18\xc8\x06\x44\x91\x38\x09\x3a\x7f\x99\x16\xe3\x94\x81\xe3\x6a\x68\x41\xcb\xcb\xc3\x78\x2a\x33\x65\x3b\x49\xea\x53\x41\x79\x71\x5d\x90\x54\xfa\x92\xd9\x4e\xcb\xe8\xa0\x41\xfb\x5d\xcd\x93\x31\x44\xad\xe8\xce\x2c\xfd\x75\x89\x8d\x24\xc2\x6f\x3b\xdd\x9e\x0e\xf0\x5c\x31\x10\x56\xc6\x37\x2f\x8b\x96\x83\x12\x52\xaf\xb4\xbc\xc4\xda\xd3\xff\x5d\xb3\x07\xe8\x92\x76\x07\x6f\x06\x87\x48\x81\xb7\x2c\xd8\x63\x8d\x5b\xcc\x58\xc5\xf8\x99\x93\xe0\x54\x7e\x12\x96\x3a\x66\x77\x68\x97\x17\x1e\xef\xfb\xd9\x9a\xcc\xac\xeb\xc6\x1c\x10\xb3\x80\x9e\x0c\xd8\x52\x54\x66\xf9\x22\x92\xc9\x3f\xfc\xf6\xc9\xfc\x93\x8f\x78\x1f\x10\x41\xa3\x09\xc9\x10\x89\xb4\xd0\x75\xa1\x97\xf0\x04\xc7\x24\x63\xdc\x43\x10\x54\x76\x44\xbd\xa1\xdc\xc9\xd5\x22\x96\xc7\x46\x6c\xc1\x80\xf7\x52\x36\x5d\x09\x5c\xf8\xee\xe8\x1b\x8e\x29\x43\x48\xbd\x54\x3b\xa0\x02\xd8\x62\x4d\x2c\x81\x93\xc2\x1a\x65\x10\x68\x29\xba\xc5\xba\xe8\x16\x97\x20\xb4\x24\x7e\x9a\x92\xf6\x1a\x71\x1a\x28\xe0\x53\x41\x94\x1a\x97\x75\xf6\x88\xa0\x1e\x7d\x9e\x3d\xbc\x76\x6c\xf8\x67\xa0\x9e\x0b\x3a\xbb\x45\x89\x7d\x0c\xd9\x16\xeb\xce\x67\x98\x57\xa7\xed\xe5\x0a\x56\x06\xfa\x80\x0f\x34\xcb\x0e\xf4\xdf\xdd\x3f\x12\xbf\x46\x84\xfc\xa6\x2a\x6b\x92\xcb\xf2\x50\x77\x59\x54\x40\x02\x15\x5f\xb2\xea\x08\xa4\xee\x21\x6d\x9e\x17\xbb\xff\x7e\x1a\xc3\xad\xeb\x65\x5f\x94\xf9\x0c\x13\x14\xbe\x9b\xb8\x6e\xdd\x29\xc9\x3a\xfc\x69\x8a\xab\xe7\x11\x0a\x37\xb2\x02\x89\xef\x8c\xcc\xcd\xb5\x15\xd8\xc6\xa3\x69\x6e\x6b\xf7\x0b\xc9\x7e\xd7\xbb\x9f\x71\x4c\xa5\xaa\x67\xe5\x80\x17\xda\x40\xab\xab\x84\x9b\x33\xc2\x71\xc8\x80\xb8\x7b\x6a\x22\xda\x7d\xa6\xa3\xe3\x48\x2d\xb5\xd9\xe1\x97\xf4\x5f\x42\xb3\xb9\xb6\x72\xa7\xad\x47\xcb\x03\x66\x13\x84\x2e\x51\x26\xfc\xa9\x4e\xe7\x90\x1c\x9e\x11\x4a\xf6\x1e\x16\xc1\xca\x60\x72\x6e\x13\xb5\xfd\x0a\x07\x61\xfe\xd8\x6e\x0e\xaf\x0b\xda\x18\x1f\x64\x27\x54\xb2\xa9\x59\xaf\xc1\x37\x72\xcb\x94\xf2\x9a\x8f\x29\x1d\xd8\xba\xbc\x22\x2e\x50\x38\x52\x62\xf9\x8a\xeb\x82\x36\xc5\x21\x9d\x73\x9c\x2c\xdc\xe6\x2b\x12\xbb\xa9\x63\xe6\x8e\xbe\x87\xf2\xf0\x07\x92\x57\x85\xdb\xaf\xcb\x1c\x4c\xdd\xe0\x78\x80\x4e\x0c\x55\x5f\x0e\x56\xcf\x41\x7b\x53\x10\xfe\x17\x5e\xe9\xb8\xe0\xc1\xbd\xe9\xe6\x17\x0d\xdd\x7b\xcc\x18\xe0\x27\xef\x8c\xa0\x8f\x3c\xf6\xfa\xc8\xcd\x2d\xef\x80\x76\xfe\xdc\xf6\x6d\x22\x26\xb4\x38\x86\x25\x6d\xf9\xba\xe1\x5b\x59\xe1\x12\x10\x6a\xc8\x03\xa0\x02\xb5\x46\xb2\x09\x35\x46\xcc\x3b\x11\xc4\xa1\x9a\x8a\x8a\x45\xaf\xa6\xdd\xa9\x76\x8d\x4a\x98\xee\xb2\x3e\xf5\x15\x51\xd4\x87\xac\xd4\x11\x45\xcf\x8c\x56\x96\x75\x4b\xd2\xfd\x09\x54\xb6\xfd\x40\x50\x61\x84\xaa\x66\xf5\x07\xd5\xed\xcc\x5f\x8e\x20\x88\xde\x41\x1f\x14\xf4\x99\x0b\x55\x89\x89\x5e\x33\x63\xf5\x9b\x6a\xc0\x3c\xaf\x75\x65\xb7\x60\xcc\x36\xed\x7a\xfe\x3b\xda\x2d\x1d\x1d\x52\x4f\x7f\xbf\xca\xa0\xa8\xb5\x42\x75\x49\x04\x6b\x6b\x9c\xe3\xc5\x7b\xd6\xfd\x1d\xf5\x6c\xb1\x3f\x5c\xf5\xf4\xfa\x16\xfd\x2a\x09\xa8\xb8\xbb\x57\x3d\x71\xb0\xa0\xeb\xd7\xcc\xf2\xc8\xd5\xdd\xf2\x0e\xe6\x2b\xcd\x31\x24\x74\xe2\x67\x99\x57\x5d\xf0\x75\x03\x46\x57\xba\xec\x6a\xd5\x59\xa4\xc7\x80\x76\x06\xd4\xc5\x23\x6e\x03\x23\x07\x79\x0d\xdd\xeb\x29\x8c\xf9\x4c\xcf\x46\x80\xe6\x09\x33\x7c\x59\x17\xf1\x88\x0c\x5f\xdb\x1b\xbb\x59\xa2\x41\x3b\x7f\x46\x7f\xe1\x0e\xa4\xca\xcf\x8b\xcd\xfd\x7b\x74\xdf\xaf\x89\x8e\x78\x52\x7f\xd2\xd2\xa9\x5a\x15\xd4\x99\x6e\x71\x00\xd8\x11\x00\x1d\x35\x23\x82\xfa\x57\x5e\x31\x4e\x04\xe9\x66\x7e\xa6\x77\x25\xf8\x9a\x80\x6c\x55\x99\x07\x7c\xcf\xfc\x2d\x23\x6c\x12\xb3\xc9\xd4\x5e\xe7\xb0\xfe\xdd\x86\xd1\x9d\x59\x65\xd7\xed\x60\xf2\x98\xa6\xb2\x70\xc2\x69\x7c\xb1\xfc\xf2\x61\xfb\xc5\xc7\xcb\x2f\xa3\x0b\xe0\x00\x54\x9c\x18\x6d\x66\xa9\xe8\xde\x58\x99\xe2\x0d\x0f\x8d\x19\x01\x22\x4d\x15\xf8\x86\x66\xf7\x4f\x6f\x8a\x0d\xfd\xf5\x30\xcf\xae\x68\x6c\x4e\x40\xad\x21\x42\xe0\x76\x82\x78\xe9\x30\x3d\xf3\x66\x82\x45\x57\xfb\x1d\x7c\x4e\x9f\x58\x47\x57\x43\x7b\x07\x51\x9a\xbf\x43\xeb\xcb\x87\x97\x8f\x90\x03\x56\x86\x1c\x17\x99\xdf\xee\x3c\xf5\xb2\xd8\x14\xdd\x78\xdb\x39\x12\x07\x72\xc9\x53\xc6\x3d\x09\xe1\xc7\xa3\x86\x79\x4b\xc1\x0b\xb6\xd8\xa6\xa7\x95\xcf\x2e\xc1\x5d\xed\xfe\x0c\x95\x75\xb4\x29\x69\x1b\xad\x7b\xa2\x54\x36\xfb\x2c\xa3\x6d\x48\x3c\x08\x58\x48\x22\x17\x8b\xbe\x52\x0c\xdb\x5c\x76\xde\x69\xc1\x17\xa2\x74\x0f\xce\xb3\x2f\xb8\xdb\x44\x8a\x93\x31\x54\xd2\xb5\x2c\x10\x8d\xee\x43\xbf\x1a\x1f\xcd\x68\x23\x69\x1b\x0c\x45\xfb\xc3\x2e\x09\xa1\xc9\x04\xd2\xb5\x05\x0f\xae\xdb\xa8\xb1\x3c\x63\x16\xf6\xb0\x1f\x0e\x48\x0c\xe6\xe5\x24\x1e\x6b\x59\xf3\xf1\x33\x4b\x5a\x55\xd6\x7f\x00\x8b\x3a\xf6\x63\x81\x82\x72\x46\x56\xd3\x37\x84\xc5\x9c\xc2\x9c\x13\x84\x99\xdb\x68\x99\x96\x74\x96\x76\x7b\x67\xf7\xcf\x98\x6e\x56\x05\xa5\x39\xef\xfe\x21\xab\xe8\x40\xf8\x5d\x8f\x9d\x82\xf1\x60\x58\xdd\x9e\x51\x7d\xd8\xd8\x8f\x26\xc7\xd5\xd8\xdc\x5e\x12\x95\xf0\x97\x68\xeb\x4c\x2e\x6d\x7c\x18\x5f\x2a\x98\xec\x26\x3d\xb1\xee\x5e\x66\x65\x79\xd8\x46\xe8\x60\x25\xaa\xf3\x31\xca\x89\x7c\x13\x8f\xda\x03\xf5\x6e\x66\x72\x2f\x3b\xc4\x86\x4e\xbd\x72\x6c\x8c\x62\x37\x18\x9c\x35\x1d\xb0\xaf\xd5\xd5\xf5\xa2\xbd\x82\x66\xe5\x94\x8f\x16\xd8\x62\x56\xdc\x2a\xe8\x40\xbf\x47\x85\xb4\x65\xd1\xc1\x7f\x90\x1b\x1b\x98\xf9\x41\x0f\x14\x2e\x10\x77\x9a\xce\x44\xed\xee\xbe\x4f\x9d\x3f\x80\x0b\xaf\xfa\x0a\xe4\xe0\x56\x60\x14\xd9\x26\xcf\x69\x7e\xed\x04\x6a\xe9\xa7\x40\xba\x6f\xd1\xbd\xe4\xf8\x93\x97\xfa\x21\xd3\x0f\x07\xd9\x1f\x6c\x49\xd3\xb3\x32\x66\x92\x4d\x30\xe8\x5b\xdb\x12\x89\xd8\x40\xcb\x3a\x7f\x21\x76\xa5\x3a\x87\x46\xe0\xa8\xa4\xba\x6a\x31\x81\x7e\x83\x60\xbf\xa3\xd9\xbf\x88\xb9\xf5\xde\x73\xeb\xb8\x53\x5f\xc4\xba\xcb\x26\xd1\x2b\x9e\x08\x3b\x3e\xde\xac\xf7\xef\x9d\x0d\x38\xfc\x97\x36\x31\xdc\x65\x7e\xb9\xce\xcf\x9f\x5e\xb0\x84\xf1\x42\x15\x9e\x24\x13\x5e\x5b\x51\xc5\x3d\xed\xba\x6d\xfb\x9d\xea\xaf\xa0\x7b\x3a\x47\xc3\xb7\x60\xac\xdd\x57\xd1\xc2\xaf\xa9\xa1\x0b\x6b\x36\xd1\x58\x89\x2b\xa5\x7d\xb2\x25\xb4\x1c\x11\x1b\x90\xcc\x0f\x72\x50\x13\x2c\x6e\x2c\xbe\x9c\x44\x92\xc5\x84\x2d\x2d\x48\x8e\x96\xed\x84\x3f\x46\x9b\x47\x04\x0a\xd1\x97\xff\x48\x1b\xa0\xdc\x92\xd0\x0b\x06\xcd\xc3\x42\x81\xc4\xa6\xe7\x58\x17\x6e\xca\x4b\x53\xf5\x9b\xdd\x2f\x4d\xb1\x12\x35\xc0\xd5\xee\xd7\x4b\x5b\x65\x1f\x1e\x7e\xc4\x02\x63\xbf\x2c\xc1\x56\x81\xb8\x2d\x3e\x1a\xb4\x9c\x13\xcd\xf8\x7f\xdc\x7a\x5b\xbc\xb5\x49\x9b\xac\xa2\x7d\xd8\xa2\x8c\xd9\xed\x51\x39\xb3\x9e\xb4\x59\x6d\x59\xf3\xe9\x69\xc1\xe3\x87\x31\x70\x45\xf3\x66\x7f\x45\xa2\xa8\x9b\xdd\xcf\x74\x13\xd6\xe3\x8a\x42\x1a\x13\x64\x13\x85\xd8\x73\x19\x38\xc2\x41\xf5\xa0\xd2\xd4\x5a\xa1\x92\x68\x34\x95\xed\x67\xa8\xea\x35\xb1\x0e\x95\x42\x9e\x34\xac\x16\x21\x8e\xbe\xba\xa2\x4b\x20\xaf\x3f\xf7\x76\x65\xba\x75\x59\x8a\x5a\x31\x11\x51\x8d\x85\xde\x3d\xf4\x19\xaa\xa7\xdc\xf6\xb3\x88\xea\x04\x19\x49\x54\x7a\x81\xee\x35\x31\xd9\x61\x49\x8f\x2e\x7e\x28\xbd\x58\xa7\x12\xac\xe1\x8b\x25\xdd\x1c\x8b\xce\xbc\xb6\xd5\xe8\x48\x66\x3f\xd1\x95\x0c\x4e\x04\x92\xbc\x92\x4a\x92\xe7\xa6\xab\x0d\x04\xbb\x51\x55\xe2\xb3\xf6\xd4\x1c\x9a\x1c\x46\x55\x3b\x3a\x6c\x7b\xeb\xca\xc1\x1b\x57\x92\x35\xe5\x0a\x34\xd7\x7c\x8a\x70\xf8\x4a\x7d\x2b\x75\x8a\xb2\xb4\x6b\x28\x95\x5d\x87\xb4\x0e\x55\xda\x0f\x76\x13\x94\xd1\xd1\xee\x2f\x50\xa9\x68\x67\x11\x52\xfd\x02\x85\x15\x8d\xc5\x2e\x59\x1a\x2d\x13\x16\x05\x22\x1f\xfd\xc8\x17\x89\xe8\xcc\x63\x08\x1c\xf7\xca\x36\x9d\xf0\x7b\xe0\x34\x71\x7b\x14\x15\xe8\x2a\x6e\x36\x1d\xe8\x60\x19\x54\x2a\x77\x1a\xca\x51\x2f\xb4\x2f\x21\x6a\x27\xdd\x24\x6c\xa5\x8d\x5a\x26\xd6\x8d\xee\x35\xdb\xa9\xef\x45\x24\xf6\xd7\x53\x6d\xfb\xbb\x66\x5f\xcb\xee\x6a\x0c\x82\x2e\xd3\x6b\x9a\x4d\xa2\x52\x70\x0e\x21\xd8\xec\xf6\x0d\x91\xc9\x54\x21\x90\xab\x1e\x80\x8b\x30\xc9\x92\x78\x71\x48\x8a\x32\xb9\x18\xd8\x30\xe1\x82\xe1\x09\xca\x65\xd1\x1c\xec\xfe\x52\x76\x20\x0a\x90\x21\xe8\x64\x56\x7e\xa5\x45\x27\x1c\x26\x4c\xb2\xcf\x13\xd0\x13\xdc\x18\xcc\xb0\xd5\x3d\x8b\x26\x31\x0c\x1f\x2d\x37\x7f\xd8\x76\x5e\xdb\xdb\x58\xc2\x52\x3e\xb2\xb5\xeb\xbe\x80\xb0\x2f\xe8\x58\xb1\x0e\x82\x39\x78\x77\x1d\x7d\xce\x62\x6a\x2f\xba\x4d\x86\xba\xf5\xed\xb1\x35\x3c\xdc\x08\xa1\x8d\xa4\x85\x83\x6c\xc3\x8a\xc3\xb6\xdf\x70\x57\x40\xb2\x67\x7b\xcc\x1e\x29\xc2\xd5\xdf\x42\x4b\x17\x14\xdb\x90\x6d\x9d\xf2\xe4\x68\xa8\x08\xbd\x34\x24\x65\xf7\xa2\xdf\x20\xc2\xde\xd1\x21\x02\xe6\xc5\xa1\x05\x7c\x9b\x28\x48\x4c\x51\xd1\x29\x82\x94\xaa\x18\xa3\x95\x1b\xed\x57\xc7\x8e\x77\x6a\x70\xb2\x6f\x56\x25\x5d\x84\x38\x33\x74\x39\x56\xed\xa5\x6d\x76\xbf\x1e\x96\xc6\xab\x1d\x67\xae\x47\xb0\xf8\x70\x63\x19\x76\x78\x69\xde\x82\x7d\xeb\xc6\x74\xc6\xf5\x25\x06\x17\x23\xbd\x70\x87\xa3\x2e\xb0\x99\x06\x13\x83\xba\x66\x68\x2a\xf5\x33\x34\xef\x33\x47\xee\xf7\x7d\x26\x18\x23\x55\x6c\x3c\xe8\x7b\xb0\x0a\xd2\x39\x2e\xa0\xd6\x88\xd9\x8e\x6e\xe5\x75\x5f\xb5\x41\xc5\x9c\x74\x4c\x47\x60\xf7\xe7\xc3\x12\x62\x3e\x7d\xd8\xd6\x05\xed\x95\xad\x59\x1b\x5c\x94\xd7\x9e\x5e\x10\xed\x65\x3f\x8f\x05\x09\xd5\xd5\xea\x2a\x39\x82\x8d\xd9\x88\x26\x90\x0e\x6b\x51\x0d\x0f\x21\x71\x7c\x18\x2b\x34\x22\xec\xeb\xb1\x50\x93\x08\xb3\x84\x20\x2a\xe0\xd7\x9d\x6d\x63\x93\x39\x23\x08\x4c\x5a\xbe\xca\xaa\x6f\x89\x9c\x0f\x6a\x46\xf5\xaa\x29\x37\xa0\x9f\x6a\x62\x1f\xea\x0a\x2a\xda\x55\x43\x33\xed\x59\x49\xb6\x89\x9c\x72\x0a\x3b\xd2\xdf\x30\x1f\x5d\x74\xb7\x2c\xbc\x16\xbc\x6a\x67\xbb\xbf\x2c\x61\xc0\x84\x8a\xa0\x2c\xeb\x1b\xdb\x10\x93\x8b\x73\x4b\x2c\x1a\xfb\x99\xd1\x08\x88\xda\xcd\x9f\x9b\x06\x3a\x7b\x07\x06\x1d\x21\x83\x55\x39\xbb\xf0\x80\x3c\xcf\xf8\x4e\x00\x03\xde\x5c\x53\x0d\x77\xa7\x44\x17\xed\xa3\x87\xed\xa3\x81\x84\xe0\xee\xa4\xd0\xc0\xd6\x74\x84\x81\x4a\x44\x38\x1e\x52\xce\xec\x36\x56\x5d\x3c\x20\x0a\xf6\x8d\x63\x85\xb3\x5a\x79\xa4\x65\x96\x5f\xea\x51\xb7\x33\x75\x65\x12\xb7\x2a\x5a\x2a\xe7\x7a\x75\xa6\x6e\x57\x43\xcd\xb9\x52\xa0\x76\x7e\x0c\x2a\xd1\xaa\x09\x9b\xf5\x52\x73\x96\xf5\xe9\x13\x7e\x15\xe2\x89\x20\xf6\x5f\x22\x77\xf3\x60\x0b\x6e\xf9\x34\xb5\xf3\xa1\xf6\x2e\xb7\xa5\xed\x20\xcf\x89\x4e\x42\x35\x07\x84\xed\xf9\x77\x45\x8e\x71\x6e\xc1\x43\xae\x16\xe9\x10\xdd\x2a\xd5\x7e\xec\x62\xdd\x80\xef\x58\xc2\xbb\x29\xaf\x0d\x4c\x71\x3b\xb0\xf3\xb7\x6c\x91\x60\x3c\x3b\xd3\x94\x29\xd9\xc7\xa8\x4a\xec\x97\x8d\x2d\x0d\x9b\x93\x71\xc0\xfe\x41\xa8\xcb\x41\x66\x03\x78\x4d\xd8\x57\x58\xba\x3e\x6e\xec\x32\xbb\xb4\x50\x51\x18\x3a\xd2\xd7\xbb\x5f\xda\x48\x09\x06\x4f\xa8\xc8\x5a\x71\x2c\x4a\x98\x7a\xe8\x56\x09\xb3\x22\x5b\xe3\x9e\xc1\xbe\x18\xa4\x87\x7e\x0b\x6b\x96\x47\xc2\x51\x27\xb6\x27\x2c\xb8\x5b\xb3\x14\xc4\x4b\x72\xa7\x7c\x70\xc4\x9f\x8e\x79\x1e\xa3\x75\x73\x51\xaa\x10\x1c\x68\xfe\xcc\x1f\x3e\xef\x2e\x39\xd2\x1b\x8b\x54\x87\xed\x3d\x00\x75\xba\x9d\x13\x58\xf1\x0c\x43\x29\x71\x82\xa9\x1f\xc8\xae\xc5\xdc\x4a\x1d\xd6\x59\x59\xac\x9d\x7d\xa7\xb1\x44\xf7\xec\x06\x27\x95\x10\xdc\xf6\x41\xc5\x80\x7f\x8b\xaa\x67\x93\x10\xfe\x80\x30\x39\xe1\x8f\xe7\x8c\x80\x09\xc1\x08\xf6\xe8\x23\xa1\x17\xc7\x5c\xcc\x73\x9e\xae\xe2\x64\x7f\xad\x69\x87\xee\x14\x26\x5b\xf6\xed\xca\x40\x96\x08\x76\xdc\xd5\x55\x5d\xb7\xaa\xf1\x95\x8e\x4f\x58\x5d\x6f\x9c\x52\x27\x73\x90\xba\x34\x8e\x9e\xf9\xc5\x5b\x0d\x6c\x0a\x56\x07\x8c\x1a\x10\x3f\x89\xa7\xd2\xf1\xf1\xd1\x5f\x14\x1b\x78\xd0\x9e\x7a\x6f\x2d\xa7\x28\x8c\x65\x10\x86\xd9\x88\xe7\x53\x3a\xc7\x60\x6b\x7a\xc1\xfa\x1c\x47\x4d\x63\xc3\xb2\xb3\x74\xef\x7e\xbd\xb6\xe5\x41\x44\x99\xae\x04\x33\xbb\x9f\xe9\xea\x98\x0d\x66\xe4\xf7\x9a\xde\xc1\x83\x39\x69\x37\xc9\xde\x33\x83\xbd\xe7\xb7\x94\xa7\x3c\xcf\xfb\xdc\x54\x30\x73\x31\x59\x64\x2a\x54\x97\xf9\xd0\x95\x81\x71\x29\xae\xae\xbe\x84\x15\xee\xde\x95\x17\x0a\x81\x45\x52\xfe\x44\x74\x03\xfe\xba\xcb\x0c\xff\x3d\xd2\xec\x04\x16\xde\xf9\x6e\xf1\xf0\x27\x6c\x5f\xb3\xd1\xf0\x3d\x4a\x5c\x55\x81\x97\xb3\x31\x98\x7d\xf6\x4a\x35\x91\xb9\x2a\x91\x9d\x3d\x17\x40\x5e\x8b\x44\x23\x64\x3c\xb1\x78\xd3\x06\xa9\xa6\x8d\x1d\x58\xd4\xad\x57\x61\x82\x67\xaf\x4d\xa0\x9d\xf6\x44\x24\xa5\x69\xba\x29\x4a\x77\x62\x46\xa8\x81\x2d\x4d\x7a\x44\x33\x23\x52\x89\x93\x6c\x99\x2b\xa6\x7b\xc0\xd1\x44\xfa\x08\x81\x95\xb8\x19\xd3\xdc\xce\xcf\x5c\x43\xfe\x93\x6a\xae\x9e\xa8\x6a\x8d\x29\xc3\x36\x40\xc9\xb5\xe0\x81\xf8\x72\x08\x23\xa6\x9f\x20\x92\x27\x60\xa2\x5a\xb5\x50\xda\x74\x52\x02\x22\xb3\x3b\xaa\xb3\x13\xe5\xb7\xec\x3e\xc5\xa7\x4c\xd0\x8b\x08\x22\x5f\x05\x3a\xe5\x6f\x82\xd6\x2d\x8b\x27\x56\xba\x7e\xd4\x93\xfd\x49\xbe\x31\xbd\xfa\x6a\x34\x96\x40\x92\xf5\x56\x62\x65\xbf\x30\x9e\x29\x35\xfe\x00\xa6\xe8\x9c\xb7\xad\x60\xe0\x28\x2f\xb8\xff\x46\xad\x07\x53\xca\x30\xd4\x18\x42\x8f\xca\x16\x89\x79\x02\xea\xf9\xdf\x6e\x92\x00\x6b\x91\xa8\xde\x53\x6b\xc4\xb1\xb3\x46\x9c\xa8\x35\x22\xc7\x7e\x86\xc4\x36\x65\x94\x38\x70\x56\x89\x4a\x19\x62\xb0\xd0\xde\x59\x20\x19\xc9\x2c\x9e\x87\xa7\x39\xb4\x73\xc7\x38\x89\x10\x6c\x14\x19\xa3\xfb\xce\x1f\x17\xcf\xdd\x84\x03\x13\xf3\x39\xe8\x13\xe2\x57\xc0\x2a\xcb\x4a\xc2\x15\xf1\xfe\x62\xbe\x5c\xe9\x6f\x59\xb4\x62\x15\x5e\xf9\x26\xbc\x32\x7d\x6a\xf3\xbc\xc4\x8e\x63\x16\xa4\x68\x99\xa9\xd0\x7a\x41\x36\x76\xe6\x05\xe8\x8d\x88\x20\xaa\x43\xa1\xde\x58\x5f\xc0\x78\x53\xad\xbf\x8c\xec\x53\x06\x51\x1f\x5f\x7d\xf1\xb1\x96\xa8\x17\x17\x4e\x2c\x90\x4a\x1c\xaa\x51\xcb\x92\x89\x9c\xb7\xd7\xb6\x31\x4d\x34\x66\x76\xe1\x86\xc6\xa2\x2e\x7b\x9d\x75\x02\xbf\x75\x8e\xf2\x98\x11\xa4\x0d\x4c\x4c\xeb\xcd\xc2\xee\x4d\xf1\x76\x1c\x94\xae\x8a\xf3\x48\x4f\xf3\xdd\xc6\x0b\xa1\xca\x81\x73\x9b\xb4\x58\x56\x9d\xb6\x58\xa1\xb7\xfb\x4b\x2e\x9a\x22\x35\x1c\x6d\x88\x28\xd5\xb3\xd0\x20\xf3\x23\xbe\x41\x26\x4a\xc3\x66\xb9\x36\xcb\x2b\xc3\x1e\xc0\x28\x53\x5b\xae\x1d\xaf\x6b\x3a\x96\x05\xc7\x77\x35\xd3\x33\x5f\xc2\x83\xf1\x1b\x24\xa2\xf9\x7c\x9f\x0c\x7a\x65\x86\x3c\xd9\x90\x66\x70\xe4\x95\xe6\x89\xea\x40\x29\x9e\x9b\xd6\x14\xcd\x73\x5d\xe4\x03\x9c\xde\x45\xfc\xd2\x3a\x43\xaa\x17\x7c\xca\x78\x4c\x6a\x31\x7c\x1f\x52\x37\xea\x3b\x20\x23\xe9\x30\x26\x79\xc3\xf9\x03\x8f\x34\xc3\xa3\x70\x60\x21\xbe\xb1\x56\x87\x17\x74\xf7\xbf\xa0\xb1\x81\x0b\xcb\x5b\xbd\x89\xec\x46\x3c\xbc\x9d\x14\xf7\x42\x0d\x55\xc6\x4b\x73\x30\xcb\xb1\x9b\x23\x2f\x50\x07\xa6\x45\x82\xb4\x58\x5a\x36\xb1\x5a\xf9\x3f\x12\xef\x03\xef\xad\xae\x7e\x4d\x7b\x32\x82\x65\x63\x19\x7f\x75\x72\x36\x3b\x10\x4e\x54\x0d\x24\x45\x64\xa3\x88\xa0\x24\x52\x52\x76\xe4\x29\x82\xb7\xef\xdf\x41\x49\xa4\x6e\x2b\x75\x63\x92\x21\x62\x88\x32\xd4\xb4\x25\xee\x22\x1a\x7d\xb5\x24\xd9\x14\x4a\xa9\x6b\xba\x65\x7b\x66\xa0\xe5\x5b\xbc\x56\xac\x41\x91\x11\x39\x93\xbb\x82\xe7\x26\xa6\x99\x86\x6b\x2c\x18\x2b\xd1\x34\x2f\xf0\x9b\x99\x8c\x23\xa1\xe1\x67\xa2\x50\x72\xee\xec\xea\x21\xe1\xab\xb9\x0b\x8d\xeb\x29\xea\x5b\x41\x85\x36\xb5\x66\x91\x43\xdc\x19\x65\x6a\x98\xa4\xf8\xbd\x79\x71\x59\x37\x2a\xef\x5a\x66\xd7\x8f\xce\xbe\x75\xbe\xf1\x33\x61\x0f\x65\x55\xb9\xe5\x33\xf6\x61\x20\xf4\x55\x9d\xfa\x7c\xea\xea\x26\xae\x6a\x6a\x27\xaf\x87\x92\x89\x34\x94\xf8\xda\xeb\xe8\xfd\x14\xe3\xe9\x4d\x96\x09\xc6\x6d\x2b\xe1\x5b\xd2\x39\x28\xb7\xf4\x2c\x53\x4e\x0e\x47\x76\x9c\x68\x80\x79\x53\x6c\x9d\x79\xb5\x9a\x6a\x44\x35\x79\xea\x96\x90\x0d\xa2\x1c\x30\x4f\xd1\x03\x05\x3e\x38\x50\x20\x19\xbf\x52\x0d\x0e\xf1\xf2\x6b\xbd\x87\xf9\xba\x98\xee\x7d\x4f\xdd\x69\xae\x6c\xdf\x0c\xde\x45\xa3\x10\xbe\xe2\xd5\x0c\x77\x90\xa8\x78\x72\x11\x2f\xb6\x67\xe8\xbc\xfb\x7d\xa7\xc9\x5a\xb0\xee\x05\xca\x25\x5c\xd8\x2a\xa2\x18\x2f\xd4\xb1\x23\x51\x18\x50\xeb\xdc\xd8\xf9\xf4\xe8\x18\x9c\x91\xd7\x69\x3d\x22\x9f\x09\x85\x50\x89\xfa\x28\xd6\x31\xe4\x02\x4d\xc8\xf0\xfb\x91\xf5\x3f\xa6\xc2\xf2\xf1\x1a\x42\x3d\xe1\x58\x02\xf6\xf8\x3b\x3b\x7d\x72\xf2\x72\xf7\xf7\x81\x1b\xc0\x99\x21\xe4\xb0\xa2\xe2\x83\xe0\x13\x39\x18\x58\xf0\x8c\xc4\x10\x5d\xf4\x58\x02\xa3\x2e\x9b\xbe\x3c\x0a\xf4\x1b\x00\x06\xca\xa6\xe4\x85\x17\x54\x66\x93\x4f\x4c\xc1\x1f\xf3\x26\x59\xbf\xfb\xf7\xbe\x87\x2a\xef\x07\x12\x04\x59\xbf\xff\xa4\xae\xea\xc8\x32\xe5\x4f\xe3\x44\x54\x4a\x1c\xfc\x02\xb0\x56\x7c\x11\x62\x9f\xb3\x65\x5d\xa9\x07\xf5\x16\x8e\xbf\x15\xd4\xa6\x1b\x5a\xfe\xa6\x78\x8b\x40\xdd\xa2\x8d\x30\xbb\xfb\x4b\x05\x7b\xa7\x47\xea\x0c\xae\x66\x2d\x7b\x87\xd3\x25\xf4\x4a\xff\xc4\xfd\xa3\x05\xf8\xee\xfa\xe7\xdb\x44\xac\x8c\x89\xc5\xe6\x8b\x76\x6b\xaa\x6c\x45\xd7\x5d\x3b\x7f\xd0\x63\xef\xe5\x19\x9c\xec\x1e\x7c\x09\xb9\xe8\x9a\x28\x02\xf5\x47\x20\x5f\xc6\x6d\x22\x06\xd4\x35\xfc\xe1\x51\xa2\x7b\xc9\x99\xaf\xb9\x36\x25\x51\x3b\x8e\xd8\x10\x65\x4c\x38\x3f\xa8\xdb\x7e\xc4\x8a\xc6\xd7\xa2\xdb\xe6\x38\xd2\x21\x02\xb9\x98\xe3\x1f\x34\xcc\x54\x3f\x8d\x26\xe6\x55\x92\xc4\x67\xb2\xfe\x40\x87\xd3\x88\xb7\xb4\xc7\x89\xf8\x50\xa5\x93\x5f\x16\x97\xbd\xaa\x53\x79\xc1\x78\xcb\x3c\xe1\xd8\x68\xdd\x7c\xfc\x19\x51\xc4\x3e\x82\xd8\x7f\x71\x03\x38\xa7\x1d\x05\xce\xc1\x3a\x05\x49\x9b\xcd\x48\xd4\x2f\xd6\x55\xdd\x40\xb7\x56\x10\x2b\xd0\xda\xf9\x33\xfc\x4b\xc7\xd6\x7f\x19\xd7\x87\x72\xc4\x45\xc4\xd9\xac\xf4\x15\x10\x04\xc9\xce\x66\x85\x39\xdc\x58\xf7\x7b\xb2\xfe\x86\x03\x9f\xb9\x3a\x41\x03\x18\x0e\x01\x0b\x12\x76\xbb\xb9\x46\x75\x33\xb9\x60\xd2\x37\x30\xdd\x6d\x98\xbc\xb9\x39\xb4\xda\x2c\xdf\x73\x56\x1b\xf6\x0e\x87\xbc\x70\xe2\x69\x98\xae\x5b\x6e\x2f\x4d\x5f\x3a\x0d\xfe\xfc\x25\xb4\xf6\xaa\x1c\x76\x81\xc8\x34\x1a\x5a\x20\xda\x22\x34\x22\xf9\x43\x84\x27\x71\xa0\xcc\x3e\x84\x80\xf6\xd1\x3b\x95\xd9\xc9\xe0\xff\x75\x15\xda\x71\xd7\x33\x89\x04\x86\xce\xac\xef\xae\x62\x87\xbd\xa3\xd4\x13\x43\x83\xaa\xe3\xe0\x4f\x9b\x04\x57\xc7\x00\xc9\xa9\x4d\x66\xaa\x1a\x91\x4d\x7a\x70\x71\x62\xb3\x65\xd9\x5b\x3a\xb6\x56\xf0\xe8\x8f\xad\x6b\x97\x97\x8c\x3b\x1c\xae\x99\x42\xcc\x10\x13\x45\xf4\x53\x5c\x78\x52\x0b\xf6\x31\x8a\xf6\x40\xca\xb1\xe1\x20\xab\x80\xfd\x8d\x8f\xb4\xf2\xc1\x55\xe7\x1f\x7f\xf3\xed\x05\xa4\xbb\x7e\x13\x82\x40\xe3\xa8\x3b\x09\x6f\x99\x85\x6e\x9c\x69\x93\xbf\xa7\xf1\x80\xfc\xc9\xfb\x3b\xd7\x07\xb1\x3d\x28\xf6\xbb\xa2\xbe\x92\xb0\x3e\x21\x23\xb4\x5c\x4c\x5b\x94\x00\x38\xd2\x15\x91\x9d\x05\x22\x36\x46\x51\x9a\x12\xb3\x70\xa9\x81\xef\x43\x72\x02\x16\x11\x52\x1e\x75\x4b\xd7\x31\x5f\x73\xdb\xdb\x45\x59\x54\xaf\xe9\x66\x03\xdf\x14\x7d\xf1\xac\x00\x4a\x6c\x1e\x03\xab\xe7\xc6\x19\x70\x9b\xfd\x9f\xff\xf1\x3f\x0f\x8f\x33\x22\xa6\xc7\x5d\x53\xd2\x5f\xec\xf7\xba\xbd\x25\x70\xa2\x0f\xaf\xe1\x35\x89\x9f\xda\xbe\x8b\x12\xd9\xfd\x4c\xa7\x14\x23\xf4\x46\x3e\x76\x5c\xe4\x3e\xa8\x33\x81\x4e\xf9\x0b\x34\x88\x35\x75\x11\xc3\x03\xc1\x5e\x35\x08\x2e\x6a\xee\xab\x0c\xd7\x0d\x2b\x31\xef\x0c\xce\xe6\x54\x10\x10\xce\x3f\x00\xd7\x7f\xc3\xae\x23\x4f\x6c\xf1\x46\x5c\x66\x4f\x97\x38\xd5\x9c\xe5\x41\x1c\xef\xfd\xef\x1e\x8e\xeb\xc8\x03\x41\x8c\x90\x55\x85\x4f\x01\xbb\x05\x7f\xfe\xda\xff\xe4\x64\x04\xb8\x20\xf8\x14\x2a\x01\x77\xe2\x58\x42\xc8\x89\xaa\x11\xba\x60\x4f\xb3\xf3\x6f\xa0\x8c\x78\xb9\xfb\x79\x5b\xe4\x7e\xde\x88\x07\x57\xaa\x56\x8a\x0e\x6b\x78\xf4\x12\x67\x6b\xbe\x05\x08\x27\x08\xb3\x50\x3a\xe8\xd4\xef\xc9\x96\xa8\x20\x50\x69\x00\xae\x06\x65\xc0\xb6\x04\xff\x29\x6c\x55\xe9\xf1\x8c\x7e\x8f\x36\x93\x6c\x65\x28\x8a\x27\xdb\xe0\x01\xd0\x90\x39\xea\x77\x7e\x81\x68\xf6\x90\x06\x20\x03\xdf\x80\x02\x1f\x47\x0f\x27\xba\x6c\x69\x56\xaf\x33\xe4\xc7\x68\x3e\x00\xbe\xee\xdf\x8b\x88\x34\x49\x18\x8d\xb5\xf3\xdd\xdf\x37\xd7\x7c\x6d\xa9\x05\x16\xf1\xcb\x9d\x59\xb7\x0c\xd3\x66\xff\x36\xbb\x30\x88\x40\x91\x52\xab\x9f\x61\xb6\x25\x10\x29\x1a\xa7\x34\x40\x2a\x04\xfa\x40\xff\xcd\x5e\x6a\x42\x04\xc8\xd7\x4b\x0b\x85\x72\x07\xe1\xa2\x03\xd8\xa6\x28\xa9\x88\xd6\xa2\x65\x23\xa7\xf8\xec\x6f\x88\x2a\xe3\x8c\xf0\xbf\x98\x35\x4f\xa7\x9d\x3f\x63\x2d\x3d\xfb\x3c\xd2\x67\x36\x3d\x35\x06\x39\x3d\x7a\xfd\x45\x08\xe1\x84\x08\x4f\xe9\x5f\x20\x14\x36\x3b\x2e\x60\xef\x7c\xc0\xc2\x39\x7f\xe5\xe1\x99\x1d\xe4\xa3\xfa\x8c\xfe\x13\x71\x87\x6c\x25\x90\xfe\x67\xa3\xf1\xb8\x82\x61\x5a\x86\x6c\x35\x84\xb8\x84\x14\xfc\x18\xe6\x9c\x26\x7c\xc4\x95\x41\x27\x9d\x6f\x8a\xf0\x75\x03\x71\x72\x6d\xe7\xcf\x89\x4b\xc0\x61\x0b\x25\xb0\x7e\xcc\x9f\x98\xce\x84\x4f\x12\x40\xf1\x9c\xa5\x7b\x62\x5a\x91\xc8\xc1\x15\xd1\x3e\x75\x45\x10\xf8\xa2\x30\x04\xa4\x3f\x61\x19\x70\xeb\x73\x41\x84\x92\xd9\x78\x69\xa2\xc2\x0a\xcc\x0f\x95\x13\xdb\xb1\xc9\xac\x82\x24\x10\x2b\x5a\xa2\x66\xa1\x8d\x3c\x2b\x36\x5b\xcc\x38\x2a\xf7\xeb\x4c\x97\x91\xfe\x35\xec\x21\x80\xa0\x97\x0d\x76\xc3\x44\x17\x01\x6a\xa2\x17\x12\x60\xaa\x08\x42\x76\x54\x46\x83\x6a\x78\xc7\x24\x8d\xd5\x2d\x9c\xb4\x87\xb0\x97\x76\x75\x25\x89\x14\x22\x60\xba\x6d\x91\xf0\x05\xce\x9e\x30\x58\xb5\x9c\x4d\x67\x62\x6c\x1e\x6e\x62\x68\x50\x1d\xb9\x62\xe6\x3f\x4c\xd7\x14\x4b\x56\x4d\x79\x38\x21\x35\xf3\x73\x8e\x18\x8a\x6b\x2b\xf6\xd9\xda\x34\x85\x7e\x29\x5f\x6c\x4b\x92\x2b\x07\x91\x38\x0e\x9c\x73\x86\x24\xfd\xb8\x25\x4d\x7b\x63\x14\x76\x66\x39\x7f\x98\x2b\xe2\x42\x35\xe0\xcc\x95\x8d\x10\x45\x07\x0a\x5e\xbd\xd2\xe8\xc9\x70\x90\x71\x29\xf1\x62\x0b\x66\x34\x3b\x4f\xb5\xdd\x28\x23\x06\x74\x54\x77\xb0\x56\x7b\x8b\x47\xcd\xcb\x5e\x8a\x79\xdb\x61\x5d\xbf\x32\x47\x6e\x51\xa6\x40\xd6\x05\x81\x44\xad\x63\x9b\xca\x2a\xba\xfb\x26\xad\xe2\x99\xbe\xa9\x82\x19\x42\xb4\x94\x6c\xfa\xe4\x05\xdb\x40\x3f\xa7\x6a\xb4\x9a\x77\x88\xee\xff\xdb\xba\x8f\x06\xdb\x42\xec\x01\xd7\x32\x59\x4f\x96\x3b\x5f\x2c\x6f\xb9\x1a\x2e\xae\x44\xcb\x35\x59\x09\x54\x96\x90\x85\x58\x4e\x54\x7a\x0e\xa5\x1b\xe1\x0e\x71\x13\x93\x95\x5a\x76\x4b\x6f\x72\x5b\x99\x49\x64\xa0\x7c\x86\x6b\xa8\xed\x84\x3a\x71\x24\xd0\x24\x14\x36\xb0\x83\x32\x4c\xde\xa6\xe1\x44\xdf\x2a\xe6\x61\x81\x56\x0d\xac\x9a\x5a\xbd\xf3\xc1\x74\x75\x5c\x2a\xbe\x36\xab\x56\x7f\x53\x75\xba\x02\x3b\x10\x5d\x28\xe8\xb9\xf3\x15\xc7\xc9\xde\xdd\x9d\xaf\xc0\xfd\x4d\xd4\xc0\xf1\xe3\xa5\x9a\x3f\xfc\xfe\x93\x1f\x5a\x51\xe2\xf3\x31\xe4\xf5\xf2\x76\x91\x8f\x1f\x7e\xff\xe9\x0f\xc4\x6b\x3d\xfc\xfe\xb3\x1f\x38\x07\xce\xb8\x85\xc5\xa5\x79\x6d\xe7\x5a\x59\x5a\x43\x13\x5c\xd1\x43\x6f\x1b\x7b\x5d\xd4\x7d\xeb\xb3\x80\x21\xe6\x97\x38\x91\x98\xfc\xbc\xe9\xe8\x62\x17\x5b\x9a\x8b\x10\x1e\x90\x0b\xd6\xce\x4c\x51\x8b\x5c\xcb\x94\x5a\x84\x46\xfb\xcd\x42\x71\xd1\x82\x9a\x08\x26\xc4\x85\x2c\xb4\x20\x00\x90\xb2\xba\xf9\x8f\x1e\x59\x40\x42\x91\x13\xab\x89\x29\x39\xbe\xf3\x6f\xe4\xd7\x97\x3c\x3b\xe0\xe3\xc7\xd0\x57\xed\x0d\x29\x4a\x0f\x82\x71\x07\x22\x54\xcf\xd2\x47\x42\xe3\x24\x67\xd2\xd7\x18\x74\x33\x28\xd2\x41\x29\xc8\xb1\x0c\x8a\x43\xe7\x53\xe8\xc6\x32\x6a\x04\xec\xa5\x35\xcb\xa6\x18\x15\xa6\x6d\x29\x50\x66\xdd\xbe\x68\x86\x04\xdb\xed\x9e\xe3\x51\xb9\xe0\x1a\x68\x52\x4c\xc3\x68\xf0\x1b\xf1\x24\x83\xd2\x66\xa8\x43\xd9\x38\xbf\xbd\x1d\xe1\x44\x88\xc9\xbd\xd4\x96\x2e\x59\x65\x0f\x15\x13\x18\x56\x86\xca\x20\x6d\x71\x34\x1e\x60\x7f\x6b\x0f\xc4\xf1\x22\x61\xdc\xb7\x1b\x61\x94\xf4\x2b\xc7\x04\xce\x07\x61\x0e\x6e\x9b\xb2\x16\xef\x2c\x76\xa3\xf5\x65\x2e\xf4\x8e\xc4\x0a\x12\x02\xe9\x12\x88\x23\xed\x20\x92\x22\x14\x6c\x23\x5c\x61\x5c\xa5\xa8\x16\x2e\x84\x82\x25\x10\x16\xc3\xe0\x06\x5a\xc0\xaf\xa0\xe1\xf4\x32\xac\x86\x44\x18\xb4\x99\x65\x13\x01\x94\x89\x99\xf3\x6b\x8e\xb4\x2e\x6b\x3a\x5f\x3e\x7a\x8e\x97\x39\x39\xde\x36\x2f\xba\xf9\x49\x5e\x24\xcb\x3f\x74\x56\x72\xc3\x34\xd7\x23\x6e\x42\x6e\xe0\x2e\x09\x50\x19\xb1\x14\x02\xb4\xaa\xcb\x1a\x09\x7c\x9a\x3b\x61\xa0\xc2\xa5\x13\x6c\x47\x8c\xa3\x00\x84\x53\xc0\x07\x3d\xd8\x72\x87\x5c\x99\x80\x4f\x4d\x4f\x4a\xd4\x79\xcf\x5b\x0a\x92\xc2\x24\x16\xc8\x7b\x03\xed\x19\xf3\x94\x59\xe1\x9d\xc0\xaa\x59\x56\x23\x42\xc2\xb3\x20\x6c\xab\x2b\x1a\x23\x9a\xe6\xa0\xf4\x0c\x73\x65\x37\xe3\x92\x3d\x73\x0a\x88\xb6\x60\x48\x70\x95\xce\xb2\xdf\xf7\x1c\xa8\xe5\x4c\xce\x4e\xff\x3c\x3d\x84\x60\x3b\xf3\x7d\xdf\x65\xe3\x54\x21\x0c\x07\x92\xf6\x13\x91\x0f\xf6\x1b\x62\x41\x06\xfb\x8b\xfa\x55\xbf\xa7\x76\x0f\xa4\xcc\xd9\x83\xe7\x70\xe0\x6d\x58\x24\x74\x4a\x91\x36\xa4\xb8\xd3\xc4\x14\x10\xf8\x58\x6d\xd0\x86\xe6\x67\xc3\xf6\x97\x24\xce\xcd\xf1\x9f\x51\xc7\xf2\xef\x7c\xa5\x7d\xba\x72\xbd\x48\x55\x74\xfd\x9a\x7e\x61\x40\xf2\xd3\xc1\x10\x9d\x6f\x6c\xdb\x97\x74\xa3\xbc\x80\xae\xdf\x56\x9c\xb4\x52\x14\x82\x0e\x84\x53\xc1\x89\x02\x45\x7a\xba\xb8\x82\xc3\x2f\xf3\x23\x92\x26\x4e\x62\x8c\x51\x96\x2d\xed\xca\x20\x75\xda\x92\xa3\xe3\xaa\x3c\xbb\x42\x62\x3a\x27\x06\x67\x00\xb1\xd7\xb6\xf2\xcd\xc3\x3f\x3c\x4e\x01\x38\xff\xd1\xb7\x6e\x4a\xe8\x6f\x6f\x61\x05\x06\x86\x14\x80\x7a\xe8\x6e\x2c\xac\x81\xd4\x1e\xed\x9c\x9b\x5a\xd5\x2a\xed\xe7\x11\x6d\x00\x1d\xfc\x98\x7b\xf8\x18\xd7\x7d\xae\x34\xf1\x6f\xf8\x87\x52\x46\x45\xa3\x08\x10\xa2\x9a\x88\x65\x6f\x07\xc0\xe7\x5e\x96\xf5\x86\x6e\xfa\x16\xb3\xdd\x58\xea\x91\x19\x84\xdc\x49\xb0\x42\x9e\xbf\x40\xf4\xa3\xa3\xbf\xfc\x77\x56\x20\xdc\xd0\x7d\xff\xcc\x7f\x77\xcd\x73\x53\x7a\xe7\x4b\x2f\xf2\xe5\xaf\x6b\x9d\x6a\xff\xbb\x1f\xfc\x1e\x25\xf9\x63\xe1\x88\x2a\x9f\xe2\x63\xfd\xa1\x6c\x67\x0c\x35\x10\xdc\x43\x11\xa4\x7f\x3a\x47\x4e\xed\xad\xbe\x72\xb5\x87\xd1\x0b\x9a\xf6\x09\x4f\x20\x0a\x8f\xc1\xc5\x08\xb7\x39\x18\x3c\x92\xa5\x64\x92\xed\xd3\x7a\x99\xd4\x98\x26\x48\x9e\xa5\x78\x22\x2e\x10\x98\xa7\x16\x4b\xf5\x17\x0d\xdb\x48\x21\x58\xc5\x93\x74\x83\xac\x04\x70\x64\xc9\x14\xb3\x4a\x13\x38\xfb\xe1\x07\xae\x05\xe2\x69\x0d\x1d\x16\x36\xad\x42\x73\x90\xd5\x97\x9a\xfb\x70\xb2\x29\x81\xcc\xf2\x1e\xc4\x2b\x73\xe4\x06\x95\x58\xe9\xa9\xfe\x69\x9a\xc0\x46\x77\x9a\xa9\x16\x6c\x64\xe0\x61\xc8\x5a\xff\x57\x24\x5d\x34\x15\x3b\x00\x53\x05\xc9\xd2\x23\xbb\x8b\x91\x21\x8d\x56\xe3\x91\xc4\xad\xb2\x9e\x7e\xba\xe1\x47\xdd\xdd\x4d\xbb\xe3\xda\xf1\xa1\xc3\xe9\x84\xc5\x91\x08\x54\xd7\xfa\x83\xe6\xd4\x24\xfb\x7b\x74\xba\x50\x51\xa1\xf5\xa2\x46\x83\xfe\x0d\xfa\x38\x20\xa8\x2e\x81\x25\xa2\x7c\xd7\x74\xb2\xbb\x74\x4d\xd3\xe3\x2f\xeb\x9b\x9e\xc3\x58\xe5\x15\x54\x32\xaa\xed\x88\x8a\xc6\x72\x78\xa2\x2d\xdb\x27\x8c\x0f\x21\x72\xe1\x62\xf3\x9a\x63\x7d\xe2\xae\xeb\x05\xad\xf7\x82\xa5\x9f\x73\x0e\x98\x31\x6f\xc7\x23\x08\x9c\xeb\xb0\x61\xcf\x1d\xa7\xd3\xa1\x3b\x6a\x09\x2a\x89\xe0\x66\x62\xb5\x64\x62\xea\x32\xb1\xf6\xae\x1b\x6c\xb7\xf6\xd7\xe3\x2c\x6d\x3d\x56\x82\x4c\x20\x46\x58\x97\x8b\xdd\xaf\x5d\x5f\xa6\x25\x63\x43\x5e\x5c\xe8\x26\x7b\x86\x89\x66\x1f\xd6\x92\xbd\xad\xfc\x68\x30\x35\x6b\x1a\xaf\xbe\x89\x0a\x7c\xe2\x1a\x6d\x66\x21\x47\x02\x6a\x68\xce\xa8\xe6\x6d\x12\x48\xb3\x26\x86\x50\x4e\x60\xc3\x5e\x35\x9a\x6c\xcd\x94\x6b\x75\x4b\x7f\x64\xe8\x7f\x87\x9b\xcd\x61\x9e\x3f\x9a\x9a\x7d\xe4\x32\x20\xba\x0b\xef\xd0\xe5\x5d\x9e\x47\x4e\x9c\x51\x23\x8e\x89\x0a\xd4\x67\x84\x45\x80\x44\x6b\xc5\x58\xb3\xd7\x86\xce\x89\x8b\x2c\xaa\xd9\x23\x48\xb7\xe6\x01\xfc\x0a\x0b\xbe\xd5\xc5\x67\x41\x83\xc3\x38\x26\xcc\x25\x2e\xe8\xdb\xd1\x5a\x0e\x19\xd3\xa8\x4c\x59\x36\x5d\x67\x6f\x4d\x96\x34\x2b\xa3\x81\xee\x41\x87\x23\xdc\xfb\x71\x31\xcd\xec\x8d\x11\x32\xcd\xe7\xb1\x3d\x40\xfa\x6c\xc4\x2c\x01\xe3\x76\xe4\xb1\xab\xae\x12\x10\x93\x26\xf8\x3e\xc3\x31\x71\x50\x0e\x38\xce\xcf\xe7\x3a\x70\xce\x23\x7f\x9c\x66\x00\xa7\x46\xe6\xb0\xc0\xea\xaf\xbd\xce\xbc\x77\xe5\x3e\x76\x25\x33\x49\x6d\x48\x08\xdd\x8e\x8a\xa2\x94\x39\x7c\xb9\xca\x0f\x3d\x50\x1e\xea\xaa\xae\x5f\xb7\xf3\xa7\xf8\x2f\xa4\x83\x1b\xbb\x8c\x0a\xd7\x45\x97\x94\x73\xf2\xcd\xa8\x9c\xf8\xa9\x62\xb5\x3f\x8b\xf3\xe3\xdd\xcf\x54\x6e\xe2\x41\xe5\xe0\x47\x9b\xc5\x5b\x68\xff\xfe\x1b\x1d\x5b\xac\xe1\x99\x6d\x58\xf3\xed\x81\x7c\x6c\x4b\x76\x7a\xa9\xa9\xcc\x7d\x99\x06\x11\xec\xcf\x1c\x6d\x33\x17\x2b\x31\x9c\xaa\xba\xdb\xc3\xd0\x12\x07\xa0\xf0\xd5\xac\x39\x86\x6f\x0a\x22\xf1\xe6\x92\xc8\x30\xdd\xaa\xf5\x0d\x6e\x8a\xd7\xe2\xc9\xcd\xbe\x46\xb8\x91\x22\x43\xcd\x2c\x6a\xdc\xd9\xea\xe6\x17\xfa\x07\x6d\xba\xb3\x10\xd7\x37\x01\xa9\x1e\x6b\x01\x7c\x6c\xd5\x17\xcb\x35\x47\x8e\xf6\x51\x44\x30\x7f\x86\xe4\x92\x86\x14\x22\xe0\x3b\x0a\x89\x84\xe1\xb4\xe8\xc4\x7b\x7f\x98\x3f\xcd\x0f\x86\xf3\x7d\x73\x58\x2f\x98\x95\x56\xac\xf5\xdb\x9a\x2d\xf5\x9c\xda\xb7\x12\xc7\x59\x91\x77\x27\x7c\x0e\x52\x27\xd8\xb0\xce\x69\x84\x16\x5b\xc2\x53\xb3\xf5\x00\xd4\xa5\xc1\x17\x4f\xcd\x28\xc8\x97\x5b\x18\xf6\xad\x06\x63\x8c\xea\xba\x2e\xbb\x34\xa9\x8b\xa6\xb8\xa2\xab\xd6\xbe\x35\x53\x6b\xc4\x39\x28\xe9\x98\x2d\x3e\x99\x1f\x66\xe0\x49\x78\xd9\x71\x19\x66\xe2\x7a\x96\x15\x97\x24\xf5\xdf\x64\x8c\x19\xe6\xfa\x89\x52\x20\x8d\x56\x8e\x58\x0e\x44\x30\xdd\xd9\xec\xa7\x71\xb3\x1c\xc1\xdb\x5c\xef\x6f\xba\xca\xe2\xec\xef\x2c\x9e\x14\x3e\xc9\x36\x1c\x43\x98\xe7\xb3\x52\xa3\x9d\xec\x18\x44\x4c\x55\x01\xdf\x32\x45\x93\x70\x69\x04\x16\x76\x36\x25\x72\xce\x71\x5e\x3d\xb5\x34\x8b\xaf\x67\x71\x3f\x1f\x2f\x4c\x84\x2c\x89\x63\x0d\xfc\xf0\xfb\x7b\x8d\x8d\xf7\x46\x82\xad\x61\xc3\xe2\x7b\x24\x21\xa6\x03\x57\x2f\xda\x72\x5d\xcf\x59\x38\x87\xc7\xe5\x00\x41\xf2\x25\x07\x53\x82\x7a\x4b\xd2\x39\xa1\x59\x07\x81\x96\x1f\x24\x3a\xca\xcc\x46\x2e\x81\x50\xe4\x0a\x95\xe4\xb0\xcd\x3b\xc6\xcc\x8e\x06\xd8\x3d\xdf\x2a\x3f\x9e\x5a\x6f\x25\x6c\x90\xee\xda\xb2\x14\x8f\x29\xd9\x0a\x4b\x91\x44\x37\x58\x92\xdc\x6e\x11\x7c\x50\x75\x44\x6e\x3a\x46\x94\x5c\x0e\xef\xea\xf4\xd3\xfd\x9d\x36\x9c\xdd\x65\xaa\x57\xb9\xf2\x88\xff\xec\x78\x27\xe1\x98\x67\x5d\x31\x75\x62\xd3\xce\x3e\x93\xce\x90\x84\x1d\x52\x26\x28\xe0\x6b\x6b\xb7\x51\x0f\xe9\xe0\x83\xc1\x5a\xc8\x69\x70\x70\xf3\x82\x4b\x34\x66\xa8\xc2\x19\x51\xc4\x7d\x34\x2c\x3c\xec\xa3\xf2\x41\x61\x82\x58\xa1\x90\x8f\x37\x21\x47\x34\x20\xb3\x89\xa2\xc5\xda\x41\xe8\xc6\xf8\xd8\x88\x32\x91\xf9\x76\xf1\x0b\xf4\x20\x1b\xf3\x9a\x78\x72\x47\xd2\xbf\x36\x6f\x69\x92\x17\x03\x6f\x8c\x71\x7b\xe2\xa0\x8b\xa8\x77\xb8\xb3\x8d\xf3\x2b\x70\xca\x09\x47\xef\x47\xa1\x25\xd1\xc5\x1d\xbb\x57\x4e\xbb\x55\x7a\x60\xf8\xbf\x87\x9b\x1e\xe6\x68\x1f\x39\x41\x34\x93\xe7\x76\x1c\x36\xf5\x1d\x15\x23\xde\x8c\x49\x7f\x74\x14\x06\x21\x31\xf1\x58\x65\x67\xed\x6b\x68\xd8\x86\x73\x8d\x4d\x96\x1a\xd9\x1a\x0a\x8e\xc7\x5f\x48\x6a\xb6\x38\x09\x83\xf8\x00\x69\xba\x85\x51\xf2\x0f\x4e\x7e\x95\xf8\x8d\xa5\x81\x3b\x9c\x1a\x2c\x1a\xc4\x6c\x30\x7f\xe2\x76\xc0\xdf\x44\x38\xfb\x83\x7c\x19\x32\x48\x72\x3b\xc5\x5c\x12\xee\x61\x05\x6e\x5d\x4a\xf9\xf0\x86\x0b\xd1\x95\x37\xf0\x56\x93\x64\xc0\x76\xe3\x23\xdf\x72\x61\x24\x41\xa2\x56\x2c\x0b\xb2\xe2\xa9\x63\xcf\x64\x18\x33\x56\x0c\x2b\x3e\xe8\xd9\xef\x05\x30\x94\x44\xe0\x21\x3b\x74\x0e\xaf\x53\x49\x9c\x65\xa1\xd2\x03\x63\x90\xaa\xf3\xce\x4e\xcf\x2f\x94\xf0\x43\x9f\x06\x00\x1c\x0f\xce\x3f\x1e\x6e\x5a\x3a\x3f\x15\xf5\xd2\xcc\xb2\x73\x53\x2c\x0d\x71\xcb\xac\x4c\xd3\x10\xa0\x3b\x1d\x85\x32\xf6\xc9\xa1\x25\x70\x18\xd1\x88\x1e\x8f\x44\x45\x74\xd0\xd8\x32\x63\x60\x27\xd0\x3d\x84\x74\x5e\x9d\x0c\xce\x14\x44\x21\x84\xb8\xc9\xfe\xcb\xa0\x8c\x8a\xb4\x1b\x7c\x89\x82\x48\xe1\x6d\x09\xe2\xd6\x6f\x33\x75\x28\x99\xd1\x41\x4f\xc8\x99\x0b\x19\xfe\xea\xae\x21\xb8\x0d\xad\xa3\x0d\xfa\x16\x39\xa1\x23\xdd\xcd\xb0\xa5\x99\xd3\x23\x9c\xc7\xcb\x32\x09\xc7\x6e\x09\xea\x9f\xd0\xc6\xef\x9f\x78\x18\x11\xf4\x88\xf1\x35\x4b\xf8\x91\x4b\xd2\xca\x11\xd4\x56\x72\x51\xcd\x35\x27\xd5\x04\xc4\xb2\xce\x6f\xe7\x17\x48\xc8\x39\xc1\xf0\x27\xfb\x5d\x53\xee\x33\x8b\x49\x94\xab\x13\xa3\x33\x1c\x55\x11\x99\xb7\xc5\x31\xe5\x2b\xf6\x3a\x84\xa4\x5a\x56\xfc\x07\x77\x54\x04\x03\x73\x63\x9a\xa0\x96\xd3\xc1\xba\x68\x15\x49\x5a\xa7\xde\x6f\xec\x03\xdf\xc4\x11\xa1\x83\x24\xd6\xb3\xf1\x70\xd9\xd8\xe0\x62\x52\x89\x3f\xe0\x45\x72\x11\xb7\x22\xad\xc1\xab\xfe\x20\x8b\xc3\xc1\x72\xce\xdd\xbf\xd9\x96\xce\x2b\xd3\x6c\x25\xf5\x20\xcb\x74\xea\xe6\x16\x57\xa0\xf3\xc7\x1a\x63\xe5\x4e\x42\xa0\x37\xab\x10\x19\xa7\x13\x43\x4b\xbc\xcc\x9f\xa6\x7b\xdd\xc1\x8c\xc2\xc3\x26\x60\xf5\x46\xd4\x2a\x51\x3c\xf8\x00\x2e\x22\x6b\x2a\x01\xdf\x45\x19\x44\x47\x0b\xfa\xe0\x54\xb4\xea\x2c\x0b\xef\x4f\x5d\x17\xdc\x52\x39\xf1\xe0\xe5\x95\x88\x57\x21\xea\xd0\xd1\xa2\xa2\x92\xf7\xa8\xda\x24\x2c\xd9\x65\xe2\x0f\x94\xaa\xe1\xf0\xa3\x28\x79\xbd\xf2\x68\xb2\x71\xd6\xd8\xf0\x8d\xd0\x11\x49\x8c\xd8\x64\x1f\xfe\xee\xfc\xf4\xc5\x81\x0e\xf3\xcd\xe1\xcd\xcd\xcd\x21\x6a\x1f\xf6\x4d\x09\xab\x40\x6e\x73\x1d\xf7\x01\xb2\xdd\x7f\x69\xbb\xd5\x17\x1f\xd3\xbf\x1f\xcd\x32\xb6\xe4\xa7\x9c\xaf\xbb\x23\xbc\x3d\xc1\xa8\x51\x74\x3f\x61\xf3\x14\x9e\xdf\xa9\x19\x52\x35\x3d\x64\xe1\x1d\x03\x9f\xf1\x2d\xbe\xcb\xb1\xb4\xa9\xdf\x70\x14\x06\x18\x64\x5e\xbb\x6a\x2c\x5c\x51\xf0\x4f\x52\x50\x9a\xd5\xeb\xc5\xc4\x7b\x54\x03\x88\x82\xba\x8a\x5f\x54\xd8\xfd\xba\x62\xdf\xac\x01\x98\xb7\x05\x46\x25\xbc\x8e\xb2\x5b\x7e\x2f\x4a\x0e\x5d\xd8\xf1\xc2\x18\xbd\x27\x4d\xd8\xf5\x7a\x21\x7e\x35\x6a\x90\x1d\x25\xeb\xaa\xbc\x9d\x1f\x11\xaf\x8b\x30\x6f\x6d\x58\xd7\x13\xe5\xba\x7c\xb3\x51\x65\x4e\x17\x69\x41\xbb\xd9\x9a\xa3\x2e\xad\x8c\x3e\x27\x75\x40\x0c\x88\xc3\x29\x06\x2d\x48\xaa\x05\x76\x58\xb5\x87\x1b\xeb\xf2\x22\xe3\x50\xb3\x19\xcf\x25\xd6\xac\x27\xaa\x46\xe6\x97\x3d\x85\x82\xae\xc7\x6c\x42\xe2\x77\x6a\xcc\x9a\x4d\x69\xc9\xa2\x06\x3c\xb0\x97\xe8\x34\x86\xe4\xd1\x22\xa2\xb0\xf8\xe5\xce\x5f\x33\x2d\x2b\x4b\x0a\x55\xcd\x9a\x3a\xfa\xee\xfd\xce\xc3\x91\x0f\x07\xd7\x23\x5f\xd9\x0f\x16\x9f\x78\xfd\x90\xe6\xde\x4c\xf0\x76\x20\x25\x4c\x47\xdc\xfd\xf7\x82\x73\xfe\xca\x81\xa0\x75\xe0\xdc\x25\xc2\x74\x7b\xae\xab\x9d\xe0\xe2\x3d\x97\x95\xd0\x2c\x6c\x9b\x3f\x24\xda\x26\x05\x4f\xba\x7c\x1a\x36\x58\xe4\xc8\x33\x21\xb7\xb8\x4e\x9c\xc2\x6f\xba\x0b\x71\x0c\x5a\x28\x5b\x80\xdc\x3e\x9c\x36\x79\x6d\x90\x70\x9a\x7d\x86\xda\x01\xeb\x97\x9e\xdc\x09\x62\x2b\xc7\x2a\xd0\xdb\xc0\x4b\x26\x4e\x01\xe7\x00\xe3\x00\xe9\x1c\xe2\x5f\x67\x5d\xe8\x80\x5b\x71\x49\xac\x9b\x84\x26\x0c\x8e\xae\x44\xd8\x69\x6c\xe0\xa0\x6c\xf4\xea\xcc\xf0\xd8\x93\x40\x56\x89\x06\x37\x51\xa7\x91\x18\x5a\xd6\xb7\x49\x9e\x1e\x1a\xdf\x13\xfe\x3a\x98\x68\x00\x15\xff\x45\x17\xd0\xee\x55\x49\xf5\x22\x6e\x4d\x6e\x02\xc9\x34\xc5\x77\xb1\x6e\x12\x79\xd0\x0b\x1d\xf1\xc4\x0b\xbc\xf9\x57\x45\x86\xe7\xb6\xbe\xec\x6e\x68\xf7\x26\x12\x5b\x6a\x2a\x98\x18\xfd\xd4\x1d\x3a\x1e\xe2\xbe\xe0\x71\x2c\x49\x32\x8e\xdf\x14\x44\x1e\xb7\x9e\x46\x92\xef\x69\x7d\x2a\x96\x9c\x73\x15\x4f\xaa\xd2\xee\x8c\x14\x1f\xb5\xfd\xee\x88\xf1\x29\xec\x4d\x2b\xd7\x7d\x17\xf9\x70\x3f\x4c\x54\x1d\xe9\xdb\xf7\x0e\x31\x28\xe0\x59\x6e\x6a\x5b\xa7\xb8\x75\x8f\x2e\x8d\x35\xa1\x7b\xfd\x2b\xee\x1c\x91\x0f\xd2\x98\x1e\xc7\x7e\x77\x8b\xbc\xb8\xbc\x9c\x91\xc4\x79\xd3\x22\x2a\xbb\x6f\x56\x92\x0c\xfe\xeb\x5a\x08\x04\x17\xc3\xb1\x80\xf6\xdb\xd6\x14\xfa\x41\x2c\x92\x73\xf9\x47\xbf\xb1\xfd\x36\x7d\xb3\x81\x9f\x77\xcb\x9e\x50\xa9\x1c\x8b\x90\x3b\x87\xb3\x42\x72\xb5\xf6\xaa\xbe\x59\xe0\x2f\x8e\x28\x6f\xe7\xcf\x6b\x7e\x9c\x83\xb1\xda\xed\x7e\x6d\x91\xc9\x8d\x49\x3a\x9a\x71\x75\x00\x29\x8b\xe0\x2e\x48\xe4\xcb\x30\x23\xd3\x78\x50\xd0\x61\xda\x0e\x16\xa0\x6c\x68\xfa\x67\x1b\x41\xd8\xb8\xdc\xca\xde\x88\x01\x1c\xaa\x88\xf4\x3c\xfe\xf6\x85\xfe\x62\x1f\x7d\x4e\x39\x05\xa4\xa9\x6d\x5e\x12\xd5\xb2\x76\x68\xb6\x27\x0e\xc0\x15\x4b\x84\x06\xff\x2d\xca\x99\x08\x2c\x40\xe5\x8d\xb9\xec\xe6\x2f\x4d\xbb\xea\xf9\xa1\x3a\xf7\x9d\x2e\x75\x57\xf9\xac\xd9\xfd\x72\x38\x59\x99\x90\x85\xb5\x38\xc1\x49\x66\x17\x70\x57\xc0\x16\x37\xab\x6e\x4b\xee\xa3\x81\xcc\x35\x0f\x98\x48\x30\xc8\x8e\x10\x4c\xca\x1e\xb6\x2e\x39\x5e\xce\xdb\xff\xda\x3d\x73\xea\x7b\xe5\xad\xb4\x88\x1f\x6e\x3c\xe4\x87\x7a\x02\x48\x67\xd6\x69\x16\x09\xfa\x10\x97\x32\xa3\xfa\x44\x92\xe8\xa5\xb5\x7c\xcc\x99\x4b\x27\xc5\x75\x43\x20\xca\x01\xb8\x94\x15\x4c\xb9\x28\x62\x12\xc2\xe5\x1b\x55\xc2\xf1\xdb\x2f\x83\x15\x5a\x24\x84\x17\xc3\x79\x35\x9c\x93\x63\x70\x6f\x48\x30\x59\x6c\xf2\x88\xfe\xf2\xee\x8a\xaf\xc0\xe7\xa6\x79\x8d\xd7\x47\xc4\x0d\xce\x35\x70\xd3\x14\x9c\x5b\x9c\xf3\xef\x35\xc9\x3a\xf2\x93\x3a\xaf\xdc\x9b\x39\xcd\xb8\xd3\xd8\x4f\xfe\x44\x0d\x9f\x48\x64\x18\x79\x86\x86\x4a\x60\xd5\xf9\x51\x0e\xa4\xe2\x5b\xb3\xd7\xd6\x6c\x36\xb5\x6f\xc6\x59\x15\xdc\xfb\x27\x24\xef\xfe\x72\x5d\x98\xc9\x4a\x8a\xff\x57\xc8\x7f\x42\xe3\x15\x6f\x52\x66\x34\xa3\xbd\xc0\x4f\x98\x40\xeb\x2b\x9a\x1b\x23\x4a\x2a\x7d\x58\x47\x62\xb3\xd9\xf9\xd0\x3f\x2f\x15\x0f\x10\xcb\xc4\x9c\xa4\x2c\xd7\x78\x2d\xf8\xf5\x12\x39\x17\x6a\x8d\x1d\x1f\x0f\x16\x95\xdd\x01\x11\xff\xbc\x71\x43\x6e\x17\x2e\xd4\xdb\x49\xd3\x38\xfe\xce\xdd\x5b\x45\xef\x27\xe4\x2f\x30\x17\x5e\x49\x75\x25\x55\x60\xdd\xac\x7f\x88\x32\xf9\x26\xe1\x0c\xa3\xb7\x65\x03\xd8\x20\xe0\x9a\xd8\xa4\x8a\xd6\x23\x56\xfc\xfd\xb3\x7b\xb6\x6a\xd5\x8b\x06\x4d\x62\xae\x25\xe2\x7a\xe6\x03\xbd\x90\xe0\x53\x1c\xa8\x06\x7d\x71\xf0\x95\x30\x9b\xb9\x67\x4a\xd9\x6b\xc7\xd6\x5b\xce\x16\xc8\x86\x71\xce\xcd\x8a\xb7\x2f\xf1\x6e\x12\xec\x95\xf0\x4f\x2a\x72\x64\x88\xa3\x2d\x46\x92\xad\xe4\x1a\x26\x16\x92\x53\xc0\x22\x2a\x0a\x89\x1f\x55\x89\xd9\xce\x45\x69\xe9\x3f\x27\x19\x25\x07\x6f\x86\x44\xa1\x69\x68\x32\x7e\x04\xe4\x44\x53\x85\x03\x41\x63\xbf\x88\x90\x7b\xd8\xe1\xd5\xc1\x73\xc9\x1d\x15\xc2\x7e\x05\x9b\x86\xb0\x59\xe1\x6c\x74\x21\x79\x1b\x6e\x34\x56\x40\xaf\x73\x4d\x75\x2b\x6f\x78\xb0\xa7\x56\x3b\x8b\x3a\x72\x2d\x3e\x11\xf9\x0a\x2f\x65\xb1\x94\xe8\x2a\x7e\xa5\xb0\x7a\xe9\x7b\x96\xe1\xf7\xac\xc4\xe5\xd8\x6f\xf8\x1d\x2a\x4b\x20\xca\x9b\x28\xbf\xae\x64\xfd\xfe\xea\x9d\x91\xc5\xa9\x86\xf8\x5f\x37\xb4\x38\xe9\x7b\xf6\xd7\x9b\xf0\xf7\x26\x80\x8c\xb5\x79\x51\x26\x48\xff\x79\x5f\x4a\xc8\xbd\x66\xf4\x20\x9b\xed\x1f\x68\x5a\x27\x0a\x81\x1d\x3e\x72\x34\xc8\x74\xbb\x2f\x7f\xdf\xd0\x30\x4f\xd5\xfe\x1a\xbb\x7c\x6c\x45\x9d\x90\x42\x07\x69\x07\x4f\x13\x9b\xab\x64\x1b\xd4\x2a\x41\xbf\xab\x44\x22\xd1\xef\xde\x61\xe5\x1e\xd0\x99\xa1\x88\x3a\x4c\xe0\xc1\x37\xcc\x3b\xea\xdc\x9d\xd2\xc3\x8e\xf3\x0a\xff\xb5\xb9\x3d\xf6\x58\xa1\xee\x4e\xf2\x31\x1c\x35\x88\xd5\x44\xa6\x8f\x77\xcc\xd5\x93\xb8\x89\x74\xc9\xff\xc2\xf4\x1f\x53\x56\x9c\x20\xa0\x7b\x7b\xce\x1f\xec\x52\xdf\x4e\xe5\xa3\x6d\x7c\xe6\x04\x3e\xdf\x41\xe1\x34\xf9\x36\x6d\x40\x25\xa7\xcf\x30\x13\x54\x40\xaf\x04\xb9\xc2\x57\xf3\x90\x87\x36\x2d\x70\x14\x94\x2e\x09\x0c\x4f\x33\x78\x44\x50\x62\xe1\x45\x62\xc4\xc9\x82\xa8\x3e\xaa\x8f\x7a\x89\x53\xa0\xb8\x6f\x6a\x72\x7b\xce\x97\x55\xf8\x8c\xd4\x7a\xd6\x94\xf3\xd3\x55\x5f\x32\x2f\xec\x0a\x44\x78\x73\xb1\xdd\xe1\x3b\x31\x0e\x1c\xa3\x50\x44\xdf\xf4\xfe\x74\xce\xe7\x76\x65\x25\x67\xbb\x7b\xb4\x67\x94\xd9\xd8\x39\x27\xd0\x35\xcb\x49\x43\x95\x3d\x62\xc7\x4a\x31\x01\x2a\xa3\xfd\xf9\xa8\x13\xbc\xb7\x14\x2e\x68\xe4\x2f\xe2\x84\xd4\xb8\xa0\x67\xc8\xf2\x3c\xc7\x1b\x57\xa6\x39\x6c\xad\xfb\x2a\x23\x16\x45\xbf\xfb\x06\x6e\x47\xd3\x54\xcd\x8f\x7c\x42\xc1\x67\x74\x36\x7a\x34\x38\x02\x8a\x32\x3d\xf8\xab\xca\xa7\x4a\xb2\x1c\x02\x24\xf1\xe8\xa3\x07\x8d\x69\x2b\x9b\x99\x6b\x91\x79\xe0\x71\xbf\x27\xac\x56\x37\x53\x50\xe3\x8e\x5d\x8a\x9c\x95\xd9\x9a\xb7\x92\x42\x84\xbb\x1d\xbf\x51\x76\xc0\xce\x81\x8c\xda\x4b\xb6\x6c\x07\xc5\x23\x9d\xaf\xd6\x8f\x4a\xdf\xc0\x4e\x47\x35\x7a\x7f\x64\x0c\x3b\x85\x94\xc1\xd8\x42\xbf\xec\x0f\x9f\xd9\xa9\xb7\xd4\xa2\x71\x3a\x65\x46\x73\xc8\xca\xcc\x5a\x5e\x79\x1d\x7a\x6b\xc8\x50\x5c\x22\x81\xb8\x7b\xef\x2d\x94\x0f\x99\x21\x68\xde\xf7\x5d\xd1\x52\x2e\x7e\x37\x23\xb6\x05\xc7\xa8\x95\x04\xee\x82\x9a\xae\xee\x90\x3a\x6b\x40\x2d\xf6\x90\x8a\x60\x1e\x71\xe0\x7b\xdd\xb5\x42\x25\xcd\x0f\x31\xa4\x2f\x32\x4c\xc7\x76\xca\x49\x6e\x87\xbc\xe0\x6f\xba\xf2\xa5\x82\xcb\x7d\x05\x8e\x34\xb9\xb3\xd2\x76\xa1\x9f\x62\xc6\x4e\x49\x49\xa0\xaf\xcf\xbd\xd9\x3e\xad\x11\x35\x3c\x75\x4d\xec\x07\x0e\x99\xf5\x92\x6d\xe5\xae\x85\x3d\xd7\x40\xe6\x51\x62\x47\xc7\x54\x6e\xcc\x3c\x7a\xf1\xdb\x65\xc2\x4f\x16\x6e\x36\x35\x9a\x28\x8a\x47\x99\x54\x5c\x4d\x92\x00\x4f\xef\xa9\x94\xe1\x89\xc8\xc7\x70\x37\x9d\x04\x3e\x99\xd3\x9a\xda\x28\xb7\x18\xe7\xdd\xd4\x3d\xa0\xa4\xc8\xef\x89\xcf\x95\x30\xc6\xaf\xc0\xde\x41\x74\x5c\x1f\x03\xca\x33\x1e\x4d\xf7\x5e\xa3\xb1\x42\xa0\xa2\xd1\x3c\x4f\x46\x53\xf2\x68\x86\x44\xe6\x3d\x86\xa5\x6f\xb1\xbe\xff\xb0\x22\xb3\xd0\xd1\xe4\xe1\x99\x18\xda\x41\x3c\x32\x1b\x68\xcc\x24\x79\x79\xef\xa1\xef\x7f\x39\x60\xbc\xb7\xfd\xd1\x09\x5e\x51\xd1\xf1\x89\x2b\x8f\xeb\xaa\xe7\x0d\x7b\x6b\xfa\xdb\x38\x34\x5b\x91\xc4\xaa\xaa\x1f\xe7\xd1\x39\xca\x76\x13\x3f\xa6\xd7\xf1\x2b\xbd\x79\x44\x6a\xe3\x9c\x3c\xc9\x0b\x20\x50\x22\x1d\xd6\xe9\xa3\x13\xdf\xf3\x8a\x91\xbc\xef\x9f\xff\x9c\x87\x37\x3e\x57\xfe\x8d\x4f\x98\x31\x5b\x6f\xc3\x94\xf4\xfe\x9e\x0d\x1f\xe7\xf9\xbf\xf3\x15\x86\x9e\x98\x7e\x7e\xd3\x82\x05\x9d\xa3\xe8\x85\x0b\xae\x2b\x0e\xf6\x03\xe9\x04\x69\x66\xd8\xbf\x8d\x04\x26\x9a\xd6\x86\x6d\x9a\x69\x56\x6a\xbc\x47\x56\xa1\xcf\xf9\x73\xf9\xd7\xe9\x0e\xd9\x49\x8d\x64\xc5\x35\x33\x60\x98\xba\xd1\x44\xa3\xfc\x4d\x13\x8d\x22\xd7\x23\xdd\x03\xf3\x0b\xfc\xf7\xf3\xec\x21\x3f\x47\xe0\x91\xc2\x5a\x5a\x28\x50\x64\x33\x3b\x5d\x6e\x0c\xe1\xc3\x60\x20\x11\x46\xae\xf4\x51\x1b\xb7\x18\x3a\xab\x86\x7b\x9a\x08\xff\x83\x8b\x59\xc7\xcb\x59\x53\x65\x76\x93\x3d\x2f\x60\x15\xa7\xed\x30\x78\x9d\x57\x33\x5f\xfa\x37\x8b\xf0\x6a\x61\x8e\x57\x0b\xe3\x37\x41\xc2\xc7\x54\x1f\x13\x97\x38\xeb\x8e\xe6\xb0\x4d\xca\x06\xf7\x7b\xd4\x9c\x24\x0f\xe2\xa3\x16\x7f\xb7\x88\xdf\x2d\xd3\x46\x26\xfa\x54\x1f\xce\xf8\x13\x7b\xdc\x8c\xc6\x16\xb9\x7e\xa6\xdf\xe3\x6c\xa9\x71\x49\xeb\x5f\xf1\x48\x87\x25\xcf\xc5\xc6\xdf\x58\x23\x36\xe8\x8f\xd0\x54\xac\x35\xb9\x29\x07\x04\xc7\x85\xb1\xf8\x11\x7f\x0f\x21\x03\xf1\x57\x49\xc9\x12\x7f\xc1\x03\xee\x97\x46\x0c\xb2\xc9\xe0\x44\x1f\x35\x05\x1a\x25\x9d\xd4\x67\x6d\x22\x1c\x12\xc1\xe0\x9b\x6e\x62\x2f\xa6\x3a\xa6\x53\x2f\x8b\x4e\x03\xcb\x4b\xc0\xfa\xee\xef\x34\x48\xd3\xc3\xd6\x24\x31\x76\x31\x04\xe2\x76\xaa\x85\xa6\x98\xad\x39\x29\x9b\x04\xf1\x64\xa7\x78\x2c\xcf\x6a\xb8\x8a\x59\xd5\xdb\x52\x02\xa5\xee\xaa\xeb\xaf\x68\x49\xcc\xe1\x9a\x88\xf2\xd3\x4a\x4a\x43\xb3\x09\x51\x18\x43\xb7\xd1\xd0\xbe\xde\xfd\x45\x35\x7c\x77\xb1\xf5\x66\x2f\xff\x00\xbb\x6e\x28\x82\x05\x68\xfb\x7e\xcd\xc4\xc3\x9d\x6c\x66\x30\xd6\x91\x8b\xeb\xa8\x13\x56\x75\x22\xb9\x51\x71\x6d\x93\x51\x6a\x36\x54\xef\x9f\x35\xbc\xd8\xde\xd5\xd6\x00\xb3\x77\xb6\xf5\xfe\x18\xc6\xab\xe8\xeb\x95\xbe\xaf\x2c\x5e\xb7\x74\x09\x5b\xc9\x68\x5c\xc2\x19\xa9\xba\x6b\xa0\x71\x75\x3f\xc0\x13\x17\xd0\x33\xa0\x3d\x66\xd8\xb4\x38\xa8\x4e\xab\xaa\x42\x1f\x44\x08\x6e\xab\xd5\x82\xdf\xe5\x6e\xaf\xd8\xd2\xfd\xd2\x5a\xb5\x5e\xe0\x41\x63\x4d\x01\xf9\x68\x46\xc5\x1f\x4b\x8a\xa8\xe2\xad\x65\x13\x6e\xfb\x28\xfb\x90\xd6\xbb\xd2\x77\xc3\xa3\xa4\xed\xf2\xf0\x9e\xfd\x89\xd0\xe4\xe8\x70\x1b\xb8\x53\x92\x69\x91\x73\xf3\xae\x41\x4c\x6c\x9d\x01\x19\xd6\x55\x68\xac\x32\x6d\xfb\x57\x21\x6a\x3d\x72\xc9\x48\xe6\xe9\x77\x90\x77\x06\x49\xc8\xca\xc4\x1e\xf8\x10\xbe\xa5\x6d\x2b\x72\xbe\xba\xa0\xd4\x71\x22\xc1\xc1\x1b\x20\xab\xf0\xfc\x0a\x3f\x2d\xab\xd6\xcb\x7d\x68\x88\x07\x1a\x74\x7c\xfb\xc7\x17\x45\xf7\x4f\xed\x55\x87\xa5\xd1\x5e\x4d\x6e\x54\xa8\x9e\x1b\xea\x1a\xae\xf4\xf3\x73\xb8\xfe\xc2\xd1\xf9\x59\xb1\x66\xe5\x4c\x44\x98\xfa\x06\xb6\xe2\xc5\xba\x6e\x88\xb5\x24\xae\x68\xfe\x8d\xfb\xab\xe5\x68\xa5\xa2\x9d\x02\x67\xab\xc6\xed\xa2\xe7\x74\x62\xdf\x09\x93\x4b\x4c\x2c\x06\xea\x1f\x31\x09\xb5\x98\xed\x70\x75\xa0\xc5\x5e\xb1\x7d\x83\xf9\x90\xb4\x26\x8a\xf2\x84\x37\xd0\x5a\xf5\xb2\x03\xcf\x86\x78\x66\x85\x3d\x5d\x76\x45\x0a\xba\xad\x39\xff\xe7\xa2\x24\xc4\xf6\xdb\x05\xa6\xde\xce\x5f\xfc\xef\xbf\xa8\x5f\x1b\xc2\xf6\xb1\xff\xb2\x33\x18\xe0\x8a\x26\x3d\xa0\x83\xd1\xa5\xb5\x79\x5c\x21\x8a\xcb\x8d\x61\xa2\x3e\x92\x7b\xa4\x75\x9f\x15\x4b\xdb\xbc\xa3\xb2\x43\xeb\x95\x35\xdb\x08\xa9\x8c\x48\xdc\x6a\x4f\xe9\x7b\x0c\xcf\x70\x7b\x31\x03\x67\x20\x02\x98\xc0\x50\x5c\xaf\xc8\x4b\x1b\xd5\x31\x5a\x87\x18\xec\x76\x7f\x1d\x76\x4f\x19\xd7\x22\xa1\xe5\xbb\xb6\xde\x57\x4b\x4d\x77\xf9\xb8\x9e\xe0\x66\x62\x8c\xf5\xf2\x27\xbb\xa2\xcb\xeb\x94\xfe\xed\xc4\x21\x77\x88\x83\x65\x5d\x77\x90\xa4\xb6\xe0\x36\xd9\x0d\x31\xda\x8b\x67\x05\x0c\xcd\x8f\x1d\xc8\x80\xd9\x24\xe8\xbb\x90\x27\x95\xc7\xd8\xdb\x20\xef\x29\xf5\xd6\xf4\x2b\x12\x74\xe9\xa2\x49\xba\x3c\x41\x01\x04\x60\x59\xe5\x73\x82\xbd\xb3\xb2\xef\x7a\xa2\xa2\x76\x9e\x6e\xd0\x95\x59\x5d\xd9\xf7\xed\xfe\x18\xc0\x77\x57\xdf\x37\x00\xae\x3a\x35\x02\x79\x8a\x0b\xf6\x95\x65\xbf\x7a\x6d\x3b\xc4\xe5\x5d\x2d\xd8\x5d\x21\x34\xa6\xef\x99\x71\x75\x16\x0d\x1f\x33\x6c\xf6\x94\x60\xb3\x0b\xc0\x26\xd7\xe2\x8a\x56\x02\xea\x88\xce\xc4\x6b\x81\x2f\x8e\xf1\x3f\xd6\xb6\x92\xa1\xd4\x88\xbf\x5f\xa8\xb4\xa1\x67\x16\xbc\x9b\x6f\xe3\x94\x1f\xca\x70\xe7\x56\xc8\xaa\x93\xab\xc6\x2b\x8b\xfc\x53\x72\x3d\xaf\x6e\x57\xa5\x0d\xa9\xa8\x5e\xda\x55\xb1\x2a\x91\x02\x48\xc6\x12\x57\x62\xf9\x8a\x2a\x31\x89\x7d\x62\x5b\x16\x57\x32\xf7\xa8\xc3\x2b\xfb\x76\x5c\x45\x08\xa1\xab\x73\x66\x68\x05\x33\xa5\x82\x7b\x41\xb7\xc8\x37\x70\x37\xac\x1b\x89\x80\xba\x11\x48\x95\x11\xb0\xf6\x2e\xf4\x89\xf9\xdc\x10\xb4\x04\x48\x95\x84\x25\xf8\x45\x5f\x47\xa0\x2d\x69\xcb\x48\x6a\x76\x0f\x24\xe8\xd3\xe0\x75\x16\x5c\x7f\xa5\x32\x3f\x22\xe6\xcc\x32\xc1\x62\xec\x5e\xc3\x13\x18\xc7\xb7\xbb\x0f\x8e\xe9\xcc\xc5\x89\x34\xf7\xad\x4d\x66\x5d\x92\x22\xe1\xc7\x58\xfe\x76\x9f\x34\x15\x9d\xe6\xa0\x73\x5f\xf5\x8d\x77\x7d\x17\x9c\xe5\xea\x5b\x3c\xba\x95\x67\xf2\x36\xb8\xe6\x77\x78\xa1\x02\x37\xff\xb8\xc0\xc4\x6c\x13\x4f\x2a\xf2\x37\x75\xe9\xdf\x43\xdc\x3c\x3a\x1c\xb2\x67\x52\x35\x49\x39\xa4\x93\x62\x21\x40\x3c\xb8\xd8\x7b\x0b\xbb\x27\x7d\x0c\xd3\x81\x72\x4a\x62\xb1\x97\x26\xb5\x59\x6c\x5b\x24\x8f\xdb\x49\x6a\xa7\xbd\x2d\x0d\x1f\x87\x7f\x06\x43\x43\x56\x74\x92\xd4\x15\xe6\xca\x06\xcf\x11\x55\x59\x5f\x89\x79\x33\xf7\x53\xd8\xfb\x1e\x9f\xbe\xc5\x97\x3b\x7c\xdc\xf9\x28\x5f\x40\x87\xdf\x1f\xea\xe9\x91\xec\x8d\xa2\x5d\x84\xdd\x10\xa5\xda\xd7\x67\xc7\x78\x7b\x24\xc0\xbc\x43\x22\x40\x7e\x9f\x75\xe0\xc2\x37\xb5\x7f\xd8\xa6\x8e\xd0\x85\x85\xb8\xe8\xee\x6f\x41\x0c\x40\xbc\x97\xd7\xf0\xac\x26\xf2\xc4\x11\xe7\x53\xd8\x89\x14\xd8\x67\x1e\x3b\xc9\x04\xef\xb2\xbb\x26\x80\xef\x78\x87\x16\x6e\x00\x51\xc6\x31\xf3\x2f\x78\x88\xb6\x38\x2c\x13\x8d\x59\xdc\xef\xff\xd7\xd7\x68\x23\x4c\x24\x99\xa7\x04\x27\xef\x0c\x65\x92\x07\x38\x67\x1c\x9c\xf7\x5e\x64\x6a\xca\xb3\x27\x21\x43\xfc\x7b\xe0\x38\xc3\xdf\x06\x06\x0c\x71\x18\x24\x24\x33\xf9\x79\x6f\x22\x39\x7e\xc8\x21\xb5\x7b\xca\x97\x68\x3c\xf2\x61\x64\x5a\x95\xcf\x9c\xd9\xda\xb6\x2e\xb7\xb5\xbe\xe6\x2a\x65\x08\x8a\x68\xf9\x5e\x87\x82\xca\x7d\x1d\x27\x50\x16\x55\xa5\x52\x93\x3d\xd3\x58\x0f\x91\x38\xa4\x2c\xd2\x04\xd2\xcc\x24\xaf\xba\x81\x10\xb0\xff\xa0\x96\x87\x69\xc9\x87\x28\x73\xa9\x7c\x90\x87\x2c\x73\xff\xdc\x65\xee\x4b\xa6\x1c\xa2\xa2\x81\x27\x6e\xf0\xd3\xa3\x63\xb8\x44\x51\x34\x0d\x37\xf2\x55\x97\xcf\x74\xd8\xbb\xf9\xd3\x1a\xb9\x75\xe4\x03\x22\xc5\x90\xb0\x09\xe7\x54\xbe\xb0\x66\x27\xaf\xe6\x8f\xe9\xdf\xec\xc9\x8b\xe4\xb3\x7f\xaa\x91\x0b\xcf\xf4\xd7\x24\x88\x23\xcc\x47\x41\x16\x67\x9a\x20\xaf\x26\x42\xda\x6c\x36\xe6\xad\xad\x34\x42\x08\xb9\x25\xe9\xf0\x96\xa6\xaa\x67\xf2\x8e\x0b\x92\x09\xf9\xec\x7f\xe2\xba\xdd\xb3\xb0\x88\x6d\x54\x94\xbb\x5f\xd6\x62\x33\x52\xcc\xe2\x92\xe7\x4c\x69\x8f\x8d\xbc\xc3\xb3\xd5\x4c\xd3\x59\x1e\x12\x3b\x24\xd0\x34\x47\x5c\x8a\xd1\x1c\x4d\xc7\x49\x62\x61\xe9\x06\x86\x25\x65\x6c\x17\x68\x0a\x1b\xd3\xc7\xc0\x6d\xdf\xa4\xf0\x6d\xbd\xa4\xad\x36\x09\x2b\xcf\x00\x3a\x40\xff\x0a\x20\x43\x49\xde\x36\x19\xd4\xd7\xfc\xb7\xaf\xcf\xa6\x1a\x2d\x67\xf6\x61\x00\xb0\xc1\xcd\xb1\x68\xcd\xfc\x39\x09\xbb\x79\x76\x7e\xe4\x0a\xda\x4d\xb7\x95\x77\x17\xa6\xf7\x55\x76\xfe\xfc\xe2\x2c\x06\xf6\x3b\x64\x54\x12\xb6\x4a\x52\xa4\xce\x5c\x1a\x1d\xd1\xfa\x2d\xd7\x72\xde\xa9\xc6\x25\x85\x9d\x04\xf6\xee\x6c\x88\x1f\x8a\x82\xff\xc4\x41\x53\xbc\xc2\x9a\xf0\x9e\x56\xae\x4d\x63\x49\xaf\xdc\x10\x67\xd9\x2b\x4d\x33\x90\xfb\x9e\x41\xb3\xe5\x15\xaa\xd6\xa2\x2d\x9f\xc1\x77\xf7\x6b\xb3\xee\x89\x78\x3f\x3a\x78\x34\x4b\x8f\xeb\xa2\x2b\xdb\xe8\x81\x5a\xe2\xb9\xb6\x5d\xbd\x6e\xcc\x25\x5d\x45\x17\xcf\xce\x3d\x22\x5e\x17\x5b\x80\xea\x13\xf0\xf3\x6f\xf1\x86\x09\xc1\xbb\x37\xdf\x3d\x8f\x1e\xd5\xd9\xc2\x8e\x09\xcd\xc5\xca\xa6\x3c\xce\xb9\x46\x32\x67\x67\x47\xcf\x07\xa3\xe1\x1c\x5b\x8e\xcb\x8b\xc6\xa5\x3c\x5e\xcd\x6f\x67\x6c\x76\x3f\x77\xec\x7c\xa2\x84\xa8\xd8\x12\xfa\x25\x19\x8c\x36\x16\xb8\xb5\x6c\xf2\x05\xd8\x69\x1a\x93\x32\x2c\xc3\xd7\xe5\x99\x2b\x52\xbe\xc5\x93\xcc\xc0\x4f\xda\x9b\x2c\x35\x1b\x09\x5f\xe9\x2f\x41\x93\xe7\x63\x6f\xaf\x98\x3c\xa6\xaf\x9e\x0d\xdc\xde\x26\x07\xb3\xc7\xf7\x2d\x6e\x34\x62\x64\xc6\x88\xd8\x4b\x44\x93\x2c\x9a\xe2\x09\x76\x17\xe4\x42\xa8\x38\x5b\xdb\x93\xe7\x00\xdf\x5d\x49\xf2\xd4\xc0\x1b\x6f\x80\x3c\xfa\xb2\xae\x35\xd5\xe2\xd2\x3a\x16\xe2\x00\x47\x60\x4f\x8c\x75\xd4\x78\xc2\x8d\xa4\xed\xbe\x9b\x29\x11\x2c\x39\x0d\xdc\xa4\xa9\x0f\xa3\x70\x3a\x39\x5f\xc1\x6c\xb7\x69\x44\x6e\x78\x6b\x3c\x81\xb9\x86\x67\xac\x7a\x38\xef\x87\x8a\xa2\x2d\x27\x20\x46\xd7\x9c\x7e\xaf\x2f\x2f\x91\x80\x0e\xa9\x4e\xed\xfc\x39\x1e\x92\x3b\x95\x2f\xa1\x26\x5d\x0d\x38\x68\xd0\x11\xb2\xaa\x6d\x0d\xd1\xd7\x9f\xb3\x3a\x7b\x56\xaf\x99\xd7\xa9\x89\x8f\x8a\xa7\xd7\xf4\xfa\xe8\xbf\x7f\x7e\x1b\x4a\x0b\x15\x3f\xff\x54\x27\x70\xa1\xfb\x3d\x30\xe0\xba\x9a\xba\xee\xd2\x97\x5b\x5e\x9a\xe2\xed\x98\xcf\x72\xeb\x01\x1b\xe3\x6a\x21\x0f\x3a\x4c\x57\x65\xf2\xa9\x31\x21\x19\xc7\x5f\x08\x99\xd0\x16\x68\xae\xef\x5f\x1d\x8a\xbf\x7a\x1d\x7a\x5f\x81\x30\xa6\x9c\xca\x39\x7f\x8b\x26\x05\x2b\x9d\xee\xeb\x11\xa6\x8e\xd2\x03\xfc\x92\x81\x4d\x58\x96\xe5\xfe\x9d\xf6\xd8\x19\x53\x9f\xc8\x95\x12\xaa\x44\x2c\x58\xf8\x18\xf1\x3a\xe1\x63\xc4\xbd\x85\x8f\xc9\x20\xe3\x82\xb6\x2d\xa3\x35\x3c\x3f\x7f\x36\x55\xe8\x9f\xf9\x32\x12\x81\xcb\xe8\x7b\x80\xd4\x02\x6b\xe2\x64\x1f\x7c\x14\xd7\x89\x91\x3d\xfc\xee\xdb\x91\x06\xda\x3f\xe2\xc1\xf3\xcf\x1e\x64\x36\x7b\xd0\x15\xf9\x32\x6a\xc8\x5d\x26\x77\x9f\x49\xba\x58\xa2\x35\x51\x7d\x41\xf2\xd6\xf0\x9c\x13\x2d\x36\x56\xbd\x93\xa2\x24\x6d\xfe\xe1\xea\xe1\x69\x71\x37\x52\x7c\x56\xdc\x9d\x14\xc6\x87\xd0\xaa\x26\xd2\x46\x2c\x88\xdb\xe9\xea\xca\xc7\x58\x3d\xae\x3b\xed\x47\xea\xc6\x03\x95\x24\xd1\x2e\x69\x34\x87\xa7\xf8\x61\x9e\xc8\xfb\xdb\x9a\xbc\x43\x30\xfd\xca\x86\xb3\xe9\x9e\x90\x67\x0d\xe1\xe8\xd1\x79\xd1\x07\xe6\xe1\x31\x77\xad\xc5\x28\x51\x45\xca\x8b\xe0\xa7\xf0\x27\x8d\x23\x6f\x1a\x1b\xef\x0a\xc5\x04\x47\x0b\x16\x6f\x91\xfe\xd7\xae\x5e\xd3\xb5\xcb\x9f\xb3\xe7\x24\x99\x6f\xfa\x4d\xf6\x5f\xec\x6d\x76\x4e\xc5\xd9\x31\x8a\xc7\x03\xdc\x92\xcc\x63\xa2\xb1\xd5\x34\x3a\xfe\x16\x88\x9f\x84\x1b\x23\x90\x69\x51\xb2\x69\x51\x22\x92\x69\x44\xac\x8c\xbf\x0e\x0e\x18\x30\xd2\xd8\x2e\xb0\xde\x51\x9d\x97\x36\xd7\x87\xbc\xe5\x5d\x76\x9e\xd1\xa8\xbe\x4b\x66\xb0\x67\x43\xd9\x34\xd2\x57\x2b\xd1\x9a\xf4\xd4\x8d\xad\xd6\xe0\x2e\x0d\x49\x5d\x57\x7c\xd9\x11\x69\x89\xce\xb3\x44\x01\xb3\xa6\x8e\x28\xed\xe0\x3d\x33\x89\x0b\x0e\xfb\x66\xc0\x5c\x9d\xe1\x31\x54\x2c\xb0\x66\x36\x60\x9e\x2a\x5a\xb4\xfd\xd7\xd2\x78\xdd\x14\x7e\x4a\x36\x4b\x21\xdc\x02\xd3\x69\xac\x93\x6d\xfe\xf4\xe4\xd9\xe9\x10\x78\x4c\x4e\xb4\x60\x4c\x7c\xb4\x60\x9a\xd6\x88\x25\x7d\xef\x79\x66\xa3\xfa\x00\xf8\x8e\x99\xc8\xfe\xdf\x8f\x1a\x51\xa9\x27\xc0\xc4\x3d\x6d\x45\xb8\xa0\x7f\x39\x97\xd0\x1e\xc0\xe9\x97\xe9\xa6\x20\xe9\x07\xe7\x1b\xb6\x6f\x26\xfb\x6d\xad\x78\x9d\xed\x19\x26\x09\x19\xb6\x6d\xe3\xcb\xd2\x55\xd8\x36\xc8\x6f\x24\x19\xea\xaf\x6d\x2e\x19\xd7\x87\xc0\x0e\x68\x3f\x4e\x5d\xed\x30\x6a\xda\xe3\x85\x4d\x59\x97\x63\xfe\x36\x3c\xbe\x38\x6c\x02\x1d\x9d\x60\x35\x5f\x0c\x6a\xac\x57\x1e\x63\xa2\x2b\xbf\xb0\x1b\xb9\x35\x23\xfc\x89\xbe\x7a\x30\xcd\xb2\xb8\xb4\x83\x2a\xaf\x8a\xdc\x4c\x4d\xf6\xaa\xeb\xb6\x6d\x92\x05\x82\x1f\x93\x1b\xce\x6c\x6f\x8b\xa3\x79\x6e\x0b\x36\xad\xec\x5f\x1b\xf7\x9a\xc0\x00\x5e\x2f\xa6\xb9\x17\x6c\x30\x4f\x80\x56\xed\x88\x80\x92\x6c\x25\x04\xfa\x89\x4f\xf2\xf2\x8d\x7e\x4a\x38\x95\xbd\xdb\x38\x66\x4b\x00\x18\x31\x5b\xb5\x14\x7a\x37\xb3\xd9\xaa\xa1\xdb\xe7\x42\x1d\x74\x8e\xe9\x47\x28\x8a\x8e\xb0\xfb\xd4\xd2\x3e\xcd\xfb\x12\xc9\x29\xea\x0a\x42\x20\xbc\xbc\x3c\x7c\xf2\xc4\xc7\x2b\xfb\x36\x14\xf9\xf7\x41\x22\xdb\x49\x28\x95\x74\xd7\x03\xa3\x6a\x64\xb7\x88\xdb\xe1\x87\xf6\xb1\xc1\x35\x6f\x1e\x49\xb3\x31\xfb\xe8\x00\x27\x92\xf8\xba\x29\x10\x1a\x41\x80\x1a\x23\x7b\x6d\xf7\xeb\xaa\xa8\xa7\xc7\x12\x76\x43\xdc\x85\xf7\xe2\x73\xae\x70\xf2\x73\x81\x74\x42\xb1\x63\xdf\x8b\x81\x63\x9f\xab\x15\xb1\x64\xf1\xa7\xc5\x27\xf3\x94\xab\x75\x85\xe3\xa9\xb8\x92\x7a\x3b\x3f\xdd\xce\x62\x48\x16\x9b\xbc\x5c\x73\x5d\x88\xcf\x7c\xab\x83\x8a\x9c\x83\x87\x4a\x7b\xf8\x50\xae\xc0\x90\xfc\x90\x3e\xd3\x99\xa6\xdc\x64\x73\x4b\x1a\x56\x9b\x3d\x6c\x5d\x44\x6d\xe5\xf3\x77\xca\xdf\x79\x9c\x6e\x2f\x49\xd6\xfe\x49\x48\xca\xde\xc5\xed\x8d\x1e\xa3\xf1\x8f\x80\x50\xa3\x70\x94\xa5\x36\xc5\x05\x38\x0c\xe1\xe3\xb6\x59\x7d\xfc\x30\x7e\xe1\x43\xf3\xea\x44\x69\xef\xd3\x36\x65\x7a\xf2\x5a\xca\x23\x71\xd4\x83\x53\x17\xb2\x63\xa7\x2d\x8b\x36\x55\x1a\x47\x9e\x7c\x6d\xff\x91\x6f\x23\xcd\xd2\xaf\x56\xa9\x34\x3b\x7a\xdc\x9e\x26\xdf\x1f\x34\xf7\xa3\x4c\x33\xbc\xe0\xf2\x48\xfc\x04\x11\xca\x0b\x75\x59\x66\x32\x3f\xc8\xf7\x1b\xdd\x44\x0e\xf1\x1f\x35\xcf\xfb\x6f\x1f\x9b\xcf\x2f\x38\xde\x0f\x71\x36\x41\xb8\x40\xcb\xea\xb6\x49\x32\xa7\x64\xb3\xb8\xbd\xc2\x99\x67\x3a\xb3\x9e\x7f\x4d\x3b\x12\xb1\x5f\xb5\xb8\x41\x57\x12\x15\x7e\xf7\xea\x0e\x9a\x1d\xaf\xaf\x3e\x02\xf1\xa9\xcf\xdc\xcf\xaf\xf5\xc9\x53\x10\xbb\xf0\xd0\x70\x9b\x7d\x1a\x9e\xda\xa3\xfd\x8f\x94\xec\xb4\xfb\xcd\xba\x9e\x9b\xae\xd9\xfd\x8c\xb7\x01\xf1\x98\x27\x62\x7b\xf4\x45\x16\xbe\xfb\x8d\x84\xf7\xf0\x67\xf9\xf3\x93\x76\xfe\x09\xbb\x6a\x56\x9a\x20\xfd\x93\x0d\x7d\x20\x51\x06\x9a\x4c\xfe\x7d\x45\xbf\xf1\x34\xad\xfc\xca\xe9\x57\x5e\xe8\x8f\x1b\xae\x0b\xcd\xbc\x56\x25\x7a\x4c\x95\x77\x7f\x6e\xe5\xf7\x2d\xfd\x32\x95\xb4\xd3\xe2\x75\xfc\x9c\x5f\x40\xd1\xee\x5a\x4d\xc8\x4e\x5d\xc9\xcb\x28\xd2\xab\x7c\xbe\xaa\xfb\x86\x3f\xa2\x6b\xf9\x94\x9b\x5b\xfe\x82\xc7\xff\xf9\xc3\x8d\xb5\xaf\xb5\x41\x8c\x41\xdb\xab\xab\xee\x4a\x9a\xb3\x40\x14\xbe\xdd\x5a\x23\x8d\x99\x4a\x9b\x6f\xcc\xcd\xc2\x8d\xc8\x0d\x47\xbe\xba\xf1\xe8\x60\x18\xbd\x79\x53\x6f\x91\x78\xf9\x87\xf0\xce\xaf\x7b\xac\xf0\xa8\xa1\xe1\x21\xac\x02\xf9\xc1\xba\xe8\x2d\x64\x43\xff\x4a\xe6\x80\xb2\xe0\x37\xf4\xb1\xf4\xee\x01\x36\x8e\xd1\x82\x9e\xdb\x25\x55\x2f\xaa\x6d\xaf\x02\xf8\xf0\xed\x55\x49\x50\x18\x67\x84\xe3\xe7\xdb\x89\x08\xcf\xf4\x0d\x47\x5a\xfd\xc5\x92\x6e\xd3\x53\x84\xc6\x08\xc3\x1e\xdc\xe9\x3e\xfc\xdb\xbf\xe5\xa7\x1e\x48\x6c\xf9\xbb\xbf\xcb\x9e\x3f\xfe\x08\xe6\x2e\xf8\xff\xd7\x59\x59\x20\xf7\x22\xad\xd7\xcf\x74\xeb\x31\xe4\xc6\xbc\xf9\x3a\x01\xe6\x28\x7a\x76\x97\x67\xc3\xa1\x77\x97\xbf\x7f\xef\xff\x06\x00\x00\xff\xff\x7d\x77\x4c\x24\x81\xb7\x00\x00") func confLocaleLocale_ptBrIniBytes() ([]byte, error) { return bindataRead( @@ -4539,12 +4539,12 @@ func confLocaleLocale_ptBrIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_pt-BR.ini", size: 45002, mode: os.FileMode(493), modTime: time.Unix(1441457544, 0)} + info := bindataFileInfo{name: "conf/locale/locale_pt-BR.ini", size: 46977, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_ruRuIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\xbd\xfb\x6e\x1c\xd7\x99\x20\xfe\xbf\x00\xbd\xc3\xb1\x07\x82\x6d\x80\x6a\xc3\xf1\xef\xb2\x30\xdc\xf6\xca\x92\x63\x6b\x57\xb6\x35\xa2\xbc\x83\x45\x60\xb4\x8b\xdd\x45\xb2\x46\xdd\x5d\x9d\xae\x6a\xd1\xcc\x60\x00\x5d\xe2\xd8\x59\x79\xac\xc4\xe3\x6c\xb2\x19\x5f\xa2\x78\x67\x66\x81\x20\xd8\x16\x25\x4a\x2d\x8a\xa4\x00\x3f\x41\xf3\x15\xe6\x49\xf6\xbb\x9d\x73\xbe\x53\x75\xaa\x9b\x4a\x32\xfb\x87\xc4\xae\xaa\x73\xbf\x7c\xf7\x4b\x32\x1a\x75\x7a\x69\xd1\x6d\xcf\xbf\x9b\xdf\x9f\x1f\xce\xef\xce\x0f\xe6\xd3\xa3\xdb\xe6\xe8\xfa\xfc\xf1\xd1\xcd\xf9\x03\x78\x31\x35\xf0\xe5\x31\xbf\x83\x02\x47\xd7\x8f\x6e\xcc\x77\xe6\xbb\x50\xf0\x00\x9e\xef\xcd\x0f\xcd\x5b\x59\x79\xfa\xe8\x1a\xbc\x7a\x02\x2f\x1e\xce\x67\x50\xe0\x10\x9e\x67\x47\xb7\x57\x0c\xb6\x07\xef\x67\x50\x79\x4a\x55\xb0\x75\xfc\x63\x8e\x6e\xcf\x1f\x1e\xdd\x9a\xef\xcd\x77\xcd\x5b\xf9\xc9\x13\x27\x4f\x6c\xe6\x83\xb4\x3d\xff\xc7\xf9\x63\x28\xb9\xc3\x25\x4f\x9e\xe8\x25\xc5\xe6\x5a\x9e\x8c\x7b\xed\xf9\xb7\xd4\xc2\x2e\x8c\xe5\x33\x33\xdf\x87\xae\x0e\x7c\x57\xf0\xfb\xde\x7c\x7a\xf2\x44\xfa\xd1\xa8\x9f\x8f\xa1\x99\x6f\x60\xe4\x0f\xf1\x1b\xb4\x9b\xf6\x47\x58\xfb\x10\x2b\x1d\xfd\xfc\xe8\xb3\x93\x27\x8a\x6c\x63\xd8\xc9\x86\xed\xf9\x17\xf0\xf6\x11\x34\x32\x83\x77\x79\x37\x4b\xfa\x1d\xff\xe9\xe8\x63\xf8\x78\xdf\x1c\x7d\x32\xdf\xa5\xd9\x3d\xa4\x15\x38\xfa\x19\xfc\xbf\x7b\x74\xe3\xe8\xb3\x57\xcc\x0f\x4e\xcf\x1f\x99\xa3\x4f\x61\x5c\xf7\xcc\xab\xc5\x20\xe9\xf7\x5f\x83\x8f\x3b\x30\xb3\x07\x34\xb4\x5d\x73\x74\x93\xaa\xdf\x98\x1f\xc0\xaf\xcf\x0d\x0c\x49\x56\xe3\xe8\xb3\x57\x5f\xe4\x1a\x32\x9a\x7c\x52\x62\x9f\xb7\xb8\x57\x79\x39\x81\x81\xff\x0e\xba\xbe\x47\x55\x6e\xc0\x30\xa6\x47\x3f\xc3\x85\x3d\x79\x62\x9c\x6e\x64\x45\x99\x8e\xdb\xf3\x5f\xc3\xcb\x6b\x41\xa1\x19\xfc\x3b\x84\x35\x9c\xe2\x30\xe1\x1d\x14\xdf\x4a\xd7\x8a\xac\x4c\x71\xc6\xbb\xf3\xbb\xa7\x69\x3b\x60\xe2\x27\x4f\x5c\x4d\xc7\x45\x96\xd3\x52\xc0\x34\xe1\x3d\xb5\x3e\x4a\x36\xa0\xec\x1d\xee\x92\x16\xfa\x67\xb8\xbc\x65\x3a\x18\xf5\x13\x6c\xe6\x7f\xc1\xeb\xbb\xb0\x55\xb0\x0b\x27\x4f\xf4\x93\xe1\xc6\x84\x6a\xfc\x6f\xde\xd3\x93\x27\xba\xe3\x14\xca\x75\x86\xe9\x16\x34\x43\xc7\xe2\x3e\x0f\xc7\xd0\xb1\xd9\x81\x52\x8f\x5a\xad\xd6\xc9\x13\x93\x22\x1d\x77\x46\xe3\x7c\x3d\xeb\xa7\x9d\x64\xd8\xeb\x0c\x68\xff\xbe\xc5\x29\x1c\xfd\x14\x76\x96\xb6\x7b\x66\xe0\x09\x4f\xde\x14\x9f\xa9\x89\x5d\x5e\xa3\xb4\x07\xbb\xd5\x49\x0a\x5a\x3c\x03\x93\x3e\x84\x0d\x79\x8c\x15\xf6\xa0\xf0\x1e\x1e\x2c\xec\x62\x98\xe0\xe1\xfa\xcd\x7c\x1f\x8f\x1f\x9e\x53\x6c\xe6\xa1\x5d\x25\x3a\x55\x30\xed\x74\x90\x64\xfd\xf6\xfc\x8f\xf3\xc7\x2d\x2a\x75\xf4\x09\x76\x89\xcb\x51\x14\x5b\xb9\x1c\x42\x5a\xdc\xc7\x78\x8c\xc6\x69\xa7\xdc\x1e\xa5\x7c\xb8\x76\xf8\x2c\xc2\xd4\x93\x51\xd9\xdd\x4c\xda\x67\xf9\x2f\x8e\x60\x9c\x8e\x72\x58\xfe\x7c\xbc\xcd\xfb\x59\xb9\x28\xf3\x47\x27\x4f\xe4\xe3\x8d\x64\x98\xfd\x24\x29\x69\x33\xbe\x81\xd7\xf7\x78\xe5\xf1\xcc\xd8\x4d\x1f\x64\xe3\x71\x4e\x5b\x8e\x47\x12\x27\x08\x3b\x70\xf2\x04\xac\x72\x07\xbb\x68\xcf\xbf\xb6\x6b\x6b\x62\x17\x12\xfb\xc1\xb2\x83\x6c\x63\x4c\xbb\xf8\xb5\x2c\x00\xac\xc9\x57\xf0\xf9\x9e\x3e\x60\x58\x70\x3d\x1f\x5f\xd1\x8d\xce\x9f\xd0\xe4\x77\xe7\x7b\x47\x37\x0c\x0e\x2d\xda\x8d\xad\x0d\x53\x0a\xba\x68\x9a\x54\x32\x84\xb3\xc3\xa5\xbf\xa3\x1e\xf0\xfe\x3f\x26\x10\x33\x83\x3b\x14\xab\x07\x1f\x61\x2e\x49\x6f\x00\x7b\x3f\x4a\x86\x69\xbf\x02\x1e\xa6\x70\xdc\xf6\x09\x2c\xf8\x8b\xc3\xa3\x83\xdd\x4c\xba\xdd\x7c\x32\x2c\x3b\x45\x5a\x96\xd9\x70\xa3\xc0\x41\x4e\xa5\x18\x80\x03\x58\xd7\x19\xb6\xb0\x87\x0b\x0c\x40\xf0\x80\xcf\xc0\x82\xd2\x27\x4f\x6c\xe7\x13\x77\x8a\xf1\x2a\x4d\x8f\x3e\x95\xc5\xb2\x67\x58\xca\xf8\x56\xa8\x10\xf6\x74\x50\x6f\x8e\xd6\xaf\xe8\xac\xa7\x29\x1c\xb9\x7f\xc2\x95\xc0\x31\xc8\xd5\x91\x9b\x40\x2b\x30\x9a\xf4\xfb\xb0\xf5\x3f\x9e\xa4\x45\x59\xb4\x2f\xc2\x93\xb9\x24\x4f\x27\x4f\x64\x45\x01\xbf\x18\xc8\xf1\x58\xae\x1f\xdd\xc2\xc6\xbb\xc9\xb0\x8b\x4b\xf6\x0d\x34\xb3\x4f\xeb\x3c\xc5\xd7\x3f\x2a\xd2\x64\xdc\xdd\xfc\x00\xe7\x8a\x3f\xf8\x5c\x23\xe8\xde\xa3\xab\x7a\x8c\x53\x8c\x57\x8d\xab\xd5\xef\xd7\x67\x32\x22\xb9\xdc\x04\x3e\x76\xa1\x7f\xe8\xbb\x9b\xf7\xe0\xf5\x6f\x19\xf2\xc1\x40\xb2\x61\x51\x02\x6c\x84\x91\xc8\x2f\x38\x19\x72\xfd\x79\x09\xf6\x08\x1a\x65\x25\xae\x76\xf8\x05\xee\x2c\xac\xd6\x2d\x84\xbd\x04\x98\x71\x85\x19\x7f\xc1\x78\xf1\xd6\xec\x08\xd6\x62\x58\x0c\x60\xf9\x3a\xb7\x86\xab\x08\x10\xb2\xd3\x5b\x13\x8c\xf8\x25\xd5\x7a\x2b\xdf\x28\x0c\xed\x0e\xc0\x4d\x38\x0d\x08\xfa\x01\xa2\x9a\x77\xb6\x57\xff\xfa\xc2\x8a\xb9\x98\x17\xe5\xc6\x38\x85\xdf\x78\x1f\x10\xee\xc0\x4f\x68\xe6\x65\x58\x2f\x68\x49\x86\x18\x39\x5f\x80\x58\x11\x56\xe2\xe0\x08\x31\x22\xe4\xe7\x2a\x04\x51\x7e\x0f\xad\x3d\x69\x2a\xb5\x09\x9d\xb6\xe7\xff\xcc\x07\x61\xe9\xa2\x37\x00\x2f\xe8\x2a\x00\x8a\x8d\x03\x42\xfc\x89\x1d\xf0\x7a\xd0\xbc\x0d\x9d\x0a\x07\x46\x61\x59\x1e\x31\xba\xbb\x41\xc3\xa6\xed\xc0\xed\x05\xb4\x61\xce\x0f\x87\xf9\xb9\x37\x00\x77\x22\x44\x86\x0d\x76\xd8\x09\x9f\x1e\x99\x49\xb9\xfe\x1f\x3a\x1b\xe9\x30\x1d\x03\xf2\xed\x66\xb0\x6c\x45\xd1\x07\x24\x80\x07\x02\x0f\x19\x60\xd2\xf9\xbe\x59\x5d\xbd\x80\x13\x29\xf1\x4c\xc2\x96\xdd\x20\x24\xfe\xe3\x3e\xee\x97\x1d\x9e\xbc\x87\x5e\x0c\xdc\x39\xc0\x6e\x48\xc1\xc4\xa7\xa5\xf6\x28\x1d\x8f\x3b\x80\xd4\xca\xed\x8e\x34\x17\x74\x82\x8d\x71\x0b\x08\x87\x22\x2d\xe0\x95\xdc\x65\x6a\xe4\x01\x1e\x0d\x28\x0d\x9f\xa9\x26\x1d\x2d\xf8\x79\x6b\xbe\xdf\xc2\x43\x6d\xe7\x28\x47\x02\x08\x94\xa3\x9f\x33\x7c\x7b\x42\xdb\x32\xc5\xab\x88\x67\x04\x06\x8b\x87\x0e\xe0\x14\x10\x67\x21\xde\xa2\x6b\xf6\x98\x3b\x23\xd8\x76\xdb\x97\x72\x0b\xf1\x1d\x21\x06\x4b\x81\x10\xe6\xdd\x45\x82\x83\x69\xb1\x87\x78\x38\x2c\x64\xdd\x21\x18\xb4\x4b\x90\x1d\x4e\x13\x76\x7e\x1b\x49\x83\xa3\xcf\x61\x6c\xf4\xfa\x30\x02\x7b\x67\xcf\x30\x2c\xa8\xad\x15\x95\x3e\x40\x52\xb1\x01\x2b\xb8\x5a\x6e\xb0\x5f\x20\x35\x05\x64\x12\x2d\x2e\xc3\x7c\xb9\xbd\x31\xfc\x35\x43\x5a\xd3\xd0\x3d\xbc\x8f\xbd\x32\x45\xf6\xb1\x10\x29\x08\x26\x91\x04\x30\x47\xff\x80\x35\x70\xf8\x7c\xda\x08\x5f\xd9\x26\x10\x90\x4d\x80\xb4\x5a\x7c\x69\x6c\x11\xbf\xaa\x8d\x64\x83\x21\xca\xf9\x31\xef\x89\x3a\x00\xf7\xf9\x7e\xc2\x58\x9f\xd0\x39\xc2\x03\x71\x83\x08\x13\xbf\x54\x9f\x37\x2c\x95\x91\x72\x0a\x46\xc1\x61\xc6\x63\x81\x70\x25\x07\x32\x65\x88\x17\xf2\x90\xc1\xb7\x7d\xe5\x57\x95\xee\xde\x6d\x3e\x91\x48\x6c\xbf\x7f\xe9\xc2\x69\x44\x8a\xd8\x1b\x6e\xb0\x83\x89\x7b\x4c\xc3\x79\x92\x91\x8f\x15\x4d\x16\x6e\xdd\xdb\x74\x1f\x37\x3b\xa3\x7c\x5c\xb6\xe1\x91\xcf\xc9\x35\x84\x3a\xf6\xb5\xeb\xf4\x6b\x1e\xce\xd1\x35\x57\x68\x3e\x5d\xe1\xa9\xd2\xbc\x98\x82\xa8\x02\x0e\x1c\x22\x36\x4c\x54\x35\x42\x67\xf8\xbf\x85\x38\x9f\x81\xfa\x0e\x10\xb0\x74\x8c\xd5\x75\x5a\x31\x44\x97\x21\x33\x72\xcb\x50\xeb\x30\x0b\x38\xb2\x9f\xe0\x0a\xc2\xca\xf3\xb0\x37\xcb\x72\xc4\xe3\xc6\x5d\xc6\xe1\x98\xb7\x2f\x5f\xbe\xa8\x3e\x3c\xe5\xc8\x6b\xb7\x0f\x87\x45\x47\x91\x26\xc1\x2c\x13\x22\x1d\x1c\x44\x8b\x2f\xe6\x64\xdc\x6f\xc3\xda\x2f\xb8\xba\x50\xc2\x8d\xe3\x8f\xd4\xdd\x8d\x1a\x44\x30\x44\x0f\x55\x37\xf4\x78\x7b\x88\x73\x7e\x11\xff\x5b\x35\x42\x6c\x98\xf0\x20\xe0\x75\xa1\x9b\xb7\x27\x08\x8a\x19\xbb\x47\x9e\x00\xde\x25\xf8\x95\x8f\x90\x34\xf5\x00\xec\x77\x84\xd3\x3e\x95\x0b\x66\xaf\x6d\x8c\x9a\x21\xaa\xba\x19\x15\x7a\x5e\x13\xb6\x73\xc9\x58\x90\x7e\x29\x06\xb0\x7f\x8c\x02\xbf\x43\xc0\x3c\x7f\x6c\x56\xdf\xc1\x8d\xa5\x0f\xeb\xe3\x7c\x80\x00\xf3\xa1\x7a\xf6\x38\xc2\x92\xf4\x86\xd7\x59\x2d\xc4\x8a\xb9\xf4\xc3\xb3\xe6\xff\x7d\xf9\x07\x3f\x80\xd3\x47\x1b\x11\x05\xeb\x34\x17\x55\xd1\x62\x7d\x40\x39\x78\x75\xf7\x71\xf7\xcd\xb3\x0c\xb0\x9f\x35\xaf\x52\xf1\xff\x98\x7e\x94\x00\xdf\x94\xb6\xba\xf9\xe0\xb5\x16\x12\xbc\x40\x25\x8e\x05\x02\xfd\xb1\x36\xdf\xa9\x6c\x9d\x1a\xa9\xa3\x8a\x67\x9e\x57\x91\x56\xa2\xd8\xbd\xb1\x92\xe5\x1a\x3b\xdd\x7c\xb8\x9e\x8d\x07\x08\x2a\xc2\xcb\x43\x97\xf3\x3e\xf3\xf8\x50\xff\x01\x9e\x6e\x39\xec\x15\x2e\x53\x90\x01\x8f\xa4\x33\xcc\xcb\x6c\x9d\x08\x43\xc4\xb7\xb8\x36\x9f\xaa\x16\xe5\xc2\xee\x30\x68\xbf\x49\x02\x84\xfb\x74\xeb\x1e\xfb\xeb\x00\xeb\x01\xdc\x68\x07\xff\x64\xdd\xd4\x1e\x98\x3b\x1e\x2e\xd0\x09\x86\x85\x87\x06\xee\xf1\xf5\xab\x9d\x36\x75\x9a\xe0\xc8\xae\xaf\xf7\xb3\x61\x2a\xd4\x84\x9f\xa9\xbb\xbd\x48\x9d\x3f\x26\x5a\xe1\x80\x67\x47\xd4\x06\x52\x83\xba\x2a\x00\x8b\x11\x72\xe2\xdf\xd4\x20\xcd\xd9\x73\xef\x32\x59\xf0\x80\xb0\xa9\xe5\x8f\x66\x84\x65\x71\x19\x43\x61\xc9\xbe\xee\x64\x17\x20\xcc\x0e\x63\x3f\x4b\xae\xdc\x32\x7c\xa8\x00\x8c\x5c\x23\x69\xcb\x4e\x80\xeb\xae\x11\xfa\xbe\x4f\x7b\xea\x58\x7b\x43\x97\x7f\xcf\x33\xc6\x88\x20\xb2\x22\x59\x03\x76\x1a\xb8\xbc\xab\x49\x99\x8c\x63\x43\x57\xb7\x0e\x10\x8b\x14\xac\x57\x95\xb9\x9f\xe3\xd7\xae\xa0\x01\x4e\xdd\x74\x27\x45\x99\x0f\x4c\x01\x7c\x4d\x37\x2d\x56\x0c\xd0\xe9\x86\x3f\x17\x26\x19\xa7\x66\x32\xea\xe7\x49\x2f\xed\x99\xb5\x6d\x83\x87\xbd\x30\xf9\xd8\xf4\xd2\xf5\x64\xd2\x2f\xd5\x28\xf9\x4c\x8e\x1d\xe7\x1b\x19\xe9\x94\x44\x37\xd7\x09\x3c\xde\xb6\x48\x5a\x64\x2a\xb1\x53\x79\xf4\x79\xbc\x79\xbb\x93\xbf\x26\xb4\x7a\x8d\x24\x33\xea\xd8\x47\x90\x3b\xee\xd9\x9f\xd2\xff\x8a\xa1\x03\x8f\xc5\xf6\x10\x94\x34\x32\xa4\x1a\xca\xd0\x9e\x07\x3b\x5c\xe1\x43\x8f\x6e\xb5\x84\x51\x19\xa7\x56\x52\xd5\xb9\x9a\xa1\x90\xa5\x7e\xef\x2c\xd3\xe2\x45\x41\x86\x10\xaa\xa5\x84\x2c\x0b\xfe\xb9\x67\x90\x98\x49\xa4\xc9\xd2\x10\x8d\x1d\x2b\x8b\x80\xe2\x7d\xdb\x45\xfd\x7d\x38\x5f\xdd\x91\xc6\x4c\x82\x27\xa2\xeb\x8d\xf7\x1b\x97\xe3\x1e\x1d\x78\x35\x9e\x29\xcb\xb5\xdc\x44\xc2\x71\x1d\xdd\x5a\x61\x28\x73\xdd\xee\xa8\x34\xc6\x73\x91\xe6\x08\xec\xcc\x18\x5b\xd3\xf2\xa8\xf1\x62\x83\xc0\x1c\x43\x25\xa4\xb3\x2c\x96\x8c\xae\xd5\x0e\xc3\x22\xa0\x3a\x6f\xd6\x86\xd1\xb2\x32\x09\x61\xf3\x85\x93\x24\xc9\xd4\x01\xb3\x10\x4c\x29\x22\xa1\xea\x77\x9b\xc7\xd3\x2c\x2a\x5c\x28\xcf\xa0\x65\xc2\x83\x0a\xd3\xc0\x05\x00\x56\xec\x13\x84\x8a\x2b\x4d\x67\x1a\x57\xcf\x9c\x3f\x67\xda\xe6\x25\x5b\xe4\x26\x5f\xb6\x90\x66\x45\xe4\x66\x51\x08\x5e\x80\xd9\x92\x61\xc8\x7a\xf1\x6e\x41\x81\x4f\x08\xb1\xee\x11\xc5\xcd\xab\xd2\x4c\x02\xc0\x00\x8e\x7e\x89\x73\x67\x6c\xef\xe6\xbe\xa4\x53\xdb\xf0\xf1\xa4\x7b\x56\x5c\x14\x65\x87\x05\x21\x06\x9f\x35\x22\xbc\xef\x01\x85\xaa\xc5\x4d\x36\x89\x0d\x45\x78\xd1\xd9\xc8\x51\xe0\x13\xca\x29\xb8\x35\x66\xf4\xca\xb4\x28\x3b\x1b\x59\xd9\x59\x47\x9c\xde\xc3\x15\x52\x3c\xd1\x21\x1f\x81\x27\x72\x87\x76\x89\x43\xc0\xca\xcf\x41\x95\xe7\x98\xab\xde\xa7\x76\x01\x4f\xbc\x62\x4e\x5d\xb5\xac\xf1\xcb\x88\x94\x3b\x00\x91\xb3\x3e\x42\x42\x2b\x72\x42\x9a\xcf\xcb\x7a\xe5\x60\x12\xd6\xa7\xbb\x71\x8d\xf0\x13\x6e\x39\x91\xe6\xcc\xe7\xca\x61\x7a\x40\x68\x06\xb9\x7d\x9a\x8a\x61\xd9\x09\x9e\x37\x11\x00\xb0\xbc\x8b\x08\x83\xa9\x82\x91\x00\x84\x66\x84\xab\xaf\xd9\x17\x7e\x04\x9f\x33\x2d\x76\x0a\x10\x08\x8b\xb8\x76\xc3\xaf\x1b\xf9\xda\x24\xeb\xf7\x5a\xb8\x9c\x57\x93\x7e\xd6\x43\x09\x8d\xdc\xaf\x63\x4b\x56\xec\x2c\x2d\x45\x24\x63\x03\x48\xc4\x0b\x66\x9b\x56\x6c\xed\xd7\x42\xa2\x08\xe3\x81\x38\xdb\xf2\x01\x5e\x36\xb0\x8c\x8f\xe3\xd6\x1d\x33\x89\xfb\x31\x48\x4a\x14\xad\xfd\x9e\xa8\xbe\x9b\x24\x03\x78\xd4\x7c\x55\x69\xdc\x70\xbb\x77\x08\x19\x59\xe1\x53\x03\xf4\xdc\x05\x6c\x65\x61\x79\x20\xdd\x82\x61\x14\xe6\xf4\x6b\xf0\x3f\x9c\x8d\xe4\x6a\xca\xe4\xdf\xc6\xa2\xf3\x16\x70\xd6\x33\xc7\xe0\xc3\x5c\x7f\x4a\x92\xe2\x9b\x1e\xd7\x85\x4b\x18\x00\x40\x2b\x8d\xc0\xd1\x1c\xd0\x64\x1a\xd6\xb4\xc2\xf0\x78\x60\xf8\x74\x00\xc1\x0e\x85\xef\x5d\x31\xe9\x02\x61\x52\x30\xa7\x7c\x17\xcf\x88\x3a\xc6\x1e\x2d\x3e\x63\xe6\x5f\x31\xed\x85\x64\xfd\x2d\xcb\x5e\x22\x79\x76\x8b\xfe\xa3\xba\x53\xc2\x28\xc4\x82\x1b\x52\x96\x5c\x67\x24\x83\x6b\xcf\x37\x94\xce\xde\xae\xa3\x07\x48\x20\x76\x9d\xc4\x86\xb7\x89\x83\xfa\x11\x6a\xb8\x3e\x38\x79\x62\xc2\xe2\x9a\xbc\xdf\x43\x06\x60\x21\xd4\xfa\xcc\xf2\x17\x6f\x9e\x46\x18\xe3\x85\x79\xae\x7a\x00\xc4\x8a\xad\x0c\x0e\x57\xc7\x29\xcd\x70\x9f\xcb\xf4\x23\x62\x81\x79\x60\x15\x62\x9f\x77\xf4\x06\x9d\xc5\xeb\xc2\x79\xb2\x14\x9d\xa0\x72\x55\x1a\x4f\x7c\xc7\x36\xdd\x12\x58\xd5\xaf\x90\xd4\x6d\x10\xd4\x20\x40\xed\x03\xd8\xc9\x91\xf0\xba\x9a\xda\x2a\x77\x68\x76\xfb\xb4\x62\x37\x16\x4a\x7a\xa8\xa3\x7c\xbc\xc1\xfd\x2c\x52\x1f\x6c\x77\x58\x2d\xe2\x46\x84\x4c\xa1\x53\x8f\x00\x18\x26\x22\x85\xb5\x8b\xdf\x0a\xad\xfc\x50\x90\x2e\x5e\x08\x2b\x28\x6f\xc1\xb1\x25\x19\xbd\x8c\xf5\x0b\x2f\x1f\xdb\x6f\x1c\x24\xec\xaa\xe8\x1c\x3f\x10\x01\x79\x5c\x36\xce\x45\x93\x49\x89\xe2\x75\xaf\x1c\xeb\x88\x2e\xa2\x59\x49\x56\xa1\x00\x15\x0b\xb7\x99\x8e\x90\x01\x1c\x14\x74\xcb\x88\x03\xa1\x65\xad\x51\x8d\xaf\x9b\xf9\x2f\x34\x2d\x63\xc5\xb5\x78\x6a\x9f\x71\x8a\xcf\xe3\xb4\xab\xae\xe5\xd4\x01\x19\xa6\x51\xa0\x93\x3b\x81\xea\x13\x16\x01\xcf\x7f\x45\x69\x7a\xf4\xf9\x33\x55\xd2\x9c\xf5\x7f\x83\x51\x49\x6c\x3b\x41\x67\xd6\xec\x02\x87\x44\x0a\x3d\x78\xc9\x34\xf2\x81\x50\x27\x9f\x35\xb0\xa2\xa1\x30\x88\xf4\x1a\x70\x57\xbf\xad\x23\xae\x15\x13\xea\x69\x05\xe2\x2d\x02\x2d\x87\x96\x13\xc0\xa5\x9b\xd6\xd8\x17\x5c\x30\x22\x02\x7e\xcb\x74\xdd\x03\x27\xce\x24\x0c\xf7\xb4\x4c\x35\xcb\x6e\xbc\x04\xa6\x3e\xb3\x43\xe2\x04\x06\xe9\x60\x0d\xbb\x4e\x85\xa7\x21\x52\xc0\xc1\x6b\x12\x0e\xe2\x1d\x59\x87\x8b\x04\xa8\xc7\xd3\x36\x58\xf8\x2e\xd1\xbb\xb3\x0a\x45\x83\x45\xd3\xe3\x14\x7d\xdd\xe9\xa8\x01\xad\x01\x03\xf2\x35\x71\x93\x24\x02\xad\x9e\xbe\xa8\x86\x5a\x9f\xc2\x96\xa3\xbf\x98\x4d\x23\x89\x42\x91\x0e\x4b\x77\x32\x58\x8d\x78\xc8\xa4\x0a\x1d\x38\x22\x78\xbd\x6a\x27\xba\xbe\xa4\xd7\xa0\xb1\x1f\x8a\x25\x42\x00\xcf\xf8\xa5\x79\x75\xed\xb5\x53\xc5\xab\x2f\xae\xbd\x16\xa7\x72\x56\x02\xda\xcb\xca\x23\x77\x44\xc7\x17\xc8\x36\x1e\x01\xaa\x26\x8c\xbe\x47\x72\x35\x9c\x9d\x97\x36\x9c\xea\x19\xa6\xcc\x99\xb1\x57\x78\x9a\x1b\xfe\xd4\x8d\x39\x7e\x26\x5a\xce\x6e\xc1\x12\x9c\x64\xbd\xc0\x94\x29\xcb\x1f\xf0\x54\x33\xc2\xf4\x02\xaa\x63\x48\xd4\x92\x2e\xc1\x68\x02\x7e\x0e\x20\xfd\x82\x84\xe6\x33\x22\x55\xaf\x79\x0d\x8f\xea\xa1\x02\x96\x68\xbf\xfa\xd9\x20\xf3\xbb\xf6\x05\xb3\x39\x88\x25\x3f\x65\x3a\x55\x96\x80\xf1\xab\x16\x52\x09\x79\x53\xdd\x60\xbe\x94\x76\x24\x4e\xf7\x2b\xd7\xfa\x3e\xed\x96\x5d\x80\x97\x0d\xdf\x5d\xa2\xcf\x6e\xc5\x37\x13\x05\xc3\x49\xd1\x99\x0c\xe5\xbc\xa5\x3d\xb9\xb7\xbf\xa6\x05\x43\x1e\x86\x64\x36\x76\xc2\x2b\x80\x22\x80\x3e\xf8\x8e\x37\xfc\xba\x02\xb1\x07\x02\xe5\xeb\xc7\xee\xc0\xc2\xed\x63\x6f\x81\x79\xde\x9d\xc1\x17\x60\x6a\xbf\xe2\x35\x33\xcc\x78\x29\xda\x75\xc6\xd6\x21\x2c\x49\xae\x2f\x54\x23\x94\xc1\x46\x98\x8e\xc0\xd5\x61\x48\x4a\x94\x0d\x75\xa4\x51\x4e\xed\x8a\x89\x09\xcf\x03\x5c\x5a\xde\x1e\x62\x8e\xf7\xa8\xf8\x13\xcb\x2e\xcf\xf0\xea\xb7\xe4\x14\xd8\x25\xfd\x3a\xac\xe7\x14\x51\xa1\xfc\xfe\x89\x50\x26\x15\x89\xa5\x60\xb1\x60\xe3\xed\xd2\x85\x23\xb4\x02\x66\x62\x76\x0a\xc2\x66\x68\xdb\xe0\x84\xe9\x4f\xb3\x0f\x4c\x6e\x33\x6e\x70\x34\xeb\x8c\x16\x17\xd7\x9d\xcb\x37\x12\xa7\x88\xde\xf0\x96\xe2\x12\xe0\x4a\x94\xd1\x85\x80\x72\x9f\x23\xa2\xaf\xab\x31\x2a\xd3\x8f\x00\x3a\x18\xda\x5d\x11\x8a\x4c\x35\x34\xbe\xcd\x4b\xaf\xe1\xf6\x1d\x5b\xb2\x52\xce\xd2\xe9\xac\x73\xaf\x61\x5c\x0b\xd8\x48\x57\xbb\x10\xb0\xce\xc4\x0c\x61\xcf\x9f\xad\x28\xaf\x52\x27\xf8\xf7\x5b\xd5\xe1\x2a\x55\xcc\x31\xce\x8c\x5a\x05\x27\x22\xdc\xb1\x5b\xa9\x70\x99\x6b\xbd\xcc\xf3\x4e\xb1\x49\xba\xa0\x2f\x71\xa8\x7c\x86\xd5\xb2\x38\x3d\xee\x2e\xdd\xeb\x5d\xf3\xff\x61\x9b\x28\xa6\xdd\x21\x89\x0d\xdc\x0c\x26\xe1\x07\x79\x2f\x41\xbb\x84\xed\x94\xd8\x0a\xa0\x2e\x87\x64\x76\xb3\x8b\x30\x10\x3e\x92\x0c\xfc\x37\x44\xb1\xec\x5a\x44\x4c\x15\x01\xaf\x0e\xa0\xde\xfb\xc0\x06\xbe\x9b\x58\x52\x34\xaa\x7a\xbc\x04\x54\xe4\xbb\x4a\xa0\x11\xe7\x2c\x4f\x9e\x78\x93\x0f\xd7\x2f\x82\xe3\xdd\x0a\x00\xfb\xc5\xb8\xac\xe3\x52\xca\x46\x06\x5f\x88\x1c\x7e\x66\xe1\xae\x52\x20\xec\xa2\x06\x58\x64\xce\x27\x4f\xac\xae\xbe\x7d\x99\x85\x37\x3c\x26\x52\x05\x5a\x72\x04\x16\xe1\xed\xb2\x1c\x15\xef\x8b\xb2\x8b\xb4\x4d\xd8\xf9\x36\xca\x7f\xed\x5b\x61\xc1\xd0\x30\x00\xa5\x8b\x9f\x20\x96\xc4\xaa\x97\xd3\x64\xc0\xd3\xfd\xba\xaa\x9e\xd6\x92\x0d\x98\xcd\x19\xa0\x9e\xf5\xc2\xc4\x24\x74\x48\x68\x9f\x41\x0e\xf4\x4d\x27\x93\x59\xa2\x5e\x59\x28\x5e\xf2\x12\xcf\x94\x2c\xaf\x3e\x3c\xa6\xc2\xff\x43\x40\xaa\xfd\xd1\x66\x42\xac\x98\xd4\xfd\xfe\x0f\xcd\x8a\xe2\xea\x05\x09\x4e\x9f\x88\x2a\x48\xef\x49\x3c\xf0\x63\x21\x37\x1c\x54\xc7\x5e\x9e\x3f\xdd\x79\x01\x2f\xcc\x01\x09\x64\x1c\xe0\x6f\x7d\xff\x38\x18\x4b\x0f\xa0\xe4\xff\xbd\xf1\x04\x97\x88\x84\x88\x04\x61\xdc\xc9\xc1\xe3\x7d\x83\x6c\x76\x00\x91\xd0\x50\x8b\xec\x27\x6a\xb1\xa3\x03\x14\x45\x08\x6b\x6c\x4f\x15\xb8\xd8\x24\x72\xf0\x35\x2b\x53\x23\x92\xcb\xca\xb6\xa6\x4e\xde\x0f\x07\x8c\x9a\x7a\x44\x77\xfe\x91\xe1\x16\x91\x52\x2b\xea\xb7\x1f\xc7\x36\x48\x3e\xea\x34\x8f\x2f\xd6\xcb\x3e\xe1\x30\x6a\x0b\xf0\xee\x7e\xb4\xe5\x0f\x2d\x02\x73\x63\x8f\xc3\x51\xaf\xac\x24\x3a\x6a\x19\x2e\xa3\x11\xa3\x76\x79\x49\xb3\xb1\xdd\xae\x98\x0b\x1c\xca\x31\x9a\x0c\xaf\x00\xa9\x3f\x94\x16\x49\x42\xc6\xaa\x2e\x61\xe7\xf9\x6e\xa1\x01\xe6\x0c\x6e\x39\xca\x9d\x9c\x35\x24\x50\xad\xdd\x7c\x3c\x4e\xbb\x65\xfb\xec\x99\x8b\x97\xcf\xbe\x7d\xc6\xe1\x5a\x04\x7f\x4f\xe8\x1a\x92\xc8\xb1\xa5\xe0\xb6\x92\x97\x05\xda\xcd\xd9\x22\x8e\xaa\x0e\xd7\xc3\x4e\xe0\xe4\xdd\x68\x69\xbb\xd0\xce\x5a\x9a\x0e\x3b\x65\x72\x25\x1d\x2e\x13\x22\x1b\x66\x72\xac\x3e\xff\x80\xb4\x41\x87\x62\x1b\xd7\x69\x68\x2c\x0e\xc0\x1b\x9b\x02\x06\xac\xde\x52\x0d\x36\x46\x0d\x73\x3c\xb7\xd3\xd4\x78\x09\xd0\xf6\x18\xad\x07\x90\x77\x79\xab\x7c\x7e\xa9\x45\x58\xd4\x5e\x15\x29\x2d\xa6\xb9\x6c\xa3\x11\xcb\x10\x3c\xa1\x28\xf8\xed\xf7\xd3\x0d\xb4\x3c\xb0\x83\x77\xdb\x74\x8f\x58\x93\x27\x30\xa0\x5b\xe1\xfd\x9b\xb1\xa1\x44\x4c\xdc\xb8\x2b\x50\x52\x54\x13\xee\x14\xb8\x53\xe7\x8f\xea\xb2\xd3\x60\x09\x9f\x00\x73\x36\x48\x9a\x1f\xe1\x3a\x0d\x4b\xb8\x3b\x64\xb2\xac\xe4\xcd\x43\x47\x0f\xd4\xc5\x14\x37\x51\xa4\x68\x51\xb4\x26\x84\x44\x11\x65\x59\x0e\x62\x07\xc2\x3e\x99\x50\x9e\xf1\x11\x74\x92\x5c\x62\xc6\x7e\x4e\x8c\x50\x6d\x34\x70\xb7\x51\x48\x4d\xc3\xf9\xee\xd8\x1d\xfb\x5e\x88\xb1\x9e\xd2\x17\x18\x01\x9a\x8c\x8b\x28\x9f\x8b\xc5\xba\xf4\xf4\xea\x71\x3b\xd4\x02\x63\x59\xf1\x1d\x61\x21\x0e\xac\x3d\x39\xc2\x8d\xf4\xa3\xac\x20\x7a\x6f\xaa\x6b\x2d\x92\xb2\x5f\x27\x71\xfc\xae\x63\x00\x19\x18\xf5\x93\xa2\x44\x41\x24\xaf\x0e\x3b\x4a\x4c\x19\x84\x7a\xe9\x75\x83\x9e\x2d\x26\xb7\x27\x7c\xb9\x4b\xcc\x04\x5a\x36\xa2\x28\x40\xdd\x36\x16\x2d\x84\xab\xb8\x0b\x48\xc2\x90\x0c\xbb\x8e\x0a\x3f\x26\x62\x8a\xc5\x1c\x46\x78\xc3\x83\xa0\x09\xe8\xfc\x67\x04\xee\xec\x92\xa3\xe1\xd6\x95\x74\x3b\x2e\xaa\x02\xf4\xbc\xaf\xf8\x20\xd2\x9e\xca\x19\xaf\xe9\x9f\x84\x55\x00\x5a\xf0\xb4\xc5\xe8\xaf\x90\x44\x75\x32\x24\xc9\xd8\xd5\x74\x0c\xe4\xb0\xeb\x8f\x2c\x69\x6b\xe4\xd3\xb1\x9a\x25\x26\xf4\x50\x86\xe6\x6e\x34\x49\x72\x77\xbd\x3d\x18\xce\xff\xc0\xd0\xac\x1f\x89\xe5\xc5\xcc\x69\x46\x0e\x1a\x25\x81\x37\xad\xd6\x33\x14\xf1\x58\x2d\x48\x83\xee\x1f\x39\x63\xdb\xad\x8c\xb2\xb9\x6b\xa0\xc0\x80\x76\x75\xea\x96\x6f\x3c\x86\x34\x28\x41\xa1\x92\x07\xa4\x34\xfd\x29\x93\xc5\x0c\xce\x59\x9b\x01\x34\x51\x09\x10\x10\xcf\x9f\xb3\xf2\x9f\x6a\xd9\x74\x28\x8a\xa1\x13\x44\x76\x25\x42\xc3\x3b\xcf\x09\x77\x0a\xc9\x33\xc2\x58\xaa\x57\x48\x13\x77\x78\xa2\xa2\xee\x47\x24\x32\x3d\x10\x65\xdf\x63\x19\x00\x09\x27\x9c\x40\xc1\x69\x90\x64\x1f\x1d\x70\xe4\xdb\xe9\x64\xdb\x28\xdb\x42\xac\xc1\xd3\x42\x71\x0c\xd9\xfe\x8b\x96\x7c\x6a\x65\x1c\x5e\xb1\xb2\xd3\x80\xee\x68\x4c\xd6\xaa\x7b\x8a\x5a\x19\x2b\x2e\x21\x66\xc3\xca\x4a\xf6\xad\xde\x67\xcf\x49\x87\x3e\x63\xf1\xb4\x35\xde\x0a\x06\x2e\x28\xb8\xba\xe8\x02\x48\x2c\x8d\x13\xd1\x45\x54\xd6\xbd\x7e\xfb\xeb\x17\xbb\x41\xb1\x00\x37\x7e\x25\x3e\x8f\x25\x6b\x6c\x35\x2b\xf6\x2b\x6a\x3e\x77\x8c\xda\x37\xb6\xe5\xf3\x73\x13\x23\x34\x66\x85\xf4\x5d\xdc\x63\x0e\x19\x7b\x66\x86\x59\x84\xef\x42\x7b\x9d\x66\xfb\x19\xda\x79\x84\x83\x37\x1b\xf1\x37\xcf\x43\xdb\x52\xee\x5b\xfa\x2d\x6a\x6f\xc3\x2c\x82\xbd\xe8\xd6\x58\x62\xe1\x0c\x49\xe5\xc3\x4d\xec\xf3\x31\xa5\x36\xeb\xfb\x0a\xf4\x4f\x42\xe2\xed\xb5\x71\x32\xec\x6e\x6a\x3c\xf1\x2f\x72\x59\xc5\x57\x65\x87\x04\x3c\x7b\x56\x23\x1d\xc3\x0d\xc4\xd6\xe3\xfa\xa1\x46\x67\x33\x19\x6e\xa4\x1d\x6b\x6e\x15\x08\x00\x94\xb4\x58\xec\x7a\x10\x77\xb1\x1c\xcd\x9a\x59\xa1\x69\xa0\x6b\x85\xed\xaa\x9e\xae\xb1\x9d\xba\x2d\xdc\x14\xed\xf7\xff\x36\x07\xce\x08\xed\xaa\xbe\x25\xf8\x8a\xf0\x7e\x97\xef\x39\x1d\x9d\x29\x5f\xb0\x3d\xe5\xdc\x91\xa5\xcd\x2a\x2c\x12\x14\x67\xe5\xb6\x96\x0e\x3b\xa5\x0c\xea\x0e\xfa\xfd\x7c\x2b\x45\x4d\x1c\x4b\x67\x59\x82\xc5\xac\x3e\xba\xd8\xc1\x7c\xc6\x08\x00\x71\x4a\x77\x85\x22\x11\x5f\x2e\xae\x4b\x2a\x63\x55\x17\x4b\xe0\x3a\xa3\xf4\xa4\x45\x54\x1a\xca\x8d\xc6\x57\xb9\x91\x85\xb4\xd9\x73\xa7\x8a\xe7\xf8\x5c\x90\xf3\x9e\x40\x09\x6d\x89\x84\x30\xc8\x37\x3c\x4a\x4a\xa0\x4d\x86\x2c\x46\xa4\x79\x2c\xef\xe3\xfb\x3f\x9c\x2a\xbe\x7f\xac\x6c\x7b\x14\x5e\x72\xd4\x2b\x39\xd6\xb0\xd7\x0f\x9c\x14\xe7\x24\x14\x78\xb8\x35\x7a\x69\x08\xf2\x2c\xda\x81\xc4\xc5\xb9\x2b\xa2\x55\x89\xb5\x1a\x12\xca\x56\x29\xca\x77\x42\xe5\xdb\x6d\x3c\x10\xc9\x68\xd4\xcf\xba\xa4\x66\x29\xe4\x54\x54\xcd\x92\x59\xeb\x1a\xf3\xba\x82\x7e\x7b\x69\x3f\x2d\x53\x47\x06\x29\x51\xad\xd6\x06\x4c\xb2\x5e\xfb\xfd\xf3\xe7\x70\xf2\xa3\xc9\x1a\x74\xe8\x9d\xa3\xc8\xc0\x0f\xe1\x00\x89\x4a\x1e\xd5\xdc\xa4\xac\x2f\x20\x9b\x4e\x79\x46\x62\xee\x9d\x15\x8e\xc1\x53\xd4\x29\x2f\x22\xa5\x1f\x93\x5d\xd2\x81\xc8\x2a\xb4\xf9\x76\x08\xbe\xec\x19\x71\x6a\x1a\x58\x77\x22\xba\x3e\x8e\x5a\xaf\x0a\x7a\x74\x52\x63\x31\x3a\x11\xe5\x85\xc2\xcd\x87\x48\xad\x20\x64\xba\x41\x1f\x1e\xf0\xb9\xa9\xf4\x10\x92\x11\xd2\xf6\x61\xa0\x25\x92\xf6\x03\xd7\x54\x52\x4d\xe2\x91\x46\x9f\x30\x26\xe2\xff\x27\x1c\xe0\x6f\x16\x38\x7f\xf6\xf3\xae\x98\x5d\x7e\x25\xb0\xed\x90\xd7\x60\xae\x8c\xdc\x61\x37\x47\x3d\xd4\x57\xfb\x2d\x24\x3f\xe1\x43\x25\xa9\x0e\xb7\x30\x2c\xef\xcd\x30\x62\x7e\x71\xc2\x5c\x1a\xba\x38\x4f\xc8\x7c\xf1\x80\x49\x39\xdb\x87\x25\xa1\x04\x3a\x1e\xd7\x9b\x93\xfc\x13\x9d\x44\xf7\x00\xf5\x04\x95\x16\xe4\x88\x3d\x65\x33\x82\x9d\x98\xf2\x76\xa2\x53\x3a\x88\x16\x61\xd1\xaa\xbc\xee\xcc\xc8\x9f\xc8\x34\x02\x03\x7e\x6b\xfb\xeb\xec\x0e\x85\x9c\x09\xce\x10\x6b\xd0\xf5\xc9\x5f\xa2\x7a\x40\x7b\x8f\x6c\x88\x3e\x76\x5f\x0a\x55\xbf\xdb\xe8\xee\x97\x32\x95\x5e\xc1\x36\x55\x7b\xf0\xba\xd7\xb7\xd5\x6e\x39\xec\x13\x6f\x4a\x39\xa3\xa8\x16\x71\x46\xff\x80\x06\x86\x86\xa0\xa5\xb5\x95\x15\xd9\x7e\xcc\x9b\x83\xe6\xc8\x7c\xfe\x43\x52\x37\xc1\x8a\x78\x7b\xe5\xee\x66\x9e\x17\x62\x4a\x61\x67\x60\x0d\x76\x22\x96\x14\x6a\xcc\x72\x48\x9d\x85\x74\xf5\x4c\x57\xd0\x29\x8e\x58\xd5\xc7\x25\xb4\xf6\xcd\x76\xc2\x84\x39\x3a\xd9\x80\x3c\xa1\x7f\xed\x46\xfd\x80\xb9\x14\x56\x0f\x8b\xa9\x77\x93\xae\x64\x46\xc7\x8f\x51\xe3\x03\x25\xc4\x45\x35\x43\x65\x79\x95\x5d\xdf\x9d\xa5\x5b\xe4\x64\x21\xd6\xba\x13\xcb\x05\xa2\xd8\x99\xa2\xcd\xb9\x74\xc5\xf2\xa2\x55\x59\x32\x7f\xad\xab\x36\x78\x8a\x39\xb9\x27\xb6\xc0\x7e\xd9\x6a\x37\x9b\xe8\x34\x7d\xf7\x09\x65\xca\x55\xd5\xea\x2c\xa5\x51\xa9\xe8\x79\xf2\xbe\x16\x24\xd4\x2c\xeb\x54\x49\x3c\x27\xbe\xa4\x76\x6c\x8e\xea\x8d\x94\x24\xa8\xb9\xd5\x85\x12\x9f\xca\x3c\xfc\xa2\x69\x79\x26\x31\xda\x02\x60\xaa\x8b\x61\xa8\xe7\x27\xcc\x97\x0a\x61\xec\xd8\x67\xa6\x06\x25\x84\x01\x81\x8a\x03\x2f\x8a\x77\x43\x94\x13\x24\x62\xba\x42\x21\x55\x5c\xfb\xe5\xe6\x01\xe2\xa0\x6d\x6b\x47\x7d\xb4\x95\x27\x0d\xd1\xf7\xc7\x68\x96\x85\x86\x62\x21\xcd\x98\xe1\xd0\x11\xef\x52\xfc\xa9\x74\xb7\xc7\x45\xe6\x71\x0c\x1e\x3a\x97\x20\x1a\x3e\x14\xa6\x83\x69\x1f\xdc\xcd\xd1\x18\x6e\x37\xba\x3f\x7f\x13\x0e\xd4\x7d\xb1\x96\x19\x31\x5b\x5f\xcb\x76\x1f\x56\xeb\x32\x49\xe5\xaa\x6a\xc2\x0a\x2d\x8c\x7b\x04\xdd\xe4\x2b\x59\x32\x6a\x25\x71\x00\xde\x9e\xc6\xe6\x03\xda\x6d\x68\xb3\x5e\x9b\x6d\x76\x6d\xed\x9b\xaa\x76\x27\xb0\xdb\x41\x13\x90\x8a\xad\xce\x02\x29\xfd\xe1\x72\xcf\x33\x65\xbe\x13\x18\x8b\x30\x2a\xfe\x53\x0c\x77\xb4\xaa\xf8\xd8\xa6\x3b\x56\x66\x87\xeb\x80\x85\xe0\x74\x84\xe6\x3c\xa1\x2e\x5f\xdb\xf4\x04\x14\xd2\xcf\x88\xca\x6a\xb6\xd4\x20\x7e\xc1\xaf\xad\x82\xb0\x7f\xca\x26\xd7\x68\xaa\xfb\x6e\xa3\x2d\x4d\xe5\x2e\xb7\xe3\x33\xa2\xd7\x3b\x54\xf7\xe2\x05\xe7\x61\x92\x18\xb1\x76\x24\xa5\x20\x33\x2f\x7c\xbf\x99\x12\xa2\xd1\x30\x13\xba\x67\x94\x35\xdb\x23\xeb\x01\x1a\x23\xa0\x8f\x4b\xfc\x18\x25\x99\x15\x63\x74\x21\xa9\xd9\x68\xa5\xa2\xab\xe2\xd7\x22\xc3\x72\x48\x50\xdc\x5d\x85\x74\x79\xb5\x28\xc7\xf9\x70\xe3\x35\xb1\x6d\x3b\xb0\x22\x11\x89\x23\xf3\xfa\xab\x2f\x4a\x01\x03\xe4\x83\xd5\x29\xc0\xe7\x40\x80\xc8\x94\xc4\xa7\x2c\xec\x7d\x22\xc2\xbe\x1d\x2f\xe2\xb2\x76\xdb\x78\x1f\x5e\x4d\xcc\xe6\x38\x5d\x6f\x3f\x7b\xaa\x78\xf6\x35\xe5\x0d\xc4\x56\x84\x5a\x22\x8a\x0b\xf2\xea\x8b\xc9\x6b\x4a\x02\xa4\x3d\x77\x84\xd2\x62\x77\x20\x6b\xb1\x11\xb6\x2e\x76\x58\xcc\x71\xf0\x3d\x91\x88\x0c\x4d\xbc\x0c\xf4\x8f\x5d\xb6\x3c\x50\x8a\xee\xbf\x3e\x2c\x8e\x81\xd5\xca\xa1\x5f\x2e\x85\xd3\x55\x66\xed\x91\x6b\xb0\xe5\x5b\x24\x12\x9e\x5b\xfc\xb6\xb1\x3c\x59\xa0\x32\xb3\x45\x1b\xf0\x40\xb4\x15\x82\x6e\xf7\xad\xf6\xa9\x41\xf8\x6f\xfb\x71\x5c\x82\xb2\x79\xc0\x6f\x64\x5f\x6d\xcd\x77\xbd\xf7\xc4\x3e\xcb\x34\xe4\x8a\xf8\x7b\xfc\xcb\x28\xab\x53\xb9\x96\x01\x4c\xb7\xd3\xc0\x45\x65\x69\xc3\x33\x0e\x61\xd0\xea\x57\xd0\x85\x5d\x1c\x2a\x42\x9c\xdd\x77\xca\xb5\x5e\x74\x7b\x32\x05\x6c\xb4\x5e\x43\xc5\x83\xf2\xfc\x3d\x7b\xd4\x8b\xab\xb6\x5f\x5b\x25\x5f\xf3\x0c\x4d\x94\x85\x11\x65\x87\xa2\x40\x59\xc2\xf7\x98\x85\x6d\x4b\xaf\x38\x5c\x4d\xc3\xe6\x84\x4b\xf9\xae\xc8\x94\xec\x06\x04\xa3\x8f\x33\x9e\x3a\x14\xc1\x33\xbc\x85\xf9\x50\x1f\xf2\xc7\x96\x9b\x24\xc5\x90\x9c\xbf\x8a\x5a\xe7\x91\xd8\x28\xc4\x0f\xf8\xe3\x23\x0a\xc9\x04\x14\xbd\x97\xa7\xfd\x8a\x45\xf5\xde\xd2\xcf\x1a\xef\xda\xd2\x74\x8e\x4a\x24\xbf\x15\x44\xc5\x65\x77\xd3\x69\xec\x8a\x96\xb1\xae\x7b\xda\x35\xff\xbf\xa1\x9f\x14\x49\xa6\xcc\xaf\xc0\x05\x8d\xf5\x40\x78\x6d\x8f\x4f\xe6\x9f\xd7\x87\xc7\x36\x56\x78\x15\x23\x25\x79\xfa\xe1\x21\xda\x17\x27\x31\x27\xea\xda\x17\xa1\xaf\x20\x80\xdb\xfc\x22\x26\xf0\x12\xf3\xf6\x66\x3c\x14\xe9\x8f\xc4\x3c\xbe\x37\x84\x90\xfe\x24\x92\xa9\x48\xbd\xa7\x3f\x0b\x01\xe9\x31\x88\x5a\x7a\xb8\x96\x0d\x7b\xcc\xb4\xcb\xd8\xf8\x86\xf3\x07\x0f\x53\xee\x10\x5d\xe1\xfc\xad\xd8\xa6\xa6\xd9\x4e\x9f\x09\x29\x3f\xdb\xa9\xa6\x02\x12\x6a\xb3\x43\x67\xa1\x61\x77\x7e\x6f\x0f\x83\x10\xfa\xec\x59\x42\x6b\x79\x30\xf7\xd1\xb9\x88\xf1\xfb\x52\xf1\x9b\x53\x1b\x01\x45\x1c\x1f\xa4\x8f\x46\xb7\x07\xfa\x2e\xc7\xb2\x90\xdd\xbb\xa3\x10\xa2\x5e\x3f\x3c\x1c\xee\x90\x5a\x06\x49\x7c\x48\x23\x27\xf6\xc8\xb9\x4e\x0b\xfc\xd1\x7c\x31\xda\xb6\x72\xd0\x9f\x33\x17\xcf\xb7\x98\x63\xe4\xbb\xc1\x63\x10\x0f\x12\xa5\xfb\x43\x4e\xfd\x3e\x53\x90\xea\xa6\x68\x66\x44\xdc\x9a\xac\x97\xb1\x45\x51\xd5\x00\x21\xc7\x03\x83\xf6\xaa\x06\x68\x69\x9f\x78\xbd\x3d\x66\x57\xd4\x4a\xcb\x2a\xff\x23\xa3\xbb\xa3\x4a\x68\xb8\xa0\x5e\xb5\x16\x9f\xb0\x94\x1d\x17\x35\x80\x54\x64\x89\xde\x30\x3d\xf9\x60\x41\x9f\x89\x2a\x5e\xb1\x1d\xd6\x4f\x3b\xdf\xc1\x3d\xe2\xb8\xc4\xc9\x56\xc9\x0f\xac\x61\x32\x3e\xf8\x5e\x18\xdc\x34\x9e\xbd\x60\x08\x82\x3b\xe6\x4a\xab\x6d\xf9\xe7\x8a\x57\xb0\xf4\xe9\x95\x48\x1e\xdd\xba\x5b\x11\xf2\x67\xea\xca\x78\xac\x7b\x31\x1d\x17\x18\x2c\xc3\x9c\xa1\xcf\xe6\x32\x7e\x36\xe7\xe4\x73\x43\x2d\x3e\x61\x54\x28\x35\xe5\x66\x56\x98\x91\x6d\x86\xcb\xf3\xa5\x30\x5b\x59\xbf\x6f\xc6\xe9\x20\xbf\x9a\x92\xcf\xfd\x38\xc5\x98\x7c\x3d\x29\x94\x16\x26\x5f\x37\x4a\xcc\xdf\x32\xe7\x72\xb3\x9d\x4f\xcc\x56\x32\x2c\xa1\x09\x63\x85\x84\xaf\x87\x53\x73\x20\xe5\x62\xb4\xd7\xcd\xa4\x30\x48\xc4\x49\xcf\x3d\x23\xc5\x51\xdc\xbc\xfd\x0c\xf4\x31\x7c\xae\x34\xec\x3d\x82\x9d\xb0\xac\x08\xfb\x1d\xeb\xc1\x18\x68\x65\x2b\xed\xf7\x09\xea\x48\xef\xce\xe5\xa0\x42\x73\x34\xb9\x1a\x48\x35\xeb\x64\xf0\x47\xb6\xec\xa9\x8a\xcd\x89\xa8\xde\x61\xfb\x22\xd7\xac\x63\x00\xd1\x63\x73\x91\xc3\x35\x9e\x27\x22\x68\xe0\x38\xdc\xc7\xa3\x36\x33\x9e\x1b\x98\xff\x0a\x9d\x9d\xbe\x02\xa2\xff\xbf\xcf\x7f\x05\x10\xf1\x57\x8a\x11\xd8\x75\xfe\xab\x56\xd5\xfc\x8c\x77\x2e\xae\x4e\x38\xe2\x62\x5c\x8d\x86\x44\x02\xf8\xb0\x9e\xf5\xa3\xae\x51\x76\xb5\x98\x75\x95\x7a\x1e\x07\x4e\x17\xa3\x08\x15\xd5\x46\x8f\x65\x2a\x52\x51\xba\xf3\xd7\x49\xac\x74\x7c\xa2\xec\xe4\x89\x1f\xa1\x8e\xf1\x83\x93\x27\xc4\x90\xe6\x8b\xd0\x46\x45\xd9\xd0\x2d\xb3\x7c\xf6\xc6\x76\x56\xc6\xfc\x4f\xe4\x41\xfe\xe9\xdc\x06\x05\xf1\xd6\x6c\x0d\xcd\x20\x0f\x66\xdd\x77\x59\xe6\x8c\x6a\x67\x5e\x84\x43\xb1\x8c\x10\xb1\xad\xde\x7b\x5c\x5a\xb6\xd0\xb0\x52\x3e\xb7\xf5\x2d\x74\x34\x2c\xb2\xb5\xac\x4f\x04\xdd\x17\x04\x54\x66\xd6\x78\x04\x41\x05\x7d\xc6\xaf\x76\xd8\x97\xf1\x8e\xfb\xa8\x7a\x06\x9e\x5e\x2d\x46\xc9\xd0\x74\x81\xb6\x2c\xda\xcf\x4e\x32\xf8\xda\x33\xe8\xc1\xf9\xec\x6b\x17\xc7\xd9\x55\xb8\x51\xd0\x1f\x94\x78\x4d\xb7\x86\x51\x1a\x6d\x93\xcf\x9f\x25\x81\x23\x82\x00\x82\x20\x57\x93\xfe\x24\x65\x88\x91\xac\xaf\xa7\xdd\x92\x20\x06\xd6\x28\x5e\x20\xed\xe7\x15\x31\x6f\xf8\x46\x8e\xe1\x0d\x2f\x06\x6a\x88\x20\x49\x95\x38\xcc\x8e\xae\xa4\xce\xe1\x21\xde\x52\x2a\x56\x9b\x72\xa4\x0a\x45\x46\x41\xb9\x7e\x6c\xb7\x3f\x67\xca\x89\x6d\x0a\x6e\x5b\xf6\x7b\x97\x6d\x0f\xd9\x23\x51\x24\x3c\xf0\x8a\x6c\x87\x82\x65\x47\x41\x05\x9d\x16\x3e\xfa\xdf\x78\xad\x32\x5f\x2c\xfa\x86\xe1\x4b\x55\xe8\x52\xf7\xce\x8e\x79\x15\x6e\x11\x2c\x5c\x6b\x23\x2b\xb3\x8d\x61\x3e\x4e\x0d\xaa\xb5\x0a\xe0\x00\xb2\x2e\x10\x27\x29\x86\x68\x9c\x91\x39\xc7\x01\x8d\xfd\xb6\xfb\xa2\xc2\x9c\xdd\x12\xdf\x60\xb9\xe2\x4e\x0f\xf0\x58\x57\xe5\xe1\x26\x3d\xb8\x02\x97\xe8\x8f\x7d\xac\x0c\x25\x31\xfc\xda\xd8\x80\xac\x64\x60\x94\x77\xb2\x61\x56\xb6\xcf\xc3\x7f\x40\xf1\x66\x3f\x11\x24\xa2\x0e\x58\x41\xd5\xe1\x48\xd1\x04\x28\x88\x8b\x6f\x41\xbc\x52\xf9\x38\x84\x74\x59\xd3\x51\x90\x60\x2e\x62\x4e\xc1\x31\x64\x6f\x38\xd3\x11\x04\x1e\xfb\x44\x7a\x7d\x62\x65\x18\x36\x84\x29\x8c\xb4\x4c\xc7\x57\x91\x07\xf8\x0d\x1b\x2d\xb1\x0d\x0f\xae\x88\xf6\xde\xad\x86\xb4\x7a\x9e\xc5\x16\x2f\x2c\xb6\x09\x68\x30\xb8\x65\x93\x80\x3f\xdb\x26\x40\x85\xbe\xf5\xa2\x84\xb8\x1f\xb4\x33\x43\x58\x62\x20\x30\x4c\x51\x8b\x34\xc1\xb0\x03\xbf\x3f\xaa\x46\x9a\x9c\xc7\x02\x91\x50\x30\xd8\x0d\xa6\xd6\x74\xc0\x48\x84\x5c\x2e\x8c\x2b\x79\x51\xab\x52\x4d\x70\x87\xc0\xc3\x1a\x10\x13\x21\xf8\x41\xb8\x63\xd6\x00\x7e\x3c\xfb\x1a\xef\x9a\x83\x3d\xb6\x51\x3e\x2b\xd6\xb7\x9c\x2c\x41\x1a\x81\xb6\xd4\x69\x75\xfb\xf9\x10\x50\x52\xaf\x37\x16\xf6\xc5\x92\x7d\x01\x61\xea\xc4\x9c\x0d\x15\xf9\x42\xd3\x44\xba\x30\x62\x1a\xbc\x0f\x75\xf6\xe2\x5b\xe7\x2f\x53\x88\xb4\x7c\x6c\x50\xc7\xdd\x37\x1c\x5b\xca\x60\x68\x87\x96\x6f\xd2\x9a\x44\x52\x99\x65\x71\x1f\x82\x38\x4b\x41\x28\x08\x0a\x08\x10\x28\xcb\xc4\x14\xb1\xc9\x74\xc8\x19\x9e\xd5\x14\x80\x12\x8c\x03\xd1\x10\xc5\xc7\x6c\xc9\x49\xbf\x02\x07\x84\x60\x2e\xff\x36\xf8\x5b\x81\xe2\x0e\xdc\xec\x75\x1d\x68\x26\x20\x71\x39\x36\xd9\x9e\xb3\x7d\xab\x6c\xd1\xd4\x59\xf8\xdd\x60\x0d\x85\x28\x2a\xbe\x50\xc6\xd9\x42\x8a\x57\xec\x4a\x89\xb4\x19\x6d\x77\xfa\xd9\xf0\x4a\xc3\x56\x42\x09\x00\x86\x57\x80\xc4\xec\x60\xd1\xc6\x0d\xe7\x50\x57\x30\x54\x8a\xf3\x85\xc2\x16\xa7\xaa\x86\x7a\x19\x5e\xbc\x1a\x1f\x52\x69\x88\xc5\x32\x7c\x4c\x9c\x3f\x59\x54\x72\x2b\x56\xb7\x91\xb0\x79\xf3\xd9\xeb\x46\xc4\x39\x2e\x94\x50\x35\xcc\xcf\x4d\x94\xa4\xb2\x21\x59\xfb\xd9\xce\x1a\xa0\x8a\x2b\xcf\x2a\xc9\xaa\xef\x68\x3e\x43\x79\xe9\x33\xc8\xb3\x6f\x59\x2f\x86\x5d\x3e\xd6\xb4\xec\x36\x0e\xd7\x5c\xec\x9e\x71\xb5\xa4\xe0\x9d\xf0\xed\x04\x23\x5a\x8c\xc9\x48\xda\x6b\xb6\x67\x24\x60\xaa\x98\x52\xdd\xc3\x35\xe0\xc2\x5f\xd4\xbf\xee\xf2\x99\x89\xa0\x7b\x02\x43\x16\x4f\x7e\xcd\x87\xf4\x50\xa3\x4b\xbc\xc3\x3f\x9e\xe0\x56\x6e\x4c\x32\x0a\xd7\xcb\x23\xa1\x5d\x40\x59\x33\xac\xf4\x9e\x70\x6a\x36\xf0\x99\xdb\x0e\x44\x44\x02\x2d\x7e\x5b\x5d\xf6\x85\x18\x46\x85\x4a\x20\xbc\xdc\xcd\x07\x83\x64\xd8\x5b\x20\x38\x88\xb7\x24\xab\xa5\x2d\xad\xc5\x99\xd3\x6a\xae\xc9\x42\x6d\x34\x41\x77\x2d\xb4\x08\x54\x64\x51\xe8\x96\x59\xbd\xcf\xac\x11\xfa\x73\x3b\x3e\x79\xa2\x86\x43\x81\xd1\x1f\xa7\x64\xc9\xc1\xe0\x95\x96\x53\x0c\x17\x31\x50\x7a\x99\x70\x18\x69\x2e\x3e\x33\x1c\x3c\x4b\x9e\x6c\xc9\x54\x17\x41\xf3\x47\x0e\xa8\xe1\x5e\xd8\x18\xd1\xdf\x90\x01\xc1\x4d\xad\x8a\xe2\xe8\xd2\xb5\xa8\xd2\xfd\x64\x2d\xed\x87\x8d\x0c\x90\x9a\x28\x61\x9f\x0b\xe1\x2e\x50\xba\x8b\xf7\x76\x30\xc8\xca\x82\x03\x3b\xef\xb3\x53\x27\xbe\x07\x7e\x35\x4d\x0a\x6b\x66\x88\xd6\xa5\x0f\xf1\x35\xd9\x0a\x8d\x93\x2d\xc0\xe2\x30\x14\x36\x7a\x25\x62\x5b\x3e\xc1\x11\xe2\xd8\xd3\xbf\x11\x6b\x6c\x41\x2c\xf4\x91\x62\x7c\x50\xe5\x6f\x03\x45\xc8\xae\x35\x13\x8d\xb5\x08\x10\x62\x90\x30\xec\xfa\xd6\xdb\x78\xcf\xad\x95\xaf\xb2\xcd\x21\x83\x19\x99\x4f\xab\x69\x5e\xf6\x7b\x2d\x7a\xb6\xdd\x7e\x76\x6b\x85\x83\xea\xcb\xae\x93\x90\xef\x6b\x11\x82\xcc\xfc\x07\xa4\x06\xd0\xc9\xea\x17\x2a\xb0\xbc\x7c\x1a\x00\xfe\xe3\xf8\xfc\xd0\xd6\x21\xc5\x11\x76\x9c\xa2\x2d\xd3\x23\x1f\xe8\x2f\xd9\xee\xc2\xbf\x96\xa0\x31\x18\x2c\x0e\xc8\x65\x14\xb1\xf8\x6f\x70\xc7\x6c\x30\xd4\x1d\x36\x1c\x72\x91\x51\x28\x8c\xbf\x8a\xe4\xfe\x70\xce\x9e\x54\xa4\x07\xf1\x65\x5a\x72\x36\x2e\xd0\x9f\xe0\xcb\x10\x49\x6a\x78\xdb\x7e\x37\x37\xf4\x39\xf8\xda\x85\x03\x31\xee\x48\xed\xb3\xf8\x60\xfa\xf5\x36\xdc\x31\x6b\xbf\x63\x7f\x55\xfb\xf0\x45\xa0\x9f\x78\x29\xee\xcb\x17\xe4\xee\x06\xd1\xb2\xf9\x28\x1d\xaa\xa2\xef\xc1\xa3\x6f\xb5\xa8\x34\x9b\x17\x18\x4c\x40\xb5\x8b\x2f\x9a\x8a\x03\x81\x85\xc9\x0b\xd2\xf6\x19\xf9\x11\x19\xa3\x2b\xc3\x43\x4c\x62\x25\x51\x89\x60\x8b\xc1\x94\x6b\x65\x18\x7e\xb6\xcf\xd2\x1f\x73\x1e\x5f\xea\xfa\xb2\x29\x7a\x6f\xf7\x3d\xfc\xa9\x96\xeb\x00\xa7\xd0\x4d\x2b\x81\x8b\x1c\xc8\xa1\x18\xf1\x41\xb7\xd2\xba\x74\x1e\x6e\x3b\x2d\x6d\x99\xac\xb5\x4f\xf5\x4c\x60\x13\xfa\x99\x6f\x04\x57\xd0\x95\x41\x83\xaa\x7a\x19\xb8\xc7\x18\x7b\x45\xa6\xf1\x55\x6d\xec\xfa\x3b\x90\xf1\x1d\xe6\x80\x1c\x86\xf3\xc1\x9d\x9c\xfa\x7c\xbf\x0a\x1c\x6d\x1b\x7e\x6b\x2d\x90\x6b\x2c\xa1\x7a\x82\x4d\x71\x5c\x57\xfd\x90\x49\x45\xb7\x85\xe2\x89\xe7\x7d\x78\x0f\x23\x45\x37\x32\x28\xda\xd0\x45\xed\x38\x49\x35\xc5\x24\xc4\x3e\xb5\x30\x5c\x96\xcb\x17\xc0\x5e\x0c\xfe\x92\xd7\x96\x82\xab\x14\x92\x7f\x03\x48\xbb\xed\x7c\x12\x19\xbb\x78\x64\x44\x6b\xf3\x09\xe9\x75\xd6\xb6\xb9\x72\xb3\x6c\x3f\x5a\x7d\x90\x0e\x51\x9c\x88\x31\x16\xa9\xba\xd0\xaa\x44\x7a\x21\x08\xe7\x18\x20\xd5\xaa\x05\x85\xb1\x86\xff\x62\x1f\x5a\xc8\x06\x17\xb0\x9c\x00\x07\x8b\x78\x09\x3c\xf9\x50\xe2\x3d\xfa\x13\x2d\x31\x4e\x81\xf1\x2f\x59\xf8\x09\x3c\x3c\x3e\xf4\xb7\x45\x18\xda\x8b\xf7\x0a\xb8\xd0\x56\xb8\x80\xbf\xcd\xf8\x38\xd5\x06\x79\x51\x22\xe4\x46\xed\xf3\x3b\xf0\xdb\xc8\xc3\xa2\x5e\x6c\x79\xee\xa6\x5e\x01\xef\x24\x6d\x49\x9b\x7f\x99\x53\x3f\x7a\xe9\x83\x02\xc3\xb7\x7a\xd3\x81\x1f\xfd\xe0\x03\xa0\x71\x4f\xfd\xe8\xe5\x0f\x0a\x24\x6e\xeb\x75\x3b\xeb\xc9\x95\xb4\xd6\x00\xd5\x73\x85\x47\xe3\xf4\x6a\x96\x4f\xc4\x00\x7d\x97\xd4\x27\xf7\x89\xac\x12\xbc\x5b\xc9\x3b\xe3\x00\xd1\x47\xa5\x23\x8d\x85\xf2\x5a\x58\x81\x81\x0c\x49\x4b\x11\x76\x87\x90\xa5\x27\x5f\x18\x50\xfb\x4e\x26\x83\x8e\x2c\x4d\x81\x80\xc7\xfe\xf6\x95\xed\xba\x75\x92\xb2\xfd\xa1\x7b\xc2\x35\xca\x7a\xb8\x42\x30\x65\xcb\x0f\xfc\x15\x3f\xbd\x46\xd3\xc7\xf5\xfa\xd0\xf7\x93\x3b\xeb\x81\xcb\x9b\xe9\x38\x45\xe9\xdf\x90\x85\xf3\xf0\xce\x6c\xa7\x65\xab\x02\x09\x39\x7b\x06\x0d\xb7\xf2\x45\x06\xa1\x4b\x70\x84\x5e\x7e\xef\x4a\x8f\x53\x5a\x11\x2e\x76\x89\x1e\xaa\xdf\xc2\xa6\xb8\x4c\xb4\x2d\x01\xf1\xf6\x4c\x9d\xad\x7e\xe6\x25\xa6\x25\x62\x4c\xf8\x94\xeb\xc3\xe3\x91\x26\xec\xc3\xd3\x36\xc2\xb4\x0d\xd0\xf2\xeb\xd2\xcc\x3a\xac\xf4\xb0\x8b\x42\x55\x14\x1d\x50\x29\xe2\xa5\x4d\x62\xb8\xec\xd3\xf6\x30\xca\x29\x0b\xd3\x45\xfa\xe3\xde\x52\x10\xc4\x36\x05\xa2\xf0\x87\x91\xc4\xde\xef\xe1\xff\xee\x9d\x8d\xa0\x05\x4c\x19\xf0\xf1\x80\x00\x56\xe1\x05\xdc\x7b\x94\xd0\x1a\x7c\x11\x96\xcc\x86\x1d\x1b\x8f\x82\x18\xb5\x32\x37\xe8\xe0\xc3\x93\x81\x93\x83\xc9\x9c\x44\xe7\x73\xa6\x8f\x22\xc2\x6d\xb3\x99\xa0\x96\x68\x68\x44\x07\xf0\x7a\x68\x05\x44\xdd\x61\x03\xb9\xdd\xdf\xe0\x52\xa7\xbd\xac\x6c\xbf\x09\xff\xf9\x05\x65\x5b\xf2\xb3\xf4\xc7\x0f\x0e\x3a\x69\xaf\xc2\x7f\xee\x0d\x23\xdc\x52\xc7\x0c\x89\x60\x56\x2e\xd5\xcd\xfb\x48\xe9\xfe\x0b\x33\xa4\x8b\xca\xa1\xd2\x04\x69\x01\x2e\x71\x88\x84\x7c\x50\xc2\x9f\x6e\xba\xba\x2c\xd9\xb7\xbe\x26\x56\x8b\x4f\x38\xad\x52\x91\x26\x4a\xec\xc8\xfd\xb9\x44\x1d\x0a\x85\x18\x41\xe9\xa8\x0f\x4c\xa5\x4c\x3d\x16\x8c\x13\x8f\x37\xcd\x6f\x81\xcd\xce\xb2\x2a\x15\xa3\x1d\x67\xb7\x78\x1b\x66\xf1\x98\xb2\xac\x4d\xc5\x47\x4e\x6c\x05\x77\x17\x5a\xec\x68\xdc\x8f\x7e\xb3\x51\x85\x4e\x7c\x20\xce\x2e\xe1\x2b\x2f\x0b\x66\x1b\xce\x69\x55\x99\x14\x5a\xde\x3c\xc3\xce\x42\xc0\x71\xe2\xad\x1d\x25\x70\xc6\xd9\x78\xba\x40\xd8\x82\xcf\x86\x75\x1b\x45\x43\x31\x5e\x03\x5b\xb6\xdc\xca\x8d\x65\x81\x09\x7e\x0d\x00\x2d\xc1\x2d\xc7\xaa\x46\x32\x26\xd1\x2d\x93\xda\xad\x6a\xab\x6b\xc0\xa2\xb6\xf1\xbf\x5a\x77\xfc\xb7\x2d\x7f\xed\x67\xc1\xb6\xc2\xc6\xff\x90\x9e\x64\x04\xb6\x08\x80\xfc\x71\x5a\x4c\xfa\x80\x58\x80\x66\x93\x9f\x30\x88\xc9\xb0\xd7\xf2\x65\xe0\x32\x03\x55\x43\xf2\x32\xee\x48\xa1\x07\xfa\x26\xb7\x95\xa6\xb9\x96\x76\x93\x09\x40\x7b\x1c\x28\x4d\x73\x13\x6e\xbd\x9a\x38\x14\x49\xaf\xa6\x43\xd7\x3c\x7a\xdb\xea\xa4\x51\xed\x0f\x5d\xeb\x89\x40\x8c\xca\x1a\xad\xa5\xe5\x16\xaa\x7d\x4b\x68\x8f\x97\x95\x45\x5f\xc5\x2b\x9a\x2a\x00\xf0\xf8\x22\xf5\xf0\x22\x92\x06\x3d\x01\x95\x7f\x45\x0f\x02\x30\x65\x15\x03\x86\x44\xcb\x16\x6c\x09\x02\x1a\xbc\x99\xa8\xb1\x46\xfd\xb3\x19\xa4\xd0\x25\x51\x13\x3d\x81\xd3\x05\x83\xed\x57\x31\x8c\x95\x85\xcb\xf4\x1b\xc0\x19\x54\xb0\xef\x5f\x76\xef\x6d\xf3\xd4\x94\xe0\x7e\xee\x85\xdf\xfc\x79\xad\x43\xed\xff\xe7\x03\x77\x32\x81\x67\xe9\x68\x70\x0c\xa7\xd2\x3f\x84\x85\x58\x94\x70\x96\xff\xea\x4f\xa4\xa2\xc1\x73\x04\xdb\xc8\x67\xb4\x67\x3f\x0b\xaa\x86\x23\x42\x43\x6f\x5f\x24\x79\x8a\xe1\xd7\x62\x39\xa0\xb7\x10\x46\x3c\x4a\xc7\xa8\xd6\x90\x85\x84\x72\x1c\x10\xbf\x15\xae\x4a\xfb\x1d\xfa\xa3\x0f\x8b\x7c\xb8\x5c\x6b\xd4\xd9\x03\xc8\xf2\x05\xe6\x00\xb6\x05\xa0\x5f\x13\xb8\x12\x64\x39\x71\x0e\x7e\x3b\xbd\x64\xbc\x29\x2e\x69\x7a\x80\x94\x61\xcc\x16\xa6\x60\x25\x94\x5a\xc2\xda\xe3\x1c\xc2\x81\x03\x42\xea\x90\xee\x8b\x86\xc1\x1b\xfa\x5f\xf3\x09\x69\x05\xec\xa4\xf1\xfb\xe9\xca\xcc\x4d\x1e\x59\x29\xdd\x2a\xe9\x7c\xe2\x0d\x3f\x57\x2e\x6e\xda\x5e\xca\x92\xae\x16\xde\x41\x34\x00\xe8\x67\xdd\xb2\x70\xd7\xc9\x4a\x5d\x9a\x7b\x14\x11\xb6\x6c\x2e\xb6\x27\xc2\x4f\x83\x99\x29\x60\x81\xf2\x3e\xae\x52\x91\xf7\x01\xc3\x67\x65\xb8\x95\xe1\x25\xa7\x6d\xad\x5c\x36\x2d\xb6\x23\x01\x0f\xf0\x3d\x5a\x64\xa2\xbe\x6a\x5e\x9d\xe9\x68\xf5\x31\xe0\xd2\x2d\x2d\x5d\xfd\xde\xb3\xe2\x10\x0c\x0f\xa1\xfb\xcd\x3b\xb0\xd9\x1d\x62\x7e\x00\x24\xe2\xc6\xf7\x48\x19\x59\xe9\xbd\x1d\xef\xd6\x12\xc3\xe1\x4c\x00\x07\xad\x21\x18\x84\xc5\x13\x30\xe3\xbf\xe3\x8a\x49\xaa\x45\x31\x4e\x11\x34\x16\x36\x1e\x00\xa9\xf8\xa2\x30\x6d\x43\x51\xd1\x82\xf7\x62\xc4\x53\x74\xc7\xd9\x88\xaf\xbb\xfe\x68\x27\x7b\x0e\x66\x7a\x0e\x1b\x7f\xde\xe6\xd5\x79\xa1\x32\xbd\x34\x19\xb3\xe0\x27\x78\xef\x62\xa0\x4b\x43\x1d\xbe\x11\xd4\x1e\x19\xdc\xf0\x33\xc2\x73\x29\xba\x62\x06\x13\x02\xe3\xe6\xb9\x6d\x68\xed\xf4\x60\x70\xba\xd7\x7b\x2e\x36\x5f\x87\xbb\xdd\x84\x59\x7b\xe9\xae\xa7\xf0\xec\xd5\xab\xae\x1a\x72\x04\x63\xc3\xa2\xe1\x77\xb5\x3d\xef\x23\xe6\x4a\x51\xc7\x6a\x7a\x7e\xc5\x08\x2d\xab\x2d\x2b\x10\x7c\xe5\xa3\x7e\x6a\xb6\xc8\xc8\x68\x8d\xef\x13\x9a\xde\x56\xa6\x11\x12\xa7\xea\x8b\x50\x63\xef\xd0\x9f\xc5\x63\xe3\x25\x10\x52\x03\x41\xcf\xa0\x61\x35\x90\xe8\x5d\xb4\x16\x8e\x9c\xf3\xcb\xe9\x0d\xc0\x22\xe5\xea\xe6\x5f\xbe\x67\x6d\xf2\x85\xd8\x49\x41\x42\x24\xdf\xb5\x15\x98\x9c\xe7\x05\x46\x5f\xb1\xbe\xeb\x5b\xef\xe6\xc9\xd4\x6e\x6d\xa6\x4b\x32\x62\xda\x8f\x2d\x3e\xdf\xa4\x62\x78\x62\x95\xd2\xee\xa3\x0a\x12\x9e\xb3\x35\x28\xb6\x42\x74\xe2\xc1\x5c\x52\x48\x58\x4d\x92\xab\xb4\x99\xe7\x57\x0a\x27\x19\xaf\xe5\x9b\x20\xc7\xa3\xaa\x93\x21\x09\xc7\x5d\x0b\x1b\x59\xc9\x8d\x60\x3a\x39\xcc\xe4\x51\x19\x33\x50\x53\x59\x57\xe5\xea\x54\xee\x5e\x36\x7b\x49\x25\x65\x9f\xaa\xdc\xc3\x93\x33\xee\xfc\x84\x24\x85\xdf\x50\xd1\xeb\xde\xca\xea\x90\x75\x9a\xae\x34\x3b\x66\x7f\x53\x4b\x9b\x40\xaa\x2c\xe7\xa8\xed\x8a\x8b\x0b\xa6\x1a\xda\x12\xbf\xd5\x70\xb9\xd9\x1b\x11\x55\x5b\x6c\xdf\xc0\x26\x74\xac\x46\x67\xc3\x21\x6d\x2a\xb4\x99\x6f\x21\xae\xb9\x52\xc8\xe1\xc2\x73\x04\x38\x4d\x99\x0e\xb4\x54\xe3\x25\x10\x9d\xc5\x3a\xc7\xa4\xaf\x44\x7c\x71\x69\x44\xa2\x49\xa4\xad\xa1\x4e\xad\x25\x67\x72\x1b\x36\xd7\xa4\x68\xb3\xce\x7b\x6c\x4e\xd4\xe0\xd0\xfd\xb9\xf3\x98\x69\x88\xa0\x76\x8f\x82\x30\x61\x03\xd5\x88\xbf\x7e\x16\xf3\x05\x41\x23\xf5\x92\x50\x16\x5c\x0a\xaa\x85\xa4\x54\xc1\xb6\x2a\xa8\x56\xfc\x2e\xb4\x6a\x9d\xd7\x03\x67\x39\xc5\xbb\xf4\x5e\x8b\xe0\xb5\x5b\x75\x6d\xa9\x64\x77\x24\x9f\x4f\x7f\x28\xa3\x61\x1b\x9c\x5b\x47\x93\xfa\xb5\x52\x5f\x36\xe4\xb7\x64\x1f\x70\x14\x24\x38\x8a\x59\x5a\xc6\xf7\xe9\xdf\xae\x7d\x69\x7c\x32\x44\x1e\xf5\x14\x63\xcd\x1e\xcc\x75\x42\x3d\xb1\xa7\x6f\x88\xcc\xa4\x83\x83\x4d\x29\x1c\x22\x5b\xf6\x73\x30\x49\x0e\xed\x6d\x03\x13\xc5\x0e\x29\xe5\x2b\x03\x70\xd6\x79\xa9\x7d\xda\x20\x59\x47\xe7\x9e\x05\x67\x6c\xf5\x9a\xad\x1b\xd8\x3e\x43\xdb\x47\xec\x11\x00\xda\x5e\x76\x35\xeb\x4d\x92\x3e\xa5\xb3\x5a\xd8\xec\x0f\x74\xb3\x00\x7b\xc9\xfe\xa4\xb1\xe9\xa1\xd1\xe9\x9f\x89\x8f\x83\x32\x00\xbe\x9f\x03\xda\x11\x81\x31\x91\xcd\x29\xd7\x28\xa2\x1d\x23\x3e\x10\x79\x8b\x50\x8c\x14\x6b\xcd\xb8\xb8\x2a\x01\xce\x60\x84\x80\x36\xa9\x4c\x04\x39\xda\xf5\x95\xfa\x9e\xeb\x95\x22\x48\xe1\x09\x5d\x6b\x16\x79\xf6\xcc\xbb\xef\xbe\x77\xd9\x5b\xc1\x02\x86\x06\x9e\x16\x06\x5e\x3f\x82\xc1\x0a\x55\x9a\xa3\xc5\x22\xa5\xec\x90\x05\xe0\x3d\x8b\x0c\x89\x8b\x1d\x6f\x33\xfb\x6b\x79\x08\x0f\x86\x56\x60\x72\xdd\xfe\xa4\x87\x5f\x11\xa4\x23\xdb\xb1\x22\x98\x70\xc5\x49\x70\x69\x5d\xb5\x91\xb4\xc7\x3e\x79\xb8\xaa\x95\xa1\x92\x99\x0d\x4e\xff\x7c\xad\x67\x43\x1c\x04\x46\x38\x59\xf1\x96\x95\xce\xa0\x0a\x19\x81\x41\x8a\x07\x27\x05\xfa\xb5\x87\x72\xdd\x64\x9d\xa9\x1d\xc6\xbb\xcb\x3a\xfd\x41\x73\xa7\x6c\x0e\x1a\xeb\xd5\x1a\x68\x03\x19\x88\x2b\x87\x60\xc7\x94\xd9\x60\xd1\x66\x50\x67\x2f\x73\x67\x9a\x6a\xb8\x92\xa6\x23\xd5\x43\x38\xf8\x15\x33\xe2\x93\x26\xa8\xc3\x9b\xbf\x46\xb6\x88\x98\x50\x5a\x28\x03\xc7\x8e\x58\xad\x26\xa4\xb6\x28\xb2\x40\x83\x95\x5d\x0d\xdf\x47\x82\x0a\xd4\xef\x8c\x18\x22\x2b\xef\xda\x9d\xaa\x4d\xb2\xab\x84\xe2\xa3\x8e\x47\x71\x68\xd0\x29\xce\x1c\x3e\x24\x81\x47\x53\x9f\xa0\x93\x74\xbd\x43\x76\xa9\xe8\x69\xdb\x67\x95\x05\xa2\x6e\xa2\xbc\xaf\x43\x6f\x86\x4e\x83\xaa\xb7\xea\xfc\x42\x6b\xf3\xa6\x44\x56\x75\x2b\x73\xd7\x00\x3a\xbd\xe9\xbb\xd1\xe4\x76\x6e\x7d\x32\x10\xa7\x7b\x23\xc5\xe9\x82\x96\xaa\xae\x90\x8b\x7c\x1f\xc3\x66\xf5\x04\xf9\x80\x37\x34\x7c\x47\xd7\xf2\x4e\x7e\x7e\xb2\xc1\xc9\xc3\x68\x91\x19\x05\xa0\xeb\x70\x2e\x8d\xc6\xc0\xdc\x75\x63\x3d\x40\x34\xe2\x0c\x48\xe1\xf3\x62\xe4\xc4\x8a\x71\xa5\xd0\x34\xcf\x45\x41\x63\x55\xb3\xb3\xd4\x13\x5f\xa5\x20\x02\xb3\x5a\x15\xce\x6a\x3c\xe7\x54\x5b\x96\x22\xde\xad\xad\x7b\xab\xb2\xf0\x5b\xe9\x1a\x52\xb9\xf5\xdd\xfb\x1b\xfe\x50\x25\xa9\x19\xbb\xcb\xc7\xc2\xc8\x79\xe4\x90\xcf\xb7\x31\x6a\xae\xa1\x98\x05\x7c\x04\x67\x1c\x6a\x4d\x72\x48\x8a\x17\xdb\xdc\x26\x93\xb3\x29\xed\xea\x81\x16\x5c\x1e\x6b\x9b\xda\x85\xed\xe9\x0f\xac\x11\x37\x13\x61\x87\x12\x5e\x4e\x6e\xe2\xdc\x7b\x21\x13\xf9\x78\x8b\xec\x32\x1f\x71\x24\x1d\x49\xc9\xf4\xed\xb2\x46\x89\xca\x9f\x56\x9c\x9a\xc3\xe6\xf6\x6b\x91\xf8\x71\x5a\x9c\x4a\x8b\x63\xe9\x5f\x7c\x6f\xf5\xb2\x4b\x81\xe0\x3d\xbf\xac\xc0\x7c\xee\x82\xaf\x58\xc7\xb4\xf7\x2f\x5d\x20\x4a\x86\x15\xe3\xb4\xbb\x77\xf9\x80\xa1\xf5\x8d\xd1\x26\xa3\x3b\xd6\x55\x1c\x2f\xfe\x62\x13\xc3\xdf\x45\x8c\xed\x24\xa6\x82\xdd\x3f\x71\xd5\x76\x5b\x2c\xa7\xc1\x6b\x19\x84\xd3\xac\x1f\x86\x6a\xc9\x3a\x63\x2a\x25\x16\xb2\xa5\x84\x6c\xe1\x33\xb4\x92\x21\xee\x36\x62\xbf\xb5\x88\x33\x6d\x1e\x82\xbd\xde\x32\xda\xa5\xdc\x69\xb5\xa5\x96\x15\x85\x39\xf9\x57\xa4\x44\x31\x42\x42\x0d\x8a\xf0\x8f\x48\x19\x96\x5b\x14\xed\xb7\xf9\x6f\xa4\xc4\x88\xa3\xde\xb7\x25\xfa\x7d\xa4\xc4\x5a\xde\xdb\x6e\xbf\x01\xff\x45\x18\x52\x5e\x6a\x24\x61\xde\xa6\x3b\x88\xb2\xc3\x11\x86\xd4\xe3\x2c\xaa\xf8\x01\xd6\x39\xed\xaf\xaf\xd0\x12\xa2\x90\x13\xc5\x16\x62\xcf\x0f\x58\xb7\x98\x8c\x30\xb5\x35\x14\xe7\x4b\x4c\xca\xc1\x14\xb8\x38\x12\x01\x01\x25\xa8\x85\xc1\x92\xc0\xd5\x11\x60\x01\x0d\x24\x43\x22\xd5\x18\x0f\xeb\x3c\x13\xa1\xb4\xfe\x24\x5f\xe2\xbc\x31\x2b\x48\x61\xa0\x74\xc6\xaa\xae\x2d\x1d\x32\xe2\x9c\x30\x69\xaf\x65\x2e\xa4\xc9\x55\x24\xce\x6c\x11\x18\x04\x0e\x1d\x13\xef\x6b\x17\x15\xc9\xa9\xc4\x87\x8c\x16\x2b\x32\xa0\x61\x34\x59\x00\xae\xd7\x73\x49\xa4\xb8\x73\xd1\xb7\xb6\xb7\x1f\x0b\x54\x57\xf1\xad\x5c\xd4\xf6\x1a\x2a\x14\xd2\x44\x1a\xab\xb3\xdb\x6f\x87\x57\x47\x81\x5d\xe1\x95\xbe\x5a\x0a\x52\x58\x99\x80\x80\xc5\xea\x12\x84\x7e\x09\xc1\x15\x83\x3b\x4a\xb4\x42\xa6\xed\x9c\x7b\xfa\x40\x25\x9e\x96\xdc\x38\xc6\xa2\x64\x01\x6c\xe2\x9c\xfc\x95\x03\x34\x47\x3e\xf8\x9c\xef\x84\x17\x43\x65\xb1\x5e\xb1\xa1\x89\x8f\x7c\x02\x2c\x0e\x3f\x74\xd7\x7b\x7c\xed\xba\xe0\x13\x73\x97\x45\x94\x11\x98\x57\x26\x3e\xff\x9f\x56\xdf\x7b\x77\x45\xa6\xf9\xd1\xe9\xad\xad\xad\xd3\x78\xfa\x4e\x4f\xc6\xfd\x74\x88\x2f\x7b\x32\xef\x15\xcc\x97\xfd\x1a\x39\xf3\xb6\xe6\xf7\x5b\xaf\xbe\x08\x4f\x2f\x48\xe4\x63\x45\x6b\xcd\x75\xf6\xdd\xfa\x12\xe0\x4b\x05\x54\x0f\xac\x69\x25\x4e\xe7\xcf\x05\xaa\x55\x98\x2a\x97\xdd\xa7\x79\x6f\xc8\x71\xa1\x49\x33\x3c\x8c\x81\xcf\x46\x18\xb7\x5c\x42\x2e\x6b\x79\x57\x91\x76\xc7\x30\xe4\x55\xfa\xa3\xdf\xf7\x93\xee\x15\x1f\x0f\xef\x7d\xf9\x51\x2b\x91\x41\xaf\x34\xc4\xf3\xf0\x03\xcf\x4e\xad\x04\x6b\xe0\xcf\xe2\xff\xea\x1b\x2a\x0e\x4b\x67\x11\x2e\x18\x6f\xcf\x06\xc4\x51\xe7\xcb\xcb\x11\x2c\x62\x98\x87\x89\x11\x64\x4d\xa6\x14\xf2\x51\x74\xea\xaf\xd7\x7a\x22\xe3\xeb\x7c\xd8\xdf\xb6\xc1\x31\x39\x4d\x94\x9c\x1c\xfc\x6a\x2f\x48\x80\xb7\x77\x5b\xb5\x96\x28\x03\x8f\xe7\x18\xdb\xe7\x0d\x7a\xd8\x38\x76\xd5\x7f\xd1\xde\x7b\x95\x36\x38\xb2\x5c\xfb\x42\x5a\x9a\x01\xb2\x38\xf8\x64\xb6\x36\x81\xa9\xe2\xd6\x22\x35\xb4\xd6\xa0\xe1\x2b\x2f\xe7\x1b\xa4\x9f\x5d\x41\xf7\x94\x32\xd9\xb0\x72\xf5\xe8\x82\xb4\x2f\xc2\x7f\xf1\xa5\x72\xb8\x02\x9f\x08\xa4\x2a\x7e\x4b\x03\x25\x02\xd3\x3a\x66\xeb\x2e\x46\x55\xad\x7c\xb7\xfa\xa6\x73\x69\x89\x71\xbe\xa0\xa9\x8d\x64\x4c\x1c\xb5\xb0\xdf\x08\xd9\x37\xb3\x2e\xf4\x34\xce\x36\x36\x08\x25\x39\x74\x60\x41\xbe\x20\x7b\x64\x3e\x9d\x9f\x6f\x00\x1c\x09\x32\x3e\x05\x13\x60\x91\x66\x1d\x24\x3b\xea\xf6\x9b\xba\xa8\x37\x42\xd4\x48\xad\xa0\x7f\x4b\x4c\x54\xb9\xc7\x08\xa3\xec\x7a\xab\xc5\x3d\xfd\x93\x85\xd0\x6c\xe6\xd7\x91\x25\xa3\xb0\xbb\x5f\x0b\x43\xb7\xe3\xd9\xc2\xa9\x8e\x10\x59\xa1\xd8\x43\xd7\xaf\x27\x21\x7e\x8b\x40\x1f\xdc\x00\xbe\xf0\x0a\x41\xd5\x58\xbb\x99\x64\x04\x75\x6e\x64\xe8\x2b\x7d\xbd\x62\x37\x84\xad\x70\xfc\xa1\x1d\x1b\x90\x38\x2e\xee\x6b\xd5\x80\x0d\xfb\xd1\x5f\xe6\xf8\x0e\x95\x6f\xbd\x7c\x90\x64\x12\x6e\x65\xbf\x72\x4c\x05\x54\x6d\x26\xc3\x21\xda\xfa\xfe\x96\x50\x0c\x6c\x45\xb0\x59\xa3\x7e\xbe\x2d\x81\xac\x7e\x6b\x83\x3a\xd9\x84\x31\x2c\x42\x14\x10\x64\x7d\x1c\x82\xc5\xf1\xf5\xdb\x67\x7a\x3d\x73\x8e\x1e\xcd\x7f\x4e\xf5\x6d\x22\x27\x19\xdf\x0d\x0a\xf9\xd0\xc6\x0a\x15\x53\xd0\x04\x9e\xfc\x21\x0a\xae\xa8\x26\x94\x08\x04\x0f\x5a\x65\x18\x19\xb4\xa3\x55\xce\xf2\x5f\x55\x28\x0c\xa1\x74\xce\x35\xef\x28\x2a\x47\x10\x8b\x5a\x2c\xa8\xe9\x43\x25\xa9\x9a\x5b\x40\xd3\xb0\x70\x08\x3f\x53\x03\xd6\x04\x84\x3c\x60\xc2\x66\xaa\xb1\x8c\x50\x5b\xec\x67\x59\x51\x8d\xf1\x42\x34\x91\xe4\x6a\xc2\x55\x66\x24\xba\xe2\x91\xf2\x75\x96\xa4\xa7\x27\xb6\x24\x3e\x02\xea\x17\x2b\xe2\xa9\x63\x71\x25\xb1\x81\xd8\xf5\x50\x0b\xbb\x5c\x73\xd6\xcb\xd6\xd7\x5b\x6b\xe3\x7c\xab\xc0\x58\x38\x93\x71\xd7\xc5\x83\x76\x9e\x2b\xa1\xcf\x8a\xa8\x09\x28\x29\x1b\x39\xf6\x63\x03\x68\x00\x34\x24\xb3\x35\x15\x4c\x0c\x0d\xd1\xe8\x2b\x1b\x18\xb4\xe7\x77\xe8\xaf\xbc\x24\x7b\x8c\x4a\x56\xf0\x2f\x15\xad\x76\x0e\x0a\x79\x6f\x55\x17\x40\xe3\x80\x52\xdb\x53\x0b\xc5\x66\xbe\xd5\xc1\x5f\x14\x2b\xa8\xa8\xa7\xd4\xb5\xbe\x6d\xac\x19\x41\x18\x74\x74\x93\xda\xb5\x0d\x60\x35\xde\x3f\x8b\x8f\x31\x96\x5e\x25\xcc\xae\xf0\xe7\xe2\x26\x8d\x30\xd4\x4b\x97\x11\x18\xc9\x6f\xac\x58\xc1\x1e\xf3\x43\x15\x8d\x61\xa6\x4b\x06\x12\x2f\x5f\xca\x6e\x07\xc0\x9d\x37\xce\xbf\x2b\x4f\xe4\x4f\xa4\x03\x75\x57\x5d\x8a\xec\xd0\x38\x47\x18\xc9\x41\x5b\x0d\x8e\x4d\xf6\x33\x3b\xb1\xd1\x6f\x2d\x74\x24\xb8\x49\x85\x7d\xd1\xde\x38\x59\x87\xbd\xfb\xd7\xb9\x4d\x9e\xb2\xc3\x6e\x4b\xf6\x3b\xb0\x56\xae\x25\x6b\x42\x1d\x69\x06\xd6\x9a\x03\xc4\x12\xc9\x7f\x57\xc7\x26\xf5\x85\x96\xda\x3e\xda\x82\x09\x72\xbf\x6d\xbf\xa0\x6a\x9d\x2b\xfe\x4d\x98\xe7\x4a\x1c\x01\x66\xce\x99\x4a\xa8\x44\x16\x19\xba\xc1\xe2\x69\x76\xc3\xa5\xab\x60\x33\x13\xfa\xe3\x6f\x43\xa1\xc1\x83\x2f\x0c\x84\x53\x18\x2c\x82\x70\x96\x6e\x4e\x48\x7d\x0e\xed\xaf\x27\x82\x55\x1b\x3d\xf3\x1b\xdd\xfb\xa8\xfd\x15\xe7\xba\xeb\xc3\xe0\x48\xf8\x1a\x47\xb4\xb4\x6a\x27\xc2\x1a\xc2\x56\x99\xd6\xf8\x32\x58\x26\x01\x01\x74\x67\xd0\x8b\x06\x97\xab\x61\xe4\x77\x92\xf1\x95\x5e\xbe\x35\x64\xfb\x5d\xdb\xd4\xd6\x98\xd4\xcb\x9c\x1b\x98\x82\x7b\x04\x67\x08\x4f\xb9\x3b\x40\xb4\xe1\xd7\x02\x0e\x4b\xc5\x67\x77\xe7\xbf\x3e\xce\xc0\x2b\xe8\x6b\xe9\xea\x53\xbb\x9e\xa4\xa6\x3b\x4d\x13\x26\xdd\x9e\x1e\x02\x32\x4f\x14\xf2\xdf\x47\x4b\xc6\xf8\x57\x53\x72\x25\xaa\x9f\xf5\x20\x88\x97\x93\x10\xc6\x87\x1d\xbb\x0e\xaa\x25\xd9\xfe\xbf\x49\xff\xed\xda\xff\x40\xa5\x53\x9e\x01\xd8\xcf\x27\xa8\x31\x21\xb5\x09\x21\x07\xd6\x6e\xb0\xe1\xa5\x19\x8d\xf3\xde\xa4\x8b\x30\xff\x34\x21\x49\x3d\x42\xd4\x6b\x00\xa9\x4e\x26\x0e\x12\x89\x50\x38\x49\xa5\xb1\xae\xde\x4d\xcc\xc3\x2f\xf7\x1c\xed\x1e\xc2\x5c\xfb\x12\xda\x3d\x72\xf5\x49\x1e\xe3\x2e\x7f\xe3\xb5\x8d\xf6\x69\xef\x4c\x47\x10\xbd\x4d\x7e\xe1\xc0\x95\xbb\xa6\x33\x4e\xe6\xa7\xe2\x24\xca\xf5\x5a\x12\x30\xf1\xe4\x89\x1f\xe5\xe3\x8d\x0f\x54\x16\x33\x7d\x30\x96\x67\x30\xd3\x15\x8f\x13\xdb\x25\xda\xca\xa3\x4a\x64\x17\xe3\x83\xc5\x55\x62\xbb\x48\xae\x17\x0e\xb7\x6a\x3b\xfc\x76\xee\x92\x43\x36\xd8\x08\x28\x41\x77\x60\x49\xdd\x20\xef\x6e\x4e\x57\x47\xf1\x1f\x84\x33\xa4\x24\x38\x15\xb7\xe6\x58\xce\xfb\xcf\x25\x44\x89\x78\x07\xd5\x19\xa0\xc3\x93\x27\xd8\x5e\x0a\xd7\x0e\x53\xcd\xce\x28\xf9\x53\x86\x2a\xb6\x7c\x90\x92\x5d\x0a\x27\x7e\xb8\xc7\x29\x40\xe6\x2e\x70\x2b\x41\xe7\xca\x65\xc5\xac\x6b\xce\xd9\xd5\x25\xe3\xa4\x44\x1f\xa2\x33\x29\x38\x0d\xc5\x54\xb2\x00\x4a\xb6\x0f\x2e\x71\xac\xbc\x22\xca\xcb\x1b\x7b\xab\x2d\x03\x23\x4b\x92\xf7\xe8\x61\xdc\xe4\xdd\x6b\x88\xed\xa2\xb2\xc5\x2d\xcb\x2c\x4a\x45\x97\x35\xa3\x51\x86\xb2\x53\xa8\xa5\xae\xd3\x77\x90\xad\x12\xe6\x92\x1e\xcd\x85\x9f\xd6\xe7\xf0\x40\x49\x50\x2c\x9a\x53\xa9\xf7\x76\x8c\x18\xcc\x28\xdf\x6c\x8e\x02\x67\xc7\xec\x60\xd9\x26\xdb\xfd\x11\xf0\xc2\xaf\x44\xfc\x26\x6b\x00\xd5\x5e\x97\xe2\xa8\x5b\xcf\x8a\xc2\x3b\x0c\x90\x25\xc7\x5c\x92\x1a\xeb\x40\x3a\xcc\x32\x1d\xa9\x00\xb2\x12\xb1\x6e\x5e\xcf\x41\x76\xb3\x69\xf4\xaf\x37\x85\x69\xc1\xfd\xb0\xc0\xe5\x70\x29\x4c\x30\xc7\xc8\xe5\xf2\xf4\x91\x5b\x16\x76\xb5\x24\x5e\xcb\x5f\xc0\xf2\x4d\x65\xe9\xf8\x56\x64\x9b\x3e\x93\x5e\xa8\x35\x60\x13\xb1\x3b\x35\x5b\xb0\x63\x66\xef\xf8\xcb\xda\x8e\xc1\x85\x0b\x22\x0f\x46\xd3\xc4\x44\x72\x6f\x34\xb4\xe3\x72\x70\xb8\x1c\x47\x38\x7c\x1f\x83\x6d\x39\xc6\xf8\xf7\xcb\xc7\xc1\x72\x7b\x36\x50\xe3\xd8\xe0\xbb\x92\x3f\x4d\x1d\xf8\xe8\xfc\x9b\x8d\x1b\x9a\x6d\x1b\x66\x8d\x6b\xc9\x26\x00\xb3\x65\x29\x52\x08\x9b\x2d\x31\xf8\x6a\x42\x28\x55\x71\x57\x43\x48\x3e\x5c\x41\xb4\x8c\x3b\x66\x2b\x3a\x42\xdf\x61\x2d\x3e\x9f\xa1\x84\x8f\x0f\x45\x63\xbb\x23\x36\x74\xd5\x44\x72\x3e\x5d\x48\xac\xcf\x5a\xa0\xbe\x96\x69\x34\x84\x58\x18\x76\x6f\xb1\x41\x84\x34\x80\xc8\xa6\x29\xf6\x5e\x43\xba\xa4\x58\x13\x3a\x0c\x5f\x74\x5a\xb7\x97\x44\xe0\x0b\x27\x3c\xff\x67\x7d\xf2\xe1\xd3\xd1\x2f\x4f\x8b\xae\xc9\xa5\x05\x8d\xc4\x48\x8e\xa8\xfe\xbd\x2c\x50\x82\xe5\x3f\xb5\x78\x73\x45\x69\x8c\x98\x7b\x50\x71\x50\x91\x39\x7a\xe8\x15\x00\x3a\x04\xab\x8b\xad\x48\x33\x43\xce\x5f\x0b\x13\x89\xa6\x53\xdc\x26\x11\x53\xea\x0e\xfe\xa3\xcd\x02\x3b\xb7\x11\x93\x84\x2e\x61\xca\xbc\x1b\x09\x10\x5e\x2d\xe2\x90\xfb\x1d\x1b\x95\x94\x0f\x3c\xd3\x49\xac\x30\xa4\xb8\xc3\xaa\x22\x5b\x60\xb5\x6b\x65\x1e\xd5\xca\x34\xb7\x5e\x49\x4a\xe5\x6b\x36\x05\x49\xb4\xdf\xad\xb5\x4a\x85\xf0\xf2\x05\xe0\xf0\x77\x53\x0c\xb0\x76\x47\x87\x4d\xb0\x5f\x59\x3c\x56\x73\x61\xb4\x9f\x81\x5d\xb8\x9a\x5a\xd9\x8e\x4b\x9a\xe8\xbf\x0b\x39\xe9\x74\x43\x64\x73\xe9\xd2\xd3\xb9\xe8\xf6\x2c\x4e\x5e\x9c\x50\x59\xe5\x4d\x78\x12\x23\x4a\x03\x4b\xa3\x4f\xdc\x3d\x38\x55\xbc\x52\x1b\xce\x30\xdf\x8a\x50\xb6\xac\xae\x42\xd0\x43\x2b\x45\x59\x00\x91\xa4\x6d\xa1\xeb\x2c\x47\xbe\xf9\x6f\x73\x97\x14\x8f\xe7\xc9\x05\x64\x15\x50\x44\x20\xd1\x59\xf8\x3d\xf2\x4e\x12\x2b\xb9\xad\x83\x1c\x8b\xe2\x96\x32\x57\x68\xf2\x31\xa8\xe1\xce\x82\x00\x00\x1d\x19\x68\xda\x14\x37\xb8\x92\x8b\x47\x5b\x24\x33\x6b\xce\x9e\x9d\x33\x1f\x4f\x6b\x16\x09\x70\x75\xe4\x12\x5f\x46\x65\xf5\x96\xaa\x2c\x58\x6c\xd0\x3c\x43\x1d\x2c\x34\x56\xe5\xf8\x53\x94\x30\xda\x3e\xf2\xce\xcc\xa5\x9a\x95\x7c\x51\x4b\x07\x5d\xcb\xa7\x46\x31\xc8\xd9\xe3\xd4\xc5\xc9\xd2\x2e\xb8\x44\xc3\xf1\xa0\xc9\x4d\x3b\x3e\xcf\x05\x16\xde\xb1\xda\x7f\xc9\x5d\xdd\xf1\xb6\x85\x12\xe5\x12\x15\x7c\xe4\x5e\x49\xfc\xc0\xae\x17\xa1\xd5\x2c\x21\x8f\x3e\x8e\xe4\x97\x73\xf2\x51\x69\x2e\x48\x73\x43\x1b\xa0\x9c\x2e\x58\x70\x41\x01\xa9\x25\xb5\xa7\x5b\x2e\x17\x1f\x4c\x26\xe9\xb2\x6f\xdb\x34\x99\x42\xd4\xc7\x83\x87\x71\x1b\x0b\x49\x67\x2e\xc2\x56\xce\x75\x66\xe5\x8b\xd0\x48\x9e\x22\xb3\xd2\x62\x92\x69\xda\x82\xd0\xda\x98\x59\x23\x40\x30\x0d\x79\x57\x31\x8c\x7c\x20\x3c\x56\xed\xbb\x06\x8e\xe7\x05\xa0\x9a\x89\x52\xad\x6e\x4d\x1d\x07\xfd\xaf\xde\xd6\x2f\xc8\x6a\x6e\x19\x31\x31\x2a\xd0\x0b\xf5\x27\x11\xf4\x5c\xd5\x06\x7e\x26\x6e\xbb\xee\x14\x80\x04\x97\x1f\xc5\xcd\x85\xa3\x40\xcd\x10\x71\x97\x16\x25\x55\x73\x25\x90\xa4\xd3\x43\xee\x63\x4f\x4f\x8d\xb1\x4a\x76\xc9\xf4\x8e\x3b\x44\xdd\x52\x70\x82\x1b\xaf\x69\x48\x75\x1d\x3b\xcc\xb1\x51\xdb\xe8\xe9\x13\x3d\x61\x6d\xef\xf9\x84\x6d\x68\xe0\xeb\x6d\x67\xf7\x19\x44\x84\xaf\x65\xce\x6d\x3c\xb6\xad\xd8\x54\x1d\xaf\x11\xe4\x2e\xae\xcd\xf9\x18\xce\xf9\xad\x00\x91\xd5\x6e\x66\x7c\x35\xad\x80\xd6\xe6\x9f\x76\xd6\xb3\x95\x89\x62\x77\xee\x7a\xfd\xab\x47\x9e\xee\x0e\xbd\x12\x18\xd1\xea\x05\xfc\x13\xf0\x5f\x1c\x8b\x54\x24\x17\x15\x4c\xf8\xef\x39\x61\x25\x9b\x3f\xc6\x84\xe7\xa1\x85\x2d\x99\x35\x45\xd1\x45\x44\x90\xb4\x04\xe9\x33\x3a\xab\x4e\xf5\xb2\x93\x26\x6d\x8c\xc9\x1b\xdf\x0e\x9c\x82\x9b\x78\x30\xc7\x68\xf0\x15\x23\xf0\x8c\x4c\x13\xf1\xb0\x90\x23\xfd\x8a\x35\x51\x59\x61\xb3\xd0\x5e\x2f\xf4\xbd\xb0\x8e\x65\xd8\xcf\x73\x4a\x2d\x9b\x91\x63\xae\x3d\x79\x4b\x05\x89\xc7\x07\x2d\x0e\x66\x79\x0d\x70\x24\x0f\x5a\x83\x9f\xd9\x71\x3b\x11\x33\x75\xf1\xf8\x0a\x09\x6d\x3f\x8c\x61\x3e\x64\x75\xfb\xd0\xc6\x9c\xfc\xc2\x26\xbf\xbe\xab\xcf\x10\x91\xd6\x24\x92\x20\xd1\xfb\x8d\x63\xc6\x9f\x8c\xa7\x46\xab\x25\x73\xdf\xf5\x96\xfc\x4a\xa9\xc5\x02\x7d\x3a\x18\x1f\x9c\x3c\xd1\x4b\x8a\xcd\xb5\x3c\x91\x1c\xc5\xf3\x03\x6b\x17\x7f\xb3\x9a\x27\x04\xb1\x3d\x9a\xa5\x15\x0d\xc6\xf4\x22\xe6\x77\x0e\x4f\xcd\xd9\x86\x8f\x97\x95\x7a\x02\x67\x67\x58\x66\x56\x1a\xf6\x8b\x78\xbc\x64\x92\x06\x6c\x44\xe9\x0e\x71\x83\x41\x5e\x89\xb5\xd6\x98\x67\x5c\x92\x17\x45\x65\xfa\xc0\x7a\xe4\xc3\x8c\x5c\x23\xbe\x12\x18\x63\x7b\x3c\x98\xdf\xc3\x74\x80\xe9\xd5\x7a\x70\x2b\x36\x87\x89\x45\xb1\x9a\x71\x7a\x1c\xb7\xc2\xa4\x25\x87\x43\x81\xbc\xeb\x9d\xaa\x3e\x9d\x0c\x00\x5c\x49\x6f\xbd\xcb\xc2\x6b\x9f\xb1\x70\x16\x34\xb8\x0d\x47\x6c\x40\x4a\x7b\x8c\xbb\x25\x8d\x22\x94\x37\xc4\x26\xb9\x59\x0b\xab\x45\x50\xc7\xcf\x6b\x1a\x1d\x5c\x07\x0d\xbe\x29\xd0\xec\x5d\x92\xd5\xed\x2a\xcb\x4f\x20\x2d\x29\x8d\x8a\x4a\x5e\x42\x9e\x2a\x06\xb3\xf6\xf5\x30\x6b\x5f\x03\x53\x88\xac\xda\x8a\x2e\x15\x55\xf1\x04\x25\x2a\xf9\xc2\x30\xd2\x8f\xca\x93\xa6\x8b\x36\x5d\x92\xca\xa0\xee\xeb\x04\x41\x07\x0d\x7e\x47\xc8\x7b\xa8\x7a\x55\x3b\x84\x19\xe7\x09\x9a\xd7\x62\xf0\x56\x6a\x55\x72\x3d\x87\x2d\x3a\x13\x0c\x4a\x32\xa8\x17\xa5\xa6\x14\x08\xeb\x5a\x8d\xfc\x2e\xe7\x82\x38\x92\x9c\x07\xc1\x5a\x50\x06\xa3\xb9\xf2\x39\x5e\x96\xf7\x68\xf9\x3a\x1d\x73\x4b\x55\x8c\xf7\xda\xee\xb0\x3e\xbc\x3a\xdf\x99\x30\x89\x9f\x68\x1e\x65\x47\x2c\x04\xa6\x41\x51\xbc\xaf\x77\x4f\x8b\x5b\x77\xb5\x1d\x94\xf9\x7d\x1c\xbc\x71\xc1\xa4\x2a\x23\x94\x08\x48\xa6\xa1\x21\x85\x5e\x1b\x2a\x92\xe5\x70\x5d\x4a\x86\x09\x8f\x83\xb3\x5b\x4d\xcc\x1f\xb7\x7f\x69\x45\x2f\xbd\x52\x70\x45\x15\x2a\x0b\x20\x82\x6f\xa3\xd8\xca\x74\x74\xea\x79\x90\x13\x38\x5e\x65\x3c\x19\x8a\x59\x01\x2b\x48\x74\x29\x8c\x5d\x31\xec\x48\x9e\xaa\x9c\xc3\xda\x57\x08\xf7\x83\xa6\x44\x5f\xbb\xe6\xbd\x33\xef\x97\x9b\x8b\x9b\xd3\x42\xf4\x05\xed\x40\xc9\x4a\x4e\x94\x7a\x4e\x4c\x4d\xf5\xb2\x91\x93\xeb\x57\x28\x69\x71\x73\x48\xbc\x00\xb9\xa8\x4d\x87\x75\x07\xb4\x75\x53\x67\x64\x1b\xa8\xa7\x04\x97\x34\x26\xeb\x3f\x5e\xc7\x2a\x95\xfa\x9f\xdd\x63\x65\xea\x75\x82\xbf\x36\x20\xd2\x3a\x63\x68\xe3\xec\x6a\x5a\x44\x44\xe0\x56\x76\x8b\xd0\x06\x2e\xe6\x8c\xe4\x1b\x0d\x64\xe7\x2e\x06\x41\x5e\xdc\x43\x6d\xb2\xae\x59\xa6\xbb\x1a\x72\xba\x34\x68\x4b\x16\x6c\xf4\x46\x56\x76\x36\xba\x4c\x0a\xc6\x3c\x3b\xa1\x9d\xbb\x1c\x41\x1f\xd9\xe2\x7d\x6a\x98\x70\x62\x33\x6a\xe0\xd4\x73\xf1\x2e\xb4\xab\xa2\xb4\x8b\x4d\xd5\xda\x8d\xcb\xc2\x55\x07\x35\x85\x90\xe2\x04\x84\x6f\xd5\x63\x18\xa7\xc5\xf6\xb0\x8b\xda\x50\xcc\xf6\xca\x36\xb2\xf6\xc6\x0b\x7e\x0e\x2c\xdb\xcc\xf7\x7f\x68\x41\xc1\x17\x39\x12\x75\xf6\x93\x94\x0c\x40\x8b\xef\x1f\x9b\xe7\x9d\xc8\xee\x9a\x95\x5d\xbd\xc2\x77\x9a\x31\xbe\x83\x1f\xc2\x51\x13\xef\xc2\x99\x4f\x91\xd7\xc5\x0d\x78\x61\xf1\xc8\x2a\x26\xe2\x11\xe5\xd7\x93\x70\xe4\xe2\x24\xc9\x07\x25\x08\xfb\xa7\x53\x5e\xce\x9a\x16\x44\x59\x87\x17\xed\x4b\x29\x71\x7d\xa4\x3e\x97\x34\x56\x64\x26\x9e\xaf\x07\x9c\x89\x79\x1e\xdd\x00\xd2\x9e\xd9\xda\xc4\xd8\x38\xec\x4b\xc5\x44\x26\xe5\x99\x30\x2e\xa8\x46\xaf\x69\xb6\xba\x5b\x37\xe5\x33\x64\xb2\xea\xfb\x79\x2e\x18\x04\xc5\x73\x94\x3c\x5c\x38\xcc\x12\x23\xd1\x28\xfb\xd2\x56\x85\x8e\xa4\xbc\x17\xd0\x11\x3a\x80\xe3\xe1\xbe\x46\x32\x3d\xce\x34\xc1\x0c\x2b\x49\x16\x6c\xc6\x6d\xcf\xc9\xe0\x25\xbb\x2e\x9a\xf6\xdd\x2a\x05\xd8\x9d\x8c\xd1\xf6\xb4\xb3\x91\x8f\xf3\x49\x99\x0d\xd3\x6a\x82\xf4\xb7\xec\x87\x22\x56\x0d\x98\x44\xe0\xb8\x3a\x13\x0e\x63\xee\x6b\xee\x36\x18\x53\xcc\x5d\xce\xe8\x29\x0e\x9e\x65\xf1\xbe\xd9\x32\x2f\x93\xbe\x6d\x14\xb5\xfd\x5d\x36\x8c\xf9\x42\xd4\x64\x87\x41\x4d\xbe\x27\xde\xb3\xf4\x50\x37\x25\x8d\xe4\x6b\x65\x02\x83\xc7\x80\x68\xf8\x6c\xde\x93\x67\x5d\x94\x6c\xc6\x30\xb6\x34\x6c\xcb\x64\xd4\xc1\x05\x2e\xda\x17\xf9\xa5\xb9\x40\x2f\xcd\x65\x7c\x19\x69\xdf\x0e\x52\x6a\x49\x2f\x67\xe4\x6d\x63\x35\x8c\x08\x1a\x56\xf9\x21\xbc\xa9\x17\xb7\xeb\xbc\x99\x26\xa3\xa7\x5f\xe5\x3d\xf6\xe4\xd2\x0d\x52\x43\xd5\xb5\x79\x1b\x5e\x9a\x05\x0b\xa4\x2b\x65\xbd\x7e\x1a\x54\x38\xdf\x43\x23\xf8\x86\xc2\x64\xe6\x8e\x19\x26\x6e\x32\x14\x09\x77\x4f\x1d\x52\x4a\x8e\x16\x6d\x43\x4c\xde\xc2\x51\x5e\x92\x97\xb5\x4a\xf9\xda\xdf\xa6\xdd\xb2\xe0\xc2\xef\xf1\x83\x2e\xb4\x96\xe7\x65\x51\x8e\xa1\x24\xf0\x3e\xe4\x74\x85\x6b\xfa\x86\x7d\x6b\x56\xf1\xad\x79\x1f\xdf\x56\x18\x25\x28\x5c\x5d\x37\x2e\xbc\x60\xe1\x06\x98\x66\x07\x7a\x1a\x4f\xba\xe5\x04\xc0\x85\x74\xf7\xce\x2a\x26\xe7\x59\x75\xaf\xeb\xfd\xd5\x2a\xfa\x73\x5c\xad\x1b\xed\xb7\x9b\x74\x37\xd3\x48\xc7\x67\xf1\xfd\xe2\x9e\x6b\x55\x7d\xd7\xb5\xda\xd1\xdb\x34\xce\xd7\xb3\x3e\x5a\x48\xac\x4d\xba\x57\xd2\x12\x23\xe6\x6c\x76\xc8\x7e\xd9\x37\x75\xd1\x16\x32\x6f\x50\x21\xf3\x36\x14\x32\x97\xc9\x67\x34\xd6\x28\xa0\xdc\x41\x5a\x26\x64\xf5\xee\x1a\x79\xeb\x2c\xac\x3d\xbe\xec\x25\xd1\x4a\x39\x86\xed\xeb\x08\xbf\x2c\x17\x15\x49\x5e\xd7\xc0\x7b\x58\xc0\xac\x52\x01\x7b\x67\xd1\xe3\x39\xd6\x18\x32\xfb\x8c\xf9\xbb\xdb\x40\xc8\xb6\xdf\xc5\x9c\x4a\x30\x82\x4b\xfc\xac\x8b\x52\x3e\x61\x28\x4a\x90\x7a\x35\x1b\x76\x31\x64\x7e\x41\xa5\xf1\x82\xd7\x01\x9e\x2d\x7b\x19\x9f\xb0\xd8\x45\x8c\x3a\x18\x2d\x37\xc2\x2f\x0b\x0a\xda\xbe\xb9\x9c\xed\xb6\x56\x4c\x7a\x2c\xda\x32\xa6\x02\x91\x0d\x49\x7a\x38\x92\x82\xa4\x91\x85\xa3\x96\xf6\xc9\x1f\xd1\xbc\x43\x6f\xa0\xa5\x21\x46\x64\xe3\xa2\x68\xe6\xe7\x6c\x31\x1a\xf3\xb8\xcc\x2b\x59\x1f\xa5\xae\xb7\x3d\xb2\xaf\x2c\x95\xdc\xd3\x1e\x6e\x8a\x14\x76\xe5\x28\x26\x33\x94\x69\x50\xda\xd8\x72\x42\x07\x36\x08\x9b\xb8\x8c\x78\xec\x85\x61\xeb\x0f\xed\xd7\xa5\x16\xf5\x32\x20\x62\x65\xc4\xfd\xe3\x37\x21\x7f\x1b\xcd\xfa\xe5\xfb\xa7\x84\x55\x98\x77\xae\x92\x92\x2a\x68\xba\x9f\x6f\x64\xc2\x20\x9e\x11\x1a\x8e\x0f\xea\x05\xfc\x60\xde\x25\x5f\x51\xd9\x3d\x26\x44\xf8\x12\xfa\x40\x80\xe2\xfb\xf0\xd3\xf9\x4c\x24\x7d\x8d\x69\x69\x6b\x7c\x6e\x9d\x9f\xf0\x6b\xe3\x77\xbf\x1e\x1d\x79\x41\x1f\xb6\x89\xac\xe8\xa8\x3d\x3f\x46\x3a\xcb\x38\x87\x34\xd5\xed\xf1\xd9\xf8\xce\x2b\x6d\x16\xce\xf5\x29\x43\x82\xb9\x5d\x41\x43\x44\xf4\x25\xef\xb0\x2f\x61\x53\xa4\x11\xad\x46\xb5\x3d\x68\xe1\x2c\xf5\x8d\x8e\x9f\x71\x9f\xbf\xf8\xa6\x46\xb4\x83\x4f\x8e\xbb\xbb\xb6\xc5\x25\x09\x5b\x59\x71\xb8\x20\xaf\xaa\x6d\xa7\x28\x33\xa0\x7e\xf3\xad\xa1\x48\xbc\xc9\xbb\x78\xc7\xc5\xbe\x08\xaf\xbe\x63\x2d\x71\xdd\x7f\xce\xf4\x3d\xeb\x57\x5c\xd6\x34\x49\x58\x26\xcb\x8f\xac\x14\x45\x64\x61\x79\x4a\xa3\xcc\xaf\x2a\x03\x97\x5c\xdc\x2e\x6e\x58\x60\x87\xc6\xdb\x22\xde\xee\x95\xf0\x76\x44\x63\xb6\xc2\xc9\x61\xc0\x37\xb4\xe8\x26\xfd\x89\x2c\x98\xa1\x4f\xe4\x1f\x26\x6a\x92\xcd\x6c\x44\xf1\x1b\x4b\x43\x09\x1a\x38\xd6\x97\x92\x8c\x73\x98\x07\xa2\xf9\xcb\xdc\x90\x3d\x0a\x3a\x0d\xab\xb8\x58\x81\x1c\xdd\x85\x56\x22\xf9\x7a\xd1\xa2\xb0\x36\x1a\x26\xc7\x73\x7a\x2b\x3d\x3e\x27\xdc\xa0\xca\x01\xa8\xa5\x37\x71\x4b\x70\xfa\xb4\xc8\x10\x5c\xc4\xf8\x04\x58\xc3\xe1\x5c\xf2\xe1\xa1\x42\x44\xc1\x15\x16\x25\x8a\xad\x8c\x8f\x5f\x2d\x32\xc9\xe2\x12\x94\x5e\x8d\x25\xfd\x2c\x7f\xbf\x8d\xb8\x85\xbf\x61\xd6\xb4\x22\x9a\x36\x6d\xdf\x16\x71\x29\x52\xe6\x87\x56\xf9\x88\x4b\xc0\x3a\x08\x01\xbb\xc1\x0c\x43\xc0\x1b\x4e\x92\xeb\x60\xe8\x5d\x74\x36\x45\x87\xca\xb0\xf4\x2a\xa1\x06\x57\x4e\x4f\x97\x5f\x05\x49\x5d\xf8\x55\x3a\x44\x62\x88\x22\x4c\x79\x09\x38\xa1\x26\xfe\xbe\xc8\x69\x40\xcd\x21\x70\x2c\x6e\xc0\x44\xaa\x78\x83\x95\xfd\xc2\x8a\x11\x57\x5f\xfe\xb0\x99\xa3\x4b\xca\x3f\xf3\x2d\xb7\x2f\x31\xa8\x09\x7b\x66\x5c\xf3\x2f\x49\x22\xd8\x1b\xb6\xdf\x80\xbf\xe6\xdc\xbb\xc1\xeb\x51\x52\x14\x5b\xf9\xb8\xc7\x1f\x2f\xca\x93\x5b\x06\xa4\x56\x28\xc2\x3b\x51\x29\xab\x94\xb1\xcb\xbc\x41\xd1\xde\x65\x5e\x65\x39\xce\xd6\x26\x68\x55\x86\x93\xfb\x21\x5e\x2c\x76\x94\x75\x5f\xea\x45\x8b\x09\x87\x62\x58\xe5\xbf\x8b\x8a\xa2\xc7\x49\xfb\xcd\xd3\xf8\xa7\x5e\x8c\x63\xc9\xf3\xd8\x38\x92\xbc\x6b\x80\x94\xb4\xf2\x9d\x54\xb0\x95\x02\x03\x44\x66\x9d\x22\x69\xbf\x53\x98\x33\x3d\xb3\x7a\xc6\x7e\x28\x06\xe5\xc8\xe6\x18\x5d\xb0\xaf\x66\xf5\x9d\xcb\x17\x75\x1d\xde\x0e\x0c\x60\x04\xf7\xaf\xf6\x95\xf6\x05\x5f\x9e\x26\x6b\x06\xb5\x39\x7c\x12\x3b\x65\xbf\xa8\x1e\x46\x42\xf3\xe8\x1f\xf6\xd3\xa3\x30\xbb\xeb\xe5\x0b\xab\xae\xed\x2b\xd9\x08\xeb\x76\xd0\x35\x7e\x7d\xbb\xbd\x0a\xcf\xf8\xdd\xfc\x17\x7a\x76\xc7\x02\xad\x1c\xd2\xf1\xd5\xac\x2b\xfb\x74\xf1\xcc\x3b\xb0\x9b\xf4\x42\x08\x9c\x60\x34\x14\x5e\x7b\x9c\x6e\x64\x94\xb4\x43\x8d\x6b\xb1\x3b\x3f\x21\x32\x82\xf9\xf7\x14\x76\x17\xab\x67\xb9\x8b\xd9\x48\x82\x8f\x51\x16\x0b\x84\x0a\xd2\xf3\x62\x62\x30\x12\x4b\x76\xd9\x8d\xab\xd2\x3e\x88\x28\xd9\x6a\x82\x1a\xff\x29\xeb\x08\xad\x25\x71\x23\xf1\xa3\x01\xc2\xa2\x90\x7b\x0d\xe7\xa4\xa6\xd8\x88\xd8\x8c\xe8\x2e\x62\xf4\xc7\x53\xce\xbc\x39\x88\x29\x0a\x66\x63\x69\x72\x3f\x0f\xab\x76\x18\xb8\x35\xa6\x4f\x5f\xda\x37\x37\x10\xd8\x80\x44\xb3\xf3\xfe\x05\x4c\x89\x38\xe3\x20\x4a\x13\xad\x10\xcf\x2a\xb0\x11\xff\x1e\xd0\x36\xdf\x23\xaf\x1d\xdb\x67\x55\x5c\x27\xb5\x93\xd1\x28\x70\x94\x15\x7d\x89\xf2\x12\xf1\xda\x71\x2a\x7c\x95\xaf\x06\x0a\x06\xaf\xcf\x67\xc7\xa9\xe1\xe2\xdf\x2c\x2a\x18\x01\xf8\xf2\x25\x5f\x5f\xc7\x90\xf6\x98\x33\x25\xf5\x71\x9d\x09\xf1\x6a\x6f\x4e\x72\x7e\xf5\xcd\x71\xac\xa8\x0e\xca\x19\x49\x0a\xb7\xc1\xd9\x3a\xab\x90\x66\xfe\x80\x16\xe9\xc0\x52\x79\xfb\xa4\x47\xf8\x14\x49\x1e\xba\x17\x0f\x35\x9d\x2e\x6d\x8f\x27\x24\x81\x1a\x07\x2a\xae\x66\xdd\xe6\x7e\x50\x91\x67\xf1\x3b\x3b\xe0\xba\x58\x5e\x2f\x0a\xd1\x44\xe3\x3c\x2f\x39\xfb\xb0\x22\x88\x2e\xc1\x4b\xc0\x5b\xa8\x0b\xb3\xc7\x00\xd5\xee\xdd\x0e\xe7\xc9\x74\x55\x56\xe9\x2d\x62\x81\x34\x52\x07\x96\xa5\x5a\x01\xb8\xbf\xa6\xd2\x1c\x82\xbd\x12\x9d\x48\xd2\x93\xb3\x93\xad\x1e\x39\x66\xb4\x90\x1b\x41\x8b\x75\x89\xdf\x10\x15\xe3\xed\x31\x0c\x62\x31\xbf\x6b\x6b\x4b\x8f\x31\xdb\x12\xb0\x0d\x8c\xb3\x25\xd0\x0d\x04\x64\x8f\x7f\x5d\xa1\x1b\xfc\x87\x80\x72\xf2\xaf\x79\x83\x1b\x78\x30\x5d\xb0\x28\xfa\xb5\x4d\x5d\x5d\xbd\x10\x2b\xe2\xd2\xf0\x1f\x05\xc1\x91\xd9\xc9\xe1\xfb\x3f\x60\xb2\xa8\x8d\x71\x5a\x7c\xff\xf8\x05\x5d\x9b\x13\x4f\x7f\x6b\x8d\xec\xc3\x0f\xae\x49\x8c\x5a\xf1\x6c\xf1\xe3\x7e\x56\xa6\x2f\x3f\x6b\x30\x4e\xd2\x0b\x01\x84\xc8\xc8\x75\x9e\xd6\xd6\x62\xc0\xb3\xf4\x38\x19\x4b\xde\x11\xb7\x73\x8c\xff\xc4\xed\x55\xbc\x64\x28\x32\x5e\x36\x4e\x8d\x10\x25\x67\xf9\x75\x58\xd5\x5d\x3a\x87\x42\xf5\x95\x53\x66\x53\x11\x3c\x69\x87\x8a\x01\x24\xb8\xbe\xe8\x92\x81\xf2\x29\xf3\x61\x7b\x15\xc3\x8d\x5f\x92\x86\xcd\x1b\xf4\x52\x8d\x99\xd3\x5e\xd9\x34\x58\xec\xb9\xfe\x25\xad\x6b\xd5\x43\x5d\xac\x91\xc9\x44\xe2\x63\xe1\x02\xf7\x1b\x41\xb5\xeb\x82\x16\x03\x2d\x81\x30\x6d\x93\xf5\x01\x66\x69\x54\xb3\x19\x90\xd4\x15\xf2\x82\x85\xa0\x09\x60\x67\xcc\xbf\xfc\x5b\xc2\x84\xb5\xc4\xe6\x7c\xca\xa6\x9c\xd1\x95\x41\x28\x07\x60\xc2\xb8\x07\x9d\x3e\x29\x57\xcf\xd0\x1b\xd8\x83\x5e\x6a\x2e\xe0\x1b\xb5\x10\x45\x5a\x3a\xea\x56\xd7\xb9\x84\x5f\x1c\xa5\x1b\xab\x6b\x23\xd3\x35\x59\x42\x4d\x17\x39\xfc\xdc\x8b\x1b\x33\xdc\xae\xbb\xea\xcc\x5c\x87\x3f\x9e\xa4\x13\x18\x5e\x3a\xdc\x80\x03\xfe\xd7\xf8\x60\x2e\xd0\x83\x3f\x50\x1c\xfd\x88\xc4\x8a\x00\xc8\x19\xe0\xda\x58\x07\x34\x22\x6d\x4e\xb9\xa7\xda\xae\x52\x88\x92\xa5\xca\xa5\x6d\xa7\xe5\x46\x8a\x51\xb0\xeb\x8e\x35\x39\x09\x36\x5c\xa1\xd5\x88\x43\xde\x13\x3e\x05\x9c\xdc\x57\xd7\x69\x66\xb3\xc2\x72\xf6\xbe\xc0\x1d\xce\x63\x77\xe5\xed\x37\x2f\xbc\x57\xad\x13\x03\x57\xf2\x89\x41\xdc\x1d\x8f\xe6\xab\x05\x8e\x07\xd3\xd8\x88\x62\x19\x1c\x26\x03\x8a\x4a\x9d\xa5\xf3\xe6\x1b\xb0\x60\x49\xf7\xe8\x52\x4c\x2b\x15\x92\x5e\x32\x42\x70\xc2\xaa\x82\x33\xfc\x54\x29\x43\x8a\xb5\xab\x49\x5f\x0a\x9d\x97\xc7\x7a\xd7\x43\x29\x01\x10\x6c\x98\x76\x03\xf8\x55\xa4\x6c\xda\xea\xe0\x24\x3d\x36\xc0\x49\x5b\x78\x34\xce\xaf\x66\x18\xc3\xc0\x16\xbf\x28\x2f\x5c\x49\x5b\xc2\xb6\x6b\x0b\x48\xc3\x7e\x88\x70\xfb\xb2\x34\x0c\x5b\x62\x4d\x7c\xa6\x86\xbf\x56\x61\x0a\x5e\x77\xfe\xd2\x7e\x93\xde\x00\x7f\x53\x42\xc3\x41\xd9\x8d\xae\x5b\x1e\xd6\x09\xbc\x75\xd6\x2d\x90\x68\x0f\x2a\x93\xea\x67\xeb\xac\x4a\x0c\x94\xc2\x0f\x08\x32\x1e\x70\x7c\x13\x94\x72\x5e\x0f\xee\xf3\x66\x59\x8e\x0a\x09\xd1\xf7\x7b\x85\xe0\xde\xbe\x7c\xf9\xe2\x6a\x75\x96\x4b\x7b\x68\x9c\xf9\x28\x23\x45\xd1\x22\x38\xc5\x26\x62\x2c\xa3\xa9\x93\x9a\xb6\x01\x41\x8b\xed\x8b\xfc\x6c\x39\xc3\x1a\x3a\xdb\x18\x5b\x98\x5d\xbf\xa2\x6f\xc9\xb7\x80\xa4\x5a\x4a\xc3\x04\x44\x67\x50\xb5\x46\x1e\xea\xa2\xb3\x90\x23\x26\x57\x46\x36\x34\x6d\x75\xc7\xf9\xd0\x82\x47\x0a\xac\x63\xf0\x8d\xff\x1e\x80\x0d\xfb\xb2\x80\x7b\xd0\x9b\xf4\xa9\xc3\x29\x31\x67\x41\x6c\x03\x57\x97\x4c\x52\xbf\xa0\x80\xce\xa1\x55\xaa\x18\x38\xfb\xa2\xcd\xa9\x5b\x63\xa5\xd3\x8f\xd2\xee\xc4\xa9\xb9\xdf\xe4\x27\xab\x3a\xf2\x4d\xe6\xcc\x7b\x5a\x62\xfb\xe7\xd6\x04\xce\xf1\x46\x48\x83\xb2\x6b\xb6\xaf\xd6\x10\xaf\xc1\x4d\x1d\xf6\xac\x64\xf3\x5c\xb1\x82\x34\x5a\xdc\x1b\x1f\x63\x70\x54\xa3\x74\xbb\x33\x16\xb6\x16\xb5\xfc\xd8\xe9\x67\x0c\x9a\xbd\x25\xed\x34\x4a\x34\xa0\x28\xd2\xb6\x10\x10\xb2\xfa\x65\xe7\xa5\xb8\xfe\x49\xd5\x6d\x98\xbd\xfd\x9c\x8f\xda\xef\x8d\x5a\xba\x38\xb1\xaf\xca\xf4\x28\x34\xf9\x8d\x53\x38\xac\x8f\x69\x32\xa3\x22\x16\x1f\xed\xc3\x09\xc6\x7e\xe0\xc2\x78\x90\x4c\x5f\x99\x92\x37\x49\xe0\xc3\x00\x46\xe6\x54\x61\x63\x17\x0d\x5d\xa2\x14\xfe\xdd\xd3\x79\x04\x82\xc4\x7c\x2f\xf9\x04\x7c\x98\x96\xaf\x39\x4b\xb1\x4b\x04\x0b\x8d\xa2\x2f\x02\x06\xaf\xd4\x15\x8a\x17\x8b\x71\xf7\xc5\x53\x3a\xc7\x2b\x4a\xe5\xc3\x0c\x87\x61\x8b\x3c\x59\xce\x93\xfb\xa1\xa4\xa7\xe5\x84\xb2\xba\x59\x96\x18\x73\xcb\x98\x0f\xd1\x27\x90\x95\x06\xc2\x6c\x8c\x36\xc5\x56\x90\x1f\x4f\xb7\x27\x49\x16\x23\xcd\x05\x89\x7b\x55\x5e\x62\x4c\x11\xf5\x14\xc3\x8a\xa4\x8f\xfb\x50\x52\xfc\x3d\xfd\xa0\x5c\xe6\x03\x5a\x78\xfb\x14\x6e\xa8\xec\x65\x7c\x23\xa9\x49\x5e\x70\x8a\x79\x5a\x26\x1b\x6e\xff\x92\x8d\x25\x1b\x18\x1e\x89\xda\x06\x4a\x3e\xcf\x1f\xb8\x2c\x8c\x4d\xa1\xde\xae\x1f\x59\x77\x7a\x27\x54\xb8\x4f\xae\x17\x1f\xd7\x22\x9f\xd1\x85\xc0\xd4\x7c\x70\x1d\x92\x0d\xa0\xf9\x5c\x7e\x9b\x93\x27\xf0\xe4\x92\x8f\x32\x1d\x61\xf8\x81\xd7\x73\xab\x1d\x3a\x27\xbf\x54\xb4\x5f\x32\x45\x0a\x08\x83\x93\xe5\xbd\x34\x80\x67\xd6\x6c\x91\xc0\x62\xca\x6f\x37\xe1\x2d\x57\xe1\xe7\x1e\x96\x22\x4b\x70\x18\x30\xbd\xd9\xc2\x37\x07\x73\x89\xa1\x0f\xf0\x8c\x5b\x03\x24\xf2\x92\x81\xff\xcb\x4d\x7e\xb1\x8d\xc5\x30\x67\xd2\x7d\x7a\xe6\x9e\x29\x7b\x2e\x8d\x6b\x0f\x75\x70\xf2\x6d\x90\x0d\x01\x4e\x16\x92\x81\x57\x06\x44\x5f\x36\xf3\xc9\x98\xeb\xd0\x90\xe6\x1c\x02\x0e\x2d\x07\xb6\xb9\xf8\x7d\x1a\xc9\x23\x8c\x0b\x77\xf2\xc4\x56\x9a\x5e\xa1\xd7\xf4\x83\x9b\xc6\x01\xd1\x3b\xfe\x45\x2f\x31\x5d\x1d\xbd\xa3\x1f\xf4\x6a\x9c\x6c\x75\xec\x10\xf5\xf8\xf8\x8b\x1d\xa0\x1f\x1d\x6d\x47\x6f\x9c\x8f\x30\x1b\x17\xba\xb0\xa4\xeb\xc9\xa4\x8f\x06\x68\x05\x59\xb6\x9c\x83\x4f\x12\x3c\x9d\x72\x35\x62\x3e\xd8\x7e\xd6\xbd\x82\x47\x67\x32\xc2\xf0\x64\x2d\x8a\x9d\x44\x39\xf7\xb2\xe1\x68\x22\xc2\x11\x9f\x08\x92\x4b\xf9\x00\xec\x1c\x7d\x07\x53\xd4\xc3\x86\xa3\xe0\x05\x0e\x43\x67\x0d\x68\x05\x12\xb9\x14\xd9\x4f\xd2\xe7\xff\xee\xef\xa8\x34\xfc\xfc\xfb\xbf\x37\xef\xbc\xf1\x82\x49\x3f\xc2\xac\x20\x85\x19\x24\x1f\x65\x83\xc9\xc0\x96\x82\xc7\x1f\x06\x05\x29\xe4\x18\xf9\x14\x91\x42\xf7\x12\x87\xb8\xc4\xdf\x38\xcf\xff\x13\x00\x00\xff\xff\x61\xd6\xca\xec\xcc\xe5\x00\x00") +var _confLocaleLocale_ruRuIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xf9\x6e\x1b\x67\x9e\xe0\xff\x02\xf4\x0e\x5f\x3c\x30\x9c\x00\x12\x83\x74\xf6\x42\x10\x3a\xeb\xd8\xe9\xc4\xbb\xb6\xe3\xb1\x9c\x1d\x2c\x82\x80\x29\x91\x25\xa9\xc6\x24\x8b\x5d\x55\xb4\xa2\x1e\x0c\xe0\x23\xe9\xa4\xd7\x99\xb8\xdb\x93\xde\xee\xed\x49\xec\x76\xb2\x73\x00\x8d\xc1\xd2\xb2\x65\xd3\xb2\x24\x03\x79\x02\xf2\x15\xe6\x49\xf6\x77\x7d\x57\xd5\x57\x24\xdd\xe9\xdd\x3f\x6c\xb1\xaa\xbe\xfb\xf8\xdd\x47\x34\x18\xb4\x3a\x71\xde\x6e\x4e\xbe\x9f\x3c\x9a\x1c\x4d\x1e\x4c\x0e\x27\xa3\xe9\x6d\x35\xbd\x3e\x79\x36\xbd\x39\x79\x0c\x2f\x46\x0a\xbe\x3c\xe3\x77\x50\x60\x7a\x7d\x7a\x63\xb2\x3b\xd9\x83\x82\x87\xf0\xfc\x70\x72\xa4\xde\x4d\x8a\xd5\xe9\x35\x78\xf5\x1c\x5e\x3c\x99\x8c\xa1\xc0\x11\x3c\x8f\xa7\xb7\x57\x14\xb6\x07\xef\xc7\x50\x79\x44\x55\xb0\x75\xfc\xa3\xa6\xb7\x27\x4f\xa6\xb7\x26\xfb\x93\x3d\xf5\x6e\xba\xbc\xb4\xbc\xb4\x95\xf6\xe2\xe6\xe4\xef\x27\xcf\xa0\xe4\x2e\x97\x5c\x5e\xea\x44\xf9\xd6\x7a\x1a\x65\x9d\xe6\xe4\x1e\xb5\xb0\x07\x63\xf9\x52\x4d\x0e\xa0\xab\x43\xdb\x15\xfc\x7e\x38\x19\x2d\x2f\xc5\x9f\x0c\xba\x69\x06\xcd\xdc\x85\x91\x3f\xc1\x6f\xd0\x6e\xdc\x1d\x60\xed\x23\xac\x34\xfd\xe5\xf4\xcb\xe5\xa5\x3c\xd9\xec\xb7\x92\x7e\x73\x72\x07\xde\x3e\x85\x46\xc6\xf2\x2e\x1d\x16\xf0\x72\x7a\x6b\xfa\x19\x7c\x78\x24\x2f\x87\x50\xfd\x0f\xd0\xf1\x43\x9c\xc6\xf4\x06\xf4\x37\x9a\xfe\x02\xa7\xb7\xbc\x94\xc5\x9b\x49\x5e\xc4\x59\x73\xf2\x5b\x78\x79\xcd\x2b\x34\x86\x7f\x47\x30\x93\x11\x3c\x7d\x09\xef\xa0\xf8\x76\xbc\x9e\x27\x45\x8c\xfd\xee\x4d\x1e\xac\xd2\xa2\x40\xf7\xcb\x4b\x57\xe3\x2c\x4f\x52\x1a\xd0\xde\xf4\x1a\xbc\xa7\xd6\x07\xd1\x26\x94\xbd\xcf\x5d\xd2\x74\x7f\x81\x93\x2c\xe2\xde\xa0\x1b\x61\x33\xff\x02\xaf\x1f\xc0\x82\xc1\x5a\x2c\x2f\x75\xa3\xfe\xe6\x90\x6a\xfc\x1f\x5e\xd9\xe5\xa5\x76\x16\x43\xb9\x56\x3f\xde\x86\x66\x68\x73\x1e\xf1\x70\x1a\x8d\xc6\xf2\xd2\x30\x8f\xb3\xd6\x20\x4b\x37\x92\x6e\xdc\x8a\xfa\x9d\x56\x8f\x96\xee\x1e\x8e\x7b\xfa\x29\x2c\x2a\xad\xf4\x58\xc1\x13\x6e\xfa\x08\x9f\x69\xd3\xf7\x78\x61\xe2\x0e\xac\x61\x2b\xca\x69\xc5\x14\xcc\xf4\x68\xfa\x05\x0c\x06\x2a\xec\x43\xe1\x7d\xdc\x53\xec\xa2\x1f\xe1\xbe\xfe\x6e\x72\x80\x3b\x8f\x47\x04\x9b\x79\xa2\x97\x86\x36\x14\xe6\x1a\xf7\xa2\xa4\xdb\x9c\xfc\xeb\xe4\x59\x83\x4a\x4d\x3f\xc7\x2e\x71\x0d\xf2\x7c\x3b\x95\xfd\xa7\x15\x7d\x86\x3b\x98\xc5\xad\x62\x67\x10\xf3\xbe\xee\xf2\x31\x80\xf9\x46\x83\xa2\xbd\x15\x35\x4f\xf3\x5f\x1c\x41\x16\x0f\x52\x58\xf3\x34\xdb\xe1\x4d\x2c\x9d\xd1\xc9\xd3\xe5\xa5\x34\xdb\x8c\xfa\xc9\xcf\xa3\x82\x76\xe0\x2e\xbc\x7e\xc8\xcb\x0d\x05\xcd\x4e\xf7\x92\x2c\x4b\x69\x9f\x61\x83\x68\x82\xb0\xec\xcb\x4b\xb0\xb4\x2d\xec\xa2\x39\xf9\x96\x06\x72\x6b\xf2\x54\x85\xee\x02\xf6\x83\x65\x7b\xc9\x66\x46\x5b\xf7\xad\x2c\x00\xac\xc9\x37\xf0\xf9\xa1\x7b\xaa\xb0\xe0\x46\x9a\x5d\x71\x1b\x9d\x3c\xa7\xc9\xef\x4d\xf6\xa7\x37\x14\x0e\x2d\xd8\x8d\xae\x0d\x53\xf2\xba\xa8\x9b\x54\xd4\x87\x03\xc3\xa5\xbf\xa7\x1e\xf0\xea\x3d\xa3\xdb\x3d\x86\x8b\x19\xaa\x07\x1f\x61\x2e\x51\xa7\x07\x7b\x3f\x88\xfa\x71\xb7\x74\x33\x47\x70\xc6\x0e\xe8\x46\xda\xdb\xc2\xa3\x83\xdd\x8c\xda\xed\x74\xd8\x2f\x5a\x79\x5c\x14\x49\x7f\x33\xc7\x41\x8e\xa4\x18\xdc\x44\x58\xd7\x31\xb6\xb0\x8f\x0b\x0c\xf0\xe7\x90\xcf\xc0\x8c\xd2\xcb\x4b\x3b\xe9\xd0\x9c\x62\xbc\x3f\xa3\xe9\x17\xb2\x58\xfa\x0c\x4b\x19\xdb\x0a\x15\xc2\x9e\x0e\xab\xcd\xd1\xfa\xe5\xad\x8d\x38\x86\x23\xf7\x0f\xb8\x12\x38\x06\x45\xe7\x7e\x57\x6e\x02\xad\xc0\x60\xd8\xed\xc2\xd6\xff\x6c\x18\xe7\x45\xde\xbc\x08\x4f\xea\x92\x3c\x2d\x2f\x25\x79\x0e\xbf\x18\xbe\xf0\x58\xae\x4f\x6f\x61\xe3\xed\xa8\xdf\xc6\x25\xbb\x0b\xcd\x1c\xd0\x3a\x8f\xf0\xf5\x87\x79\x1c\x65\xed\xad\x8f\x70\xae\xf8\x83\xcf\x35\x42\xcd\x7d\xba\xaa\x0b\x9c\x62\xbc\x6a\x5c\xad\x7a\xbf\xbe\x94\x11\xc9\xe5\x26\x98\xb1\x07\xfd\x43\xdf\xed\xb4\x03\xaf\x7f\xcf\xe0\x0e\x06\x92\xf4\xf3\x22\xea\x76\x61\x24\xf2\x0b\x4e\x86\x5c\x7f\x5e\x82\x7d\x02\x41\x49\x81\xab\xed\x7f\x81\x3b\x0b\xab\x75\x0b\xce\x0d\xac\xee\x08\x21\xa1\x46\x1d\x30\x5e\xbc\x35\xbb\x82\x30\xf0\x28\xc1\xb2\xdc\xc4\xe9\x61\x6b\x9d\xb4\x7d\x05\x40\x11\x02\x6a\x9c\xc3\x6f\x10\xfb\x60\xe5\x5d\x04\x2b\xb8\x08\x06\x6a\xc0\x99\xd8\xc3\x39\x01\xca\xd8\xcc\xa1\x80\x3a\x43\x55\x57\xa1\x9d\x23\xda\x29\xd8\x1a\x3c\x8a\x78\x37\x56\x18\xda\x3c\x26\xc0\x75\x13\xe0\xec\x75\xde\x49\xde\x0f\x04\x2f\x63\x6a\xea\xcd\x48\x15\x51\xb6\x19\x17\xcd\x63\xad\x75\x00\xa2\x57\x8e\xa9\xad\x2c\xde\x68\x1e\x3b\x9e\x1f\x3b\x39\xfd\x3b\x2c\xc7\xb8\x6f\x17\xfb\x9e\xde\x7a\xf3\xd5\xe8\xe4\x8a\x9e\xd2\xde\xe4\x91\xa2\x6e\x0f\x04\xea\x29\x6a\xf9\x68\x15\x67\x00\xeb\x7c\x44\x77\x55\xb6\x7a\x8c\xa0\xf7\x25\xdc\xcd\x9f\x0d\x01\x0d\xb4\x3a\xeb\x8c\x7c\x69\x32\x74\x0c\x01\x2b\xf0\x14\xd5\xf9\x9d\xb5\xbf\x3c\xb7\xa2\x2e\xa6\x79\xb1\x99\xc5\xf4\x1b\xfe\x83\x5a\xaf\x63\x8b\xb8\x3c\x97\x93\x33\x6f\xc3\xd1\x80\x46\x64\x37\x02\x57\x09\xd0\x37\xe2\x02\xdc\x07\x42\xbf\x88\xd9\xb8\x0a\x01\xcf\xef\xa0\xa9\xe7\x75\xa5\xb6\xa0\xeb\xe6\xe4\x1f\xf9\xcc\xcf\x3d\x5f\x35\x70\x1a\xba\xf2\xe0\x7f\xed\x80\xf4\xe6\x7f\x4d\x07\x86\x66\x5f\xdd\xfb\xa7\xb4\x61\xb8\x23\x30\x6c\x3a\x79\x78\x92\x01\x2d\xaa\xb3\xfd\x7e\x7a\xe6\x6d\xd8\x27\x45\x47\xe1\x91\xc1\xbe\xf8\xf4\x54\x0d\x8b\x8d\xff\xd4\xda\x8c\xfb\x71\x16\x75\x5b\xed\x04\x96\x2d\xcf\xbb\x80\xef\xf0\xec\xe3\x7d\x7a\x0c\x2d\x1e\xa8\xb5\xb5\x73\x38\x91\x02\xaf\x1f\x9c\xce\x1b\x44\x2a\xfc\xac\x8b\x5b\xa5\x87\x27\xef\x71\xfc\x47\xe1\xd9\xc8\x36\x95\x76\x29\xce\xb2\x16\xa0\xed\x62\x07\x37\xdd\xeb\x02\x06\x2c\x0d\x21\xc0\xad\x36\xe4\xed\x37\xc2\xa1\x3d\xa6\x7e\x1e\xd3\x31\x81\xf3\x72\x8b\x5b\xa1\xfb\x84\xe7\x73\x72\x20\xfd\x25\xfd\xab\x51\x37\xe9\xc0\xf1\x30\xbb\xf0\x2d\xf5\xb3\x2b\x10\x7d\xaf\x66\x06\xc1\x9e\xe8\x0a\x3c\xa2\x43\xff\x98\x89\x08\x7c\x05\xcb\x46\xd7\xfa\x19\xb4\x71\xac\x71\x0c\xc9\x85\x63\xab\xc7\x60\x00\xfd\xb4\xc5\x38\x02\x09\x8b\x4e\x92\x47\xeb\x40\x64\x30\xb9\x94\x09\xa6\x25\xaa\xc1\xef\x05\x1f\x8e\xe0\xcf\x3e\x34\xf8\x15\x80\x93\x31\xf7\x73\x2d\x40\x7d\x7d\xb5\xc2\x95\x69\x5c\x44\xd8\x00\x38\xf0\x71\xc7\x4c\x64\xe4\x6d\x8a\x46\x67\x81\x33\x3c\xb3\x91\x85\xf7\x63\x79\x49\x9f\x3e\xb9\xac\x40\xa0\x4e\x7f\xc9\x7b\xf0\x9c\x3a\x1b\x21\x90\xc0\xd6\x61\x55\x10\x20\x00\xb2\x04\xe2\xdc\x27\x9e\x08\xd6\x3f\xe3\xce\x68\x38\xb7\x6d\x29\x73\x44\xbf\x27\x40\xf4\x58\xa0\x1b\x2d\xcd\x1e\x8c\xe4\x4b\xa6\xc5\xbd\xdd\xdf\x25\x44\xb8\x47\xe4\x05\xae\x3b\x74\x7e\x1b\x89\x52\x58\xfb\x5f\xf2\xeb\xa3\x00\x01\x30\x7e\x89\x11\x52\xe5\x1c\x53\xe9\x43\x64\x15\x6a\x48\x13\x53\xcb\x0c\xf6\x0e\x74\x07\x7b\x78\x93\xf6\x8f\x09\x0f\x41\x21\x21\x22\x6a\x8c\xbc\x86\x22\x18\xf9\x08\x7b\xa5\xcd\x9f\x7e\x26\xe4\x31\xe2\x6a\xa4\x43\x15\x01\x6d\xbc\xf6\x02\x07\x88\x68\xd2\x4d\x20\x36\x1d\x02\x51\x3f\x1b\x9c\xe9\x22\x76\x55\x6b\x69\x57\x82\x05\x30\x76\xda\x13\xe7\x00\x3c\x62\xc8\x09\x63\x7d\x4e\x77\x1c\x0f\xc4\x0d\xa2\x8e\xed\x52\x7d\x55\xb3\x54\x4a\xca\x39\x88\x72\x7a\x93\x8e\x05\x42\xfc\x14\x68\xe5\x3e\x82\xca\x23\x46\x2c\xfa\x95\x5d\x55\x82\x8a\xb7\xf9\x44\x22\xb3\xf5\xc1\xa5\x73\xab\x78\x8e\xb1\x37\xdc\x60\x83\x98\xf7\x99\x7b\xb0\xcc\x0a\x1f\x2b\x9a\x2c\xc0\xc3\xf7\x08\x52\x6e\xb5\x06\x69\x56\x34\xe1\x91\xcf\xc9\x35\xc4\x07\xfa\xb5\xe9\xf4\x5b\x1e\xce\xf4\x9a\x29\x34\x19\xad\xf0\x54\x69\x5e\x4c\xc6\x06\xd0\x39\xf6\x83\x3b\xc9\x24\x02\xfc\xdf\x40\xc2\x93\x29\x8b\x5d\x60\x9d\xe8\x18\x3b\xd7\x69\x45\x70\x2c\x2e\x75\x08\x5c\xf0\xb0\xb7\x8a\x62\xc0\xe3\xc6\x5d\xc6\xe1\xa8\xf7\x2e\x5f\xbe\xe8\x7c\x78\xc1\x91\x57\x6e\x1f\xc1\x4f\x3a\xba\x02\x1f\x81\xcc\x40\xca\x87\x18\x2c\xbe\x98\xc3\xac\xdb\x84\xb5\x9f\x71\x75\xa1\x84\x19\xc7\xbf\x52\x77\x37\x2a\x10\x41\x11\x51\x5e\xde\xd0\xc5\xf6\x10\xe7\xfc\x2a\xfe\xb7\xa6\x84\xe2\x55\xfe\x41\xc0\xeb\x42\x37\x6f\x5f\x48\x07\x66\xec\x9f\x5a\x2e\x6c\x8f\xe0\x57\x3a\x40\xa8\x6d\x01\xd8\x1f\x88\xda\xf8\x42\x2e\x98\xbe\xb6\x21\x92\x9a\x58\xbb\x7a\x22\xc5\xca\x1a\x60\x3b\xe7\x8c\x05\x89\xe8\xbc\x07\xfb\xc7\xc4\xc9\xf7\x88\x34\x27\xcf\xd4\xda\x79\xdc\x58\xfa\xb0\x91\xa5\x3d\x04\x98\x4f\x9c\x67\x8b\xbd\x35\x5f\xa9\x78\x9d\x9d\x85\x58\x51\x97\x7e\x7a\x5a\xfd\xfb\xd7\x7f\xf2\x13\x38\x7d\xb4\x11\x41\xb0\x4e\x73\x71\x2a\x6a\xe4\x0c\xbc\x06\x5e\xdd\x03\xdc\x7d\x75\x8c\x01\xf6\x31\xf5\x26\x15\xff\xcf\xf1\x27\x11\x70\xec\x71\xa3\x9d\xf6\x4e\x36\x90\xeb\x02\x56\x25\x13\x08\xf4\xaf\x95\xf9\x8e\x64\xeb\x9c\x91\x1a\xd6\x6c\x6c\x19\x66\x69\xa5\x06\x67\xd5\x54\xd2\xf2\x8a\x56\x3b\xed\x6f\x24\x59\x0f\x41\x85\x7f\x79\xe8\x72\x3e\x62\x19\x0f\xa1\xfa\x47\xe6\xb0\x87\xd0\x30\xee\x2f\x6d\x6f\x3f\x2d\x92\x0d\xe2\x4e\x90\xa0\xc0\xb5\xf9\xc2\x69\x51\x2e\xec\x2e\x83\xf6\x9b\x24\x40\x7a\x44\xb7\xee\x99\xbd\x0e\xb0\x1e\x57\x63\xe4\xd3\xb2\xab\x49\x3b\xd6\x07\xe6\xbe\x85\x0b\x74\x82\x61\xe1\xa1\x81\x87\x7c\xfd\x2a\xa7\xcd\x39\x4d\x70\x64\x37\x36\xba\x49\x3f\x16\x3a\xcf\xce\xd4\xdc\x5e\x64\x11\x51\xdc\x04\x3c\x03\xcf\x8e\xe8\x40\x64\x49\xdc\xaa\x00\x2c\x06\x28\x03\xba\x5b\x81\x34\xa7\xcf\x5c\x60\xca\xe9\x31\x61\x53\xcd\xa4\x8f\x09\xcb\xe2\x32\xfa\xc2\xb2\x03\xb7\x13\xe4\x4f\x76\x19\xfb\x7d\x4a\x43\x40\x12\x8a\x0f\x15\x80\x91\x6b\xcc\x71\x78\xb8\xee\x1a\xa1\x6f\x22\x74\xac\x50\x49\xd1\xe5\xdf\xb7\xd2\x19\x44\x10\x42\x6e\x6d\x66\xd1\xd5\x08\x78\x9b\xd0\xd0\x9d\x5b\x07\x88\x45\x0a\x56\xab\xca\xdc\xcf\xf0\x6b\x53\x50\x01\x55\xa7\xda\xc3\xbc\x48\x7b\x2a\x07\xe6\xba\x1d\xe7\x2b\x0a\x98\x45\xc5\x9f\x73\x15\x65\xb1\x1a\x0e\xba\x69\xd4\x89\x3b\x6a\x7d\x47\xe1\x61\xcf\x55\x9a\xa9\x4e\xbc\x11\x0d\xbb\x85\x33\x4a\x9f\x28\x0c\x8e\x74\x44\xa2\xbb\xeb\x04\x1e\x6f\x6b\x24\x0d\x10\xe7\xa6\x46\xa0\x15\xe2\x30\xdc\xbc\xde\xc9\xdf\x12\x5a\xbd\x46\x14\xa7\x73\xec\x03\xc8\x1d\xf7\xec\x4f\xe9\x7f\x45\xd1\x81\xc7\x62\xfb\x08\x4a\x6a\x69\xc8\x0a\x89\xed\xed\x70\x89\xa0\x9d\xde\x42\xaa\xb5\x4f\xf3\xd2\xb2\xae\xea\x0d\xde\xa7\xd9\x7d\x3e\xbd\x59\x2e\x5b\x9e\x3e\x49\x41\x6c\x57\xa6\x9e\xa0\xab\x9a\x0b\x5f\xbb\x56\x0d\xe1\x6c\xb3\xb8\x25\x02\xd6\xd6\xd5\x04\x45\x8f\x55\x98\xa0\x99\x5d\x2b\x20\x55\x84\xec\x35\x95\xa6\x65\x54\x5f\x59\x09\x02\x4b\x51\x68\x23\x68\x30\x4a\x8f\x8a\x05\xa3\xe1\xbe\xf5\x8c\xbf\xf3\xf7\xc2\xed\xc8\xc5\x9a\x82\xc3\x82\xf3\xc3\x89\xe3\x56\x3d\xa4\xcb\xe8\x8c\x67\xc4\xd2\x5e\x33\x11\x7f\x5c\xd3\x5b\x2c\x87\x20\xfa\xe6\x86\x86\xc5\x0c\xa8\x6c\x73\x04\x12\xc7\x4c\x49\xd0\xf2\x38\xe3\xc5\x06\xaf\xc3\xc0\x9e\x11\x0d\xa8\x31\x78\x70\xad\x76\x19\x4e\x02\x45\x7c\xb3\x32\x8c\x86\x16\xda\x89\x1c\x4c\xe4\xfe\x96\x09\xd3\x54\x2c\x12\xd1\xf6\x24\xf2\x78\x6e\x22\xd4\x84\x1e\xf9\xc8\x33\x59\x4a\xe7\x62\x1e\x7b\xf4\x1c\x59\x0a\x9c\x28\x11\x78\xc0\xc0\x7f\x8e\x10\x7b\xa5\xee\x0c\xe1\xea\xa9\xb3\x67\x54\x53\xbd\xa6\x8b\xdc\xe4\x83\xed\xd3\xd3\x88\x78\x35\x7a\xc3\xcb\x39\x9e\x33\x0c\x59\x2f\xde\x2d\x28\xf0\x39\x21\xfd\x7d\xe2\x06\x78\x55\xea\xc9\x13\x18\xc0\xf4\xd7\x38\x77\xa6\x44\xcc\xdc\xe7\x74\xaa\x1b\x5e\x4c\xfc\x3d\x83\x01\x45\x19\x1d\x21\x6b\xef\xb3\x8b\xa4\x1f\x59\x20\xe6\xd4\xe2\x26\xeb\xe4\xea\x22\xdd\x6b\x6d\xa6\x28\x11\xf5\x05\x79\xdc\x1a\x33\xa1\x45\x9c\x17\xad\xcd\xa4\x68\x6d\x20\xbd\xd1\xc1\x15\x72\xf8\xb5\x23\x3e\x02\xcf\xe5\x0e\xed\x11\xf7\x82\x95\x4f\x40\x95\x13\x2c\x8b\x39\xa0\x76\x01\x87\xbd\xa1\x8e\x5f\xd5\x02\x95\xd7\x91\x60\x68\x01\xb6\x48\xba\x08\xa1\xb4\x4c\x16\xe9\x51\xab\x01\x91\x83\x49\x14\x89\x11\x3d\xd0\x45\x63\xb6\x81\xe5\x23\x35\x72\x3e\x16\x2e\xe2\x79\x13\xb1\x11\x0b\x84\x09\x86\x8d\x1c\xf8\x0d\x40\x68\x4c\x74\xc4\x35\xfd\xc2\x8e\xe0\x2b\xa6\x13\x8f\x03\x72\x33\xbc\xbe\xfb\x75\x33\x5d\x1f\x26\xdd\x4e\x03\x97\x93\x65\x2d\x9d\x75\x7d\xbf\x16\x96\xc7\xe9\x59\x6a\x6a\x4d\xc6\x06\x90\x88\x17\x4c\x37\xed\xb0\xdc\xdf\x0a\xf9\x24\x4c\x11\xd2\x13\x9a\x47\xb1\x32\xa5\x79\x3c\x26\xb7\x6e\x18\x5d\xdc\x8f\x5e\x54\xa0\xec\xf9\x3b\xa2\x48\x6f\x92\x7c\xe2\x69\xfd\x55\x65\xf1\xcb\x6d\x64\x4e\x98\x35\x61\x7a\x24\x0c\x3d\x49\x42\x2a\xb0\xdc\x13\xff\xc2\x30\x72\xb5\x7a\x12\xfe\x87\xb3\x11\x5d\x8d\x99\x34\xdd\x9c\x75\xde\x3c\xae\xdf\x20\x3d\x14\x00\x7f\x4a\xaa\x94\x9b\x16\x0f\xfb\x4b\xe8\x01\x40\x2d\x29\xc1\xd1\x1c\xd2\x64\x6a\xd6\xb4\xc4\x8c\x59\x60\xf8\x62\x00\x41\x0f\x85\xef\x5d\x3e\x6c\x03\xd1\x94\x33\x17\xff\x00\xcf\x88\x73\x8c\x2d\x5a\x7c\x49\x4d\xbe\x61\xba\x10\x59\x8e\x5b\x9a\xf5\x15\xd9\x38\xd2\xd3\x0f\xe8\x1b\x62\x14\x12\x0f\x28\x52\x21\x5e\x67\x24\x83\x6b\xcf\x37\x94\xce\xde\x9e\x41\xe8\x37\x58\x70\x86\xe2\xe6\xdb\xc4\xdd\x7d\x88\xda\xd7\x8f\x96\x97\x86\x2c\x4a\x4a\xbb\x1d\x64\x4e\x66\x42\xad\x2f\x35\xef\xf3\xce\x2a\xc2\x18\x2b\x02\x36\xd5\x3d\x20\x96\x6f\x27\x70\xb8\x5a\x46\xa1\x8b\xfb\x5c\xc4\x9f\x10\x7b\xce\x03\xab\x90\x31\x5a\xa4\xbf\x8f\x4b\x49\x1b\xc1\x6a\x26\x82\xca\x65\x75\x15\xf1\x44\x3b\x74\x4b\x60\x55\xbf\x41\x32\xbc\x46\x88\x84\x00\xb5\x0b\x60\x27\x45\xa2\xf0\x6a\xac\xab\xdc\xa7\xd9\x1d\xd0\x8a\xdd\x98\x29\x85\xa2\x8e\xd2\x6c\x93\xfb\x99\xa5\x5f\xdb\x69\xb1\xde\xd0\x8c\x08\x19\xd6\xa9\xd6\x1f\x02\x18\x26\x22\x85\x35\xdf\xf7\x84\x8e\x7f\x22\x48\x17\x2f\x84\xd6\x24\x35\xe0\xd8\x92\x12\x4b\xc6\x7a\xc7\xca\xee\x0e\x6a\x07\x09\xbb\x2a\xfa\xf0\x8f\x44\x83\x14\x56\x1e\x71\xd1\x68\x58\xa0\xfe\xc9\xaa\x8c\x5b\xa2\xac\x2b\xa9\x8e\x45\x15\xc6\x77\xc3\xa3\x4e\x1d\xf6\x72\x2b\x1e\x20\x73\xda\xcb\xe9\x96\x11\x77\x44\xcb\x5a\xa1\x68\xdf\x52\x93\x5f\xb9\xb4\x8c\x16\xf2\xe3\xa9\x7d\x09\x0e\x4d\xda\x4e\xa2\x6e\x6b\x91\x76\x9d\x6b\x39\x32\x40\x86\x69\x14\xe8\xe4\x3e\x74\x72\xdb\x0a\x45\xf7\xe8\xfc\x33\x20\xf9\x05\x93\x66\xc0\x4e\x7d\xf5\x52\x99\x6d\x60\x05\x79\x6f\x50\x90\x48\x81\xa0\x33\x5b\x1d\x00\xf7\x46\x1a\x6f\xd2\xed\xe0\xad\x3d\x14\xea\x24\x2c\xad\x66\x2d\xfa\x0d\x8f\x03\x1d\xc1\x5d\xbd\x57\x45\x5c\x2b\x38\x2a\x67\xb0\x02\xf1\x66\x81\x96\x23\xcd\xa5\xe0\xd2\x8d\x2a\xac\x15\x2e\x18\x11\x01\xbf\x67\xba\xee\xb1\x11\xb5\x12\x86\x7b\x51\x86\x9f\xe5\x4a\x56\x3a\x54\x9d\xd9\x11\x71\x02\xbd\xb8\xb7\x8e\x5d\xc7\xc2\x70\x10\x29\x60\xe0\x35\x09\x2e\xf1\x8e\x6c\xc0\x45\x02\xd4\x63\x69\x1b\x2c\xfc\x80\xe8\xdd\x71\x89\xa2\xc1\xa2\xf1\x22\x45\xdf\x32\x96\x1b\x80\xd6\x80\x01\xf9\x96\x38\x5d\x12\xcf\x96\x4f\x5f\xd0\x6e\xc3\x3d\x85\x0d\x43\x7f\x31\x0b\x49\xd2\x8e\x3c\xee\x17\xe6\x64\xb0\x9e\xfd\x88\x49\x15\x3a\x70\x44\xf0\x5a\xdd\x67\x70\x7d\x49\x1b\x46\x63\x3f\x12\x2b\x19\x0f\x9e\xf1\x4b\xf5\xe6\xfa\xc9\xe3\xf9\x9b\xaf\xae\x9f\x0c\x53\x39\x2b\x1e\xed\xa5\x65\xa5\xbb\xa2\x04\xf7\xe4\x2e\x4f\x01\x55\x13\x46\xdf\x27\x99\x1f\xce\xce\x4a\x42\x8e\x77\x14\x53\xe6\x2c\x74\x70\xf0\x34\x37\xfc\x85\x19\x73\xf8\x4c\x34\x8c\x4d\x4d\xab\x48\x2d\xe0\x20\xf3\x1a\x26\x4f\x19\xe1\xec\x32\xca\x2c\x81\x8d\xa8\x4d\x70\x98\x00\x9c\xa9\xfb\x2b\x12\xda\x8f\x89\x1c\xbd\x66\x75\x7f\x75\x6d\x64\x31\xed\x49\x37\xe9\x25\x76\x67\xee\x30\x2b\x83\x98\xf0\x0b\xa6\x45\x65\x9a\x8c\x43\x5d\x21\x99\x90\x30\xe5\x4d\xe4\x8b\xa7\x47\x62\x0c\x20\xe4\xea\x3e\xa2\x1d\xd1\xf3\x7b\x5d\xf1\xfd\x24\x1a\xec\x56\x78\xc3\x50\x30\x1d\xe5\xad\x61\x5f\xce\x54\xdc\x91\xbb\xf9\x5b\x92\x28\x22\x9f\x42\x32\x23\x3d\xe1\x15\x40\x03\x40\x03\x7c\xcf\x9b\x7a\xdd\x01\xa3\x87\x02\xc9\xab\x47\xeb\x50\xc3\x66\x2d\xa3\x9c\x2b\x54\x55\x2f\x9b\x73\xf6\x0a\x4c\xcd\x2a\xe0\x91\xec\x71\xe8\xd3\x31\xdb\x45\xb1\x24\xbb\xba\x50\xb5\x90\x04\x1b\x61\x5a\x01\x57\x87\xa1\x25\x51\x2f\xd4\x91\x8b\x56\x2a\xd7\x48\x4c\xc8\x1e\xe3\xd2\xf2\xf6\x10\x03\xbc\x4f\xc5\x9f\x6b\x96\x78\x8c\xd7\xbb\x21\xa7\x40\x2f\xe9\xb7\x7e\x3d\xa3\x08\xf3\xf5\x07\x5a\x8f\x5f\x92\x98\x0a\xa6\xf2\x36\x5e\x2f\x9d\x3f\x42\x2d\xe0\x26\x86\x26\x27\x8c\x85\x06\x3e\x46\x98\xff\x22\xfb\xa0\x35\x9a\x08\xff\x0d\x5d\x3a\xa6\xc5\xc5\x75\xe7\xf2\xb5\x04\x28\xa2\x30\xbc\x89\xb8\x04\xb8\x12\x45\x70\x21\xa0\xdc\x57\x88\xcc\xab\x6a\x94\xd2\xf4\x03\xc0\x0c\x86\xf6\x40\x04\x1f\x23\x17\xe2\xde\xe6\xa5\x77\x61\xf3\x7d\x5d\xb2\x54\x4e\xd3\xe2\x6c\x78\x52\xc1\xaa\x1a\x78\x91\x16\x7f\x26\xf0\x1c\x8b\x2d\xce\xbe\x3d\x5b\x41\x7e\xa4\x4a\xd4\x1f\x34\xca\xc3\x75\x54\x41\x0b\x9c\x19\x67\x15\x8c\x88\x72\x57\x6f\xa5\x83\xaf\x4c\xeb\x45\x9a\xb6\xf2\x2d\xd2\x45\x7d\x4d\x86\x21\x87\xa5\xe5\x33\x7a\xe4\x3d\xba\xd7\x7b\xea\x3f\x78\xca\x75\xbc\x19\x4c\xa6\xe3\x86\x7e\x24\x10\x13\xe9\x34\x03\x2e\x03\x94\x84\x7b\x80\x17\x82\xa1\xa6\x55\x11\x1a\x04\xa4\x0c\x38\x4a\xe7\x40\x73\x4b\xa8\x29\x5e\x40\x71\x53\x3e\x21\x77\x88\x64\x2a\x09\x1e\x3c\xfc\xe5\x19\xfc\x09\x29\x63\x18\xa7\xa0\x49\xa6\x22\x22\x1a\x19\x07\x4b\x64\xcd\xe1\xb0\x78\x5d\xd3\x4e\x84\x0b\xbb\x13\x13\x4b\x36\x42\x03\x06\xe2\x3d\x71\x5d\xe0\x23\xe9\x36\x7e\xe7\x5b\xf2\x50\x45\xa0\x49\x7a\x50\xef\x03\x60\xa1\x2f\x44\x9a\x8c\x0f\xaa\x94\x2f\x01\x05\x7e\xc1\x11\x06\x85\xb9\xf2\xe5\xa5\x77\x78\xf1\x7f\xe5\x81\x8d\x86\xb7\x92\x17\xc3\x72\xa2\x4b\x31\x9b\xf5\xdc\x11\xfd\xca\x58\xe3\x33\x47\x31\xb4\x87\x9a\x7d\xd1\x25\x2c\x2f\xad\xad\xbd\x77\x99\x05\x5f\x3c\x26\x52\xf1\x6a\x52\x0e\x16\xe1\xbd\xa2\x18\xe4\x1f\x88\x12\x93\xb4\x88\xd8\xf9\x0e\xca\xf5\xf5\x5b\x59\x5c\x34\xc5\x41\xc9\xec\xe7\x48\x61\x60\xd5\xcb\x71\xd4\xbb\x10\x36\x3a\x71\xa5\x42\x30\x9b\x53\xc0\x79\xb8\x0b\x13\x92\x6e\x22\x93\x72\x0a\xb9\xf7\x77\x8c\x3c\x6b\x8e\xda\x6c\xa6\x68\xce\x4a\x8b\x63\x32\xeb\xfc\x78\x41\x43\x8e\x8f\xe1\x92\x74\x07\x5b\x11\xb1\xb1\x52\xf7\x87\x3f\xd6\x1b\x00\x94\x01\x8f\x6f\x32\xc3\x62\x1e\xd2\x67\x93\xfc\xe0\x99\x90\x6a\x06\x5b\x62\x2f\x2f\xaf\xb6\x5e\x41\x40\x74\x48\xc2\x2c\x83\x50\x1b\x3f\x3c\xf3\xc6\xd2\x01\xec\xf3\xff\x6f\x3c\x1e\x70\x22\x01\x2c\x41\x6e\x73\x72\xf0\x78\xdf\x20\x83\x40\x40\xd0\x34\xd4\x3c\xf9\xb9\xb3\xd8\xc1\x01\x8a\x82\x8b\x35\xf1\xc7\x73\x5c\x6c\x12\xd7\xd8\x9a\xa5\xa9\x05\x4c\x92\x98\x37\xd9\xa7\xa6\xc8\x12\x10\x61\xd0\x01\xa3\x78\x14\x34\x55\xa0\x2a\x8e\xad\x17\x7d\xd2\xaa\x1f\x5f\xa8\x97\x03\x02\xad\xd4\x16\x00\xcf\x83\x60\xcb\x1f\x6b\xc2\xc0\x8c\x3d\x8c\x9f\xac\x12\x9a\xe8\xd3\x79\x70\x94\x46\x8c\x56\x03\x73\x9a\x0d\xed\x76\xc9\x0c\xe4\x48\x8e\xd1\xb0\x7f\x05\xd8\xa4\xbe\xb4\x48\xd2\x45\x56\x61\x8a\x28\x84\xef\xd6\x11\x69\x8b\x1e\x90\xcc\xce\x98\x5a\x03\xc5\xdf\x4e\xb3\x2c\x6e\x17\xcd\xd3\xa7\x2e\x5e\x3e\xfd\xde\x29\xc7\x2a\x6b\x97\x44\x36\x8f\x58\x5c\xdb\x70\xf0\xa1\x23\x6b\xf4\xb4\xd6\xe3\x59\xdc\x68\x15\x5f\xfa\x9d\xc0\xc9\xbb\xd1\x70\x8d\xce\x5b\xeb\x71\x0c\xfc\x48\x74\x25\xee\xcf\x13\xc0\x2b\x66\x10\xb5\x9d\xc6\x21\x69\xf9\x8e\xc4\xf0\xb6\x55\xd3\x58\x18\x80\xd7\x36\x05\xcc\x6b\xb5\xa5\x0a\x6c\x0c\x1a\x5c\x59\x4e\xb1\xae\xf1\x02\xa0\xed\x02\xad\x7b\x90\x77\x7e\xab\x7c\x7e\xa9\x45\x58\xd4\x4e\x19\x29\xcd\xa6\x65\x75\xa3\x01\x8b\x1f\x3c\xa1\x28\x34\xef\x76\xe3\x4d\xb4\x28\xd1\x83\x37\xdb\xf4\x90\xc8\x95\xe7\x30\xa0\x5b\xfe\xfd\x1b\xb3\x01\x4c\x48\x54\xbb\x27\x50\x52\xd4\x3a\xe6\x14\x98\x53\x67\x8f\xea\xbc\xd3\xa0\x09\x4a\x0f\x73\xd6\x48\xe9\x9f\x92\x4a\x16\x28\x93\x8c\xfc\x21\x1c\x59\x7d\xdf\xd0\x03\x55\x11\xcf\x4d\x14\xc7\x6a\x14\xed\x12\x98\xa2\xc4\xd3\xac\x1c\x11\x2d\x7e\x9f\xcc\x80\x8c\xf9\x08\x1a\x29\x38\x31\xb9\xbf\x64\xb3\xc6\xf2\x68\xe0\x6e\xa3\x80\x9f\x86\xf3\xfd\xc2\x1d\xdb\x5e\x48\x28\x31\xa2\x2f\x30\x02\x74\x42\x11\x35\x08\x17\x0b\x75\x69\xa9\xbc\x45\x3b\x74\x85\xed\xb2\xe2\xbb\xc2\x9a\x1d\x6a\x67\x15\x84\x1b\xf1\x27\x49\x4e\x74\xf4\xc8\xad\x35\x4b\x43\x71\x9d\x54\x19\x7b\x86\xb1\x66\x60\xd4\x8d\xf2\x02\x85\xb8\xbc\x3a\xec\x00\x35\x62\x10\x6a\x25\xff\x35\x3a\xca\x90\xce\x83\xf0\xe5\x1e\x31\x69\x68\x4b\x8c\x62\x14\xe7\xb6\x31\x59\xeb\xaf\xe2\x1e\x20\x09\xa6\x4e\xab\xa8\xf0\x33\x22\xa6\x58\x44\xa4\x84\xe7\x3e\xf4\x9a\x80\xce\x7f\x41\xe0\x4e\x2f\x39\x1a\xe4\x5d\x89\x77\xc2\x62\x3e\x40\xcf\x07\x0e\x7f\x49\x9a\x67\x39\xe3\x15\xdd\x9d\xd0\xdf\x40\x0b\xae\x6a\x8c\xfe\x06\x49\xa3\x87\x6c\x4d\x70\x35\xce\x80\x1c\x36\xfd\xb1\x29\x7e\x99\x7c\x5a\xa8\x59\x62\xee\x8f\x64\x68\xe6\x46\x93\x14\x7c\xcf\xda\xf9\xe1\xfc\x0f\x15\xcd\xfa\xa9\x58\xd4\x8c\x8d\x56\xe9\xb0\x56\x8a\x7a\x53\x6b\x8c\x7d\xf1\x98\xd6\x20\xd5\xd8\x74\xa0\xc4\x41\x77\x2b\xa3\xac\xef\x1a\x28\x30\xa0\x5d\x8d\xaa\xea\xae\xc5\x90\x0a\xb9\x2a\x2a\x79\x48\x0a\xe7\x4f\x99\x2c\x66\x70\xce\x9a\x20\xa0\x89\x0a\x80\x80\x78\xfe\x8c\x0b\xd1\xc8\x95\xeb\xfb\xec\x19\x9d\x20\xb2\x17\x12\x1a\xde\xb8\x65\x99\x53\xc8\x0e\x08\x9a\xea\x15\xd2\xc4\x1c\x9e\xa0\x9a\xe0\x29\x89\x9b\x0f\x45\x51\xfa\x4c\x06\x40\x42\x1f\x23\xa8\x31\xda\x37\xd9\x47\x03\x1c\xc5\x01\x42\x13\x45\xc8\x8e\x21\xd6\xe0\x69\xa1\x98\x8b\x1c\x8b\xc4\xc2\x60\xa4\x65\x47\x56\x29\xb5\x5b\x83\xee\x68\x4c\xda\x65\x64\x84\x1a\x2d\x2d\x86\x22\x66\x43\xcb\xa0\x0e\x34\x47\xb7\x6f\xa4\x6e\x5f\xb2\x68\x5f\x1b\xe5\x79\x03\x17\x14\x5c\x5e\x74\x01\x24\x9a\xc6\x09\xe8\x71\x4a\xeb\x5e\xbd\xfd\xd5\x8b\x5d\xa3\x94\x81\x1b\xbf\x12\x9e\xc7\x9c\x35\xd6\x5a\x29\xfd\x15\xb5\xc6\xbb\xca\xd9\x37\xb6\xd1\xb4\x73\x13\xe3\xc2\xa9\xf5\x78\x91\xbb\xb8\xcf\x92\x07\xec\x99\x05\x11\xa2\xb8\x10\xda\x6b\x95\xed\xa2\x68\xe7\x11\x0e\xde\xac\xc5\xdf\x3c\x0f\xd7\x46\xf6\x60\x86\x6d\x90\x66\x11\xf4\x45\xd7\x86\x26\x33\x67\x48\xea\x32\x6e\xe2\x80\x8f\x29\xb5\x59\xdd\x57\xa0\x7f\xc8\x83\xa7\xb5\x9e\x45\xfd\xf6\x96\x8b\x27\xfe\x49\x2e\xab\x38\xc2\x91\x0f\x0f\x2f\x42\x1d\x6e\x20\xb6\x1e\xd7\x0f\xb5\x61\x5b\x51\x7f\x33\x6e\x69\x33\x3a\x4f\x00\xe0\x48\x2a\xc4\x5e\x0b\x71\x17\xcb\x27\xb5\xf9\x1c\x9a\x7c\x9a\x56\xd8\x5e\xee\xc5\x1a\xdb\xad\xda\x38\x8e\xd0\x63\xe6\xaf\x53\xe0\x8c\xd0\x5e\xee\x1e\xc1\xd7\xeb\x24\x85\x79\x24\x17\xff\x19\xd5\x40\x15\xaa\xe3\x39\x96\xc4\xf5\xea\x3f\x12\xfc\x24\xc5\x8e\x2b\x75\x37\x0a\x2d\xd4\xbb\x74\xbb\xe9\x76\x8c\x5a\x4c\x96\x7a\xb3\x64\x90\x59\x7d\x74\x9d\x85\xf9\x64\x08\x00\x71\x4a\x0f\x84\x22\x11\x47\x51\xae\x4b\xea\x76\xa7\x2e\x96\xc0\x75\x46\xe9\x49\x83\xa8\x34\x14\x0e\x65\x57\xb9\x91\x99\xb4\xd9\x89\xe3\xf9\x09\x3e\x17\x78\x6c\x9e\x08\x94\x70\xad\xb8\x10\x06\xd9\x86\x07\x51\x01\xb4\x49\x9f\xc5\xb3\x34\x8f\xf9\x7d\xfc\xf0\xc7\xe3\xf9\x0f\xcf\x1c\xbb\x28\x07\x2f\x19\xea\x95\xbc\xf6\xd8\xa5\x10\x4e\x8a\xf1\x40\xf4\xdc\x67\x6b\xfd\xa2\x04\x79\xe6\x4d\x4f\xe2\x32\xd6\x1a\x4f\xb4\xc8\xd1\x16\x57\x42\xd9\x3a\x46\x06\xbb\xbe\xe2\xf2\x36\x1e\x88\x68\x30\xe8\x26\x6d\x52\x51\xe5\x72\x2a\xca\xe6\xe6\xac\xb1\x0e\xb9\x74\x42\xbf\x9d\xb8\x1b\x17\xb1\x21\x83\x1c\x11\xb8\x2b\x21\x1c\x26\x9d\xe6\x07\x67\xcf\xe0\xe4\x07\xc3\x75\xe8\xd0\x7a\x5e\x92\xe1\x26\xc2\x01\x12\x95\x3c\xad\xf8\x60\x6a\x47\x63\x36\x3b\xb3\x8c\xc4\xc4\x3a\xa1\x2c\xc0\x53\x54\x29\x2f\x22\xa5\x9f\x91\x4d\xd7\xa1\xc8\x2a\x5c\xb3\x7c\x1f\x7c\xe9\x33\x62\x54\x5c\xb0\xee\x44\x74\x7d\x16\xb4\x4a\x16\xf4\x68\xa4\xf1\x62\xb0\x23\x4a\x21\x07\x37\x1f\x21\xb5\x82\x90\xe9\x06\x7d\x78\xcc\xe7\xa6\xd4\x83\x4f\x46\x48\xdb\x47\x9e\x86\x4d\xda\xff\x5c\x80\xe2\x13\xa3\xd6\xc5\x23\x8d\x0e\xa7\x4c\xc4\xff\x6f\x38\xc0\x77\x67\xb8\x93\x77\xd3\xb6\x98\xd3\x7e\x23\xb0\xed\x88\xd7\x60\xe2\x38\x2f\xc0\x6e\x0e\x3a\x28\xed\xb5\x5b\x48\xfe\xff\x47\x8e\x06\xc0\xdf\x42\xbf\xbc\x95\xc4\x86\x9c\x6e\x85\xb9\x54\x74\x71\x9e\x93\xe9\xe7\x21\x93\x72\xba\x0f\x4d\x42\x09\x74\x5c\xd4\x55\xdc\x75\xa8\x24\x45\x69\xa5\x05\xa3\xfe\x13\x33\x7e\xbf\xfc\xb8\x4c\xa8\xea\xc1\xc0\x11\xfb\x92\x2e\x9a\x44\x3a\xe0\xb3\x57\xad\x6c\xcc\x31\x8f\x90\xd8\x3a\x62\x3d\x0c\xab\x02\x2c\x11\x69\x8f\xf5\x43\x36\x39\xf5\x5c\x9a\x59\xa7\x0c\xa0\x03\x5d\x72\xbf\x16\x3a\x7d\xaf\xd6\x3b\x58\x5b\xf1\xfa\xf8\xa3\x6c\xf7\x5b\x8d\xcf\xa0\xf5\x80\x06\x9f\x84\x9b\x72\xdc\x86\x9c\x16\x71\xa6\x7f\x87\xe6\x96\x8a\xe0\x9f\xb6\x6a\x16\x2d\x48\xc8\xef\x86\xee\x08\x73\xee\x4f\x48\x31\x07\xf7\xc4\x5a\x96\xb7\xb7\xd2\x34\x17\xc3\x12\x3d\x03\x6d\xbe\x14\xb0\x2b\x71\xc6\x2c\xc7\xce\xd8\xb2\x97\x4f\x69\x09\x41\xe2\x88\x9d\xfa\xb8\x84\xda\x12\x5d\x4f\x98\x70\x41\x2b\xe9\x51\xb4\x84\xdf\x9a\x51\x3f\x66\xbe\x83\x95\xe5\x62\x94\x5f\xa7\x55\x1a\xd3\xb9\x64\x64\xf7\xd8\x11\xcb\x92\xe7\xa3\xbf\xbc\x8e\x95\xe3\xfd\xb9\x5b\x64\xa4\x1b\xda\xd6\x15\xcb\x79\xc2\xd5\xb1\x43\x6d\x73\xe9\x92\x1d\x4a\xa3\xb4\x64\xf6\xa2\x96\x2d\x12\x47\x95\x63\xea\x2c\x5b\xe5\xae\x12\xe5\xe5\xde\x66\x42\x82\x72\xf9\x5c\xc5\x9f\xa3\x23\x29\x69\x71\xd2\xae\x2b\x1a\xa8\xd8\x19\x3a\x25\xf1\x9c\xd8\x92\x6e\x1c\x04\x5f\x2b\x84\x1a\x8f\x96\x5f\xf8\x5e\xbd\x08\x51\xeb\x98\x1f\x32\xeb\xe0\xa8\x25\x43\x52\xa2\xfa\xf1\xcd\x94\x06\x95\x56\xc4\x2e\xbf\x2b\xeb\x24\x26\x5c\xc0\x4a\x79\x59\x15\xf5\xfc\x9c\x79\x56\x21\x9a\x3d\x17\x59\x52\xdf\x4d\x6f\x88\x66\x58\xdf\x9b\x03\x67\x88\x72\x16\x45\x84\x97\x3b\x08\x17\x77\x71\xbe\xae\x4e\x22\x43\xe8\xda\xc1\xe0\x10\x8e\xf7\x14\xd1\xfe\x0b\x34\xcb\x02\x45\xb1\x3c\x67\xac\x71\x64\x08\x7b\x29\xfe\x42\xfa\xf2\x45\x11\x7d\x18\xbb\xfb\x0e\x45\x88\xa2\x8f\x84\x21\x61\xba\x08\x77\x73\x90\x01\x9c\xc0\xb8\x0b\x77\xfd\x81\x9a\x2f\x5a\x5b\x1a\xb2\xa1\xd6\x2c\xf9\x51\xb9\x2e\x93\x5b\xa6\xaa\x4b\x74\xd9\x55\x82\x22\x84\xc4\xbf\x77\xbc\x63\xcb\x2b\xff\x22\xab\xce\xed\x39\x01\x7f\xdc\x46\xc5\x69\x56\xe0\xc0\x0b\xb4\xbf\xa2\xe5\xc6\x22\xcc\xc3\xbd\xd8\xf7\x5d\x7a\xd1\xce\xcc\xa7\xa3\xa8\x0d\x4b\xfd\x8d\xab\xe2\x0e\x26\xa9\xc6\x64\xd4\xab\x5d\xeb\xd8\xd6\x48\xb1\x5d\x0f\xeb\x97\x48\x40\x41\xd2\x32\xa3\xee\xa4\x71\x6a\x26\x93\x96\xf4\xad\xca\x1a\x98\x3b\xf9\x62\x12\x6d\x8f\x96\x71\xa7\x48\x7e\x04\x1d\x02\x44\xb2\xa7\xa4\x75\x76\xcd\x29\x3c\xf4\xb6\x70\xa7\xdc\x6e\x4d\x9b\xd5\xda\x6c\xc1\xae\x6b\xdf\x74\x6a\xb7\x3c\x2b\x36\x34\x96\x2a\x59\xae\xcd\xd0\xbb\x1c\xcd\xf7\x11\x75\x8c\xd9\x3c\xb3\x2a\xa6\xd1\x88\x6b\x7b\x01\x13\x36\xd7\xa0\x62\x61\x23\x36\x2d\x81\xc5\x35\xc0\x42\x70\x9f\x3d\xbb\x36\xdf\xe0\xc5\x35\x6e\xf3\xc8\xdd\x5f\x10\xc9\x5c\x6f\xce\x44\xcc\x9f\x5d\x56\x07\xb9\xfe\x29\xfb\x5b\x21\x90\x1f\x99\x3d\xd6\x07\xcb\x40\x63\xc3\x34\x06\xe1\xb1\xaf\xbb\x47\x88\xcc\xc3\x24\x99\x70\xe5\x34\x4a\x41\xe6\x44\x19\x22\x30\xb9\x4c\xa3\x61\x89\xc2\xbe\x72\xcc\x3a\x9f\x6a\x37\xed\x10\x37\xe4\xf0\x70\x33\x8d\x93\x94\x23\x66\x17\xaf\x0c\xe1\x8f\x18\x3b\x97\x14\x8f\xfc\x5a\x04\x92\x86\xfe\x11\x9f\x74\xa1\x5a\xdf\xcc\x8b\x2c\xed\x6f\x9e\x14\x23\xcf\x43\x2d\xdf\x92\x60\x5f\x6f\xbd\xf9\xaa\x14\x50\x40\x39\x6a\x05\x11\x7c\xf6\xa4\xc1\x4c\x44\x0a\x1c\x7a\x2e\x92\xdb\xdd\x89\x91\x57\x6a\x07\x06\xbc\x0a\x6f\x46\x6e\x7c\x18\xeb\xb2\xc7\x60\xce\x15\x6f\xe3\x82\x60\xb4\x18\x47\x9c\xe7\xba\xb0\x09\x91\xcd\x7e\x71\xda\xac\xc9\x6f\x5d\x8c\x15\x99\x7d\xe4\x6b\x22\xb1\x7b\xea\x18\x53\xe8\x1f\xbb\x74\xe0\x51\x70\xff\xdd\xc3\x62\xa4\x11\xae\xa6\xef\xd7\x73\x11\x6b\x99\xf3\x7e\x6a\x1a\x6c\xd8\x16\x89\x1f\xe3\x16\xef\xd5\x96\x27\x53\x6c\xe6\x9c\x69\x03\x1e\x8b\xea\x49\xe8\xa3\x03\xad\x4a\xac\xd1\xe4\xe8\x7e\x0c\xe7\xe8\x18\xb0\xe0\x37\x72\x34\xd0\x76\xec\xd6\x8d\xe8\x80\x05\x54\x72\x45\xec\x3d\xfe\x75\x90\x6f\x2d\x5d\x4b\x0f\x9c\xeb\x69\xe0\xa2\xb2\xe8\xe8\x25\x83\xe1\x69\xf5\x4b\xf8\x5d\x2f\xce\x0c\x0c\x6f\xa6\x80\x8d\x56\x6b\x94\x70\xb8\xc6\x06\x53\x36\x39\x74\x37\xd7\x13\x96\x1a\x8f\xe3\xd2\xd1\x61\x6b\xf8\x89\x68\xae\x1c\xe6\x83\xc5\xb5\xcf\x58\x72\x3a\xf7\x8a\x5b\xdc\xbc\x00\x42\xae\x4c\x49\x6f\x80\x37\xfa\xb0\x14\xc1\xc5\xbc\x2f\xf1\x16\xa6\x7d\xf7\x90\x3f\xd3\xa2\x01\xd2\xf2\xc9\xf9\x2b\xe9\xe8\x9e\x8a\xc1\x49\xf8\x80\x3f\x9b\x52\xc4\x3e\x0c\x63\x63\x84\xa3\xbf\x61\xbd\x8b\x35\x87\xd5\x56\xec\xba\x34\x9d\xa3\x02\x39\x2f\x07\xa2\x12\x3d\xa4\xa7\x53\xdb\x15\x4b\x1e\x2a\x8a\xc4\x3d\xf5\x1f\x15\xfd\xa4\x98\x63\x45\x7a\x05\x2e\x68\xa8\x07\xc2\x6b\xfb\x7c\x32\x7f\x5c\x1f\x16\xdb\x68\x49\x64\x88\xf6\x17\x8a\xcf\x3b\x44\x07\xe2\x2d\x69\xe4\x96\x07\x22\xc1\x17\x04\x70\x9b\x5f\x84\xa4\x97\xe2\xe7\x51\x8f\x87\x02\xfd\x91\xcc\xce\xf6\x86\x10\xd2\x9e\x44\xb2\xfb\xa9\xf6\xf4\xa3\x10\x90\x3b\x06\xb1\x31\xe8\xaf\x27\xfd\x0e\xcb\x6b\x64\x6c\x7c\xc3\xf9\x83\x85\x29\xf7\x89\xae\x30\x8e\x87\x6c\x20\x55\xef\xb0\xc2\x34\x94\x9d\xed\xc8\xa5\x02\x22\x6a\xb3\x45\x67\xa1\x66\x77\xbe\xd3\x87\x41\x38\x33\x76\xb1\xa2\xb5\x3c\x9c\xd8\x38\x8e\x44\xeb\x7f\xed\x88\x1a\x46\x3a\x4c\x91\x78\x00\x49\x1f\xb5\xfe\x3f\xf4\x5d\x8e\x65\x2e\xbb\x77\xdf\x41\x88\xee\xfa\xe1\xe1\x30\x87\x54\x73\xb4\xe2\x4c\x1d\x38\xb1\x53\x13\xdf\x40\xe0\x8f\x2b\x12\x41\x03\x70\x0e\x01\x77\xea\xe2\xd9\x06\x0b\x0b\xf8\x6e\xf0\x18\xc4\x95\xca\x51\xe4\xa2\x90\xe6\x11\x13\x90\xce\x4d\x71\xb9\x47\xf1\xef\xd3\xa1\x00\x34\x8a\x2a\x47\xf1\x59\x0c\x0c\xea\xab\xea\xa1\xa5\x03\x62\xce\xf7\x99\xbf\x74\x56\x5a\x56\xf9\xef\x19\xdd\x4d\x4b\x91\x43\xbd\x7a\xe5\x5a\x7c\xc2\x62\xf6\xe0\x75\x01\xa4\x43\x96\xb8\x1b\xe6\x4e\xde\x5b\xd0\x97\x82\x5a\x74\x6c\x87\x8d\x0d\x8c\x13\xed\x3e\xb1\xc8\xe2\x6d\xee\x88\x8e\x5c\xc9\x8a\xed\x85\xc1\x4d\xed\xd9\xf3\x86\x20\xb8\x63\xe2\x98\x28\x68\x81\x47\xc9\x3d\x5e\xfa\xb4\x1a\x41\x8b\x6e\xcd\xad\xf0\x10\xae\x7b\x65\x2c\xd6\xbd\x18\x67\x39\x46\xb4\x51\xa7\xe8\xb3\xba\x8c\x9f\xd5\x19\xf9\x5c\x53\x8b\x4f\x18\x15\x8a\x55\xb1\x95\xe4\x6a\xa0\x9b\xe1\xf2\x7c\x29\xd4\x76\xd2\xed\xaa\x2c\xee\xa5\x57\x63\x0a\x8c\x91\xc5\x18\xb2\xb5\x23\x85\xe2\x5c\xa5\x1b\xca\xd1\xd9\x34\xd4\x99\x54\xed\xa4\x43\xb5\x1d\xf5\x0b\x68\x42\x69\xf9\xf0\x5b\xfe\xd4\x0c\x48\xb9\x18\xec\x75\x2b\xca\x15\x12\x71\xd2\x73\x47\x49\x71\xd4\x1d\xec\xbc\x04\x7d\xf4\x4f\x14\x8a\xdd\xa8\xb0\x13\x16\x13\x62\xbf\x99\x3b\x18\x05\xad\x6c\xc7\xdd\x2e\x41\x1d\xe9\xdd\x18\x9a\x97\x68\x8e\x3a\x5b\x72\xa9\xe6\x8a\xe2\x85\xb8\x70\x75\x20\x44\x54\xef\xb2\xb1\x98\x69\xd6\xf0\x7f\x28\x35\x98\x15\x79\x00\xcf\x13\x11\x34\x70\x1c\x1e\xe1\x51\x1b\x2b\xcb\x0d\x4c\x7e\x83\x5e\x7f\xdf\x00\xd1\xff\x3f\x27\xbf\x01\x88\xf8\x1b\x87\x11\xd8\x33\x8e\xdc\xda\x6e\xe0\x25\xeb\x65\x5f\x9e\x70\xd8\x0a\xde\x97\x6f\x20\x21\xe9\xd7\xd3\x01\x05\x02\xb2\x9b\x52\x74\xd3\x52\x3d\x8b\x03\x47\xb3\x51\x84\x13\x7a\xca\x1d\xcb\x48\x04\xe2\x74\xe7\xaf\x93\x1c\x70\x71\xa2\x6c\x79\xe9\x43\x54\x18\x7f\xb4\xbc\x24\x56\x51\x77\x7c\x83\x23\xc7\x20\x72\x9e\x19\xbb\xb5\x9c\xd4\xea\x85\x7f\xa0\x50\x0a\x5f\x68\x49\xac\x63\x9a\x58\xd3\x0c\xf2\x60\xda\x8f\x9d\xd5\x0d\x68\x43\xc0\x8b\x70\x24\x66\x2e\x22\xb1\x77\xf7\x1e\x97\x96\xcd\x6d\xb4\x58\xd6\x6c\x7d\x03\x3d\x6e\xf3\x64\x3d\xe9\x12\x41\x77\x87\x80\xca\x58\x5b\x02\x21\xa8\xa0\xcf\xf8\x55\x0f\xfb\x32\xde\x71\x1b\x7f\x55\xc1\xd3\x9b\xf9\x20\xea\xab\x36\xd0\x96\x79\xf3\xd8\x30\x81\xaf\x1d\x85\xae\xcc\xc7\x4e\x5e\xcc\xc8\x81\x02\xfa\x83\x12\x27\xdd\xd6\x30\x9e\xaf\x6e\xf2\xe5\xd3\x24\x21\x46\x10\x40\x10\xe4\x6a\xd4\x1d\xc6\x0c\x31\xa2\x8d\x8d\xb8\x5d\x10\xc4\xc0\x1a\xf9\x2b\xa4\xca\xbe\x22\xb6\x2a\x77\xe5\x18\xde\xb0\x12\xa0\x9a\x58\xc3\x54\x89\x63\x61\xb9\x95\x9c\x73\x78\x84\xb7\x94\x8a\x55\xa6\x1c\xa8\x42\xe1\x8b\x50\xa5\x13\xda\xed\xaf\x98\x72\x62\x03\x91\xdb\x9a\xfd\xde\x63\x43\x52\x76\xcd\x15\x01\x0f\xbc\x22\x43\x30\x6f\xd9\x51\x50\x41\xa7\x85\x8f\xfe\x5d\x6b\x22\xc0\x17\x8b\xbe\x61\x74\x6b\x27\xb2\xb5\x79\xe7\x44\x12\xbc\x25\x2e\xee\x72\x41\x6d\x54\xa5\xc6\x66\x52\x24\x9b\xfd\x34\x8b\x81\x21\x48\xda\x40\xab\xc4\x18\xdb\x77\x4c\xa6\x3a\x87\x34\x95\xdb\xe6\xcb\xdc\x06\x15\x41\x29\x53\x95\x47\x1f\x75\xe0\x46\x5c\xa2\x3f\xfa\xb1\xbe\x21\x8c\x8e\x2b\x61\xbb\x8d\x7c\x5a\x1a\x87\xeb\x9b\x49\x2b\xd1\xb0\x48\x5b\x49\x3f\x21\x73\x55\x0e\xfe\x3d\x66\x10\xe9\x46\xad\xf1\x39\xbf\xf0\x71\x70\x03\x05\x38\xa4\xba\xe9\x92\x69\xc4\xb1\x37\x30\xdc\x42\xe3\x0d\xce\xa7\xcf\x27\x03\xeb\x4e\x9e\x04\x78\x12\x53\x1c\x8e\x68\x7e\xc3\x98\x1d\x21\xac\x3a\x20\x4a\xef\x73\x2d\x32\xd1\xb1\xb5\x61\xae\x45\x9c\x5d\x45\x96\xe3\x77\x6c\xf0\xc6\xf6\x5f\xb8\xe2\xae\xd7\x7c\x39\xcc\xdd\xcb\x2c\x25\x79\x65\xb6\x3d\x49\x18\x4c\x29\x36\x27\xf9\xd1\xf6\x24\xff\xe2\xee\xa8\x96\x5c\x84\xe3\x0f\x18\x13\x96\x39\xc6\x25\xfd\x18\xf5\x95\x43\x0c\xf7\xf1\xdd\xd4\x89\x0c\xac\x9d\x06\xaa\x01\x80\x28\x4a\xf9\x26\x13\x87\x6e\x78\x5f\x04\x94\x26\xbe\x38\x45\x2f\x70\x4a\xd5\x81\x39\x82\x46\xeb\x40\xbb\xf8\xd0\x0e\xc1\x9c\x5a\x07\x70\x75\xec\x24\xef\x9a\x01\x75\xba\x51\x3e\x2b\x3a\xa6\x03\xa9\xc6\x6b\x71\x84\xd4\x69\xb4\xbb\x69\x1f\x30\x60\xa7\x93\x09\xb7\xa4\xa9\x4c\x8f\x0e\x36\x52\xd5\x9a\x8a\x0c\x3f\x68\x22\x6d\x18\x31\x0d\xde\x86\x3f\x7c\xf5\xdd\xb3\x97\x29\x6c\x62\x9a\x29\xb4\x8f\xe8\x2a\x8e\x37\xa7\x30\xa4\x4a\xc3\x36\xa9\xcd\x69\xa9\xcc\xbc\x78\x2b\x5e\xec\x35\x2f\x04\x0b\x05\xe2\xf0\xd4\xb2\x62\xc6\x5a\x67\x76\x66\x8c\x16\x2b\xaa\x66\x09\x82\x83\x58\x8f\xa2\x19\x37\xe4\xa4\x5f\x81\x03\x42\x20\x9e\x7f\x2b\xfc\xed\x40\xfe\x56\x1e\x77\x37\xea\xa2\xec\x8a\x52\x65\xdf\xd8\x4d\x96\xb6\x68\x34\xd5\xd6\xa1\x37\x58\x83\x25\x8a\xac\x3b\x8e\x61\xbf\x50\xfe\x25\x9b\x64\xa2\xa4\x06\x3b\xad\x6e\xd2\xbf\x52\xb3\x95\x4e\x09\x97\x45\x2e\x95\xc4\x35\x73\x1b\x13\xf7\x94\x8b\xb8\xd5\xea\xdf\xbe\xfc\xdd\xea\x69\xdc\xca\xd3\x45\xd6\x85\x5f\x44\x31\x0f\x76\xa0\x38\x80\xf1\x2b\xe8\x84\x8e\x8f\xb5\x47\x89\x03\xeb\xc1\x22\x50\x54\x41\x94\x1a\x19\x73\x0b\xa8\x97\xe0\x95\xae\x30\x54\x81\xe1\x61\x77\x78\x00\x8d\xf7\x68\x50\x04\x2d\xb6\xe0\x81\x20\x9d\x93\xf1\x5b\x4a\xe4\x52\x26\x38\x58\x39\x70\xd7\xcd\xd9\x01\xca\x6d\x47\x93\x31\x0a\x7e\x5f\x42\xe1\xc3\xb6\xf6\xad\xd9\xe3\x0b\x43\x1b\xaa\xa3\xfe\x4d\xc4\x1a\x1f\xf7\x41\x0a\xde\xf7\xdf\x0e\x31\x46\x4d\x46\xa6\xfb\xd6\x3a\x63\x4c\x92\xb2\x92\x81\xdf\x43\x5c\x03\x2e\x7c\xa7\xfa\x75\x8f\x4f\x63\x80\x6e\x21\x00\xa7\x11\xfe\xb7\x7c\xfc\x8f\x5c\xbc\x8f\xd0\xe1\x67\x43\xdc\xca\xcd\x61\x42\x11\xea\x79\x24\xb4\x0b\x28\x34\x87\x95\xde\x17\x96\x53\x87\x59\x34\xdb\x81\x44\x95\xc0\xa1\xdf\x97\x97\x7d\x26\xee\x72\x82\x9f\x10\x81\xd1\x4e\x7b\xbd\xa8\xdf\x99\x21\x01\xa9\x43\xb8\xb4\x5a\xae\xfd\xbf\xd6\x78\x8a\x22\x88\xec\x26\x07\x43\x74\x22\x44\x3b\x55\x87\xbe\xf3\x9d\xb0\xcb\x90\x82\x35\x5b\x3f\xb6\x63\x9a\x1c\xac\x11\x05\xbf\x0e\x51\xb8\xf4\x61\x45\x0d\xba\x71\x94\xc7\x70\xb3\x7a\xb1\x5a\x8f\xda\x57\x14\xf2\xb0\x19\x79\xcc\x2e\x2f\x55\x10\xfc\xf2\x52\x91\xc5\x64\xd0\xc4\xb0\x9f\x76\x44\x2c\x72\x31\x0a\x78\x11\x71\xf2\x05\x2e\x4e\x14\x07\x0b\x5d\x78\x50\x5c\x32\x76\x8b\xa0\x5d\x2f\x47\xd9\x31\x2f\x74\x66\x85\xbb\x64\x47\x73\xd3\x55\xcb\x71\x4e\x86\x4a\x2e\x86\x6e\xb4\x1e\x77\xfd\x46\x7a\x49\x17\xbe\xc1\x51\xc9\x85\xd3\x42\x49\x37\x5e\xfd\x5e\x2f\x29\x72\x4e\x87\x70\xc0\x5e\xe0\xec\xb8\x4c\xeb\x20\xf6\xb3\x44\x80\xe1\x6b\x32\x82\xcb\xa2\x6d\x20\x31\x60\x28\x6c\xcd\x4d\x8c\x87\x7c\x82\x65\xe5\x8c\x0d\xbf\x13\x37\x03\xc1\x7a\xf4\x91\x02\xff\x50\xe5\x7b\x9e\x52\x68\x4f\xdb\x3f\x87\x5a\x04\x20\xd3\x8b\x18\xb0\xde\xb3\xce\x0b\x13\x6d\xbe\x6e\x2c\xd3\xf6\xd9\x6e\x4c\xe6\xd3\xa8\x9b\x97\xfe\x5e\xc9\x39\xa1\x4f\x10\xfb\xc1\xc3\x59\xb7\x65\x37\x48\xe0\xf9\xad\x08\x84\xc6\xf6\x03\x92\x2a\xe8\x3d\xf8\x2b\x27\x1d\x8b\x7c\xea\x01\xc4\xe6\x54\x36\xd0\xd6\x11\x05\x3e\x37\x5c\xb3\x2e\xd3\xa1\xa0\x09\x5f\xb3\xf9\x91\x7d\x2d\x91\xa4\x30\x82\x24\xb0\x0e\x28\x6e\xb2\xdf\xe0\x9a\xea\xe8\xcd\xbb\x6c\x3f\x67\xc2\x25\x51\xc6\x1b\x27\xff\xc9\x93\x09\xbb\x08\x92\x4e\xc8\x96\x69\x04\xce\x86\xf3\xb5\x8f\x2c\xc6\x7a\xdc\xe5\x20\x64\xe6\xac\xfa\x4d\xb4\xe1\x6c\x64\x2d\xdd\x10\xdc\x60\x76\x9e\x9d\x1a\x53\xf6\x83\x60\xdb\xe6\x08\x36\xcf\xeb\x5f\xe5\xbe\x6d\x91\x0b\xa9\x0a\x97\xe2\xce\x6d\xc1\xd3\xf8\xac\x7a\xc1\xb2\xe9\x20\xee\x3b\x45\xdf\x87\x47\xdb\x6a\x5e\x6a\x36\xcd\x31\x32\x89\xd3\x2e\xbe\xa8\x2b\x0e\x94\x21\xa6\x03\x8a\x9b\xa7\xe4\x47\x60\x8c\xa6\x0c\x0f\x31\x0a\x95\x44\x65\x8b\x2e\x06\x53\xae\x94\x61\xf0\xdc\x3c\x4d\x7f\xd4\x59\x7c\xe9\xd6\xb7\x9b\x65\xf6\x3d\xb8\x65\x5c\xae\x35\xe8\x46\xed\xb8\x14\xe9\xcc\xec\x15\x65\x5d\xf1\xba\x95\xd6\xa5\xf3\x73\xf8\x60\x4a\xd0\xd2\x16\xd1\x7a\xf3\x78\x47\x79\x86\xd0\x5f\xda\x46\x70\x05\x4d\x19\xb4\x39\xac\x96\x81\x3b\x8e\x11\x0e\x64\x1a\xdf\x54\xc6\xee\x7e\x07\xfe\x03\x09\x3c\xb2\x53\x13\x04\xea\x31\x79\x2c\x94\xab\x9e\x3d\x69\xc3\x6e\xad\x06\x80\xb5\x25\x9c\x9e\x60\x53\xf8\x17\x9c\x85\xea\x21\x93\x8a\x66\x0b\xc5\xfd\xd4\x3a\xae\x1f\x05\x8a\x6e\x26\x50\xb4\xa6\x8b\xca\x71\x92\x6a\x0e\x77\x13\xfa\xd4\xc0\xf8\x7a\x26\x03\x0f\xbb\xee\x58\x00\x50\x59\x0a\xae\x92\x4b\x46\x2b\xa0\x1c\x77\xd2\x61\x60\xec\xe2\x86\x14\xac\xcd\x27\xa4\xd3\x5a\xdf\xe1\xca\xf5\x3a\x90\x60\xf5\x5e\xdc\x47\xb1\x2b\x06\x65\xa5\xea\x42\x64\x13\x65\x87\xe0\x9d\x03\x0a\x95\xab\xe6\x14\x4f\xe4\xfe\x84\x03\xd6\x97\x08\xec\x6a\xd1\x06\xe2\xee\xbc\xb0\xf0\xf2\x29\x8b\xe2\x82\x65\xf1\x56\x60\xd9\xfb\xc2\x0a\xcc\x2e\x9d\xc5\x6d\x98\x01\x0b\x93\x9b\x97\xe8\xa1\xbb\x23\xc2\xe5\x4e\x78\x2c\x80\x4f\x75\x85\x73\xf8\x5b\x65\x8b\x54\xeb\xa5\x79\x81\xd0\x1f\xb5\xf9\xe7\xe1\xb7\x92\x87\x59\xbd\xe8\xf2\xdc\x4d\xb5\x02\xde\x5d\xda\xba\x26\xff\x52\xc7\x3f\x7c\xed\xa3\x1c\x63\x56\x5b\x53\x8c\x0f\x7f\xf2\x11\x90\xda\xc7\x3f\x7c\xfd\xa3\x1c\x69\xec\x6a\xdd\xd6\x46\x74\x25\xae\x34\x40\xf5\x4c\xe1\x41\x16\x5f\x4d\xd2\xa1\x78\x67\xec\x91\x3a\xea\x11\x51\x77\x82\xbb\x4b\x69\xde\x0c\xc0\xfa\xa4\x30\x14\xba\x10\x80\x33\x2b\x30\x30\x22\xe9\x33\xc2\x78\x1f\x02\x75\xe4\x0b\x03\x74\xdb\xc9\xb0\xd7\x92\xa5\xc9\x11\x40\xe9\xdf\xb6\xb2\x5e\xb7\x56\x54\x34\x3f\x36\x4f\xb8\x46\x49\x07\x57\x08\xa6\xac\xd9\x92\xbf\xe0\xa7\x93\x34\x7d\x5c\xaf\x8f\x6d\x3f\xa9\xb1\xc6\xb8\xbc\x15\x67\x31\xd2\x9a\x7d\x56\x76\xc0\x3b\xb5\x13\x17\x8d\x12\xc4\xe4\xbc\x55\x34\xdc\xd2\x17\x19\x84\x5b\x82\xc3\x92\xf3\x7b\x53\x3a\x8b\x69\x45\xb8\xd8\x25\x7a\x28\x7f\xf3\x9b\xe2\x32\xc1\xb6\x04\x15\xe8\x33\x75\xba\xfc\x99\x97\x98\x96\x88\x31\xe6\x0b\xae\x0f\x8f\x47\x9a\xd0\x0f\x2f\xda\x08\xd3\x47\xc0\x52\x6c\x48\x33\x1b\xb0\xd2\xfd\x36\x0a\xa9\x91\xd2\xa7\x52\x24\x2c\x50\x91\xe2\xb2\x2f\xda\x03\xb0\x0a\x98\xf4\xf0\x22\xfd\x31\x6f\x29\xba\x2a\x59\x54\x86\x03\xaf\xd8\x13\x5a\xa3\x5b\x90\xcf\x3a\x74\x1f\xf0\x8e\xad\x0d\xe2\x28\xe6\x06\xe9\xe3\xe8\xa6\xc8\xb0\x53\x38\x31\x0f\xd7\xe8\xc0\x74\x3a\xe2\x0b\x31\x9d\x45\xaa\xd0\x85\x8e\x57\x04\x8e\x1f\x26\x60\x14\x45\xdc\xa9\x2e\x4a\x60\x77\xd4\x56\x84\xaa\xbb\xbe\x12\xc5\xcc\x5b\xbe\x69\xd6\x1a\xb4\xaa\xb0\x81\x54\x1f\x12\x0f\x32\xc4\x9d\xa4\x08\x04\x0c\xd2\x3b\xc4\x7e\x1e\xa7\xe9\x8f\x1d\x28\x74\xd8\x5c\x83\xff\xcc\x1b\xc6\xf4\x85\x1b\xa1\x27\x80\xd2\xb9\x54\x3b\xed\x22\xf9\xfd\x4f\xcc\x68\xcf\x2a\x87\x5a\x2d\x24\x42\xb8\xc4\x11\x72\x17\x5e\x09\x7b\x5d\x08\x16\xb0\xea\x45\x7b\x76\x69\x33\x0b\x42\xa6\xa5\x8a\x3c\xe9\x3f\x90\x28\x41\x42\x4f\x05\xb1\x12\x97\x0e\x7a\x9c\x95\xca\x54\x23\x2f\x39\x2e\x3c\xe1\xf9\xcd\x30\xaa\x9a\x57\xa5\xce\x32\xfa\x36\xcc\xe2\x19\xe5\x2a\x1d\x89\x47\xaa\x18\x73\xee\xcd\x34\xa9\x72\x89\x0e\xf4\x52\x0f\x6a\xdc\xc2\x03\x31\x52\xb1\x6f\xac\xf4\x9c\xed\x6b\x47\x65\x6d\x9f\x6f\x1a\xf5\x12\xbb\xe6\x01\x1b\x8c\x60\x60\x10\xc1\x79\x67\x77\x84\x1c\x81\x15\x3e\x2b\x56\x3e\xe5\x35\xc5\x78\x0d\x74\xd9\x62\x3b\x55\x9a\x2f\x27\x80\xd8\x03\x3c\x07\x60\x03\xab\x2a\x49\x7e\x88\x8a\x2a\x25\xb5\x1b\xe5\x56\xd7\x81\x6f\x6e\xe2\x7f\x95\xee\xf8\x6f\x53\xfe\xea\xcf\x82\xbe\x45\xb6\xf0\x53\x7a\x92\x11\xe8\x22\x80\x43\xb2\x38\x1f\x76\x01\x53\x01\xb1\x28\x3f\x61\x10\xc3\x7e\xa7\x61\xcb\xc0\xc5\x06\x72\x8a\xe4\x80\xdc\x91\x83\x6f\xe8\x9b\xdc\x5c\x9a\xe6\x7a\xdc\x8e\x86\x39\xca\x38\x04\x87\x6c\x01\x04\x70\x26\x0e\x45\xe2\xab\x71\xdf\x34\x8f\xbe\xed\x6e\xfe\xc7\xe6\xc7\xa6\xf5\x48\xa0\x47\x69\x8d\xd6\xe3\x62\x1b\xf5\xf2\x05\xb4\xc7\xcb\xca\x22\xbd\xfc\x0d\x97\xcc\x00\x78\xfb\x2a\xf5\xf0\x2a\xd2\x1a\x1d\x81\xbd\x7f\x41\x0f\x02\x81\x65\x15\x3d\x4e\xc8\x15\x78\xe8\x12\x04\x34\x78\x33\xd1\xa4\x00\x0d\x04\x54\x2f\x86\x2e\x89\x3c\xe9\x08\xe0\xcf\x19\x0f\xbc\x89\xc1\xf8\x34\xa0\xa7\xdf\x00\xda\xa0\x82\x7e\xff\xba\x79\xaf\x9b\xa7\xa6\x84\x98\xe0\x5e\xf8\xcd\x8f\x6b\x1d\x6a\xff\xbb\x8f\xcc\xc9\x04\x66\xa9\xe5\x82\xe6\x80\xd0\x07\x09\x52\xb7\x70\x58\xce\x61\x4b\xa0\x14\x25\x2f\x83\x13\x31\x80\x34\xfa\x42\x5d\x41\x88\x03\x38\x43\x34\xb7\xe6\x45\x96\x86\xf1\x6b\xb1\xfd\x70\xf7\x18\xa6\x34\x88\x33\xd4\x14\xc9\x4a\x43\x39\xce\x3b\xd2\xf0\x97\xad\x79\x9e\xfe\xb8\xa7\x49\x3e\x5c\xae\x34\x6a\x2c\x3a\x64\x7d\x3d\x83\x0e\xdd\x02\x50\xcc\x11\xdc\x19\xb2\x7d\x39\x03\xbf\x8d\x66\x39\xdc\x14\x97\x54\x1d\x20\x03\x60\xcc\x1a\xe8\x60\x25\x14\xd7\xc2\xe6\xe0\x1c\xfc\x81\x03\xc6\x6a\x91\x42\x92\x86\xc1\x3b\xfe\xdf\xd3\x21\x29\x5a\xf4\xa4\xf1\xfb\x6a\x69\xe6\x2a\x0d\xac\x94\xdb\x2a\xa9\xd1\xc2\x0d\x9f\x28\x66\x37\xad\x6f\x6d\x41\x77\x0f\x2f\x29\x9a\x70\x74\x93\x76\x91\x9b\xfb\xa6\x65\x45\xf5\x3d\x8a\xec\x5e\x36\x77\xc8\xe2\x4e\x94\xfa\x2a\x4c\x00\x04\x0b\x94\x76\x71\x95\xf2\xb4\x0b\xe4\x40\x52\xf8\x5b\xe9\x43\x01\xda\xd6\xd2\x6d\x74\x85\x8d\x24\x96\xba\x10\x6f\xbb\xc2\x1c\xe7\xab\x2b\x45\x60\xca\xdd\xf9\xe8\xc9\x0f\x34\xf5\x5e\xfe\xde\xd1\x82\x1a\x8c\xd6\xe2\xf6\x9b\xb6\x60\xb3\x5b\xc4\x6e\x01\xcc\xc4\x8d\xc7\xdf\x95\xde\x9b\xe1\x6e\x35\xf9\xed\xcf\x04\x90\xd4\x3a\xc2\x49\x58\x3c\x81\x43\xf6\x3b\xae\x98\xa4\x55\x16\xf3\x22\xc1\x73\x7e\xe3\x1e\x14\x0b\x2f\x0a\x13\x3f\x14\xa4\xd0\x7b\x2f\x66\x58\x79\x3b\x4b\x06\x6c\xae\xe5\x7e\xd4\x93\x3d\x03\x33\x3d\x83\x8d\xbf\xac\xd3\x97\xbd\x52\x9a\x5e\x1c\x65\x2c\x92\xf2\xde\x9b\x74\x0e\xd2\x50\x8b\x6f\x04\xb5\x47\x26\x53\xfc\x8c\x00\x5f\x8a\xae\xa8\xde\x90\xe0\xbc\x3a\xb1\x03\xad\xad\xf6\x7a\xab\x9d\xce\x89\xd0\x7c\x0d\x72\x37\x13\x66\x85\xb0\xb9\x9e\x22\x4d\x28\x5f\x75\xa7\x21\x22\xb4\xde\x81\xff\x6a\x16\x0d\xbf\x3b\xdb\xf3\x01\xa2\xb6\x18\xd5\xd6\xaa\x63\x57\x8c\xf0\xb6\xb3\x65\x39\x82\xaf\x74\xd0\x8d\xd5\x36\x99\x89\xad\xf3\x7d\x42\xe3\xe9\xd2\x34\x7c\xea\xd5\xf9\x22\xe4\xda\x79\xfa\x33\x7b\x6c\xbc\x04\x42\x8b\x20\xe8\xe9\xd5\xac\x06\x52\xc5\xb3\xd6\xc2\xd0\x7b\x76\x39\xad\x09\x5f\xa0\x5c\xd5\x80\xcf\xf6\xec\x1a\xed\x21\xfa\x72\x20\x21\xd2\xfa\xae\x1d\x9f\x9c\xe7\x19\x66\x7b\xa1\xbe\xab\x5b\x6f\xe6\xc9\xe4\x70\x65\xa6\x73\xb2\x5f\xeb\x8f\x0d\x3e\xdf\xa4\x18\x79\xae\xf5\xfc\xe6\xa3\x93\xef\x20\x65\x7b\x5e\x6c\x85\x08\xc9\xc3\x89\x64\xc3\xd1\x2a\x34\x53\x69\x2b\x4d\xaf\xe4\x46\x9e\x5f\x49\x9d\x43\x5e\x63\x65\x0f\x61\x42\xc8\xa6\x85\xcd\xa4\xe0\x46\x30\x6b\x27\x26\x25\x2a\x8d\x19\xc8\xad\xa4\xed\xe4\xe5\x76\x3c\x2c\x75\x22\xa6\x52\x66\x54\xa7\x72\x07\x4f\x4e\xd6\xfa\x39\xc9\x30\xef\x52\xd1\xeb\xd6\x4e\xee\x88\x95\xb9\xa6\x34\xc7\x49\xb8\x5b\xc9\x00\x43\x3a\x3c\x13\x37\xc1\x14\x17\xff\x69\x67\x68\x73\x9c\xce\xfd\xe5\x66\x07\x60\x54\xa9\xb9\xf1\x08\xd8\x32\x81\x4d\xbf\x5c\x63\xaf\xad\x74\x1b\x71\xcd\x95\x5c\x0e\x17\x9e\x23\xc0\x69\x8e\x4a\xae\xe1\x34\x5e\x00\x55\x9a\x6f\x70\x7a\x8d\x52\x00\x26\x93\x11\x29\x10\x0b\xc0\x9a\x5a\x55\x5a\x32\x46\xd3\x7e\x73\x75\x1a\x46\xed\x2f\xcb\x06\x61\x35\x61\x1a\xbe\x32\x3e\x4f\x35\x01\x0d\x1f\x52\x4c\x34\x6c\xa0\x1c\xd8\xdc\xce\x62\x32\x3b\x7d\xaf\x99\x08\x65\xbc\xa7\x18\x77\x48\x4a\xe5\x6c\xfe\x83\xfa\xd4\xef\x4b\x1e\xdf\xd5\x38\x76\xc6\x96\x41\x7a\xaf\x04\xd4\xdb\x2b\x3b\x27\x95\x92\xe8\x92\x9b\xb5\x3d\x94\xc1\x28\x2a\x73\xcc\xb3\x2a\xf5\x65\x43\x7e\x4f\x26\x17\x53\x2f\x8f\x5c\xc8\x56\x36\xbc\x4f\xff\x76\xed\x6b\x65\x73\xce\xf2\xa8\x47\x18\x52\xfb\x70\xe2\xe6\x2d\x15\x8f\x88\x9a\x40\x69\x6e\xac\xbe\x11\x45\x27\x65\xdf\x0c\xeb\x7b\x6b\xe3\x84\x85\x0e\x29\xa5\x85\x04\x70\xd6\x7a\xad\xb9\xaa\x90\xac\xa3\x73\xcf\xa2\x3a\xb6\x5b\x4e\x36\x14\x6c\x9f\xa2\xed\x23\xfe\x09\x00\x6d\x27\xb9\x9a\x74\x86\x51\x97\xb2\x06\xce\x6c\xf6\x27\x6e\xb3\x00\x7b\xc9\xa4\xa7\xb6\xe9\xbe\xa6\x49\xc4\xca\x19\x68\x3c\x28\x03\xe0\xfb\x04\xd0\x8e\x08\x8c\x89\x6c\x8e\xb9\x46\x1e\xec\x18\xf1\x81\x08\x64\x84\x62\xa4\xd0\x87\xca\x84\x39\xf2\x70\x06\x23\x04\xb4\x2a\x66\x22\xc8\xd0\xae\x6f\x54\xf7\xdc\x5d\x29\x82\x14\x96\xd0\xd5\x86\xad\xa7\x4f\x5d\xb8\xf0\xfe\x65\x6b\xc7\x0c\x18\x1a\x98\x5e\x18\x78\xf5\x08\x7a\x2b\x54\x6a\x8e\x16\x8b\x54\xc9\x7d\x16\xb9\x77\x34\x32\x24\x36\x37\xdb\x61\xfe\x58\xf3\x10\x16\x0c\xad\xc0\xe4\xda\xdd\x61\x07\xbf\x22\x48\x47\xb6\x63\x45\x30\xe1\x8a\x91\x19\xd3\xba\xba\x66\xee\x16\xfb\xa4\xfe\xaa\x96\x86\x4a\x96\x4b\x38\xfd\xb3\x95\x9e\x15\x71\x10\x18\x70\x68\xc5\xda\xc6\x1a\x1b\x35\x64\x04\x7a\x31\x1e\x9c\x18\xe8\xd7\x0e\x4a\x92\xa3\x0d\xa6\x76\x18\xef\xce\xeb\xf4\x27\xf5\x9d\xb2\x41\x6f\xa8\x57\x6d\x62\x0f\x64\x20\xae\x1c\x82\x1d\x55\x24\xbd\x59\x9b\x41\x9d\xbd\xce\x9d\xb9\x54\xc3\x95\x38\x1e\x38\x3d\xf8\x83\xb7\x66\x18\x8c\x3a\xac\x01\x73\x60\x8b\x88\x09\xa5\x85\x52\x70\xec\x88\xd5\xaa\x43\x6a\xb3\xc2\x82\xd4\x18\x2e\x56\xf0\x7d\x20\x22\x48\xf5\xce\x88\xb8\xd7\xf1\x8f\xde\x2d\x4b\x7e\x4d\x25\x94\x2f\xb5\x2c\x8a\x43\xd3\x59\x71\xc7\x31\x4e\xda\x0e\x9a\xa2\x1c\x97\xd5\x0e\xd9\x29\xa6\xe3\x4a\x98\x9d\x84\x36\x55\x23\xf3\x03\x37\x12\xae\xef\xf6\xe9\xf4\x56\x9e\x9f\xef\x2f\x50\x97\x93\xaf\xea\x27\x60\x1a\x40\xb7\x45\xf7\x6e\xd4\xc5\x0c\x10\xec\x45\x38\xdd\xda\x7d\x8e\x66\xb4\x54\x76\x66\x9d\xe5\xbd\xea\x37\xeb\x4e\x90\x0f\x78\x4d\xc3\xf7\xdd\x5a\xd6\x4d\xd3\x8b\x88\x60\x4f\x1e\x06\x6f\x4d\x28\x1e\x64\x8b\xd3\x02\xd5\xc6\xc9\xaf\xda\x3f\x02\xa2\x11\x77\x4e\x8a\x66\x19\x22\x27\x56\x94\x29\x85\xd6\x8e\x26\x28\x21\x2b\xc1\x8d\xf1\xa3\x78\x9b\x79\x01\xd1\x9d\x55\xe1\xe4\xf1\x13\xce\x1a\xa8\x29\xe2\xbd\xca\xba\x37\x4a\x0b\xbf\x1d\xaf\x23\x95\x5b\xdd\xbd\xbf\xe2\x0f\x65\x92\x9a\xb1\xbb\x7c\xcc\x95\x9c\x47\x8e\xc0\x7e\x1b\x83\x58\x2b\x0a\x13\xc2\x47\x70\xcc\x91\x0f\x25\x55\xaf\xf8\x21\x4e\x74\x5e\x4c\x9d\x9d\xb3\x1a\xdb\x44\xa7\x4c\x1d\xeb\x2c\x55\xec\x11\x71\x28\xba\xdf\x43\x26\xc2\x8e\x24\xda\xa3\xdc\xc4\x89\xf5\x23\x27\xf2\xf1\x16\x99\xba\x3e\xe5\x90\x86\x92\x5d\xee\xde\xbc\x46\x89\xca\x1f\x95\xdc\xd2\xfd\xe6\x0e\x2a\x09\x47\x70\x5a\x9c\x15\x90\x53\x86\x5c\x7c\x7f\xed\xb2\xc9\xf4\x62\x7d\xf7\xb4\x44\x7d\x62\x22\x27\x69\xd7\xc2\x0f\x2e\x9d\x23\x4a\x86\x55\xf6\x37\x58\x23\x44\x07\x0c\x6d\x86\x94\x6b\x85\xbb\xab\x9d\xfd\xf1\xe2\xcf\xb6\xad\xfc\x43\xc0\xca\x50\x02\x62\xe8\xfd\x13\x67\x7b\xb3\xc5\x72\x1a\xac\x1a\x42\x38\xcd\xea\x61\x28\x97\xac\x32\xa6\x52\x62\x26\x5b\x4a\xc8\x16\x3e\x43\x2b\x09\xe2\x6e\x25\x56\x67\xb3\x38\xd3\xfa\x21\xe8\xeb\x2d\xa3\x9d\xcb\x9d\x96\x5b\x6a\x68\x51\x98\x91\x7f\x05\x4a\xe4\x03\x24\xd4\xa0\x08\xff\x08\x94\x61\xb9\x45\xde\x7c\x8f\xff\x06\x4a\x0c\x38\x09\x45\x53\x92\x51\x04\x4a\xac\xa7\x9d\x9d\xe6\xdb\xf0\x5f\x80\x21\xe5\xa5\x46\x12\xe6\x3d\xba\x83\x28\x3b\x1c\x60\x84\x4b\x4e\x56\x8d\x1f\x60\x9d\xe3\xee\xc6\x0a\x2d\x21\x0a\x39\x51\x6c\xa1\x48\x7c\x8c\x58\x37\x1f\x0e\x06\x69\x86\x0b\xc2\x97\x98\x34\x89\x31\x70\x71\x24\x02\x02\x4a\xd0\x15\x06\x4b\x9e\x6c\x43\x80\x79\x34\x90\x0c\x89\x74\x67\x3c\xac\xb3\x4c\x84\xd2\xfa\x93\x7c\x89\xd3\x63\xad\x20\x85\x81\xd2\x19\xad\x2c\xd7\x74\xc8\x80\x53\x5f\xc5\x9d\x86\x3a\x17\x47\x57\x91\x38\xd3\x45\x60\x10\x38\x74\x34\xe6\x74\x9d\x8c\x24\x3d\x1c\x1f\x32\x5a\xac\xc0\x80\xfa\xc1\xdc\x1d\xb8\x5e\x27\xa2\x40\x71\x13\x64\x41\x1b\x1d\x7f\x26\x50\xdd\x09\x4e\x67\x92\x28\x54\x50\xa1\x90\x26\xd2\x58\x95\xdd\x7e\xcf\xbf\x3a\x0e\xd8\x15\x5e\xe9\x9b\xb9\x20\x85\xb5\x0d\x08\x58\xb4\xb2\x41\xe8\x17\x1f\x5c\x31\xb8\xa3\x7c\x52\xe4\x2d\xc0\x29\xfe\xcb\x41\x88\xc8\xbd\xfc\xc8\x03\x6c\xe2\x5e\xfe\x8d\x01\x34\x53\x1b\x0b\xd2\x76\xc2\x8b\x61\x1b\xbb\xb1\xa2\x23\x85\x4f\x6d\x2e\x3f\x8e\xf8\xf5\xc0\xfa\xec\xed\x99\xf0\x21\x13\x93\x10\x99\x11\x98\xd5\x36\xbe\xfc\x5f\xd6\xde\xbf\xb0\x22\xd3\xfc\x64\x75\x7b\x7b\x7b\x15\x4f\xdf\xea\x30\xeb\xc6\x7d\x7c\xd9\x91\x79\x43\x99\xb8\x77\x92\xdc\xb1\x1b\x93\x47\x8d\x37\x5f\x85\xa7\x57\x24\x10\xb9\x43\x6b\x4d\xdc\x24\xe7\xd5\x25\xc0\x97\x0e\x50\x3d\xd4\x06\xa1\x38\x9d\x1f\x0b\x54\xcb\x30\x55\x2e\x7b\x6b\x38\x27\xe5\x8c\x4b\x9a\xe1\x61\xf4\xdc\x60\xfc\x34\x02\x12\x01\xdd\x95\x77\xe5\x71\x3b\x83\x21\xaf\xd1\x1f\xf7\x7d\x37\x6a\x5f\xb1\xe1\x29\x3f\x90\x1f\x95\x12\x09\xf4\x4a\x43\x3c\x0b\x3f\xf0\xec\x54\x4a\xb0\x8a\xfe\x34\xfe\xef\x7c\x43\xcd\x62\x61\x4c\xe1\x05\xe3\xed\xeb\x88\x46\xce\xf9\xb2\x72\x04\x8d\x18\x26\x7e\x9e\x12\x59\x13\x3c\x64\xb7\xb4\xd2\xfd\xad\x4a\x4f\x64\x75\x9e\xf6\xbb\x3b\x3a\x56\x2d\x67\xc3\x93\x93\x83\x5f\xf5\x05\xf1\xf0\xf6\x5e\xa3\xd2\x12\x25\x1a\xb3\x1c\x63\xf3\xac\x42\xa7\x25\xc3\xae\xda\x2f\xae\xff\x65\xa9\x0d\x0e\x0b\xd9\x3c\x17\x17\xaa\x87\x2c\x0e\x3e\xa9\xed\x2d\x60\xaa\xb8\xb5\x40\x0d\x57\x6b\x50\xf3\x95\x97\xf3\x6d\x52\xe0\xae\xa0\x9b\x48\x11\x6d\x6a\xb9\x7a\x70\x41\x9a\x17\xe1\xbf\xf0\x52\x19\x5c\x81\x4f\x04\x52\x1d\x7e\xcb\x05\x4a\x04\xa6\xdd\x10\xca\x7b\x18\xe4\xb8\xf4\x5d\xeb\x9b\xce\xc4\x05\x86\xd6\x83\xa6\x36\xa3\x8c\x38\x6a\x61\xbf\x11\xb2\x6f\x25\x6d\xe8\x29\x4b\x36\x37\x09\x25\x19\x74\xa0\x41\xbe\x20\x7b\x64\x3e\x8d\xa7\xb6\x07\x1c\x09\x32\xbe\x00\x13\xa0\x91\x66\x15\x24\x1b\xea\xf6\x6e\x55\xd4\x1b\x20\x6a\xa4\x96\xd7\xbf\x26\x26\xca\xdc\x63\x80\x51\x36\xbd\x55\xc2\x10\xff\xc9\x42\x68\x36\x2c\x6c\xc9\x92\x51\x14\xec\x6f\x85\xa1\xdb\xb5\x6c\xe1\xc8\xb1\x9d\x1f\x97\x28\x76\xdf\x9b\xee\xb9\x8f\xdf\x02\xd0\x07\x37\x80\x2f\xbc\x83\xa0\x2a\xac\xdd\x58\x92\x1b\x1b\xcf\x3c\x8a\x91\x57\x32\x32\xc2\x56\x38\x82\xd4\xae\x8e\x0f\x1e\x16\xf7\x35\x2a\xc0\x86\x23\x21\x5c\xe6\x08\x1d\xa5\x6f\x9d\xb4\x17\x25\x12\x30\xe7\xa0\x74\x4c\x05\x54\x6d\x45\xfd\x3e\x5a\x21\xff\x9e\x50\x0c\x6c\x85\xb7\x59\x83\x6e\xba\x23\xa1\xc8\x7e\xaf\xc3\x72\xe9\xfc\x4d\x2c\x42\x14\x10\xa4\x3d\x33\xbc\xc5\xb1\xf5\x9b\xa7\x3a\x1d\x75\x86\x1e\xd5\x7f\x8d\xdd\xdb\x44\xde\x41\xb6\x1b\x14\xf2\xa1\x41\x16\x2a\xa6\xa0\x09\x3c\xf9\x7d\x14\x5c\x51\x4d\x28\xe1\x09\x1e\x5c\x95\x61\x60\xd0\x86\x56\x39\xcd\x7f\x9d\x42\x7e\x10\xac\x33\xa6\x79\x43\x51\x19\x82\x58\xd4\x62\x5e\x4d\x1b\xec\xca\xa9\xb9\x0d\x34\x0d\x0b\x87\xf0\x33\x35\xa0\x6d\x44\xc8\xf5\xc7\x6f\xa6\x1c\x8d\x0a\xb5\xc5\x76\x96\x25\xd5\x18\x2f\x44\x1d\x49\xee\x4c\xb8\xcc\x8c\x04\x57\x3c\x50\xbe\xca\x92\x74\xdc\x89\xcd\x89\x70\x81\xfa\xc5\x92\x78\x6a\x21\xae\x24\x34\x10\xbd\x1e\xce\xc2\xce\xd7\x9c\x75\x92\x8d\x8d\xc6\x7a\x96\x6e\xe7\x18\xcd\x68\x98\xb5\x4d\x78\x76\xe3\x6f\xe3\x7b\xda\x88\x9a\x80\x72\x4f\x52\x68\x06\x6c\x00\x2d\x84\xfa\x64\xd7\xe6\x84\x83\x43\x4b\x35\xfa\xca\x06\x06\xcd\xc9\x7d\xfa\x2b\x2f\xc9\x1e\x83\xec\x0c\x6c\xe8\xdf\xaf\x1d\x5a\xed\x0c\x14\xb2\x0e\xc0\x26\x04\x0a\x7c\x6c\x48\x0b\xf9\x56\xba\xdd\xc2\x5f\x14\xed\x29\xaf\x66\x07\xd7\x4e\x7d\xda\xd7\x84\xe2\x1e\x63\xbb\xba\x01\xac\xc6\xfb\xa7\xf1\x31\x46\x43\x9c\x8c\xcb\xa6\x2f\xc8\x9f\x6b\x4f\x70\x80\xa1\x56\xba\x8c\xc0\x48\x7e\x63\xc5\x12\xf6\x98\x1c\x39\xf1\x34\xc6\x6e\x49\x4f\xe2\x65\x4b\xe9\xed\x00\xb8\xf3\xf6\xd9\x0b\xf2\x44\x5e\x50\x6e\xdc\xfc\xb2\x23\x94\x1e\x1a\xa7\xec\x23\x39\x68\xa3\xc6\x1d\x4b\x7f\x66\xef\x3d\xfa\xed\x0a\x1d\x09\x6e\x52\x61\x5b\xb4\x93\x45\x1b\xb0\x77\xff\x3c\xd1\xb9\x8c\x76\xd9\xd9\x4a\x7f\x07\xd6\xca\xb4\xa4\x8d\xb6\x03\xcd\xc0\x5a\x73\x74\x67\x22\xf9\x1f\x4c\x9c\x70\xc0\xb6\xd0\x5c\xe3\x48\x5d\x30\x42\xee\xb7\x69\x17\xd4\x59\xe7\x92\x57\x16\xa6\x9d\x13\x17\x85\xb1\x71\x01\x73\x03\xb9\xda\xc1\xe2\x69\x36\xc3\xa5\xab\xa0\x13\xb0\xda\xe3\xaf\x83\xd9\xc1\x83\x2d\x0c\x84\x93\x1f\xee\x83\x70\x96\xdb\x9c\x90\xfa\x9c\x69\xc3\x9d\x08\x56\xad\x8d\x81\x50\xeb\xd7\x48\xed\xaf\x18\x6f\x68\x1b\xc8\x48\x02\x10\x19\xa2\xa5\x51\x39\x11\xda\x52\xb6\xcc\xb4\x86\x97\x41\x33\x09\x08\xa0\x5b\xbd\x4e\x30\x3c\x60\x05\x23\x9f\x8f\xb2\x2b\x9d\x74\xbb\xcf\xc6\xbe\xba\xa9\xed\x8c\xd4\xcb\x9c\xe6\x9c\xc2\xb3\x78\x67\x08\x4f\xb9\x39\x40\xb4\xe1\xd7\x3c\x0e\xcb\x49\x97\x60\xce\x7f\x75\x9c\x9e\xbf\xd2\xb7\xd2\xd5\x17\x7a\x3d\x49\x4d\xb7\x4a\x13\x26\xdd\x9e\x3b\x04\x64\x9e\x28\x03\x87\x0d\x75\x8e\x11\xcc\x46\xe4\xe4\x54\x3d\xeb\x5e\x18\x36\x23\x21\x0c\x0f\x3b\x74\x1d\x9c\x96\x64\xfb\xff\x2a\xfe\xb7\x6b\xff\x0b\x95\x4e\x69\x02\x60\x3f\x1d\xa2\xc6\x84\xd4\x26\x84\x1c\x58\xbb\xc1\x96\x99\x6a\x90\xa5\x9d\x61\x1b\x61\xfe\x2a\x21\x49\x77\x84\xa8\xd7\x00\x52\x9d\x4c\x1c\x24\x96\xa4\x70\x92\x8e\xc6\xba\x7c\x37\x81\x68\x68\xc9\x3d\x47\xbb\x07\xa3\xdf\xe5\x1a\x9f\xd7\x5d\x7d\x92\xc7\x98\xcb\x5f\x7b\x6d\x83\x7d\xea\x3b\xd3\x12\x44\xaf\x73\xd1\x18\x70\x65\xae\xe9\x98\x73\x6b\x3a\x91\x2e\xe5\x7a\xcd\x09\x79\xb9\xbc\xf4\x61\x9a\x6d\x7e\xe4\x24\x15\x74\x0f\xc6\xfc\x84\x82\x6e\xc5\x45\xa2\xf3\x04\x5b\x79\x5a\x8a\xcd\xa3\x6c\xb8\xbf\x52\x74\x9e\x86\x71\xad\xa6\x8c\x50\x25\x6f\xea\x40\x46\x12\x8c\x0a\x42\x4e\xca\xe2\x0d\x54\x65\x3f\x80\x73\x67\x6b\x25\x1c\x39\xe6\xb3\x1e\x53\x26\xb4\x04\x15\x5c\x69\x2f\x26\xab\x10\xce\x82\xf2\x90\x7c\x02\x74\xaa\x66\x3a\x30\x0f\x2b\x57\x05\x53\x10\x1a\xc3\x51\x93\x99\x96\xb2\xde\x88\xc6\x22\xe7\x9c\x2c\x23\x49\x89\x29\xa9\x6f\xb8\xc4\x42\x49\x76\x1c\xe7\x72\xec\xad\xb2\x0c\x8c\xaa\x48\xda\xe2\x0e\xe3\x26\xef\x55\x4d\x6c\x1c\x27\x75\xe2\xbc\x34\xbb\x54\x74\x5e\x33\x2e\xc0\x76\xac\x04\x2a\x79\x1c\x27\xe5\xe0\x33\x26\x57\xa0\x89\xb7\xee\x9e\x82\x43\x47\x7e\xa1\x91\x8c\x93\x87\x72\x57\x89\xb9\x8a\x6b\xda\x3b\x6e\x38\x63\x36\x90\x64\x8b\xad\xee\x08\x74\xe0\x57\x22\x3d\xa3\x75\x80\x29\x6f\x49\x71\xd4\x6c\x27\x79\x6e\xed\xf9\xc9\x8e\x62\x22\x99\xd3\xdd\x40\x44\xcc\xb0\x4c\x9d\x00\xbc\x12\xf1\x6f\x52\x4d\xc8\x77\xb3\x6e\xf4\x6f\xd5\xc5\x9d\xc1\xfd\xd0\x57\xfb\x68\xee\x8d\x54\x0b\x24\x36\x7a\xf1\x50\x34\x33\xbb\x9a\x13\x80\xe6\xcf\x60\x77\xe6\xa4\xac\xb9\x27\x92\x45\x9b\x56\xd2\x97\xd9\xb3\x81\xd6\xfd\x8a\x25\xd6\x82\xa9\x6c\xfe\x4c\x96\x5b\x7e\xed\x7a\x0d\xf9\x38\x08\xb5\x6c\xa2\xd6\xf1\xbc\xbc\x37\x04\x13\xcb\x06\x63\x70\xcf\x7f\x8c\xbd\x98\x6b\xdc\x12\x90\xe4\x94\x92\x81\xbc\xef\x99\xc2\xd0\x37\x25\x55\x1c\x2e\x97\xc1\xaf\xc7\x5a\xcd\xb7\x77\xaa\x83\xe8\x65\x69\x4f\x4d\x4c\x41\xa4\x3c\xd0\x30\x6c\xc1\x56\x4a\xd9\x7e\x4a\x01\x06\xc9\x33\x4c\xf4\xab\xf0\xbf\x98\x90\x95\xd3\x1a\xda\x54\x37\xa1\x3e\x2b\x91\x06\x1b\xaa\xd6\x0e\x60\x66\xdc\xc0\xd9\xf6\x00\xd2\x00\x42\xfb\xba\xe0\x81\x35\xc9\xbb\x42\x4d\xb8\x71\x04\x83\xd3\xba\x3d\x27\x84\xa0\x3f\xe1\xc9\x3f\xba\xd1\x03\xe1\xd3\xf4\xd7\xab\xa2\x6a\x39\xd4\x64\x62\x20\xc8\x73\x40\xf3\x6d\x45\x61\x12\xec\xff\x85\xa5\x7b\x2b\x8e\xc2\x84\x89\x67\x27\x90\x2b\xf2\x06\x4f\xac\xfc\xdb\x8d\x21\x6b\x82\x43\xd2\xcc\x90\xf1\x75\x65\x69\x44\xd2\x38\xcc\x16\x85\xff\x77\xa0\xfe\xdf\xeb\x9c\xc4\x13\x1d\x83\x49\x08\x03\x26\x4c\xdb\x81\x08\xe7\xe5\x22\x06\xbb\xde\xd7\x61\x55\xf9\xc0\x33\xa1\xc2\xfa\x32\x0a\xcf\xe6\x54\x64\x03\xa4\x66\xa5\xcc\xd3\x4a\x99\xfa\xd6\x4b\x29\xd2\x6c\xcd\x3a\x4f\x4c\xfd\x5d\x1b\x6b\x94\x28\x1f\x5b\x00\x0e\x7f\x3b\xc6\x90\x6d\xf7\xdd\x78\x06\xfa\x2b\x4b\x87\x2a\x2e\x7e\xfa\x33\x50\xcb\x57\x63\x2d\xda\x30\x29\x3c\xed\x77\xa1\xe7\x8c\x6a\x84\x4c\x0e\x4d\xb2\x44\x13\x9e\x9f\xa5\xa9\xb3\xd3\x7b\x3b\x89\x1f\x9e\x87\xa8\x42\xcf\xd0\xe6\x73\x73\x0f\x8e\xe7\x6f\x54\x86\xd3\x4f\xb7\x03\xa4\x25\x6b\x6b\x10\xf4\xd0\x4a\x51\x4e\x4a\xa4\x29\x1b\xe8\x66\xca\x9e\x4b\xff\x63\x62\x52\x34\xf2\x3c\xb9\x80\xac\x02\x72\xc8\x12\x52\x85\xdf\x23\xeb\x20\xc1\x9e\x9b\x6e\x94\x66\xd1\x5b\x52\xd6\x0d\x97\x7e\xf3\x6a\x98\xb3\x20\x00\xc0\x8d\x08\x34\xaa\x0b\x7c\x5c\xca\x23\xe5\x1a\xe4\x32\x67\xca\x9e\x8f\x63\x1b\x47\x6b\x1c\x08\x6c\x35\x35\x69\x58\x83\xa2\x6a\x4d\xd6\xe5\xcc\x35\xd7\xcf\xd0\x8d\x76\x1a\xaa\xb2\xf8\x14\x25\x0e\xb8\x0d\x97\x33\x36\x89\x8f\x25\xd7\xd9\xdc\x41\x57\xb2\xfb\x51\x10\x75\xf6\xc8\x34\xf1\xb1\x5c\x17\x55\x22\xa2\x78\xd0\xe4\x17\x1d\x9e\xe7\x0c\x03\xe7\x50\xed\x3f\xe7\xae\xee\x5a\xd3\x3a\x09\xd3\x89\xfa\x2d\x72\x3f\x24\x82\x7c\xcf\x4a\x90\x2a\x86\x80\xd3\xcf\x02\xd9\x0e\x8d\x78\x50\x9a\xf3\x12\x2b\xd1\x06\x38\x3e\x07\xcc\xb7\x53\x44\x6d\x49\x34\x6b\x96\xcb\xc4\x05\x93\x49\x9a\x5c\xf0\x3a\x69\xab\x50\xd5\xe1\xa0\x61\xdc\xc6\x4c\xda\x95\x8b\xb0\x91\x6f\x95\x5b\xb8\xe3\xdb\x88\x53\x68\x59\x5a\xcc\xaf\x74\xb6\xc0\x9a\xd8\xe0\x98\x1a\xc4\x43\x30\x35\x59\x80\x31\x0e\xbe\x27\x3b\x75\xda\x37\x0d\x2c\x66\x04\xef\x34\x13\xa4\xf4\xcd\x9a\x1a\x16\xf6\x9f\xad\xa9\x9b\x97\x63\x5f\x73\x42\xa2\x53\x77\x17\xea\x4f\xa2\xa8\xb9\xaa\x8e\x5c\x4d\xec\x6e\xd5\x26\x1e\x09\x2e\x3b\x8a\x9b\x33\x47\x81\x8a\x11\x62\xef\x34\x4a\x2a\x27\x7b\x20\x41\x9f\x85\xdc\x0b\x4f\xcf\x19\x63\x99\xec\x92\xe9\x2d\x3a\x44\xb7\x25\xef\x04\xd7\x5e\x53\x9f\xea\x5a\x38\x4e\xb3\x72\xb6\xd1\xd2\x27\xee\x84\x5d\x73\xc7\xe7\x6c\x42\x02\x5f\x6f\x1b\xb3\x47\x2f\xa4\x7d\x25\x8f\x73\xed\xb1\x6d\x84\xa6\x6a\x98\x24\x2f\x93\x76\x65\xce\x0b\x38\xaf\x37\x3c\x44\x56\xb9\x99\xe1\xd5\xd4\xf2\x49\x9d\x0d\xdd\x18\x8f\x96\x26\x8a\xdd\x99\xeb\xf5\xcf\x16\x79\x9a\x3b\xf4\x86\x67\x43\xea\x2e\xe0\x9f\x80\xff\xc2\x58\xa4\x24\x3a\x28\x61\xc2\xff\x97\x13\x76\x44\xd3\x0b\x4c\x78\xe2\x1b\x98\x92\x55\x4f\x10\x5d\x04\x24\x39\x73\x90\x3e\xa3\xb3\xf2\x54\x2f\x1b\x71\xce\x66\x46\xde\xea\x7a\xe0\xa7\xb0\xb8\x05\x73\x8c\x06\xdf\x50\x02\xcf\xc8\x32\x0f\x0f\x0b\x39\x9a\xaf\x68\x0b\x8d\x15\xb6\x8a\xec\x74\x7c\xd7\x03\xcd\x27\x63\x3f\x27\x1c\xad\x64\x42\x7e\xa9\xfa\xe4\xcd\x95\xe4\x2d\x0e\x5a\x0c\xcc\xb2\x0a\xd0\x40\x0e\xb7\x1a\x37\xab\x45\x3b\x11\x2b\x6d\x71\x78\xf2\x09\x6d\x3b\x8c\x7e\xda\x67\x6d\x73\x5f\xc7\x9a\xbc\xa3\x53\xb1\x3f\x70\xcf\x10\x91\xd6\x64\x49\x47\x92\xe7\x1b\x0b\xc6\x9d\x0c\xa7\x76\x53\xe2\x91\xc7\x29\xea\x47\x4e\xde\x06\x4f\xa7\xc3\xf2\x6c\x3a\x18\x1f\x2d\x2f\x75\xa2\x7c\x6b\x3d\x8d\x24\x63\xf6\xe4\x50\x9b\x85\xdf\x2c\x27\x3a\x41\x6c\x8f\x56\x59\x79\x8d\x2d\xb9\x48\xb9\x8d\x90\xa3\x3e\xf7\xf5\x62\x39\xd2\x87\x70\x76\xfa\x45\xa2\xc5\x51\xbf\x0a\x47\x60\x26\x69\xc0\x66\x90\xee\x10\x2f\x10\xe4\x95\x58\x69\x8b\x59\xef\x25\xf8\x40\xd0\x84\x1b\x58\x8f\xb4\x9f\x90\x67\xc0\x37\x02\x63\x74\x8f\x87\x93\x87\x18\x13\x32\xcb\x8b\xd6\x00\x43\x2b\xfe\x14\x7f\x4a\xba\x23\x7a\x71\x2e\xc2\xe7\x22\x2d\x80\x39\xbb\x8c\xff\xbf\xa1\x8e\x77\x48\x29\xae\xd7\x97\x54\xc4\x70\x24\x90\x73\xbd\x5f\x56\x26\x93\xf6\xdb\x94\xb4\xa6\xab\x2c\x3b\xb6\x19\x32\xc7\x5e\x83\x3b\x70\xc0\x7a\xa4\xb1\xc6\x30\x57\xd2\x28\xc2\x78\x45\x4c\x92\x99\xb3\x30\x5a\x04\x73\xec\xac\x46\xc1\xc1\xb5\xd0\xda\x99\xc2\xcb\x3e\x20\x01\xf7\x9e\x63\xf6\x08\x84\x25\x65\x81\x71\x72\xaf\x90\x9b\x86\x7a\x73\x9d\x14\xa7\xeb\x27\x6b\x58\x42\x64\xd4\x56\xdc\x52\x41\xfd\x86\x57\xa2\x94\xee\x0c\xe3\xe0\x38\x69\xde\xdc\xa2\x75\x57\xa4\x34\xa8\x47\x6e\x7e\xa3\xc3\x1a\xa7\x1b\xe4\x3c\x9c\x7a\x65\x25\x3c\x07\x77\x0f\x44\xde\x2d\xd5\x2a\xe5\x1d\xf7\x5b\x34\xf6\x07\x94\x23\xd1\x5d\x94\x8a\x4c\xde\xaf\xab\xd5\xd1\x7b\x9c\xca\x62\x2a\x29\x1b\xbc\xb5\xa0\x04\x4c\x13\xc7\xe1\x76\x5e\xda\xa6\xf9\xeb\xb4\xe0\x96\x3a\x31\xe3\x2b\xbb\xc3\xca\xe0\xf2\x7c\xc7\xc2\x22\x7e\xee\x72\x28\xbb\xa2\x1e\x1f\x79\x45\xf1\xb6\x3e\x58\x15\x9f\xe6\x72\x3b\x28\xf1\xfb\xcc\x7b\x63\x42\x2d\x95\x46\x28\xf1\x81\x54\x4d\x43\x0e\x72\xad\xa9\x48\x66\xb3\x55\x19\x19\xa6\xea\xf6\xce\xee\x35\x59\x42\x2d\x81\x08\x1b\x7f\x34\x82\x97\xde\xd1\x2f\x05\xf5\x19\x33\x20\x82\x6d\x23\xdf\x4e\xdc\x98\xd4\x13\x2f\x9b\x75\xb8\x4a\x36\xec\x8b\x4e\x9d\xf5\x13\x6e\x29\x0c\xdc\xd0\x6f\x49\x9a\xad\x94\xc3\xe4\x97\xc8\xf6\xc3\xba\x3c\x65\x7b\xea\xfd\x53\x1f\x14\x5b\xb3\x9b\x73\x65\xff\x33\xda\x81\x92\xa5\x94\x2e\xb3\xf3\xc4\xb2\x85\x8f\xe9\x57\xe8\x68\xb1\xf1\x8f\xac\xf8\x38\xaf\x4c\x87\xc3\x4c\xd1\xd6\x8d\x8c\x85\xa9\xa7\x1d\x12\x4c\xe2\x24\x60\xdb\xf3\xb2\x52\x2d\xd6\xb1\x93\xd6\xff\x47\xf7\x58\x9a\x7a\x95\xdc\xaf\x0c\x88\x94\xbe\x18\x8d\x38\xb9\x1a\xe7\x01\x01\xb8\x96\xdc\x22\xb4\x81\x8b\x39\x26\xe9\x46\x0d\xd1\xb9\x87\x71\x8b\x67\xf7\x50\x99\xac\x69\x96\xa9\xae\x9a\x94\x34\x35\x4a\x9e\x19\x1b\xbd\x99\x14\xad\xcd\x36\x13\x82\x21\xb7\x46\x68\xe7\x01\x47\xe4\x47\xa6\xf8\x80\x1a\x26\x9c\x58\x8f\x1a\x38\x73\x5e\xb8\x0b\xd7\x4f\x4f\xda\xc5\xa6\x2a\xed\x86\x25\xe1\x4e\x07\x15\x3d\x96\xc3\x07\x08\xd7\xea\x8e\x21\x8b\xf3\x9d\x7e\x1b\x95\x91\x98\xac\x96\x0d\x44\xf5\x8d\x17\xfc\xec\x99\x75\xa9\x1f\xfe\xd8\x80\x82\xaf\x72\xf0\xe8\xe4\xe7\x31\x59\x3f\xe6\x3f\x3c\x53\x2f\x1b\x81\xdd\x35\x2d\xb9\x7a\x83\xef\x34\x63\x7c\x03\x3f\x84\x9f\x26\xce\x85\x13\xb7\x22\xa7\x8b\x1b\xf0\xca\xec\x91\x95\xec\xa3\x03\x3a\xbb\xe7\xfe\xc8\xc5\x43\x90\x0f\x8a\x17\x14\xcf\xcd\xd8\x39\xae\x5b\x10\xc7\x34\x3a\x6f\x5e\x8a\x89\xe7\x23\xed\xb5\x64\xe1\x22\x1b\xe9\x74\xc3\xe3\x4b\xd4\xcb\x68\x03\x1f\x77\xd4\xf6\x16\x06\x86\x61\x47\x22\x26\x31\x29\x6f\x85\x32\x1a\xc2\x4e\xdd\x6c\xdd\x6e\xcd\x94\x4f\x91\xbd\xa6\xed\xe7\x84\x37\x08\x8a\x7c\x28\x69\xc4\x70\x98\x05\x86\x61\xf1\x35\x80\x1e\xa9\x46\x79\x34\xa0\x23\xf4\x7e\xc6\xc3\x7d\x8d\x24\x7a\x9c\xb9\x82\xd9\x55\x92\x2b\xe8\x0c\xef\x96\x8f\xc1\x4b\x76\x5d\x14\xdd\x7b\x65\x0a\xb0\x3d\xcc\xd0\xf0\xb2\xb5\x99\x66\xe9\xb0\x48\xfa\x71\x39\x21\xff\xbb\xfa\x43\x1e\xaa\x06\x2c\x22\xf0\x5b\xad\x21\x47\x1e\xb7\x35\xf7\x6a\x6c\x19\x26\x26\xdb\xf5\x08\x07\xcf\x92\x78\xdb\x2c\x51\xd2\xba\x51\x54\xb6\xb7\xd9\x2e\xe5\x8e\x28\xc9\x8e\xbc\x9a\x7c\x4f\xac\x5b\xe5\x91\xdb\x94\x34\x92\xae\x17\x11\x0c\x1e\xa3\x81\xe1\xb3\x7a\x5f\x9e\xdd\xa2\x64\x30\x85\x21\x9f\x61\x5b\x86\x83\x16\x2e\x70\xde\xbc\xc8\x2f\xd5\x39\x7a\xa9\x2e\xe3\xcb\x40\xfb\x7a\x90\x52\x4b\x7a\x39\x25\x6f\x6b\xab\x61\xc4\x4d\xbf\xca\x4f\xe1\x4d\xb5\xb8\x5e\xe7\xad\x38\x1a\xbc\xf8\x2a\xef\xb3\x1b\x93\xdb\x20\x35\x54\x5e\x9b\xf7\xe0\xa5\x9a\xb1\x40\x6e\xa5\xa4\xd3\x8d\xbd\x0a\x67\x3b\x68\x01\x5e\x53\x98\x6c\xbc\x31\xaf\xc4\x4d\x86\x22\xfe\xee\x39\x87\x94\x72\xbb\x05\xdb\x10\x7b\x2f\x7f\x94\x97\xe4\x65\xa5\x52\xba\xfe\xd7\x71\xbb\xc8\xb9\xf0\xfb\xfc\xe0\x16\x5a\x4f\xd3\x22\x2f\x32\x28\x09\xbc\x0f\x79\x1c\xe1\x9a\xbe\xad\xdf\xaa\x35\x7c\xab\x3e\xc0\xb7\x25\x46\x09\x0a\x97\xd7\x8d\x0b\xcf\x58\xb8\x1e\xa6\xed\x81\x9e\xb2\x61\xbb\x18\x02\xb8\x90\xee\xce\xaf\x61\xb2\x9f\x35\xf3\xba\xda\x5f\xa5\xa2\x3d\xc7\xe5\xba\xc1\x7e\xdb\x51\x7b\x2b\x0e\x74\x7c\x1a\xdf\xcf\xee\xb9\x52\xd5\x76\x5d\xa9\x1d\xbc\x4d\x59\xba\x91\x74\xd1\xb0\x63\x7d\xd8\xbe\x12\x17\x18\x2e\x66\xab\x45\xc6\xbb\xb6\xa9\x8b\xba\x90\x7a\x9b\x0a\xa9\xf7\xa0\x90\xba\x4c\x0e\x93\xa1\x46\x01\xe5\xf6\xe2\x22\x22\x93\x6f\xd3\xc8\xbb\xa7\x61\xed\xf1\x65\x27\x0a\x56\x4a\x31\x66\x5d\x4b\xf8\x65\xb9\xa8\x48\xf2\x9a\x06\xde\xc7\x02\x6a\x8d\x0a\xe8\x3b\x8b\x86\x1a\xa1\xc6\x30\x42\x34\x63\xfe\xf6\x0e\x10\xb2\xcd\x0b\x98\xa3\x09\x46\x70\x89\x9f\xdd\xa2\x24\x1f\x80\xa2\x04\xa9\xd7\x92\x7e\x1b\x23\xd9\xe7\x54\x1a\x2f\x78\x15\xe0\xe9\xb2\x24\x42\xc0\x62\x17\x31\xe4\x5e\xb0\xdc\x00\xbf\xcc\x28\xa8\xfb\xe6\x72\xba\xdb\x4a\x31\xe9\x31\x6f\xca\x98\x72\x44\x36\x24\xe7\xe1\x30\x02\x92\x05\x17\x8e\x5a\xdc\x25\x67\x3c\x75\x9e\xde\x40\x4b\x7d\x0c\x47\xc6\x45\xd1\xca\xce\x58\x62\xd4\x66\x6f\x99\x94\x92\x56\x4a\x5d\x6b\xee\xac\x5f\x69\x2a\xb9\xe3\xba\x77\x39\xa4\xb0\x29\x37\x37\x04\x32\x97\x13\x3a\xb0\x46\xd4\xc4\x65\xc4\x5d\xcd\x8f\x26\x7f\xa4\xbf\x92\xef\x5d\x16\x6f\xa2\x4c\x8f\xe3\xe1\x6c\xec\x34\xd7\xe0\x25\x6c\x3b\xbe\x94\x58\x2f\x17\xf0\x83\x4e\xeb\x79\x39\x55\xb8\x60\xee\x1a\xb9\x7e\x26\xb2\x5e\x0b\x44\xa3\x6b\xe8\x26\xe6\x1a\xb5\xcb\xb2\x10\x43\xc5\x1e\x18\xa7\x3c\x39\x9a\x5a\xa3\xb7\xba\x20\x25\xdd\xc2\xdc\x7c\xa5\xb4\x5a\x5e\x43\xdd\x74\x33\x11\xa6\xb4\xd4\xd8\x39\xfc\xa2\x2e\x90\x77\x26\x57\x18\x44\x79\xbe\x9d\x66\x1d\xad\x39\x45\x0f\x69\x74\xa2\x17\xa7\xe8\x02\x03\xc8\xa2\x2f\x94\x1a\xf6\x85\x8e\x32\x73\x13\xc2\x89\x81\x86\x8d\xda\x27\x8e\x0a\x9f\x4e\xc6\x22\x97\xac\xcd\x02\x5c\xe1\xcb\xab\xfc\x8f\x5d\x45\x7b\x5a\xab\xb1\x8e\x67\xf4\xa1\x9b\x48\xf2\x96\x73\x46\x17\xc8\x1e\x1a\xe6\xe8\x46\x6e\x7b\x7c\x96\xbf\xb7\x2a\xa6\x99\x73\x7d\xc1\xf8\x5d\x66\x47\xd1\x6e\x11\x1d\xbf\x5b\xec\xf8\x57\x17\x16\xc4\x55\xfa\xea\x1e\x5c\x51\x32\xf5\x8d\x5e\x9a\x61\x07\xbd\xf0\xa6\x06\x74\x99\xcf\x17\xdd\x5d\xdd\xe2\x9c\xfc\xb8\xac\xe6\x9c\x91\xc6\xd6\x5c\xe8\x22\x01\x6a\x3d\xdd\xee\x8b\x7c\x9e\x5c\x81\x77\x4d\xa0\x0a\x1f\x54\x19\x56\x18\xd7\xfd\x97\xcc\x8f\xb0\x36\xc8\x64\x8d\x93\x84\x6d\xb2\xfc\xc8\xfa\x51\xf8\x14\x96\xff\xd4\xca\x28\xcb\x12\x7b\x49\x7d\x6e\x82\x7c\x79\x56\x73\xbc\x2d\xe2\x9a\x5e\x8a\x45\x47\x34\x71\xc3\x9f\x1c\x46\x67\x43\x03\x70\xd2\xf6\x68\x68\x43\x9f\x08\xdc\x88\x52\x67\x2b\x19\x50\xb0\xc5\x42\x51\xfe\x06\x0e\xcc\xe5\xc8\xf1\x39\x26\x03\xf1\x28\x70\x7d\xc9\x7a\x06\x3d\x7c\x9d\x20\x56\x9e\xd4\xdf\xc4\x41\x72\xb6\xcb\xf5\x28\x3b\x25\xe3\x98\xef\x4e\x06\xcd\xe6\x0d\x0a\x61\xe3\xa2\xa0\x70\x06\x76\xc7\x68\x81\xd3\x7e\x50\x65\x0f\xb3\xd0\x9b\xb0\xdd\x39\x7d\x9a\x65\x76\x2e\x3a\x0b\xc2\x23\xfe\x70\x2e\xd9\x50\x50\x3e\x5e\xe4\x0a\xb3\xd2\xfa\x96\xc6\xc7\xaf\x66\xd9\x9f\x71\x09\xca\x21\xc7\x6a\x0d\xce\x51\x71\x1b\x51\x29\x7f\xc3\xd4\x70\x79\x30\x37\xdc\x81\x2e\x62\x12\xb5\x4c\x8e\xb4\xa6\x15\x97\x80\x15\x2e\x02\xf1\xbd\x19\x96\x60\xbe\x3f\x4b\xae\x84\x71\x76\xd1\xb3\x14\xb1\x9a\x46\x30\xf2\xc5\x9d\x21\xbf\xf2\xb2\xc9\xf0\xab\xb8\x8f\xe4\x1e\x05\x90\xb2\x32\x7e\x42\xbe\xfc\x7d\x96\x57\x82\x33\x6c\x6a\xb9\x34\xdc\xcb\xf0\xce\x2b\x14\xc2\x63\x8c\xc1\xb8\x50\xc0\x57\x97\x3f\x6c\xa5\xe8\x53\xf2\x8f\x7c\xf3\xf5\xcb\x01\x25\x85\xb9\x47\x9a\x7c\xf3\x92\xa4\x9a\x9d\x7e\xf3\x6d\xf8\xab\xce\x5c\xf0\x5e\x6b\x04\xc9\x1f\x2f\xca\x53\xb0\x88\xb1\xc1\x8f\x32\xcc\x55\xf3\x06\xc7\x95\xd3\x5f\x51\x14\x81\x91\x67\x30\x36\x6a\x5f\x0d\xba\x88\x54\x31\x5b\x28\xb9\x7c\xa2\x67\x0f\x86\x56\x8e\xd4\x56\xb2\xb9\x45\x51\xd5\x00\xfc\x6e\xb2\xb7\x28\x5e\xbf\x86\x59\x5a\xa4\xf1\x28\x6a\x3c\xd1\x76\x6b\x94\x9a\x4c\xbd\x4d\x11\xe4\x9d\x12\x30\x1b\xfa\x6e\x67\x13\x15\x45\x96\xac\x0f\xd1\x40\x0f\x57\x94\x14\x62\xec\x72\x6b\xbe\x54\x8b\xe6\x43\x0e\xea\xb0\xc6\x7f\x67\x15\x85\x5d\xe8\x36\xdf\x59\xc5\x3f\xd5\x62\x1c\xb6\x9e\x87\xc4\x41\xeb\x4d\x03\xa4\xef\x96\xef\xa4\xcd\x2e\x15\xe8\x21\xa6\x6d\xe5\x51\xf3\x7c\xae\x4e\x75\xd4\xda\x29\xfd\x21\xef\x15\x03\x4e\x00\xbb\x76\xfe\xf2\x45\x35\xe3\x1c\x61\x49\x3e\x0d\x18\x00\x09\xee\xb4\xc2\x1a\xee\x57\x3a\x16\xf8\x72\x95\xcc\x41\x9c\xb3\x21\x7e\x03\xe2\x12\x4e\x92\x21\x7c\x86\x4d\xa3\xe7\x9a\x62\xf5\xe4\x14\xee\x34\xf0\x5f\xb0\x3e\x98\xc6\x1a\x7d\xb4\xb9\x46\x43\x9d\x1f\x76\x8b\x04\x03\xd8\xc8\x1b\x95\x6f\xa5\xc3\x6e\x07\xe3\x19\xe4\xf1\x20\xca\x88\xca\x5c\xdf\xe1\xf0\xdb\xea\xc4\xca\x89\x86\x7f\x1d\x5b\x45\x37\x2f\xdf\xc8\x31\xa7\x53\x1e\x4f\x3f\x9d\xfa\x49\x81\x2f\x9f\x5b\x33\xf3\xbf\x92\x0c\xb0\x6e\x0b\xdd\xff\x91\x48\x86\x67\xfc\xae\xfe\x1b\x3d\x9b\x9b\x83\xa6\x2c\x71\x76\x35\x69\xcb\x09\xba\x78\xea\x3c\x1c\x3f\x7a\xe1\x5d\x48\x19\x0d\x85\x10\xd7\x04\xb8\x3b\xae\xd9\x21\x0b\x08\xff\x4f\xfd\x64\x26\xc6\xb4\x5d\x00\x52\x32\x90\x00\x6b\x94\xca\x03\xa1\xa1\xf4\x6c\xc2\x3e\x97\x89\x68\xb6\xcd\x32\x9b\x55\xa6\x04\x91\x6c\x60\x8b\x17\x1a\xca\xa7\xac\xe1\xd5\x56\xe0\xb5\xa4\xa0\x01\xa6\x3e\x9b\xe0\xf7\x3d\xcf\x25\xbd\xe1\x03\x4d\x8b\x77\xfd\x66\x16\x75\x3d\x70\xdb\x6a\x7e\xc0\x42\xcb\xd9\xab\x21\x3e\x0a\xe2\xc5\x4e\x30\xcb\xaf\xe0\x17\x6c\x31\xe8\x26\x4b\xb0\x52\xc3\x36\xae\x74\xb5\x82\x35\x63\x29\xad\x0f\xbc\xd9\x4c\x25\xdf\x04\x87\xee\x40\xea\x62\x05\x6e\x41\x9d\x23\xbc\xd3\xb8\x47\xa8\xf8\xed\xce\xa7\x57\x58\x4e\xac\xc5\xb3\xda\x30\x01\x49\x8d\x43\x3a\x02\x0f\xc9\x1d\x4a\x1f\x83\xb2\x20\x56\x6a\x47\x83\x81\xe7\xff\x2b\x9a\x30\xc7\xfd\xc6\x5a\x3d\x50\xe1\xab\x7c\x1b\x50\xe4\x7b\x7d\x32\x5e\xa4\x86\x09\xeb\x33\xab\x60\x00\x0d\xca\x97\x74\x63\x03\x23\xf5\x63\xae\x98\xd8\x86\xab\x26\x1a\xc3\x75\x52\x25\x9f\x5e\xdb\x1c\x87\xc0\x6a\xa1\x04\x99\xe4\xab\x9b\x9c\x7d\xb5\x0c\x5c\x26\x8f\x69\x91\x0e\x35\x3d\x7c\x40\x1a\xa2\x2f\x90\xba\xa3\x3b\xf3\xc4\xe5\x68\xa4\xed\x6c\x48\xb2\xc5\xcc\x53\x5e\xd6\x6b\xad\x0f\xbc\x8a\x3c\x8b\x3f\xe8\x01\x57\x15\x2e\xee\xa2\x10\xf9\x97\xa5\x69\xc1\x79\xaa\x1d\xda\xef\x12\xbc\x04\x6c\x8e\x5a\x4e\x7d\x0c\xd0\xa0\xa2\xdd\xe2\xa4\xa5\xa6\xca\x1a\xbd\x45\x94\x14\x07\xea\xc0\xb2\x94\x2b\x00\x8b\x5d\x57\x9a\x23\xcb\x97\x82\x2e\x49\xa2\x7c\xf6\x1d\x76\x47\x8e\x69\x3d\xe4\xee\xd0\x62\x5d\xe2\x37\xe5\xcb\xcc\x02\x0b\xbd\x6b\xeb\x73\x8f\x31\x5b\x89\xb0\x6d\x93\xb1\x12\x71\x1b\xf0\xc8\x3d\xfb\xba\x44\x4d\xd9\x0f\x1e\xc5\x68\x5f\xf3\x06\xd7\x70\xab\x6e\xc1\x3c\xef\x56\x36\x75\x6d\xed\x5c\xa8\x88\xc6\xaa\x2f\x4f\xbd\x98\xcf\xec\xbc\xf2\xc3\x1f\x31\xeb\xd6\x26\xe0\xd6\x1f\x9e\xbd\xe2\xd6\xe6\x14\xe5\xf7\xb4\xf3\x84\xff\xc1\x34\x89\xc1\x38\x8e\xe5\x3f\xeb\x26\x45\xfc\xfa\x31\xb2\x8f\x3b\x56\x24\x9d\xf5\x63\xaf\x78\x70\x22\xa1\xb8\x00\xb4\xc2\x1a\xf5\x9d\xa6\xc7\x61\x26\xa0\xd2\xec\x9f\x48\x9e\x50\x7a\xd2\x6d\x89\x0f\x14\x85\xfd\x4b\xb2\x58\x09\x9d\x74\x9a\x5f\xfb\x55\xcd\xd5\x33\xb8\xd3\xbd\x78\x8e\x51\x5c\x00\x41\xea\xa1\x62\x74\x8c\xcc\x91\x73\xb5\x80\x18\x2b\xd2\x7e\x73\x0d\x7d\xe3\x2e\x49\xc3\xea\x6d\x7a\xe9\x8c\x99\x13\x80\xe9\x84\x60\xec\x96\xff\x35\xad\x6e\xd9\xfd\x5e\x6c\xcd\xc9\x04\xe6\x33\xe1\x9a\x0f\x58\xa4\x31\xc3\xec\x4b\xd3\x06\x2c\xa8\x66\xa7\x3a\x3c\xaa\x7b\x44\xa3\x94\x92\xd9\xf3\x79\x19\x71\xa2\x5c\xaa\x4d\x4b\x29\xa2\x3c\xa2\xe1\xd9\x6b\x65\x77\xa6\x89\x58\x69\x55\x29\x78\x4c\xf2\x73\xcc\xe7\x14\xb7\xaf\x34\xcf\x48\xa8\xbf\xf3\x49\x3f\xe9\x0d\x7b\x18\xf2\x45\xad\x61\x52\x8e\xd3\xf8\xb9\x3a\xee\x01\xf0\x72\x51\xf3\x1d\x7a\x54\xa7\xf9\xd1\x02\x6b\x8e\x60\x85\x81\x23\x5a\x5d\x52\xd0\x9f\xa2\x37\xb0\xcf\x9d\x58\x9d\xc3\x37\xce\x62\x03\x46\xb7\xac\x83\x53\xe7\x12\x7e\x31\x9c\x46\xa8\xae\x0e\xed\x57\x67\x4b\x37\x9a\xe5\x32\xf6\x30\x6c\x10\x73\xbb\xea\xec\x35\x36\x1d\xfe\x6c\x18\x0f\x61\x78\x71\x7f\x13\xae\xd2\x5f\xe2\x83\x3a\x47\x0f\x76\x79\x39\x7c\x14\x89\xa6\x01\x65\x30\x68\xd7\xc1\x22\x68\x44\xae\x41\xee\xbe\xd3\x76\x99\xfc\x94\x3c\x60\x84\x16\xa6\x3a\x3c\x22\x92\xa3\x62\xea\xbd\xab\xcd\x96\xbc\x63\xe1\x20\xf0\x80\x2f\xea\x73\x3e\x2b\x9c\xd3\xd9\xad\x53\xcf\xc8\xfa\xe5\xf4\xe9\x01\x68\x91\x86\xee\xe3\x7b\xef\x9c\x7b\xbf\x5c\x27\x04\x18\xe5\x13\x03\xd3\xfb\x96\xa0\x28\x17\x58\x0c\x7a\xb2\x21\xce\x3c\x88\x4f\x46\x38\xa5\x3a\x73\xe7\xcd\x37\x74\xc6\x92\xee\xd3\xa5\x1d\x95\x2a\x44\x1d\xb8\x12\x98\xf0\x86\xd4\x4d\xa7\xf8\xa9\x54\x86\x94\xb3\x57\xa3\xae\x14\x3a\x2b\x8f\xd5\xae\xfb\x52\x02\xa0\x64\x3f\x6e\x7b\x30\x32\x8f\xd9\x38\xda\xc0\x62\x7a\xac\x81\xc5\xba\xf0\x20\x4b\xaf\x26\x18\x04\x42\x17\xbf\x28\x2f\x4c\x49\x5d\x42\xb7\xab\x0b\x48\xc3\x76\x88\x70\xfb\x92\xd8\x8f\xfb\xa2\xcd\xc4\x46\x8a\xbf\x96\x61\x07\x5e\x77\xfe\xa2\xc1\x07\xd0\xe1\xd0\xb0\x57\x76\xb3\x6d\x96\x87\xf5\x4a\xef\x9e\x36\x0b\x24\x1a\xa8\xd2\xa4\xba\xc9\x06\xab\xa3\x3d\xc3\x82\xc7\x04\x7d\x0f\x39\x40\x0c\x4a\x9e\xaf\x7b\xf7\x79\xab\x28\x06\xb9\xc4\x38\xfc\xce\x41\xa5\xef\x5d\xbe\x7c\x71\xad\x3c\xcb\xb9\x3d\xd4\xce\x7c\x90\x90\xb2\x71\x16\x9c\x62\x33\x43\x16\x7c\x55\x89\x5a\xdd\x80\xa0\xde\xe6\x45\x7e\xd6\x6c\x67\x05\xb8\x6f\x66\x1a\xa7\x54\xaf\xe8\xbb\xf2\xcd\x23\xde\xe6\x52\x4b\x1e\x79\xeb\x55\xad\x10\xa2\x6e\xd1\xb1\xcf\x6e\x93\x33\x2c\x9b\x2a\x37\xda\x59\xda\xd7\xe0\x91\x22\x13\x29\x7c\x63\xbf\x7b\x60\x43\xbf\xcc\xe1\x1e\x74\x86\x5d\xea\x70\x44\x3a\x12\x2f\x3c\x85\xa9\x4b\xb9\x70\xef\x50\x44\xec\x89\x4d\x87\x3b\xd6\x46\x25\x4f\x6c\xd1\xfa\x6c\xbb\xa1\xd2\xf1\x27\x71\x7b\x68\x4c\x25\xde\xe1\x27\xad\x7e\xb4\x4d\xa6\xac\x01\xd2\x64\xfd\x2f\x27\x36\x7d\x9c\x10\x10\xbf\xe0\xd3\x88\x90\x58\x57\xab\x09\xb9\x61\xa6\x0e\x7b\x56\xb0\x81\xb7\x58\xd2\x2a\x57\x04\x1f\x1e\xa3\x77\x54\x83\x1c\x82\x31\x37\xd7\x56\xd9\xfc\xd8\xea\x26\x0c\x9a\xad\x35\xf6\x28\x48\x5a\xa0\x7c\x57\xb7\xe0\x91\xcc\xee\xcb\xd6\x6b\x61\x1d\xa6\x53\xb7\x66\xf6\xfa\x73\x3a\x68\xbe\x3f\x68\xb8\xc5\x89\xa5\x76\xcc\xd7\x7c\xb3\xf1\x30\x1d\xc4\x3a\xb2\x3a\x53\x3c\xd2\x43\xa0\x87\x01\xc1\xd8\x8f\x4c\x24\x16\xd2\xb3\x38\xce\x08\x75\x5a\x11\x3f\x02\x94\x3a\x9e\xeb\xe0\x4f\x7d\x93\x69\x86\x7f\x77\xdc\x44\x0c\x5e\xea\xc3\xd7\x6c\x8a\x43\x4c\x7c\x58\x9f\x58\xda\xe4\xee\x85\x46\xd1\x9b\x05\xa3\x7f\xba\x15\xf2\x57\xf3\xac\xfd\xea\x71\x37\x2d\x2f\x6a\x4a\xfc\x1c\x92\x7e\x8b\x3c\x59\x4e\x6d\xfc\xb1\x64\x14\xe6\x1c\xc0\x6e\xb3\x2c\x86\xe7\x96\x31\xe3\xa4\xcd\xf9\x2b\x0d\xf8\xf9\x2e\xb5\x56\xd8\x4b\x30\xe8\xb6\x27\x69\x2c\x03\xcd\x79\xb9\x96\x9d\x54\xd2\x24\x2b\x59\x7c\x58\x81\xfc\x7b\x1f\x4b\x8e\xc4\x17\x1f\x94\x49\x1d\x41\x0b\xaf\x9f\xfc\x0d\x95\xbd\x0c\x6f\x24\x35\xc9\x0b\x4e\x41\x63\x8b\x68\xd3\xec\x5f\xb4\x39\x67\x03\xfd\x23\x51\xd9\x40\xc9\x98\xfa\x13\x9b\xdf\xb2\x26\x56\xde\xf5\xa9\x0e\xc8\x60\xc4\x17\x8f\xc8\x79\xe7\xb3\x4a\xe8\x38\xba\x10\x98\xdb\x10\xae\x43\xb4\x09\x34\x9f\x49\x10\xb4\xbc\x84\x27\x97\xbc\xdc\xe9\x08\xc3\x0f\xbc\x9e\xdb\x4d\xdf\xbd\xfd\xb5\xbc\xf9\x9a\xca\x63\x40\x18\x9c\x6d\xf0\xb5\x1e\x3c\xb3\xb6\x91\x44\x23\x23\x7e\xbb\x05\x6f\xb9\x0a\x3f\x77\xb0\x14\x79\x13\xc0\x80\xe9\xcd\x36\xbe\x39\x9c\x48\x12\x02\x80\x67\xdc\x1a\x20\x91\xd7\x14\xfc\x5f\x6c\xf1\x8b\x1d\x2c\x86\x49\xa7\x1e\xd1\x33\xf7\x4c\xf9\x89\x69\x5c\xfb\xa8\x17\x95\x6f\xbd\xa4\x0f\x70\x32\x97\x1c\xc7\x32\x20\xfa\xb2\x95\x0e\x33\xae\x43\x43\x9a\x70\x0c\x3d\xb4\x3e\xd9\xe1\xe2\x8f\x68\x24\x4f\x31\xb0\xde\xf2\xd2\x76\x1c\x5f\xa1\xd7\xf4\x83\x9b\xc6\x01\xd1\x3b\xfe\x45\x2f\x31\xdf\x1f\xbd\xa3\x1f\xf4\x2a\x8b\xb6\x5b\x7a\x88\xee\xf8\xf8\x8b\x1e\xa0\x1d\x1d\x6d\x47\x27\x4b\x07\x98\xce\x0c\x9d\xa0\xe2\x8d\x68\xd8\x45\x23\xc6\x9c\xac\xa3\xce\xc0\x27\x89\x3e\x4f\xc9\x2e\x31\xe3\x6e\x37\x69\x5f\xc1\xa3\x33\x1c\x60\x7c\xb7\x06\x85\xbf\xa2\xa4\x85\x49\x7f\x30\x14\x31\x8c\xcd\xa4\xc9\xa5\x6c\x04\x7b\x0e\xa0\x04\x65\x30\xa2\x10\x8a\x78\xe0\x30\xb4\xd6\x81\x56\x20\xe1\x0e\x72\x90\x2f\xff\xcd\xdf\x50\x69\xf8\xf9\xb7\x7f\xab\xce\xbf\xfd\x8a\x8a\x3f\xc1\xb4\x2a\xb9\xea\x45\x9f\x10\x33\x29\xa5\xe0\xf1\xa7\x5e\x41\x8a\xd9\x46\x5e\x69\xa4\x64\xbf\xc4\x31\x42\xf1\x37\xce\xf3\xff\x06\x00\x00\xff\xff\xc6\x9f\xcc\x6c\x74\xee\x00\x00") func confLocaleLocale_ruRuIniBytes() ([]byte, error) { return bindataRead( @@ -4559,12 +4559,12 @@ func confLocaleLocale_ruRuIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_ru-RU.ini", size: 58828, mode: os.FileMode(493), modTime: time.Unix(1441457542, 0)} + info := bindataFileInfo{name: "conf/locale/locale_ru-RU.ini", size: 61044, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_zhCnIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xdb\x72\x1b\x47\x96\xe0\xbb\x22\xf4\x0f\x15\x9e\x50\xf4\x93\xe5\xb0\xbd\xb7\xd8\x30\xb4\xdb\xd3\x3d\xe3\xee\x8d\xb6\xdb\xdb\x72\xc7\x3c\x38\x1c\x30\x08\x14\x49\x8c\x00\x14\x8c\x02\x24\xb3\x27\x26\x82\x94\x44\x12\x14\xef\x12\x25\x4a\x22\x29\x8a\x34\x29\xd2\x92\x48\x50\x17\x4b\x24\xc1\xcb\xc7\x18\x55\x00\x9e\xfc\x0b\x7b\x6e\x99\x95\x75\x01\x65\xf7\xce\xee\x8b\x44\x54\x9e\xcc\x3c\x79\x32\xf3\xdc\xf2\xe4\xc9\x4c\xb9\x9c\xce\xd9\x6e\x36\xe5\xad\x1e\xb6\x0e\x67\xac\x4f\x1d\xab\xd3\xd8\xe9\x6c\x0f\xb7\x1f\xde\xec\x8c\x3f\xf5\x6e\xfd\x60\x7d\x9a\xaf\x5a\xfe\xf2\xb4\x77\x6b\xed\xfc\xb9\xf3\xe7\x06\x9d\xa2\x9d\xea\x3e\xb9\xd7\x5d\xfb\xf1\xfc\xb9\x5c\xc6\x1d\xec\x73\x32\x95\x5c\xca\x9f\xd9\xf2\xea\x6f\xba\x2b\xeb\xfe\xca\xe9\xf9\x73\xf6\x77\xe5\x82\x53\xb1\xe1\xeb\x7a\xfb\xf5\x3a\x54\xb2\x0b\xe5\x94\xb7\xbf\x0b\xcd\x9d\x3f\xe7\xe6\x07\x4a\xe9\x7c\x29\xd5\x7e\xd0\xf4\x8e\xef\xc2\x6f\x27\x9b\xcf\x14\xd2\xfa\xf3\xc6\x49\xeb\x70\xc3\xdb\x9f\xf3\x66\xdf\x32\xc8\xcf\x47\x0f\xdb\xcf\x9f\x5b\x1f\x59\xfe\xce\xa6\xf5\x89\x5b\xcc\x14\x0a\x97\xbc\xd1\x57\x9d\x91\x05\x86\xfa\xe4\x03\xfe\x26\x4d\x3b\xb5\x6a\xaa\x3b\x3c\xec\x8d\x1f\xca\x87\x5a\x39\xe5\xbf\xda\xf6\xc6\xa6\xce\x9f\xab\xd8\x03\x79\xb7\x6a\x57\xf4\x87\x6b\x76\x9f\x9b\xaf\xda\x29\x6f\xf7\xbe\x7f\xef\xa0\x7d\x3c\xdf\x7e\xf6\xe0\xfc\xb9\xab\x76\xc5\xcd\x3b\xa5\x94\x77\x7c\xc7\x9b\x98\x6e\x4f\xd4\xfd\xe5\xe7\xe7\xcf\x95\x33\x03\x30\xf4\xb5\x1f\x61\x94\xe7\xcf\x55\xed\x62\xb9\x90\x81\x9a\xfe\xf6\x1a\x8d\xb9\x90\x29\x0d\xd4\x10\x82\xe9\xd7\x1d\x9e\xe8\xae\x1d\x9c\x3f\x97\xad\xd8\x00\x95\x2e\xd9\xd7\x52\x5e\x7d\xc9\x6b\x1e\xfa\xf7\xf6\x80\xb6\x17\x2f\x5e\x3c\x7f\xae\xe6\xda\x95\x74\xb9\xe2\xf4\xe7\x0b\x76\x3a\x53\xca\xa5\x8b\x48\xb4\xf6\xc2\xb6\x5f\x7f\xdb\x3a\x5d\xf3\x47\x1a\xde\xec\x2d\x7f\xe9\xb5\xb7\xf1\x90\x87\x62\xe7\x80\x42\xe9\x8c\x9b\xf2\xde\xbe\x64\xda\x30\x30\x4e\x0c\x36\x56\xca\x14\x55\x7d\x6f\x6e\x1a\xe6\xa1\x98\xc9\x17\x52\xdd\xeb\xbb\xed\xdd\x17\x88\xbf\xeb\x5e\x73\x60\xb2\xbc\xc6\x58\xfb\xf1\x08\x52\x23\x5d\x1d\x2a\x43\x8d\xb5\xdd\xce\xee\x86\xfa\x9a\xcd\x94\xab\xd9\xc1\x4c\xaa\xfb\x74\xaa\xd3\x18\xa1\x4f\x08\x5a\x76\x80\x50\x4e\x65\x28\xd5\x6a\xde\xf1\x0e\xef\x9c\x3f\xe7\x54\x06\x32\xa5\xfc\xdf\x32\x55\xa4\x54\xbb\x79\xb3\xdd\x1c\x3f\x7f\xae\x98\xaf\x54\x9c\x4a\xaa\x7b\x77\xd9\xbb\x31\x7b\xfe\x1c\x0c\x3b\x8d\x55\x43\x63\x57\x0d\x60\x61\x31\x3f\x50\x41\x2a\x76\x4e\x47\xda\x5b\x4d\x6f\xe3\x5e\xf7\xc6\xb6\x59\xde\xef\x54\xae\x84\x2a\xfb\xaf\x4f\xda\x0b\xab\x26\x08\xe0\x11\x82\xd0\xa8\x64\x4a\x30\x1d\x54\xdc\xde\x5d\x6b\xcf\x8d\xf9\xf5\x79\xa3\x38\x93\x2b\x02\x2d\xcb\x99\x92\x5d\x90\x72\xb5\x7a\x33\xd9\xac\x53\x2b\x55\xd3\xae\x5d\xad\xe6\x4b\x03\x40\xed\xfd\x39\xa0\x68\x67\xf7\xa4\x7d\xbc\x0b\x13\x91\xfc\x79\xc8\xa9\xe9\xc9\x4c\xb5\xf6\x9f\xb6\x0e\x0f\x79\x0e\xa5\x48\x57\xe3\xf9\x51\xd5\x68\x0c\x6e\xba\xdf\xb6\x61\x13\x2d\x0f\xc3\x10\xfc\xd7\x4d\xef\xd6\x36\x4c\x57\xad\x50\x00\xe2\x7d\x5b\xb3\xdd\x2a\x74\x36\x57\xf7\x0e\xde\x74\x1a\x6f\xfd\x17\xd7\xcf\x9f\xcb\xbb\x2e\x7c\x86\x65\xb0\xe9\x4d\xdf\x65\xec\xb1\xa9\x6c\xa6\x94\x85\xe1\x78\xb3\xf7\xfc\x37\x75\xfc\xf0\x95\x6b\x67\x2a\xd9\xc1\xaf\x11\x6b\xfc\x23\xe5\xcf\x2d\xc3\x8e\xa4\xd5\x97\x30\xa5\xb8\x86\x52\x6a\x49\x51\x1f\xd2\x05\x34\xed\xe4\x60\x58\xcd\xef\x65\x3d\x7c\x95\x2f\xb9\x55\xd8\x74\xd0\xb2\xfc\x05\x5b\x68\xa2\xf3\xfd\xa8\xde\x1f\xf9\x6a\x81\x18\x85\xff\x7c\xad\x73\x3a\xd7\x59\x9b\xe2\xf2\xf6\xf6\xa4\x77\x38\x8b\xbd\x7f\x5b\x83\x8d\x97\xce\xf5\x31\xff\xf9\xd4\x19\x70\x2d\x6f\x74\xa4\xb3\xbb\xef\xcd\xcd\xb4\x9f\x35\xfc\xbb\x7b\xfe\xf4\x2e\xa0\xd5\xda\x3f\xb4\x3e\x1b\xba\xfc\xbf\xff\xf4\xd3\xf0\xc8\x17\x8e\x5b\x1d\xa8\xd8\xf0\xc3\xf2\xeb\xf7\x2c\xf8\x1f\xda\xf8\xf8\xa7\x61\x20\x09\x34\xc4\x7d\xea\x8a\x8a\xc4\x58\x82\xcb\x5c\x17\xb4\x5f\x34\xbd\x47\x93\xc8\xcb\xdc\x6a\xca\xe8\xa7\xe9\x2f\x1f\x0a\x11\x02\x58\xa1\x86\xde\x3c\x91\x12\xb5\x6b\xa0\x13\xda\x7d\xba\x18\x36\x60\x7b\x6b\x8f\x0a\x90\xfd\x41\x9b\xde\x93\xeb\xfe\xa3\x65\xff\xfa\x76\xeb\xf8\x14\x2a\xf3\xa0\x7e\x3e\x82\x5d\xf6\x56\xbe\xfc\xf1\xf3\xcf\xff\xfc\xfb\x7f\xb4\xbc\xa3\xbb\xfe\x9d\x99\x56\x73\x13\xb6\xbf\x55\xab\xf6\xff\xb7\xf4\x80\x5d\xb2\x2b\xc0\x24\xb3\x79\xcb\xdb\x59\x6c\x3f\x7f\xd2\x5d\x1a\xa3\x51\xbb\x6e\x01\xb8\x06\x4c\xcd\xe5\xcb\x40\x92\xed\x35\xef\x68\x16\x71\xad\x0e\x06\x88\xf8\xf7\xc6\x5b\xcd\x37\x9d\xb7\x0d\xef\xe4\x26\x54\xf8\xb6\x80\x64\x17\x94\x84\x80\x56\x30\x28\xd8\x61\x06\x3c\xf5\x61\x57\x2a\x69\xe0\x76\xd5\xa1\xb4\x54\xa6\xf6\xb9\xaa\x95\xd8\x4d\x6b\x7f\xba\x73\xe3\x18\x26\xae\xfd\xc3\x21\x35\x71\xfe\x9c\x1a\x01\xcf\x91\x77\xb8\x00\xe3\x05\x99\x03\x8c\x55\x4d\x13\x8a\x22\x22\xa1\x14\x0a\xfd\xd4\x67\x4d\xc5\xd3\x67\x50\xda\x9e\xbc\xee\x4f\x1e\x77\x47\xdf\xb6\xaf\x3f\xd3\x9b\x9a\xab\x74\x17\x9f\xb6\x1f\xcd\xc0\x66\x6f\x35\x9f\xff\x7c\x34\xc2\x0b\x9d\x71\xe6\x75\xee\x3f\x3e\x68\x2f\xed\x92\xec\xd1\x45\xaa\x75\x7f\x62\xd8\x5f\x9e\x20\x99\xd7\x39\x5d\x86\xc5\xca\x55\xba\x37\x8e\xbd\xbd\xb1\xce\xfa\x33\x6f\xe7\xbe\xbf\x00\x02\x6a\xa6\xd3\xd8\xe4\x46\x68\x7c\x95\x1a\x88\x19\x5c\x37\xbc\xd4\xdb\xaf\x9a\xed\xe6\xaa\x5a\x3a\xaa\x50\xf5\x81\x55\x79\xed\x9c\xc2\x76\x69\x7a\xa3\x6f\xa1\x4b\xaf\x71\x10\xc1\xce\xbb\x3d\xc5\xad\x59\xb4\x37\x70\x66\xee\x4c\xb7\x8e\x97\xfd\x95\x1b\xdd\x07\x73\xbc\xe6\x1d\x60\xf0\x20\xa6\x56\x57\x89\xdd\xf3\x4f\xa3\x1b\x26\xad\x77\xfc\xc2\xbb\x33\x6d\x5d\xbe\xfc\x07\xd8\x60\x93\xdd\x87\x63\xde\xf2\x9e\xb7\x32\x2c\xeb\x67\x30\x5d\x76\x2a\xd5\x14\x96\xc2\xae\xf3\x66\xbf\x07\x89\x1a\x7c\xd7\x0b\x05\x8a\x59\x09\xf0\x1e\x6c\x23\xc1\x97\xe6\xbd\xb9\xe7\xba\x02\xac\xe2\xf6\xdd\x07\x30\xdb\x9d\xb5\xed\xf6\xc6\x61\xfb\xc9\x08\x2e\x67\xea\xf1\xd6\x2a\x2c\x05\xea\x6b\xb0\x5a\x2d\x73\x67\x7f\xf8\xf2\xcb\x2f\xcc\xde\x74\x89\x9e\x64\x5a\x02\xd2\x09\xf4\x16\x80\xe2\x72\xa8\x55\x0a\x02\x61\xfd\xf5\x2f\x7f\xd2\xdf\x7a\x0d\x1c\x7b\xfb\x00\xff\xb9\x1c\x1a\x3f\xd0\xb7\xb5\x3f\xdc\x3a\x5c\x62\xf9\xd8\xda\xdf\x81\x9e\xba\x77\x4e\xfc\x99\x4d\x59\xb3\x4e\x19\x65\x5b\xb0\x68\x67\x1b\x20\xd5\xd5\x72\x25\xd9\x2a\x25\xd0\x02\xac\x7d\xa6\x8f\x16\x13\x45\x18\x13\x71\x98\xcb\x9f\xc1\x68\x15\x77\xa1\xcf\xfd\x15\xa7\xa8\x2a\xad\x6c\x82\x9e\x65\x7c\x57\xa3\x30\x8b\x19\x61\x20\x72\x77\xe4\x47\xef\xe4\xa9\xf5\x97\x7f\xfe\x9d\xf5\x9f\x3f\xfe\x08\x34\xa2\xc7\xe3\xde\x38\x72\x02\xc0\x0d\xf8\x85\x7f\xbf\x81\x43\xda\x7f\x8a\x52\xe1\xb0\x81\xe3\xa1\xb1\x71\x7d\xe0\x98\xc2\x67\xde\xfb\x1c\x36\xd4\x7b\xd6\x27\x34\x86\xff\x69\x7f\x97\x01\x5d\xc6\xbe\x98\x75\x8a\x97\x68\x99\x3d\x3e\x02\x36\x42\x34\xc0\x72\x58\xb8\xb4\xb4\xbd\xd9\xf9\xee\xf0\x88\x52\x26\xa4\x24\xd0\x29\x8c\xd2\x40\xbf\x60\x6d\x2b\x9d\x75\x4a\xfd\xf9\x4a\x11\x84\x58\x03\x57\x3e\xe9\x5e\x0c\xca\xaa\x07\x37\x97\x2e\x39\xd5\x7c\xff\x90\x40\xf1\xf8\xbb\xc3\x0f\xdb\xab\x9b\xfe\xec\x5c\x77\xec\x36\x0a\xb1\x0a\xa8\x66\x69\xfc\x2f\x9f\xb5\x15\xbf\x57\xcb\x12\x26\xd4\x1b\x7d\xe3\xed\xde\x08\x4f\x84\xd3\xdf\x5f\xc8\x97\x6c\x66\x93\xdc\x76\xfb\x49\xb3\x7d\x78\xaa\xd8\xa5\x09\x00\xab\xb0\x0c\xfa\xa2\xb7\xbc\x0d\x8a\x48\xfb\xf8\x25\xc3\xb4\xf6\x27\x5b\x07\xab\xbc\xaa\x5b\xcd\x19\xeb\x77\xbf\xff\xdc\xea\xcc\xbc\x45\x39\x4b\x5c\x0f\x66\x06\x18\x07\x4c\x00\x6a\xcd\x3f\xde\xf4\x0f\xe7\x98\x61\x00\x2c\x30\x38\xa0\xbe\xc6\x91\x6b\xf1\xe6\xcd\xbb\x99\x3e\x50\xfc\x40\x01\xba\x9a\xa9\x66\x40\xf0\xf2\xae\xf9\x54\x7e\x6b\xa5\x3b\x0a\x28\x38\x46\xc1\x91\x5f\xc0\x52\xd9\x7d\xd8\x3a\x98\x00\x0c\x00\xa7\x56\x73\x94\x27\xbc\xbd\xf0\x42\xb4\xca\xfd\x5b\xad\xa3\xc7\x38\xc7\xf5\x7b\xdd\xe6\x7d\x20\x3d\xfc\xed\x6d\xbc\x06\x65\x2d\x84\x13\xcf\x5c\x45\x74\xbb\x27\x23\xfe\xce\xba\xa8\x2d\xe3\x4f\x71\x25\x8b\xf6\x9c\x04\x1e\x60\x67\x56\x02\x36\xc6\x95\x98\x1f\x00\x72\xde\xec\x53\x60\x7b\xac\xbb\x78\xf3\xf7\x65\x01\xbf\x05\xdd\xe7\x31\xab\xf5\xcc\x58\x51\x4d\x00\x3d\x55\xac\x83\xf4\xd5\x3c\x2a\xd2\x3c\x89\xa4\x00\x77\x76\x4f\xbb\x8b\xbb\xc0\x10\xc1\xfc\x48\x06\x57\x53\x4a\xfd\x05\x8a\x33\x70\x15\x42\xce\x9f\x40\x59\xe5\x6d\xac\x4a\x4b\xa4\xbf\x20\x7e\x73\x4f\xbc\xfa\x03\x98\x44\xa8\x08\x00\xed\xe5\x49\xaf\xbe\xc7\x75\x81\x78\xb2\x86\x09\x98\x10\x65\x75\x52\x94\x3c\x31\xa9\x48\x29\x0d\x46\x48\xa3\x02\x25\x0e\xa4\x23\x6c\x54\x66\xfe\x80\x06\xf6\xb5\xf4\x18\xb5\x9c\x3f\xfe\x3e\xf5\xa1\xa5\x11\x43\x81\x83\x16\x18\xad\x99\x93\x45\xdd\x8e\xc1\xff\xb9\x53\xde\x06\x91\x7e\xb4\x54\x25\x10\x36\x0c\x14\x84\x61\x21\x28\x2d\x58\x76\x71\xd0\x88\x32\x06\x78\xe7\x1a\x10\x21\x5b\x81\xab\xb3\x99\xa1\xeb\x2a\x16\x21\x8a\x61\x7a\xc0\x41\xad\xf7\xd9\xa4\x37\xfd\x8a\x75\x40\xb4\x9e\xdc\x6a\x7a\x20\x5f\x4d\xf7\x23\x1b\x01\xa5\x6a\xf1\xb1\xff\xea\x6e\xa7\x31\xe6\xd5\x9f\x59\xbf\x81\x82\xdf\x58\xde\xfc\x71\xab\xb9\x01\xb6\xdf\x85\xab\x4a\x6b\xf9\x18\x39\x44\x1a\x96\x7b\xbe\x80\xcb\x2e\x05\xaa\x14\x6e\x3b\x5e\xe2\xb0\x8e\x67\xe7\x51\xf6\x4e\xd4\x91\xc0\x0b\x0d\x7f\x6a\x44\x29\x88\xa2\x64\xc1\xce\xbd\xe0\x02\x27\x9e\xec\x1c\x1f\xb3\xc1\xe7\x3f\xba\x89\x53\x34\x51\x47\x88\xe1\x29\x9e\x19\x6b\xc0\xe9\xab\xe5\x0b\x39\x8b\x0d\x3f\xa2\x74\xbe\x74\x35\x53\xc8\xe7\x50\x5d\x95\x39\x8e\xea\x99\x58\x77\xe7\x7b\x20\x8f\xa0\xac\x6a\xf4\xd4\x3e\x92\xab\x69\x65\x01\x87\x5a\xcc\x80\x25\x96\xa0\x53\x74\x57\x1e\x89\x69\x4a\x3f\xb1\xaa\x6b\xbd\x7f\x09\x46\x07\xa4\xca\x5c\xb5\x99\xe1\x0e\x28\xea\xb2\xac\xec\x8e\x4e\x63\x7f\xa7\x2b\xa0\xc3\x78\x1b\x2f\x3a\xaf\x37\x23\x98\x86\x96\x70\x68\x3d\x69\x7b\x25\x3e\x48\x9e\x62\xb7\x96\xcd\xda\xae\x8b\x33\xe2\x6d\xc2\xee\x1e\x61\xf5\xcb\x3b\xa9\x77\x9f\xdd\xf7\x46\x5f\xc3\x77\x10\x9d\xfe\xe4\x0f\x22\x80\x50\xa3\x41\x9d\x61\x73\x45\xab\xc3\xfe\xcd\x09\x50\xed\x88\x6b\xa1\x91\x81\xac\x73\x67\x03\xd6\x85\xf5\x8f\x7f\xfd\x94\xd4\x38\x30\x3a\xd0\xf9\x00\x16\x47\x8d\xf5\x41\xa7\x90\xd3\xe6\x0a\x2c\x66\x64\x69\x11\x4b\x57\xc1\xa8\xe5\xea\x5e\xcb\x03\x41\xd3\xda\x6d\x81\x74\xaa\xda\xdf\x55\x61\xab\x8e\xfb\xd3\xeb\xa6\x13\x43\x29\x6f\xc5\x21\x9a\x41\x18\x1a\x59\x8f\xca\x52\xca\x3a\x05\x58\x83\x0e\xb2\xbc\xab\xb6\x40\x78\xb3\xd7\x5b\xfb\x33\xde\xf4\x2c\x28\x69\x06\x28\xb4\x00\x36\xa8\x6a\x40\x5b\xa7\x43\x69\xb6\x95\x55\x81\x32\x99\x89\x65\x91\x97\x85\x19\x12\x4d\xaa\xb2\xf8\x2e\xc2\x04\x91\x35\x29\x3d\xbe\x78\x24\xaa\x28\x73\x77\xea\x11\xda\x22\x62\x89\x13\xe6\x6b\xb1\xf4\xc4\x19\xa3\xb0\x02\x80\x4c\xad\x8a\x96\x61\xe0\xa1\x48\x8b\xe5\x2b\x9c\x8b\x27\xde\x10\xe3\x83\x76\x19\x65\x7e\xd1\x1d\x20\x07\x44\x73\x96\xb9\xe0\xcf\x47\xab\xbc\xbb\x95\xbb\x66\x44\x3b\x75\x7e\x79\xd5\xe6\x3c\x48\x2e\xaa\x1a\x16\x2a\xec\x21\x01\xeb\x23\x85\x1a\x32\xd8\x15\x3f\xa2\xb2\x69\xca\x12\x68\x0f\x15\xf3\xd1\x57\xdd\xc5\x1d\xd8\xab\xb0\xd1\x3b\x23\x0b\xb8\x5b\xc8\x99\xa3\x97\x71\x82\x7c\x43\x84\x90\x73\xc5\x5b\x36\x95\x93\xc4\x5e\x90\x2a\x45\xbb\xd8\x87\x4d\xe0\x4c\xed\xb5\x8e\x67\x95\x43\xab\x1f\xa6\x1b\x36\x6f\xa0\x1a\x9d\x82\xa0\xdd\x53\x6b\x10\x4b\xed\x1e\xa5\x40\x0e\xed\xb3\x02\x06\x70\x0d\xb6\xfe\x7d\xff\xe5\x1a\x4f\x04\x14\x76\x7f\x78\x0e\x12\x9c\x51\x24\x24\x84\x3d\xb3\xe0\x25\x1d\xca\xb5\x4b\x55\x45\x31\xd0\x05\xbd\xbd\x11\xf1\x8a\xd0\x58\x58\xa9\xe2\x19\xc0\xe1\x90\xd2\xd6\x19\x7f\x65\x7d\xd2\x77\xe9\x82\xfb\xc9\x07\x7d\x97\x98\x55\xfa\xdf\x0f\xfb\xa0\x76\x5d\x47\xb6\xea\x2f\xbc\x81\x3a\xa8\xd6\x1d\xbc\x01\xbd\xc8\xba\x90\xb3\xbc\xbd\x59\x7f\xf1\x8d\x37\x36\xea\xed\x4e\xf9\xf5\x39\x6e\x9b\xd1\x62\x1b\x85\x6d\x0b\x11\xc2\x22\x1e\x88\x3a\x20\x43\xb9\x55\xb5\x55\x33\x59\xda\x41\xb4\xa8\xd5\xf2\xf3\x4f\x87\xfd\xd7\x4d\x86\x0b\x16\x21\x8d\xac\x90\x2f\xe6\xab\x89\x2b\xe2\xfa\x36\x3b\x47\x78\x4c\xdc\x04\x0f\xb7\x73\x3a\x0e\xbb\xa4\xbb\x3e\xdf\x3e\x18\xe1\xe1\xb5\x77\x26\xbc\x93\x51\xeb\x63\xcb\xab\x8f\x75\x6f\x83\xf1\x34\xe3\x8d\x4d\x77\x1a\xbc\x74\x07\x33\x6e\xba\x56\x12\xca\xda\x39\x5e\x22\xc0\x5f\x15\x6f\x13\x4e\x8c\x24\xfa\x71\x92\xc7\x03\x8a\x05\xd3\x3a\x81\xa0\x56\xeb\x78\xcc\x5f\x7e\x0a\xd4\x66\x32\xf1\xd8\x01\x2d\xd4\xda\x95\x47\x00\x00\x80\xcc\xd8\x98\x81\x37\x8e\x0a\x78\xda\xf2\x70\xe7\xc9\x48\x77\x7c\x1a\xe6\x91\x9b\xe7\x31\x80\x8a\xef\x8d\x37\x41\x98\xa1\xdf\x12\x66\x69\x6a\xa2\x7b\x7b\x57\x56\x26\x90\x4a\xf0\x66\x28\xe0\xa4\xde\xc6\x4d\xb3\x0d\x73\x39\x28\x5b\x86\x84\xab\x4b\x3b\xb7\x4a\xc2\xb5\x73\x72\xc7\x1b\xdd\x8c\x5a\x11\x34\x16\xf1\xbf\xd6\xf7\x5a\xcd\x66\x0b\xa6\x95\x74\x0e\xde\xf9\xd8\x37\xa2\x50\x8d\x63\xf0\xf3\x51\x9d\x91\xf8\xf9\x68\x42\xe6\x89\x27\x99\x56\x3f\x14\x81\x88\x51\x38\x71\x13\x7a\x9b\x70\xa1\xda\x44\x4a\x64\x91\x57\x2a\xb2\x0c\xf4\x62\x67\x41\x82\x1b\xf7\x74\xdc\x5f\x5e\x05\x5a\xc2\xdf\x20\xf9\xfc\xbb\x75\x4d\xa7\xa0\x07\x6d\x7a\x86\x29\x66\x74\xaa\x21\xab\x8e\x93\x76\x07\xd1\x90\x15\xc4\xef\x9e\x7a\x87\x4f\xd8\xe9\xe1\xed\xcd\xa3\x1f\xfd\xbf\xc0\xb4\x4f\x2b\xb1\x05\x86\x45\x06\x3d\x65\x43\xb6\x2b\xfa\x13\xef\x92\xf3\xe7\x4a\x8e\x38\xeb\xd4\x07\x00\x45\x13\x48\x06\x70\xba\xeb\x2f\x1c\x50\x13\xc0\x35\x8a\xd0\xc2\x5f\x41\x33\xf8\x3c\xe2\xe4\xfd\x0b\x70\x77\xfa\xc6\xac\x5d\xf9\x4d\xfe\xc9\xf0\xfd\xf2\xcc\x9d\x3f\xf7\x45\xd4\x03\xfc\x17\x3b\xc1\x01\x0c\x66\xfb\x97\xa4\x52\x92\xfd\xde\x80\x1d\xb2\xa9\x1a\xfd\x03\x18\xea\xee\x5f\xc1\xfc\x66\x73\x1a\xac\x6f\x2b\x68\x7b\xa8\xe0\x64\x72\x58\xe8\xcf\x80\xb4\x1f\x51\x05\x5f\xda\x99\x22\xe1\xe7\x2d\xad\x77\xef\xaf\xaa\xa6\x7e\x0b\xd2\x87\x3e\x43\xcf\x9d\xc6\x88\xfe\x8c\x4a\xc8\x3f\x25\x2b\x94\x81\x7e\x6f\x93\x97\x39\xe6\x66\xca\x14\xca\x83\x19\x12\xef\x02\xc1\x4a\x36\x40\x74\x26\x5f\x80\xa9\xe6\xed\x2c\xfa\x8d\xe9\x9f\xc0\x4e\xbd\x7f\xea\x4f\x4e\xb4\x8e\xd0\xcb\x88\x1f\x41\xa1\xdf\x7e\x0a\x26\x21\x2c\xd0\xf7\xd3\xb0\x38\xa3\xad\xe5\x60\x6b\xfc\xaa\x16\xe1\x4b\xb8\x45\xe8\xa2\x7d\xfd\x40\xf8\xe2\xdf\xd4\x08\x78\xe5\xe8\x36\x41\xd6\xb3\xd9\x8d\x7a\x58\x14\xca\x5f\x06\x0e\x33\xcb\x50\x16\xda\xf8\xe4\x08\x14\x33\xfd\xbb\x64\xf8\x8d\xad\x44\x78\xde\xef\x9a\x88\xda\x6d\x00\x7c\x0c\x36\x47\x64\xc3\x53\x0d\x74\xaf\x9c\x01\x8f\x2b\x81\xe1\x4a\x57\x40\x6e\x95\x04\x16\x78\x05\x58\xef\xdd\x85\x07\x9d\x46\x03\x34\x46\x7d\xb6\x00\x52\x21\xeb\x54\x2a\x76\xb6\x1a\x9c\x32\x00\xac\x37\x75\x00\x4a\x2a\xb5\xa3\xf7\x5a\xa0\x06\xf3\xf2\x04\x0d\xcb\x5c\xad\xe1\x5a\xc1\x29\x48\xba\xcf\xb6\xc1\x32\xca\x5c\xb1\x4b\xc1\x5e\x09\xe4\xde\xf4\x63\xf8\x28\x4c\x00\xd4\xf3\x68\x0d\x73\x27\x25\x55\x02\x11\x1e\xab\x63\xba\x20\x93\xea\x54\x61\x1b\xc4\x2a\x99\x5b\x22\xa9\x12\x4f\x14\x55\x80\x91\xe5\x42\xdb\x59\xc3\xb3\xfe\xcc\x66\x4a\xa1\x60\x0f\xa0\xc3\x4a\x75\x16\xee\x61\x6a\xd4\x9b\x7b\x06\xc6\x03\xd8\x5a\xc6\x6a\xd0\x34\xd3\x44\x0f\xa6\xc7\xd4\xae\xd5\x04\x88\x09\xc0\x08\x82\xfe\x0c\x90\x58\xc5\x30\x77\xa8\x67\x53\x8d\xd0\x92\xc4\xa4\x2c\x2c\xa3\xb3\x5a\x82\x65\x84\x66\x50\xcf\xa6\xf0\xa8\x84\xbc\xb5\x9d\xe1\xd1\x00\x4d\x30\xac\xe7\x9e\x9c\xd5\xac\x96\x28\x89\x8d\xca\xaa\x8a\xb6\xa2\x2d\x32\xfb\x3b\xd0\x1b\x53\x40\x74\x66\xd8\xda\x58\x07\xaa\xa0\x59\xb5\xbc\x4d\x3c\xbf\x90\x01\xf3\x16\x17\x09\x8d\x01\xc1\xdb\x5b\xcd\xee\x83\x0d\x05\x7b\x88\x7b\x73\x6e\x06\x37\xd1\xf1\xb4\xa9\xa1\x22\x4e\xe4\x02\xe1\x22\x51\xdd\xb4\x25\x06\x4a\xca\xe9\x12\xda\x82\xd4\x1a\x68\x5e\xe8\x0e\x20\x44\x44\xd4\xa8\x41\xa2\xfb\xf6\x8a\x3d\x94\x02\x03\xcc\xbf\xf5\xc2\xdf\x99\x20\x5d\x02\x4d\x32\xb6\xb4\x79\xd7\x99\x03\xb7\x02\x66\x4f\xe6\x24\x59\x59\xa8\x2a\x5f\xb5\x2b\x20\x91\x74\x8b\xe4\x8b\xfe\x45\x8d\x4c\xa1\xe2\xc3\x66\xe0\xc8\x38\x98\x8f\xdd\xeb\xdf\xe3\x8c\x2b\x96\xa1\xc1\x70\xcc\xd0\x06\xf9\x88\x80\xde\x68\xa0\x8e\xbe\x61\x30\x7f\x78\x8b\x06\x86\x96\x8a\x76\x15\xcc\xd4\xd1\x03\x42\x7d\x87\xcc\x58\x60\xac\x55\x58\xff\x48\x73\x3e\x73\x34\x15\xc8\x56\x73\xba\x7d\xf3\x0d\xf6\xbf\x3a\xd7\x3a\x5c\xd2\x96\x92\x3f\xb9\xc9\x2b\x88\x75\x07\xe5\x91\xaf\x77\x8e\x9f\x03\x91\x71\xd1\xd7\x1f\x03\xa9\xbd\xdd\x1b\x48\x3b\x72\x15\xf9\x13\x5b\x78\x9a\xc5\xdf\xa9\x71\x63\x0a\x18\x05\x54\x21\xf1\xdc\x31\x82\x81\xbf\xb8\xa5\x31\x60\x76\x41\x9e\x38\x9c\xc5\x48\xf7\xed\x27\x4d\xef\x68\x58\x77\xcf\xc0\x9a\xf5\x44\xc6\x89\xf6\x1f\x01\xfc\x3f\x1a\x24\x37\x1e\x5a\x67\x01\x06\x7c\xea\xd1\xd8\xe4\x69\x61\x59\xde\x3a\x59\x81\xa1\xc2\xaa\xef\xde\xd8\x06\x0d\x5b\x56\x3d\x71\x29\xd1\x5d\x47\xeb\xdc\x34\x54\x34\x61\xc2\x8a\x38\xf0\xcc\x0c\xd9\x4a\x7d\x95\x4c\x09\xcc\xf6\x60\xff\xb5\x97\x76\xd1\xf3\x5d\x1f\xf3\x17\x1a\x7a\xe7\x89\x04\xf8\x0a\x31\x42\xb3\x76\x30\x53\x1a\xb0\xd3\xe2\x5b\x05\x4d\xd5\x52\xfe\x53\x74\x74\x5b\xe8\x09\x25\xf5\x4a\xe6\x88\x7c\xa0\xba\x56\xb6\xe6\x56\x9d\xa2\x51\x99\x0f\x74\x95\x13\x64\x87\xab\xaa\x4a\xff\xea\x80\xbc\xc6\x70\x81\x5b\x8f\x61\x1f\x80\xfa\x67\x1c\xae\xe6\x41\xe7\x13\xa6\x57\x5f\xec\xac\x6d\x8b\xc5\x93\xaf\xc2\xe6\x1c\x7d\x8e\x93\x2c\xc7\xbd\xfd\x4e\xa1\xe0\x5c\xb3\x2b\x60\xd5\x8f\xbe\x02\x5b\x0a\xa6\x0b\xe9\x9c\x41\xe6\x45\x36\xf3\xf5\x83\xce\x8f\x8f\x14\x1c\x7a\x68\x18\x0e\xb0\xc1\x61\xa3\x82\x78\x91\xb8\x38\xaa\xb5\x95\xab\x50\x49\x33\x45\xeb\x37\x17\xdc\xdf\x58\xb0\x2e\x50\x58\x9c\xae\xe0\x49\xcd\x43\x3e\xda\x0b\x6a\x95\x33\x55\x60\x94\x25\x36\x02\x08\x13\xa3\x01\xa4\x31\x1d\xcd\x72\x4b\xe1\x33\x02\x3a\x65\xe6\xb3\x6d\x20\x7b\xf2\x09\xb8\x66\xba\x42\x38\xe5\x8f\x61\xa6\xe2\x8a\xaa\x67\xb0\x0f\xe5\x41\x08\x87\x83\x90\x93\x80\xce\x7b\x0a\xf9\x2c\x19\xbd\xaa\x2a\x2f\x3f\x76\x74\xd1\x26\x51\x05\xca\xdf\x92\xb3\x0b\x36\xc6\x79\x18\xdb\x16\x58\x5c\x5e\x0d\xd2\xfa\xe3\xef\x71\x24\xe5\x5a\x1f\xb4\xac\x8f\xf1\x79\x86\xf4\x20\x24\x52\x83\x9c\xbb\xa6\x15\x2b\xf2\x78\x6f\xac\x75\xf4\x90\x6c\x23\xac\x85\x6e\xdd\x83\x37\xc8\xfa\x17\xb6\x61\x49\xf8\x33\x9b\x68\xe1\x51\xc7\x48\x3f\x92\x5c\x7c\xae\xe1\xdd\x9e\xe2\x63\x0e\x9e\x12\x3c\xf6\x67\xa9\xa7\xbc\xf9\x4a\x37\x56\xc1\x2a\x4c\x5b\x15\xac\x52\x70\x98\x14\x78\x76\x09\xdb\x00\x91\x99\xc2\x63\xec\x72\x0e\xdd\x3a\x6a\x28\xfe\xd2\x6b\x90\x26\x6a\x28\xe1\x42\xd3\x7d\x87\x32\xda\x98\x3a\xae\x86\x3c\xea\xd6\x2a\x6d\x4a\xd9\x20\xf1\x68\x13\x3e\x1f\x55\x26\x4b\x04\x8c\x69\xa6\x61\x35\xa0\x58\x6c\x6b\xbb\x30\x50\xb0\x72\xdb\xcd\xad\x76\x73\x87\x39\x8d\x37\xb7\xf8\xf3\xd1\x6a\xe7\xf4\x01\xd3\x95\xcf\xf2\xd0\x42\x26\xca\x81\x1a\x88\x9c\x8c\xd9\xef\xf2\x04\x6c\x85\xf0\xe1\x1d\x3a\xf6\xf2\xa5\x1a\xe0\x67\x34\x19\x09\x90\x50\x1f\x51\x49\x20\x51\x17\xd9\xf5\x73\x0d\x74\xbe\xeb\x49\x90\xcd\x9e\x04\xab\x4f\x8f\xc9\x7a\x47\xa6\x46\xd1\x3f\xfe\xca\x26\x1f\x83\xa0\xe7\x59\x9f\xd3\xf0\x11\x50\xc0\x70\x1c\xc7\x15\xef\x1b\xf7\xcb\x8e\x52\x16\xfd\x0a\x4a\xe6\x4b\x20\x78\x52\xb8\x4c\xf9\xf9\x6b\x65\xb4\xbe\x40\xcf\x11\x8c\x68\x1f\xa7\xf3\x45\x8c\x48\x0a\x4e\x7d\xe8\xb4\x4a\x6b\xf0\xde\xd1\x63\x6f\xe9\xa4\x3d\x31\x4e\x33\x5b\x72\x22\x83\x32\x1c\xed\xcb\x4f\xb9\x0d\xb0\xa4\x23\x04\xc1\x19\x24\x6d\x20\x32\x76\x56\x9b\x4c\xb4\x23\xab\xcc\x44\x3f\xb6\xca\xf4\x02\xea\xc1\x38\x9c\x82\xa1\xc8\xb1\x2b\x5c\x15\x21\x25\x83\x60\x0d\xa6\x62\xd4\x80\x0f\xf4\x5b\xb3\xae\xe1\xdc\x1e\x89\x21\xa0\xb1\x17\x58\x96\x1d\x0a\x63\x1c\xd2\xcc\x1e\xee\x3e\x3a\xc6\x12\x8f\xb6\xd1\x39\x7b\xbf\x84\x5f\x92\x56\xef\x46\x6c\x73\x09\x57\x92\x32\x89\x48\x0a\x41\xb0\x31\x60\x70\x9f\xd6\x7e\x13\x5d\x43\x61\x1e\xa4\x39\x8e\x79\x74\x1a\x1c\x8d\x06\xee\xb9\x72\x05\x56\x07\x06\xff\x50\x2b\xfa\xb7\xb8\xeb\x60\x62\x40\x4f\x55\x65\xcc\x3d\xa5\x88\x79\x28\x1e\xfe\xe4\x68\xdd\xf2\x57\xd6\x5b\x79\xcc\x61\xbc\x11\xce\x84\xd1\xae\x3f\xf5\x3d\x1d\x72\x63\xa2\x9f\x4f\x5c\x97\xde\xc9\xa8\x76\x9a\xb5\x17\x7e\xf4\x76\xe6\xb4\x03\x93\xdd\x47\x28\xd6\x23\xae\xcb\xa8\x8b\x32\xd1\x95\xc9\xcc\xd9\xf4\x5e\xc2\xca\x6e\x6f\x4f\xca\xa9\x9a\xc2\x4b\xaf\xd8\xd8\xa8\x64\xb4\xe6\x8a\x95\x09\x3c\x4b\xa6\x61\xcb\xa4\x96\xaf\x3f\x42\x5d\x41\x49\x3a\x74\x30\xe0\xac\xe2\xca\xd9\x9f\xa4\xbd\x69\x70\x37\xe0\xea\xe4\x6c\x8b\xe9\xd7\xda\x7b\x08\xb4\x80\xd5\x07\x6c\xb0\xfb\x60\xaa\xbd\xb0\x1a\x51\xae\xe5\xe4\x4d\xa9\x78\xac\xa6\xba\x3a\xe2\xe5\x13\xb7\x5a\x71\x4a\x03\x97\xd8\xcf\xc8\x41\x9a\xc0\x78\x3f\xf9\x40\xbe\x5b\xa8\x9f\xaf\x6e\xb6\x97\x27\x99\xcf\x5a\x9f\x64\xac\xc1\x8a\xdd\x9f\x7a\xef\x82\xfb\xde\x25\xc0\xa1\x85\x51\x88\xab\x40\x0a\x03\xbb\x4f\x3e\xc8\x5c\xa2\x08\xad\x30\xf0\xfe\x7e\x67\x6b\x84\xc0\xf0\xa4\x75\xfd\x3e\x81\x79\x8d\xa6\x3f\x71\xd2\xde\x59\xf0\xd7\xea\x9a\xfe\xb8\xae\x02\x4a\x85\x15\x03\x26\xb0\x61\x15\xb3\xc0\x15\x4f\x55\xd8\x2a\xd6\xa3\xc5\x1a\x24\x89\xa8\x86\x9c\x19\x2e\xed\x7b\x73\x53\x2c\x5d\x91\x68\xb1\x66\x0c\x93\x4e\xd5\x4f\x85\x1d\x62\xf8\x99\x0e\x91\x4a\x55\x55\x82\x5e\xf1\x03\x3d\xd7\x91\x35\x64\x8c\x44\xb4\xb2\xe8\x42\x92\xad\x46\x83\x97\x8d\xa6\xf0\xa7\x22\x8a\x4b\xa5\x02\x89\xe8\x79\x1e\xa2\x8a\x82\x51\x47\xd0\xa2\x65\x1b\xb0\x78\xa4\x4d\x9f\xe3\x92\x14\x09\x42\x92\x94\x8f\x9e\xf4\x49\x33\xdb\xc3\x2c\x4a\xff\x47\x42\x5f\x6a\x8c\x46\x27\xdc\x43\x30\x2c\x24\x07\x62\x4e\xf3\x49\x2a\x32\x19\xc9\x3c\x1b\xfb\xb7\xfc\xe7\x6b\x3c\x27\x40\x6f\x12\x45\x5a\x4b\xf6\x5f\xae\xa1\xa6\x04\xab\xf3\x74\x5e\xe9\xca\x44\xd7\x2a\x8a\x16\x1a\x25\x8c\x4f\x68\x0f\x7b\xff\xbf\x5a\xde\xc6\x0f\x30\x09\x7a\x09\xc0\xce\x06\x4b\xc2\xb9\x02\xab\x25\x5c\xa7\xd5\xdc\x68\x4f\x4c\xf5\xae\x13\x6c\x69\x51\x45\xd9\x0e\xe7\xcd\xa8\xd4\x52\xd2\x23\xe5\xb4\xeb\x97\x6d\x62\x53\xa3\x7d\xc7\x2e\xa6\x2a\xe6\x2e\xee\x6c\x7d\x4f\x06\x99\x3e\x2c\xab\x95\xfa\xf2\xa5\x5c\xca\xfc\xae\x3e\xea\x59\x31\x3b\x34\x01\x93\xb8\x57\x86\xaa\xa4\x89\x5c\x32\x60\x56\x07\x59\x70\x30\xc9\x54\x34\x9f\x9c\x1a\x0a\x30\xf1\x00\x15\xe1\xcb\x60\x54\xe2\x6a\x91\x65\x0a\x47\x50\xec\xc0\x44\xc5\x6d\x46\xf5\x74\x25\xd0\x99\xb8\x2b\x8e\x7a\xfb\xed\x17\x7f\x24\x9e\xa0\xfb\x11\x4d\x72\x69\x17\xc4\x36\x3a\x52\x76\xd6\xe9\xc8\x18\x0f\x21\xb8\x01\x8c\xbc\x69\x1c\x98\x96\x37\x9b\xbf\xc8\xec\xef\xbe\x4e\x8a\xa2\xe3\x76\x4b\xec\x42\xa7\x25\x21\x9b\x5b\x8f\xd2\x1c\x61\x8c\x04\xb2\xb4\x90\xd8\xb6\xda\xe6\x26\xb5\x84\x30\x86\xaa\x20\xa1\x1f\xcc\x97\x37\x40\xa9\x7d\x43\x16\x26\x05\x6e\xed\x02\x8f\x25\xd4\x97\xf7\xfc\x7b\x07\x3a\x36\x24\x58\xae\xb3\x4f\x41\x1b\xf6\xef\x9f\xb4\x37\x40\x3a\x0f\xc3\xbe\x31\xb9\x06\x23\xca\x9b\x4f\x21\x6a\x4e\x69\x94\x85\x24\xcd\x6d\x22\x7c\x84\x9d\xc4\xeb\x45\xb8\x8a\xe6\x24\x12\xc9\x47\x51\xbf\xef\x64\x2c\xe6\x28\xf4\xf2\x4d\xe8\x2b\xcc\x5c\x50\x40\xb1\x75\xb3\x3f\xa3\xe9\xa4\x8d\x02\xc6\x87\xd1\x10\xfd\x4b\xba\x09\x4e\xbb\x49\x34\xb2\x26\x28\x3b\x5a\x40\xd4\x41\x23\x77\xc8\x28\x00\xf5\xf7\xf6\x5b\x07\xa3\xfe\xfe\x28\x7e\x34\x5d\x3c\x64\x32\xb1\x6e\xd1\xda\x5f\xb0\x94\x68\x45\xf3\x79\xb6\xe1\x8f\xac\xc3\x64\x6b\xb9\xca\x4a\xa6\x84\xd7\x44\x30\x12\x0f\x77\xc8\x56\x0d\x83\xa8\x90\x44\x2a\x34\xd1\x8b\x01\x6a\x0e\xc9\xa0\xa4\x20\xca\x00\x86\xb7\xb8\xe6\x3b\xad\x30\x32\xf2\xd1\xa5\x01\x06\x3e\xbb\x34\xb5\x4b\xc9\xf0\xa0\x47\x0e\xa0\x02\xcf\xba\x68\x1a\xad\xa3\x55\x6f\x63\x2b\xe2\x04\x86\x35\xdc\xa9\x3f\x87\x4d\xdb\x39\xb9\xd1\x5e\xdd\xf9\x69\x78\x04\xe6\x0f\xe7\xfb\xed\x0b\xaf\xde\x8c\x10\xb2\x3d\xf9\x1c\xd7\xfc\x22\x08\x90\xa9\x40\x41\x51\xce\x8c\xab\x79\x37\xdf\x97\x2f\x90\x6b\x65\xb6\x01\x9a\x06\x0c\x50\xbe\xe2\x47\x23\x3c\x94\x11\xc0\xa3\x91\x4f\xdc\x72\xa6\x64\x65\x41\x16\xb9\xa9\xf7\x6a\x79\xab\x62\xe7\x2c\x8c\x08\x79\xef\x52\x1b\xea\xc3\x3a\x7e\x78\x13\x3a\x02\x98\x4b\x66\x4b\x78\x2b\x41\x35\xf7\xf3\x51\x9d\x8d\x01\xa4\xf1\xf0\x51\xa2\xb5\x6a\x5e\x5a\xf8\xf9\x68\x82\xfc\x2e\x57\xc4\x49\x19\xba\xcf\x40\xdf\x29\x3a\x94\xbf\x53\x68\x28\x7d\x8c\x0d\xc3\xac\xc8\x16\x98\x98\x48\xc1\xd0\x69\x06\x44\x28\x11\xd8\xec\x6c\xe7\x54\xcd\x0c\xde\x57\x91\xef\x7c\x63\xc5\xf8\x1e\x90\xea\x2d\x5b\xa3\xd6\xc5\x81\x7c\x35\x3f\x50\x72\x2a\xb6\xc5\x46\x24\xc8\xef\x7c\x16\x98\xbb\x9d\x52\x9e\xbf\x7d\xe8\x59\x7f\x8d\xb5\x60\x42\xa9\x16\x2a\x76\x26\xc7\x7e\x0e\x40\x0b\x3e\xfa\x6b\xdf\xab\x8f\xb1\xfa\x26\x90\xba\x72\x93\xa9\x55\x1d\xb0\xe5\xf2\x55\xd1\xe7\x00\x12\x56\xb0\xb6\x73\xc1\xe8\x61\x48\xaf\xbe\xe2\x6d\x4d\x7a\x53\xf7\x74\xf4\x0e\x87\xbc\x18\x37\x53\x54\x49\xce\xee\xcf\xd4\x0a\xca\xe5\x98\xe2\x18\x49\x76\x34\xaa\xcb\x2d\xd0\x63\xd5\xae\x5c\x05\x85\x80\x43\x76\x40\x85\xf4\x77\x36\xbd\xf9\x6d\x7f\x19\xb8\x51\x9d\x0d\x0f\x9a\xe5\x44\xaf\x9c\xb9\xf8\xff\x5e\xc7\x5c\x78\x03\x9d\xe9\x9b\x2b\xd9\xe8\x13\xa8\x55\x61\x2c\xa4\xe0\x9b\xee\x73\x1c\xd1\x00\xcb\x30\x3c\x05\xe6\x3b\x38\xea\x72\x84\x59\x14\xdb\x3a\xb0\xca\xf5\x21\x60\x78\x0f\xe1\xe6\xb1\xfa\x0a\x35\xfb\xbd\x4b\x4c\x1e\xbd\x7d\x54\x83\xec\xb3\xa6\xbe\x74\x88\x14\x17\x5d\xcc\x16\x9c\x12\x70\xae\x5c\xae\x42\x96\xb6\x11\xac\xdd\x03\x26\xe0\x6e\x6c\xfe\xaa\x28\x68\x23\xe6\xfb\x83\x4f\xff\xf8\x25\x1d\x54\xe3\x21\x6f\x24\x18\x37\xb8\xe3\xa0\x5a\x57\x07\x28\xe8\x54\x2b\x70\xd8\x1e\x6e\x2e\x3a\xb1\xe0\xda\x5c\x09\x95\x0e\xe5\x78\xc6\xb8\x6a\xe3\x50\x94\xa3\xfb\x44\xad\xc2\xbd\x0b\x13\x90\xb8\xa5\x29\xda\xdb\xb5\x0b\xfd\x12\xfe\xc8\xe5\x12\x1e\x45\xfc\x55\xf3\x4a\x11\x16\xe5\xa1\x74\x21\x5f\xba\x92\x62\xa5\x81\xdd\x5d\xf0\x1d\xf6\xdc\x15\x10\x9a\x69\x04\x48\x69\x85\xc2\x9b\x78\x8a\x61\x6d\xb8\x51\xa0\x20\x8f\x76\x12\x15\xb1\xdc\xc4\x6a\x48\x48\xc5\x9b\xf7\xa7\xf1\xa4\x76\xe4\x0e\x1b\x74\xca\xd9\x2f\x41\xb1\x68\xc6\xb1\x2f\x3e\xf5\x5e\xba\x0f\x38\xc4\x95\xf7\x0c\xb3\x8e\x63\x25\xd8\xe4\x23\x43\x51\x19\x91\xa4\x9f\x5e\xe3\xc3\x5b\xf2\xb8\xb1\xc7\xfa\xfc\x39\xf9\x26\xbf\x6a\x18\x44\x58\x11\x10\xe5\xe6\xa6\x4f\x81\xcf\xbb\x72\x45\xc8\x47\x6b\x5a\xb8\x9a\xff\xf0\x3a\x52\x4e\xb8\xda\xb7\x35\x24\xc3\x40\x2d\x8f\x21\x21\xa7\xcf\xba\xc3\xab\xea\xc6\x21\x8f\xb4\x3a\x98\x77\x65\xcb\xf3\xc2\x22\x81\x1f\x61\x09\xea\xc2\x1a\xd0\xb2\x08\x2a\x31\x6e\xb5\x19\x8e\x44\xa5\xe3\x10\x62\x15\x7c\xf4\x1d\xba\xca\x56\xae\x61\xc8\x01\x9e\x4d\x70\x0f\x66\x2d\x89\x86\x60\x83\x92\x43\x82\x83\x8a\xe7\xcf\x09\xa7\x51\x3c\xa6\x5a\xb1\xed\x14\x2f\x21\xff\xf1\xbc\x2a\xa6\xdb\x81\xd5\x0c\x5e\x3a\x93\x43\x8f\x19\xff\xf1\x78\x7b\xe7\x44\x01\xd8\xaa\x44\x9d\x32\x10\x30\xc3\xa8\x4f\x89\x97\xc6\xf0\x96\x59\xf4\x76\x59\x21\xd3\x67\x17\x54\x6d\x05\x58\xcc\x17\x6c\xb7\x0a\x84\x74\x53\xdd\xf1\x29\x50\xe8\xda\xeb\xf3\xb8\xb2\x8a\xc5\x7c\x15\x60\x67\xe7\xd0\xc6\x98\x19\xf3\x66\x5f\x22\x0f\x2f\xd8\x19\x17\xa3\x5d\x28\x82\x16\x2c\x1b\x6f\xff\x06\x4c\x23\xfa\x9a\x2b\x99\x6b\x29\x6f\x66\x15\x18\xb2\x12\x03\xf4\x19\x26\x87\xae\xa2\x09\xeb\x96\x86\xa8\x88\x22\x22\xb1\x9a\xac\xae\x78\x65\x58\xc1\xc5\x0c\xed\x0c\xd6\x6c\xd4\xce\xd0\xf8\x5d\xd4\x78\x82\x9d\x49\x61\x41\x8c\x70\x00\x10\xba\x1f\x17\x1e\x8d\x02\xe9\x47\x4b\x0b\x7d\x49\x13\x27\xc1\x47\x64\xad\x18\x15\x71\xbc\x4c\xca\x90\xfa\x5c\x04\xe6\x84\xae\x57\x6f\x63\x9c\xd6\xb8\xfa\x9e\xa3\xd0\x2a\x6a\xde\x5f\x84\x2d\xbe\x1a\x14\x71\xa8\x2a\x6a\xb2\x8b\xa8\x24\x45\x11\x84\x95\x69\x2b\xd7\xaf\x51\xac\x23\x43\x83\x1b\xa6\xea\xca\x5e\x50\x70\x31\x34\xa3\xa1\x92\x12\x4a\x7c\x28\x44\x1f\xaf\x48\xea\x38\x50\x16\xa6\xb3\x92\x56\x8d\x90\xde\x0b\xb0\xad\xfd\x9d\x04\x58\xbd\x4e\xcc\x65\x12\xee\x30\x00\xd1\x9d\x26\xc3\x72\xbf\x01\x38\xb3\x08\xee\x3a\xb9\x86\x53\x06\xcb\xc1\xa8\x70\x34\xec\xcd\x35\xe4\x6a\x4f\x8f\x2e\x1c\x17\x83\xfc\x82\x2a\x6f\x5f\x72\x94\x67\xcf\x2a\x20\xe7\xf0\x2e\x2e\x60\x3f\x35\x0e\x4c\x89\x0f\x70\x13\xf0\xd6\x70\x72\xdc\xd0\x0b\x1a\xbd\x1d\xba\xc9\xe5\xa7\x89\x70\xcc\x9e\x7a\x4e\xb0\xcc\xa1\x5c\x83\x8d\x4d\x0a\x17\xa7\xcb\x85\x4c\xd6\x96\x90\x68\x61\x0d\xa4\x42\xd0\x75\xd0\x50\x47\x67\xb5\x47\x24\xae\x66\xfa\x52\x17\x72\x14\x56\xa4\x48\x1c\x34\x81\x24\x35\x21\x14\x45\x35\x04\x6c\x5a\x0c\xbe\x95\x85\xc7\x6c\x66\x67\x09\xe6\x35\x11\x02\x54\x1f\x14\x93\xe8\xae\x07\x76\xcf\x80\x11\x9c\x04\x3c\x61\xed\x25\xb7\xab\x01\x93\xda\x8e\xcf\xba\xd4\x8a\x4c\x3c\x9e\xc1\x25\xb6\x0e\x70\x03\x79\x80\x4b\x44\x5c\x55\x8d\x56\xe2\x40\x3c\x52\xbe\x92\x5b\x45\x80\x8b\x18\x6c\x2f\x7c\x5c\x0c\xdb\xf0\x5a\x08\xc1\xba\x72\x67\x1c\x54\x83\x21\xa7\x26\x58\xb7\x9b\x0f\xd8\x66\x4d\xac\xc3\xd3\x9f\x4b\xf7\x0d\x51\x95\xf6\xc2\x0b\xf4\x57\x28\xa9\x95\x58\xa5\x68\x97\xd0\x43\x80\xd7\x5e\xa8\x97\xd9\x39\xbc\xb5\x9e\xd8\x85\x8b\x31\x93\xfe\xcc\x6d\xba\x01\x1c\x2f\xba\x88\x17\xea\xf1\x4a\x2e\xdd\x83\xe6\x5e\x13\xe1\x70\x09\x0b\xdc\xe2\x0f\x67\xc0\x55\x6c\x30\x46\xaa\x7c\x0a\x95\x12\x17\x22\x31\xd0\xe4\xde\x41\x66\x19\xc0\xde\xde\x59\xc0\x45\xc7\xad\x22\x6b\x46\xc7\x2f\x45\xda\x3d\xec\x34\x6e\x76\x76\x93\xf1\xa0\x96\x4d\xe8\xbd\xf9\x08\x34\x6e\x2a\x22\x3b\x92\xdc\xf0\x9a\x7f\xf5\xd1\xd7\xa0\x61\x5d\xf8\xea\xe3\xaf\x5d\x52\xb0\x40\xf0\x5b\x17\xbe\xfa\xf0\x6b\x37\x32\x6a\x5d\x3f\xdd\x9f\xb9\x62\x53\x23\x54\xd7\xc2\x60\xd4\xa4\x0a\xe5\x8a\x7d\x35\xef\xd4\x5c\x3a\x1c\xdc\x1f\xa6\x74\x0e\x9a\x61\x7c\x87\x07\x30\x93\x91\xcf\xbc\xef\xd9\xed\x90\xbc\xe7\x73\xaa\x38\xb6\xe1\x4b\xb5\x62\x5a\xc6\xef\x22\x57\xf0\x57\xd6\x22\x04\x90\x52\x34\x56\xaa\xa9\x6f\x10\x6b\x20\x42\x3e\x87\x24\x00\xe4\x95\xba\xf9\x0f\xfc\xeb\x12\x8d\x8d\x08\xc2\xcd\x7c\x13\xf4\xe4\x68\x7f\x3c\xba\x18\xc9\x77\x84\x51\x50\xe3\xb7\xc9\x4f\x38\xdc\x3a\xa8\x77\x6f\x1c\xfb\x2f\xd7\xc0\xd8\x82\x31\x72\xd4\x9c\xc9\xb7\xe4\xda\x7b\x18\x7f\x2e\x12\x1c\x43\x20\xa4\x36\x85\x46\x52\xb1\x89\x52\x0c\x24\x31\xd7\x44\xaf\x28\x44\xb8\x39\x13\x32\xde\xa8\xb0\x65\xb5\x86\xa2\xa5\x4c\xfd\x5f\x47\x39\xc6\xff\x9b\x08\x56\xbf\xba\x19\x13\xef\x6f\x42\xd3\x99\x47\x65\xb8\x9f\x9a\x03\x2b\xc9\x54\xbb\x7e\x61\xd3\xb0\xc0\xbc\xa3\xbb\x74\x9a\x39\x86\x36\x1e\xb1\xba\xa0\x8f\xb2\x43\xa9\x3c\x58\xbb\x24\xed\x4b\x0a\xe8\x22\x53\x10\x3e\x1c\xac\x60\x76\x5d\xa9\xa0\x41\xfd\x5d\xdd\xb8\x00\x33\x03\x8c\x32\x14\xd8\xa3\xd3\x9d\xd7\x07\xea\x96\xa3\x09\x95\x2f\xa5\x55\x0c\x32\x7b\x44\x0f\xde\x70\xd4\x0f\x1a\x5c\x8d\x83\x4e\x63\x05\xb5\xa2\x95\x4d\x33\xb8\x3f\x7c\xe1\x65\x8a\x8d\xd4\x36\xb0\x96\x99\xcd\xf0\xf9\x98\x5c\x91\x50\x93\x8f\x34\xd0\xbd\xdb\xb9\x7c\x35\xd5\x3e\xba\xd7\x39\x09\xc4\x52\x24\xdd\x83\xc2\x33\x73\xd5\x4e\xf1\x35\x2f\xfd\x8d\xe5\xa8\xdc\x97\x35\x24\x7f\x04\x20\xeb\x14\x1c\xa5\x1a\x74\xd7\x97\x3b\x13\x2f\x63\x00\xe8\x9e\x64\xb1\x1e\x11\xc1\x0c\x10\x2c\x7d\x37\xa4\x1f\xa0\x8f\x34\x2c\xa9\x18\x3e\x69\x58\x5c\x12\x0a\xd8\x89\x94\x49\x94\xbc\x1c\xc2\x27\xe1\x11\xf1\x73\x9f\x09\x13\xf1\x6d\x0b\x7d\xc8\x8f\x27\x81\x96\x86\xa4\x45\x5d\x52\xf9\xb6\xd9\xdf\x1b\x71\x63\x93\xbb\x34\xb9\x1f\x7d\x14\x28\x66\x59\xe4\x88\x4c\x8c\x31\xdc\x3b\xe5\x0c\x2c\x30\x8e\x40\xc0\x88\x83\x03\xbf\xb1\x20\x86\xd1\xec\x7d\x6f\xea\x5e\x0f\x48\x19\x08\x81\xb7\xf6\xd1\xb9\xcf\x36\x61\x77\xf1\x75\xe0\x14\xa3\x06\x70\xd9\xce\xce\x77\x7e\x7c\x2b\xa7\x0e\x86\xf9\xc7\xb1\x01\xa1\xe6\xfb\xc0\x96\xc3\x04\x41\xde\xf8\x98\x32\x53\x23\xfd\xf3\xff\xd2\x75\x18\x46\xe4\xa0\x98\xb9\x78\x15\xa3\xb9\x11\x86\x00\x96\x5d\xb1\xdd\x5a\x01\xcd\x33\x50\x7f\x27\x4e\xf0\xa2\x6d\xf3\x0e\x6c\x9e\x00\x02\x8c\x77\xd0\x2f\xc8\xc7\x21\x5d\x31\x3a\xb7\xa7\xcc\x3e\xf5\x8d\x0f\x34\xb5\xc9\x2d\xc7\xe1\x29\xe8\xfa\xa2\xc0\x59\x06\x36\x86\x88\x91\x9a\x66\xa2\x15\x60\x55\xc6\xc9\xaf\x19\x67\x88\x2b\xd8\x20\xd3\xcf\x47\x0f\x0d\x29\x0d\x8c\xeb\x03\x6a\xf0\x03\x14\xd5\x39\x61\x62\xff\x40\x3f\x70\x1b\x7f\xa3\x29\x16\xd2\xe3\x43\x56\x37\x03\xd0\x1e\x55\x6e\x2d\xba\xcf\xb4\x37\x46\x02\x1c\x84\x66\xd8\x76\xc5\xa0\xa2\x4f\xf0\x02\x8c\xe2\x98\xf4\xb7\x25\x8d\xe2\x15\x24\x29\xfc\x58\x17\xaa\x4e\x8a\x76\x65\x40\x49\x6b\x71\x10\x93\x9a\xf0\x9f\x40\x61\xf8\x95\xfd\x9d\xd5\x9d\xa5\x07\x95\xe9\x43\xa9\x8c\x69\x95\x38\x54\x8d\x59\xa5\x3a\x2a\x37\x81\xd8\x4c\x0f\xdb\xe8\x41\x39\x5a\xfb\x6e\x2a\x58\xc9\x2a\x4f\x8e\x96\xa9\xb0\x42\x68\x70\xe4\x38\x36\x25\xaa\x41\x6a\x60\xcf\x1c\xf9\xc1\x1f\xcd\x90\x18\x83\x3a\xa4\xc5\x10\x80\xb9\x56\xa4\x0c\xa5\x91\xd1\xa2\x70\x78\xda\xca\xfc\x9d\x36\x34\x57\x03\x7d\x32\x03\xcb\x9f\x4e\xe6\x22\xf5\x70\x57\xd2\x2d\x62\xd0\xd7\x30\x46\xd0\x70\xe9\x53\x8e\x0d\xe4\x33\xcc\x64\x30\xac\x90\x19\xd4\xf0\x14\x46\xf8\x3c\x7e\xed\xad\xcc\x9a\x5b\x35\x53\x4a\x93\x3b\x9c\x10\x8c\x9c\xb8\x7a\xbb\x8f\xda\x33\x7b\xf1\xbe\xf9\x7a\x79\x0f\x2a\x40\x8b\xe4\x72\x8e\x34\xca\xc7\x91\xe6\xfc\xf0\x56\xf1\xc6\x5e\xb6\x9f\x8e\xf0\x49\x12\xbb\x33\x69\x8e\x43\x5d\x72\x50\xf1\xaf\xec\x35\x38\x08\x90\x00\x01\xed\x8d\x03\x7e\x3c\xfa\x16\x13\x64\x6c\x7d\xef\x8d\xbd\x62\x04\xa2\xd3\x18\xde\xdc\xe1\x0d\x67\xfa\xb4\xc8\x7d\x22\x61\x3e\x81\xf9\x67\x94\x9b\x56\xaf\xa1\xfe\x1a\x10\x21\xb3\xd7\x50\x81\xa3\x20\x39\xde\x6c\x6e\x42\x39\x3a\x36\x6b\x40\x68\xb2\x40\xd8\xb9\x59\x7f\xea\xef\xac\x2b\x57\x51\x04\x9f\x94\xd2\x2b\xa3\x5d\xa4\x92\xda\xb6\xaf\x81\x00\xea\x1b\xb4\x33\x74\x23\x9a\x18\x90\x1e\x2a\x9e\xba\x2f\xbd\xf6\x36\x8f\xbd\xe5\x3d\x09\xf7\xe6\x73\x4d\x92\x79\xe2\x21\x0f\xfa\x30\x99\x58\x32\xb9\xb4\xaa\xd1\x5d\xbf\x1f\x2a\xe0\x95\x29\x2e\x5b\xf3\xbb\x1e\xb7\x31\x62\x3c\x4e\xa1\xa4\x2b\x74\x9c\x12\x1a\xa5\x8d\x71\x90\xe4\x89\x0a\x15\xe8\x7b\xfa\xd2\x1c\xea\x74\x45\xd0\x40\xcd\x56\xf5\x11\x89\xba\x98\x34\xc5\x07\xf2\x78\x6e\xf0\x9b\x21\x68\xf8\xfd\x62\xf1\xfd\x5c\x8e\xce\x52\xbc\xe3\x75\x9d\x0b\x25\x4a\x00\x2d\xcf\x35\x09\xf8\x08\x46\xbc\x26\x81\x60\x37\x6a\x1a\xfa\x4e\x32\xe1\x10\xc0\x98\x27\x89\x24\x84\xb9\xb9\xf5\x18\x86\xeb\x3f\x60\xdf\x1f\x92\x0f\xd9\x18\x39\xb8\x31\x58\xb7\xf9\x3c\x98\xbf\xb9\x31\x8c\xf2\xd0\x0e\x10\xd0\x53\x8e\x97\xd5\xe1\xb7\x39\x88\xb0\xf6\x68\x94\x84\xd4\xab\x33\xd1\x4c\x1c\x3f\x69\x46\x74\x14\x49\xfc\x9d\x99\x23\x46\x41\xdc\xad\x47\xc9\x11\x51\xd3\x92\xfb\xea\xa1\xa7\x69\xe0\xff\x3b\x55\x2d\xa9\xa3\xd8\xc0\x12\x74\x35\x9d\xcf\x4d\xce\x50\x23\xd9\xe1\x2e\x72\xf2\x20\x37\x15\x4e\x72\xa5\x8b\x8d\x04\x02\x8e\xb6\x55\x28\x75\x00\x07\xfe\x2b\xb8\x41\xc7\xb9\xa2\x63\x09\xff\xc5\xee\xb3\xba\xb7\x7f\xf0\x76\xe6\x0c\x88\x81\x7c\x35\x04\x84\xb9\xab\x62\x40\xa0\xc2\xe5\xb3\x46\x46\xbb\x64\xa4\x72\xa8\x46\x56\xd2\x7f\x23\x3f\xe8\xf4\x8b\xee\x83\x1f\x24\x0a\x00\x03\xca\x35\x54\x42\xc2\x44\x5d\x26\x11\xbf\xba\x23\x09\xcc\x48\x26\x91\x84\xd8\xe2\x89\x09\x1f\x75\x72\xb4\x05\xea\xe0\xdc\x6d\x8f\xc8\x6f\x7d\x0c\x19\x89\xfc\x36\x9a\xae\x82\xba\xe9\xf6\xa3\xdc\xa0\x3b\x2e\x02\xce\x87\xf1\x2b\x37\x12\x00\xa3\x22\x13\x93\xf7\x10\xd2\x54\x1f\xf4\x1b\x94\x6b\x7c\x28\x17\x4e\xc4\x12\x84\x19\xd5\xef\x19\xf7\x74\x74\x07\x94\xa2\x90\xae\xb2\xa1\xfe\xe0\xf2\x59\x30\x1e\xfc\x1b\x07\x48\x3a\x9a\xc2\x54\x3e\x39\x34\xd1\x38\xff\x0b\xa6\xc9\x34\x8d\x60\x1e\xd5\x61\x52\x04\xc0\xdc\x2f\xd2\x0f\x47\xb0\x50\x38\x4a\x77\x78\x0c\xc6\x26\x99\x51\xf6\x27\xfc\xe1\x15\x50\x2d\xbc\xb9\x19\x90\xac\xe1\x01\x68\x0a\x61\x7a\x26\xd8\x16\xe9\x0f\x53\xef\x5b\x81\x71\x1b\x26\x54\xbb\x29\x3e\x17\x95\x99\x64\x4a\x60\x8e\x1e\xb6\xf6\xd7\xf1\xf2\x75\x34\xfa\xaa\x77\x3f\x1f\x9d\xdd\x0f\x4e\xc8\xfd\x46\x70\x05\x50\xe5\xd6\xd0\xb7\xc0\xcd\xae\xd4\xed\x04\x3c\x63\xef\xd1\x2d\x4a\x0a\x31\x91\x31\x87\x04\xdd\x69\xe3\x60\x3e\x66\x1e\x68\xb4\xf3\xe5\x6d\xa3\xf5\xff\x1e\xa7\xba\x49\x26\x4c\x61\xc2\xd1\x6c\xe1\x58\x20\x68\xcb\x08\xb0\x05\xdd\x6e\xe9\x91\xdf\x7c\x18\x46\x2c\xd2\xdc\x47\x66\x73\x78\xfe\x4e\x27\x5d\x41\x44\x96\xac\x93\x29\x6f\x6a\xd4\x9f\x7c\xce\x59\x5b\x49\xb7\xfc\x69\x78\xc4\x52\x72\x7c\x44\xfc\x65\x68\x37\x29\x66\x93\x14\x12\xd7\x0b\x09\x3a\xb7\x0e\xe6\xdf\x0c\xa5\xe1\xe8\x59\xc9\x67\x54\x7f\x80\x0b\xd8\x58\x79\xb0\xb0\x24\x30\x2c\x9c\xc2\x53\x12\xeb\x1d\x3f\xc7\xf4\x2b\xf5\xb9\xf6\xe4\xf3\xf6\xb3\x49\xbd\x2f\xde\x8d\xcb\x47\x89\xb8\x70\xec\x0e\x23\x82\x1c\x04\x4c\xc1\xc5\x37\xa1\xf0\xb4\x30\x16\xef\xee\xe7\x63\x73\x2d\xfa\x37\x5e\x75\x9e\x8c\xf0\x62\x0a\x87\xf6\xa8\xcb\x6d\x98\x35\x4a\xc2\x70\x58\x14\x9a\x04\x92\x5b\x6e\x6c\x90\x1a\xa1\x5b\x61\x2c\x22\x9c\x34\x08\x87\x33\x78\x69\xec\xde\x44\x7c\x55\x8b\xcf\x0b\xa0\x82\x88\x2d\x0d\x55\xcc\x5c\x01\x8d\x55\xb1\x4a\x09\x84\x37\x18\x66\x52\x83\x1c\xe8\xa8\x62\x50\x34\x4b\x55\x77\x09\xe3\xa8\x84\x63\xdc\x42\xb1\x6d\xb1\x5e\x30\x4a\x38\x90\x8c\x78\xdd\x9e\xe2\x85\xe5\x26\x45\x82\x78\x8c\x56\x08\x7c\x2c\x84\x89\x79\x29\x41\x57\x0f\xa3\x57\xb1\x8b\x0e\x65\x4c\x4a\x68\xc4\xbc\xe7\xab\xab\xeb\x08\x73\xbc\xcf\x05\xfb\x96\x76\x4d\xb8\x4d\xba\x2e\x9c\xa7\x3b\xa0\x69\xce\x12\x93\x70\x65\x18\x98\x97\xa8\xda\xea\x06\x28\xd8\x56\x9c\xf3\x08\x83\x41\xe4\x1a\xf0\x61\x0f\xb4\x71\xe0\xd7\xec\x3e\x94\xfc\x72\xad\x22\x59\x3b\x20\xd5\x80\x25\x41\x50\xce\x01\x43\x78\xeb\x76\xf7\xc4\xdb\x7d\x88\x21\xd0\x14\x6d\xdb\xda\xbf\x85\x51\xc8\xa0\xaa\x4d\x8d\xe3\x25\x9f\xc3\x49\x4c\x41\x08\x5b\xa7\x71\xc0\x5f\x38\xe3\x03\x5d\xbd\xb0\xbe\xf8\xf3\xe5\x2f\x2d\x7d\x71\x8d\xcf\xe6\xcf\x0e\x14\xf9\x17\xc6\xd7\xb5\x38\x8c\x8b\xfd\xf7\x9c\x46\x8f\x92\x1c\x6b\x25\xcd\xc0\x5f\xc6\x18\x8b\x7d\x4f\x1c\x6c\x14\x38\x1a\x04\x6f\x50\x80\x55\x0b\x09\x82\x9d\xe1\x1b\xc7\xa6\xaa\x88\xc1\x63\x1c\xb8\x41\x51\x00\x49\x9a\x63\xef\x6e\xd5\xfa\x31\xfa\x8b\x2a\x90\xd1\xca\x17\x95\x8d\x2a\x1e\x05\x71\x8d\x24\x80\xb9\xa0\x2d\xa1\x89\x07\x3a\xd1\xe1\x42\x4f\x38\xb6\x1f\x40\xd3\xdb\x78\xad\x2e\xfd\xc5\x60\xca\x9c\xb2\x43\xe5\xeb\xe8\xd5\x54\x9f\x93\x1b\x92\xee\x5a\xc7\x77\x12\x34\x4f\xc9\xe0\xab\xf5\x4e\x5c\xd9\x0b\x2f\x24\x71\xf8\xf3\xce\xe1\x33\x74\x14\x9c\x2c\xe1\x26\x52\xd9\xff\x44\xb0\xee\x1f\xf2\xc2\x43\x36\x42\x19\xdb\x50\x97\x13\x82\x61\xd0\x4a\x78\x2d\x48\x7f\xe4\x34\x96\xa9\x25\x96\x2c\xbd\x2e\x3f\xe5\x2b\x7b\x9a\xef\x73\x94\xb4\xff\xf8\x6d\xeb\x64\x52\x5d\x7d\xc3\x63\x7d\x1e\x69\xe0\xa2\x27\x76\x2e\x33\xb4\x3a\x07\xfa\x0b\x37\xc8\xed\xb0\x93\xa3\xfd\xc3\x61\xfb\xc1\x31\xae\xdb\xe5\xe7\x18\xb5\x3d\xdb\x48\x46\x8d\xe2\x60\x65\x04\xe2\x61\x8f\xc1\xa8\xf3\x29\x41\x9b\xda\x8c\x33\x7e\x81\x16\x0d\x9a\x61\x63\x1a\xb4\xc1\x05\x44\x81\xa5\x0b\xf7\x30\x76\xd8\x98\x9d\xd3\x71\x71\xca\xe1\x56\x55\x3e\x39\xed\x55\xec\xec\xae\x77\xef\x8f\xf2\x1e\x57\xd9\xc6\x25\x7b\x91\x37\x37\x6f\xee\x77\x95\x06\x44\x6b\xc7\x3a\x19\x1c\x48\x56\xed\xc3\xe2\x1b\xae\x60\x14\x80\xc1\x0c\x86\xfb\xff\xba\xfc\xe7\xcf\xf9\x0a\x10\xf5\xfb\xdd\xfb\xd7\xae\x5d\x7b\x1f\x75\xac\xf7\x6b\x95\x82\x5d\xc2\x8f\x39\xc1\x89\x13\xae\xc8\x45\x23\xc0\xe9\x3f\x88\x8b\x58\x06\xa1\x64\xa9\x53\xea\xd8\x70\x7a\x1a\x53\x4e\xe1\xb4\x98\xb9\xa2\xd9\x4d\x60\x9a\x3e\x36\x98\xfe\xea\xa6\x4f\x6c\xe6\xdc\x42\x26\x7b\x25\xb8\x1a\x2b\x71\x86\xd1\x65\xc0\x50\x79\xe8\x8e\x13\xd9\x2e\x9d\xf8\x8f\xc7\x39\x91\x6d\x04\x86\x8f\x63\xf8\x20\x46\xa5\xde\xd6\x20\xf6\x55\x3b\x88\xee\x96\xf4\x7c\x74\xdf\x64\xca\x5f\x5e\xea\x6c\x3d\x81\xc9\x34\xf8\x1d\xf2\x35\x9a\x69\x4a\xc3\x12\x69\x84\xa2\xd7\x9c\x52\x61\x88\x92\x64\x12\x75\x64\xd6\xb0\x44\x2d\x1c\xae\x1f\x5e\xf6\x5c\x9f\x52\x3e\xc1\x9f\x95\x21\x72\xd3\x13\x0b\xbb\x75\xcb\x50\x79\x87\xbd\xfa\x78\xa0\xef\x82\xce\x87\xea\x7b\x7d\x3e\xd6\x10\x5f\x86\x95\x84\x78\xde\xfc\x31\x66\x3e\x1c\x7f\xea\xbd\x7d\xd1\xda\x6f\x7a\xbb\x7b\x71\x78\xd3\x11\xd5\xa3\xd4\xcc\xc5\xc9\x9e\x7c\x0c\x04\x95\xf3\xa0\x04\x42\xc8\xf2\x48\x26\x92\x66\x74\xa2\xfd\x44\x41\x39\x9b\x59\x4a\xf2\x87\xd0\x8d\xd8\x58\xa9\x4e\x34\x75\x7c\xc7\x14\xb3\x22\x78\x17\xdf\x48\xce\x0c\xbe\x4d\x4e\xf3\x08\x4a\x81\x31\x95\xe1\x19\x40\x0e\x40\xdb\x3f\x2e\x73\x62\x57\xcb\xa2\x2c\x46\xeb\x0f\xc4\x62\x92\x45\xaa\x80\xf6\xea\xa2\xa7\x02\x2a\x4a\xb4\xea\xe2\x2c\xa9\xcd\x51\x1a\x28\x3d\xf3\x98\x6c\x04\x1d\xfc\x1c\xaa\x41\xd4\xc5\xe4\x78\xf4\x4c\x84\xa9\xd1\xf0\x26\x95\xa5\x2d\x01\xcb\x21\x92\xf0\x06\x0a\xf8\x22\x5e\x15\xe2\x3b\xb3\x6c\x8e\xf0\xb5\xc2\xd0\xe9\xeb\x65\xac\xc2\x47\xda\x4b\x63\x30\xa4\x30\x9d\xb9\x41\xbe\x5f\xa3\x6e\xca\x44\x0a\x23\xd9\xb8\xa3\x9b\x79\x30\x53\xc2\xb7\x06\xba\xeb\xf3\xdd\x91\xb0\xb1\x5e\x2e\x38\x43\xe6\x9d\x51\x4e\x3d\xac\xef\x3b\x9a\xe3\x0a\x80\xd5\x65\xda\x64\x58\x0a\x91\x0d\xda\x45\x55\x8f\x52\x09\xa2\xb2\xce\x9a\x25\x5d\x99\x32\x6b\x47\xcc\xe2\x90\x03\x37\x01\xd9\xc8\xb5\xc7\x18\x33\x0c\x5f\xd1\x34\x3b\x4a\xbc\xa2\x69\x56\x7b\xc7\x3d\xcd\x78\x5b\xc6\x3d\xcd\x10\xb5\xe2\xf7\x2f\xcd\xba\x3d\x2e\x60\x26\x8d\x35\xea\xa7\x4c\x26\x7a\x42\x85\xa8\xcf\xd2\xa8\x18\xf8\x2c\x95\x07\x47\x72\x48\x2b\x9f\x65\xc4\x2a\xef\xad\x7f\x26\xf5\xab\xaf\xab\xc7\x10\x0e\x79\x31\x73\xf9\xfe\xfe\x8b\x7d\x15\xe7\x9a\x8b\xd7\x1c\x6b\x95\x2c\xcc\xf9\x8f\xb3\x9d\xad\xba\x92\x37\x04\x80\x27\xae\x78\x2d\xa9\xfe\xa6\x73\xeb\x7a\xfb\xfa\x81\x7c\xe6\xd3\x3a\xb9\x43\xaf\x0e\xeb\xa8\x84\xce\xbc\x22\xc9\x7a\xe9\x3c\x03\xf4\x07\xb4\x7e\x48\xba\x0a\xac\x3b\xe8\x5c\x4b\xe3\x5f\x74\x3d\x13\x26\x8a\xb5\x36\xd2\xd7\xda\xcd\xd5\xce\xee\x9a\x02\xc4\x62\x21\xe8\xe8\x0b\x4c\xd3\xaf\x24\x8c\x25\x11\x09\xfc\x04\x01\x58\x5a\xc0\x96\x16\x0e\x8c\xab\x56\xca\x2b\xa2\x2a\x5c\xa0\xd3\x4d\x7f\xf6\xb6\x37\x6a\x38\x62\x40\xe7\x8f\x40\x30\xf5\x34\x84\xa2\x17\xec\xf2\xd6\xe1\x14\x58\xf0\x94\x74\x9a\xbe\x51\x90\x32\x67\xda\xe0\xcb\xd2\x12\x9f\xac\x83\xa1\x2f\xf6\x08\x8a\x56\xc5\x1c\x79\x4e\x7f\x4b\x48\x0b\xae\xd8\x89\x7a\x00\x91\xab\x64\xfa\xc1\x3e\x98\x9e\x68\x6f\x9f\x06\x5f\xcb\x15\x5b\x55\xeb\xae\x4b\x0e\xe4\xa0\x14\x68\x86\xc4\x6f\x6f\xbf\xa2\x9b\xa1\xea\x73\x28\xec\x42\x7d\xcc\xa0\xcd\x80\xa9\xcf\x31\xa1\x90\x81\x63\xeb\x60\x12\x5d\x16\x6f\x5f\x9a\x24\xbf\x90\x0b\xe8\x16\x39\x28\xc6\x4b\xf9\x17\x5c\x4b\x1d\xf2\x6b\x54\x68\x79\x71\xca\x46\xff\x70\x4e\x2d\x30\x55\x5c\xcd\x0c\xc8\x0b\x1a\xa1\xf8\x94\xa0\x98\xf4\x41\xf3\x44\x3e\x5c\x57\xa5\xcd\xe7\x18\x66\xcc\x69\x14\x04\xeb\x87\xce\xf4\xf1\xf4\x87\xa5\x7f\x64\x66\x74\x9a\x7f\x22\xbe\x70\x3e\x05\xa3\xb4\xc3\x6b\xa0\x96\xa7\x8b\x8a\x33\x85\x25\xc8\x67\x99\xca\x95\x9c\x73\xad\x44\x42\x84\xa9\xab\x8c\x2a\xd5\xcc\xb5\x0a\x39\xcf\xe9\x6b\x94\xfe\x14\x92\x87\xc7\x90\x77\xeb\x68\xd4\xac\xdf\x84\x6d\x18\x47\xc0\x0c\xe2\xd5\x7e\xca\x68\x37\xa8\xeb\x52\x8e\xea\x9d\xef\xd1\x11\x77\xeb\x71\xe7\xf8\x58\x1e\x7d\x89\xae\x1a\x51\x21\x4f\x1f\xe8\x0b\x2c\x7a\x19\xa9\x87\x8f\x12\x2a\xa9\x4b\x68\xca\xdc\xf0\xe6\x6f\xb5\x57\x37\x83\x5c\x68\xcd\xc3\xce\xee\x2e\x7a\x29\x97\x9f\xe3\x36\x62\x92\xde\xba\x8b\x69\xc2\x16\x56\x5b\x87\x5b\xed\x99\x86\xb7\x7e\xc3\xc8\x5c\xa7\xfb\xc0\x0c\x3c\xee\xa0\xcc\x42\x14\x03\x4a\x6e\xcd\xfb\x80\x23\x9c\xa2\xbb\x81\x4c\x43\xb5\x1f\x64\x0a\x78\x11\x8b\x11\x1c\x5d\x6e\xe9\x4c\x01\x6f\x9c\x0d\x49\x66\x29\x73\xa5\x98\xc2\x87\x97\x8c\xf8\xec\x18\xb5\x87\x37\x8d\xfc\xe0\xe7\xcf\x7d\xe5\x54\x06\xbe\x36\x52\x03\xaa\xf4\xd4\x46\x5a\x40\xb3\x34\x72\x25\x92\xc1\x30\x32\x91\x52\xc9\xe2\x35\xa2\xdd\xe1\xf6\xea\x0e\xfa\xe4\x1b\x77\xfc\x9b\xb3\x7c\x1f\x92\xbc\x87\xd3\x94\x5f\x52\x72\x81\x71\xa2\x0a\x69\x4e\x27\x15\x93\xfc\xc5\x46\xe6\x21\x76\xd4\xb1\xbb\x06\xf8\x9c\x99\xff\x95\x13\xe6\xb0\xb2\x1c\x3c\xa6\xa4\x12\x27\xd1\x6d\x18\xd6\x02\xe9\x85\x22\xf4\xe4\xf2\xa1\x0e\x5e\xe2\x2f\xdb\x4e\x19\xf9\x8b\xe1\xc8\xa2\x2c\x74\xf8\x4c\x8c\xeb\x14\x6d\x8a\xc5\xbe\x3e\x4c\xd9\xd7\xef\x61\x28\x26\x05\xcb\x71\x36\x44\x57\x11\x87\x52\x14\x62\x22\xa3\x6b\x94\x4e\x19\xfd\x65\x78\x25\x65\x5a\xb5\xc7\x05\xe1\x94\x5a\xfb\x4f\x13\x6e\xee\x60\xab\xa1\xb7\xa0\x54\xd3\x48\x29\xbe\x38\xce\x88\xca\xf9\x73\x72\x9a\x44\xf9\x2e\xe1\x0e\xf8\x3d\x06\xaf\xd7\x7f\xe4\x52\x7b\x43\x12\x43\xf8\x2b\x9b\x4c\x6a\xce\xcd\xe6\x8d\xc2\x62\xba\xc3\xc3\x09\x92\x41\x62\x07\xc1\xfd\xab\x61\x6f\x16\xa0\x57\xb8\x2b\x0e\x5d\x95\xce\x41\xee\x8f\x3c\xe4\xd0\x55\x75\x3d\x90\xea\xe3\xad\x97\xbc\xeb\x6a\x2d\x23\xb8\x2b\x09\x68\x70\x55\x4c\x3b\xf0\x56\xfc\xdd\x7c\x5a\xb5\x33\xd1\x3e\xdc\x22\x23\x30\x39\x67\x98\xb1\x5c\xff\xee\xb4\x61\x46\x1b\xef\xb8\x9d\x18\x3c\x8a\x45\x75\x7e\xed\x21\x6a\x90\x2b\x4b\xfa\x1c\xdd\x0e\xab\xde\xc9\xcf\xbb\xe9\xe2\x1e\xa9\xb3\xde\x71\x9a\xd9\x03\x57\x39\xcd\x84\xa5\x66\x62\xc4\x89\x37\x43\xb9\xb1\x7a\xd4\x30\x17\x28\x57\xfb\x0f\x49\x93\xa5\xb3\x03\x26\xa5\xc9\xea\x31\xd2\x20\x75\x84\x31\xd4\x77\xd9\x7a\x29\x33\x5b\x60\xdc\x12\x4c\xba\x6d\xdf\x0b\xf6\xdd\xd7\xee\xf5\xa8\xb4\xc3\xf6\xd7\x5c\xbb\xef\x71\x36\x91\x78\xff\xbe\x17\x8e\xc8\x52\xe4\xe5\x0d\x9e\xb2\xd0\x25\xfc\x24\x68\x75\x57\x55\xe0\xff\xce\x9b\xf8\x49\x9e\x7d\xbc\x84\x4a\x97\x30\xd9\x98\xc1\x3c\x33\x31\x57\x37\x3f\xaa\x55\xdf\x0b\xb2\x45\xee\xe3\x41\x9b\xa6\x96\x2c\x18\x62\xaa\x9a\x5a\xb2\x4d\x85\x27\xb3\x70\xce\xaa\xc4\x85\xc2\x9d\xc3\x85\x3a\x5e\x8b\xf2\x47\xf1\x41\x9c\x01\x53\xc9\x5f\x45\x8f\x0d\x7f\x8f\xb5\xc0\xa5\xe1\x26\xb8\xb3\x00\x88\x0f\xb4\x8c\xe0\x6e\x55\x20\x07\x2d\xfe\x83\x5d\x60\xbd\xd1\xa6\x61\xa2\xb3\x36\x5e\xd9\x7e\x38\xd7\x59\x9c\xed\x1c\x3e\x6b\x35\x8f\x83\x52\x3e\x03\x4a\x99\x69\x55\x83\x42\xd0\x17\xb0\x8c\x32\x72\xea\xd7\x1b\xa4\x4c\x24\x9d\xf6\xc2\x91\x32\x86\x89\x2f\x49\xe4\x51\x1c\x2b\x56\x40\x75\x58\x9f\xfb\xf0\xde\x26\x16\x1c\x69\x06\x33\xfe\x73\x56\x10\xae\x4f\x29\x30\x51\x50\x5e\xc4\x0c\x93\x92\x5e\x52\x89\x34\x2e\x30\x91\x0b\x97\xa0\x56\x23\xe9\x5c\x00\xb5\x26\xba\x47\x49\x02\x24\x94\x6b\x82\x1b\x52\x07\x75\x37\x3a\x31\x94\x4b\x97\x98\x40\x0c\x6f\xcd\x22\xa7\x7c\xf1\x28\x48\x2d\x6a\xa4\x51\xa1\x66\x49\xc1\x55\xfd\x7a\x63\x0f\x00\xe3\x70\xbf\x26\xc0\x2f\xe8\xf8\xa7\xe1\x11\xb9\xae\xab\x0e\x64\xde\x85\x01\x3f\x63\x22\x18\x48\x76\xc8\x10\x06\x26\xc0\xaf\xc1\x00\x73\x7a\xb3\xeb\x18\x50\xe1\x87\x8a\x46\xdf\x80\x5a\x63\x2a\x3f\x78\x0d\x80\x1a\x49\xc2\x4c\xdd\x5b\x0e\xe4\x73\xe8\x02\x33\x03\x05\x31\x3a\x04\xa2\xc4\x0c\x17\xd2\xe2\x77\x63\x92\x3f\xc8\x10\xcc\x03\x68\x1c\x9c\xbd\xad\x2d\xd6\x0a\x4c\x07\x03\x5d\x68\x5f\x80\x9a\x4a\x92\xbe\x35\xad\xbd\x48\xcc\x4b\x98\x3f\x30\x6a\x5a\x6f\xe3\x91\xc9\x26\xe2\xb2\x64\x39\x9a\x34\x40\x95\x01\x86\x15\x39\x23\x2f\x4b\x68\x6d\xa3\x6f\x87\x54\x20\xb5\xe7\x79\x36\x12\x7a\x36\xda\x53\xe6\x1d\x93\x28\xc4\xad\xe3\xb0\x86\xdb\x26\x39\xed\x0b\x09\x53\x3d\x91\xa6\x14\x3a\x9b\x81\x9b\x48\x62\x8c\xc0\x8d\x63\x64\xce\x1b\x2f\xbc\x99\x26\x9e\xb2\x46\x12\xf7\xc6\x52\x15\xc5\x10\xd5\xee\x2d\x72\x25\x87\x06\x17\x48\x6a\x63\xc7\xc7\x95\x46\xb5\x16\x39\x4b\x12\xe0\x10\xde\x5f\x7a\x0d\x30\x13\x31\xac\x7e\xb5\x6e\x22\x43\xc2\xf3\x21\xb2\x93\x22\x9c\x03\x1f\xdd\x98\x7d\x0a\xad\x18\xd1\x0e\x26\x4b\xf8\x8f\xc3\xcc\xf4\xe3\x30\x0b\x0a\x25\x8b\xe9\xc1\x31\xde\xd1\x3f\x6a\xe8\x94\x5c\x24\xb2\x29\x7e\x19\x41\x08\xc3\x38\x27\xe1\x37\x3e\x35\x33\xa1\x0c\xcc\xe4\x9f\x56\x87\xfe\x06\x96\x21\xfb\x87\xbb\x50\x26\x50\x64\x57\x18\x2f\xbb\x9a\x3b\x23\x0c\x2d\x71\x0f\x14\x8b\xc6\x82\x2f\xde\x5a\x09\xcc\x37\x34\x8b\xd1\xef\xa0\x52\x6a\x7b\x7b\x2b\x9d\x86\x84\x27\x98\xdc\x4e\x05\xdf\xe8\x3c\xe8\x3a\xd1\x73\x90\x5f\x45\x3d\x88\x41\x04\xff\xba\xf7\xfb\xd1\x78\x84\xa6\x1e\xca\x55\xf9\x07\xcc\xe7\x86\x95\x62\xaa\xca\x12\xb2\x2d\xab\x22\xbc\x9f\x8f\x17\x54\x95\xa2\x6f\xa4\xa9\x56\x20\xfc\x58\x56\xe8\x95\x2c\x55\x24\x31\x40\x29\x79\xf2\x65\x76\x0e\x1f\xb7\x54\x09\x11\x9c\x52\x9e\x42\x54\xd4\x5b\x95\x30\x06\x35\x00\x74\xe5\x98\x37\x2b\xa3\x57\x2a\x8d\xa1\x93\x5b\x13\x68\x8c\x7a\x15\xb7\x44\x3e\x4f\xed\x22\xd5\x70\x4e\xd9\xae\x84\x72\x1e\xeb\xe4\xef\xa1\xd6\x86\x60\xba\x8a\xe4\x4a\xad\x29\xbc\x01\xb7\xce\xd6\x58\xfb\xd6\x1b\x1f\x0f\xab\x12\x7a\x4e\xe7\x4b\xfd\x8e\xa4\x76\xd7\x2f\xc1\x12\x1a\x78\xcd\xa5\x8f\x9c\x7d\xf4\x92\x8d\x7e\x70\x6c\xca\xf8\xba\xff\x54\x07\xde\x85\xbe\x72\x26\xc0\xe8\x57\x1d\x2a\x95\xf0\x95\x33\x82\x44\xcb\x3a\x3f\x3e\x0a\x7d\xc2\x17\x85\xd7\x40\x5a\x1d\x86\xbf\xae\xac\xf1\x06\xe4\x03\xa3\x50\x19\x26\xba\xa5\x08\xb8\x58\x3b\x14\x0d\x17\x1b\x4e\x38\x43\x5f\xb8\x8c\x75\xb8\x44\x44\x39\xe1\x4d\xac\x86\xe1\x4a\x8d\x95\xf1\x7b\x82\xf4\x5a\x63\xa8\xc0\xd0\xdf\x63\xbd\xa8\xa0\xe4\x68\x01\xfb\xa8\x62\xe0\xd4\x48\xab\x09\xfb\x75\x2d\x36\x43\xb4\x79\x63\xed\x48\xcc\x6e\x52\x8d\xee\x83\x9b\xca\x63\x94\xb0\x32\xc5\x81\x2b\xe2\x4e\xde\x3f\x4e\x00\xe3\x77\xd8\xe8\xfa\xc2\xe8\xab\x64\x90\x4a\x0d\xad\xf2\x2d\x72\x66\x07\xe5\x18\xf7\x5f\x4a\x4b\x7e\x43\x87\xd2\x1a\x81\x3c\x46\x0d\x6f\xf9\x29\x27\x35\x34\xe7\xee\xec\x9a\x81\xe8\xe4\x18\xb6\x70\x0b\x12\x00\xc0\xc2\xde\xc8\xce\xa9\x1b\x14\x21\x9c\x2f\xd1\xa9\x6e\x26\xb0\x1e\xd5\x99\x8b\x6e\x96\xcf\x81\x75\x1e\xb7\x5f\xd0\x42\x1c\x35\xdd\x06\x0c\xeb\xdd\x48\x91\xcf\x0e\xf3\x99\xe4\xaf\xda\x61\x74\x64\x9f\xed\xdc\xa7\x5c\x5b\x67\x57\x8c\x60\x61\x56\x3d\x03\x05\x7c\xd5\x71\x20\xab\x1e\xa8\x53\xaf\x1a\x8b\xe7\xf4\xd1\x0d\x6f\xf9\x04\x83\xe6\x16\xde\xf4\xaa\x93\xdc\xab\x51\x31\xb1\xd7\x8a\xed\x0e\x95\xb2\x69\x7a\x8b\xd0\x1d\xa4\x33\x4f\xbe\xfe\x25\xa9\x69\x7f\x73\x11\x3e\x7f\xc0\xc9\x5a\xf2\x7f\xb3\xe9\x68\x10\x9d\x5b\xf2\x7c\x6b\xbd\xb3\xf3\xc4\x9b\xbf\xf5\x33\x46\x29\xd3\x13\x90\xea\xc9\x65\x39\xaa\x3b\x58\x95\xd4\xee\x62\xa5\x4f\x9c\xdd\x77\x64\x0c\xcc\x08\x4d\x7c\xde\x35\x06\xe3\xd4\x3d\x3c\x10\x93\x28\xa8\x8b\xfc\x95\x00\x35\xa7\xa8\xb3\xcb\x57\xe7\xe8\x66\x69\xa6\xcf\xc5\x94\x37\xa9\x17\xfa\x66\xb7\x89\xf3\x10\xeb\xb2\xc7\xa0\x42\x52\x86\x1f\xed\xad\x95\xab\x79\x1d\x14\xc3\x4f\x5a\xfa\x8b\x6f\xba\x8b\xaf\x43\xbb\xb4\x56\xc1\x93\xc6\xf4\x80\x53\x71\x6a\x60\x2b\xd8\x72\xb8\x08\xf3\x21\x1f\x48\x42\x75\xc7\x67\x93\x6a\x81\x35\x00\x3a\x4f\xba\xc6\x99\x77\xd8\x6e\x18\x1b\x85\x15\x2b\xe9\xe1\xc2\xb5\xaa\x4e\x35\x53\x50\x75\xd0\x77\x99\x65\x17\x37\x07\x94\xe3\x5c\x8f\x21\xf9\x38\x5c\x0c\xef\x52\x07\x55\xa5\x92\xd3\x57\xcd\x00\x4a\xb9\x14\x43\xf0\xbb\x3d\x91\x5e\xca\x0e\xa5\x8b\x4b\x17\x80\xa6\xb5\x72\x1a\x69\x40\xca\x7a\xf7\x76\x9d\x53\x09\xe1\x39\xe4\xdd\xbd\x84\xd6\x15\x4a\x52\x47\xfa\x20\xa4\x7a\xd6\xc1\xdb\xeb\x21\xf8\xee\xf8\x2d\x7f\x21\xa1\x0f\x45\xb2\x41\x3b\x53\x0e\x11\xcc\xfa\x03\x7c\xb1\xce\x20\x1b\xd5\x88\x12\xc0\xa8\x94\x48\x05\xb3\x52\x3e\x07\x56\x98\x51\xa1\xfd\xc3\x61\x77\xf1\xe5\x59\x15\x28\x86\x40\xce\xb2\xf4\x6b\xaf\x26\xa2\xbd\x6a\xca\x61\x4f\x0e\xa3\x6f\x99\x12\xef\xaa\xe8\xf4\xfd\xab\x9d\x05\x16\xce\x30\x8d\x83\xce\x8b\xb5\xf8\x7a\xeb\x73\x9c\x2a\x3e\x77\x5c\x46\x35\x8b\x22\xbe\x88\x7e\x14\x7c\x68\x5d\xc6\x4f\x56\x22\xe9\x18\x3a\x4a\x3b\x73\xa9\x49\xed\x84\x15\x87\x49\xf4\xa0\xbb\x4a\x2d\x5b\xad\xc1\x8e\x95\x3e\x3f\xbb\x8c\xa9\xf7\xe8\xb2\xf4\xcd\x33\xe6\x2c\x56\x3b\xb9\xf3\x78\x6b\xa1\x46\xb2\x99\xec\xa0\x9d\x80\xc3\xef\xf0\xfb\x2f\x40\x22\x56\xbf\x07\x16\xf1\xf6\x42\x1b\x8a\xde\xac\x40\x27\x75\x5f\x2d\x7b\xc5\xae\xe2\xb5\x9a\xc1\x34\x1d\x73\x27\x37\xe8\x4d\xdc\xf3\x1f\xcd\x79\x77\xea\xde\xfe\x54\x67\x6d\x3b\xde\x22\x48\x9e\xa2\x5d\xcd\x50\xcc\x42\x32\x4a\x9f\xfe\xce\xf2\x46\x6f\x88\x6a\x1c\xab\xef\x80\x85\x51\x49\x8b\xe2\x2d\xbb\x16\x55\x98\x80\x3d\x90\x65\x67\xb6\xc8\x7a\x79\xbc\x29\xb4\x13\x58\x12\x66\x87\xb2\xf4\x8a\xca\x24\xec\x5d\xea\x9f\x37\x17\x49\xc0\x08\x61\x29\x91\x36\x54\x22\xfe\xda\x79\xbb\xd2\x7e\xd2\xe4\x8c\xda\x58\x2f\xce\x63\x99\xef\x29\x78\x04\x21\x35\x8b\x01\xfd\xe1\x66\x22\x9b\x04\xf0\x72\x06\x77\x21\xc2\x3f\xbc\xee\x8d\x2c\xf7\x82\x57\xd8\x30\xb8\x81\x88\x51\x2b\x42\x7d\x66\x58\x01\x26\xc2\xad\xc4\x0e\xe4\x68\x7a\xc9\x4f\x0d\x0b\xd4\x2e\x84\x2c\xc3\x90\xcd\x78\x31\xfe\x8a\xad\x1c\x04\xaa\x17\x5f\x18\x2a\xf2\x84\x22\x7f\x55\x6a\x18\x5d\xfd\x56\xc1\x7b\x52\x14\xcd\x28\xc2\x9f\x59\xc9\x91\xe0\x1d\x44\x99\x3f\x4b\x12\x25\x85\x80\x0c\x99\xcb\x42\x91\x17\xd2\x38\x29\xa3\x1c\x7c\xc3\x96\x29\x18\x04\xaa\x90\x12\x51\xa6\x38\xf5\x64\xa8\x42\xc1\x19\x50\x0f\x7b\x8b\x39\xcb\xd9\x43\x82\xf1\xf4\x78\xe4\x25\x78\x2e\x38\xf9\x85\x97\x00\xcf\xe0\x3c\x84\xf0\x35\x6b\x29\xb0\xbc\x9b\x0e\xc8\xa6\x5b\xe6\xc7\x72\xc3\x24\x44\x48\xa2\x62\x00\xc5\x47\x93\x61\xd7\xa2\x1e\x23\x1e\x26\xd2\x13\xe1\x14\x3f\x18\x24\x30\xa6\x4a\x4c\x59\xe3\xaa\xa3\x76\xeb\x24\x0f\x5e\x9d\xdc\x25\x8c\x20\xf1\x78\x4a\xe3\xa8\xa0\xe2\x4f\x6e\xfd\xff\x7d\x57\xcc\xc4\x42\xbd\x2e\x66\x22\xf1\xcb\x9f\x16\x03\xde\x0c\xfc\xa8\xf7\x03\x63\xfc\x7a\xd2\x45\xba\xba\x12\xda\x73\x86\xc7\x45\xed\x39\x82\x8c\x9d\x76\xca\x77\x3e\xe2\x17\x5f\xd8\x5d\xf5\x55\xb9\x89\xe5\xf1\x3a\xde\xe7\xb4\x8f\x68\x37\x85\xfb\x34\x5d\x39\xed\xbb\x53\xd0\xad\x82\x8d\xa5\xf2\xe1\xcf\x3d\xd2\x50\x47\x0f\x9e\xc8\xcd\xc5\x05\x94\x8a\xd4\x56\x8f\x6e\x11\x3e\x5c\x80\x09\x48\x5d\xc9\x40\x6a\x7c\x0e\x25\xd1\x14\xf4\x71\x3f\xca\xae\x0c\xa1\x1f\x77\x36\x29\xc2\x71\x0d\xca\x39\x60\xdc\x50\x32\x36\xbf\x00\xc4\xdf\x47\xe5\x02\xce\xd7\xcb\x0d\x4b\xf8\x2b\x17\xf0\xeb\x44\x92\xbc\xa2\x41\x8f\x61\x71\x41\x52\x04\x87\xe2\x4c\x06\xfe\x1c\xfc\x4e\x78\x87\x1b\xa6\x52\x36\xef\xf9\xa9\xad\x10\x3e\x91\xd0\x57\xfe\x38\xe8\xb8\xe8\xf4\x6a\xfa\xcb\x87\xfa\x29\x18\x2a\x28\x63\x1a\x38\x2e\x68\x3f\x6b\x78\xb3\xdf\xab\x02\x32\xce\x73\xf8\x96\x26\x1a\xe2\xd6\xef\x3f\x0f\x15\xe8\x57\x7d\xb8\x58\xbd\xea\x23\xe3\x43\x21\x41\x89\x6a\xe4\x76\x15\x25\xf2\xe4\x2c\x31\x7a\x0c\xd5\x6a\x25\xdf\x57\xc3\x93\x36\x8a\xf9\xa0\x48\x1a\xef\xc5\x23\x4a\x96\x1d\x05\x71\x6b\x1c\xc5\xef\x6d\xdd\xf1\xf7\x66\x7b\x41\x99\x8f\xec\x86\x40\x38\xed\x8d\x20\xc3\x59\x6f\x3a\x5b\x37\xbd\xfa\x03\xdd\x06\x39\x9d\x15\x98\x62\x82\x49\x90\x45\xe4\x9c\x69\x37\x93\xfa\xcc\xb5\x7e\x9b\xb3\x2e\xff\x56\x15\xb8\xc5\x6a\x99\x73\x3b\x5f\xfe\xec\xcb\x2f\xac\xa4\x69\x43\x10\x9a\x07\x82\x48\x9a\x0c\x84\xa0\x09\x31\x20\xc2\xb3\x22\x2f\x5e\x55\x29\x4f\x2c\xae\x29\xeb\xcb\x3f\x5d\xb6\xf8\x01\x1b\xdd\xca\x95\x7c\x19\x21\xe4\xb9\xc8\x94\x77\x7a\xdc\xbe\xbb\x49\x80\x2a\xd7\xb4\xcc\x3d\x9e\x59\x80\x45\x98\xcf\xca\x2c\x7c\xf1\xdb\xcf\xac\xf0\x4d\x89\x50\xaf\x94\x09\x44\x3d\xd7\x9e\x92\x8b\x6b\x3c\x50\x26\x2d\x65\x13\x51\xa9\xba\x64\x77\xe4\xcb\x80\x2a\xe5\x46\x60\x97\xad\x6e\x13\x85\xaf\x64\x8d\x32\xf6\xa6\x3a\x82\x92\x89\x31\xe5\x99\x09\xa6\xf2\x0a\xc5\xb7\x55\x60\x2b\xc7\x5a\x8d\x89\x57\xb3\x9e\x88\xa5\xd0\xdb\x89\x22\x9c\x64\x5f\x99\x91\x15\x11\x74\xc2\x30\x69\xde\xbe\x1c\xb5\x6d\x22\x1d\x3a\xe8\x8a\xd7\x50\x47\x1d\xa1\x3a\x14\x9a\x70\x46\x44\x42\xf0\x2a\x00\xfb\xce\x95\x8d\x2f\x9e\x74\x9d\x60\x9b\xdd\x0f\x1a\x2a\x53\x2e\xcb\xce\xe3\x60\x04\x99\x6f\xa3\xf4\xaa\xad\xfd\xe9\x12\xf9\x67\x14\xd2\x6d\x19\x2a\xe4\xdb\x32\x52\xa4\x78\x0f\xb7\x29\x1c\x48\xca\x9c\xfe\x7e\x30\x15\x6c\x4c\x18\x46\xa7\xe4\xed\xc3\x53\x7f\x7b\x8d\xee\xf4\xa8\xda\x79\x97\xd6\x19\xba\x17\xc8\x4c\x1f\x90\xe4\x29\x9d\xb7\x78\x89\xcd\x5f\xdc\xf4\x4e\x17\x35\x74\xa5\xa6\x5e\xbc\x24\x07\x86\xd2\x11\x8c\x52\xea\x49\xdc\x1b\xe1\x9e\x48\xbc\x55\xc0\x74\xe4\xb4\xe2\xa2\x35\x3e\x3e\xe0\x64\xcf\x01\x29\xd1\x29\x9f\x4d\x73\xae\x64\x0d\xdd\x5d\x79\xe0\x0f\x8f\xb0\x23\x27\x5e\x07\xb0\x8e\x56\x60\xc4\x7b\x55\x70\xb3\x95\x7c\x59\xae\x3a\x75\x6e\x3e\x04\x4a\x2b\xb6\xa1\x91\xc5\x64\x4d\xb2\x46\x68\xc4\xde\xec\xb4\x37\x37\x8f\x51\xbb\x73\x63\x6a\x01\x2a\x1a\xf6\xe9\x99\x57\xa7\x07\x91\x99\x07\x08\xe3\x5a\x15\xca\xf4\x70\x77\x50\x9e\x20\x2d\x82\x42\x16\x3c\xaa\x72\x64\xe1\x40\xb9\xcc\xc9\x23\x7f\x66\x33\x32\x27\x50\xe8\xba\x05\x9e\x96\xcb\x97\xff\x64\x45\xa7\x3f\x28\x36\x1f\x74\x68\x8e\x82\x2a\x69\xbd\x87\x19\x06\x07\xc0\x52\x7d\xcf\x52\x57\x15\x26\xcc\x9a\x4c\x68\x85\x15\x27\x86\x8f\x96\x27\xb4\xea\x7e\x5b\xc8\x57\xed\x8f\x93\x1a\x55\x9c\x31\xb4\x91\x22\xb4\x54\xcc\x30\xfc\x76\x5a\x8a\x59\x20\x47\x74\x72\xfc\x52\x7c\x8d\x07\x6c\x14\x57\x38\xd7\xe0\x2b\x99\x01\x06\x18\x8d\xcf\x80\xe2\x89\x07\x39\x57\xc5\x93\x33\x0e\xcb\xa7\x3a\xfe\xd4\x44\xf7\xb6\x89\x11\x67\x44\x54\x19\x12\x29\x8a\xd9\x3b\x3a\xf4\xea\x6f\xe4\x80\x83\xae\x14\x68\x78\xc2\x1b\x8f\xd6\x40\x50\x30\xc2\xe6\x5b\x75\x1a\x4c\xbd\xb4\x48\x6e\x03\xf5\x28\x23\x67\x13\x3c\x42\x3f\xb4\x7e\x42\x51\x58\x04\xdf\xae\xc2\xf8\xf2\x74\x81\x1c\xdf\x6c\x80\xf0\x82\xe0\xa0\x37\x79\x56\x98\xd3\x6e\x0b\xee\xae\x5d\x0d\x5e\xf9\x33\x6a\x9b\x8f\xff\xf7\xaa\xad\xee\x5e\xca\x7c\x05\x87\x36\x91\x39\xfb\xb6\x66\xd7\xa0\x5d\xbb\x34\x80\x7b\x19\x4f\xe8\x17\xf9\x91\xf6\x60\x8e\xf8\xf6\x13\xd9\xc2\xc0\x8a\xe4\x16\x5a\xe7\xcd\x28\x28\x69\xc1\xe4\xbc\x5b\xca\x1a\x24\x0e\x18\xb2\x10\x39\x8c\x93\x80\x68\x8d\x91\xe4\x1a\xaf\xb8\x28\x8c\x5a\x40\xb0\x96\x1d\x60\xa3\x23\xc8\x82\xff\xf0\x4f\x7f\xfa\xb3\xa5\xdf\xd5\x0c\x81\x33\x8f\xe7\xcb\xa4\xc3\xa3\x91\xdd\x2a\x30\xb4\xdd\x19\xaf\xc4\x4d\x2f\x60\xc2\x7a\x54\x53\x72\xac\xa3\xb8\x3b\x71\x27\x19\xa3\x79\xf0\x13\x19\x29\xc3\x9d\x39\x50\x5e\x64\xd2\x14\x3b\xa0\x22\x8d\xc8\x32\xcc\x65\xca\xb8\x83\x04\x64\xf8\x3a\x40\x81\xa0\x8b\x40\xe9\x17\x42\x18\x8c\xdf\x06\x89\xf7\x55\x92\x72\x66\x5c\xfc\x22\x7b\x6b\xff\xa5\xc1\x0d\x38\x1c\x41\xd0\xba\xcc\x3f\xa3\x88\x29\x28\x30\x75\xaf\xe6\x31\xe4\x5c\xc1\xf1\xad\x6b\x49\x4b\x4f\xa0\x0a\x44\xf3\x17\x05\x11\x1d\x2b\xac\xe9\xbc\xe8\x67\xbf\xa3\xbf\xad\xc8\x2c\xca\xde\xc4\xbd\xc3\xc0\x42\x56\x56\x7a\x2c\xae\xa4\xa1\x07\xb2\x9a\x24\xda\xeb\x14\x21\x8a\x1a\x45\x21\xdf\xcf\x1e\x6c\x3d\x0c\x7c\x13\x63\xfe\x38\x02\x3e\x58\xad\x96\x5d\xbe\xb3\x2a\x6c\x95\x1e\xfb\x88\x8e\x20\x68\x4d\x86\x91\xd8\x58\x39\x4f\x0e\x49\x45\x15\x7e\x13\x35\x42\x12\x05\x23\x1c\x5a\x80\x22\xab\x48\xed\x13\xf5\xd2\xb4\xda\x2b\xfa\xed\xd7\x08\xcb\x42\xb9\xad\xa6\x82\xe4\x75\xa4\x53\x2c\x27\xc9\x25\xd2\x5c\x64\x97\x8e\x3d\xb8\x98\xad\x00\x67\xfe\x1d\xfc\x63\xf1\x71\x6d\x50\x22\x96\x70\xd3\xd0\xab\x55\x91\x0b\x6b\x2e\x57\x2b\xe8\xe2\xdd\x09\x7f\xe6\xb6\x51\x53\x62\x15\xd0\x0d\x67\x78\x06\x03\x00\x33\x75\x74\x4f\x20\xfb\x3b\x3b\x5b\xd3\x87\x17\x61\xc7\x5e\xd0\x90\xc3\x1e\x29\x52\x97\x5a\xfb\x3b\x9d\xd3\xa5\xf6\xf6\x64\x00\x20\x57\x53\xf0\xa3\x4e\x19\xa7\x06\x01\xe4\xac\x92\x38\xd8\x9a\x3c\xab\x6f\xf2\xe5\x85\x30\xd4\x51\x1d\x2a\x56\x82\x7f\xc2\x5a\xc1\x97\xc5\x13\x02\x3d\x14\x38\x6b\x30\x5c\x24\xea\x8b\x59\x94\xfe\x30\xa5\x22\x68\xd4\xe7\x50\xb2\x3b\xf5\xd1\x29\xa7\x14\xdb\x0c\xe0\x48\x21\xd7\x51\xd7\x06\x12\x09\x99\xc7\xbe\x42\x49\xe7\x60\xfc\x4c\xc2\x3b\x46\x87\x92\x26\x29\x7c\x33\xe9\x82\xcb\xc9\x84\x2b\x76\x49\x27\xa0\x02\xf9\x86\x5b\x41\xa5\x98\xd2\xf9\x3b\x3f\x0c\xf2\x77\xd2\x0b\x59\xbd\x72\x91\xab\xa7\x29\x24\x32\x88\xe3\x99\x0e\xc7\xcc\x8e\x3f\x70\x2b\xd9\x0f\x2e\x84\xb3\x4e\xab\x64\xaa\x92\xab\x15\x1f\x70\x0d\xe5\x51\x0d\xf7\xc0\x03\xe4\x0c\xd9\xdf\xe8\x21\xb2\xf7\x25\xd4\x13\xfb\x65\xb8\x33\x4c\xbc\x2a\xfd\x7d\xa3\xdb\x88\x64\x79\xd5\x4d\x19\x29\x21\x43\x0d\x4a\x3a\xd7\x84\xf6\x42\x69\xbb\xbf\xe1\x10\x92\x5f\x8b\x54\x42\x72\xca\x6f\x18\x95\xbf\x0b\x27\x9d\x9d\x87\x97\xc2\xde\x58\x78\x4e\xf5\x84\xea\x6c\x66\xc9\xcb\x83\xee\xb8\x57\x33\x03\xc1\x6c\x72\x4c\xc9\x3b\xe7\xf4\xec\x49\x94\x2c\xc1\x1f\xe9\xf4\xae\x92\x2c\xe6\x23\xbe\x84\x49\xf9\x35\x54\x56\x0e\xce\xd0\x4b\xcb\xbc\xea\x38\x05\x58\xe4\x99\x01\x27\x85\x57\x10\x27\xc0\xac\xa3\x27\x93\x30\x4c\x9a\xef\x24\xe2\x0e\xba\x96\xe2\x97\x97\xcf\x9f\xfb\xd0\x4d\x7d\x68\xb5\xb7\x6e\x5f\x70\xe1\xef\x22\xfc\x8d\xc7\x2d\xb7\x57\xe9\xe7\x20\xfe\xa4\x97\xb9\xe8\x67\x0e\x7f\x6e\xfc\x40\x7f\x5f\xc3\xbf\xe7\xb7\xb9\x16\xb0\xd3\x0f\x2d\x7f\xb9\x4e\xbf\x86\xb0\xe4\xe0\x35\xfe\xed\xda\xc0\x92\x73\x94\xd3\x5a\x7a\x28\xe6\x4b\xc0\x63\xe8\x4b\xd0\xcf\xa0\x53\xab\xf0\x27\xdd\x57\x2e\x33\xc4\x5f\xb8\xbb\x6b\xb6\x7d\x85\x7f\x73\x97\xd0\x23\x98\xe4\x94\x13\x9f\x7b\xc5\x04\x94\x0c\xc0\x3d\x57\x32\xd7\xd2\xaa\x77\xe8\x9a\x3f\xa8\xce\xb9\x67\xa2\x56\xae\xe2\x94\x31\x71\xdf\xd7\xc1\x23\x66\xea\x11\x1a\x7f\xf2\x9e\xbf\xf4\x4a\xb2\xe6\xd6\xf7\xe4\xaa\x40\xfd\x1e\x2c\x57\x6f\xbc\xc9\x2f\x7b\xd3\xad\x2d\x4a\x9d\x99\x2f\x95\x6b\x2a\x0b\xc6\xf5\xed\xd6\x3e\xfa\xa6\xe5\xf5\xef\xc6\xa6\x3c\x50\xa1\xb2\x49\xcb\xfb\x3b\x30\x53\xe9\x3e\x14\x62\x9c\x64\xe5\xf8\x4e\x7b\xab\x01\x06\xcf\xbf\xfd\x1b\xe5\xeb\xcd\xff\xcd\xfe\xf7\x7f\xb7\x3e\xfb\x47\x30\x74\x40\x9f\xed\x9c\x8e\xe3\xba\xc2\x27\x13\xb6\xd8\x9d\x63\xc0\x17\x33\xdf\xfd\x73\xa4\x0a\x32\x2d\x8a\x54\x24\x3f\xbe\x84\xe8\xeb\xcb\xb5\xff\x27\x00\x00\xff\xff\x3e\x34\xa2\x15\xc0\xa2\x00\x00") +var _confLocaleLocale_zhCnIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\x69\x73\x1b\x47\x96\xe0\x77\x45\xe8\x3f\x54\x68\x42\xe1\x2f\x6b\x3a\x6c\xef\x15\x1b\x86\x77\xbb\xed\x99\xee\xde\xb0\xdd\xde\x96\x3b\xe6\x83\xc3\x01\x83\x40\x91\xc4\x08\x44\xc1\x28\x40\x32\x7b\x62\x22\x48\x49\x24\x41\xf1\x96\x28\x51\x94\x48\x51\xa4\x49\x91\xa2\xc4\x43\x37\x49\xf0\xf8\x2f\x6b\x54\x01\xf8\xe4\xbf\xb0\xef\xca\xac\xac\x03\x94\xdd\x3b\xbb\x5f\x24\xa2\xf2\xe5\xf5\xf2\xe5\xcb\x77\xe5\xcb\x4c\xa9\x94\xce\xd9\x6e\x36\xe5\x2d\x1f\x36\x0e\xa7\xac\x3f\x38\x56\x6b\x77\xbb\xb5\x39\xd8\xbc\x7f\xa3\x35\xba\xe5\xdd\x7c\x62\xfd\x21\x5f\xb1\xfc\xc5\x49\xef\xe6\xca\xf9\x73\xe7\xcf\xf5\x39\xfd\x76\xaa\xfd\xf8\x6e\x7b\xe5\xf5\xf9\x73\xb9\x8c\xdb\xd7\xed\x64\xca\xb9\x94\x3f\xb5\xe1\xd5\xde\xb4\x97\x56\xfd\xa5\xd3\xf3\xe7\xec\x1f\x4b\x05\xa7\x6c\xc3\xd7\xd5\xe6\xab\x55\xa8\x64\x17\x4a\x29\x6f\x7f\x07\x9a\x3b\x7f\xce\xcd\xf7\x16\xd3\xf9\x62\xaa\xb9\x50\xf7\x8e\xef\xc8\x6f\xa7\x5a\x49\xb5\x07\x07\xbd\xd1\x43\xf9\x50\x2d\xa5\xfc\x97\x9b\xde\xc8\xc4\xf9\x73\x65\xbb\x37\xef\x56\xec\xb2\xfe\x70\xd5\xee\x76\xf3\x15\x3b\xe5\xed\xdc\xf3\xef\x1e\x34\x8f\x67\x9b\x4f\x17\xce\x9f\xbb\x62\x97\xdd\xbc\x53\x4c\x79\xc7\xb7\xbd\xb1\xc9\xe6\x58\xcd\x5f\x7c\x76\xfe\x5c\x29\xd3\x0b\xe3\x5d\x79\x0d\x43\x3b\x7f\xae\x62\xf7\x97\x0a\x19\xa8\xe9\x6f\xae\xd0\x40\x0b\x99\x62\x6f\x15\x21\x78\xd2\xed\xc1\xb1\xf6\xca\xc1\xf9\x73\xd9\xb2\x0d\x50\xe9\xa2\x7d\x35\xe5\xd5\x1e\x78\xf5\xc3\xae\xae\xae\xf3\xe7\xaa\xae\x5d\x4e\x97\xca\x4e\x4f\xbe\x60\xa7\x33\xc5\x5c\xba\x1f\xe7\xd8\x9c\xdb\xf4\x6b\x6f\x1b\xa7\x2b\xfe\xd0\xae\x37\x7d\xd3\x7f\xf0\xca\x5b\xbb\xcf\x93\xb0\x73\x30\xcf\x74\xc6\x4d\x79\x6f\x5f\xf0\x6c\x19\x18\xf1\x88\x8d\x15\x33\xfd\xaa\xbe\x37\x33\x09\x68\xeb\xcf\xe4\x0b\xa9\xf6\xb5\x9d\xe6\xce\x73\x1c\xb9\xeb\x5e\x75\x00\xb7\xde\xee\x48\xf3\xd1\x10\xe2\x21\x5d\x19\x28\x41\x8d\x95\x9d\xd6\xce\x9a\xfa\x9a\xcd\x94\x2a\xd9\xbe\x4c\xaa\xbd\x35\xd1\xda\x1d\xa2\x4f\x08\x5a\x72\x00\x45\x4e\x79\x20\xd5\xa8\xdf\xf6\x0e\x6f\x9f\x3f\xe7\x94\x7b\x33\xc5\xfc\xdf\x32\x15\xc4\x51\xb3\x7e\xa3\x59\x1f\x3d\x7f\xae\x3f\x5f\x2e\x3b\xe5\x54\xfb\xce\xa2\x77\x7d\xfa\xfc\x39\x98\x70\x1a\xab\xca\xac\xfd\xbb\x7b\x40\x06\xaa\x01\x2c\xec\xcf\xf7\x96\x11\x7f\xad\xd3\xa1\xe6\x46\xdd\x5b\xbb\xdb\xbe\xbe\x69\x96\xf7\x38\xe5\xcb\xa1\xca\xfe\xab\x93\xe6\xdc\xb2\x09\x02\xe3\x08\x41\xe8\xa1\x64\x8a\xb0\x10\x54\xdc\xdc\x59\x69\xce\x8c\xf8\xb5\x59\xa3\x38\x93\xeb\x07\x5c\x96\x32\x45\xbb\x20\xe5\x8a\xd8\x32\xd9\xac\x53\x2d\x56\xd2\xae\x5d\xa9\xe4\x8b\xbd\x80\xed\xfd\x19\xc0\x68\x6b\xe7\xa4\x79\xbc\x03\x0b\x91\xfc\x79\xc0\xa9\xea\xc5\x4c\x35\xf6\xb7\x1a\x87\x87\xbc\x86\x52\xa4\xab\xf1\xfa\xa8\x6a\x34\x07\x37\xdd\x63\xdb\x40\xf3\x8b\x83\x30\x05\xff\x55\xdd\xbb\xb9\x09\xcb\x55\x2d\x14\x00\x79\x3f\x54\x6d\xb7\x02\x9d\xcd\xd4\xbc\x83\x37\xad\xdd\xb7\xfe\xf3\x6b\xe7\xcf\xe5\x5d\x17\x3e\x03\x19\xac\x7b\x93\x77\x78\xf4\xd8\x54\x36\x53\xcc\xc2\x74\xbc\xe9\xbb\xfe\x9b\x1a\x7e\xf8\xd6\xb5\x33\xe5\x6c\xdf\x77\x38\x6a\xfc\x23\xe5\xcf\x2c\xc2\x06\x22\xea\x4b\x58\x52\xa4\xa1\x94\x22\x29\xea\x43\xba\x80\xa6\x9d\x1c\x4c\xab\xfe\x93\xd0\xc3\xb7\xf9\xa2\x5b\xc9\x14\x0a\xd0\xb2\xfc\x05\x9b\x67\xac\xf5\xd3\xb0\xde\x19\xf9\x4a\x81\xf6\xb5\xff\x6c\xa5\x75\x3a\xd3\x5a\x99\xe0\xf2\xe6\xe6\xb8\x77\x08\x94\x91\x73\xb2\x97\x81\xfa\x71\x23\x43\x9f\xde\xe3\x6b\xfe\xc3\x45\xff\xda\xa6\xbf\xfd\x93\xb7\xb8\xd9\x38\x3e\x85\x51\x58\x9f\x13\x8c\xe5\xed\x1c\x78\x0b\x9b\xdc\x08\xf0\x93\x5e\xf7\x97\x23\xa0\xcc\xb7\xc0\x3f\xbc\xd3\x61\x6f\xb8\xd6\xa8\xcf\x35\xeb\x23\xed\x7b\xc3\xad\xdd\xba\xf5\x49\xc6\xaa\x64\xca\xbd\x76\x25\x75\x21\xdd\x0d\xbb\xf1\xf2\x05\xab\xaf\x6c\xf7\xa4\x2e\x5c\x74\x2f\x7c\xca\xfb\xdb\xbf\x3b\xea\xaf\xfc\xf4\xc9\x07\x99\x4f\x2d\x6f\x66\xca\x1b\x99\xf4\x76\x0f\x60\x6b\xf3\xc8\x5b\xa7\x0f\x70\xac\x2b\x4f\xbd\x91\x85\x9f\x07\xaf\x21\x9a\x7e\xa8\x02\x6f\x48\xe7\xba\x99\xaf\xe1\x00\xac\xd6\xe3\x21\x58\x07\x9e\x91\xf5\xe5\xc0\xa5\xff\xf5\xc5\xcf\x83\x43\x5f\x3b\x6e\xa5\xb7\x6c\xf3\x0f\xf8\x17\x6a\x7d\x6c\xf9\xb5\xbb\xd6\x37\xf9\xcf\x7f\x4f\x6d\x41\x1b\x8c\x17\xff\xce\x9e\x3f\xb9\x03\x38\x57\x64\x80\x25\xb8\x15\x75\x41\xf3\x79\xdd\x7b\x38\x8e\xec\xd1\xad\x04\x5f\x1b\xfb\x75\x7f\xf1\x50\x16\x2a\x80\x95\x15\xd3\x1b\x3c\x52\xa2\x76\x36\x74\x42\x1c\x42\x17\x03\x93\x68\x6e\xec\x51\x41\x74\x21\x64\x09\x68\x6e\x8c\x6f\xf9\xf2\xa7\xaf\xbe\xfa\xf3\xe7\xbf\xb7\xbc\xa3\x3b\xfe\xed\xa9\x46\x7d\x1d\x58\x94\x55\xad\xf4\xfc\xd7\x74\xaf\x5d\xb4\xcb\x99\x42\x3a\x9b\xb7\xbc\xed\xf9\xe6\xb3\xc7\xed\x07\x23\x34\x6b\xd7\x2d\x00\x67\x03\xf2\xb9\x74\xe9\x0b\x0b\x18\xa5\x77\x34\x8d\x63\xad\xf4\x05\x03\x81\x25\x69\xd4\xdf\xb4\xde\xee\x7a\x27\x37\xa0\xc2\x0f\x05\xc4\xb8\x0c\x29\x8a\x49\x0b\xb9\x80\xc6\x1f\x55\xa1\x6e\xec\x72\x39\x0d\xec\xb8\x32\x80\x4b\x45\xcd\xff\x8a\x9a\x8d\xfd\xc9\xd6\xf5\xe3\xc6\xfe\x61\xf3\xc9\xa1\x6e\x25\x5f\xbc\x92\x29\xe4\x73\xb0\x56\x0a\x63\x54\x3b\x82\x36\xa8\xea\x0d\x0f\xb5\x76\xf6\xbd\x89\x61\x6f\xe6\x29\xcf\xd9\xba\xd0\x75\x81\xfa\xbb\xf0\xfe\x05\x8b\x1a\x2c\x3a\x69\x66\x35\xc8\xe0\x73\x79\x37\xd3\x0d\xcc\x9e\x4f\xa0\x32\xf3\x4e\xc4\x36\x0d\xc3\x5b\x5b\x06\xe2\xf7\x17\xb7\x98\x9d\xf1\xbe\xf6\x66\xef\xf1\x2a\xe2\xe0\xaf\x0f\x7b\x23\xaf\x1b\xfb\xe3\x4d\xa0\xbf\xed\x55\x3e\xbe\x22\x93\x57\x7c\x4d\x48\x41\x37\xc2\x44\x10\x9b\xef\xf9\x73\x6a\xdd\x98\x32\xbd\xc3\x39\xe8\x0e\x0e\x6f\xd8\x11\x8a\x38\xf1\x4c\x27\x34\x48\xa1\x50\x8d\xfa\xac\x69\xe7\xf4\x29\x94\x36\xc7\xaf\xf9\xe3\xc7\xed\xe1\xb7\xcd\x6b\x4f\x35\xbb\xe5\x2a\xed\xf9\xad\xe6\xc3\x29\x60\xc3\x8d\xfa\xb3\x5f\x8e\x86\x98\x05\xf1\x52\x31\x07\xf2\x1f\x1d\x34\x1f\xec\xd0\x21\xae\x8b\x54\xeb\xfe\xd8\xa0\xbf\x38\x46\xc2\x43\xeb\x74\x11\xd8\x08\x57\x69\x03\xda\xf6\x46\x5a\xab\x80\xff\x7b\xfe\xdc\x09\x88\x1c\xad\xdd\x75\x6e\x84\xb7\x6f\x15\x8e\x7e\xdc\x2d\xcc\x3f\x9a\x2f\xeb\xcd\xfa\xb2\xda\x30\xaa\x50\xf5\x81\x55\x79\xc7\x9c\x02\x23\xab\x7b\xc3\x6f\xa1\x4b\xe0\x0e\x91\xd1\x79\xb7\x26\x0c\x6e\x44\x54\x75\x7b\xb2\x71\xbc\xe8\x2f\x5d\x6f\x2f\xcc\xf0\x4e\x77\xe0\xe8\x05\xd1\x61\x79\x99\x0e\x62\xfe\x69\x74\xc3\xa8\xf5\x8e\x9f\x7b\xb7\x27\xad\x4b\x97\xfe\x68\x79\xc3\xe3\xed\xfb\x23\xde\xe2\x9e\xb7\x34\x28\xbb\xa6\x2f\x5d\x72\xca\x95\x14\x96\x36\x9f\x82\x28\xf0\x93\x37\xfd\x36\xf8\xae\xb7\x07\x14\xb3\x34\x05\x4c\x12\x11\xfe\x60\xd6\x9b\x79\xa6\x2b\xc0\xde\x6d\xde\x59\x80\xd5\x6e\xad\x6c\x36\xd7\x0e\x81\x70\x70\x13\x53\x8f\x37\x97\x81\x14\xa8\xaf\xbe\x4a\xa5\xc4\x9d\xfd\xf1\x9b\x6f\xbe\x36\x7b\xd3\x25\x7a\x91\x89\x04\xa4\x13\xe8\x2d\x00\x45\x72\xa8\x96\x0b\x02\x61\xfd\xf5\x2f\x5f\xe8\x6f\x9d\x26\x8e\xbd\x7d\x80\xff\x5c\x0a\xcd\x1f\xf0\xdb\xd8\x1f\x6c\x1c\x3e\x60\xc9\xa5\xb1\xbf\x0d\x3d\xb5\x6f\x9f\xf8\x53\xeb\x42\xb3\x4e\x09\x77\x4e\x40\xb4\xd3\xbb\x20\x69\x29\x72\x25\xa9\x47\x4a\xa0\x05\x60\x2c\x8c\x1f\x7d\x80\xf7\xc3\x9c\x88\xaf\x5e\xfa\x12\x66\xab\x78\x2a\x7d\xee\x29\x3b\xfd\xaa\xd2\xd2\x3a\x08\xac\xc6\x77\x35\x0b\xb3\x98\x07\x0c\x48\x6e\x0f\xbd\xf6\x4e\xb6\xac\xbf\xfc\xd3\x67\xd6\x7f\xfa\xf8\xa3\x8f\x2c\xff\xd1\xa8\x37\x8a\xfc\x0f\xc6\x06\x5c\xd2\xbf\xb7\x8b\x53\xda\xdf\xc2\xf3\xfa\x70\x17\xe7\x43\x73\xe3\xfa\xc0\x30\x84\xbb\x5e\xf8\x0a\x36\xd4\x05\xeb\x13\x9a\xc3\xff\xb0\x7f\xcc\x80\x7c\x69\x77\x65\x9d\xfe\x4f\x89\xcc\x1e\x1d\x01\xf3\x24\x1c\x60\x39\x10\x2e\x91\xb6\x37\x3d\xdb\x1e\x1c\x52\x62\x9e\x94\x04\xd2\x9e\x51\x1a\x48\x7e\x2c\x01\xa7\xb3\x4e\xb1\x27\x5f\xee\x07\xf1\x62\x17\x29\x9f\x18\x0a\x83\xb2\x50\xc8\xcd\xa5\x8b\x4e\x25\xdf\x33\x20\x50\x3c\xff\xf6\xe0\xfd\xe6\xf2\xba\x3f\x3d\xd3\x1e\xb9\x85\xe2\x45\x19\xc4\xe5\x34\xfe\x97\xcf\xda\xea\x94\x53\x64\x09\x0b\xea\x0d\xbf\xf1\x76\xae\x87\x17\xc2\xe9\xe9\x29\xe4\x8b\x36\x1f\x0e\xdc\x76\xf3\x71\xbd\x79\x78\xaa\x0e\x09\x13\x00\xa8\xb0\x04\x32\x3c\x30\x48\x10\x11\x9b\xc7\x2f\x18\x06\x78\x61\xe3\x60\x99\xa9\xba\x51\x9f\xb2\x3e\xfb\xfc\x2b\xab\x35\xf5\x16\x25\x20\x3a\x52\x60\x65\x80\x71\xc0\x02\xa0\xfa\xf1\xfa\x86\x7f\x38\xc3\x0c\x03\x60\x81\xc1\x01\xf6\xf5\x18\xb9\x16\x6f\x5e\xe1\xd2\x20\x9a\x5e\xc9\x80\x34\x91\x92\x5d\xf3\x07\xf9\xad\xb5\x97\x28\xa0\x8c\x31\x0a\x8e\xfc\x02\x48\x65\xe7\x7e\xe3\x60\x0c\x46\x00\x63\x6a\xd4\x87\x79\xc1\x9b\x73\xcf\x45\xde\xdf\xbf\xd9\x38\x7a\x84\x6b\x5c\xbb\xdb\xae\xdf\x03\xd4\xc3\xdf\xde\xda\x2b\x10\xa3\x43\x63\x0a\x9d\x1c\x7c\x0c\x88\x40\x39\xba\x85\x94\x2c\x1a\x4d\x12\x78\x30\x3a\xb3\x12\xb0\x31\xae\xc4\xfc\x00\x06\xe7\x4d\x6f\x01\xdb\x0b\x0e\x0e\x26\xe0\xb7\x20\x95\x3e\x02\x91\x17\xf6\x3a\x9f\x38\x45\xea\x40\x69\x0b\x42\x1a\x4a\x67\x50\x18\x0a\x43\xc9\x08\x44\x7a\x5a\xdc\xe4\x41\x70\xf7\xfe\xfc\x9b\xd6\xc9\x6d\x6f\x78\xbd\xbd\x7a\xc3\x50\x3d\x48\xfc\x02\x45\x45\x94\xbc\xf4\x95\x3c\xea\x50\x4c\x2b\xa4\x01\xb5\x76\x4e\xdb\xf3\x3b\xc0\x77\x41\x5d\x4c\x06\x57\x94\x43\xd3\x0a\x34\x27\x60\x5e\xdc\xfd\x98\x9c\xbd\xd2\x12\x89\x81\x88\x86\x99\xc7\x5e\x6d\x01\x68\x05\x2a\x02\x40\x73\x71\xdc\xab\xed\x71\x5d\x58\x23\xd9\x2a\x04\x4c\xf8\xe0\x73\x57\xa4\x7c\x51\x81\xc3\xc7\x38\x23\x0f\xa4\x78\x38\x84\x81\x1f\xf0\x19\x03\xc3\xc0\xbe\x1e\x3c\x82\x33\xd9\xfa\xd3\xe7\xa9\x0f\x2d\x3d\x30\x3c\xd7\x50\x63\x26\xd2\x3c\x99\xd7\xed\x18\xc7\x0c\x77\xca\xbb\x2d\xd2\x8f\x3e\xbc\x09\x84\x35\xc3\xb0\x40\x41\x27\xd3\xd9\xe2\x02\xca\xfd\xc4\x20\x0c\x88\x90\xb2\xc8\xd5\x59\xcf\xd4\x75\x15\x27\x12\xcd\x20\xdd\xeb\xa0\xda\xf3\x74\xdc\x9b\x7c\xc9\x22\x33\x2a\xce\x6e\x25\xdd\x9b\xaf\xa4\x7b\x90\x5b\x81\xc4\x3a\xff\xc8\x7f\x79\xa7\xb5\x3b\xe2\xd5\x9e\x5a\xef\x41\xc1\x7b\x96\x37\x7b\xdc\xa8\xaf\xfd\x72\x74\xff\xe2\x15\x25\x12\x7e\x8c\x8c\x28\x0d\xbb\x2a\x5f\x40\xb2\x42\xc9\x09\x77\x37\xef\x24\xd8\x2e\xd3\xb3\x78\xc4\x8f\xd5\x10\xc1\x73\xbb\xfe\xc4\x90\x25\x22\xa0\x48\xb0\xc0\x20\x2e\xba\xc0\xf0\xc7\x5b\xc7\xc7\xa2\x0b\x3c\xbc\x81\x4b\x34\x56\x43\x88\xc1\x09\x5e\x19\xab\xd7\xe9\xae\xe6\x0b\x39\x8b\x75\x7e\xc2\xb4\x92\x09\x41\x22\x94\x35\x8e\x0a\xf1\x58\x77\xfb\x27\x40\x8f\x0c\x59\xd5\xe8\x28\xe4\x24\x57\xd3\x32\x09\x4e\xb5\x3f\x03\xdb\x26\x41\x74\x69\x2f\x3d\x14\xab\x04\xfd\xc4\xaa\xae\xf5\xfe\xa7\x30\x3b\x40\x55\xe6\x8a\xcd\x7c\xbd\x57\x61\x97\x8f\xe4\xf6\xf0\x24\xf6\x77\xba\x04\xa2\x92\xb7\xf6\xbc\xf5\x6a\x3d\x32\xd2\x10\x09\x87\xe8\x49\x2b\xac\xf1\x49\xf2\x12\xbb\xd5\x6c\xd6\x76\x5d\x5c\x11\x6f\x1d\x98\xc8\x10\x4b\x79\xde\x49\xad\xfd\xf4\x9e\x37\xfc\x0a\xbe\xc3\x09\xed\x8f\x3f\x91\x73\x4e\xd4\xb8\xe6\xfa\x92\xd6\x35\xfc\x1b\x63\x20\x41\x12\x73\x44\x2d\x13\x39\xf4\xf6\x1a\xd0\x85\xf5\xfb\xbf\xfe\x81\xa4\x45\xd0\x3a\xd1\x58\x04\x2a\x67\x95\xc5\x4e\xa7\x90\xd3\xfa\x2a\x10\x33\x72\xce\x88\xa9\x43\xc1\x28\x72\x75\xaf\xe6\x01\xa1\x69\x6d\x66\x42\x3c\x55\xec\x1f\x2b\xb0\x55\x47\xfd\xc9\x55\xd3\xe8\xa4\x64\xc4\xfe\x01\x5a\x41\x98\x1a\x99\x0f\x94\xaa\x9c\x75\x0a\x40\x83\x0e\x72\xd6\x2b\xb6\x40\x78\xd3\xd7\x1a\xfb\x53\xde\xe4\x34\xc8\x82\x06\x28\xb4\xe0\x94\x7b\x55\x03\xda\x3c\x31\x90\x66\x63\x89\x2a\x50\x36\x13\x62\x59\x64\x15\x63\x86\x44\x8b\xaa\x54\xfe\x2e\x58\x20\x32\x27\x48\x8f\xcf\x1f\x8a\xc4\xcb\x87\x08\xf5\x08\x6d\x11\xb2\xc4\x68\xf6\x9d\xa8\xfa\x62\x3c\x53\xa3\x02\x80\x4c\xb5\x82\xa6\x81\xc0\x38\x95\x16\xd3\x87\x70\x2e\x5e\x78\x43\x5a\xe8\xb3\x4b\x28\x5a\xf4\xbb\xbd\x64\x81\xaa\x4f\x33\x17\xfc\xe5\x68\x99\x77\x37\x73\x47\x5a\x2c\xd7\xc9\xe6\x33\x85\xf4\xaf\xaf\x5a\x9f\x85\x03\x92\xaa\x86\xcf\x2e\x36\x91\x81\x6a\x93\x42\x41\x1c\xd4\x97\xd7\x28\xd3\x9a\x47\x16\xb4\x87\xf2\xff\xf0\xcb\xf6\xfc\x36\xec\x55\xd8\xe8\xad\xa1\x39\xdc\x2d\x64\xc7\xd3\x64\x9c\x70\x8c\xe2\x80\x90\x73\xc5\x5b\x36\x65\xa0\xc4\x5e\x10\x2b\xfd\x76\x7f\x37\x36\x81\x2b\xb5\xd7\x38\x9e\x56\x06\xc8\x1e\x58\x6e\xd8\xbc\x81\x04\x76\x0a\xe7\xf9\x9e\xa2\x41\x2c\xb5\x3b\x94\x02\x3a\xb4\xb9\x12\x18\xc0\x55\xd8\xfa\xf7\xfc\x17\x2b\xbc\x10\x50\xd8\x7e\xf2\x0c\x04\x05\x43\xef\x13\xf6\xcc\xe7\x3b\x89\x6a\xae\x5d\xac\x28\x8c\x81\xc8\xe9\xed\x0d\x89\x59\x8c\xe6\xc2\xb2\x1b\xaf\x00\x4e\x87\x64\xc3\xd6\xe8\x4b\xeb\x93\xee\x4f\x2f\xba\x9f\x7c\xd0\xfd\x29\xb3\x4a\xff\xa7\x41\x1f\xa4\xbb\x6b\xc8\x56\xfd\xb9\x37\x50\x07\xa5\xc7\x83\x37\x70\x68\x5b\x17\x73\x96\xb7\x37\x0d\xe7\xb5\x37\x32\xec\xed\x4c\xf8\xb5\x19\x6e\x5b\xce\x71\x52\x85\x58\x85\x91\x43\xb8\xe2\x68\xc2\x62\x14\xc1\x41\xca\x4d\x2b\x0a\xcb\x64\x69\x1b\x11\x65\x2b\x50\xff\x74\xd0\x7f\x55\x0f\xc3\x95\x6d\x9a\x5e\x21\xdf\x9f\xaf\x24\x92\xc5\xb5\x4d\x36\x91\xf1\xc4\xb8\x09\x9e\x73\xeb\x74\x14\xb6\x4a\x7b\x75\xb6\x79\x30\xc4\x73\x6c\x6e\x8f\x79\x27\xc3\xd6\xc7\x96\x57\x1b\x69\xdf\x5a\x66\x5b\x50\x6b\x97\xe9\xb7\x2f\xe3\xa6\xab\x45\x41\xaf\x9d\x63\x3a\x01\x26\xab\x18\x9c\xb0\x63\xc4\xd3\xeb\x71\x9e\x0f\x48\x17\x8c\xf0\x04\xac\x5a\x8d\xe3\x11\x50\xec\x01\xe5\x8c\x2b\x56\x00\x60\x58\xa8\x21\x68\xe3\xd7\xe2\x16\xe0\x1a\x1b\x33\xc6\x8d\xb3\x02\xc6\xb6\x38\x08\x52\x53\x7b\x74\x12\x16\x93\x9b\x17\x23\xd8\xe4\x1d\x6f\xb4\x0e\x27\x1a\xda\xad\x61\xa9\x26\xc6\xda\xb7\x76\x84\x3c\x01\x55\x32\x6e\x86\x02\x76\xea\xad\xdd\x30\xdb\x30\x69\x42\xe9\x4d\x74\xc2\xba\xb4\x7d\x2b\x74\xc2\xb2\x54\x16\xd5\x58\x68\x2e\xb0\x1b\x60\xab\xc1\x80\x1b\xf5\x7a\x03\x96\x95\x04\x0f\xde\xfe\xd8\x37\x0e\xa1\x12\x1f\xc1\x2f\x47\x35\x1e\xc4\x2f\x47\x63\xb2\x4e\xbc\xc8\xb4\x05\xa0\x08\xce\x19\x35\x26\x6e\x42\xef\x15\x2e\x54\x3b\x49\x9d\x5b\x64\x9b\x8c\x90\x81\xa6\x78\x3e\x4d\x70\xf7\x9e\x8e\xfa\x8b\xcb\x80\x4b\xf8\x1b\x8e\x3f\xff\x4e\x4d\xe3\x29\xe8\x41\xab\xb9\x61\x8c\x19\x9d\x6a\xc8\x8a\xe3\xa4\xdd\x3e\x54\x9a\x65\xe0\x77\x4e\xbd\xc3\xc7\x62\xc9\xd9\x9b\x45\xe7\xc7\x7f\x86\x65\x9f\x54\x67\x17\xe2\xe1\x3b\x21\x75\xe4\xb7\x8a\xce\x91\x60\x13\x48\x5d\xc3\xb1\x70\x05\x50\x2c\x15\x33\x94\xb9\x16\x1d\xb0\x64\x22\xd5\xe0\xe1\xfa\xa4\xe6\xdd\x5a\x9b\x01\xf6\x86\x28\x7b\xb6\xda\x3a\x9d\xe2\x93\x98\x87\xeb\xe4\x32\x38\xde\x01\xdb\x15\x99\x8f\x77\x36\x5a\xb4\xc4\xc2\xac\x3e\x00\x28\x6a\x87\x82\xef\xd3\x1d\x7f\xee\x80\x9a\x00\x4e\xd7\x0f\x2d\xfc\x15\xa4\x99\xaf\x22\x9e\x89\xbf\xc0\x89\x44\xdf\xf8\x38\x52\x26\xa5\x7f\x34\x1c\x16\x6a\x72\x5f\x47\xdd\x16\x7f\xb1\x13\xbc\x16\x97\x2e\xfd\xf1\x1b\x12\x83\xc9\xb4\xb1\x0b\x1b\x7a\x5d\x35\xfa\xc7\x4a\xa5\xe4\xfe\xb5\x5c\x48\xb1\xa5\xe1\xaf\x7f\xf9\xc2\x0a\xda\x1e\x28\x38\x99\x1c\x16\xfa\x53\x20\xa1\x0c\xa9\x82\x6f\xec\x4c\x3f\x8d\xcf\x7b\xb0\xda\xbe\xb7\xac\x9a\xfa\x1d\x9c\x98\xf4\x19\x7a\x86\xb5\xd0\x9f\x51\x70\xfa\xc7\x64\x21\x38\xd0\x49\x6c\x72\x8d\xc4\x2c\x70\x99\x42\x09\x34\x23\x14\x49\x04\x82\x15\x03\x80\x68\x8d\x3f\x07\x2d\xd6\xdb\x9e\xf7\x77\x27\x7f\x06\x15\xfe\xde\xa9\x3f\x3e\xd6\x38\xda\x05\xc1\x13\x3f\x82\x12\xb2\xb9\x05\xda\x32\xec\xa7\xf7\xd3\xb0\x97\xa2\xad\xe5\x60\x27\xff\xa6\x16\xe1\x4b\xb8\x45\xe8\xa2\x79\xed\x40\x78\xf9\xdf\xd4\x0c\x98\xd0\x75\x9b\x20\x9f\xb0\x45\x02\x65\xc7\x28\x94\xbf\x08\x0c\x71\x9a\xa1\x2c\x34\x7f\x90\x95\x54\x2c\x18\x3f\x26\xc3\xaf\x6d\x24\xc2\x33\x7b\xd2\x48\xd4\x16\x15\x60\xbb\xb0\x97\x23\x7b\x82\x6a\xa0\xe5\xe9\x0c\x78\xa4\x04\x86\x2b\x5e\x86\xb3\xb6\x28\xb0\xc0\xda\x9a\xcb\xeb\xed\xb9\x85\xd6\xee\x2e\x48\xb9\xda\x21\x06\x27\x59\xd6\x29\x97\xed\x6c\x25\x65\xa8\xb9\x5b\xde\xc4\x01\x08\xd6\xd4\x8e\x66\x0d\x81\xe8\xae\xac\xae\x53\x26\xb5\x86\x6b\x05\xae\xbb\x74\xb7\x6d\xc3\x69\x99\xb9\x6c\x17\x83\xbd\x12\x9c\xd5\x93\x8f\xe0\xa3\xf0\x2c\x50\x29\xa2\x35\xcc\x9d\x94\x54\x09\xc4\x8e\x58\x1d\xd3\x3a\x9b\x54\xa7\x02\xdb\x20\x56\xc9\xdc\x12\x49\x95\x78\xa1\xa8\x02\xcc\x2c\x17\xda\xce\x1a\x9e\x39\x0d\xab\x56\x85\x82\xdd\x8b\xb6\x3c\xd5\x59\xb8\x07\xb2\xae\x83\xc2\x03\xfa\xa1\x41\x0d\x1a\x67\x1a\xe9\xc1\xf2\x98\x1a\x81\x36\x7b\xb3\xda\x22\xa6\x0b\x60\x84\x65\x72\xa6\x1a\x2a\x1a\xf5\x6c\x8a\x3e\xfa\xe0\x33\x31\x0b\x64\x74\x56\x4b\x40\x46\xa8\xba\x75\x6c\x0a\xfd\x7b\x64\xc8\x6e\x0d\x0e\x07\xc3\xbc\xb7\xeb\xcd\x3c\x3e\xab\x59\xcd\xda\x13\x1b\x15\xaa\x8a\xb6\xa2\xb5\x48\xfb\x47\x60\xfd\x29\x40\x3a\x33\x6c\x6d\x60\x40\x0f\x06\xa8\x82\x8b\x9b\x74\x44\x15\x32\xa0\x92\x23\x91\xd0\x1c\x10\xbc\xb9\x51\x6f\x2f\xac\x29\xd8\x43\xdc\x9b\x33\x53\xb8\x89\x8e\x27\x4d\xa9\x1a\xc7\x44\xd6\x21\x2e\x12\x71\x53\x6b\x8f\x20\x53\x91\x4f\x8d\x5b\xc3\x03\x67\xf6\x1e\x0f\x44\x4e\x46\x35\x49\xb4\x6c\x5f\xb6\x07\x52\xa0\x34\xfa\x37\x9f\xfb\xdb\x63\x24\xfa\xa0\x1a\xc9\xd6\x01\x7d\xfe\xe9\x89\x5b\x01\xb3\x27\x15\x98\x34\x43\x14\xef\xaf\xd8\x65\x38\x91\x74\x8b\x64\xa6\xff\x55\x8d\x4c\xa0\x9c\xc6\xaa\xeb\xd0\x28\xa8\xbc\xed\x6b\x3f\xe1\x8a\x2b\x96\xa1\xc1\x70\xce\xd0\x06\x99\xcf\x00\xdf\xa8\x54\x0f\xbf\x61\x30\x7f\x70\x83\x26\x86\xda\x95\x36\x6f\x4c\xd5\xd0\x6a\x43\x7d\x87\x54\x6f\x60\xac\x15\xa0\x7f\xc4\x39\x3b\xca\x4d\x21\xa0\x51\x9f\x6c\xde\x78\x83\xfd\x2f\xcf\x34\x0e\x1f\x68\xed\xce\x1f\x5f\x67\x0a\x62\x51\x47\x39\x2b\x6a\xad\xe3\x67\x80\x64\x24\xfa\xda\x23\x40\xb5\xb7\x73\x1d\x71\x47\xe6\x2d\x7f\x6c\x03\xdd\x9a\xfc\x9d\x1a\x37\x96\x80\x87\x80\x12\x2f\x3a\xcb\x23\x23\xf0\xe7\x37\xf4\x08\x98\x5d\x90\x91\x12\x57\x31\xd2\x7d\xf3\x71\xdd\x3b\x1a\xd4\xdd\x33\xb0\x66\x3d\x91\x79\xa2\xce\x4a\x00\xff\x8f\x26\xc9\x8d\x87\xe8\x2c\x18\x01\x3b\x84\x76\xd7\x79\x59\xf8\x2c\x6f\x9c\x2c\xc1\x54\x81\xea\xdb\xd7\x37\x41\x21\x10\xaa\x27\x2e\x25\xa2\xf6\x70\x8d\x9b\x86\x8a\x26\x4c\x58\x6f\x00\x9e\x49\xee\xe7\x74\x77\x39\x53\xcc\xf6\x19\xfb\xaf\xf9\x60\x07\x9d\x02\xb5\x11\x7f\x6e\x57\xef\x3c\x39\x01\xbe\xc5\x11\xa1\x2a\xde\x97\x29\xf6\xda\x69\x31\x3b\x83\x60\x6d\x29\xd3\x32\xfa\x00\x2c\x34\x12\x93\x78\x25\x6b\x44\xe6\x61\x5d\x2b\x5b\x75\x2b\x4e\xbf\x51\x99\xa3\x10\x94\xe1\x66\x9b\xab\xaa\x4a\xff\xe2\xc0\x79\x8d\xd1\x2d\x37\x1f\xc1\x3e\x00\x69\xd5\x88\x08\xc8\x83\xcc\x27\x4c\xaf\x36\xdf\x5a\xd9\x14\x69\x34\x5f\x81\xcd\x39\xfc\x0c\x17\x59\x62\x14\x7a\x9c\x42\xc1\xb9\x6a\x97\x5d\xf8\xfe\x12\x24\x4a\x58\x2e\xc4\x73\x06\x99\x17\xe9\xf9\xd7\x0e\x5a\xaf\x1f\x2a\x38\xb4\x2a\x31\x1c\x8c\x06\xa7\x8d\x02\x62\x17\x71\x71\x94\x60\xcb\x57\xa0\x92\x66\x8a\xd6\x7b\x17\xdd\xf7\x2c\xa0\x0b\x3c\x2c\x4e\x97\xd0\x89\x75\x9f\x1d\xbd\x41\xad\x52\xa6\x02\x8c\xb2\xc8\x3a\x0b\x8d\xc4\x68\x40\xfb\x67\xb9\xa5\xb0\xfb\x84\x42\x23\x38\x20\x03\xd0\x9e\x1c\xb6\xa1\x99\xae\x20\x4e\xd9\x90\x98\xa9\xb8\x22\xea\x19\xec\x43\x59\x3d\x52\xcd\xb5\x93\xc6\xe1\x1a\xab\x43\x6c\xd8\x20\x57\x58\x21\x9f\x25\x45\x5d\x55\x65\xf2\x63\xe3\x1c\x6d\x12\x55\xa0\x6c\x44\x39\xbb\x60\x63\x58\x92\xb1\x6d\x81\xc5\xe5\xd5\x24\xad\x3f\x7d\x8e\x33\x29\x55\xbb\xa1\x65\x1d\x7b\xc2\x2b\xa4\x27\x21\xe1\x45\x64\x90\x8e\xeb\x0e\xe8\x0a\x39\xba\x4f\xaa\x1c\xd6\x42\x53\xf4\xc1\x1b\x64\xfd\x73\x9b\x40\x12\xfe\xd4\x3a\x2a\xa4\xd4\x31\xe2\x8f\x4e\x2e\x76\xf9\x78\xb7\x26\xd8\x03\xc4\x4b\x82\xb1\x2a\x7c\xea\x29\x47\x87\x92\x8d\x55\x6c\x15\xe3\x56\xc5\x56\x15\x9c\xac\x38\xbf\xc7\x06\x61\x1b\xe0\x60\x26\x30\xae\xa1\x94\x43\x95\x47\x4d\xc5\x7f\xf0\x0a\x4e\x13\x35\x95\x70\xa1\x69\x72\xc4\x33\xda\x58\x3a\xae\xa6\x54\x9b\x21\xbd\x41\xe2\x21\x52\xec\x3a\x56\x2a\x4b\x04\x4c\x19\x18\x90\x51\x10\x1f\x61\x64\xb1\xef\x12\xb5\x74\x42\x07\xc8\x76\xc8\x9e\x98\xa7\x2e\x8e\x01\x7d\x6b\x67\x25\x99\x67\x80\xc6\xaa\xd0\x63\x7d\xa3\x59\xdf\x56\x0a\x53\x28\x4e\x47\x7d\x0c\x9c\x25\xe1\x7d\x3c\xb3\x8b\x2e\x00\x8d\x56\xd9\xbe\x49\xb0\xda\x55\x4e\xea\x24\xb2\x29\x0a\x3f\xf3\x97\xd6\xd9\xe7\x83\xf6\x6f\xed\x94\x62\x7f\x57\xc0\x42\x1c\xc7\x15\x1b\x20\xf7\xcb\xe6\x5a\x3e\xcc\x15\x94\xac\x80\x40\x30\x9a\xb9\x4c\x79\x1b\xaa\x25\xd4\xa7\x40\x72\x91\x11\xd1\xce\x4c\xe7\xfb\x31\x24\x2e\x70\x71\x91\x6b\x4e\xcb\xe4\xde\xd1\x23\xef\xc1\x49\x73\x6c\x94\xd6\xaa\xe8\x44\x26\x65\x98\xfb\x17\xb7\xb8\x0d\x50\xe5\x23\x08\xc1\x43\x82\xce\xf7\xc8\xdc\x59\x10\x32\x87\x1d\xa1\x1b\x73\xf8\x31\xba\xd1\x24\xd1\x81\x15\x38\x05\x43\x34\x63\x83\xbc\x2a\x42\x4c\x06\xf1\x38\x8c\x45\xad\x8a\xa3\xfe\x9a\x0e\x41\xb0\x41\x84\x65\x92\x30\x74\x82\x7c\x6b\xf6\x64\x18\xe4\x87\x62\xc3\xd5\x73\x15\x58\x3e\x3b\xd4\xfc\x10\x01\x53\x7b\xb8\xfb\xc8\xc3\x27\x56\x78\xa3\x73\x36\xd6\x09\xbf\x24\xa9\xde\x8d\xe8\xe6\x12\x63\x27\x65\x12\x46\x17\x82\x60\x65\xc0\xe0\x3e\x8d\xfd\x3a\x5a\xb2\xc2\x3c\x48\x73\x1c\xd3\xab\x1c\x78\x8d\x03\x93\x62\xa9\x0c\xb4\x84\x11\x6b\xd4\x8a\xfe\xad\x8c\x24\x3b\x27\x20\xa7\xaa\x32\xe6\x9e\x52\xc4\x3c\x34\x18\x0f\x14\x21\xfb\x91\x71\x50\xa1\xda\x88\x61\x10\xe5\xca\x53\x27\x7f\x8c\x79\x8a\x5c\x4b\xcc\xa0\xf9\x60\x9f\x19\x00\x33\x22\x18\x32\x4b\xe5\xbc\xfd\xff\x7b\xac\x6d\xb5\x3e\xa1\x61\x04\xf4\x97\xc9\xe5\x88\x4c\x78\x0a\x2c\x64\xf3\x02\x85\x91\x8c\x70\x26\x8c\xb2\x3d\xe8\xef\xe9\x90\x9d\x18\x6d\xa8\x62\x1b\xf6\x4e\x86\xb5\x41\xb2\x39\xf7\xda\xdb\x9e\xd1\x16\x62\x36\xcd\xa1\x0c\x82\xe7\xa7\xc8\x40\x11\xf3\x6f\xa2\x99\x98\x0f\x11\xd3\x32\x0c\xfb\xb5\xb9\x39\x2e\x1e\x4b\x35\x24\xbd\x0f\x63\x13\x92\x89\x9a\xfb\x50\x08\xed\xac\xb3\x17\x5b\x26\xf5\x61\xf5\x21\xca\x34\xea\x44\x46\x43\x08\xae\x20\x52\xf8\xfe\x38\x71\x1c\x83\x61\xc3\xe9\x43\x36\xcc\x98\x1e\xa0\x8d\xb2\x80\x06\xd8\x25\xb0\xb6\xed\x85\x89\xe6\xdc\x72\x44\x09\x10\xaf\xa6\x12\x45\x59\x9c\x76\x75\xd0\xd2\x27\x6e\xa5\xec\x14\x7b\x3f\x65\xf3\x2d\x07\x2c\xff\x72\xb4\xfc\xc9\x07\xf2\xdd\x42\x3d\x62\x79\xbd\xb9\x38\xce\x47\x07\x86\x2f\x1a\xe1\x8a\x8f\xaf\x35\x30\xc4\x77\x19\x50\x61\x8c\x8e\x22\x17\x31\xc6\x2c\x0c\xbc\xbf\xdf\xda\x18\x22\x30\xf4\x62\xaf\xde\xe3\x00\xc7\xdd\xba\x3f\x76\xd2\xdc\x9e\xf3\x57\x6a\x1a\xff\x48\x52\x01\xa6\xc2\x02\x0c\x23\xd8\xd0\xde\x59\x30\x10\x8b\x5a\x58\x7b\xd7\xb3\xc5\x1a\x74\x62\x52\x0d\xf1\xc7\xc2\x56\x98\x99\x60\x29\x00\x91\x16\x6b\xc6\x50\x3d\x55\xfd\x54\xd8\x70\x87\x9f\xc9\x41\x57\xac\xa8\x12\xf4\x38\x1c\xe8\xb5\x8e\xd0\x90\x31\x13\x91\x1e\xa3\x84\x24\x2c\x81\x26\x2f\x0c\x41\x8d\x5f\xb3\x04\x2e\x90\xa0\xac\x67\xd0\x96\xe2\x0b\x51\xc8\x08\x67\x30\x6a\x60\xd0\x00\xef\xe5\x98\x88\xa0\x39\x04\x3b\xf7\xb4\x2f\x3f\xc2\x27\x62\x7d\xa9\x99\x1a\x9d\x24\x71\x0b\x1c\x3f\xad\x2a\x09\xf4\xa4\xd2\xf3\x9a\xec\xdf\xf4\x9f\xad\xf0\xca\x00\xd6\x39\x2c\x51\xc9\xf4\xfe\x8b\x15\x94\xeb\x80\x46\x4f\x67\x95\x64\x4f\xd8\xad\xe0\xb1\x49\xb3\x84\xf9\xc9\x0a\x00\x07\xf8\x2f\x96\xb7\xf6\x04\x96\x42\x13\x02\xec\x6f\xd0\x7b\x9c\xcb\x40\x33\xe1\x3a\x8d\xfa\x5a\x73\x6c\xa2\x73\x9d\x60\x63\x8b\xe0\xcc\x56\x03\xde\x92\x4a\x88\x26\xa9\x57\xfc\x89\xbf\x6e\x2b\x9b\xf2\xf7\x3b\xf6\x32\x55\x31\xf7\x72\x6b\xe3\x27\x52\x1f\xb5\x3b\xb2\x5a\xec\xce\x17\x73\x29\xf3\xbb\xfa\xa8\x57\xc5\xec\xd0\x04\x4c\xe2\x61\x19\xaa\x92\x26\x74\xc9\x84\x59\x78\x65\x3a\x63\x94\xa9\xb0\x4c\xf1\xcb\x0a\x30\x71\x02\x15\x44\xcf\x60\x54\xe2\xea\x03\xd6\x3c\xca\x5b\xa7\x0b\xa0\x50\xe3\x66\xa3\x7a\xba\x12\xc8\x83\xdc\x15\x87\x2f\xfe\xee\xeb\x3f\x71\xa0\xaa\xea\x87\x1b\xc3\x18\x85\xb1\x49\x34\xfb\x6c\xaf\x92\x53\x1e\x3d\x3c\xdc\x00\x86\x50\xed\x1e\x98\x76\x02\x56\xd6\x91\xe5\xdf\x79\x95\x14\x0e\xc9\xed\x16\xd9\xe0\x4f\x24\x21\x5b\x5c\xcf\xd2\x9c\x61\x0c\x05\x42\x5a\x88\x6c\x5b\x6d\x76\x13\x5b\x82\x18\x43\xb0\x91\xe0\x1a\xe6\xce\x6b\x20\xad\xbf\x21\x7d\x98\x22\xf0\x76\x80\xd3\xd2\xd0\x17\xf7\xfc\xbb\x07\x3a\xfa\x26\x20\xd7\xe9\x2d\x38\xd6\xfd\x7b\x27\xcd\x35\x90\x25\x06\x61\xdf\x98\xbc\x83\x07\xca\x9b\x4f\x0d\xd4\x5c\xd2\x28\x23\x89\xaf\xad\xe2\x27\x89\xb5\x22\x4c\x25\x5e\x3b\xc2\x5b\x34\x3f\x91\xc0\x4c\x0a\xaf\x7f\x27\x7b\x31\xe7\xa2\x89\x38\xa1\xaf\x30\x8b\xc1\xc3\x8a\x35\xb2\xfd\x29\x8d\x2d\xad\xf3\xf0\x78\x78\x18\x22\x33\x4a\x37\x41\x54\x01\x1d\x93\x2c\xbd\xca\xbe\x16\x10\xe5\xcb\x35\x04\x31\x5c\x83\xbd\xfd\xc6\xc1\xb0\xbf\x3f\x8c\x1f\x4d\xb3\x14\x49\x57\x2c\x67\x34\xf6\xe7\x2c\x75\xcc\xa2\xca\x3f\xbd\xeb\x0f\xad\xc2\x92\xeb\x33\x96\x05\x63\x09\x63\x8a\x8c\x48\xac\xf2\x21\xfd\x3a\x0c\xa2\x22\x4c\xa9\x30\x2c\x27\x46\x00\x35\x9f\x64\x50\x12\x6a\x65\x02\x83\x1b\x5c\x53\x5c\x93\x2b\x3b\xc0\x1a\x40\x1e\x30\x95\x42\x6f\x66\x9e\x9c\xff\xe7\xcf\x7d\x8b\x66\x98\xef\x40\xb9\x20\x33\xac\x36\x83\x19\x56\xff\x88\xd3\x2c\xf0\x06\x88\xd4\xd1\x38\x5a\xf6\xd6\x36\x22\x86\x6b\xa0\xe4\x56\xed\x19\x6c\xdd\xd6\xc9\xf5\xe6\xf2\xf6\xcf\x83\x43\xb0\x7e\xb8\xde\x6f\x41\xee\xac\x47\x10\xd9\x1c\x7f\x86\x94\x3f\x0f\xc7\xc8\x44\x20\xac\x28\x03\xcc\x95\xbc\x9b\xef\xce\x17\xc8\x1c\x34\xbd\x0b\x52\x07\x4c\x50\xbe\xe2\x47\x23\xda\x97\x07\x80\xee\x9c\x4f\xdc\x52\xa6\x68\x65\xe1\x44\x72\x53\x17\xaa\x79\xab\x6c\xe7\x2c\x8c\xbc\xb9\xf0\x69\x13\xea\x03\x1d\xdf\xbf\x01\x1d\x01\xcc\xa7\x66\x4b\x78\xfd\x47\x35\xf7\xcb\x51\x8d\x15\x18\xc4\xf1\xe0\x51\xa2\x32\x6e\xde\x0e\xfa\xe5\x68\x8c\x6c\x45\x97\xc5\xb0\x1a\xba\x38\x44\xdf\x29\xd8\x97\xbf\x53\xa4\x2f\x7d\x8c\x4d\xc3\xac\xc8\x3a\xa6\x28\x81\xc1\xd4\x69\x05\xe4\x68\x22\xb0\xe9\xe9\xd6\xa9\x5a\x19\xbc\x12\x26\xdf\xf9\x52\x98\xf1\x3d\x40\xd5\x5b\xd6\xb7\xad\xae\xde\x7c\x25\xdf\x5b\x74\xca\xb6\xc5\x6a\x32\x9c\xe2\xf9\x2c\xb0\x78\x3b\xa5\xac\x95\xfb\xd0\xb3\xfe\x1a\x6b\xc1\x84\x52\x2d\x94\xed\x4c\x8e\x6d\x33\x30\x2c\xbe\xfe\xa2\x3e\xc6\xea\x9b\x40\xea\x56\x5b\xa6\x5a\x71\x40\xff\xcc\x57\x44\xb6\x03\x48\xa0\x60\xad\xc9\x83\xa2\xc6\x90\x5e\x6d\xc9\xdb\x18\xf7\x26\xee\xea\x28\x29\x0e\x2d\x32\xae\x80\xa9\x92\x9c\xdd\x93\xa9\x16\x94\x99\x34\xc5\x21\xaf\x6c\x1c\x55\xb7\xc8\xa0\xc7\x8a\x5d\xbe\x02\x62\x01\x87\x46\x81\x38\xe9\x6f\xaf\x7b\xb3\x9b\xfe\x22\x70\xa3\x1a\x2b\x21\xb4\xca\x89\x96\x44\x93\xf8\xff\x5e\x63\x62\x78\x03\x9d\x69\x4f\x2c\xda\x68\xf5\xa8\x56\x60\x2e\x24\xec\x9b\x26\x7f\x9c\x51\x2f\x9f\x64\xe8\xb9\xe6\xcb\x6e\xea\x86\x8f\x59\x14\xdb\x3a\x40\xe5\xda\x71\x19\xde\x43\xb8\x79\xac\xee\x42\xd5\xbe\xf0\x29\xa3\x47\x6f\x1f\xd5\x20\xdb\xd9\xa9\x2f\x1d\x8a\xc6\x45\x5d\xd9\x82\x53\x04\xce\x95\xcb\x95\xc9\x3a\x60\xc4\xde\x77\x80\x09\xb8\x1b\x6b\xbe\x2a\xa8\xdd\x08\xe1\xff\xe0\x0f\x7f\xfa\x86\x9c\xeb\xe8\x98\x8e\xc4\x56\x07\xb7\x74\x54\xeb\xca\xe9\x83\x86\xc0\x02\x87\x47\xe2\xe6\x22\x2f\x0b\xd7\xe6\x4a\x28\x7a\x28\x63\x39\x86\xc9\x1b\x8e\x5c\x8e\xa2\x14\xe1\x0a\xf7\x2e\x2c\x40\xe2\x96\xa6\xe0\x7d\xd7\x2e\xf4\x48\x98\x29\x97\x4b\x18\x1a\xf1\x57\xcd\x2b\xe5\xb0\x28\x0d\xa4\x0b\xf9\xe2\xe5\x14\x8b\x0e\x81\x35\x4f\xbe\x07\x76\x15\x2a\x37\x2d\x8d\x1a\x84\x9d\xc9\x78\x64\x4e\x80\x02\x30\x6e\xfd\xef\x89\x7b\xef\x7f\x46\x6a\xdb\x67\x95\x72\x01\xfe\xe4\xba\x50\x05\x76\xf2\x65\x8c\x91\xc2\xba\x29\x2d\xac\x78\x63\x5b\x18\x94\x88\xdb\x0f\x0a\xf2\xa8\x89\x19\x9d\x61\x35\x5c\x1e\xc5\xf1\xf7\x27\xd1\x67\x3d\x74\x9b\x55\x46\xe5\xf6\x90\x90\xe6\xb3\x2f\xc5\x71\x90\x0b\x2b\x95\xa4\x8a\x2a\x35\x95\x64\xdf\xab\xec\xc6\x26\x4b\x25\xdb\xee\xcf\x9f\x93\x6f\xf2\xab\x8a\x21\xa0\x65\x01\x51\x06\x7f\xfa\x14\x58\xff\xcb\x97\x65\x51\x68\xa7\x08\xaf\xf4\xef\x5f\xc3\xf5\x10\x5e\xf9\x43\x15\xd1\xd0\x5b\xcd\x63\x2c\xcf\xe9\xd3\xf6\xe0\xb2\xba\xdf\xcb\x33\xad\xf4\xe5\x5d\x61\x24\x4c\xae\x24\x46\x44\x18\x8d\xba\x6f\x0a\xb8\xec\x07\x71\x1b\x37\xf0\x14\xc7\x11\x93\x63\x88\x18\x10\x07\x01\x84\x6e\xa2\x96\xaa\x18\x7c\x81\x5e\x1a\xee\xc1\xac\x25\x71\x21\xac\xb2\x72\x40\x77\x50\x91\xfa\x82\x71\xd1\xd5\x2b\xf3\xc0\x9b\x64\xb7\xb5\xc4\x45\x91\xd6\x2a\x4a\xc6\xe6\xa4\x38\x8c\xc8\x29\xca\x0b\x24\x34\x7c\xfe\x9c\x70\x43\xc5\x07\x2b\x65\xdb\x4e\x31\x99\xfb\x8f\x66\x55\x31\xdd\x24\xab\x64\xf0\x06\xaa\x38\x93\xa6\xfc\x47\xa3\xcd\xed\x13\x05\x60\xab\x12\xe5\xbd\x21\x60\x86\x51\x9f\x12\x6f\x90\xe2\x95\xd3\xe8\x55\xd3\x42\xa6\xdb\x2e\xa8\xda\x0a\xb0\x3f\x5f\xb0\xdd\x0a\x2c\x8b\x9b\x6a\x8f\x4e\x80\xd0\xd9\x5c\x9d\x45\x3a\xed\xef\xcf\x57\x00\x76\x7a\x06\xb5\xa1\xa9\x11\x6f\xfa\x05\xe2\xa8\x60\x67\x5c\x8c\x22\xa2\x68\x6a\xd0\xc1\xbc\xfd\xeb\x40\x14\x68\xc3\x2f\x67\xae\xa6\xbc\xa9\x65\x38\x34\xd4\x51\x45\x9f\x61\xa9\xe9\x5e\xaa\x1c\x2f\xd2\x10\x15\x51\x74\x2c\x56\x13\x5a\x8d\x57\x86\xfd\xd0\x9f\xa1\xdd\xcb\xd2\x97\xda\xbd\x7a\x7c\x5d\x7a\x9c\xa0\x11\x53\x74\x18\x0f\x38\x00\x08\x5d\x96\x0d\xcf\x46\x81\xf4\xa0\x4e\x88\xb6\xaf\xb1\x93\xe0\x23\xb2\x7f\x8c\x36\x39\x5e\x24\x81\x4d\x7d\xee\x07\x56\x81\x06\x70\x6f\x6d\x94\x76\x8c\xfa\x9e\xa3\x08\x3b\x6a\xde\x9f\x07\x36\xb4\x1c\x14\x71\xd8\x32\x4a\xdb\xf3\x28\xc8\x45\x07\x08\x74\x6e\x2b\x03\xbc\x51\xac\xa3\x84\x83\x8b\xe6\xea\xfe\x6e\x50\xd0\x15\x5a\xd1\x50\x49\x11\xa5\x12\x28\x44\x4b\xbb\x48\x13\x71\xa0\x2c\x2c\x67\x39\xad\x1a\x21\xd9\x1c\x60\x1b\xfb\xdb\x09\xb0\x9a\x4e\x4c\x32\x09\x77\x18\x80\xe8\x4e\x93\x61\xb9\xdf\x00\x9c\x19\x0e\x77\x9d\x5c\xc3\x29\x81\x76\x63\x54\x38\x1a\xf4\x66\x76\xe5\x36\x59\x87\x2e\x1c\x17\x63\x3d\x83\x2a\x6f\x5f\x70\xc4\x6f\xc7\x2a\x70\x16\xe3\xc5\x7c\x18\xfd\xc4\x28\xb0\x38\x76\x8c\x27\x8c\x5b\xc3\x89\xd3\xa7\x13\x34\xda\x65\x74\x93\x8b\x5b\x89\x70\xcc\xec\x3a\x2e\xb0\xac\xa1\xdc\x89\x8f\x2d\x0a\x17\xa7\x4b\x85\x4c\xd6\x96\xf0\x78\x61\x0d\x24\xe6\xd0\xdd\xf0\x50\x47\x67\xb5\x47\x28\xae\x64\xba\x53\x17\x73\x14\xae\xa5\x50\x1c\x34\x81\x28\x35\x21\x14\x46\x35\x04\x6c\x5a\x8c\x4b\x14\xc2\x63\x36\xb3\xfd\x00\xd6\x35\x11\x02\xc4\x33\x3c\xca\xd1\x0d\x02\x87\x07\x03\x46\xc6\x24\xe0\x09\xb4\x97\xdc\xae\x06\x4c\x6a\x3b\xbe\xea\x52\x2b\xb2\xf0\xe8\xdb\x4c\x6c\x1d\xe0\x7a\xf3\x00\x97\x38\x70\x55\x35\x5a\x89\x03\x1c\x49\x40\x4c\x6e\x15\x01\xba\xf0\xe2\x85\xf0\x71\x51\xbe\xc3\xb4\x10\x82\x75\x25\x81\x04\x08\x1a\x03\x4e\x55\x46\xdd\xac\x2f\xb0\x5e\x9d\x58\x87\x97\x3f\x97\xee\x1e\xa0\x2a\xcd\xb9\xe7\x68\x59\x51\x67\x60\x62\x95\x7e\xbb\x88\x56\x0c\xbc\x02\x45\xbd\x4c\xcf\x60\x0a\x8b\xc4\x2e\x5c\x0c\x9d\xf5\xa7\x6e\x51\x3a\x80\x78\x51\x17\xe6\xd5\xc0\xbb\xef\x94\x14\x81\x7b\x4d\x84\x43\x12\x16\xb8\xf9\x27\x67\xc0\x95\x6d\x50\x98\x2a\xec\x0b\x4c\x89\xb1\x93\x18\x68\x72\xef\x70\x66\x19\xc0\xde\xde\x59\xc0\xfd\x8e\x5b\x41\xd6\x8c\x86\x6a\x8a\x60\xbc\xdf\xda\xbd\xd1\xda\x49\x1e\x07\xb5\x6c\x42\xef\xcd\x46\xa0\x71\x53\x11\xda\x11\xe5\x86\x95\xff\xdb\x8f\xbe\x03\x79\xed\xe2\xb7\x1f\x7f\xe7\x92\xb8\x06\x07\xbf\x75\xf1\xdb\x0f\xbf\x73\x23\xb3\xd6\xf5\xd3\x3d\x99\xcb\x36\x35\x42\x75\x2d\x8c\x49\x4e\xaa\x50\x2a\xdb\x57\xf2\x4e\xd5\x25\x17\xed\xfe\x20\xa5\x62\xd1\x0c\xe3\x47\xf4\x15\x8d\x47\x3e\xf3\xbe\x67\xd3\x48\xf2\x9e\xcf\xa9\xe2\xd8\x86\x2f\x56\xfb\xd3\x32\x7f\x17\xb9\x82\xbf\xb4\x12\x41\x80\x94\xa2\x42\x55\x49\x7d\x8f\xa3\x06\x24\xe4\x73\x88\x02\x18\xbc\x12\x5e\xff\x81\x7f\x7d\x4a\x73\x23\x84\x70\x33\xdf\x07\x3d\x39\xda\x7f\x80\xc6\x50\xb2\x6f\x61\x74\xd9\xe8\x2d\xb2\x68\x0e\x36\x0e\x6a\xed\xeb\xc7\xfe\x8b\x15\x50\x08\x61\x8e\x1c\x8d\x68\xf2\x2d\xc9\x81\x11\x1e\x3f\x17\xc9\x18\x43\x20\x24\x36\x85\x66\x52\xb6\x09\x53\x0c\x24\xa1\xf7\x84\xaf\x28\x44\xb8\x39\x13\x32\xde\xa8\xb0\x65\x45\x43\xd1\x52\xc6\xfe\x6f\xc3\x1c\x8f\xff\xfb\xc8\xa8\x7e\x73\x33\xe6\xb8\xbf\x0f\x2d\x67\x1e\x45\xeb\x1e\x6a\x0e\x13\x7c\x18\x62\xd7\xaf\x6c\x1a\x08\xcc\x3b\xba\x43\x5e\xe2\x11\xd4\x43\x89\xd5\x05\x7d\x94\x1c\xca\xe8\xc3\xd2\x25\x49\x5f\x52\x40\x97\xda\x82\xb0\xec\x80\x82\xd9\xbc\xa6\x82\x31\xf5\x77\x75\xfb\x06\x94\x16\x50\x1c\xf1\xc0\x1e\x9e\x6c\xbd\x3a\x50\x17\x6b\x4d\xa8\x7c\x31\xad\x62\xbb\xd9\x6a\x7b\xf0\x86\xa3\xa9\x50\x7d\xdb\x3d\x68\xed\x2e\xa1\x54\xb4\xb4\x6e\xde\xf1\x08\x5f\x7e\x9a\x60\x45\xba\x09\xac\x65\x6a\x3d\xec\xcf\x93\x9b\x32\x6a\xf1\x11\x07\xba\x77\x3b\x97\xaf\xa4\x9a\x47\x77\x5b\x27\xc1\xb1\x14\xc9\xfd\xa2\xc6\x99\xb9\x62\xa7\xf8\xca\x9f\xfe\xc6\xe7\xa8\x5c\xd1\x36\x4e\xfe\x08\x40\xd6\x29\x38\x4a\x34\x68\xaf\x2e\xb6\xc6\x5e\xc4\x00\xd0\x84\xca\xc7\x7a\xe4\x08\x66\x80\x80\xf4\xdd\x90\x7c\x80\x76\xdc\xf0\x49\xc5\xf0\x49\xd3\xe2\x92\x50\x20\x54\xa4\x4c\x6e\x1f\x48\x70\x43\xd2\x38\x22\x16\x79\x86\x51\x56\xdc\x44\xc8\x88\x15\x5e\xb0\x14\x73\xf7\xf3\x2c\x50\xa2\x3c\xd3\xef\x4f\x86\xdd\xe4\x7e\xb4\x03\x53\x94\xb3\x88\x4b\x4f\x54\x32\xdc\x41\xa5\x0c\x90\x19\xc7\x77\x60\x3c\xc7\x81\xbf\x3b\x27\xea\xd1\xf4\x3d\x6f\xe2\x6e\x07\x48\x99\x08\x81\x37\xf6\xd1\x19\xc1\x9a\x61\x7b\xfe\x55\x60\xbe\xa3\x06\x90\x78\xa7\x67\x5b\xaf\xdf\x8a\x97\xc4\x50\x02\x39\xf2\x22\xd4\x7c\x37\x68\x74\x98\xe2\xcb\x1b\x1d\x51\xca\x6a\xa4\x7f\xfe\x5f\xba\x0e\xc3\xc8\x69\x28\xca\x2e\xde\xcb\xa9\xaf\x85\x21\x80\x71\x97\x6d\xb7\x5a\x40\x25\x0d\x84\xe0\xb1\x13\xbc\x7a\x5d\xbf\x0d\x5b\x28\x80\xa8\xf4\xa1\x94\x41\x76\x13\xe9\x8a\x87\x73\x6b\xc2\xec\x53\x5f\xff\x41\xf5\x9d\x0c\x88\x1c\x2a\x84\x46\x3a\x4e\xf5\x43\xc0\xc6\x14\x31\x0e\xd6\xcc\xbd\x04\x0c\xcb\xf0\x57\x9b\x51\x9c\x48\xc7\x06\x9a\x7e\x39\xba\x6f\x9c\xd5\xc0\xbe\x3e\xa0\x06\x3f\xc0\x03\x3b\x27\xac\xec\x1f\xe8\x07\x6e\xe6\xef\x35\xc6\x42\xd2\x7c\x48\xf7\x66\x00\xda\xa9\xca\x00\x47\x97\xdb\xf6\x46\xe8\x18\x87\xa3\x33\xac\xc1\x62\x80\xd7\x27\x78\x1b\x4a\xf1\x4d\xfa\xdb\x92\x46\xf1\x3e\x9a\x14\x7e\xac\x0b\x55\x27\xfd\x76\xb9\x57\x9d\xd9\x62\xca\x26\x61\xe1\x3f\x82\xd8\xf0\x1b\xfb\x3b\xab\x3b\x4b\x4f\x2a\xd3\x8d\x67\x33\xe6\x58\xe3\x40\x40\x66\x98\xca\xc1\x6f\x02\xb1\xb2\x1e\xd6\xd4\x83\x72\xd4\xf9\xdd\x54\x40\xc9\x2a\x75\x96\x3e\x59\x81\x42\x68\x72\x64\xe2\x36\xcf\x55\x03\xd5\xc0\xa4\x39\x5e\x85\x3f\x9a\x01\x47\x06\x76\x48\x96\x21\x00\x93\x56\xa4\x0c\xcf\x24\xa3\x45\xe1\xf3\xb4\x95\xf9\x3b\x6d\x68\xae\x06\x52\x65\x06\xc8\x9f\x3c\x89\x91\x7a\x3a\x45\x11\x48\x6d\x18\x81\x69\x38\x1f\x28\xb9\x0b\xf2\x19\x66\x32\x18\xb4\xc9\x0c\x6a\x70\x02\xe3\xa7\x1e\xbd\xf2\x96\xa6\xcd\xad\x9a\x29\xa6\xc9\x70\x4f\x03\x8c\x78\x88\xbd\x9d\x87\xcd\xa9\xbd\x78\xdf\x9c\x70\xa0\x03\x16\xa0\x45\x32\x8e\x47\x1a\x65\xf7\xa9\xb9\x3e\xbc\x55\xbc\x91\x17\xcd\xad\x21\xf6\x79\xb1\xe1\x95\xd6\x38\xd4\x25\x87\x6c\xff\xc6\x5e\x03\x97\x85\x04\x34\x68\x0b\x1f\xf0\xe3\xe1\xb7\x98\x99\x65\xe3\x27\x6f\xe4\x25\x0f\x20\xba\x8c\xe1\xcd\x1d\xde\x70\xa6\x65\x8b\x8c\x28\x12\x9c\x14\x28\x81\x46\xb9\xa9\xfb\x1a\x42\xb0\x01\x11\x52\x7e\x0d\x41\x38\x0a\x92\xe3\xcd\xe6\x26\x94\xa3\xb1\xb4\x0a\x88\x26\x3d\x84\x0d\xa6\xb5\x2d\xcc\xfd\x24\x06\xa3\xc8\x78\x52\x4a\xba\x8c\x76\x91\x4a\x6a\xdb\xbe\x0a\x07\x50\x77\x9f\x9d\xa1\x3b\xf2\xc4\x80\xf4\x54\x31\x4a\xe0\xc1\x2b\x6f\xfd\xd8\x5b\xdc\x93\x60\x7a\xf6\xc0\xd2\x99\x27\xb6\xfc\xa0\x0f\x93\x89\x25\xa3\x4b\x0b\x1c\xed\xd5\x7b\xa1\x02\xa6\x4c\x31\x03\x9b\xdf\xf5\xbc\x8d\x19\xa3\xe3\x87\xb2\xfd\x90\xe3\x27\x34\x4b\x1b\x63\x52\xc9\x1e\x15\x2a\xd0\x99\x1b\xa4\x39\x94\xec\xfa\x41\x0e\x35\x5b\xd5\xce\x1c\x75\xed\x6b\x82\x03\x08\xd0\xc3\xf1\xde\x00\x34\xfc\x7e\x7f\xff\xfb\xb9\x1c\x79\x7d\xbc\xe3\x55\x9d\x84\x27\x8a\x80\x20\xa0\x4f\xa1\x80\x9d\x45\x62\x3b\x09\x0e\x76\xa3\xa6\x21\xf5\x24\x23\x0e\x01\x8c\x75\x92\x38\x4d\x58\x9b\x9b\x8f\x60\xba\xfe\x02\x5b\x00\x11\x7d\xc8\xc6\xc8\x68\x8e\xa1\xd0\xf5\x67\xc1\xfa\xcd\x8c\x60\x54\x8a\x36\x83\x80\x9c\x72\xbc\xa8\xdc\xf4\xe6\x24\xc2\x32\xa4\x51\x12\x12\xb2\xce\x1c\x66\xe2\xfc\x49\x32\x22\xa7\x29\xf1\x77\x66\x8e\x18\xb5\x71\xa7\x16\x45\x47\x44\x58\x0b\xe8\x51\x5d\x36\x8d\x83\x46\x43\x34\x55\x95\xff\x3b\x81\x2d\xa9\xa3\xd8\xf4\x12\x24\x36\x9d\xe8\x51\x7c\xbe\x91\xb4\x91\x5d\x9c\xbb\xca\x4d\x85\x73\xac\xe9\x62\x23\xb1\x84\xa3\xf5\x16\x4a\x29\xc1\x97\x2b\x14\x5c\x9f\xe3\x5c\xd6\x71\x90\xff\x6c\x77\x5b\xed\x5b\x4f\xbc\xed\x19\x03\xa2\x37\x5f\x09\x01\x61\xea\xb4\x18\x10\x08\x72\xf9\xac\x91\xea\x32\x79\x50\x39\x14\x26\xcb\xe9\xbf\x91\x4d\x74\xf2\x79\x7b\xe1\x89\x44\x2d\x60\xd0\xbe\x86\x4a\xc8\xa1\xaa\xcb\x24\x06\x5b\x77\x24\x81\x24\xc9\x28\x92\x30\x66\xf4\xae\xfc\xa6\x40\x7c\xed\x80\x89\x05\xe2\xeb\xa6\x2b\x20\x74\xba\x3d\x78\x7a\xd0\x3d\x22\x01\xe7\xe0\x81\xa5\xeb\x09\x80\xd1\x83\x13\x73\x47\xd1\xa0\xa9\x3e\x48\x39\x78\xba\xb1\x13\x31\x9c\xa0\x27\x08\x8e\xaa\xdd\x35\xee\x42\xe9\x0e\x28\x77\x29\x5d\x17\x44\x29\xc2\x65\xdf\x35\x06\x2a\x18\xae\x29\x1d\xfd\x61\x8a\xa0\x1c\x56\x69\xf8\x2b\x83\x65\x32\xd5\x24\x58\x47\xe5\xa6\x8a\x00\x98\xfb\x45\xfa\xe1\x88\x1b\x0a\x9f\x69\x0f\x8e\xc0\xdc\x24\x63\xce\xfe\x98\x3f\xb8\x04\x02\x86\x37\x33\x05\xe7\x6b\x78\x02\x1a\x43\x98\x1d\x0c\xb6\x45\xfa\xc3\xd4\xfb\x56\xa0\xe8\x86\x11\xd5\xac\x8b\xfd\x45\x65\xac\x99\x10\x98\xa3\xfb\x8d\xfd\x55\xbc\x8f\x1f\x8d\x19\xeb\xdc\xcf\x47\x67\xf7\x83\x0b\x72\x6f\x37\xb8\x66\xa9\x72\xae\xe8\xc4\x00\x66\x57\xea\x06\x08\xc6\x04\x74\xe8\x16\xcf\x0b\x51\x97\x31\xb7\x08\xc5\xe8\x73\x08\x22\x33\x0f\x54\xe0\xf9\x82\xbc\xd1\xfa\x7f\x8b\x63\xdd\x44\x13\xa6\xb6\xe1\x18\xbc\x70\xec\x12\xb4\x65\x04\x07\x83\x84\xf7\xe0\xa1\x5f\xbf\x1f\x1e\x58\xa4\xb9\x8f\xcc\xe6\x30\x5e\x80\xbc\x5e\x41\x04\x99\xd0\xc9\x84\x37\x31\xec\x8f\x3f\xe3\xec\xcb\x24\x61\xfe\x3c\x38\x64\xa9\xd3\x7c\x48\x6c\x67\xa8\x3d\x29\x66\x93\x14\xc8\xd7\x69\x10\xe4\x67\x0f\xd6\xdf\x0c\xfd\xe1\xc8\x5f\xc9\x73\x55\x5b\x40\x02\x36\x28\x0f\x08\x4b\x02\xd9\xc2\xb9\x7d\x25\xaf\xe3\xf1\x33\x4c\xcb\x53\x9b\x69\x8e\x3f\x6b\x3e\x1d\xd7\xfb\xe2\xdd\x63\xf9\x28\x71\x2c\x1c\x6b\xc4\x03\x41\x0e\x32\x83\x69\xc7\x42\xe1\x74\xe1\x51\xbc\xbb\x9f\x8f\x4d\x5a\xf4\xaf\xbf\x6c\x3d\x1e\x62\x62\x0a\x87\x22\xa9\x0b\x84\x98\x4d\x4c\xc2\x86\xf8\x40\x34\x11\x64\x3a\x86\xcd\x50\xb3\xf0\x28\x22\x9c\x34\x08\xdf\x33\x78\x69\xec\x26\x4b\x9c\xaa\xc5\xfe\x05\x50\x41\x84\x99\x86\xea\xcf\x5c\x06\xb9\x55\xb1\x4a\x09\xe2\x37\x18\x66\x52\x83\x1c\x9e\xa9\x62\x66\x34\x4b\x55\xf7\x35\xe3\x43\x09\xc7\xe4\x85\x62\xf1\x62\xbd\x60\x6c\x73\x70\x32\x62\x4a\x03\x8a\x72\x96\xdb\x2a\x09\xc7\x63\xb4\x42\x60\x69\xa1\x91\x98\x77\x29\x74\xf5\xf0\xf0\xca\x76\xbf\x43\x99\xb4\x12\x1a\x31\xef\x52\xeb\xea\x3a\x3a\x1e\xef\xcc\xc1\xbe\xa5\x5d\x13\x6e\x93\xae\x64\xe7\xe9\x9e\x6d\x9a\xb3\x07\x25\x5c\xcb\x06\xe6\x25\x02\xb7\xba\x65\x0b\x1a\x16\xe7\xc2\xc2\xe0\x15\xb9\x6a\x7d\xd8\x61\xd8\x38\xf1\xab\x76\x37\x9e\xfc\x72\x1b\x24\x59\x3a\x20\xd1\x80\x4f\x82\xa0\x9c\x03\x9c\xf0\x66\xf3\xce\x89\xb7\x73\x1f\x03\xb7\x29\x46\xb8\xb1\x7f\x13\x63\xa7\x41\x60\x9b\x18\xc5\x6b\x57\x87\xe3\x98\x01\x13\xb6\xce\xee\x01\x7f\xe1\xac\x1a\x74\x63\xc4\xfa\xfa\xcf\x97\xbe\xb1\xf4\xe5\x40\xf6\xd3\x9f\x1d\x82\xf2\xcf\x3c\x5e\xd7\x32\x52\x33\x4b\x16\x47\xca\x7e\xae\x85\x34\x63\xfc\x32\xc7\x58\xdc\x7e\xe2\x64\xa3\xc0\xd1\xd0\x7d\x03\x03\x2c\x5a\x48\xe8\xee\x14\xdf\xea\x36\x45\x45\x0c\x76\xe3\x90\x10\x8a\x08\x48\x92\x1c\x3b\x77\xab\xe8\xc7\xe8\x2f\x2a\x40\x46\x2b\x77\x29\x4d\x55\xec\x0a\x62\x20\x49\x00\x73\x41\x5a\x42\x45\x0f\x64\xa2\xc3\xb9\x8e\x70\xac\x45\x60\xe8\xd2\x2b\x75\xb1\x32\x06\x53\xe2\xb4\x28\x2a\x27\x4a\xa7\xa6\xba\x9d\xdc\x80\x74\xd7\x38\xbe\x9d\x20\x79\x4a\xc6\x6c\x2d\x77\x22\x65\xcf\x3d\x97\x07\x00\x9e\xb5\x0e\x9f\xa2\xb9\xe0\xe4\x01\x6e\x22\x95\x7c\x52\x0e\xd6\xfd\x43\x26\x3c\x64\x23\x94\xc9\x0f\x65\x39\x41\x18\x06\xb0\x84\x69\x41\xfa\x23\x03\xb2\x2c\x2d\xb1\x64\xe9\x75\x71\x8b\x2f\x51\x6a\xbe\xcf\xb1\xdd\xfe\xa3\xb7\x8d\x93\x71\x75\x19\x11\x5d\xfc\x3c\xd3\xc0\x5c\x4f\xec\x5c\x56\x68\x79\x06\xe4\x17\x6e\x90\xdb\x61\x53\x47\xf3\xc9\x61\x73\xe1\x18\xe9\x76\xf1\x19\xc6\x9a\x4f\xef\x26\x0f\x8d\xe2\x76\x65\x06\x62\x6d\x8f\xc1\x28\x5f\x95\x0c\x9b\xda\x8c\x33\x7e\x81\x16\x09\x9a\x61\x63\x12\xb4\xc1\x05\x44\x80\xa5\xa4\x06\x30\x77\xd8\x98\xad\xd3\x51\x31\xcd\xe1\x56\x55\x96\x39\x6d\x5b\x6c\xed\xac\xb6\xef\x0d\xf3\x1e\x57\xcf\x10\x48\x42\x2b\x6f\x66\xd6\xdc\xef\x2a\xd5\x8a\x96\x8e\x75\x92\x40\x38\x59\xb5\x25\x8b\x6f\x11\x83\x52\x00\x6a\x33\xa8\xef\xff\xf3\xd2\x9f\xbf\xe2\xeb\x4b\xd4\xef\x8f\xef\x5f\xbd\x7a\xf5\x7d\x94\xb1\xde\xaf\x96\x0b\x76\x11\x3f\xe6\x64\x4c\x9c\xd4\x46\x2e\x49\xc1\x98\xfe\x9d\xb8\x88\x65\x20\x4a\x48\x9d\x32\x17\x87\x53\x00\x99\xe7\x14\x2e\x8b\x99\xa0\x9d\x8d\x05\xa6\xea\x63\x67\xcb\xb6\xba\xa5\x14\x5b\x39\xb7\x90\xc9\x5e\x0e\xae\x1f\x4b\x5c\x64\x94\x0c\x18\x2a\x0f\xdd\x71\x1e\xe5\x07\x27\xfe\xa3\x51\xce\xa3\x1c\x81\x61\xd7\x0c\x3b\x65\x54\x4e\x7e\x0d\x62\x5f\xb1\x83\x68\x74\x49\xdb\x48\xb7\x64\x26\xfc\xc5\x07\xad\x8d\xc7\xb0\x98\x06\xbf\x43\xbe\x46\x2b\x4d\xa9\x6e\x22\x8d\x50\x5c\x9c\x53\x2c\x0c\x50\xf2\x54\xc2\x8e\xac\x1a\x96\x28\xc2\xe1\xfa\x61\xb2\xe7\xfa\x94\x05\x0c\xfe\x2c\x0f\x90\xb1\x9e\x58\xd8\xcd\x9b\x86\xc8\x3b\xe8\xd5\x46\x03\x79\x17\x64\x3e\x14\xdf\x6b\xb3\xb1\x86\xf8\x7a\xb2\x24\x4a\xf4\x66\x8f\x31\x23\xe6\xe8\x96\xf7\xf6\x79\x63\xbf\xee\xed\xec\xc5\xe1\x4d\x73\x54\x87\x52\x33\x47\x2b\xdb\xf3\x31\x70\x55\xfc\x47\x09\x88\x10\xf2\x48\x46\x92\x66\x74\x22\xfd\x44\x41\x39\xc1\x5d\x4a\x72\xb4\xd0\x1d\xe5\x58\xa9\xce\x3d\x76\x7c\xdb\x3c\x66\xe5\xe0\x9d\x7f\x23\x79\x49\xf8\xc6\x3e\xad\x23\x08\x05\xc6\x52\x86\x57\x00\x39\x00\x6d\xff\xf8\x99\x13\xbb\x16\x17\x65\x31\x5a\x7e\x20\x16\x93\x7c\xa4\x0a\x68\xa7\x2e\x3a\x0a\xa0\x22\x44\xab\x2e\xce\x3a\xb5\x39\x62\x03\x4f\xcf\x3c\x26\x74\x41\x33\x3f\x87\x6d\x10\x76\x31\x69\x22\x3d\xf7\x62\x4a\x34\xbc\x49\x85\xb4\x25\xc0\x3a\x84\x12\xde\x40\x01\x5f\xc4\x0b\x4e\x7c\x2f\x99\xd5\x11\xbe\x12\x19\xf2\xc4\x5e\xc2\x2a\xec\xde\x7e\x30\x02\x53\x0a\xe3\x99\x1b\xe4\x5b\x41\xea\x3e\x50\xa4\x30\x92\x0c\x3e\xba\x99\xfb\x32\x45\x7c\x84\xa4\xbd\x3a\xdb\x1e\x0a\x2b\xeb\xa5\x82\x33\x60\xde\x77\xe5\xcc\xd7\xfa\xae\xa6\x39\xaf\x00\x58\xdd\x01\x4e\x86\xa5\xe0\xdb\xa0\x5d\x14\xf5\x28\xc5\x24\x0a\xeb\x2c\x59\x52\xc8\xaa\x59\x3b\xa2\x16\x87\xcc\xb8\x09\x83\x8d\x5c\xd9\x8c\x31\xc3\xf0\xf5\x52\xb3\xa3\xc4\xeb\xa5\x66\xb5\x77\xdc\x31\x8d\xb7\x65\xdc\x31\x0d\x61\x2b\x7e\x77\xd4\xac\xdb\xe1\xf2\x68\xd2\x5c\xa3\xd6\xca\x64\xa4\x27\x54\x88\xda\x2c\x8d\x8a\x81\xcd\x52\x59\x70\x24\x85\xb9\xb2\x59\x46\xb4\xf2\xce\xf2\x67\x52\xbf\x3a\x74\x3d\x36\xe0\x90\x15\x33\x97\xef\xe9\xe9\xea\x2e\x3b\x57\x5d\xbc\x9c\x59\x2d\x67\x61\xcd\x5f\x4f\xb7\x36\x6a\xea\xbc\x21\x00\xf4\xbb\xe2\x35\xaa\xda\x9b\xd6\xcd\x6b\xcd\x6b\x07\xf2\x99\x7d\x76\x92\xa7\x40\xb9\xec\xa8\x84\x3c\x5f\x91\x24\xce\xe4\xd5\x00\xf9\x01\xb5\x1f\x3a\x5d\x05\xd6\xed\x73\xae\xa6\xf1\x2f\xba\x54\x0a\x0b\xc5\x52\x1b\xc9\x6b\xcd\xfa\x72\x6b\x67\x45\x01\x62\xb1\x20\x74\xf8\x39\xbe\x12\xa1\x4e\x18\x4b\xa2\x13\xf8\x79\x11\xd0\xb4\x80\x2d\xcd\x1d\x18\x57\xc3\x94\x55\x44\x55\xb8\x48\x3e\x4e\x7f\xfa\x96\x37\x6c\x18\x62\x40\xe6\x8f\x40\x30\xf6\x34\x84\xc2\x17\xec\xf2\xc6\xe1\x04\x68\xf0\x14\xd9\x4f\xdf\x28\x60\x99\xb3\x99\xf0\x45\x6f\x89\x55\xd6\x81\xd1\x5d\x1d\x02\xa4\x55\x31\xc7\xb4\xd3\xdf\x12\xde\x82\x14\x3b\x56\x0b\x20\x72\xe5\x4c\x0f\xe8\x07\x93\x63\xcd\xcd\xd3\xe0\x6b\xa9\x6c\xab\x6a\xed\x55\xc9\x8d\x1d\x94\x02\xce\x10\xf9\xcd\xcd\x97\x74\x9f\x55\x7d\x0e\x85\x60\xa8\x8f\x19\xd4\x19\x30\xf3\x3e\x26\x6d\x32\xc6\xd8\x38\x18\x47\x93\xc5\xdb\x17\x26\xca\x2f\xe6\x02\xbc\x45\xdc\xc5\x98\x4b\xe0\xa2\x6b\x29\x57\xbf\x1e\x0a\x91\x17\x67\xf1\xf4\x0f\x67\x14\x81\xa9\xe2\x4a\xa6\x57\x9e\xad\x09\xc5\xaa\x04\xc5\x24\x0f\x9a\x7e\xf9\x70\x5d\xf5\x6a\x03\xc7\x33\x63\xde\xa8\xe0\x1a\x40\xc8\xb3\x8f\x3e\x20\x3e\xfd\x23\x2b\xa3\x5f\x99\x20\xe4\x0b\xe7\x53\x30\x4a\x3a\xbc\x0a\x62\x79\xba\x5f\x71\xa6\xf0\x09\xf2\x65\xa6\x7c\x39\xe7\x5c\x2d\xd2\x21\xc2\xd8\x55\x4a\x95\x6a\xe6\x6a\x99\x8c\xe7\xf4\x35\x8a\x7f\x0a\xcf\x43\x67\xe4\x9d\x1a\x2a\x35\xab\x37\x60\x1b\xc6\x07\x60\x06\xf4\x6a\x3b\x65\xb4\x1b\x94\x75\x29\x77\x39\xbd\xb3\x04\xfc\xad\x75\x7c\x2c\xaf\x41\x45\xa9\x46\x44\xc8\xd3\x05\x7d\xe1\x46\x93\x91\x7a\x0b\x2d\xa1\x92\xba\x34\xa7\xd4\x0d\x6f\xf6\x66\x73\x79\x3d\xc8\x37\x57\x3f\x6c\xed\xec\xa0\x95\x72\xf1\x19\x6e\x23\x46\xe9\xcd\x3b\x98\x8a\x6d\x6e\xb9\x71\xb8\xd1\x9c\xda\xf5\x56\xaf\x1b\xd9\x01\x75\x1f\x98\xe5\xc8\xed\x93\x55\x88\x8e\x80\x92\x9e\xf3\x3e\xe0\x68\xa7\xe8\x6e\x20\xd5\x50\xed\x07\x59\x02\x26\x62\x51\x82\xa3\xe4\x96\xce\x14\xf0\x86\xdc\x80\x64\xef\x32\x29\xc5\x3c\x7c\x98\x64\xc4\x66\xc7\x43\xbb\x7f\xc3\xc8\x1b\x7f\xfe\xdc\xb7\x4e\xb9\xf7\x3b\x23\xfd\xa2\x4a\x5b\x6e\xa4\x5e\x34\x4b\x23\x57\x38\x19\x0c\xa3\x14\x29\xbb\x30\x5e\x7b\xda\x19\x6c\x2e\x6f\xa3\x4d\x7e\xf7\xb6\x7f\x63\x9a\xef\x6f\x92\xf5\x70\x92\x72\x78\x5e\xd3\xb7\x61\x82\x97\xd1\x54\x42\x29\xba\xaf\xc2\x92\x1b\x3d\x37\x86\xd6\x57\x76\xc4\x60\xba\x80\x92\xed\x94\x90\x27\x18\xc6\x27\xca\xce\x87\x8f\x31\xb9\x4e\xbf\x4d\xb1\xd4\xd7\x06\x29\x93\xfe\x5d\x0c\xa5\xa4\x60\x37\xce\x12\xe9\xaa\x09\x51\xea\x46\x4c\xf0\x74\x95\x52\x63\xa3\x8d\x0b\xaf\x94\x4c\xaa\xf6\xb8\x20\x9c\x6a\x6c\x7f\x2b\xe1\x1e\x0f\xb6\x1a\x7a\xd8\x4d\x35\x8d\xb8\xe2\x2b\xea\x3c\x50\xf1\x1c\x27\xa7\x8f\x94\xef\x12\xa8\x80\xdf\x63\xf0\x9a\x66\x23\xd7\xe7\x77\x25\x11\x85\xbf\xb4\xce\xd6\x2c\xce\x59\xe7\x0d\x03\x01\xdc\xe6\xe9\x04\x49\x32\xb1\x83\xe0\x36\xd6\xa0\x37\x0d\xd0\x4b\xdc\x15\x87\x9e\x4a\xe7\x70\x56\x0f\xdd\xe7\xd0\x53\x75\x05\x91\xea\xe3\xad\x95\xbc\xeb\x6a\xc9\x20\xb8\x8f\x09\xc3\xe0\xaa\x98\xe0\xe0\xad\xd8\xa8\xd9\xc3\xb4\x3d\xd6\x3c\xdc\x20\xc5\x2d\x39\x97\x9a\x41\x62\x7f\x77\x3a\x35\xa3\x8d\x77\xdc\x80\x0c\x5e\xb8\xa3\x3a\xbf\xd5\xf1\x19\xe4\x10\x93\x3e\x87\x37\xc3\xe2\x72\xf2\x2b\x8d\xba\xb8\x43\x4a\xb1\x77\x78\x20\x3b\x8c\x35\x0c\x1c\xe4\x79\x30\xa0\x3b\xab\x38\xe2\xbe\x04\x3a\xfd\xad\xde\x4b\xa1\xe8\x8e\xde\xcb\xe4\x4c\x56\x82\x2f\xca\x64\xf5\x2e\xc5\x2b\x65\xa6\x47\x8c\xab\x65\x49\x57\xf5\x3b\xc1\xbe\xfb\xce\xbe\x9e\x91\xb6\x9e\xfe\x96\x3b\xfb\x1d\x1c\x05\x89\x97\xf7\x3b\x8d\x11\x79\x85\x3c\x8f\xc2\x48\x0a\xdd\xe0\x4f\x82\x56\x17\x5d\x05\xfe\xef\xbc\xc6\x9f\x64\x66\xc7\x1b\xac\x74\xd7\x92\x35\x0b\x4c\x58\x13\xb3\x3b\xf3\x03\x6b\xb5\xbd\x20\x3d\xe6\x3e\x7a\xbd\x34\xb6\x84\x58\x88\x5b\x6a\x6c\xc9\xfe\x13\x66\xcb\x27\x65\x56\x65\x6a\x14\xb6\x1b\x2e\xd4\x21\x54\x94\x30\x8b\xbd\x62\x06\x4c\x99\x32\x8f\xa7\xf8\x7b\xac\x05\x2e\x0d\x37\xc1\x9d\x05\x40\xec\x5d\x32\xa2\xae\x55\x81\x78\x3d\xfc\x85\x1d\xe0\xa9\xd1\xa6\x61\xa1\xb3\x36\xde\xf7\xbe\x3f\xd3\x9a\x9f\x6e\x1d\x3e\x6d\xd4\x8f\x83\x52\x76\xc8\xa4\xcc\x3c\xb2\x41\x21\x1c\xde\x58\x46\x29\x48\xf5\x13\x1b\x52\x26\x47\x98\x36\x89\x91\x64\x84\x99\x3e\xe9\x2c\xa3\xd0\x52\xac\x80\xb2\xa9\x76\xc2\x30\xc7\x23\xde\x1a\x69\x06\x9f\x65\xe0\xc4\x22\x5c\x9f\x72\x7e\xe2\x09\xd8\x85\x29\x35\x25\x9f\xa6\x3a\xab\xb8\xc0\x1c\x5c\xb8\x04\x45\x0c\xc9\x08\x03\x43\xab\xa3\xad\x92\x58\x7b\x42\xb9\x46\xb8\x71\x9c\xa0\x20\x45\xee\x3b\xb9\x0d\x89\x19\xd3\xf0\x72\x2c\xb2\xc0\xe7\x0f\x83\x5c\xaa\x46\x26\x16\x6a\x96\xa4\x4d\xd5\xaf\x37\xb2\x80\x59\xe7\x42\xfd\x9a\x00\xbf\xa2\xe3\x9f\x07\x87\xe4\x56\xae\xf2\x8e\xbc\x6b\x04\xf2\x26\xa2\x30\x30\x4e\x87\x19\x1a\x81\x09\xf0\x5b\x46\x80\x49\xcc\xd9\x8e\x0b\x43\xe1\x47\xab\x86\xdf\x80\xbc\x62\x4a\x35\x18\x9f\x4f\x8d\x24\x8d\x4c\x5d\x4f\x0e\x0e\xde\xd0\x3d\x65\x06\x0a\x02\x66\x08\x44\x9d\x1f\x5c\x48\xc4\xef\xc6\x8e\xf4\x20\x25\x32\x4f\x60\xf7\xe0\xec\x6d\x6d\xf1\x71\x6f\x6a\xfb\x74\x1b\x7e\x0e\x6a\xaa\x23\xf2\xad\xa9\x7a\x45\x02\x50\xc2\xfc\x81\x87\xa6\x05\x32\x9e\x99\x6c\x22\x2e\x4b\x3e\x20\x93\x26\xa8\xd2\xc7\xb0\x84\x66\x24\x75\x09\xd1\x36\x1a\x5a\x48\xb6\x51\x7b\x9e\x57\x23\xa1\x67\xa3\x3d\xa5\x6b\x31\x8a\x42\xdc\x3a\x0e\x6b\xd8\x50\x92\x73\xc6\xd0\x41\xaa\x17\xd2\x3c\x85\xce\x66\xe0\xe6\x20\xd1\x61\x7f\xfd\x18\x99\xf3\xda\x73\x6f\xaa\x8e\x2e\xcf\x48\xa6\xe2\x58\xb6\xa3\xd8\x40\xb5\xad\x89\xec\xba\xa1\xc9\x05\x27\xb5\xb1\xe3\xe3\xd2\xa0\xa2\x45\x4e\xb4\x04\x63\x08\xef\x2f\x4d\x03\xcc\x44\x0c\x15\x5c\xd1\x4d\x64\x4a\xe8\xac\x21\xa5\x25\xc2\x39\xf0\x51\x94\xe9\x2d\x68\xc5\x08\x3d\x30\x59\xc2\xbf\xdf\xc8\x4c\xa3\x0a\xb3\xa0\x50\xa6\x99\x0e\x1c\xe3\x1d\xfd\xa3\xe8\x4d\x99\x49\x22\x9b\xe2\xd7\x21\x84\x46\x18\xe7\x24\xfc\xca\xad\x66\x26\x94\x72\x9a\x8c\xc5\xca\x03\x6f\x8c\x32\xa4\xd8\x70\x17\x4a\xb7\x89\xec\x0a\xe3\xfd\x65\x73\x67\x84\xa1\x25\x08\x81\x02\xc3\xf8\xe0\x8b\xb7\x56\x04\xbd\x0c\x75\x54\x34\x02\xa8\x1c\xe2\xde\xde\x52\x6b\x57\x62\x05\x4c\x6e\x17\xe4\x27\x10\xcb\xa8\xce\x6c\x1d\x24\x67\x51\x0f\x96\x10\xc2\xbf\xeb\xfc\x28\x3b\xfa\xb3\xd4\x73\xd6\x2a\x31\x80\xf9\x28\xb8\x12\x4c\x55\x59\x42\x7a\x69\x55\x84\x17\xe7\xf1\xe6\xa8\x92\xe0\x8d\xbc\xdc\x0a\x84\x5f\x34\x0b\x3d\x65\xa6\x8a\x24\x20\x27\x25\x4f\xf2\x4c\xcf\xe0\x43\xa7\x2a\x53\x81\x53\xcc\x53\xbc\x88\x7a\xb7\x14\xe6\xa0\x26\x00\x42\xa5\x8b\xcf\xa6\xf4\x06\x0f\xd0\x53\xc6\x3c\xfa\xe2\x2f\x3e\xa5\x2f\x15\xa7\x02\x12\x89\x3f\x58\x6f\xed\xac\x60\xd2\xf6\x1c\x59\x47\x15\x4a\xc8\xf6\x08\xb8\x47\x79\x8b\x7b\x20\xc3\xa4\xb6\x63\x6a\x38\xa7\x64\x97\x43\xc9\x9f\x75\x16\xfc\x50\x6b\x03\xb0\x8c\xfd\x64\xef\xac\xaa\xf9\xc0\x98\x5b\x1b\x23\xcd\x9b\x6f\x7c\xf4\x28\x25\xf4\x9c\xce\x17\x7b\x1c\xc9\x71\xaf\x1f\x7e\xa6\x61\xe0\x8d\x94\x6e\xb2\xc8\xd1\x0b\x44\xfa\xb5\xb8\x09\xe3\xeb\xfe\x96\x8e\x8e\x0b\x7d\xe5\x24\x83\xd1\xaf\x3a\x9e\x29\xe1\x2b\x27\x04\x89\x96\xb5\x5e\x3f\x0c\x7d\xc2\xf7\xc0\x57\xe0\x14\x3b\x0c\x7f\x5d\x5a\xe1\x8d\xc9\x5e\x9d\x50\x19\xe6\x07\xa6\x30\xb5\x58\x3b\x14\xb2\x16\x9b\x4e\x38\xf9\x5f\xb8\x8c\x65\xbb\xc4\x81\x72\x16\x9d\x58\x0d\xc3\xde\x19\x2b\xe3\xc7\x20\xe9\x45\xcf\x50\x81\x21\xd7\xc7\x7a\x51\x91\xc3\xd1\x02\x36\x24\xc5\xc0\xa9\x91\x46\x1d\xf6\xf1\x4a\x6c\x85\x68\x53\xc7\xda\x91\xc0\xda\xa4\x1a\xed\x85\x1b\xca\x53\x9b\x40\x99\x62\x65\x95\x63\x50\x5e\x06\x4f\x00\xe3\x47\xf4\xe8\xa6\xc1\xf0\xcb\x64\x90\x72\x15\xd5\xf0\x0d\xb2\x38\x07\xe5\x18\xa2\x5f\x4c\x4b\xea\x44\x87\x72\x25\xc1\x39\x8d\x92\xdf\xe2\x16\xe7\x4b\x34\xd7\xee\xec\x9a\xc1\x91\xca\x81\x66\xe1\x16\xc4\x4b\xcf\x42\x80\x91\xfe\x53\x37\x28\x87\x73\xbe\x18\x7d\x8e\x49\x39\x46\x74\xb3\xec\xac\xd5\xc9\xe1\x7e\x45\x0b\xf1\xa1\xe9\x36\x60\x5a\xef\x1e\x14\x19\xe9\x30\x01\x49\xfe\x8a\x1d\x1e\x8e\xec\xb3\xed\x7b\x94\xc0\xeb\xec\x8a\x91\x51\x98\x55\xcf\x18\x02\x3e\xc9\xd9\x9b\x55\xaf\x0b\xaa\x97\xaf\xc5\xbc\xf9\xf0\xba\xb7\x78\x82\x91\x6d\x73\x6f\x3a\xd5\x49\xee\xd5\xa8\x98\xd8\x6b\xd9\x76\x07\x8a\xd9\x34\x3d\x24\xe9\xf6\x91\x63\x92\x6f\x6a\x49\xee\xdb\xf7\xba\xe0\xf3\x07\x9c\x5d\x25\xff\x37\x9b\xfc\x77\x68\xcd\x92\x27\x7e\x6b\xad\xed\xc7\xde\xec\xcd\x5f\x30\x94\x98\xde\xef\x54\xcf\x72\x8b\x3f\xed\x60\x59\x72\xdc\x8b\xf6\x3e\x76\x76\xdf\x91\x39\x30\x23\x34\xc7\xf3\xae\x39\x18\xae\xf1\xf0\x44\x4c\xa4\xa0\x8c\xf2\x57\x02\xd4\x9c\xa2\xc6\x39\xb0\x75\x6a\x73\x3e\xe5\xb4\xf3\x8a\x03\x46\x3b\x0f\xdf\xec\x36\x71\x1d\x62\x5d\x76\x98\x54\xe8\x94\xe1\x87\x9d\xab\xa5\x4a\x5e\x47\xae\xf0\x7b\xa4\xfe\xfc\x9b\xf6\xfc\xab\xd0\x2e\xad\x96\xd1\x1d\x98\xee\x75\xca\x4e\x15\x74\x08\x5b\x3c\x80\xb0\x1e\xf2\x81\x4e\xa8\xf6\xe8\x74\x52\x2d\xd0\x12\x40\x16\x4a\x57\x39\x55\x0e\xeb\x13\x23\xc3\x40\xb1\x92\x73\x2e\x5c\x8b\x8e\x65\x55\x07\x8d\x95\x59\xb6\x69\x73\xd4\x37\xae\xf5\x08\xa2\x8f\x63\xba\xf0\xf2\x73\x50\x55\x2a\x39\xdd\x95\x0c\x0c\x29\x97\x62\x08\x7e\xc0\x28\xd2\x4b\xc9\xa1\x1c\x74\xe9\x02\xe0\xb4\x5a\x4a\x23\x0e\x48\x88\x6f\xdf\xaa\x71\xee\x1f\x74\x16\xde\xd9\x4b\x68\x5d\x0d\x49\xea\x48\x1f\x34\xa8\x8e\x75\xf0\xba\x79\x08\xbe\x3d\x7a\xd3\x9f\x4b\xe8\x43\xa1\xac\xcf\xce\x94\x42\x08\xb3\xfe\x08\x5f\xac\x33\xd0\x46\x35\xa2\x08\x30\x2a\x25\x62\xc1\xac\x94\xcf\x81\x76\x66\x54\x68\x3e\x39\x6c\xcf\xbf\x38\xab\x02\x39\xfa\xc5\xe1\xa4\x9f\xea\x35\x07\xda\xa9\xa6\x78\x64\x72\x18\x22\xcb\x98\x78\x57\x45\xa7\xfb\x5f\xec\x2c\xb0\x70\x86\xd9\x3d\x68\x3d\x5f\x89\xd3\x5b\xb7\xe3\x54\xf0\x49\xec\x12\x8a\x59\x14\x96\x45\xf8\xa3\x08\x41\xeb\x12\x7e\xb2\x12\x51\xc7\xd0\x51\xdc\x99\xa4\x26\xb5\x13\x28\x0e\x33\xf3\x41\x77\xe5\x6a\xb6\x52\x85\x1d\x2b\x7d\x7e\x79\x09\xf3\xf9\xd1\xbd\xe6\x1b\x67\xac\x59\xac\x76\x72\xe7\xf1\xd6\x42\x8d\x64\x33\xd9\x3e\x3b\x61\x0c\x9f\xe1\xf7\x5f\x31\x88\x58\xfd\x0e\xa3\x88\xb7\x17\xda\x50\xf4\x78\x07\x9a\xd4\xbb\xab\xd9\xcb\x76\x05\xef\xbe\xf4\xa5\xc9\x17\x9d\xdc\xa0\x37\x76\xd7\x7f\x38\xe3\xdd\xae\x79\xfb\x13\xad\x95\xcd\x78\x8b\x70\xf2\xf4\xdb\x95\x0c\x05\x16\x24\x0f\xe9\x0f\x9f\x59\xde\xf0\x75\x11\x8d\x63\xf5\x1d\xd0\x3c\xca\x69\x11\xbc\x65\xd7\xa2\x08\x13\xb0\x07\xd2\xf8\xcc\x16\x59\x2e\x8f\x37\x85\xb9\x52\xf8\x24\xcc\x0e\x64\xe9\x39\x99\x71\xd8\xbb\xd4\x3f\x6f\x2e\x3a\x01\x23\x88\x25\x8d\x03\x2a\x11\x7f\x6d\xbd\x5d\x6a\x3e\xae\x73\xb2\x6e\xac\x17\xe7\xb1\xcc\xf7\x14\x3c\x82\x90\x98\xc5\x80\xa0\xa5\x24\xb2\x49\x00\x2f\x65\x70\x17\x22\xfc\xfd\x6b\xde\xd0\x62\x27\x78\x35\x1a\x06\x37\x06\x62\xd4\x8a\x60\x9f\x19\x56\x30\x12\xe1\x56\xa2\x1f\x72\xc8\xbb\xa4\xbe\x06\x02\xb5\x0b\x21\x8d\x31\xa4\x4b\x76\xc5\x9f\x20\x16\xcf\x9f\x7a\xfa\x86\xa1\x22\x6f\x49\xf2\x57\x25\x86\xd1\x2d\x6d\x15\x61\x27\x45\xd1\x14\x20\xfc\x99\x85\x1c\x89\xb0\xc1\x21\xf3\x67\xc9\x7a\xa4\x06\x20\x53\xe6\x32\x79\xd6\x54\x9e\xd2\x44\xbd\xb3\x67\x00\x58\xc7\xac\x8c\x86\x1f\x33\xe5\x07\x84\xc9\x63\xa8\x9e\x31\x0d\xa6\x17\x8e\x3a\x92\x77\x7c\x92\xef\x88\x72\xa5\x50\x44\x86\xcc\x87\xe4\x5f\x0e\xca\x61\x25\x19\x74\x10\x55\x48\x09\x35\x53\x9c\x42\x33\x54\xa1\xe0\xf4\xaa\x87\xe0\x45\xb3\xe6\x0c\x23\x22\xe9\x33\x64\xec\x1d\xd4\xbd\x11\x6f\xf0\x08\xbd\x85\x4f\x0e\x81\x2f\xa0\x29\xf5\x74\xc9\x9f\x18\x22\xaf\xcd\x3d\xfd\xcc\x9c\x36\x1e\x46\x1f\xe7\x09\x9e\xa6\x4e\x7e\x99\x27\x98\x63\xe0\xd6\xa1\xb9\x9a\xb5\x14\x58\xde\x4d\x07\xab\xac\x5b\xe6\x87\x99\xc3\x2b\x8e\x90\xb4\xe8\x01\x14\xbb\x4e\xc3\x16\x52\x8d\x1f\x74\x76\xd2\x73\xf4\x14\x93\x18\x24\x71\xa6\x4a\xbc\x30\xc6\xf5\x49\x6d\x9d\x4a\x9e\xbc\xf2\x2c\x26\xcc\x20\xd1\xcb\xa6\xc7\xa8\xa9\x2c\xf6\x54\xda\xff\xdf\xf7\xe0\xcc\x51\xa8\x57\xe1\xcc\x41\xfc\xfa\x27\xe1\x98\x64\x3a\x3f\x0c\x67\x60\xc5\x8c\x4d\x93\x25\x8b\xdf\xad\xc5\x37\xb2\xba\xe8\xf2\x4c\x88\xa1\x18\x66\x26\xc5\x50\x08\xd2\xf4\x26\x07\x81\x16\x6e\x17\x07\x2c\x88\x01\xf0\x8e\xfa\xaa\x6c\xe3\xf2\x44\x21\x33\x31\x62\x12\xc4\x2a\xc2\x7d\x9a\xf6\xab\xe6\x9d\x09\xe8\x56\xc1\xc6\x12\x0b\xf1\xe7\x0e\x89\xbb\xa3\xde\x36\x9d\x56\xd4\xed\xa2\x34\xab\xb6\x7a\x5a\x8d\xc6\xc3\x05\x98\x5c\xd5\x95\xec\xaa\xc6\xe7\x50\x4a\x4f\x19\x3e\xee\x7c\xd9\xff\xa1\xe1\x9b\xb6\x35\x85\x32\x86\xa5\xac\x07\xc6\xed\x28\x62\x2d\x52\x14\x7f\xf9\x96\x0b\x38\xab\x31\x37\x29\x41\xb7\x5c\xc0\xaf\x54\x49\xe2\x8c\x5d\x7a\xe6\x8c\x0b\x92\x62\x50\x14\xab\x35\xc6\xdc\xb1\x61\x2a\xed\x38\x9e\x48\xc0\x2d\x7f\xec\x73\x5c\xcc\x64\x56\xf7\x17\x0f\xf5\xbb\x39\x54\x50\xc2\x44\x74\x5c\xd0\x7c\xba\xeb\x4d\xff\xa4\x0a\xc8\xda\x90\xc3\x57\x52\xd1\xb2\x60\x7d\xfe\x55\xa8\x40\xbf\xdd\xc4\xc5\xea\xbd\xa6\x04\x08\xed\xbe\x52\x6a\x2a\xbf\xa6\x81\x79\x69\xf8\x02\x2c\xa6\x52\x9e\x02\x3d\x4f\x67\x17\xe0\x18\x26\x74\x18\x2b\x83\x5e\x63\x5f\xde\xb6\xc7\xf7\x83\x1f\x0f\x49\x12\x00\xda\xf8\xed\xa7\xd1\x1b\xc7\xfa\xfd\x49\x39\x7e\x29\x5b\x8f\x5c\x2e\xa3\x9c\xa6\x9c\x2a\x27\x04\x03\xf3\xc4\x87\x9a\x8d\x59\x66\x2a\x95\x72\xbe\xbb\x8a\x2e\x4f\x8a\xaa\xa1\xf8\x22\xef\xf9\x43\x4a\x79\x1e\x05\x71\xab\x7c\xb7\xc1\xdb\xb8\xed\xef\x4d\x77\x82\x32\x9f\x77\x0e\x81\x70\x4a\x20\x19\x23\x67\x04\x6a\x6d\xdc\xf0\x6a\x0b\xba\x0d\xb2\xfe\x2b\x30\xc5\xc6\x93\x20\xfb\x91\xf7\xa7\xdd\x4c\xea\x4b\xd7\xfa\x5d\xce\xba\xf4\x3b\x55\xe0\xf6\x57\x4a\x9c\xa1\xfb\xd2\x97\xdf\x7c\x6d\x25\x91\x15\x82\x10\x9d\x10\x44\x12\xb1\x20\x04\x11\x8c\x01\x11\xa6\x1a\x89\x9c\x91\xa8\x6f\x57\xa8\xb0\xb9\x70\x8c\x08\xc4\x9c\x57\x89\x60\x49\x07\x2e\xc8\xbb\xf4\x04\xc5\x24\xa8\x32\xdc\x0a\xc5\x0e\x51\x7c\xf6\xc2\x8c\x57\xa3\xc7\xe3\xd7\xee\xa3\x29\x90\x4a\x1b\x07\xe3\xb0\x81\x38\xfd\xb8\x4a\xd4\x3e\xef\x4d\x83\x7c\xf1\x1f\xde\xa3\x47\xee\xef\x73\x9e\x23\x73\x6f\xa6\x2b\x94\xf1\x17\xf7\xa6\xf5\xcd\x17\x97\x2c\x7e\x3a\x49\xcf\xf6\x72\xbe\x84\x10\xf2\xa0\x6a\xca\x3b\x3d\x6e\xde\x59\x27\x40\x95\xd9\x5c\xf6\x10\x3a\xb9\xec\xf2\x95\x7c\x56\xa8\xe5\xeb\xdf\x7d\x69\x85\xef\xb9\x84\x7a\xa5\x6c\x2e\x4a\x90\x4a\xc9\xb5\x43\xb2\xfa\x0b\x09\x50\x46\x18\x95\x74\x4d\xb8\x4c\xbe\x04\x43\xa5\xfc\x16\x6c\xe3\xd7\x6d\x06\x22\x12\x2f\xaa\xf2\x56\x0a\xa6\x4d\x99\xc1\x74\x2d\xa8\xac\x50\x26\x63\x8a\xcb\x68\x5c\x03\xd8\xa0\x85\xb1\x9c\xf1\xb0\x70\x93\xa1\x05\x72\x8f\x31\x8e\x98\xd0\x63\xd6\x10\x61\x21\x69\xdc\xa1\x80\x1d\x18\x3a\xc3\x84\x4b\xd3\xcc\x26\xd9\x67\xca\x80\x2c\x10\xaa\x37\x46\x62\xb0\xca\x6b\x26\x28\xa0\xf8\x16\xae\x99\x14\x4a\x6e\xd4\x0f\xa5\x2b\x53\x38\x49\x38\xa3\xd9\x51\xa3\x0c\x47\xe2\xb6\xd1\xa9\xe0\xd9\xa6\xa5\xa1\x32\xa5\x92\x70\x17\x8e\x7c\x11\x5a\x31\x4a\xaf\xd8\xda\x79\x23\x31\x9f\x46\x21\xdd\x93\xa2\x42\xbe\x27\x25\x45\x8a\xff\x73\x9b\x72\x0a\x48\x99\xd3\xd3\x03\xfa\xa7\x8d\x69\xe3\x28\x24\xa3\x79\x78\xea\x6f\xae\xd0\x6d\x2e\x55\x3b\xef\x12\x8d\xa2\xcd\x8a\x6c\x3f\xbd\x92\x3c\xa7\xf5\x16\xaf\x2f\xfa\xf3\xeb\xde\xe9\xbc\x86\x2e\x57\xd5\x7b\xb2\x64\x15\x53\x92\x9c\x51\x4a\x3d\x89\xcd\x2c\xdc\x13\x89\x15\x65\xc7\xa9\x70\x02\x7c\x51\x45\x1e\x1d\x70\xca\xef\x00\x95\xe8\xe9\xc9\xa6\x39\x63\xb6\x86\x6e\x2f\x2d\xf8\xa0\x6d\x90\x75\x30\x5e\x07\x46\x1d\xad\xc0\x03\xef\x54\xc1\xcd\x96\xf3\x25\xb9\xe4\xd6\xba\x71\x1f\x30\xad\x58\xa3\x1e\x2c\x26\xeb\x12\x2a\xa2\x19\x7b\xd3\x93\xa0\xfb\x60\xbc\xf6\xcc\x88\x22\x4e\x85\xc3\x6e\xbd\xf2\xea\x04\x8b\xac\x3c\x40\x18\x17\xea\x50\x96\x0a\x77\x07\xe5\x09\x27\x76\x50\xc8\xce\x0a\x55\x39\x42\x38\x50\x2e\x6b\xf2\xd0\x9f\x5a\x8f\xac\x09\x14\xba\x6e\x81\x97\xe5\xd2\xa5\x2f\xac\xe8\xf2\x07\xc5\xe6\xd3\x23\xf5\x61\xe0\xb9\xd6\x05\xcc\x33\xd9\x5b\xb6\x81\x11\xa8\x4b\x2a\x63\x66\x4d\x46\xb4\x1a\x15\x3f\x61\x10\x2d\x37\x5a\x65\x83\xaf\x75\xc1\xfd\xa1\x90\xaf\xd8\x1f\x5f\x20\xa7\xf8\x85\x4a\x3e\xd7\x7d\xc1\x6c\x58\x71\xd6\xd0\x66\x8a\xe0\x53\x6b\xa5\xa1\x07\xff\x52\xa2\x8d\x92\x1e\xca\x01\x73\x71\x3a\x0f\xd8\x30\x52\x39\xd7\xe0\x0b\xb9\xc1\x08\xf0\x2e\x06\x03\x8a\x8b\x07\xce\xf3\x0a\xba\x6a\xf9\x52\x06\xd5\xf1\x27\xc6\xda\xb7\xcc\x11\x71\x6e\x4c\x95\x2b\x93\x62\xd8\xbd\xa3\x43\x38\xb8\xc4\x73\x46\x17\x4a\x34\xbc\x7a\xd2\x94\x0c\x4d\xea\xf5\x53\x4e\x18\x79\x84\x9e\x0b\xfd\x56\x29\x83\xd3\x34\x45\x05\xe7\xf9\x99\x8f\x47\xc6\x66\x49\x57\x7e\xf2\x7f\xc3\xcc\x88\x76\xf6\x32\xec\xfc\x21\xe4\x0d\x7c\xf1\x05\x93\xf0\x4e\xb7\xef\x9c\x7a\x87\x8f\xf9\x45\xc3\xf8\x98\x4a\x20\x8b\x67\xe4\xa0\x34\x9e\xff\xc7\x85\x08\x38\x12\x5f\xe3\xc3\x8b\x0c\xe9\x02\x39\x6f\x58\x2b\x65\xfa\xe3\x60\x4e\x79\x23\x9c\x73\xbd\x0b\x9a\x5c\xbb\x12\xc8\x8a\x46\xed\xf6\x28\xae\x30\x4b\x8a\x9d\x6a\xab\x4b\xbe\x42\x1a\x81\xe3\x31\x42\x1e\x3f\x54\xed\x2a\xb4\x6b\x17\x7b\x91\x75\x60\xf4\xc9\x3c\x4f\x38\x40\x14\x5f\xb3\x23\x7b\x0e\x70\x3e\xb9\xee\xd8\x7a\x33\x0c\x72\x79\x40\x07\xef\x16\x08\x8c\xe5\x09\xf8\xbf\x2c\x50\x78\x4c\x02\xa2\x95\x04\x42\x6e\x04\xa7\x02\xa3\x56\x11\xb6\x8e\x23\x6b\x67\xfd\xf1\x1f\xbf\xf8\xb3\xa5\x9f\xd4\x0d\x81\xf3\x91\xc2\xb7\x96\x07\x87\x23\xcc\x41\x60\x88\xbb\xf0\xb8\x12\x79\x8c\x80\x09\xa7\x53\x4d\x89\x6b\x52\x1d\x26\xc4\x0c\x65\x8e\xa6\xf3\x32\x32\x53\x86\x3b\x73\xa2\x4c\xf6\xd2\x14\x1b\x51\x23\x8d\xc8\xc6\xc8\x01\x2d\xc2\x90\x04\x64\xf0\x1a\x40\xc1\xb9\x1a\x81\xd2\x4f\xe7\x30\x18\x3f\x9a\x13\xef\xab\x28\xe5\xcc\x27\x41\xbc\x6f\x3e\x7b\xdc\xd8\x7f\x61\x30\x1e\x0e\xb5\x91\x61\x5d\xe2\x9f\xd1\x81\x29\xa8\x52\xd9\xb9\x92\xc7\xbb\x0d\x0a\x8e\xaf\xf7\xcb\x5b\x08\x04\xaa\x40\x34\x2b\x53\x10\xd1\xb9\x02\x4d\xe7\x45\x94\xfc\x8c\xfe\xb6\x22\xab\x28\x3b\x13\xf7\x0e\x03\x0b\x5a\x59\x86\xb2\xb8\x92\x86\xee\xcd\x6a\x94\x68\xcb\x69\x04\x29\x6a\x16\x85\x7c\x0f\x7b\x61\xf4\x34\xf0\xb1\x98\xd9\xe3\x08\x78\x5f\xa5\x52\x72\xf9\x72\xb4\x9c\x0d\xf4\x0a\x4e\x74\x06\x41\x6b\x32\x8d\xc4\xc6\x4a\x79\x32\xaa\x2b\xac\xf0\x73\xc8\x11\x94\x28\x18\x39\x0c\x04\x28\x42\x45\x6a\x9f\xa8\x67\xe3\xd5\x5e\xd1\xcf\x3e\x47\x98\x28\x8a\x09\x6a\x29\x48\x3c\x88\x74\x8a\xe5\x74\x50\x8a\xf0\x20\x47\xa5\x8e\xab\xe9\xca\x96\xe1\x10\xf8\x0c\xfe\xb1\x38\xe4\x20\x28\x11\x83\x47\xdd\x50\x01\x54\x91\x0b\x34\x97\xab\x16\x74\xf1\xce\x98\x3f\x75\xcb\xa8\x29\x39\xc7\xd1\x94\x6c\x58\xb7\x03\x00\x33\x5f\x79\x47\x20\xfb\x47\x3b\x5b\xd5\x0e\xb8\xb0\x71\x3a\x68\xc8\x61\x71\x9d\xa4\x33\xd0\xb1\x5b\xa7\x0f\x9a\x9b\xe3\x01\x80\xdc\x81\xc2\x8f\x3a\x43\xa1\x9a\x04\xa0\xb3\x42\x07\xd4\xc6\xf8\x59\x7d\x93\x3d\x3a\x34\x42\x1d\xb1\xa4\xe2\x7d\xf8\x27\xd0\x0a\x70\xa4\xa4\x20\x26\x05\xce\x02\x13\x17\x89\xb4\x64\x16\xa5\x3f\x4c\xa9\xe8\x30\xf5\x39\x94\x5b\x51\x7d\x74\x4a\x29\xc5\x36\x03\x38\xd2\x10\xb4\x01\xce\x18\x44\x82\x88\xff\x2d\x9e\x74\x0e\xc6\x86\x25\x3c\xf0\x75\x28\xf9\xb8\xc2\x57\xe0\x2e\xba\x9c\xc1\xba\x6c\x17\x75\xa6\x33\x38\xdf\x70\x2b\xa8\x5c\x66\x3a\x5d\xec\x87\x41\xba\x58\x7a\x3a\xae\x53\x02\x7c\xf5\x1e\x8a\x44\xbd\x71\xac\xde\xe1\x88\xd9\xf1\x07\x6e\x39\xfb\xc1\xc5\x70\xaa\x73\x95\xbb\x57\x52\x03\xd7\xf6\xac\x70\xda\xde\x70\x0f\x3c\x41\x4e\xcb\xfe\xbd\x9e\x22\x1b\xd9\x42\x3d\xb1\xf9\x8d\x3b\xc3\x3c\xbf\xd2\xdf\xf7\xba\x8d\x48\x52\x61\xdd\x94\x91\x81\x34\xd4\xa0\x64\x0f\x4e\x68\x2f\x94\x2b\xfe\x7b\x0e\x83\xfa\xad\x83\x4a\xc8\x85\xfa\x3d\x0f\xe5\xef\x1a\x93\x4e\x03\xc5\xa4\xb0\x37\x12\x5e\x53\xbd\xa0\x3a\x6d\x5e\x32\x79\x50\x32\x85\x4a\xa6\x37\x58\x4d\x8e\x8b\x7a\xe7\x9a\x9e\xbd\x88\x92\x94\xfa\x23\x9d\x4d\x58\xb2\x12\x7d\xc4\xb7\x7d\x29\x91\x8b\x4a\xff\xc2\x09\xa1\x89\xcc\x2b\x8e\x53\x00\x22\xcf\xf4\x3a\x29\xbc\xeb\x3a\x06\x5a\x24\xbd\x25\x86\x57\x00\xf8\xf2\x2b\xee\xa0\xab\x29\x7e\x46\xfd\xfc\xb9\x0f\xdd\xd4\x87\x56\x73\xe3\xd6\x45\x17\xfe\xee\x87\xbf\xd1\xe8\x72\x6b\x99\x7e\xf6\xe1\x4f\x7a\xb2\x8e\x7e\xe6\xf0\xe7\xda\x13\xfa\xfb\x2a\xfe\x3d\xbb\xc9\xb5\x80\x9d\x7e\x68\xf9\x8b\x35\xfa\x35\x80\x25\x07\xaf\xf0\x6f\xd7\x06\x96\x9c\xa3\x44\xea\xd2\x43\x7f\xbe\x08\x3c\x86\xbe\x04\xfd\xf4\x39\xd5\x32\x7f\xd2\x7d\xe5\x32\x03\xfc\x85\xbb\xbb\x6a\xdb\x97\xf9\x37\x77\x09\x3d\x82\x8e\x4f\x0f\x31\x70\xaf\x98\xef\x94\x01\xb8\xe7\x72\xe6\x6a\x5a\xf5\x0e\x5d\xf3\x07\xd5\x39\xf7\x4c\xd8\xca\x95\x9d\x12\x66\x88\xfc\x2e\x78\xdd\x4f\xbd\x7c\xe4\x8f\xdf\xf5\x1f\xbc\x94\x24\xcd\xb5\x3d\xb9\x06\x53\xbb\x0b\xe4\xea\x8d\xd6\xf9\x51\x7f\xba\x6a\x48\x99\x5a\xf3\xc5\x52\x55\xa5\x5b\xb9\xb6\x89\x06\xcf\xeb\xc7\xf2\xf0\xff\xee\xba\xbc\x8a\xa2\x92\x97\xcb\xa3\x4f\xb0\x52\xe9\x6e\x3c\xc4\x38\x9b\xcf\xf1\xed\xe6\xc6\x2e\xe8\x57\xff\xfa\xaf\x94\x1e\x1a\xc4\xfe\x7f\xfb\x37\xeb\xcb\xdf\x83\x4e\x05\xf2\x6c\xeb\x74\x14\xe9\x0a\xdf\xe9\xd8\x60\xcb\x93\x01\xdf\x9f\xf9\xf1\x9f\x22\x55\x90\x69\x51\x14\x2e\x39\x77\xe4\xfa\x89\xbe\xc5\xfd\x7f\x02\x00\x00\xff\xff\x56\x02\x7c\xc8\xf1\xa8\x00\x00") func confLocaleLocale_zhCnIniBytes() ([]byte, error) { return bindataRead( @@ -4579,12 +4579,12 @@ func confLocaleLocale_zhCnIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_zh-CN.ini", size: 41664, mode: os.FileMode(493), modTime: time.Unix(1441457544, 0)} + info := bindataFileInfo{name: "conf/locale/locale_zh-CN.ini", size: 43249, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _confLocaleLocale_zhHkIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\x79\x6f\x1b\xc7\x97\xe0\xff\x06\xfc\x1d\x7a\x3c\x30\xb2\x0b\x24\x0a\x92\xec\x85\x41\x98\xd9\x1c\x33\x49\x16\x49\x7e\xd9\x38\xd9\xc1\x22\x08\x18\x8a\x6c\x49\x1c\x93\x6c\x86\x4d\x5a\x51\x06\x03\x48\xb6\x25\x51\x97\x25\xdb\x92\x6c\x1d\xb6\x7c\x5b\x92\xad\xcb\xa7\xac\xcb\x1f\xe6\xc7\x6e\x92\x7f\xe5\x2b\xec\xbb\xaa\xba\xfa\xa0\x9c\xcc\xce\x2e\x10\xc4\x62\xd7\xab\xaa\x57\xaf\xaa\xde\x55\xaf\x5e\x65\xca\xe5\x74\xce\x76\xb3\x29\x6f\x65\xcf\x9f\x3f\xb0\x3e\x77\xac\xd6\xfa\xcd\xd6\xea\x60\x73\xf1\x62\x6b\x74\xdd\x1b\x5f\xb3\x3e\xcf\x57\x2d\x7f\x79\xca\x9b\x58\x38\x79\xe2\xe4\x89\x3e\xa7\x68\xa7\xda\x0f\xe6\xdb\xb7\x86\x4e\x9e\xc8\x65\xdc\xbe\x6e\x27\x53\xc9\xa5\xfc\x4b\x0f\xbd\xfa\x8b\xf6\x8d\x3b\xcd\xb1\xfa\xc9\x13\xf6\xaf\xe5\x82\x53\xb1\xe1\xeb\x9d\xe6\xb3\x3b\x50\xc9\x2e\x94\x53\xde\xab\x47\xd0\xdc\xc9\x13\x6e\xbe\xb7\x94\xce\x97\x52\xcd\x85\xfd\xf6\xe4\x45\xf8\xed\x64\xf3\x99\x42\x5a\x7f\xbe\x77\xd4\xd8\xbb\xe7\xed\x3e\x6d\x2d\xac\x30\xc8\xef\x07\x8b\xcd\xc7\x8f\xad\xf7\x2d\x7f\xe3\xbe\xf5\xa1\x5b\xcc\x14\x0a\x1f\xb5\xaf\x2d\xb7\x86\xb6\x18\xea\xc3\x77\xf9\x9b\x34\xed\xd4\xaa\xa9\xf6\xe0\xa0\x37\xba\x27\x1f\x6a\xe5\x54\x6b\x75\xdf\x1b\x19\x3f\x79\xa2\x62\xf7\xe6\xdd\xaa\x5d\xd1\x1f\xfa\xed\x6e\x37\x5f\xb5\x53\xde\xe6\x75\x7f\xfe\x55\xf3\xc5\x93\xe6\x23\x18\xe6\x39\xbb\xe2\xe6\x1d\xc0\x65\xee\x85\x37\x36\x05\x43\xf2\x97\x1f\x9f\x3c\x51\xce\xf4\xc2\xd0\x6f\x0d\xc1\x28\x4f\x9e\xa8\xda\xc5\x72\x21\x03\x35\xfd\xd5\xdb\x34\xe6\x42\xa6\xd4\x5b\x43\x08\xa6\x5f\x7b\x68\xb7\x7d\x6b\xf8\xe4\x89\x6c\xc5\x06\xa8\x74\xc9\xee\x4f\x79\x63\xcf\xbd\x7d\xa0\xf2\x36\xd0\xb6\xab\xab\xeb\xe4\x89\x9a\x6b\x57\xd2\xe5\x8a\xd3\x93\x2f\xd8\xe9\x4c\x29\x97\x2e\x22\xd1\x9a\xb3\xab\x7e\xfd\x45\xe3\xf5\x6d\x1f\x06\x38\x3d\xee\x2f\x3d\xf3\xee\x2d\xf2\x50\xec\x1c\x50\x28\x9d\x71\x53\xde\xcb\x27\x4c\x1b\x06\xc6\x89\xc1\xc6\x4a\x99\xa2\xaa\xef\xcd\x4c\xc1\x3c\x14\x33\xf9\x42\xaa\x7d\xe1\x79\x73\x73\x07\xf1\x77\xdd\x7e\x07\x26\xcb\xdb\x1a\x69\xde\x39\x40\x6a\xa4\xab\x03\x65\xa8\x71\x67\xaf\xb5\x3e\xa5\xbe\x66\x33\xe5\x6a\xb6\x2f\x93\x6a\xaf\x5d\x6b\x6d\x8c\xd1\x27\x04\x2d\x3b\x40\x28\xa7\x32\x90\xf2\x06\xc7\xbc\xbd\x47\x27\x4f\x38\x95\xde\x4c\x29\xff\x5b\xa6\x4a\x94\x7a\x7e\xb1\xf9\x6a\xf6\xe4\x89\x62\xbe\x52\x71\x2a\xa9\xf6\xf4\x6d\xef\xc2\xf4\xc9\x13\x30\xec\x34\x56\x0d\x8d\x5d\x35\x80\x85\xc5\x7c\x6f\x05\xa9\xd8\x1e\x7a\xd9\x7c\xb8\xef\xdd\x9b\x6f\x5f\x58\x35\xcb\x7b\x9c\xca\xd9\x14\x57\xf3\x9f\x1d\x35\x67\x57\xcc\x42\xc0\x20\xd4\xb0\x46\x22\x53\x82\x89\xa0\xe2\xe6\xe6\xed\xe6\xcc\x88\x5f\xbf\x6c\x14\x67\x72\x45\xa0\x62\x39\x53\xb2\x0b\x52\xae\xd6\x6d\x26\x9b\x75\x6a\xa5\x6a\xda\xb5\xab\xd5\x7c\xa9\x17\xe8\xbc\xfb\x14\x68\xd9\x5a\xdd\x68\x1e\x6e\xc2\x14\x24\x7f\x1e\x70\x6a\x7a\x1a\x81\x3a\x13\x8d\xbd\x3d\x9e\x3d\x29\xd2\xd5\x78\x66\x54\x35\x1a\x83\x9b\xee\xb1\x6d\xd8\x3e\xcb\x83\x30\x04\xff\xd9\xbe\x37\x31\x07\x13\x55\x2b\x14\x80\x6c\xbf\xd4\x6c\xb7\x0a\x9d\xcd\xd4\x1b\x87\xcf\x5b\x8f\x26\xfc\x9d\xf3\x27\x4f\xe4\x5d\x17\x3e\xa7\xbc\xb9\xe9\xf6\xed\x49\xc6\x1e\x9b\xca\x66\x4a\x59\x18\x8e\x37\x3d\xef\xbf\xa8\xe3\x87\x1f\x5d\x3b\x53\xc9\xf6\xfd\x84\x58\xe3\x1f\x29\x7f\x66\xd9\xdb\x9e\xa0\x75\x97\x30\x99\xb8\x7a\x52\x6a\x31\x51\x1f\xb0\xc6\xee\x7b\xf3\x80\x67\xd6\xc9\xc1\x12\x59\x9d\xf0\x0e\xa6\x65\x31\xfc\x98\x2f\xb9\x55\xd8\x71\xd0\xb8\xfc\x05\xfb\x67\xac\x75\xf7\x86\xde\x1c\xf9\x6a\x81\xb8\x84\xff\xf8\xb6\xb7\xf2\xb2\x75\x7b\x92\xcb\xb1\x95\xbd\x69\x44\xe0\x97\x1a\xec\xba\x74\xae\x9b\x99\xcf\xe7\x4e\xaf\x6b\x79\xc3\x43\xad\xd5\x1d\xef\x68\xb2\xf9\x68\xcb\x9f\xdb\xf5\xaf\x2e\x02\x66\xcd\xf3\x7b\xd6\xd7\x03\x67\xfe\xe7\x57\x7f\x1d\x1c\xfa\xd6\x71\xab\xbd\x15\x1b\x7e\x58\x7e\x7d\xde\x82\x7f\xa1\x8d\x0f\x7e\x3f\x98\x6c\x1c\x8e\xf8\xd7\xb7\xd4\x07\xab\xb1\x3b\xd8\xaa\x3f\xf6\xa6\xd7\xfd\xe5\x31\xde\xd7\x8d\xbd\xc9\xf6\xe0\x13\x60\x50\xcd\x85\x03\x40\x06\x37\xf4\xd8\x94\x3f\xbb\xe5\x4f\x0e\xfd\x75\x10\x88\x0a\x78\x30\xca\xba\x5f\x35\x49\x58\x82\x5b\x44\x17\xb4\x6f\xdf\xf4\x6e\x4e\x20\x1f\x74\xab\xc1\xd7\xc6\xee\xbe\xbf\xb6\x22\x64\x0c\x90\x17\x7a\xea\x8d\x17\x29\x51\x3b\x0e\x3a\xa1\x9d\xab\x8b\x61\xf3\x36\x57\x77\xa8\x00\x59\x27\xb4\xe9\x3d\x38\xef\xdf\x5c\xf6\xcf\xaf\x36\x0e\x5f\x43\x65\xa6\x09\x0c\x1d\x96\x85\x7c\xf9\xf2\x9b\x6f\xfe\xf2\xd9\x27\x96\x77\x30\xe7\x5f\xbd\xd4\xd8\xbf\x0f\xac\xc3\xaa\x55\x7b\xfe\x5b\xba\xd7\x2e\xd9\x15\x60\xb0\xd9\xbc\xe5\x6d\x5c\x6b\x3e\x7e\xd0\x5e\x1a\xa1\x51\xbb\x6e\x01\x38\x0e\x4c\xee\x99\x33\x40\xd1\xd5\xdb\x30\xc1\x88\x6b\xb5\x2f\x40\xc4\x9f\x1f\x6d\xec\xbf\x68\xbd\xdc\xf2\x8e\x2e\x43\x85\x5f\x0a\x38\x6b\x82\x92\x22\x77\x30\x28\xd8\xa3\x06\x3c\xf5\x61\x57\x2a\x69\xe0\x94\xd5\x81\xb4\x54\xa6\xf6\xb9\xaa\x95\xd8\x4d\x63\x77\xaa\x75\xe1\x10\xe6\xbd\xb9\xb6\x47\x4d\x9c\x3c\xa1\x46\x20\x73\x34\x3a\x06\xe3\x45\x79\xb5\xfc\x58\x4d\x13\x8a\x31\x26\x21\x17\x0a\xfd\xd4\x67\x85\x32\xb4\x0a\x24\xd4\xac\x00\x76\x0b\x6c\xd7\xf6\xca\xeb\xc6\xde\x66\x6b\x70\xd2\x9b\xae\x7b\x43\x63\xde\xbd\x87\xc8\xa3\xa4\x05\xdc\x2a\x8c\x33\xef\x14\xff\xd6\xab\xe6\xd2\x26\xc9\x2d\x5d\xa4\x5a\xf7\xc7\x06\x61\xc5\x91\xbc\x6c\x0f\xdd\xc2\xb5\x4e\x55\xda\x17\x0e\xbd\xed\xd1\xd6\x9d\x47\xde\xc6\x75\x7f\xf6\x08\xa4\x6c\x6b\xed\x09\x37\x42\xe3\xab\xd4\x40\x44\xe1\xba\xe1\x9d\xd2\x7c\xba\xdf\x7c\xbe\xa3\x96\x8e\x2a\x54\x7d\x60\x55\x5e\x3b\xaf\x87\xdb\xb7\xea\xde\xf0\x4b\x5c\xe4\xdb\x53\x11\xec\xbc\x2b\x93\xdc\x9a\x45\x5b\x0b\x67\xe6\xea\x54\xe3\x70\xd9\x7f\x3c\xde\x5e\x98\xe1\x35\xef\x80\x70\x28\x41\xa7\x2b\x24\x2a\xf8\xa7\xd1\x0d\x93\xd6\x3b\xdc\x01\xfa\x58\x67\xce\x7c\x61\xb5\xee\x8d\xb6\xee\x1e\x7a\xcb\xdb\xde\x8d\x41\x59\x3f\x7d\xe9\xb2\x53\xa9\xa6\xb0\xd4\x5b\xb9\x15\x7c\xd1\x14\x21\x62\x53\x6d\xd6\x20\xfc\x8d\xbb\xde\xb2\xac\x61\x7f\xe3\x1e\x54\x02\xf9\x8d\xcb\x78\xe2\x7e\xeb\xc1\x50\x13\xfe\x9b\x5d\xa5\xd6\xc6\x57\x60\x11\xe0\xe2\x7e\x7d\x03\x36\xa9\xff\xf8\x62\xe3\x70\x0a\x16\x44\x73\xe1\x90\xba\xee\xab\x56\xcb\xdc\xf7\x17\xdf\x7f\xff\xad\x05\x1c\xc3\x9b\xbe\x0b\x4d\x19\x25\x1a\x07\x5a\x11\xcd\xa5\xbb\xad\xa1\x43\x9c\xf9\x00\x14\x57\x47\xad\x52\x10\x08\xeb\x87\xef\xbe\xd2\xdf\x3a\xd1\x01\x7b\x7b\x17\xff\x77\x26\x44\x0e\x20\x37\x30\x9d\xc6\xde\x12\x8b\xda\xc6\xee\x06\xf4\xd4\x1e\xbc\xdb\x7c\x3e\x23\x4b\xd8\x29\xa3\x98\xd4\x6b\xd8\x9b\xde\x02\x05\x41\xad\x5e\x12\xd3\x52\xd2\x5e\xda\xf7\x36\x66\xa0\x1d\xd8\x10\x4c\x33\x80\xf2\x36\x51\x01\x28\xc2\xc8\x88\xed\x9c\xf9\x1a\xc6\xac\x58\x0e\x7d\xee\xa9\x38\xc5\x14\x57\x6a\x1c\x8d\x80\xe2\x66\x7c\x57\x63\x31\x8b\x19\x6d\x20\x7c\x7b\xe8\xb9\x77\xb4\x6e\x7d\xf7\x8f\x9f\x5a\xff\xf9\x83\xf7\x41\xc5\x5a\x5d\xf0\x46\x91\x3d\x00\x86\xc0\x44\x80\xad\xc2\xc0\x60\x93\x80\x24\x68\x3e\x9b\xc5\x51\xd1\x08\xb9\x3e\x70\x61\x61\x3e\xa7\x70\x97\x9d\xb2\x3e\xa4\x91\xfc\x77\xfb\xd7\x0c\x28\x47\x76\x57\xd6\x29\x7e\x44\x6b\xef\xd6\x01\xf0\x16\xa2\x04\x96\xc3\x6a\x66\x71\xb3\x70\xd0\x1e\x1c\x52\xda\x89\x94\x68\x5e\x69\x96\x06\x0a\x0b\xab\x6f\xe9\xac\x53\xea\xc9\x57\x8a\x20\x06\x57\xa0\x7b\x56\xe6\x18\x94\x75\x19\x6e\x2e\x5d\x72\xaa\xf9\x9e\x01\x81\xe2\xf1\xb7\x07\x17\x9b\x2b\xf7\xfd\xe9\x99\xf6\xc8\x15\x94\x8d\x15\xd0\xf5\xd2\xf8\x4f\x3e\x6b\xcb\x14\x34\x0e\xf6\x90\xf2\x0b\xab\xb8\x8b\x86\x5f\x34\xf6\xe7\xf5\x44\xd0\x74\x39\x3d\x3d\x85\x7c\xc9\x66\xde\xe9\xcd\x5d\xc5\xb6\x97\xee\x34\x5f\x2e\x2a\x1e\x6a\x02\xc0\x5a\x2c\x83\x02\x0a\xab\x1e\x34\x9b\xe6\xe1\x13\x86\x69\xec\x4e\x34\x5e\xad\xf0\x7a\xf7\x8e\x6e\x5a\x9f\x7e\xf6\x8d\xd5\x9c\x7a\x82\xe2\x9b\x58\x21\xcc\x0c\x73\x13\x54\xc3\x9f\x8e\xfa\x7b\x33\xc0\x42\x00\x10\x58\x1e\x90\x5e\x23\xc8\x55\x78\x3b\xe7\xdd\x4c\x37\xa8\x91\xa0\x4e\x9d\xcb\x54\x33\x40\x5d\x6a\xdc\xfa\x5c\x7e\x6b\x15\x3e\x0a\x28\x08\x46\xc1\x61\xec\xb8\x4e\x36\x17\x9b\x47\x6b\xd0\x3d\x20\xe4\x5d\x18\xe6\xd9\x6e\xce\x0a\x7b\x6a\xec\x8e\x7b\xe7\x41\x13\x9a\x6f\xef\x5f\x07\xa2\xe3\xea\xb8\xb5\x01\x7a\x5f\x08\x21\x9e\xb3\x8a\xa8\x89\x0f\x86\xfc\x8d\x3b\xa2\x07\x8d\xae\xc3\x1a\x56\x8a\x78\x12\x78\x80\x5a\x62\x25\x66\x12\x88\x19\x89\x7a\x56\x86\xbc\xab\xb7\x65\xe9\xbe\xdc\xf7\xc6\x6f\xb1\x85\xc0\x7c\x16\x95\x0e\x50\x79\xc5\xd0\x48\x9f\xcb\xa3\x4e\x4e\xd3\xc7\xba\x74\x6b\x75\x1d\xd5\xaa\x85\x19\x8f\x38\x6f\x02\xb8\x9a\x4c\x56\x2d\xb4\x0e\xbe\x28\x6a\x38\x28\x15\x80\x90\x77\xef\x96\xb4\x44\xda\x10\xe2\x37\xf3\xc0\x1b\x1b\xc5\x19\x9c\x5e\x47\xd9\xb6\x3c\xe1\xd5\xb7\xb9\x2e\x10\x4f\x56\x2f\x01\x13\xa2\xac\x9f\x8a\xd6\x28\xd6\x19\x69\xb9\xc1\x08\x69\x54\x8d\xdd\x07\x20\x2c\x61\x8b\xb2\x2c\x00\x34\xb0\xaf\xa5\x5b\xa8\x33\x7d\xf9\x59\xea\x3d\x4b\x23\x86\xf2\x07\x26\x73\x62\x0e\x17\xcc\xd1\x35\xdd\x8e\x21\x0e\xb8\x53\xde\x00\x91\x7e\xb4\x90\x25\x10\xb6\x31\x14\x84\x61\x6c\x28\xb5\x5a\xed\x5f\xdd\x88\xb2\x2b\x78\xcf\x1a\x10\x21\xb3\x83\xab\xb3\xc5\xa2\xeb\x2a\xe6\x20\x6a\x66\xba\xd7\x41\x35\xfa\xd1\x84\x37\xf5\x94\x35\x4a\x34\xc4\xdc\x6a\xba\x37\x5f\x4d\xf7\x20\x03\x81\x56\x2f\xde\xf6\x9f\xce\xb5\x36\xae\x7b\xf5\xfb\xd6\x5b\x50\xf0\x96\xe5\x5d\x3e\x6c\xec\xdf\x03\x33\xf2\xf4\x39\xa5\xc4\x7c\x80\xbc\x21\x0d\x6b\x3d\x5f\xc0\x65\x87\x92\x0a\x36\x9c\xac\x6f\x20\x9b\xd6\x13\x97\x1f\x23\x8d\x49\x55\x34\x34\x4e\x90\x4c\xb8\x6d\x4f\xbb\xc0\x86\x27\x5a\x07\xa2\x66\xfa\x0f\x27\x70\x96\xc6\xea\x08\x31\x38\xc9\x93\x63\xf5\x3a\xdd\xb5\x7c\x21\x67\x71\x6b\x44\xec\x7c\xe9\x5c\xa6\x90\xcf\xa1\xfe\x2b\xd3\x1c\xd5\x3c\xb1\xee\xc6\x5d\xa0\x90\x60\xad\x6a\x74\xd4\x47\x92\xab\x69\xf5\x01\x47\x5b\xcc\x80\x5d\x97\xa0\x65\xb4\x6f\xdc\x14\x43\x97\x7e\x62\x55\xd7\x7a\xe7\x23\x18\x1d\x50\x2b\x73\xce\x66\x6e\xdb\xab\x08\xcc\xe2\xb2\x3d\x3c\x85\xfd\xbd\xbe\x01\x5a\x8d\x77\x6f\xc7\x9f\xbb\x16\xc1\x34\xb4\x8a\x43\x4b\x4a\xdb\x40\xf1\x41\xf2\x2c\xbb\xb5\x6c\xd6\x76\x5d\x9c\x14\xef\x3e\x6c\xf0\x21\xb0\xdf\xbc\xc1\xcb\xde\x51\xbd\xfd\xe8\x7a\xab\x5e\x87\xef\x20\x3d\xfd\xab\xa3\x22\x7d\x50\xc7\x01\x92\x37\xef\xdf\xd0\x0a\xb2\x7f\x71\xcc\x7b\xfd\x08\x6d\x83\x7d\xe8\xe0\x00\x59\xe7\xc6\x3d\x58\x1a\xd6\x27\x3f\x7c\x0e\x0d\x92\x15\x83\xae\x0c\x30\x61\x6a\xac\x21\x3a\x85\x9c\x36\x81\x60\x3d\x23\x57\x8b\xd8\xcd\x0a\x46\xad\x58\xb7\x3f\x0f\x04\x4d\x6b\x27\x08\xd2\xa9\x6a\xff\x5a\x4d\x79\xf5\x51\x7f\x7a\xc9\x74\x89\x28\x75\xae\x38\x40\x33\x08\x43\x23\x8b\x54\x59\x5f\x59\xa7\x00\xcb\xd0\x41\xae\x77\xce\x16\x08\x6f\xfa\x42\xab\x3e\xea\x4d\xcd\x82\xda\x66\x80\x42\x0b\x60\xd7\xaa\x06\xb4\xc5\x3b\x90\x66\xcb\x5b\x15\x28\x03\x9c\xb8\x16\xf9\x6c\x98\x27\xd1\xa4\x2a\x2b\xb2\x0b\x26\x88\x2c\x54\xe9\x71\xe7\xb1\x28\xa7\x4c\x04\xea\x11\xda\x22\x62\x89\x4b\xe7\x27\xb1\x1e\xc5\xb5\xa3\xb0\x02\x80\x4c\xad\x8a\xd6\x66\xe0\xef\x48\x8b\x35\x2d\xcc\x8b\x27\xde\x90\xe1\x7d\x76\x19\x05\x7e\xd1\xed\x25\x77\xc6\x8b\xab\xcc\x08\x7f\x3f\x58\xe1\x0d\xae\x9c\x3f\x43\xda\x45\xf4\xc7\xab\xbe\x18\x02\xc9\x45\x55\xc3\x72\x85\xfd\x2d\x60\x8f\xa4\x40\x67\x46\x4b\xe3\xf9\x4b\xdc\xab\x86\x38\x81\xf6\x40\x55\x6f\x5f\x5b\x6e\xcf\x8f\xc1\x5e\x85\x8d\xde\x1a\xda\xc2\xdd\x42\xae\x21\xbd\x8c\x13\x44\x1c\x22\x84\xcc\x2b\xde\xb2\xa9\x99\x24\xf6\x82\x54\x29\xda\xc5\x6e\x6c\x02\x67\xea\x7a\xe3\x70\x5a\xb9\xc7\x7a\x60\xba\x61\xf3\x06\xce\x9b\xd7\xd7\x01\x40\xad\x41\x2c\xb5\x3b\x94\x02\x39\xb4\x07\x0c\x18\x40\x7f\xaa\x7d\xfe\xa2\xff\xe4\x0a\x4f\x04\x14\xb6\x1f\x00\x6f\x1b\x67\x14\x09\x09\xe1\xd0\x2c\x7b\x49\x81\x72\xed\x52\x55\x51\x0c\x15\xc1\xed\x21\xf1\xb4\xd0\x58\x58\xa3\x92\x19\xb8\xf3\x88\x35\xb6\xd6\xe8\x53\xeb\xc3\xee\x8f\x4e\xbb\x1f\xbe\xdb\xfd\x11\xb3\x4a\x7f\xfd\x8e\x0f\x3a\x17\x19\x03\xfe\x2c\x28\x54\x2f\x48\x49\x7e\x00\x4a\x91\x75\x3a\x67\x79\xdb\xd3\xfe\xc2\x79\x6f\xf8\xa1\xb7\x39\xe9\xd7\x67\xb8\x6d\x46\x8b\xad\x16\xb6\x36\x44\x0e\x8b\x84\x20\xea\x80\x18\xe5\x56\xd5\x56\xcd\x64\x69\x07\xd1\xa2\x56\xcb\xcf\x7f\x3d\xe8\x3f\xdb\x67\xb8\x60\x11\xd2\xc8\x0a\xf9\x62\xbe\x9a\xb4\x22\x00\x9a\x1d\x2e\x3c\x26\x6e\x42\x14\xc8\xa1\x4b\xb0\x4b\xda\xb7\xf6\x9b\xaf\x86\x78\x78\xcd\x8d\x31\xef\x68\xd8\xfa\xc0\xf2\xea\x23\xed\x99\xeb\xde\xd1\xa4\x37\x32\xd5\x5a\x7b\x40\xeb\xaf\x2f\xe3\xa6\x6b\x25\xa1\xac\x9d\xe3\x25\x02\xfc\x55\xf1\x36\xec\x0a\x94\x09\x26\xae\xa6\xe0\x7f\x08\x48\xf8\x1f\x2d\x74\x6f\x2c\xaf\x23\x81\x89\x32\x3c\x5c\xc0\x04\xb5\x74\xe5\x16\x00\x00\xa0\x2c\xd2\xc3\x40\x15\x5b\x07\x36\xb6\x3c\x08\xb6\x55\x7b\x74\x0a\xa7\x8e\x3a\x10\x01\x36\xbf\xe9\x5f\x1d\x07\xf9\x85\x8e\x4f\x98\x98\xc9\xb1\x76\x7d\x4e\x16\x23\x50\x47\x50\x65\x28\x60\x9e\xad\x85\x39\xb3\x0d\x73\x05\x28\x0b\x86\x44\xaa\x4b\x9b\xb5\x4a\x22\xb5\x75\xb0\xeb\x0d\xdf\x8f\x5a\x0d\x34\x16\x71\xe0\xd6\xb7\x1b\xfb\xfb\x8d\xc3\x39\xd6\x34\x78\xb3\x63\xdf\x88\x42\x35\x8e\xc1\xef\x07\x75\x46\xe2\xf7\x83\x31\x99\x1a\x9e\x57\x5a\xf0\x50\x04\x52\x45\xe1\xc4\x4d\xe8\x9d\xc1\x85\x6a\xdf\x28\x29\x45\xce\xad\xc8\xcc\xeb\xf5\x2d\xb2\xe3\xe5\x13\x9c\xf3\xe5\x15\xa0\x25\xfc\x4d\xc2\xae\xae\xe9\x14\xf4\xa0\x5d\x35\x61\x8a\x19\x9d\x6a\xc8\xaa\xe3\xa4\xdd\x3e\x34\x5f\x05\xf1\xb9\x97\xde\xde\x03\xf6\x7c\x78\xdb\x97\xd1\x11\xff\x5f\x60\xda\xa7\x94\xa4\x02\x43\x22\x83\xde\xb6\x01\xdb\x15\xad\x89\x37\xc6\xc9\x13\x25\x47\x7c\x7e\xea\x03\x80\xa2\xc9\x23\x03\x78\xbd\xe9\xcf\xbe\xa2\x26\x80\x51\x14\xa1\x85\x1f\x40\x19\xf8\x26\xe2\x25\xfe\x0e\x18\x3a\x7d\x63\x6e\xae\x5c\x1f\xff\x60\x38\x8f\x79\xe6\x4e\x9e\xf8\x36\xea\x42\xfe\xce\x4e\xf0\x20\x83\x05\xff\x3d\x29\x92\x64\xca\x6f\x8d\xb4\x2f\x6f\xab\x46\xbf\x00\xf3\xdc\xfd\x01\x8c\x6e\x36\xa2\xc1\xe6\xb6\x82\xb6\x07\x0a\x4e\x26\x87\x85\xfe\xa5\x55\x98\x5a\x55\xf0\xbd\x9d\x29\x32\x7e\xcb\xd7\xdb\x8b\xe3\xaa\xa9\x8f\x41\xe0\xd0\x67\xe4\x16\xb0\x05\xd5\x67\xd4\x3b\xfe\x21\x59\x8d\x0c\xb4\x7a\x9b\xdc\xd4\x31\x5f\x53\xa6\x50\xee\xcb\x90\x44\x17\x08\x51\xad\xcf\xef\xb5\x26\x76\xc0\x34\xf3\x36\xae\xf9\x5b\x53\x7f\x05\xbb\xf4\xfa\x6b\x7f\x62\xac\x71\x80\x9e\x4a\xfc\x58\x9f\xf7\xd7\x1e\x81\x09\x08\x0b\xf4\x9d\x34\x2c\xce\x68\x6b\x39\xd8\x1a\x7f\xaa\x45\xf8\x12\x6e\x91\xcc\xac\x9b\xc2\x0a\x7f\x53\x23\xe0\x95\xa3\xdb\x04\xf1\xce\x66\x36\xaa\x5e\x51\x28\x7f\x19\x78\xcc\x34\x43\x59\x68\xd3\x93\x37\x50\xcc\xf2\x5f\x93\xe1\xef\x3d\x4c\x84\xe7\xfd\xae\x89\xa8\xdd\x04\xc0\xc9\x60\x73\x44\x36\x3c\xd5\x40\xa7\xca\x31\xf0\xb8\x12\x18\xae\x74\x16\x44\x55\x49\x60\x81\x57\x80\xb5\xde\x9e\xdc\x6a\xad\xa3\xfe\xae\x0f\x27\x40\x10\x64\x9d\x4a\xc5\xce\x56\x83\x63\x0a\x80\xf5\x26\x5f\x81\x5e\x4a\xed\xe8\xbd\x66\x68\xbe\xb4\x3c\x41\xa9\x32\x57\x6b\xb8\x56\x70\x8c\x92\xee\xb6\x6d\xb0\x87\x32\x67\xed\x52\xb0\x57\xb4\xa8\x6b\x1c\xce\xc2\x47\x61\x02\xa0\x91\x47\x6b\x98\x3b\x29\xa9\x12\x48\xed\x58\x1d\xf1\x49\x76\xac\x53\x85\x6d\x10\xef\xc8\xd8\x12\x49\x95\x78\xa2\xa8\x02\x8c\x2c\x17\xda\xce\x06\xfc\x6b\x05\x9f\x2f\x14\xec\x5e\x74\x53\xa9\xce\xc2\x3d\x4c\x0e\x7b\x33\x8f\x60\x02\xbd\x99\x3a\x18\x59\xc6\x82\xd0\x64\xd3\x74\x0f\x66\xc8\xd4\xa9\x99\xe8\x5a\xf1\x67\x1c\x41\x6b\x06\x48\xac\x62\x18\x39\xd4\xb9\xa9\x3c\x68\x61\x62\x12\x17\x56\xd2\x71\x2d\xc1\x4a\x42\xe3\xa7\x63\x53\x78\xe8\x42\x7e\x96\xd6\xe0\x70\x80\x26\x58\xd4\x33\x0f\x8e\x6b\x56\x0b\x95\x64\xfc\x78\x61\x45\x5b\xd1\x76\x98\xfd\x2b\x68\x8b\x29\xa0\x3b\xf3\x6c\x6d\xa5\x23\x5d\xc1\x98\x5a\x5e\x25\xb6\x5f\xc8\x80\x5d\x8b\xeb\x84\xc6\x80\xe0\xcd\x87\xfb\xed\x85\x7b\x0c\x8b\x9e\x6c\xd8\x9e\x47\xe4\x77\x3c\x9c\x32\xf5\x52\xc4\x89\x7c\x1f\x5c\x24\x0a\x9b\xb6\xbf\x46\xa6\xda\x83\x4f\xd0\x02\xa4\xd6\x40\xdf\x42\x3f\x00\x21\x22\xd2\x46\x0d\x12\x9d\xb9\x67\xed\x81\x14\x98\x5d\xfe\xf8\x8e\xbf\x31\x46\xea\x04\x1a\x62\x6c\x62\xf3\xc6\x33\x07\x6e\x05\xfc\x9e\x8c\x48\xb2\xad\x50\x41\x3e\x67\x57\x40\x28\xe9\x16\xd9\x27\xfd\x47\x1a\xa1\xa3\x1d\x36\xfe\x86\x46\xc1\x68\x6c\x9f\xbf\x8b\x33\xae\xb8\x86\x06\xc3\x31\x43\x1b\xa3\xeb\x38\xb0\x3b\x7b\x68\x96\x0e\xbf\x60\x30\x7f\xf0\x21\x0d\x0c\xed\x13\x6d\xc2\x5e\xaa\xa3\xeb\x83\xfa\x0e\x19\xaf\xc0\x5b\xab\xb0\x05\x90\xe6\x7c\x6e\x69\xaa\x8d\x8d\xfd\xa9\xe6\xc5\x17\xd8\xff\xca\x4c\x63\x6f\x49\xdb\x47\xfe\xd5\x21\x5e\x41\xac\x3e\x28\xcf\x7c\xbd\x75\x38\x06\x44\xc6\x45\x5f\x5f\x07\x52\x7b\x9b\x17\x60\x1c\xe2\x23\xe2\x43\x31\xfe\x4e\x8d\x1b\x53\xc0\x28\xa0\xe2\x88\x27\x98\x11\x0c\x5a\xf5\x71\x8d\x01\x73\x0c\xc4\x80\x66\x31\xd2\x7d\x7b\xe9\x4e\x7b\x7e\x42\x77\xcf\xc0\x9a\xfb\x44\xc6\x89\x56\x1f\x01\xfc\x3f\x1a\x24\x37\x1e\x5a\x67\x01\x06\xe4\x0d\x06\x0c\x78\x5a\x58\x9c\x37\x8e\x6e\xc0\x50\x51\x51\xbc\xb0\x0a\x7a\xb5\xec\x10\x62\x54\xa2\xbe\x0e\xd7\xb9\x69\xa8\x68\xc2\x84\xd5\x6f\x60\x9b\x19\xb2\x90\xba\x2b\x99\x12\x18\xeb\xc1\xfe\x6b\x2e\x6d\xa2\xb3\xbb\x3e\xe2\xcf\x6e\xe9\x9d\x47\xaa\x12\xa2\x83\x96\x6c\x5f\xa6\xd4\x6b\xa7\xc5\x9d\x0a\x9a\xaa\xa5\x5c\xa6\xe8\xd8\xb6\xc0\x74\x62\xf5\x4a\x2c\x10\xf2\x7c\xea\x5a\xd9\x9a\x5b\x75\x8a\x46\x65\x3e\x17\x56\x7e\x8f\x0d\xae\xaa\x2a\xfd\xb3\x03\xf2\xda\x01\x6e\x3e\x7e\x0b\x36\x01\xa8\x7f\xc6\x19\x6d\x1e\x4f\x7b\x99\xe3\xd5\xaf\xb5\x6e\xaf\x8a\x91\x93\xaf\xc2\xce\x1c\x7e\x8c\x33\x2c\xa7\xc6\x3d\x4e\xa1\xe0\xf4\xdb\x15\x37\x85\xba\xf5\xea\x3e\xcc\x15\x12\x39\x83\x9c\x0b\xcd\xe4\xd6\xe6\x22\x58\x1c\x0a\x0e\x9d\x32\x0c\x07\xd8\xe0\xb0\x51\x41\xec\x22\x16\x8e\x6a\x6d\xe5\x1c\xba\xd2\x14\x47\xb4\xde\x3a\xed\xbe\x65\xc1\xa2\x40\x61\xf1\xfa\x46\x73\x6e\x01\x46\x4c\x4b\x29\xa8\x55\xce\x54\x81\x4b\x96\xd8\x08\x20\x4c\x8c\x06\x90\xc0\x74\xbc\xcb\x2d\x85\xcf\x04\xe8\xb0\x9a\x8f\xc8\x81\xec\xc9\x07\xe9\x9a\xe3\x32\xe1\xb4\x0b\x86\x39\x8a\x2b\xaa\x9e\xc1\x3b\x94\xd3\x20\x1c\x4f\x42\x7e\x01\x3a\xe5\x29\xe4\xb3\x64\xe7\xaa\xaa\xbc\xf6\xd8\xb7\x45\x3b\x44\x15\x28\x17\x4b\xce\x2e\xd8\x18\x28\x62\xec\x59\xe0\x6f\x79\x35\x48\xeb\xcb\xcf\x70\x24\xe5\x5a\x37\xb4\x1c\x44\x03\xd0\x0c\xe9\x41\x48\xa8\x07\xb9\x74\x4d\xc3\x55\xe4\xf1\xf6\xa8\xbf\x7c\x01\x0f\x0a\xa9\x16\x72\xbf\xdd\x07\xc8\xf7\xa1\x83\xf9\x03\xff\xd2\x7d\xb4\xf0\xa8\x63\xa4\x1f\x89\x2d\x3e\xc7\xf0\xae\x4c\xf2\xb1\x06\x4f\x09\x46\x0f\xb0\xc8\x53\x0e\x7c\xa5\x1b\xeb\x68\x17\xa2\xad\x8a\x76\x29\x38\x4c\x0a\x3c\xc0\x84\x3d\x80\xc8\x4c\x81\xda\x5d\x2b\xe7\xd0\x93\xa3\x86\xe2\x2f\x3d\x03\x51\xa2\x86\x12\x2e\x34\x3d\x76\x24\xa0\x83\xa9\xe3\x6a\xc8\xa0\xc6\xd9\xbc\x93\x0d\x12\x0f\x57\xe1\x43\x52\x65\xb2\x44\xc0\x98\x66\x1a\x56\x03\x8a\xc5\x76\x67\x0f\x06\x8a\x27\x88\xaf\x0e\x9a\x7b\x93\xcc\x66\xbc\x6b\x97\xd0\xc9\x31\xb8\xc0\x74\xe5\x13\x3c\xb4\x90\x59\xe0\xd7\x47\x91\x8d\x31\xef\x5d\x1e\x83\xad\x10\x3e\xb2\x43\x5f\x5e\xbe\x54\x03\xfc\x8c\x26\x23\x71\x16\xea\x23\x6a\x08\x24\xe7\x22\xbb\x7e\x6e\x05\x36\xa6\x9e\x04\xb5\xd9\x93\x60\xf5\x61\x25\x59\xef\xc8\xd1\x28\x7c\xa8\x71\x34\xc2\x87\x1f\xe8\x6c\xd6\x47\x33\x7c\xea\x13\x30\x1c\xc7\x71\xc5\xe1\xc6\xfd\xb2\x6f\x94\xe5\xbe\x82\x92\xf9\x12\x08\x9e\x14\x2e\x53\xde\xfd\x5a\x19\xad\x2f\x50\x72\x04\x23\xda\xc7\xe9\x7c\x11\x43\x9a\xf8\xa0\x47\x9f\xef\x07\x1a\xfc\xc1\x73\x6f\x79\xbe\x39\x36\x4a\x33\x5b\x72\x22\x83\x32\xdc\xeb\x4f\xae\xa0\x93\x83\x4c\xfd\x08\x41\xd0\x71\x4b\xaa\x40\x64\xec\xac\x33\x99\x68\x47\x56\x99\x89\x7e\x6c\x95\xe9\x05\xd4\x81\x71\x38\x05\x43\x8b\x63\xef\xb7\x2a\x42\x4a\x06\x11\x1b\x1c\xb1\x14\x35\xe0\x0d\xe5\xd6\xa8\x6b\xf8\xb3\x87\x62\x08\x68\xec\x05\x96\x65\x87\xc2\x18\x87\x34\x7d\x84\xbb\x8f\x0e\xaf\xc4\x89\x6d\x74\xce\x0e\x2f\xe1\x97\xa4\xd5\xbb\xa1\xb3\x62\x65\x2c\x4b\xec\x93\x40\x48\x78\x53\x02\x1c\x1b\x06\x06\x27\xc2\x63\xb5\x07\x43\xed\xf3\x9b\x06\x3f\x1a\x61\xee\xd3\xd8\xbb\x64\x1e\x9b\xf2\xb1\x28\x48\x7a\xc3\x3b\x57\xae\xc0\x4a\xa9\x0c\xa4\xb8\x15\xfd\x5b\xbc\x75\xad\xcd\xa3\xc6\xee\x9e\x2a\x63\x4e\x2a\x45\xcc\x4f\xf1\xf8\x27\x47\x6b\x98\xbf\xb2\x02\x2b\x4b\x38\x01\x7b\x84\x36\x21\x4d\x18\xa3\x34\x1d\xf2\x68\xa2\xcb\x4f\xbc\x98\xde\xd1\x70\xe0\x4c\x33\xdb\xc7\x33\x3d\x74\x2b\x01\x9f\x88\x38\x31\x61\x6e\x4c\x5f\x65\xa2\x4f\x93\x59\xb6\xe9\xc6\x6c\x0f\x5d\x6a\xae\x4e\xc8\x09\x9b\xc2\x4a\xaf\x63\x1e\x9f\x41\x72\x19\x37\xad\x0a\x99\x6b\x99\xd0\xe3\x24\x1d\xb6\x4c\x9a\xfa\x9d\x9b\xa8\x41\x28\xf9\x87\x6e\x07\x9c\x5f\x5c\x4f\xbb\x13\x28\xbd\x4d\x9e\x37\x36\xc8\x2e\xb8\x98\xca\xad\x7d\x8a\x40\x09\x58\x93\xc8\x1c\x17\x26\x9b\xb3\x2b\x11\x7d\x5b\x4e\xe1\x94\xd6\xc7\x9a\xab\xab\x83\x61\x3e\x74\xab\x15\xa7\xd4\xfb\x11\x7b\x1f\x39\xf6\x13\x38\xf2\xdf\x7f\xf8\xae\x14\x58\xa8\xb3\xaf\xdc\x6f\x2e\x4f\x30\xfb\xb5\x3e\xcc\x58\x7d\x15\xbb\x27\x75\xea\xb4\x7b\xea\x23\x0b\xb0\x00\x5e\x01\xdd\x02\x31\x0c\xfc\x3e\x7c\x37\xc3\x21\x05\x93\xa3\xde\x14\xba\x5d\x22\xd5\x10\x92\xd4\xe5\xdd\xd6\x83\x09\x0e\x92\x53\x55\x9a\xf3\x97\xdb\x4b\x77\xfd\x4b\x57\x5a\x0f\xef\xea\x09\xc1\x25\x17\x90\x2e\xac\x3f\x30\xc5\x0d\xe3\x19\xe4\xb2\x37\xbc\x23\x0e\xad\xb0\xf1\x1c\x80\x93\xb4\x22\x70\x39\x4d\x5c\xda\xf5\x66\x26\x59\x02\x23\x66\xb1\x36\x0c\x9b\x4f\xd5\x4f\x85\x9d\x66\xf8\x99\xce\x96\x4a\x55\x55\x82\xce\xf2\x57\x7a\xe6\x23\x2b\xca\x18\x86\x68\x6e\xc6\xb2\xe2\x53\x11\xde\x82\x34\x72\xd9\x80\x0a\x7f\x2a\x42\x6d\x80\x0b\xb8\x2d\x50\x48\x4c\x92\x28\x18\x39\x9c\x56\x6a\xb8\x01\x8b\x87\xdd\xf4\x39\x2e\x6d\x81\x20\x2c\x6d\xf9\x44\x4a\x9f\x41\xb3\xc1\xcc\xe2\xf6\xef\x13\xfa\x52\x63\x34\x3a\xe1\x1e\x82\x61\x21\x39\x10\x73\x9a\x4c\x52\xa3\xc9\x8a\xe6\xd9\xd8\x1d\xf7\x1f\xdf\xe6\x39\x21\x4d\x1f\xc4\x95\xd6\xa4\x59\x3e\x81\x45\xdd\x7a\x7d\x59\xe9\xd3\x44\xd7\x2a\x8a\x1f\x1a\x25\x8c\x4f\x68\xbf\xbc\x6a\xfd\x57\xcb\xbb\xb7\x06\x93\xa0\xe7\x1f\xf6\x39\x98\x1a\xce\x59\x58\x2a\x46\x1d\x7f\xe3\x1e\x7d\xc3\xe8\x8f\xa1\x4b\xde\x25\xd0\xb5\x2f\x70\x45\x7f\xe9\xc8\x5c\x3e\x54\x3d\xd8\xeb\xa2\xb9\x32\xf3\xe6\x5d\xaa\xb4\x58\x52\x3b\xe5\x3c\xec\x8f\xed\x6e\x53\x01\x3e\x7e\x7b\x73\x15\x73\x7b\xc3\x56\x41\xe3\x2d\x38\x4e\xab\x95\xba\xf3\xa5\x5c\xca\xfc\xae\x3e\xea\x09\x32\x3b\x34\x01\x43\xe2\x59\x86\x9a\xa1\x2a\x69\xa2\x92\xf2\xd7\x92\xf6\xc8\xb2\xa5\xb1\x7f\xaf\x39\x36\xa9\x22\x00\xe5\x5c\x51\x80\x89\x35\xf0\x82\x57\x60\x54\xe2\x6a\xa9\x06\x54\x68\xce\xde\xe1\xb1\xf1\x3c\x90\x8a\x89\x12\xed\x68\x04\xb7\xdd\xf4\x3c\xb9\x22\x3e\xfe\xf6\x4b\x97\xe5\x3e\xcf\x20\xeb\x9a\x4b\x9b\x78\x24\x7e\x7e\x0f\xd4\x2f\x3a\x47\x46\xdd\x85\x3b\xa2\x88\xbe\x29\xd3\x30\x67\xeb\x18\x19\xff\xdc\xb3\xa4\x60\x3b\x6e\x97\xb6\x36\x37\xa1\xb6\xb6\x1e\x98\x39\xa8\xd8\xa8\x65\x61\x21\x7d\x6d\xb5\xc9\x4d\x02\x09\x2d\x0c\x65\x42\x3c\xc2\x3c\x89\x1c\xa9\x56\xdf\x96\x50\xae\xcd\x31\x6f\x98\x50\x5f\xde\xf6\xe7\x5f\xe9\x98\x11\x58\xe0\x82\x1b\x86\xb7\x5c\x68\xdf\x86\x45\x07\x32\x7b\x10\x76\x8d\xc9\x33\x18\x51\xaf\x7e\x0b\xe6\x55\x21\x6a\xce\x62\x94\x81\x88\xad\x41\xca\x35\xd8\x30\x04\xd3\xa1\x86\xc9\x4e\x60\xeb\x18\x15\x44\x85\x67\x46\x53\x1f\x65\x16\x22\x91\x7d\x1c\x99\x6c\x28\xef\x38\xf3\x17\x9e\x6a\x6b\x00\xa5\x4e\x18\xfb\xa8\x22\x69\xf4\xf3\xf2\x09\x53\x91\xbb\x92\x03\xe0\xd5\xeb\xde\xd1\x35\x51\x31\x59\xe0\x1b\x3d\x8b\x98\x96\xf6\xf5\x99\x37\x7b\x3d\x58\x39\x94\x5d\x2b\x20\xea\xb8\x91\x87\xc9\x2b\x65\xf9\x82\xbf\xbd\xdb\x78\x35\xec\xef\x0e\xe3\x47\xd3\xe5\x43\x56\x14\x2b\x16\x8d\xdd\x59\x4b\xc9\x55\xb4\xa8\xa7\xb7\xfc\x21\x30\x0d\xd6\xb4\x4c\x65\xbd\x53\xe2\x6c\x22\x18\x89\xd3\x3b\x64\xbe\x86\x41\x54\x6c\x22\x15\x9a\xe8\xc5\x00\x35\x43\x64\x50\xda\x55\x32\x80\xc1\x87\x5c\xf3\x8d\x86\x19\xd9\xfd\xe8\xe5\x00\x9b\x9f\x5d\x9c\xda\xc5\x64\x38\xd5\x23\x67\x52\x81\xb3\x5d\x1d\xb6\xe9\x80\x5d\x03\x8e\x03\xc0\x61\x97\xb6\x0e\x2e\x34\x57\x36\xfe\x3a\x38\x04\x0b\x15\x79\xca\xcb\x1d\xaf\xbe\x1f\x21\x64\x73\x6a\x15\xe0\xc1\x04\x69\xec\x4d\x06\xca\x89\xf2\x6f\x9c\xcb\xbb\xf9\xee\x7c\x81\xbc\x2d\xd3\x5b\xa8\x53\xec\x3d\x90\xaf\xf8\xd1\x88\x13\x15\x4f\xd9\xf9\x3d\x68\xb9\x9c\x29\x59\x59\x10\x3d\x6e\xea\x54\x2d\x6f\x55\xec\x9c\x85\x71\x21\xa7\x3e\x6a\x3e\x1c\xe2\x98\x3e\xe8\x08\x60\x3e\x32\x5b\xc2\x9b\x0e\xaa\xb9\xdf\x0f\xea\x6c\x1f\x50\xbb\x07\x89\x06\xac\x79\x1d\xe2\xf7\x83\x31\x72\xc5\x9c\x15\xa7\x65\xe8\xa6\x04\x7d\xa7\x00\x51\xfe\x4e\xd1\xa1\xf4\x31\x36\x0c\xb3\x22\x1b\x65\x62\x35\xd1\xd0\x61\x6e\x83\x13\x0f\xde\xaa\x1c\x83\x34\x3d\xdd\x7a\xbd\x2d\xdf\xf1\x1a\x8c\x7c\xe7\x8b\x30\xc6\x77\x1d\x39\x0e\xab\x29\x5b\xb5\xba\x7a\xf3\xd5\x7c\x6f\xc9\xa9\xd8\x16\x3a\x11\x80\x05\x17\xf2\x59\xe0\xdf\xb6\xf8\x67\xf1\x36\xc0\xf4\x96\xfe\xaa\x69\xfd\x68\x42\x2c\x5c\x03\x8a\x0d\x53\xec\x2b\x93\x83\x55\xf3\x1d\xfd\xa3\x7e\x46\xfa\xcd\x58\xfc\xd9\x52\x77\x78\xc8\x39\xec\x80\x51\x97\xaf\xa6\xbe\x84\xff\x81\x6c\xcd\xff\x06\xc5\x7d\x79\xd7\x0a\xee\x4a\x58\x2e\x55\x87\xc9\x24\x6c\xad\x4c\x29\x67\xb4\x20\x71\x2f\xc6\x65\x17\x45\xff\x9c\xdd\x93\xa9\x15\x94\x07\x32\xc5\xb1\x92\xec\x77\x54\xf7\x65\xa0\xeb\xaa\x5d\x39\x07\x32\x9f\xe3\x76\x40\x61\xf4\x37\xee\x7b\x97\x57\xfd\x65\xe0\xe7\x75\x36\x3a\x68\x92\x13\xfd\x74\xe6\xda\xff\xb7\xba\xea\xc2\xfb\xe7\x58\x6f\x5d\xc9\x46\x2f\x41\xad\x0a\x63\x21\xe5\xde\xf4\xa6\xe3\x88\x7a\x59\x66\xe1\xb9\x30\x5f\xeb\x51\x77\x26\xcc\xa2\xd8\xce\xc1\x45\xae\x8e\x05\xc3\x5b\x08\xf7\x8e\xd5\x5d\xa8\xd9\xa7\x3e\x62\xf2\xe8\xdd\xa3\x1a\x24\xaa\xcb\x15\x22\x15\x27\xc5\x45\x5d\xd9\x82\x53\x02\xc6\x95\xcb\x55\x90\xe1\x9b\x41\xdb\x1d\x60\x02\xe6\xc6\x46\xb0\x8a\x83\x36\x62\xbf\xdf\xfd\xfc\xcb\xef\xe9\xe8\x1a\x8f\x7d\x29\x22\x97\x83\x6b\xbd\x85\x55\xe3\xea\x83\x6a\x5d\x9d\xa7\xa0\x9b\xad\xc0\xb1\x7b\xb8\xb7\xe8\x00\x83\x6b\x73\x25\xd4\xbb\xd6\x9e\xe8\x4b\x10\x6c\x16\x60\x88\xb5\x71\x5e\xca\xb1\x7e\xa2\x42\xe1\x1e\x86\x99\x48\xdc\xda\x14\xf8\x0d\x0b\xb6\x47\xe2\x21\x65\x67\x93\xc1\xc1\x7c\x56\xf3\x4c\x11\x1a\xe5\x81\x74\x21\x5f\x3a\x2b\x24\x62\x61\x0a\xdf\x61\xf3\x9d\x05\xa9\x99\x46\x80\x94\xd6\x24\xbc\xb1\x75\x0f\xc4\xf0\xf6\x6b\xaa\x99\x87\xf5\xc3\x45\x2c\x3c\xb1\x1a\x52\x54\xa6\x18\x06\x80\x87\xb8\x43\x57\xd9\xa6\x53\x87\x00\x2b\x12\x91\x06\x06\x1c\xfb\xe8\x53\xa7\xd2\xdd\xc0\x26\xce\x9e\x32\xcd\xc0\xdd\x4d\x30\x1c\x5b\xeb\x8f\xfd\xeb\x97\xc8\x90\x13\x2d\xb4\x9f\x4f\x74\xc9\x0d\xc7\x6e\xec\x93\x27\xf8\x9b\xfa\x55\xc3\x60\xc2\x8a\x80\x28\xdf\x37\x7d\x0a\x1c\xe1\x78\xb7\x8c\x08\x43\xcb\x5a\x98\x9a\xbf\x48\xbc\x4f\x98\xda\x2f\x35\x24\x40\x6f\x2d\x8f\x71\x22\xaf\x1f\xb5\x07\x57\xd4\x3d\x46\x1e\x23\x32\x09\x39\x42\x21\x0a\x88\xc8\x57\x81\x7d\x41\x34\x1c\x71\xc1\xac\x53\x04\xc5\x17\x76\xdb\xd1\x4d\x0e\x4a\xc5\x03\x12\xe2\x16\x72\x1e\x1e\xba\x20\x57\xae\x61\x1c\x02\x9e\x56\x08\x5f\x31\x6a\x49\x88\x04\x5b\x90\x1c\x1d\x1c\x54\x3c\x79\x42\x98\x8d\x62\x33\xd5\x8a\x6d\xa7\x78\xf1\xf8\xab\xaf\x54\x31\xdd\x39\xac\x66\xf0\x42\x1b\xc1\xa1\x05\xb1\xba\xd0\xdc\xb9\xa7\x00\x6c\x55\xa2\x8e\x1e\x08\x98\x61\xd4\xa7\xc4\x0b\x69\x78\x83\xcd\x4d\x7d\x0b\xff\xb7\xbe\x93\x7b\x6c\x68\x8b\x75\xdb\x05\x55\x1d\xf7\x07\x70\xd1\x2a\xd0\xd0\x4d\xb5\x47\x27\x41\x99\x6a\xde\xb9\x8c\xcb\xa9\x58\xcc\x57\x01\x6a\x7a\x06\x8c\x08\x7f\xe3\xa5\x37\xfd\x04\xf9\x78\xc1\xce\xb8\x18\xfd\x42\x41\xb4\x60\xba\x34\x0e\xeb\x30\x83\xe8\x7b\xae\x64\xfa\x53\xde\xa5\x15\xef\xe1\x84\x12\x02\xf4\x19\xe6\x85\x6e\xb8\xf1\x47\xd5\x10\x15\x51\x50\x24\x56\x63\xff\x43\x42\x65\x58\xb6\xc5\x0c\x6d\x07\x56\x6b\xd4\x76\xd0\xf8\x75\x69\x3c\xc1\xa6\xa4\x30\x21\x46\x38\x00\x08\xae\xdd\x35\x9f\xdd\x09\x8f\x46\x81\xf4\xa0\x29\x85\x5e\xa4\xb1\xa3\xe0\x23\x32\x56\x8c\x92\x38\x5c\x26\x4d\x48\x7d\x2e\x02\x6b\x42\x57\xac\x77\x7e\x81\x96\xb7\xfa\x9e\xa3\x50\x2b\x6e\xfe\xda\x7d\x90\x17\x41\x11\x47\xab\x82\xde\xda\xaa\x8f\x23\xaf\x89\x20\x08\x8b\xd2\x56\xae\x60\xa3\x58\x07\x87\x06\x57\x56\x79\x6e\xcd\x82\xae\xc8\x5c\x1a\x25\x25\x94\xf5\x50\x88\xb1\x1b\x22\xa7\xe3\x40\x59\x98\xce\x4a\x5a\x35\x42\x4a\x2f\x85\x59\xed\xe2\x76\x8d\x83\xeb\xa5\x62\xae\x94\x70\x9f\x01\x88\xee\x37\x19\x96\xbb\x36\xc0\xc3\xbd\x27\x57\x72\xca\x60\x35\x18\x58\xcc\x4f\x78\x73\x2b\x72\xcd\xa7\x43\x2f\x8e\x8b\xd1\x7e\xba\x0a\x76\x40\xe1\x9e\x1d\xab\x80\xac\xc3\x2b\xbe\x80\xd1\xe4\x28\x70\x25\x3e\xd3\x4d\x40\x5d\xc3\xc9\x21\x44\x27\x68\xf4\x6f\xe8\x26\x97\xd7\x13\xe1\x98\x3f\x75\x9c\x66\x99\x49\xb9\x63\x1b\x9b\x17\x2e\x4e\x83\x06\x94\xb5\x25\x36\x5a\x78\x03\xa9\x11\x74\xd7\x34\xd4\xd1\x71\xed\x11\x89\xab\x99\xee\x14\x7a\x59\x07\x27\x88\xc4\x57\xe9\x6c\x52\x35\x81\x24\x35\x20\x34\x45\x35\x04\x6c\x5d\x8c\xc2\x95\xe5\x47\xcd\x37\xb7\xd6\x60\x5e\x13\x21\x40\xfd\x49\xb3\x4a\x87\x32\x92\x01\x23\x38\x09\x78\xc2\xf2\x4b\x6e\x57\x03\x26\xb5\x1d\x9f\x75\xa9\x15\x99\x78\xb4\x96\x13\x5b\x07\xb8\xde\x3c\xc0\x25\x22\xae\xaa\x46\x2b\xb1\x1a\x46\x0a\x58\x72\xab\x08\xd0\x85\x51\xf7\xc2\xc8\xd9\xba\x88\xac\x85\x10\xac\x2b\x57\xd1\x41\x2b\x18\x70\x6a\x82\x75\xf3\xf9\x03\x36\x5b\x13\xeb\xf0\xf4\xe7\xd2\xdd\x03\x54\xa5\x39\xbb\x83\x3e\x0a\x25\xb6\x12\xab\x14\xed\x12\xfa\x04\xf0\x0a\x0c\xf5\x32\x3d\x83\x97\xe1\x13\xbb\x70\x31\x92\xd2\xbf\x74\x85\xee\x16\xc7\x8b\xba\x50\x43\xc7\xdb\xba\x74\xc9\x9a\x7b\x4d\x84\xc3\x25\x2c\x70\xd7\xd6\x8e\x81\xab\xd8\x60\x90\x54\xf9\x6c\x2a\x25\x4e\x43\x62\xa3\xc9\xbd\x83\xe4\x32\x80\x31\xbe\xb3\x33\x70\xd1\x71\xab\xc8\xa0\xd1\xd5\x4b\xf1\x77\x8b\xad\xb5\xb9\xd6\xa3\xf9\xce\x2d\x9b\xd0\xdb\x97\x23\xd0\xb8\xa9\x88\xec\x29\xfe\xcb\x3a\xfd\xe3\x7b\x3f\xb9\x56\xf7\x80\xe1\x36\xff\xf1\xfd\x9f\x40\xd3\x3a\xfd\xe3\x07\x3f\xb9\xa8\x61\xc5\xeb\xa6\x7b\x32\x67\xf1\x9c\x76\xc7\x22\x58\x0b\xc3\x53\xa9\x9d\x08\x89\xca\x15\xfb\x5c\xde\xa9\xb9\xe8\x6a\x05\x75\x86\x32\x44\x68\x66\xf1\x2b\x1e\xbd\x4c\x44\x3e\xf3\x9e\xe7\x7b\x8f\x8a\xa5\x86\xf7\x7b\x4e\x39\x25\x62\x9b\xbd\x54\x2b\xa6\x65\xec\x2e\x72\x04\xff\xce\x8d\xc8\xe0\xa5\x14\x8d\x95\x6a\xea\x67\xc4\x1a\x06\x9d\xcf\xe1\x90\x01\xf9\x53\x32\xfe\xbf\xe5\x5f\x1f\xd1\xd8\x48\xc5\xe4\x66\x7e\x0e\x7a\x72\x02\xef\xfb\xf6\x22\xb2\x52\x75\x94\xa9\xdc\xf0\x21\x0e\xc5\xb7\xe7\x23\xd8\x72\x91\x60\x14\x02\x81\x55\x1d\xc1\xbb\x62\x13\x5d\x04\x88\xc2\x9d\x99\x3a\x51\x88\x48\x73\x06\x64\xbc\x51\x61\xc0\x6a\xb5\x44\x4b\x99\xd6\x7f\x8e\x4e\x8c\xff\xcf\x11\xac\xfe\x7c\x33\x06\xde\x3f\x87\x26\x2f\x8f\x7a\x6f\x0f\x35\x07\xff\xda\x15\xbb\x94\x45\x57\x0a\x9a\xe5\x04\x65\xa1\x95\x03\xe6\x3c\xc3\xfe\xb1\xee\x82\x1e\xc0\xae\xaf\xf2\x2d\x54\xd0\x25\x49\xd7\x92\x02\xba\xb9\x14\x04\x0f\x07\xab\x95\xbd\x54\x2a\x5e\x50\x7f\x57\x57\x2c\xc0\x9e\x00\xbb\x0b\x05\xf3\xf0\x54\xeb\x89\xbe\xd9\x68\x42\xe5\x4b\x69\x15\x81\xcc\x0e\x94\xe9\x71\x8e\xf9\x41\x9b\x6a\x7b\xaa\xb5\xb6\x03\xf6\x03\x6c\x02\x33\xb4\x3f\x7c\xc3\x65\x92\x0d\xd2\x26\xb0\x90\x4b\xf7\xc3\x87\x5f\x72\x27\x42\x4d\x7d\x68\x33\xdb\xb9\x3c\x48\x8b\x97\xab\xad\x83\xad\x80\xc4\xe1\x9c\x11\x0a\xcf\xcc\x39\x3b\xc5\xf7\xba\xf4\x37\x96\x97\x72\xfd\xde\x90\xf0\x11\x80\xac\x53\x70\x94\x0a\xd0\xbe\x3d\xdd\x1a\x7b\x12\x03\x40\x4f\x24\x8b\xef\x88\xa8\x65\x80\x60\xe1\xbb\x21\x3d\x00\x6d\x9b\xb0\x44\x62\xf8\xa4\x61\x71\x49\x28\x5c\x27\x52\x26\x31\xf2\x72\x04\x9f\x84\x47\xc4\x87\x7d\x2c\x4c\xe4\x10\x4c\xe8\x43\x2e\x3b\x89\xb1\x34\x24\x2a\xea\x8c\xc1\xf9\xd7\xb8\x3f\xb4\x15\x39\xf9\x22\xcf\x68\x72\x3f\xda\x6b\x2d\xf6\x57\x70\xf8\xf5\x37\x1c\x7a\x04\x36\x17\xee\x9b\x72\x06\x96\x17\x47\x1f\xb8\x78\xb7\xc1\xdf\x9a\x95\x04\x0b\x9b\xe3\xde\xe4\x7c\x07\x48\x19\x06\x81\x7b\xc3\x6b\xa8\x60\x91\xe9\xd7\x9e\xbf\x1a\x24\x76\xa0\x06\x60\x85\xe1\xfd\xc8\xe7\x2f\xe5\x3c\xc1\xc8\x4f\xc2\xb1\x00\xa1\xe6\xbb\xc1\x6e\x4b\xe1\xff\x62\xfd\xf2\xbf\x29\xf9\x57\x15\x8b\x80\x13\x03\xf6\x1f\xe9\x97\xc5\xbf\x14\x08\x30\xe4\x8a\xed\xd6\x0a\x68\x7e\x01\x37\x1e\x3b\xc2\xeb\xb4\xcf\x67\x60\xbb\x04\x10\xc0\x25\x40\x73\x20\xc7\x05\x77\xf3\x7d\x1f\x30\x10\xe0\x1b\x96\x94\x59\x55\xc7\x92\x32\xab\xdb\xce\x66\x6a\x2e\xfc\x0b\x68\x92\x5f\xaf\xcf\xce\xe4\x2c\x65\x03\x5b\x08\x62\x9f\xb3\x4b\x5d\xaa\x79\x8c\xcd\x34\x93\xb4\xa4\x7e\xd6\xad\x67\x0a\xe8\x5c\x1c\x00\xae\x84\x00\x96\x00\x40\x0f\xd5\x7e\xdb\x2e\x01\xf3\xb2\xa1\x8b\x6a\xbf\x23\x3e\x0f\xf7\xef\x4c\x49\x0c\xac\xea\x5d\xea\xe1\x5d\x14\xc7\x39\x61\x5b\x7f\x4b\x3f\x84\x79\x09\x0d\x59\x6f\xff\x94\xfe\xb1\x4c\x3b\x5b\x41\xd0\x66\xe5\x39\xed\xcf\x80\x88\xc4\xe1\x16\x6d\xe8\x92\x44\x77\x4e\x78\xa6\xcb\x2c\xf4\x43\xbc\x06\xa3\x78\x24\xfd\x6d\xe5\x4b\x50\x41\x7d\xff\x40\x7f\x57\xcd\x53\x53\x22\x9c\xb9\x17\xfe\xf2\x7f\xd7\x3a\xd4\xfe\x4f\x3f\xb9\x7a\x08\x99\x6e\x14\xbc\x98\x8c\x89\xe3\xd3\x3e\x35\x7e\x84\x81\xd8\x16\xff\x94\xff\x35\x8b\xc8\x55\x8b\xab\x08\xa6\x91\x17\x7a\x4e\x15\x8b\x10\x85\x25\x42\xa8\xa7\xbe\x25\x17\x83\xc5\x9f\x59\xca\x84\xa6\x10\x30\x2e\xdb\x15\xf4\xa2\x0a\x21\x01\x8e\xef\xa9\x77\x85\xa9\x92\xfa\x9a\xfe\x31\x17\x8b\x14\x7c\x1f\x6b\x14\x0a\x2d\x0c\x30\xb0\x84\x7c\xb2\xc7\x31\x86\x6f\xe0\x6f\x54\x0b\xa0\x3a\x66\x60\x43\xd0\xc1\xdb\x67\xf0\xb7\xe5\xf4\x24\xe0\xa7\x9b\x62\x48\x2b\x07\x02\x12\x70\x56\xec\x03\x2b\xa1\xc7\x0b\x68\x8f\x63\x08\x23\x0e\xa2\x20\x4d\x3e\x70\x42\x83\x27\xf4\x7f\x3b\x35\x0b\xbe\xeb\x41\x63\xf9\x3b\x91\x91\x5b\x4e\x02\xa5\xcc\x56\xc9\xc5\x9c\xdc\xf0\x5b\xd5\xe3\x9b\x56\x9b\xb2\x4a\x5b\x0b\xf7\x20\x9e\x6c\x15\xf2\xd9\xaa\xab\xb7\x93\xf2\x65\x74\xee\x51\x7c\x90\x32\xb9\xd8\x9e\xf8\xe0\x2c\x4c\xd1\x00\x04\x72\x0a\x48\x25\xd7\x29\x9c\x83\xfd\x5b\x0d\x4f\x65\x78\x93\xd3\xb4\x46\x36\x9b\xe9\xc6\x22\x8f\x89\xc4\xf4\x04\xb6\x9e\x51\x6e\x9a\xb8\x86\xbe\x6b\x40\x84\x6d\xdc\x40\xe7\x8d\x82\x60\x60\x1a\x28\xe1\x6e\x42\x39\xba\x31\x6b\x40\x69\x32\x37\xd8\x95\x59\x5f\xf7\x37\xee\x28\xef\x50\x04\x9f\x94\x52\x2d\xa3\x5d\xa4\x92\xda\x06\x9b\xdf\xad\x75\x23\x77\xc4\xb3\x37\x52\xff\xf5\x50\x1b\x47\x23\x98\xab\xec\x3e\xba\xd7\x25\x96\xfc\xf0\x96\x21\xb8\xcd\x0e\x4c\xb7\x43\x32\xad\xb4\xb2\x11\xad\xcb\x3e\x5a\xf1\xce\x9a\xdf\xf5\xa0\x8d\xe1\xe2\xe1\x09\xa5\x5a\xa1\xc3\x93\xd0\x10\x6d\x8c\x83\x24\xdf\x4f\xa8\x40\x5f\xcd\x97\xe6\xd2\xbc\x59\x42\xad\xea\x03\x11\x75\x31\x69\x92\x8f\xdb\xf1\x94\xe0\xad\x01\x68\xf8\x9d\x62\xf1\x9d\x5c\x8e\x4e\x4e\xbc\xc3\x3b\x3a\xf7\x49\x94\x00\x5a\xa2\x6b\x12\xf0\x81\x8b\xf8\x47\x82\x70\x09\xa3\xa6\xa1\xf1\x24\x13\x0e\x01\x8c\x49\x92\x48\x42\x98\x98\xf1\x5b\x30\x5c\x7f\x81\x7d\x7d\x48\x3e\x0c\x82\x20\x5f\x76\x63\x6f\x0f\x83\xf6\xf5\xe4\xcd\x8c\x60\xd8\x86\x76\x75\x2c\x5e\xc4\x5b\x2a\x72\x41\xc8\x1c\x44\x58\x7f\x34\x4a\x42\x0a\xd6\xb1\x68\x26\x8e\x1f\x7b\xe4\x73\x47\xb2\xaf\x58\x01\xc6\x18\x87\xb9\x7a\x94\x1c\x11\x45\x2d\xb9\xaf\x0e\x9a\x9a\x06\x7e\xa3\xb2\xc6\x87\xf0\x49\x9a\x5a\x52\x2f\xb1\x51\xc5\xe2\x94\xcc\x54\x72\x7c\x54\x1a\xc9\x30\xd7\xc5\xf9\x82\xdc\x54\x38\xcd\x95\x2e\x36\x12\x06\x38\xda\x54\xa1\x54\x01\x1c\xf5\xaf\xe0\xfa\x1c\xe7\xac\x0e\x19\xfc\x27\xbb\xdb\x6a\x8f\xdd\xf3\x36\x66\x0c\x88\xde\x7c\x35\x04\x44\xd9\xab\xa2\x40\xa0\x17\xe5\xb3\x46\x56\xbc\x64\xa4\x72\x28\x5e\x2b\xe9\xdf\xc8\xdd\x39\xb5\xd3\x5e\x5c\x97\xf3\x7e\x8c\x26\xd7\x50\x09\xe9\x16\x75\x99\x84\xfb\xea\x8e\xd8\x51\xd2\x81\x44\x12\x5f\x8b\x27\x23\x7c\xaa\xc9\x71\x15\x24\x63\xb9\xcc\xea\xcf\x03\xaf\xce\xf4\xf4\xe0\xa9\x6f\x9f\xd3\x8f\x2c\xff\x2c\x1e\xe9\xa2\x43\x08\xb9\x3e\x88\x16\xe3\x80\xb7\xcb\x68\xbc\x0a\xba\x9f\xdb\x83\xe7\x93\x74\xbf\x45\x0e\xba\xf9\xe0\xfd\xf1\x78\x02\xa0\x0e\x3a\x62\xfb\x0c\xe3\xdf\x18\x6d\xaa\xdf\x1a\x7d\x8a\x51\x29\x7c\xf0\x16\xce\xbe\x12\xc4\x10\xd5\xe7\x8d\x3b\x3a\xba\x03\x4a\x74\x48\xd7\xd8\x50\x91\x70\xf9\xe0\x17\x0f\xf9\x8d\xa3\x22\x1d\x39\x61\x46\x14\x72\xd4\xa1\x71\xc6\x17\x4c\x94\x69\x1b\xe1\x11\xa4\x1c\x1b\x45\x00\xcc\xed\xa2\xfa\xa1\x98\x23\x0a\x3d\x69\x0f\x8e\xc0\xd8\x24\x05\xdd\xee\x98\x3f\x78\x03\x53\xa8\x1d\x4d\xb6\x6e\x4f\x86\x07\xa0\x29\x84\xd9\x98\x60\x63\xa4\xdf\x4b\xbd\x63\xa1\x0e\x40\xb3\x83\xa2\xc6\xe2\x68\x20\x2b\xdf\x63\xc1\x68\x2d\x1a\x2d\xe9\xd2\xa0\xab\xe4\xf2\xe7\xf2\xb9\x5a\xa6\x80\xa2\xbb\x92\x34\x43\xba\xd9\xf7\xcd\x66\x41\x55\xa0\xc3\xf1\x8e\x4d\x83\xea\x62\xe4\xaf\x24\xa5\x1f\x60\x06\x9c\xda\x5b\xa0\x68\xc0\x0a\x66\x1d\xcb\xe6\x1a\x6e\x62\xc7\x28\x19\xc4\x28\x16\xf5\x82\x2e\x0a\x5a\xfa\x82\x8d\xa9\x6a\xb1\xb9\x41\x91\x39\xd8\x4b\x25\x50\x74\xfe\x2e\x4e\x78\x93\x52\xb4\x9e\x03\xad\x48\x85\xad\x7c\xfa\xf1\x37\xdf\xfc\xe5\xfb\x20\x60\xa5\x1b\x94\x9b\x52\x0e\x10\xef\xea\xdc\xdc\xfb\xf1\xe6\x88\x58\x74\xda\x55\x02\xe4\x0b\x03\xac\x2e\x92\xd2\x85\x26\x4f\x65\x80\x6d\x25\xa5\x70\x06\x9b\xe5\x6d\x18\x5c\xb6\x50\xcb\x61\x29\xf2\x0c\xd4\x51\xdf\x66\xb7\x8c\xfb\xb6\xa5\x1c\x73\x44\x57\x9e\x02\x50\xc0\xa1\x95\x80\x71\x39\x61\xaa\x46\x50\xa5\x43\x6c\x1c\xfe\x97\xb1\x9e\x2d\x52\x37\xf1\x9a\xcd\xdb\x60\x6d\x15\x48\xa9\x75\x79\x20\xdd\x6c\xca\x15\x6d\x5c\x38\x36\x68\x37\x39\x40\x02\x18\x00\xce\x8a\x62\xcf\x6f\xea\xf4\xfd\xce\x9d\x56\xf2\xe7\x80\x71\x24\xf5\x5a\xb1\x8b\xce\x39\x50\xdf\x33\x55\xa2\x1c\xee\x52\xab\x9a\x2f\x1e\x37\x19\xd4\xd9\x07\xdc\xd9\x00\x2e\x5b\xb0\xd2\x70\x91\x9c\xb5\xed\xb2\xd1\x43\x18\xf9\xb7\xad\x32\xaf\x34\x61\x70\x41\x78\x52\xc2\x14\x91\xc5\x42\x84\xb2\x60\xd9\x91\x5e\xde\x89\xd3\x06\x97\x13\x0c\x5e\x1b\xbb\x54\x11\xdf\x02\xe2\x12\x03\xa8\x20\x76\x4b\x43\x15\x33\x67\x41\x97\x55\x8c\x54\xd2\x7a\x18\xec\x34\xa9\x41\x8e\x71\x54\xe1\x28\x9a\xe1\xaa\x5b\x86\x71\x54\xc2\xd1\x6e\xe1\x28\xb7\x68\x2f\x18\x1e\x6c\x2e\x40\x1d\x28\x4c\x9c\x34\x41\x7c\x46\x2b\x04\x2e\x18\xc2\xc4\xbc\xa5\xa0\xab\x87\xd1\xe3\x85\x91\xdc\x88\x79\x03\x58\x57\xd7\x71\xe5\x78\xd9\x6b\xe9\x26\xcb\x88\x70\x9b\x74\x91\x38\x4f\xb7\x43\xd3\x9c\x35\x26\xe1\x32\x31\x68\x2a\x72\xe7\x52\xdd\x0d\xf5\x96\x6e\x71\x0e\x24\x0c\x07\x21\xcc\x9b\xe7\xf7\x3a\xa0\x8d\x03\xef\xb7\xbb\x51\x33\x90\x1b\x16\xc9\xda\x03\xa9\x0e\x2c\x27\x82\x72\x8e\x1d\xc2\xfb\xb8\x94\xb9\x10\xe3\xa5\x29\xcc\xb6\xb1\x8b\x7e\x23\xd4\xe3\x26\x47\xe1\x7b\x63\x6f\x02\x0f\xe6\x17\xce\xa3\xcf\x89\xbe\x50\x4c\x0d\xdf\xbf\xb0\xbe\xfd\xcb\x99\xef\x2d\x7d\xab\x8d\x0f\xea\x13\x42\x45\x0c\xf7\xe7\x3f\x31\xbe\x78\x3e\x31\xea\xaf\xcf\x72\xd8\x3f\xe7\xd4\xa3\x14\xca\x5a\x89\x33\xf0\x97\x31\x06\xfe\xbe\xcf\x98\xfd\x49\x5b\xc7\x40\xf2\xa0\x3f\x53\xdc\x12\x36\x9e\x40\x30\x4f\xe0\x79\xb7\xd0\x07\x62\x0a\x01\x62\x87\x50\x0c\xad\xe4\x91\xbb\x5a\x12\xa5\xd0\x65\x7d\xe6\x84\xb8\x80\xba\x7e\xf6\xf7\xc7\xa1\xa0\x16\x92\x60\x1b\x78\x00\x78\x33\xc4\xbc\x09\xd1\x96\xba\x94\x65\xab\xcd\xd9\x04\x08\xb7\x8c\xa2\x14\x40\xf8\x8f\x04\x18\xb6\x34\xdc\xd4\x17\xfc\x6f\x02\x44\x99\x53\x7b\xa4\x24\xc5\x47\x02\x44\xb7\x93\x1b\x48\x7d\x02\xff\x4b\x50\x4d\x25\x47\xb0\x56\x4c\x71\x69\xcf\xee\x48\x5e\xf2\xc7\x2d\x0c\x40\x9c\x69\x1c\x2d\xe1\x2e\x52\x19\x01\x39\x28\x1e\x83\x31\x69\xe5\x21\x1f\xa1\x14\x6e\x68\x9a\xf3\x1a\xa5\xe8\x95\xf0\x62\x90\xfe\xc8\xa9\x2c\xba\x0f\xf9\xe0\xa5\xd7\xe5\x75\xbe\xd0\x87\x5b\x69\x6c\x54\x47\x48\xfb\xab\x77\x1b\x47\x13\xea\x62\xdc\x06\x5d\xf1\x40\xab\x25\x70\xe1\x53\x2c\xb2\x28\x5b\x2b\x33\xe8\xd3\xa6\x06\xa5\x1d\x0a\xbb\xe0\xd4\xa6\xb8\x70\x41\x1b\x9b\x7a\x0a\xea\x55\x32\x6a\x14\x12\x2b\x23\x10\x0f\x7c\x0c\x46\x9d\x55\x09\xda\xd4\x66\x9c\xf3\x0b\xb4\xba\x0a\x48\xb0\x31\x15\xdb\x60\x03\xa2\xdf\xd2\x5d\x7c\x1c\xfb\xe0\x62\x7b\xe8\x92\xb8\xf0\x70\xaf\x2a\x0f\x1e\xfb\x81\x31\x24\x78\xf5\x7c\x7b\x7e\x87\x37\x39\x6f\x3d\x9d\xdd\xc8\x9b\xb9\x6c\x6c\x78\x9d\x24\x44\x2b\xcf\x3a\x3b\x1c\xa8\xb0\x68\xad\x52\x6a\x3c\xbe\xff\x0a\x56\x03\x98\xd3\x60\xd6\xff\x8f\x33\x7f\xf9\x86\xd2\x40\x33\x0a\xbf\xbe\xd3\xdf\xdf\xff\x0e\x6e\xb4\x77\x6a\x95\x82\x5d\xc2\x8f\x39\xc1\x89\xd3\xb1\xc8\x7d\x23\xc0\xe9\x8f\xb2\x11\xba\x62\x84\x6c\xc4\x14\x9c\xb2\x94\x39\x71\x6c\x28\x4d\x8d\x29\x92\x70\x02\xcc\xc4\xd1\xec\x2e\x30\xad\x20\x3b\x5b\xb1\xd5\x6d\x9e\xd8\x1c\xb9\x85\x4c\xf6\x6c\x70\x45\xf6\x07\xf9\x23\x06\x91\x87\xae\x08\x93\x2f\xe1\x0f\x4e\x60\x1b\x81\xe0\x23\x99\x4f\xf1\xff\x46\x19\x3a\xb3\x55\x14\x37\xc6\xb7\x93\xb4\xc7\xbb\x23\x93\xfe\xf2\x52\xeb\xe1\x2e\xcc\x94\xc1\xef\xd1\x1c\xa7\x69\xa4\x0c\x2c\x91\x46\x28\x46\xcd\x29\x15\x06\x28\x2b\x26\x11\x44\xa6\x04\x4b\xd4\xaa\xe0\xfa\xe1\x35\xcd\xf5\x29\xdb\x53\xa0\x69\xa6\xbe\xb4\x30\xbc\x54\xab\xb9\x41\x89\x56\x75\xbb\x62\x6d\xf0\x15\xd8\xd4\x57\x76\xd5\x2a\xa2\x6a\x84\xbf\xac\xfe\x3e\x50\xc6\xb8\xb5\x84\x1a\xa6\xff\xbc\x43\x29\xd3\xe7\x13\x3a\x04\x78\x1b\xac\x05\x58\x33\xbd\x96\x04\x32\x24\x92\x21\xf5\x2d\xfc\x2f\x99\x40\x9a\x83\xe1\x2f\xe4\xef\x19\x43\x4f\x33\x37\x1c\xe5\x2f\x4b\x49\xee\x10\xba\x10\x1b\x2b\xd5\xc9\xac\xe7\x5e\x98\x82\x54\x44\xeb\xc2\x79\xc9\x97\xc1\x97\xc9\x69\x2e\x41\xec\x1b\xd3\x19\x9e\x05\xdc\xe2\xb4\xbf\x0d\x61\xa2\xf8\x6c\xf4\xd6\x58\x94\x87\x68\x0d\x81\x78\x48\xb2\x86\x20\xa0\x9d\xba\xe8\xa8\x62\x8a\xb6\xac\xba\x90\xcb\x68\x89\x5d\x70\x38\x46\x5a\x64\x2a\xe6\x4b\x90\x98\x0c\x5a\x8d\xad\xd5\xeb\xfc\xcc\x84\xa9\xb3\x48\x58\x0c\xb5\xa4\xa2\x93\x43\x24\xe1\xdd\x13\x30\x3e\x9d\x39\x5c\x82\x95\xf9\xba\x60\xe8\xf8\xf5\x0c\x56\xe1\x13\xed\xa5\x11\x18\x52\x98\xce\xdc\x20\x5f\x9e\x51\xd7\x66\x22\x85\x91\x8c\xdc\xd1\x9d\x0c\x1a\x3f\xbe\x58\xd0\xbe\xb5\xdf\x1e\xba\x1a\xa2\x54\xb9\xe0\x0c\x98\x97\x43\x39\xd3\xb0\xbe\xc7\x68\x8e\x2b\x00\x56\x37\x67\x93\x61\x29\x18\x36\x68\x17\x33\x6e\x52\xf2\x40\x54\xc7\x39\xb9\x0c\x05\x40\x98\xb5\x23\x56\x7f\xc8\x7f\x9b\x80\x6c\xe4\x46\x63\x8c\x07\x86\xaf\x5e\x9a\x1d\x45\xae\x5e\x86\xd7\xcd\x1f\xb8\x82\x19\x6f\xcb\xb8\x82\x19\xa2\x56\xfc\x6a\xa5\x59\xb7\xc3\xdd\xca\xa4\xb1\x46\xdd\x94\xc9\x44\x4f\xa8\x10\x75\x59\x1a\x15\x03\x97\xa5\xf2\xe0\x48\xca\x68\x75\xbe\x1c\xb9\x85\x16\xf3\x5d\x1e\xdb\xaf\x36\x08\x63\x08\x87\xfc\x98\xb9\x7c\x4f\x4f\x57\x77\xc5\xe9\x77\xf1\xda\x62\xad\x92\x05\x13\x6c\x70\xba\xf5\xe0\x90\x83\x62\x05\x00\x0f\x59\xf1\x0a\x52\xfd\x45\x73\x6b\xb0\xbd\x7f\x53\x3e\xf3\xe9\x8d\x5c\xa1\x57\xf1\xa7\x54\x42\x27\x5e\x91\x0c\xbd\x74\x96\x01\x0a\x02\xda\x37\x24\x54\x05\xd6\xed\x73\xfa\xd3\xf8\x17\xdd\xbc\x74\x53\xa2\x96\x91\x42\xd6\x7c\xbe\xd3\x5a\xad\x2b\x40\x2c\x16\x82\x0e\xef\x60\xaa\x7e\x25\x65\x2c\x09\x49\xe0\x43\x6e\xb0\xa5\x80\x2d\xcd\xbe\x32\xae\x55\x4d\x7a\x93\xc3\xfe\xc4\x63\x5d\x01\xe3\x8d\x1e\xdf\xf6\xa7\xaf\x78\xc3\xf7\x03\x1f\x8c\x77\x65\x32\x02\xc1\xd7\xe4\x34\x84\xa2\x17\xec\x72\xfd\x24\x85\x7c\xa3\x98\x64\x4e\xb4\xc1\x97\xa2\x25\x1c\x59\xc7\x3e\x77\x75\x88\x81\x56\xc5\x1c\x63\x4e\x7f\x4b\x4c\x0b\xae\x58\x79\xba\x46\x01\xe5\x2a\x99\x9e\x6a\xaa\x35\x35\xd6\x5c\x7d\x1d\x7c\x2d\x57\x6c\x55\xb3\x7d\x6b\x86\x2b\x47\x6b\x02\xf1\x70\x16\x9a\x6b\x6b\x74\xe5\x53\x7d\x0e\x05\x60\xa8\x8f\x19\xb4\x08\x30\xe5\x39\x66\x15\x32\x90\x6d\xbc\x9a\xc0\xec\x3c\x2f\x9f\x98\xb4\x3f\x9d\x0b\x08\x18\x09\xa6\xc6\x9c\x3b\x98\x7a\x4e\x82\xd8\x35\x2a\xb4\xce\x38\x75\xa3\xbf\x37\xa3\x56\x9a\x2a\x06\x31\x2d\x6f\x41\x84\x22\x55\x82\x62\xd2\xfc\xcc\xf4\x3f\xe1\xba\x2a\x5d\x3e\xc7\x2e\xd7\xe7\xcd\xf8\x7c\xcc\xff\x48\xbc\x02\xb7\x97\x04\x85\x44\xe6\x47\xe5\xd0\xe6\x29\x10\xfe\xa7\x60\x94\x6a\xd8\x0f\xda\x77\xba\xa8\xf8\x53\x58\x8e\x7c\x9d\xa9\x9c\xcd\x39\xfd\x25\x36\x60\x89\xb4\x2a\xce\x4c\x35\xd3\x5f\x21\x27\x3a\x7d\x8d\x12\x9f\xa2\xf0\xf0\x20\x72\xae\x8e\xb6\xcb\xad\x19\xd8\x8c\x71\x04\xcc\x98\x5d\x54\x01\x29\xfb\x56\xb4\x1b\x54\x74\x29\x37\x35\xbd\xda\x00\x5c\xae\x75\x30\x26\x0f\xc8\x44\x17\x0e\x6f\xab\xf6\xe0\x82\xbe\xaa\xd2\x71\x25\x19\x95\xd4\xb5\x33\x65\x55\x78\x97\xc7\xc1\xde\x0f\xb2\xa1\xed\xef\xb5\x36\xb6\x49\x93\x91\x15\xe4\x8f\xcf\x61\x96\xb0\xd9\x15\xbc\xd7\x7b\x65\xdb\xbb\x73\xc1\xc8\x5d\xa7\x3b\x40\x9f\x17\xa8\x63\x1d\x16\x32\x66\xb4\xe6\x7d\x80\x51\x4e\xb0\x48\x23\xbb\x81\xcc\x3f\xbd\x93\x88\xba\xb2\x7c\x25\xf7\x4d\x74\xa1\xa5\x25\xe6\x43\x12\x4b\x99\x22\xc5\x94\x3f\x12\x90\x4c\xc9\xc5\x35\x5e\x2a\x01\x92\x53\xe9\xfd\xc9\x48\x0b\xa8\xb2\x51\x1b\x29\x01\xcd\xd2\xc8\xdd\x47\x06\x6b\x5f\x38\x94\x44\xb2\x83\x13\xcd\xed\xdb\xcd\x95\x0d\x74\xc8\x6f\x5d\xf5\x2f\x4e\xf3\xc5\x47\x7e\xd6\x84\x72\x4b\x4a\x12\x30\x4e\x47\xa1\xf4\x49\x95\x4d\x4c\xd2\x15\x1b\x59\x87\x58\xb0\xb0\x37\x06\x98\x9c\x99\xfb\x95\x93\xe5\xb0\xc2\x1c\xbc\xc7\xa4\x92\x26\xd1\xa5\x17\x56\x01\xe9\x91\x23\xd8\xfe\xa2\xf2\xe1\xe5\xfc\xb2\xed\x94\x71\xab\x18\x7e\x2a\x4a\x3f\x87\xef\xc4\xb8\x4e\xd1\xa6\x88\xeb\xf3\x83\x78\xc0\xb0\x3f\x8f\x87\x94\x14\x2a\xc7\x99\x10\x5d\x45\x1c\x4a\x4f\x88\x49\x8c\xfa\x29\x7b\x32\xba\xc3\xf0\xcd\xa4\x29\xd5\x1e\x17\x44\xd2\x69\x4d\x24\x5c\xd0\xc1\x56\xc3\xef\x54\x49\xd3\x48\x29\x56\x02\x19\x51\x39\x7b\x4e\x4e\x91\x28\xdf\x59\xca\xd0\xf7\x18\xbc\xf1\x3a\x8a\x99\xed\x05\xaf\x9c\xf1\xf5\xbb\xa3\x11\x49\xb7\x32\xfb\x0a\xba\xf4\x86\x57\xdb\x8f\x84\x3c\x41\x22\x48\xec\x20\xb8\x60\x35\xe8\x4d\xdf\x6f\xad\xed\x70\x57\x98\xf2\x08\x46\xc8\x9d\x83\xd0\x1f\x5a\x6c\xec\x0f\xb6\xf7\x0e\xd4\x45\x40\xaa\x8f\x3e\xff\xbc\xeb\x6a\x15\x43\xdf\xaa\xa4\x9b\x6f\x54\x75\x6c\x90\x9f\x97\x41\x5e\xc7\x47\x55\x1b\x63\xcd\x67\x8b\x64\x05\x26\xe7\x0b\x33\x96\xeb\xbf\x39\x65\x98\xd1\xc6\x1b\xee\x21\x06\xef\x6a\x51\x9d\x3f\x7b\x86\x1a\xe4\xc9\x92\x3e\x87\x57\xc3\x7a\x77\xf2\xdb\x70\xba\xb8\x43\xda\xac\x37\x1c\x66\x76\xc0\x55\x0e\x33\x61\xa9\x99\x18\x71\xd2\xcd\x50\x5e\xac\x0e\x35\xcc\x05\xca\xd5\xfe\x5d\x52\x64\xe9\xb4\x80\x49\x29\xb2\x3a\x8c\x34\xc8\x03\x61\x0c\xf5\x4d\x86\x5e\xca\x4c\x13\x18\x37\x03\x93\xae\xd5\x77\x82\x7d\xf3\xfd\x7a\x3d\x2a\x0a\x34\xf8\xb3\xf7\xeb\x3b\x1c\x3d\x24\x5e\xb4\xef\x84\x23\xb2\x14\xd1\x13\x78\xca\x42\xb7\xed\x93\xa0\xd5\xad\x54\x81\xff\x37\x5e\xb9\x4f\x72\xdc\xe3\x2d\x53\x4a\x56\x2d\x87\x02\x8b\x17\x0d\x33\x9b\x17\x86\xbc\xaa\x55\xdf\x0e\xd2\x44\xee\x4e\x20\xa0\xa2\x96\x44\x4d\x10\x53\xd5\xd4\x52\x09\x8c\x98\x27\xb3\x58\xce\xaa\xa4\x85\xc2\x9d\xc3\x85\xfa\x52\x30\xac\x99\xf3\x7b\x7c\x5b\xde\x80\xe1\xf3\xb7\x14\x7f\x8f\xb5\xc0\xa5\xe1\x26\xb8\xb3\x00\x88\xcf\xab\x8c\xd0\x6e\x55\x20\xe7\x28\xfe\xc2\x26\xb0\xde\x68\xd3\x30\xd1\x59\x1b\x2f\x67\x2f\xee\xb4\xae\x4d\xb7\xf6\x1e\x35\xf6\x0f\x83\x52\x76\xf5\xa7\xcc\x7c\xaa\x41\x21\x68\x0a\xe7\xf0\x51\x27\x4c\xc5\xa9\x1f\x6b\x90\x32\x91\x74\xda\x0d\x47\x3a\x18\x66\xbc\x24\x91\x47\x31\xad\x58\x01\x55\xe0\xe0\x25\x17\xda\xdb\xc4\x82\x23\xcd\x60\x82\x7f\xce\xf7\xc1\xf5\x29\xf7\x25\x0a\xca\x2e\xcc\x2e\x29\xa9\x25\x95\x48\xe3\x02\x13\xb9\x70\x09\xea\x33\x92\x9b\x25\xd5\xda\x1c\xc4\x33\x14\x92\x00\x09\xe5\x5a\x5f\x36\xa4\x0e\xae\x1a\x3a\x10\x94\x0b\x96\x57\x26\xe5\x7a\x30\x70\xca\x9d\xc7\x41\x4e\x51\x23\x41\x0a\x35\x4b\x7a\xad\xea\xd7\xdb\x7a\x84\xc9\x30\x43\xfd\x9a\x00\x7f\xa0\xe3\xbf\x0e\x0e\xc9\x95\xe5\x2b\x72\x61\xf6\x4d\x18\xf0\xab\x25\x82\x81\x64\x86\x0c\x61\x60\x02\xfc\x19\x0c\x30\x9f\x37\xbb\x8b\x01\x15\x7e\x9a\x88\x9e\x96\x32\x95\x1f\xbc\x04\x40\x8d\x24\x61\xa6\xae\x27\x07\xf2\x39\x74\x4f\x99\x81\x82\x10\x1d\x02\x51\x62\x86\x0b\x39\x94\x21\x26\xf9\x83\xd4\xc0\x32\x80\xa9\xe3\xb7\xb5\xc5\x5a\x81\xe9\x5d\x20\xf6\x09\x4c\x69\x4a\x49\xd2\x97\xa6\x85\x17\x09\x78\x09\xf3\x07\x46\x4d\xeb\x6d\x3c\x32\xd9\x44\x5c\xd6\x21\x28\x28\x61\x80\x2a\xc7\x0b\x29\x72\x66\x02\x96\xd0\xda\x46\xc7\x0e\xa9\x40\x6a\xcf\xf3\x6c\x24\xf4\x6c\xb4\xa7\xae\x21\x31\x89\x42\xdc\x3a\x0e\x6b\xa6\xb1\x49\xcc\xef\x42\xc2\x54\x4f\xa4\x29\x85\x8e\x67\xe0\x26\x92\x98\x93\x03\x35\xfe\x0b\xde\xbd\x1d\xef\xd2\x3e\x1e\xa2\x46\x33\xf6\x46\x93\x10\xc5\x10\xd5\xbe\x2d\xf2\x23\x87\x06\x17\x48\x6a\x63\xc7\xc7\x94\x46\xbd\x16\x39\xff\x11\xe0\x10\xde\x5f\x7a\x0d\x30\x13\x31\x2d\x7d\x59\x37\x91\x21\x81\x36\xcc\xe9\xa9\x23\x9c\x03\xdf\xd8\x98\x5e\x87\x56\x8c\x9c\x83\x26\x4b\xf8\xf7\xc3\xcc\x74\xe2\x30\x0b\x0a\x65\x85\xe9\xc0\x31\xde\xd0\x3f\x6a\xe8\x9b\x8b\x66\xb7\xbc\x29\xfe\x10\x41\x18\xc3\x38\x27\xe1\x47\x3e\x35\x33\xa1\xd4\xcb\xe4\x9c\x56\x67\xfa\x06\x96\x61\xfb\x87\x27\x5a\x4c\xa0\xc8\xae\x30\x1e\x87\x35\x77\x46\x18\x5a\xc2\x1a\x28\x10\x8d\x05\x5f\xbc\xb5\x12\x98\x6f\x68\x10\xa3\xbb\x41\xe5\xd2\xf6\xae\x5f\x6b\xad\x3d\x90\x76\x0d\x6e\xc7\xb5\x8d\x04\xe8\x2a\xc3\xb3\x91\x49\x45\x3d\x86\x41\x04\xff\xa9\xf3\xe3\xd3\x78\x6c\xa6\xde\xda\x55\xf9\x08\xcc\x58\x2f\xa5\x98\xaa\xb2\x84\x4c\xcb\xaa\x08\xef\xe2\xe3\x35\x54\xa5\xe8\x1b\xf9\xa9\x15\x08\xbf\x8d\x15\x7a\x14\x4b\x15\x49\xa4\x4f\x8a\xdf\xda\xf2\xa7\x67\x9a\xf7\xf6\x54\x59\xd1\x29\x61\x97\xc1\xeb\x94\x30\x06\x35\x00\xf4\xe0\x98\x77\x28\xa3\x97\x27\x8d\xa1\x93\x4f\x13\x68\x0c\x7a\x95\xb4\x44\x0e\x4f\xed\x1f\xd5\x70\x3a\xe2\xcb\x0d\xf8\xbd\x4e\xee\x14\xb4\x36\x00\xd3\x55\x24\x3f\x6a\x4d\xe1\x8d\x2f\x67\x3e\x98\x6f\x4e\x0c\xfa\xc3\x13\x89\x3d\xa7\x31\xc0\x81\x73\xba\x07\x4f\xc1\x12\x1a\xa0\xa6\x60\x12\xcd\x1c\x26\xd1\xc4\xe7\x4c\xd4\xfb\x62\x93\xc1\x57\xf4\x55\xd0\x6c\x44\xbf\x72\x86\xbf\xd8\x57\x59\x09\x49\x5f\x39\xf1\x47\xb4\xac\xf5\x6c\x3c\xf4\xc9\x7f\x7c\x1b\x73\xc4\x9f\xdf\x0b\x7f\xbd\x73\x83\x37\x20\x9f\x16\xc5\x3a\xa0\x70\xe0\x58\x3b\x74\xcd\x2e\x36\x9c\x70\xba\xbd\x70\x19\xbf\xb7\x96\x88\x28\xa7\xb6\x89\xd5\x30\xdc\xa7\xb1\x32\x7e\x41\x90\x1e\x67\x0c\x15\x18\xfa\x7b\xac\x17\x15\x93\x1c\x2d\x60\xef\x54\x0c\x9c\x1a\x69\xec\xef\x7b\x13\x0b\x31\xa2\xd0\xe6\x8d\xb5\xc3\x69\xa2\x13\x6b\xb4\x17\x2e\x2a\x8f\x51\xc2\xca\x14\xa7\x2d\x8b\x3b\xf5\x00\x72\x02\x18\x3f\xbb\x86\xf7\x16\x80\x90\xc9\x20\x95\x5a\x49\xde\xb9\x33\xcb\x31\xe6\xbf\x94\x96\x64\x85\x0e\x25\x30\x02\x79\x8c\x1a\xde\xf2\x3a\x67\x28\x34\xe7\xee\xf8\x9a\x81\xe8\xe4\x10\xb5\x70\x0b\x72\xe8\xcf\xc2\xde\xc8\xba\xa9\x1b\x14\x21\x9c\x2f\xd1\x91\x6e\x26\xb0\x1e\xd5\x81\x8b\x6e\x96\x0f\x81\x75\xc2\xb6\x3f\xd0\x42\x1c\x35\xdd\x06\x0c\xeb\xcd\x48\x91\xcf\x0e\x73\x97\xe4\xcf\xd9\x61\x74\x44\xbc\x6c\x5c\xf7\xd7\x67\xdf\x54\x31\x82\x85\x59\xf5\x18\x14\xf0\x1d\xc7\xde\xac\x7a\x8f\x4e\x3d\x6b\xcc\x1a\x81\x77\xf3\x82\xb7\x7c\x84\x31\x71\xb3\x2f\x3a\xd5\x49\xec\x15\xe5\x8b\x51\x37\xc8\xf1\x47\x79\x7a\x23\x18\x54\x6c\x77\xa0\x94\x4d\xd3\x33\x84\x6e\x1f\x1d\x7e\xca\xb3\x57\x9c\x8a\xf6\xad\x2e\xf8\xfc\x2e\x27\x69\xc9\xff\x66\xd3\x19\x21\x3a\xba\xe4\xd9\xd6\x7a\x6b\xe3\x81\x77\x19\x76\xc5\xa2\xbc\xfe\xa8\xde\x5f\xe6\xb3\xb3\xc6\xab\x15\x49\xf1\x2e\x16\xfb\xd8\xf1\x7d\x47\xc7\x43\x4c\xd1\xc4\x27\x91\x8a\x46\x3b\xc6\xf1\x7b\x78\x20\x11\x02\x59\x3f\x10\xa0\xd5\xae\x5f\x22\xae\x51\x67\xf7\xaf\x76\x22\xe1\x75\x55\x9d\xb7\x9b\xa4\x9c\x1a\x71\xa7\x11\x98\x3d\x07\xa7\x89\x8a\xf6\x7f\x02\x95\xa8\xc4\xe3\x27\x7b\x6b\x65\x8c\xaf\x4d\x49\xe2\x2d\xda\xeb\xfe\xc2\xf9\xf6\xfc\xd5\xd0\xbe\xad\x55\xf0\xe0\x31\xdd\xeb\x54\x9c\x1a\x58\x0f\xb6\x9c\x35\xc2\xac\xc8\x07\x92\x59\xed\xd1\xe9\xa4\x5a\x60\x1f\x80\x16\x94\xae\x51\xde\x1d\xb1\x24\x86\x1f\xc2\x1a\x96\x9c\xad\xe1\x5a\x55\xa7\x9a\x29\xa8\x3a\xe8\xcd\xcc\xb2\xd3\x9b\x5d\x69\x38\xe3\x23\x48\x38\x0e\x0f\xc3\xbb\xd5\x41\x55\xa9\xe4\x74\x57\x33\x80\x52\x2e\xa5\x7a\x99\x8d\xf7\x52\x76\x28\x55\x5c\xba\x00\x64\xad\x95\xd3\x48\x03\x52\xdf\xdb\xa3\x37\x38\x91\x10\x1e\x4b\xce\xed\x26\xb4\xae\x50\x92\x3a\xdc\x07\x23\xd5\xb1\x0e\xde\x66\x0f\xc1\xb7\x47\x27\xf0\x09\xf3\x18\xbc\x22\x59\x9f\x9d\x29\x87\x08\x66\x7d\x01\x5f\xac\x63\xc8\x46\x35\xa2\x04\x08\x55\x4a\xa0\x82\x59\x29\x9f\x03\xbb\xcc\xa8\xd0\x5c\xdb\x6b\xcf\x5f\x39\xae\x02\x85\x14\xa4\xcc\xa7\xc8\x71\xd5\x19\x4d\x74\xaa\x29\x07\x3f\x39\x0c\xb7\x65\x4a\xbc\xa9\xa2\xd3\xfd\xcf\x76\xb6\xea\x0a\x7e\xdb\x53\xad\x9d\xdb\xf1\xf5\xd6\xed\x38\x55\x7c\xf2\xb8\x8c\x8a\x17\xc5\x7d\x51\xa2\x27\x0a\x36\xb4\xce\xe0\x27\x2b\x91\x74\x0c\x1d\xa5\x9d\xb9\xd4\xa4\x76\xc2\x8a\xc3\x04\x7a\xd0\x5d\xa5\x96\xad\xd6\x60\xd3\x4a\x9f\x5f\x9f\xc1\xb4\x7b\x78\x95\xfa\xe1\xc4\x31\x73\x16\xab\x9d\xdc\x79\xbc\xb5\x50\x23\xd9\x4c\xb6\xcf\x4e\xc0\xe1\x53\xfc\xfe\x07\x90\x88\xd5\xef\x80\x45\xbc\xbd\xd0\x86\xa2\x17\x2c\xd0\x6d\xdd\x5d\xcb\x9e\xb5\xab\x78\xcb\xa6\x2f\x4d\x87\xdd\xc9\x0d\x7a\x63\xf3\xfe\x4d\x30\xce\xea\xde\xee\x64\xeb\xf6\x6a\xbc\x45\x90\x45\x45\xbb\x9a\xa1\x10\x86\xe4\x16\x48\x18\x81\x24\x6a\x2f\x8d\x78\xc3\x17\x44\x69\x8e\xb5\xe3\xe0\xc5\xd7\xb4\xa8\xe4\xb2\x7b\x51\xb9\x31\xd8\x04\xda\x7c\x66\xcb\xac\xb1\xc7\x9b\x42\x0b\x82\x65\x64\x76\x20\x8b\x2f\x9c\xef\x4e\x60\x70\x42\x08\x0f\x62\x07\x24\x20\x23\x84\xa6\x14\xda\x50\x99\xf8\x6d\xeb\xe5\x8d\xf6\xd2\x1d\xce\xa5\x6d\xd6\x8f\xf3\x5e\xe6\x87\xaa\x5e\xa8\x2f\x83\x5b\x37\x77\x0f\x13\xf9\x28\xd4\x2b\xe3\xed\xdf\x50\x45\x7f\xf1\x91\x37\xb4\xdc\xa9\xa2\xc2\x93\xeb\x25\xa0\x68\xd4\x8e\xcc\x97\xb0\xb8\x38\x8e\xc2\xe8\xc4\xa8\xe4\xc8\x7b\xc9\x5c\x0d\x6b\xdb\x2e\x84\xcc\xcc\x90\x01\xda\x15\x7f\x01\x57\x4e\x15\xd5\xd3\x31\x0c\x15\x79\x8b\x91\xbf\x2a\x9d\x8e\xde\xed\x51\x61\x80\x52\x14\x4d\x4e\xc2\x9f\x45\x63\xe2\x30\x20\x44\x99\x3f\x4b\xb8\xa2\x42\x40\xc6\xce\x65\xa1\xd0\x0d\x69\x9c\x34\x5b\x0e\xe3\x61\x33\x17\xac\x0b\x55\x48\xf9\x2b\x53\x9c\xb1\x32\x54\xa1\xe0\xf4\xaa\x77\xc1\xc5\x36\xe6\x44\x24\xc1\x78\x3a\xbc\x16\xa3\x9f\x1a\xee\xf0\x54\x4c\x80\x67\x70\xb8\xc2\xe7\xf1\x46\x2d\x05\x96\x77\xd3\x01\xd9\x82\x47\x8c\xe9\xa1\xdd\x30\x09\x11\x92\xa8\x18\x40\xf1\x39\x67\xd8\x4f\xa9\xc7\x88\x27\x93\xf4\xc2\x38\x45\x22\x06\x69\x8f\xa9\x12\x53\xd6\xb8\x36\xa9\x7d\x44\xc9\x83\x57\xc7\x80\x09\x23\x48\x3c\xeb\xd2\x38\x2a\xa8\xf8\xc3\x5d\xff\x7f\x5f\x27\x33\xb1\x50\x6f\x94\x99\x48\xfc\xf1\x07\xca\x80\xad\x03\x0b\xeb\xfc\x4c\x19\x3f\xc3\xd4\x45\xd7\x5c\x42\x7b\xce\x70\xdf\xa8\x3d\x47\x90\xb1\xa3\x53\xf9\xce\xf1\x02\xe2\x58\xc3\xcd\x41\x5f\x95\xcf\x59\x9e\xc0\xe3\x7d\x4e\xfb\x88\x76\x53\xb8\x4f\xd3\x2f\xd4\x9c\x9b\x84\x6e\x15\x6c\x2c\x2b\x10\x7f\xee\x90\xbc\x3a\x7a\x8a\x45\x3e\x33\x2e\xa0\xf4\xa5\xb6\x7a\xbd\x8b\xf0\xe1\x02\x4c\x5a\xea\x4a\xd6\x52\xe3\x73\x28\xf1\xa6\xa0\x8f\xfb\x51\x76\x65\x08\xfd\xb8\xe7\x4a\x11\x8e\x6b\x50\xe6\x02\xe3\x36\x93\xb1\xf9\x05\x20\xfe\xd0\x2a\x17\x50\x20\x2d\x17\xa8\x40\x5a\x2e\xe0\x67\x8e\x88\x83\x81\x2a\x43\x4f\x64\x70\x41\x62\x38\x88\x70\x26\x03\x7f\x8e\x9e\xe7\xd4\xc2\xa1\x86\xa9\x94\x7d\x05\x54\x1a\xc6\x27\x12\x44\xcb\x1f\xfb\x1c\x17\x3d\x68\xfb\xfe\xda\x8a\x7e\x41\x86\x0a\xca\x98\x39\x8e\x0b\x9a\x8f\xb6\xbc\xe9\xbb\xaa\x80\x2c\xfd\x1c\x30\x5a\xb2\xea\x3f\xfb\x26\xf4\x3d\x78\x38\x88\x4a\xd5\xeb\x40\x32\x3c\x94\x11\x94\xf4\x06\xc3\xf6\xad\x33\x94\x06\xd4\xfa\x84\x12\xe0\xc8\x00\xaa\xd5\x4a\xbe\xbb\x86\x67\x76\xb4\x48\x30\x26\x67\x06\x1f\x5f\x1f\x7c\x18\x07\x71\x6b\x7c\x07\xc0\x7b\x78\xd5\xdf\x9e\xee\x04\xc5\x4f\xf5\xaa\x87\x6c\xf0\x39\x99\x10\x20\xe7\xd4\x91\x68\x33\x7c\xea\x92\x32\x01\x7a\x0b\x7a\x4e\xd8\x89\x2d\x60\xbc\x40\x92\xc0\x8a\xc8\x39\xd3\x6e\x26\xf5\xb5\x6b\x7d\x9c\xb3\xce\x7c\xac\x0a\xdc\x62\xb5\xcc\x29\xa1\xcf\x7c\xfd\xfd\xb7\x56\xd2\xb4\x21\x08\xcd\x03\x41\x24\x4d\x06\x42\xd0\x84\x18\x10\xe1\x59\x91\xa7\xb3\xaa\x05\x5c\xf6\xb8\xa6\xac\xef\xbf\x3a\x63\xf1\x9b\x37\xba\x95\xb3\xf9\x32\x42\xc8\xa3\x93\xa9\x33\xf0\x9b\xc0\xfe\x17\xfd\xd6\x33\x8f\xc7\x1f\x60\x4a\xe6\xb3\x32\x0d\xdf\x7e\xfc\xb5\x25\xd6\x64\x68\x41\x49\x9f\x94\x52\x44\x3d\xf4\x9e\x92\x2b\x6e\x34\x4c\x66\xcf\x68\x1d\x4f\xcc\xa9\x9c\x5f\xb2\x37\xf2\x65\x40\x94\x52\x2c\xb0\xf7\x57\xb7\x89\xa2\x57\xd2\x4f\x19\x3b\x53\x9d\x66\xc9\x9c\x98\xd2\xcc\x04\x93\x00\xb3\x84\x4d\x15\xb8\x0b\x62\xad\xc6\x84\xab\x59\x4f\x84\x52\xe8\xfd\x45\x11\x4d\xb2\xab\xcc\x20\x8d\x08\x3a\x61\x98\x34\x6f\x5e\x8e\xfe\x36\x91\x0e\x9d\x99\xc5\x6b\xa8\x53\x93\x50\x1d\x8a\x72\x38\x26\xb8\x21\x78\x49\x80\xdd\xf0\xca\x39\xa0\x9c\xf2\x2a\x2b\x37\x7b\x2c\x34\x54\xa6\x5c\x16\x06\xc2\x71\x0d\x32\xdf\x46\xe9\x39\x5b\xbb\xe6\x25\x7c\xd0\x28\xa4\xab\x3f\x54\xc8\x57\x6e\xa4\x48\x38\x8f\xb4\x29\xfc\x47\xca\x9c\x9e\x1e\x4c\x37\x83\x99\xc7\xe8\xc0\xbd\xf9\x72\xd1\x5f\xbd\x4d\x57\x82\x54\xed\xbc\x4b\xeb\x0c\xfd\x12\x64\xdf\xf7\x4a\x02\x96\xd6\x4b\xbc\xed\xe6\x5f\xbb\xef\xbd\xbe\xa6\xa1\x2b\x35\x79\x35\x93\x45\xb5\xd2\x10\x8c\x52\xea\x49\xb4\xd8\x70\x4f\x24\xdc\x2a\x60\x73\x72\x2e\x72\xd1\x19\x6f\xbd\xe2\xf4\xd0\x01\x29\xd1\xbf\x9f\x4d\x73\x8a\x65\x0d\xdd\xbe\xb1\xec\x0f\x4b\x70\x72\xbc\x0e\x60\x1d\xad\xc0\x88\x77\xaa\xe0\x66\x2b\xf9\xb2\xdc\x94\x6a\x0d\x3f\x05\x4a\x2b\xa6\xa1\x91\xc5\x8c\x4f\xb2\x46\x78\xc4\xd3\x53\xde\xcc\x65\x0c\xfa\x05\x1e\x25\x0b\x50\xd1\xb0\x5b\xcf\xbc\x3a\x88\x88\xcc\x3c\x40\x18\xb7\xb2\xb0\x3c\xdc\x1d\x94\x27\xc8\x8a\xa0\x90\x57\x8d\xaa\x1c\x59\x38\x50\x4e\x18\x06\xa7\x20\xe1\x69\x81\x72\xd7\x2d\xf0\xcc\x9c\x39\xf3\x95\x15\x5d\x01\x41\xb1\xf1\x0e\x84\x77\x61\x18\x74\x49\xeb\x14\x66\x2b\xec\x05\x2b\xf7\x94\xa5\x6e\x3d\x84\xc6\xcd\xb4\x56\x1d\x73\x12\xf9\x68\x79\x42\xab\xee\x2f\x85\x7c\xd5\xfe\x20\xa9\x51\xc5\x1c\x43\x7b\x29\x42\x4e\xc5\x0f\xc3\xaf\xad\xa5\x98\x0b\x9a\xef\xaa\x71\x4c\x54\x7c\xb1\x2b\x7e\x2a\x4b\x9d\xea\xf1\x25\xce\x00\x0f\x0c\xef\x67\x40\xf1\xee\x83\xc4\xab\x3a\x25\x89\xf3\xe7\x3a\xfe\xe4\x58\xbb\x3e\x67\xe0\xc5\x39\x16\x55\xce\x45\x0a\x88\xf6\x0e\x5e\x7a\x60\xaa\x91\x6d\xc2\x77\x14\x34\x3c\x61\x8f\xc7\x75\x20\x2f\x18\x61\xf3\xbd\x3b\x0d\xa6\x5e\x6e\x24\xc7\x83\x7a\x6c\x91\xd2\x27\x35\x5f\xae\xa1\x77\x4c\x3d\xc9\x28\xbc\x82\xaf\x6b\x61\x9c\x7a\xba\x40\xce\x74\xb6\x43\xe4\x14\x88\x02\xe9\xe4\x8d\x62\x4e\xdb\x2d\xb8\xbb\x76\x35\x78\x35\xd0\xa8\xdd\x1e\x45\xe2\xb3\xb6\xd1\xa9\xb6\xba\xad\x29\xb3\x16\x1c\x04\x45\x66\xee\x97\x9a\x5d\x83\x76\xed\x52\x2f\x6e\x6a\x3c\xf5\xbf\xc6\x8f\xbe\x07\x73\xc4\xd7\xa9\xc8\x36\x06\x9e\x24\x97\x1d\x5b\x2f\x86\x41\x57\x0b\x26\x27\x22\x6c\xbd\xd7\x87\xcd\xb9\xfb\x24\x6e\xd5\x7b\x10\x06\x89\x03\xce\x2c\x44\x0e\xe3\x24\x20\x5a\x71\x24\x01\xc7\xeb\x2e\x0a\xa3\x16\x10\xac\x68\x27\xd5\x04\x71\x00\xbc\xf8\x8b\x7f\xf8\xea\x2f\x96\x7e\xa7\x33\x04\xce\x86\x01\x5f\x3f\x1d\x1c\x8e\x6c\x5b\x81\xa1\x7d\xcf\x78\x25\xee\x7e\x01\xa3\x1d\x1e\x34\x25\x47\x45\x8a\xcd\x13\x9b\x92\x31\x9a\x87\x49\x91\x91\x32\xdc\xb1\x03\xe5\x45\x26\x4d\xb1\x0b\x2b\xd2\x88\x2c\xc3\x5c\xa6\x8c\x3b\x48\x40\x86\xd0\x3b\x4f\x1a\x5b\x08\x4a\xbf\x2f\xc2\x60\xfc\xb2\x48\xbc\xaf\x92\x6a\x86\x5e\x44\xe2\xe7\xdd\x1b\xbb\x4f\x0c\x9e\xc0\x21\x0e\x82\xd6\x19\xfe\x19\x45\x4c\x41\x81\xc5\x7b\x2e\x9f\xa3\x77\x57\x18\x8e\xef\x69\x4b\x5a\x7b\x02\x55\x20\x9a\xcb\x28\x88\xe8\x58\x61\x4d\xe7\x45\x51\xfb\x94\xfe\xb6\x22\xb3\x28\x7b\x13\xf7\x0e\x03\x0b\x59\x59\xfb\xb1\xb8\x92\x86\xee\xcd\x6a\x92\x24\xf8\xa7\xc2\xd4\x51\xc3\x29\xe4\x7b\xd8\x19\xae\xc7\x83\x2f\x6a\x5c\x3e\x8c\x80\xf7\x55\xab\x65\x57\x6e\xc4\x32\x97\xa5\x37\x43\xa2\x43\x09\x5a\x93\xf1\x24\x36\x56\xce\x93\x6f\x53\x91\x87\x1f\x5b\x8d\xd0\x46\xc1\x08\xc3\x16\xa0\xc8\x72\x52\x1b\x46\x3d\x61\xad\x36\x8d\x7e\x54\x36\xc2\xbb\x50\x92\xab\x39\xb9\x76\xbf\xb5\x3e\x19\xe9\x14\xcb\x49\x90\x71\xa9\x12\x65\x3a\xb0\xa1\x2b\x5b\xc1\x84\x8d\xf0\x3f\x8b\xcf\x82\x83\x12\x79\x05\x6d\xdf\xd0\xb4\x55\x91\x0b\x8b\x2f\x57\x2b\xe8\xe2\xcd\x31\xff\xd2\x15\xa3\xa6\x04\x42\xa0\x63\x2f\x74\xe2\xa3\x00\xcc\x0c\xd4\x1d\x81\xec\x5f\xed\x6c\x2d\x38\x07\x09\x39\xfa\x82\x86\x1c\x3e\xaf\xa2\xd2\xc6\xee\x46\x7b\xf0\x49\x73\x75\x22\x00\x90\xeb\x2e\xf8\x51\xe7\xa2\x53\x83\x00\x72\x56\x49\x2e\x3c\x9c\x38\xae\x6f\xb2\x8c\x43\x18\xea\x90\x11\x15\x88\xc1\x3f\x61\xad\xe0\x7b\xe5\x09\x51\x24\x0a\x9c\x75\x1a\x2a\x52\x0a\x8d\x59\x94\x7e\x2f\xa5\xc2\x73\xd4\xe7\x50\x16\x3d\xf5\xd1\x29\xa7\x14\xff\x0c\xe0\x48\x45\xd7\x21\xdd\x06\x12\x09\x59\xcd\x7e\x44\x91\xe7\x60\x70\x4e\xfc\x39\xa4\xc6\xde\x08\x23\x11\xbe\xed\x74\x5a\x92\x8e\x57\xec\x92\x4e\x6d\xc5\x7f\xe7\xcc\x54\x36\xa1\x44\xa2\xef\x05\x09\x43\x31\x8d\x68\xe7\x4c\xe6\x3a\x89\x34\x46\x1f\x71\xcc\xd4\xde\x88\xd9\xff\xbb\x6e\x25\xfb\xee\xe9\x50\x3a\x6a\xbe\x12\x46\x8f\x0a\xe2\xbd\x32\xbc\x83\x16\xce\xd0\x1a\xee\x81\xc7\xc9\x19\xb8\x7f\x0e\x46\x4a\x4e\x99\x50\x4f\xec\xae\xe1\xce\x30\xa5\x6b\x90\x8f\x5a\xda\x08\x27\x94\x15\xcf\x6d\x38\xc5\xa7\xd9\x9e\xe4\x89\x4d\x68\x2e\x94\x15\xfc\x67\x8e\x52\xf9\xb3\x38\x25\xa4\xbf\xfc\x59\x52\x94\xfe\x79\x8c\x74\x76\x1f\x5e\x0e\x2a\x35\x9a\x9a\x4f\x3d\x99\x3a\x57\x5a\xf2\x12\xa1\x9b\xf4\xd5\x4c\x6f\x30\x95\x1c\xb4\xf2\xc6\x09\x3d\x7e\x06\x25\x1d\xf1\xfb\x3a\x8d\xac\x24\x9b\x79\x9f\xaf\x78\x52\x7a\x0e\x95\xd4\x83\xd3\x23\xd3\x52\xc7\xcc\xa1\xb0\xd0\x33\xbd\x4e\x0a\xef\x35\x8e\x81\x76\x4b\x8f\x2e\x61\x1c\x36\x5f\x74\xc4\x5d\xd4\x9f\xe2\x67\x9d\x4f\x9e\x78\xcf\x4d\xbd\x67\x35\x1f\x5e\x39\xed\xc2\xdf\x45\xf8\x1b\x4f\x6d\x66\xae\xd3\xcf\x3e\xfc\x49\x8f\x7c\xd1\xcf\x1c\xfe\xbc\xb7\x46\x7f\xf7\xe3\xdf\x97\x57\xb9\x16\xb0\xd4\xf7\x2c\x7f\xb9\x4e\xbf\x06\xb0\xe4\xd5\xb3\xd3\x94\x70\x05\xd8\x72\x8e\x52\x66\x4b\x0f\xc5\x7c\x09\xf8\x0c\x27\xd1\xd6\xfd\xf4\x39\xb5\x0a\x7f\xd2\x7d\xe5\x32\x03\xfc\x85\xbb\xeb\xb7\xed\xb3\xfc\x9b\xbb\x84\x1e\xc1\x50\xa7\xf4\xfa\xdc\x2b\x66\xb7\x64\x00\xee\xb9\x92\xe9\x4f\xab\xde\xa1\x6b\xfe\xa0\x3a\xe7\x9e\x89\x5a\xb9\x8a\x53\xc6\xc4\x80\x3f\x05\xef\xa1\xa9\x17\x6d\xfc\x89\x79\x7f\xe9\x29\x5b\x88\x78\xf7\x84\xef\x22\xd4\xe7\xbd\xf9\x4d\xff\xea\x38\x3f\x3d\x4e\xd7\xc2\x28\x2f\x67\xbe\x54\xae\xa9\xd4\x1a\xe7\x57\x1b\xbb\xe8\xaf\x66\x18\xbc\x1e\xcd\xef\x5c\xa8\x74\xd5\xf2\x98\x0f\xcc\x54\xba\x1b\x05\x19\x77\x71\xef\x21\x0c\x1f\x6c\xa0\x7f\xf9\x17\x4a\x0e\x9c\xff\xcd\xfe\xd7\x7f\xb5\xbe\xfe\x04\x6c\x1f\x50\x6e\xdb\x43\x97\x70\x5d\xe1\xcb\x0b\x0f\xd9\xc9\x63\xc0\x17\x33\xbf\xfe\x63\xa4\x0a\x32\x2e\x0a\x85\x24\xdf\xbe\xdc\x01\xd0\x57\x77\xff\x4f\x00\x00\x00\xff\xff\xf6\x51\x6a\x75\x5e\xa3\x00\x00") +var _confLocaleLocale_zhHkIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x7d\xfb\x73\x13\x57\xba\xe0\xef\x54\xf1\x3f\xf4\x70\x8b\xca\xbd\x55\xc1\xa9\x24\xfb\xaa\xa9\x28\x77\x13\x92\x99\x64\x37\xc9\xb0\x31\xd9\xa9\xad\x54\x4a\x91\xa5\xb6\xad\x8b\xa4\xd6\xa8\x5b\x38\x9e\x5b\xb7\xca\x86\x18\xcb\x2f\x6c\xc0\x36\x18\x0c\x06\xc2\xc3\x06\x0c\x36\x09\x60\xfc\xe2\x7f\xd9\x51\xb7\xa4\x9f\xf2\x2f\xec\xf7\x3a\xa7\x4f\x3f\x64\xc8\xdc\xdd\xad\x4a\x11\xab\xcf\x77\xde\xdf\xf9\xce\xf7\x3e\xb9\x6a\x35\x5b\xb0\xdd\x7c\xc6\x5f\xd9\x0e\x16\x77\xad\x3f\x3a\x56\xfb\xc1\x8d\xf6\xea\x48\xeb\xea\x8f\xed\xf1\x07\xfe\xe4\x9a\xf5\xc7\xa2\x67\x05\xcb\x33\xfe\xd4\xd2\xe1\x43\x87\x0f\x0d\x3a\x65\x3b\xd3\xb9\xb7\xd8\xb9\x39\x7a\xf8\x50\x21\xe7\x0e\xf6\x39\xb9\x5a\x21\x13\x9c\xbf\xef\x37\x9e\x77\xae\xdf\x6e\x4d\x34\x0e\x1f\xb2\x7f\xa8\x96\x9c\x9a\x0d\x5f\x6f\xb7\x7e\xb9\x0d\x95\xec\x52\x35\xe3\xbf\x7c\x08\xcd\x1d\x3e\xe4\x16\x07\x2a\xd9\x62\x25\xd3\x5a\xda\xe9\x4c\xff\x28\xbf\x9d\xba\x97\xe9\x8c\x8c\xf8\xe3\xdb\xf2\xa1\x5e\xcd\xb4\x57\x77\xfc\x73\x93\x87\x0f\xd5\xec\x81\xa2\xeb\xd9\x35\xfd\x61\xc8\xee\x73\x8b\x9e\x9d\xf1\x1f\x5f\x09\x16\x5f\xb6\x9e\x3f\x6d\x3d\x84\xb1\x9d\xb6\x6b\x6e\xd1\x81\x76\x17\x9e\xfb\x13\x33\x30\x8e\x60\xf9\xd1\xe1\x43\xd5\xdc\x00\x8c\xf7\xe6\x28\x0c\xed\xf0\x21\xcf\x2e\x57\x4b\x39\xa8\x19\xac\xde\xa2\x81\x96\x72\x95\x81\x3a\x42\xf0\xa4\x3b\xa3\x5b\x9d\x9b\x63\x87\x0f\xe5\x6b\x36\x40\x65\x2b\xf6\x50\xe6\x38\xfd\xd9\xd3\xd3\x73\xf8\x50\xdd\xb5\x6b\xd9\x6a\xcd\xe9\x2f\x96\xec\x6c\xae\x52\xc8\x96\x71\x8e\xad\xf9\xd5\xa0\xf1\xbc\xf9\xea\x56\x30\xfa\xc4\x9f\x9d\x0c\xae\xfd\xe2\xdf\xb9\xca\x93\xb0\x0b\x30\xcf\x6c\xce\xcd\xf8\x2f\x9e\xf2\x6c\x19\x18\xd7\x11\x1b\xab\xe4\xca\xaa\xbe\x3f\x37\x03\xcb\x56\xce\x15\x4b\x99\xce\xd9\x67\xad\xc7\x9b\x38\x72\xd7\x1d\x72\x60\x6d\xfd\x27\xe7\x5a\xb7\x77\x71\x1d\xb2\xde\x70\x15\x6a\xdc\xde\x6e\x3f\x98\x51\x5f\xf3\xb9\xaa\x97\x1f\xcc\x65\x3a\x6b\x97\xdb\xeb\x13\xf4\x09\x41\xab\x0e\x2c\x91\x53\x1b\xce\xf8\x23\x13\xfe\xf6\xc3\xc3\x87\x9c\xda\x40\xae\x52\xfc\x6b\xce\xa3\x35\x7a\xf6\x63\xeb\xe5\xfc\xe1\x43\xe5\x62\xad\xe6\xd4\x32\x9d\xd9\x5b\xfe\xd9\xd9\xc3\x87\x60\xc2\x59\xac\x9a\xf1\x27\x9e\xf9\x3b\x80\x10\x1b\x80\x06\xaa\x01\x2c\x2c\x17\x07\x6a\xb8\x7e\x9d\xd1\x17\xad\xfb\x3b\xfe\x9d\xc5\xce\xd9\x55\xb3\xbc\xdf\xa9\x9d\xca\x70\xb5\xe0\x97\xfd\xd6\xfc\x8a\x59\x08\x23\x88\x34\xac\x07\x91\xab\xc0\x16\x50\x71\xeb\xf1\xad\xd6\xdc\xb9\xa0\x71\xc1\x28\xce\x15\xca\xb0\x8a\xd5\x5c\xc5\x2e\x49\xb9\x42\xb3\x5c\x3e\xef\xd4\x2b\x5e\xd6\xb5\x3d\xaf\x58\x19\x80\x75\xde\xfa\x19\xd6\xb2\xbd\xba\xde\xda\x7b\x0c\x5b\x90\xfe\x79\xd8\xa9\xeb\x6d\x84\xd5\x99\x6a\x6e\x6f\xf3\xee\x49\x91\xae\xc6\x3b\xa3\xaa\xd1\x1c\xdc\x6c\xbf\x6d\x03\xb6\x2f\x8f\xc0\x14\x82\x5f\x76\xfc\xa9\x05\xd8\xa8\x7a\xa9\x04\xcb\xf6\x97\xba\xed\x7a\xd0\xd9\x5c\xa3\xb9\xf7\xac\xfd\x70\x2a\xd8\x3c\x73\xf8\x50\xd1\x75\xe1\x73\xc6\x5f\x98\xed\xdc\x9a\xe6\xd1\x63\x53\xf9\x5c\x25\x0f\xd3\xf1\x67\x17\x83\xe7\x0d\xfc\xf0\xad\x6b\xe7\x6a\xf9\xc1\xef\x70\xd4\xf8\x47\x26\x98\x5b\xf6\x37\xa6\x08\xef\x52\x36\x13\xb1\x27\xa3\x90\x89\xfa\x00\x1c\xbb\xeb\x2f\xc2\x38\xf3\x4e\x01\x50\x64\x75\xca\xdf\x9d\x15\x64\xf8\xb6\x58\x71\xbd\x5c\xa9\x04\x8d\xcb\x5f\x70\x72\x26\xda\x3f\x5d\xd7\xc7\xa2\xe8\x95\xe8\x50\x07\x8f\x6e\xf9\x2b\x2f\xda\xb7\xa6\xb9\x1c\x5b\xd9\x06\xb4\x28\x38\xf9\x53\x80\xfa\x78\x8a\xa1\xdb\xcf\xfb\x2d\x58\xa7\xb7\x6a\xb6\x55\xab\x57\x2a\xb0\x52\x40\x34\x06\x5c\x0b\x9a\x2e\x16\x6c\xeb\x13\x82\x7d\xdb\xaa\x96\xec\x9c\x0b\x20\x76\xae\x60\x7d\x90\xb3\xbc\x5c\x6d\xc0\xf6\x32\x47\xb2\x7d\x70\xe4\x4e\x1d\xb1\x06\x6b\x76\x7f\xe6\xc8\x51\xf7\xc8\x87\x7f\xac\x43\xb5\x52\xb1\x62\xbb\x1f\xbc\x93\xfb\xd0\xca\xe7\xa0\x04\x16\x74\xd8\xea\xb3\x01\x9b\x6c\xec\xcb\x02\xfc\xae\x0c\xd8\x56\xae\x32\xec\x0d\x62\x87\xc5\x8a\x05\x7f\xb8\x16\x1e\xee\xdf\xe1\x02\xfd\xa5\x0e\xf4\x20\x5b\xe8\x63\x5a\x46\xe3\xa1\x8f\x35\xdb\xb5\xbe\x1c\xee\xfd\x1f\x5f\xbc\x6d\x9d\x70\x5c\x6f\xa0\x66\xd3\xdf\xf0\x0f\xc0\xbf\x6f\x39\x35\xeb\x64\xf1\x93\x8f\x61\x8d\xa1\x2a\xaf\x42\xb0\xb0\x15\x5c\xba\x0a\x8b\xac\xf6\x1d\x4b\xf0\xd4\xe9\x82\xce\xad\x1b\xfe\x8d\x29\xa4\x84\xae\x17\x7e\x6d\x6e\xed\x04\x6b\x2b\xb2\x33\xfa\xab\xda\x22\x7d\x96\x63\x25\xea\x10\x43\x27\x44\x0c\x74\x31\xd0\x83\xd6\xea\x26\x15\xc8\xb2\xfb\xf7\xce\x04\x37\x96\x83\x33\xab\xcd\xbd\x57\x50\x99\xa7\xf5\xeb\xee\x34\x60\x9a\x7c\xf9\xfc\xab\xaf\xfe\xf4\xc9\xc7\x96\xbf\xbb\x10\x5c\x3a\xdf\xdc\xb9\x0b\xd4\xc8\xaa\x7b\xfd\xff\x25\x3b\x60\x57\xec\x5a\xae\x94\xcd\x17\x2d\x7f\xfd\x72\xeb\xd1\xbd\xce\xb5\x73\x7f\x1b\x01\xec\x74\xdd\x12\x10\x31\xc0\x97\xde\xde\x2f\x2c\xa0\x89\x80\x33\x38\x56\x6f\x30\x1c\x48\xb0\x38\xde\xdc\x79\xde\x7e\xf1\xc4\xdf\xbf\x00\x15\xfe\x52\xc2\x85\x96\x21\x9d\x1c\xb4\x2d\x3c\x45\x16\x56\xb1\x9c\xfe\xf8\xba\x5a\x85\x9c\x97\xeb\x03\x34\x80\x05\xb6\x6b\xb5\x2c\x50\x5f\x6f\x18\x77\x89\xba\xe8\x06\xcc\xad\xc1\x09\xa9\x38\x1e\x20\x81\x45\xb5\xa4\x85\x62\xe5\x74\xae\x54\x2c\xc0\x5e\xa9\x15\x8b\x56\xc5\x4f\x56\xc1\x81\x5d\xc7\xca\x80\xe9\xce\x10\x22\x4f\x2d\x97\x87\xfb\xc3\xb5\x8e\xf4\x1c\x01\x24\x2a\x58\x47\x8e\x1d\x81\x06\x2b\x4e\x96\x69\x0b\xd2\xf2\x42\xd1\xcd\xf5\x01\x5d\xe7\xcb\xa6\xc6\x64\xf2\x7f\x21\xee\xf1\x40\xa4\xdc\x32\xcb\xad\xa1\xa2\x37\x08\x37\x97\x45\xf7\x05\x22\x66\xae\x62\x51\x93\x96\x90\xa6\xc8\xc4\x15\x21\x13\x54\xf8\x88\x00\xd5\xcf\x94\x09\x1f\x3e\xa4\x36\x4e\x50\x73\x7c\x02\xb6\x19\x2f\xea\xe5\x47\x0a\x3b\xf1\xfe\x66\xcc\xe1\x42\x41\x1b\xf5\x59\xed\x54\xeb\xcc\x36\x60\x8e\x26\xaa\x40\x77\x80\xf0\x75\x56\x5e\x35\xb7\x1f\xb7\x47\xa6\xfd\xd9\x86\x3f\x3a\xe1\xdf\xb9\x8f\xd4\x5e\x5a\x40\xa2\xc3\xfb\xc4\x34\x27\xb8\xf9\xb2\x75\xed\x31\x5d\xd8\xba\x48\xb5\x1e\x4c\x8c\x04\xcb\x13\xc4\x28\x74\x46\x6f\x22\xd5\xa0\x2a\x9d\xb3\x7b\xfe\xc6\x78\xfb\xf6\x43\x7f\xfd\x4a\x30\xbf\x0f\xec\x45\x7b\xed\x29\x37\x42\xd8\x07\xe4\x23\x4b\xc7\x85\x69\x4e\xeb\xe7\x9d\xd6\xb3\x4d\x75\x62\x54\xa1\xea\x03\xab\xf2\x91\x79\x35\xd6\xb9\xd9\xf0\xc7\x5e\x40\x97\xfe\xc6\x4c\x6c\x74\xfe\xc5\x69\x6e\x8d\x89\x12\xde\x43\x97\x66\x9a\x7b\xcb\xc1\xa3\xc9\xce\xd2\x1c\x75\x5b\x70\xe0\x9a\xad\x40\xa7\x2b\x74\xe9\xf2\x4f\xa3\x1b\x5e\x5a\x7f\x6f\x13\xd6\xc7\xea\xed\xfd\xcc\x6a\xdf\x19\x6f\xff\xb4\xe7\x2f\x6f\xf8\xd7\x47\xe4\xd8\x0c\x66\xab\x4e\xcd\xcb\x60\xa9\xbf\x72\x33\xfc\xa2\x57\x84\x16\x9b\x6a\x33\xeb\x14\xac\xff\xe4\x2f\xcb\xd1\x0d\xd6\xef\x40\xa5\xf6\xd2\x0a\x9e\xde\xa9\xbb\xed\x7b\xa3\x2d\xf8\x6f\x7e\x95\x5a\x9b\x5c\x69\x9f\xdd\xc3\x33\xfd\xea\x7a\x30\x3d\x1a\x3c\xfa\xb1\xb9\x37\xd3\x5a\xdb\x6e\x2d\xed\x51\xd7\x83\x9e\x57\xe5\xbe\x3f\x3b\x79\xf2\x84\xd5\x7a\x08\x3c\xc7\x4f\xd0\x94\x51\xa2\xc7\x40\x18\xd1\xba\xf6\x53\x7b\x74\x0f\x77\x3e\x04\x45\xec\xa8\xd7\x4a\x02\x61\x7d\xf3\xf5\x17\xfa\x5b\xb7\x75\xc0\xde\xde\xc1\x7f\x7a\x23\xcb\x01\xcb\xdd\xdc\x1a\x69\x6e\x5f\x63\xa6\xa5\xb9\xb5\x0e\x3d\x75\x46\x7e\x6a\x3d\xe3\xb5\x06\xb6\xa3\x8a\x27\x45\xe3\xb0\x3f\xfb\x04\x98\x2c\x85\xbd\xc4\xf0\x48\x49\xe7\xda\x8e\xbf\x3e\x07\xed\x00\xb9\xe1\x35\x03\x28\xff\x31\xb2\x52\x65\x98\x19\x51\xdb\xde\x2f\x61\xce\x8a\xd2\xd2\xe7\xfe\x9a\x53\xce\x70\xa5\xe6\xfe\x39\xe0\x58\x8d\xef\x6a\x2e\x66\x31\x0f\x1b\x16\xbe\x33\xfa\xcc\xdf\x7f\x60\x7d\xfd\x87\xe3\xd6\x7f\x7c\xff\xbd\xf7\x80\xfa\x2d\xf9\xe3\x48\x15\x61\x84\x40\x3b\x83\x2b\x4f\x60\x62\x70\x48\xe0\x4e\x6d\xfd\x32\x8f\xb3\xa2\x19\x72\xfd\xa0\xb1\x28\x34\xf7\x08\x9e\xb2\x23\xd6\x07\x34\x93\xff\x6a\xff\x90\x03\x06\xd3\xee\xc9\x3b\xe5\x0f\x09\xf7\x6e\xee\x02\x49\xa5\x95\xc0\x72\xc0\x66\xbe\xb8\x97\x76\x3b\x23\xa3\x8a\xcf\x93\x12\x4d\x17\xcc\xd2\x90\xf5\x63\x16\x38\x9b\x77\x2a\xfd\xc5\x5a\x19\x18\x8a\x15\xe8\x9e\x19\x62\x06\x65\xae\x90\x9b\xcb\x02\x25\x29\xf6\x0f\x0b\x14\xcf\xbf\x33\x72\xb5\xb5\x72\x37\x98\x9d\xeb\x9c\xbb\x88\x5c\x46\x0d\xf8\xe5\x2c\xfe\xaf\x98\xb7\x65\x0b\x9a\xbb\xdb\xb8\xf2\x4b\xab\x78\x8a\xc6\x9e\x37\x77\x16\xf5\x46\xd0\x76\x39\xfd\xfd\x78\x51\xf3\x95\xe1\x2f\x5c\xc2\xb6\xaf\xdd\x6e\xbd\xb8\xaa\xae\x0e\x13\x00\x70\xb1\x0a\x4c\x3c\x60\x3d\xf0\x88\xad\xbd\xa7\x0c\xd3\xdc\x9a\x6a\xbe\x5c\x61\x7c\xf7\xf7\x6f\x58\xc7\x3f\xf9\xca\x6a\xcd\x3c\x45\x46\x88\x2e\x1a\xd8\x19\xa6\x26\x28\x7f\xfc\x3c\x1e\x6c\xcf\x01\x09\x01\x40\x20\x79\xb0\xf4\x7a\x80\x5c\x85\x8f\xb3\x10\x6e\x60\x4c\x4f\xc3\x35\x00\xab\x4b\x8d\x5b\x7f\x94\xdf\x5a\x76\x89\x03\xca\x00\xe3\xe0\x30\x77\xc4\x93\xc7\x57\x5b\xfb\x6b\xd0\x3d\x0c\xc8\x3f\x3b\xc6\xbb\xdd\x9a\x17\xf2\xd4\xdc\x9a\xf4\xcf\x00\x4f\xb9\xd8\xd9\xb9\x02\x8b\x8e\xd8\x71\x73\x1d\x38\xe8\xc8\x80\x22\x37\x09\xf4\x12\xac\xdf\x16\x8e\x72\xfc\x01\xe0\xb0\x12\x66\xd2\xc0\xc3\xa1\xa5\x56\x62\x22\x81\x23\x9b\x7d\x80\x4b\x45\x6c\xa5\x7f\xe9\x96\xa0\xee\x8b\x1d\x7f\xf2\x26\xf0\xbc\x70\xd6\x69\x40\x76\x85\x3a\x50\x82\xc2\xa7\xf4\xd3\x3a\xce\x3f\xe3\xc5\xd2\xf5\xd7\xcc\x3d\x59\x74\xdd\x02\xc7\x6f\x49\xb1\x05\x3c\x99\x85\x48\x6c\xb9\x76\xa9\xff\x98\x39\xe8\x1e\x61\xc4\x40\x4c\x11\x11\x2f\x7b\xba\x08\x12\x14\x23\x0a\xcb\x3f\xed\xd5\x07\xc8\x0a\x2f\xcd\xf9\x44\xe3\x53\xc0\x15\xda\xd0\xcc\x42\xb9\xe9\xaa\x88\x4e\xc1\xc4\x0c\x4c\xdd\xbf\x73\x53\x5a\x22\x0e\x16\x57\x62\xee\x9e\x3f\x31\x8e\xb8\x32\xfb\x00\x00\x5a\xcb\x53\x7e\x63\x83\xeb\xc2\x36\xc9\x39\x21\x60\x5a\x12\xbe\x8a\x85\xd3\x17\x01\x98\x24\x93\x70\x2d\x69\xfd\x9a\x5b\xf7\x9a\x5b\x33\x40\x0c\xf8\xd6\x81\x61\x60\x5f\xd7\x6e\xc2\x7d\x6a\x7d\xfe\x49\xe6\x5d\x4b\x0f\x0c\x6f\x3a\x40\x9b\xa9\x05\x44\xcd\xfd\xcb\xba\x1d\xe3\xe2\xe1\x4e\xf9\xa8\xc5\xfa\xd1\xd7\x39\x81\xb0\x5c\xa8\x20\x0c\x01\x31\xc6\x41\x84\x8d\x28\x59\x90\xa9\x83\x01\x11\x11\x15\xb9\x3a\x4b\x99\xba\xae\x22\x43\x22\x1a\x64\x07\x1c\x14\x7d\x1e\x4e\xf9\x33\x3f\xb3\x14\x80\x62\xb3\xeb\x65\x07\x8a\x5e\xb6\x1f\x49\x15\xb4\xfa\xe3\xad\xe0\xe7\x85\xf6\xfa\x15\xbf\x71\xd7\x7a\x0b\x0a\xde\xb2\xfc\x0b\x7b\xcd\x9d\x3b\xbf\xee\x5e\x3d\x7a\x5a\x71\x89\xef\x23\x15\xca\xc2\xa9\x2a\x96\x10\xc1\xf0\x4e\x84\xa3\x2d\x27\x09\x96\x6d\x69\x17\x2f\x7d\x12\xd3\x71\x8d\xe7\x9f\xc0\x7d\xa7\x38\x48\xe6\x6b\x91\x40\x1c\x75\x81\xe0\x4f\xb5\x77\x27\x58\xd8\x0f\xee\x4f\xe1\x2e\x4d\x34\x10\x62\x64\x9a\x37\xc7\x1a\x70\xfa\xea\xc5\x52\xc1\xe2\xd6\x68\xb1\x15\xa7\x08\x7c\xa2\x6c\x73\x9c\xb5\xc7\xba\xeb\x3f\xc1\x0a\xc9\xa8\x55\x8d\xae\x9c\x4f\x7a\x35\xcd\xa8\xe0\x6c\xcb\x39\x38\x24\x29\xfc\x4c\xe7\xfa\x0d\x51\x4b\xd0\x4f\xac\xea\x5a\xc7\x3e\x84\xd9\xc1\x6a\xe5\x4e\xdb\x4c\xd7\x07\xd4\x02\xf3\xc5\xdc\x19\x9b\xc1\xfe\x5e\x5d\x07\xfe\xc9\xbf\xb3\x19\x2c\x5c\x8e\x8d\x34\x82\xc5\x11\x94\xd2\x72\x6b\x72\x92\xbc\xcb\x6e\x3d\x9f\xb7\x5d\x17\x37\xc5\xbf\x0b\xa4\x64\x14\x64\x6e\x7f\xe4\x82\xbf\xdf\xe8\x3c\xbc\xd2\x6e\x34\xe0\x3b\xdc\xd3\xc1\xa5\x71\xb9\xe7\x90\x9b\x82\x25\x6f\xdd\xbd\xae\x25\x90\xe0\xc7\x09\xff\xd5\x43\xf8\xd8\xdc\x81\x0e\x76\x91\x48\xaf\xdf\x01\xd4\xb0\x3e\xfe\xe6\x8f\xd0\x20\x49\x9e\xa8\x2d\x02\xb1\xb3\xce\xbc\xa8\x53\x2a\x68\xb1\x15\xf0\x19\xe9\x67\x4c\xd7\xa1\x60\x14\xc6\xba\xc0\x61\xe7\x07\xb3\x5a\xcf\x84\xeb\xe4\xd9\x3f\x78\x19\xbf\x31\x1e\xcc\x5e\x33\xb5\x4e\x8a\x71\x2c\x0f\xd3\x0e\xc2\xd4\x48\x8b\xa0\x24\xe6\xbc\x53\x02\x34\x74\x90\x54\x9d\xb6\x05\xc2\x9f\x3d\xdb\x6e\x8c\xfb\x33\xf3\xc0\x20\x1a\xa0\xd0\x82\x53\x1b\x50\x0d\x68\x2d\xc5\x70\x96\xb5\x25\xaa\x40\x29\x4d\x88\x6a\x91\x5a\x8c\x69\x12\x6d\xaa\x92\xfc\x7b\x60\x83\x48\xab\x20\x3d\x6e\x3e\x12\x36\x98\x17\x81\x7a\x84\xb6\x68\xb1\x44\x6b\xf6\x9d\x48\xfc\xa2\x3d\x53\xa3\x02\x80\x5c\xdd\x43\x0d\x41\xa8\x9d\xca\x8a\x98\x21\xc4\x8b\x37\xde\xe0\x16\x06\xed\x2a\xb2\x16\x65\x77\x80\x54\x50\xcf\x2f\x31\x21\xfc\x75\x77\x85\x0f\x38\x13\x48\xda\x2c\xd7\xc9\x17\x73\xa5\xec\x9b\x57\x7d\x3e\x0a\x77\x24\x55\x8d\xde\x60\xac\x23\x03\x11\x26\x03\xdc\x39\xa0\x5f\xfb\xd9\x0b\x3c\xab\xc6\xc5\x05\xed\x81\x50\xd0\xb9\xbc\xdc\x59\x9c\x80\xb3\x0a\x07\xbd\x3d\xfa\x04\x4f\x0b\x29\xf2\x34\x1a\xa7\x5c\xa6\x38\x20\x24\x5e\xc9\x96\x4d\x1e\x28\xb5\x17\x5c\x95\xb2\x5d\xee\xc3\x26\x70\xa7\xae\x34\xf7\x66\x95\x06\x12\xee\xb4\x01\x38\xbc\xa1\xc2\xed\xd5\x15\x00\x50\x38\x88\xa5\x76\x97\x52\x58\x0e\xad\xaf\x04\x02\x30\x94\xe9\x9c\xf9\x31\x78\x7a\x91\x37\x02\x0a\x3b\xf7\x80\xb6\x4d\xf2\x10\x69\x10\x42\xa1\xf9\x96\x27\x56\xcd\xb5\x2b\x9e\x5a\x31\x64\x39\x37\x46\x45\x3b\x46\x73\x61\xde\x4d\x76\xe0\xf6\x43\xe6\x0d\xdb\xe3\x3f\x5b\x1f\xf4\x7d\x78\xd4\xfd\xe0\x9d\xbe\x0f\x99\x54\x06\x0f\x6e\x07\xc0\xdd\x91\xd8\x11\xcc\x03\xeb\xf6\x9c\xd8\xf1\x7b\xc0\x7e\x59\x47\x0b\x96\xbf\x31\x1b\x2c\x9d\xf1\xc7\xee\xfb\x8f\xa7\x83\xc6\x1c\xb7\xcd\xc3\x62\xf9\x88\xe5\x1a\xb9\x87\x3d\x47\x23\x56\x2f\x7c\x22\x75\x8b\x83\x8a\x98\x9a\x92\x6b\x51\xf7\x46\x07\x89\x70\x5b\x01\x07\xaf\x46\x82\x5f\x76\x78\x10\x21\x2e\xd2\x04\x4b\xc5\x72\xd1\x4b\x43\x0c\x80\x66\x5d\x19\x4f\x8d\x9b\x10\x8e\x75\xf4\x3c\x1c\x96\xce\xcd\x9d\xd6\xcb\x51\x9e\x65\x6b\x7d\xc2\xdf\x1f\xb3\xde\xb7\xfc\xc6\xb9\xce\xdc\x15\x7f\x7f\xda\x3f\x37\xd3\x5e\xbb\x47\x68\x38\x98\x73\xb3\xf5\x8a\x2c\xb0\x5d\x60\x4c\x01\x32\xab\x48\x1c\x76\x05\x3c\x05\xaf\xb1\x5e\xc8\x7f\x0c\x57\xf2\x9f\xac\xe6\xde\xb9\x60\xf9\x01\xae\x33\x2d\x10\x73\xfd\x30\x12\x14\x0b\x94\xfa\x05\x00\x60\x81\x81\xbb\x30\x87\x8a\xad\x03\x35\x5b\x1e\x01\x61\xae\x33\x3e\x83\x3b\x48\x1d\xc8\x3d\xb6\xf8\x38\xb8\x34\x09\xd7\x18\x6a\xab\x61\x7f\xa6\x27\x3a\x8d\x05\xc1\x49\x58\x1d\x19\x2a\x43\x01\x0d\x6d\x2f\x2d\x98\x6d\x98\x88\xa0\x44\x26\xba\x59\x5d\x3a\xb3\x1e\xdd\xac\xed\xdd\x2d\x7f\xec\x6e\x5c\x4c\xa1\xb9\xc0\x11\x80\xf3\x05\x03\x6e\xee\xec\x34\xf7\x16\x98\xe1\xe0\x33\x8f\x7d\xe3\x10\xbc\xe4\x08\x7e\xdd\x6d\xf0\x20\x7e\xdd\x9d\x90\xad\xe1\x7d\x25\xbc\x87\x22\xb8\x5c\xd4\x98\xb8\x09\x7d\x40\xb8\x50\x1d\x1f\x75\x59\x91\x5e\x32\xb6\xf3\x1a\xcd\xe5\x0a\x79\xf1\x14\xf7\x7c\x79\x05\xd6\x12\xfe\xa6\x3b\xaf\xa1\xd7\x29\xec\x41\xab\xc4\xa2\x2b\x66\x74\xaa\x21\x3d\xc7\xc9\xba\x83\x28\x2f\xcb\xc0\x17\x5e\xf8\xdb\xc8\xd3\x21\x85\xd8\xb8\x80\x26\x8f\xff\x04\xdb\x3e\xa3\x2e\x2c\x5c\x87\xef\x04\xbb\x91\xc8\x2a\xd4\x3e\xc1\xea\x4c\xf5\x3d\xed\x30\x20\x38\xf3\x56\xff\xd3\xae\x81\xf4\xc5\x30\xf6\x31\xfc\x64\xe5\x0a\x05\x98\x83\x9b\x58\xab\xaf\xf1\x27\x43\xaa\x6f\x06\xfd\x56\xb7\xf4\xd7\xf2\xc1\x92\x0f\x6f\x5b\x7f\xb6\x4b\x20\x64\xda\x3c\x66\xa7\x90\xc3\x41\x0f\xdb\xae\x30\x7c\x7c\xa6\x51\xc3\x25\x2a\x66\xf5\x01\x40\x51\x2e\x94\x45\x7f\xf5\x38\x98\x7f\x49\x4d\x00\x8d\x2b\x43\x0b\xdf\x00\x1f\xf3\x55\xcc\x28\xf1\x35\xdc\x45\xf4\x8d\x2f\x22\xa5\x1f\xfa\xd4\xb0\x55\x30\xb6\x1d\x3e\x74\x22\x6e\xb1\xf8\xda\x4e\x31\x58\xf4\xf6\x7e\x76\x92\x78\x60\xd2\x77\x3c\x39\xd7\xb9\xb0\xa1\x1a\xfd\xcc\xf3\xaa\xee\x37\xb5\x52\x86\x35\x0d\xdf\x7c\xfd\x85\x15\xb6\x3d\x5c\x72\x72\x05\x2c\x0c\xce\xaf\x02\x3a\xaa\x82\x93\x76\xae\xcc\xe3\x5b\xbe\xd2\xb9\x3a\xa9\x9a\xfa\x08\xee\x4a\xfa\x8c\x84\x0e\xc8\x86\xfa\x8c\x2c\xd3\xa7\xe9\x1c\x70\x28\x90\xd8\x64\x15\x61\x2c\x01\x56\xbf\xb5\xb6\xcd\x0c\x7c\xa9\x0a\x02\x12\x32\x23\x02\x21\x52\xc1\x99\xed\xf6\xd4\x26\xc8\xaf\xfe\xfa\xe5\xe0\xc9\xcc\xdf\x40\x78\xbf\xf2\x2a\x98\x9a\x68\xee\x3e\x01\x96\x13\x3f\x36\x16\x83\xb5\x87\x20\x27\xc3\xa1\x3a\x96\x85\x03\x15\x6f\xad\x00\xc7\xf9\x37\xb5\x08\x5f\xa2\x2d\x92\x2c\x7a\x43\xa8\xf8\x5f\xd5\x0c\x18\xdb\x75\x9b\xc0\x99\xb0\x2e\x02\xb9\xc6\x38\x54\xb0\x0c\x74\x71\x96\xa1\x2c\x54\x7c\x90\xa6\x58\x74\x17\x3f\xa4\xc3\xdf\xb9\x9f\x0a\xcf\x34\x4a\x2f\xa2\xd6\xa5\x00\xf5\x85\x03\x1d\x23\x52\x54\x03\x35\x4f\x07\xc0\x23\x26\x30\x5c\xe5\x14\xdc\xb2\x15\x81\x05\xfa\xd6\x5a\xb9\xdb\x99\x7e\xd2\x7e\x80\xa2\x87\xb6\x85\xc1\x1d\x96\x77\x6a\x35\x3b\xef\x85\x56\x31\x80\xf5\xa7\x5f\x02\x4b\x4d\xed\x68\xfa\x60\x30\xed\x84\x9e\xc0\x0f\x9a\xd8\x1a\xad\x15\x5a\xed\xb2\x7d\xb6\x0d\xf7\x64\xee\x94\x5d\x09\xcf\x8a\xbe\xa5\x9b\x7b\xf3\xf0\x51\x08\x17\x08\x13\xf1\x1a\xe6\x49\x4a\xab\x04\x0c\x47\xa2\x8e\x28\x6e\xbb\xd6\xf1\xe0\x18\x24\x3b\x32\x8e\x44\x5a\x25\xde\x28\xaa\x00\x33\x2b\x44\x8e\xb3\x01\xff\x4a\xc1\x17\x4b\x25\x7b\x00\x75\x79\xaa\xb3\x68\x0f\xd3\x63\xfe\xdc\x43\xd8\x40\x7f\xae\x01\xf2\xa1\x81\x10\x7a\xd9\xf4\xba\x87\x3b\x64\x8a\x03\xbc\xe8\x5a\x66\x11\xed\x05\x10\xbe\x1a\x99\x52\x0d\xf9\x8c\x3a\x37\xf9\x1e\x7d\x01\x9a\x8b\x0b\x98\x74\x50\x4b\x80\x49\x28\xb7\x75\x6d\x0a\x6d\x7c\xa4\x8c\x6a\x8f\x8c\x85\xc3\xbc\xf2\xc4\x9f\xbb\x77\x50\xb3\x9a\xb8\xa7\x8f\x8f\x11\x2b\xde\x8a\x16\x21\xed\x1f\x80\xd4\x67\x60\xdd\x99\x66\x6b\x05\x03\xae\x2b\xc8\x81\xcb\xab\x74\x55\x95\x72\x20\x92\x23\x9e\xd0\x1c\x10\xbc\x75\x7f\xa7\xb3\x74\x87\x61\x51\xdd\x0f\xc7\x73\x9f\x94\xb3\x7b\x33\x26\x4b\x8d\x63\x22\x05\x11\x17\x09\xaf\xa9\x45\xc7\x73\x33\x9d\x91\xa7\x28\xbc\x52\x6b\xc0\x2a\xa2\x0a\x83\x06\x22\x37\xa4\x9a\x24\x6a\xbc\x4f\xd9\xc3\x19\x90\x18\x83\xc9\xcd\x60\x7d\x82\x58\x20\x94\x21\x59\x3b\xc0\x07\xcf\x9c\xb8\x15\xd2\x7b\x92\x7f\x49\x2c\x44\xde\xfe\x34\x5d\x97\xba\x45\x56\xdc\xbf\x49\x23\xd3\xc8\xaf\xb1\xdc\x3a\x3a\x0e\xf2\x6e\xe7\xcc\x4f\xb8\xe3\x8a\x6a\x68\x30\x9c\x33\xb4\x31\xfe\x00\x27\x76\x7b\x1b\x25\xea\xb1\xe7\x0c\x16\x8c\xdc\xa7\x89\xa1\x68\xa5\xa5\xef\xf3\x0d\xd4\xda\x50\xdf\x11\xb9\x1b\x68\xab\x07\x47\x00\xd7\x9c\xcd\xe4\x26\xab\xdb\xdc\x99\x69\xfd\xf8\x1c\xfb\x5f\x99\x6b\x6e\x5f\xd3\xa2\x5d\x70\x69\x94\x31\x88\x59\x1e\x65\xbe\x68\xb4\xf7\x26\x60\x91\x11\xe9\x1b\x0f\x60\xa9\xfd\xc7\x67\x61\x1e\xa2\xde\x62\x1b\x2c\x7f\xa7\xc6\x8d\x2d\xe0\x21\x20\xb3\x8b\x06\xf3\xd8\x08\xda\x8d\x49\x3d\x02\xa6\x18\x38\x02\xda\xc5\x58\xf7\x9d\x6b\xb7\x3b\x8b\x53\xba\x7b\x06\xd6\xd4\x27\x36\x4f\x14\x58\x09\xe0\xff\xd1\x24\xb9\xf1\x08\x9e\x85\x23\x20\x95\x39\x8c\x80\xb7\x85\xaf\xf3\xe6\xfe\x75\x98\x2a\x32\xb7\x67\x57\x41\x16\x90\x13\x42\x84\x4a\x58\xee\xb1\x06\x37\x0d\x15\x4d\x98\xa8\xc8\x00\x64\x93\xec\xd2\xd9\xbe\x5a\xae\x92\x1f\x34\xce\x5f\xeb\xda\x63\xb4\x08\x34\xce\x05\xf3\x4f\xf4\xc9\x23\x56\x09\x87\x83\x42\x38\x99\xa4\xb3\xa2\x73\x06\xee\xda\x52\x7a\x65\xd4\xfe\x5b\x20\xf5\x31\x7b\xc5\x1b\xc4\xea\x61\x5d\x2b\x5f\x77\x3d\xa7\x6c\x54\x66\x37\x04\xa5\xb2\x59\xe7\xaa\xaa\xd2\xbf\x38\x70\x5f\x3b\x40\xcd\x27\x6f\xc2\x21\x00\x96\xd5\x70\x09\x28\xa2\x73\x01\x53\xbc\xc6\xe5\xf6\xad\x55\xe1\x45\x8b\x1e\x9c\xcc\xb1\x47\xb8\xc3\xe2\xa4\xd0\xef\xa0\x31\xd4\xae\xb9\x19\x94\x07\x56\x77\x60\xaf\x70\x91\x73\x48\xb9\x50\xc2\x6f\x3f\xbe\x0a\x52\x92\x82\x43\x7d\x12\xc3\xc1\x68\x70\xda\xc8\x20\xf6\x10\x09\x47\x06\xb6\x76\x1a\xb5\x80\x8a\x22\x5a\x6f\x1d\x75\xdf\xb2\x00\x29\xf0\xb2\x78\x75\xbd\xb5\xb0\x04\x33\x26\x54\x0a\x6b\x55\x73\x1e\x50\xc9\x0a\x0b\x2e\x34\x12\xa3\x01\x5c\xe0\xb1\xd1\xf6\xea\x26\xb7\x14\x35\x9c\x90\x6f\x04\x7b\x64\xc0\xb2\xa7\xfb\x6d\x68\x8a\xcb\x0b\xa7\xb5\x47\x4c\x51\x5c\x61\xf5\x0c\xda\xa1\xf4\x1d\x99\xd6\x9d\xfd\xe6\xf6\x1d\x96\x89\x58\xa5\x41\xa6\xb0\x52\x31\x4f\x22\xba\xaa\xca\xb8\xc7\x6a\x39\x3a\x21\xaa\x40\x69\x87\x0a\x76\xc9\x46\x8f\x24\xe3\xcc\x02\x7d\x2b\xaa\x49\x5a\x9f\x7f\x82\x33\xa9\xd6\xfb\xa0\xe5\xd0\xf9\x84\x76\x48\x4f\x42\x3c\x8b\x48\x1b\x2d\x68\x63\xde\xc7\x1b\xe3\xc1\xf2\x59\xb4\xa6\x52\x2d\xa4\x7e\x5b\xf7\x90\xee\x43\x07\x8b\xbb\xc1\xf9\xbb\x28\x95\x52\xc7\xb8\x7e\x74\x6d\xb1\xb1\xc7\xbf\x38\xcd\xb6\x1f\xde\x12\x74\x56\xe1\x2b\x4f\x59\x39\x14\x6f\xac\xdd\xaa\x68\x6d\x95\x5b\x55\xc9\xe1\xa5\x40\x2b\x2f\x9c\x01\x1c\xcc\x0c\xb0\xdd\xf5\x2a\x9a\x05\xf4\x54\x82\x6b\xbf\xc0\x55\xa2\xa6\x12\x2d\x34\x95\x8d\x74\x41\x87\x5b\xc7\xd5\x90\x40\x4d\xb2\x48\x2a\x07\x24\xe9\x1d\xc5\x96\x64\x25\xb2\xc4\xc0\x94\x62\xe1\x24\x3a\x85\x88\xb3\xc8\x10\xd0\x0f\x2b\xd7\xdf\x0f\x3c\x86\xe5\x0d\xc2\xef\xdc\xb0\x35\xe8\x0c\x59\xa5\x62\xe5\x14\x7a\x87\xa0\x1f\x58\x5c\xad\xd1\x43\x0a\x1a\xc0\xb5\x3a\xf4\xfc\x72\xb7\xb5\x3d\xad\x04\xa7\x88\xc3\x8e\xfa\x18\xda\x4e\xa2\xe7\x79\x61\x05\x8e\x9c\x5e\x5e\x75\x8c\xd3\x60\xb5\xad\x96\x74\x09\x48\xab\xc8\x03\xad\xb9\x7f\x8e\x6d\x3f\xa8\x01\xd7\x96\x29\x36\x7a\x85\xa4\xc4\x71\x5c\xd1\x02\x72\xbf\xac\xb0\xe5\x1b\x5d\x41\xc9\x4e\x08\x04\x2f\x37\x97\x29\x93\x43\xbd\x8a\x72\x15\xb0\x2f\x32\x22\x3a\xa1\xd9\x62\x19\xbd\xe2\xd8\xce\x45\x9c\x10\x1a\xe7\x42\xde\x7c\xf7\x99\xbf\xbc\xd8\x9a\x18\xa7\x3d\xab\x38\xb1\x49\x19\x3a\xff\xa7\x17\x51\xe5\x42\x8a\x87\xd8\x82\xa0\x36\x99\x2e\xf9\xd8\xdc\x99\x1b\x32\x87\x1d\xc3\x1f\x73\xf8\x09\xfc\xd1\xa8\xd1\x85\x24\x38\x25\x83\x3f\x63\x95\xbc\x2a\xc2\x95\x0c\xfd\x74\xd8\xf5\x4d\x9b\x5f\x51\x8e\xcd\x46\x20\x58\xb6\xb5\xbe\xb2\x87\xac\x13\x5a\x72\x4f\xe3\x6f\x8d\x4e\x0c\x6d\xfc\x68\x62\xa4\x7a\x9a\x02\xcb\xd7\x87\x9a\x1a\xce\x7d\x76\x1f\x0f\x20\x19\xf9\x44\x05\x6f\x8c\x92\x95\x99\x42\x32\x89\xb1\x77\x23\x36\x75\x25\x2f\x8b\xb7\x9d\x40\x88\x43\x5d\x0a\x1c\xcb\x06\x06\x31\x42\xf3\xe3\xbd\xd1\xce\x99\xc7\x06\x49\x3a\xc7\x04\xa8\xb9\x7d\xde\x34\x2f\xb3\xf9\x18\x2e\x7b\x43\xb7\x58\xad\x01\x4a\xd5\x86\x33\xdc\x8a\xfe\x2d\x1a\x93\xf6\xe3\xfd\xe6\xd6\xb6\x2a\x63\x62\x2a\x45\x4c\x52\xc3\xf1\x40\x11\x52\xa3\x4f\x59\xaf\xf2\x89\xfc\x8e\x97\xf3\xc0\xa9\xd4\x66\x5f\xb1\xa8\x22\x86\xc9\x43\xcd\x2e\x3b\xa7\x6d\x21\x06\x05\xab\x58\xc1\x0b\x8b\x5d\x7b\xd0\x81\x20\x4a\x1b\xac\x4f\x88\x58\x00\x21\xa9\x78\x48\x38\x14\xa5\xf8\xe7\x44\xdf\x6a\x23\x65\x8c\xc0\xab\x59\x28\x63\x59\x3c\xaf\x82\xd2\xe2\x90\x9b\xdb\xef\xd0\x2c\x57\x20\xd4\xe2\xf9\x32\x77\x2e\xa7\x38\x65\x5f\x10\xda\x84\x34\x61\x8c\xd2\x6c\x44\xd3\x8c\x3a\x58\xd1\x2e\xfb\xfb\x63\xa1\x76\xd3\x6c\x1f\x6d\xad\xa8\xe7\x43\x5e\x06\xef\x61\x61\xa4\x96\x57\x4d\xfd\x71\xaa\x9e\x99\xef\x22\x53\xb5\xdc\x19\x3d\xdf\x5a\x9d\x12\xab\xa7\x1a\x91\x3e\xc6\x3c\x37\x03\x91\x64\xce\x84\xeb\x82\xc1\x82\xa6\x07\x5d\xe1\xd8\x32\x89\x20\xb7\x6f\x20\x6b\xa4\x2e\x76\xd4\xa7\xe0\xe6\xe3\x29\xd9\x9a\x42\xb6\xa4\x31\x8e\x3c\x29\x33\xd2\x13\x23\xac\x0f\x4d\xc8\x12\x5a\xc1\x0b\xab\x00\x27\x0d\xc8\x56\x67\x69\xba\x35\xbf\x12\x13\x24\xc4\x32\xaa\xd8\x59\x66\xc9\x5d\xed\x0a\xf5\x81\xeb\xd5\x9c\xca\xc0\x87\xac\x0a\x66\x97\x67\xff\xf2\xf9\x7f\xfe\xe0\x1d\x29\xb0\x50\x18\x59\xb9\xdb\x5a\x46\xed\x06\x0c\x05\x9d\x23\x43\x67\x48\x0b\x46\x01\xa4\x12\xba\x85\xc5\x30\xc6\x47\xae\x91\xa4\x3a\x1e\xf7\x67\x50\x9f\x14\xab\x86\x90\x24\x07\x6c\xb5\xef\x4d\xb1\xb3\xa9\xaa\xd2\x5a\xbc\xd0\xb9\xf6\x53\x70\xfe\x62\xfb\xfe\x4f\x7a\x43\x10\xdd\xc2\xa5\x8b\x32\x46\xbc\xe2\x86\x56\x00\x18\x0e\x7f\x6c\x53\x34\x75\x51\xad\x40\x08\x4e\xd7\x30\x81\x8b\x85\xf7\xda\x96\x3f\x37\xcd\xac\x05\x8e\x2c\xd1\x86\x21\xcc\xaa\xfa\x99\xa8\x36\x10\x3f\x93\xbd\xaf\xe2\xa9\x12\x34\x60\xbc\xd4\x3b\x1f\xc3\x28\x63\x1a\xc2\x92\x1a\x68\xc5\x96\x2a\x26\x2c\x34\x73\x21\x2b\x6a\xfc\x9a\xb0\x70\x01\xb7\x05\x9c\x96\xb9\x24\x51\xe2\xa2\xe5\x0b\x03\x16\x1d\x10\xe8\xb3\xe8\x0d\x0c\xcc\x83\x05\x81\xed\x46\xb7\x16\xb2\x12\x6a\xbf\x00\xd6\x04\x30\xb7\xf1\xcf\x29\x7d\xa9\x39\x1a\x9d\x70\x0f\xe1\xb4\x70\x39\x70\xe4\xb4\x99\x24\x1f\x90\x7a\x80\x77\x63\x6b\x32\x78\x74\x8b\xf7\x84\x44\x18\xf4\x7a\x54\x22\x02\x5f\xcf\x01\xe0\xea\xab\x0b\x4a\x50\xa0\x75\xf5\xf0\xf6\xa5\x59\xc2\xfc\x64\xed\x97\x57\xad\xff\x6c\xf9\x77\xd6\x60\x13\xf4\xfe\xc3\x39\x07\x19\xca\x39\x05\xa8\x62\xd4\x09\xd6\xef\xd0\x37\xf4\xfd\x19\x3d\xef\x9f\x07\x21\xe2\x2c\x57\x0c\xae\xed\x9b\xe8\x43\xd5\xc3\xb3\x2e\x2c\x39\x5f\x49\x7c\x4a\x15\x7b\x4e\xfc\xb4\xd8\x28\xdf\xec\x74\x9b\x9c\xfd\xc1\xc7\x9b\xab\x98\xc7\x1b\x8e\x0a\x4a\xa5\xa1\x89\xb3\x5e\xe9\x2b\x56\x0a\x19\xf3\xbb\xfa\xa8\x37\xc8\xec\xd0\x04\x8c\x70\x27\x32\xd5\x1c\x55\xc9\xd2\x2a\x29\x45\x34\xb1\xc5\x7c\x63\x36\x77\xee\xb4\x26\xa6\x95\xff\xa7\xd8\x7a\x05\x98\x48\x03\x23\xbc\x02\xa3\x12\x57\xdf\xd5\xb0\x0a\xad\xf9\xdb\x3c\x37\xde\x07\xe2\x9d\xf1\x9e\xde\x3f\x87\xc7\x6e\x76\x91\x74\x2c\x1f\x9d\xf8\xdc\x65\xb6\x87\x77\x90\xea\x83\xe0\x8b\x6e\x0a\x67\xb6\x81\xfb\x24\xdb\x3e\xb2\x6e\xdc\x11\xf9\x73\xce\x98\x1a\x07\x16\xfb\x91\xf0\x2f\xfc\x92\xe6\x6a\xc9\xed\xd2\xd1\xe6\x26\xd4\xd1\xd6\x13\x33\x27\x95\x98\xb5\x20\x16\xae\xaf\xad\x0e\xb9\xb9\x40\xb2\x16\x06\x8b\x24\xaa\x6e\xde\x44\xf6\x53\x6c\x6c\x88\x23\xdf\xe3\x09\x7f\x8c\x86\xbe\xbc\x11\x2c\xbe\xd4\x7e\x3c\x80\xe0\x32\x36\x74\x39\x3a\xdb\xb9\x05\x48\x07\x9c\xc8\x08\x9c\x1a\x93\x66\xf0\x40\xfd\xc6\x4d\xd8\x57\x35\x50\x73\x17\xe3\x04\x44\x84\x28\xf2\x86\x04\xe1\x8c\x60\xba\xd4\x30\xc9\x09\x1c\x1d\xa3\x02\xcb\x7c\x42\x68\x1a\xe3\x4c\x42\xc4\xaf\x93\x3d\xfc\x0d\x6f\x4b\xdc\xf9\xb3\x3f\xa3\x37\x29\xd1\x12\xbc\x75\xa2\xa3\x8f\xf3\xd1\x46\x3f\x2f\x9e\xf2\x2a\x72\x57\x62\x94\x5f\xbd\xe2\xef\x5f\x16\x0e\x9b\x2f\x7c\xa3\x67\xb9\xa6\xa5\x7d\xed\x87\xc0\xea\x1c\x66\x79\xe5\xd4\x0a\x88\xb2\xfd\xf2\x34\x19\x53\x96\xcf\x06\x1b\x5b\xcd\x97\x63\xc1\xd6\x18\x7e\x34\x75\x59\x24\x1e\x32\x63\xd1\xdc\x9a\xb7\xd4\xbd\x8a\xaa\x82\xd9\x27\xc1\x28\x48\x46\x6b\xfa\x4e\x65\x6e\x5a\x7c\x9f\x62\x23\x12\x6d\x7e\x44\x2e\x8f\x82\x28\xcf\x54\x2a\x34\x87\x97\x00\xd4\x04\x91\x41\xe9\x54\xc9\x04\x46\xee\x73\x4d\xb1\x6b\xde\xde\x86\x83\xaf\xb7\x82\x9b\x83\x0d\x21\x77\x81\xc3\x87\xbe\x45\xf5\xcd\x77\x20\x8c\x90\xee\x56\xeb\xce\x0c\x6b\x41\xcc\xd8\x16\x5a\x11\x94\xe5\x53\xbb\x6b\x1b\x70\x80\xb4\xed\xc6\x23\x38\xa5\xed\xdd\xb3\xad\x95\xf5\xbf\x8d\x8c\x02\xa2\x22\x4d\x79\xb1\xe9\x37\x76\x62\x0b\xd9\x9a\x59\x05\x78\x90\xc0\x9a\xdb\xd3\x21\x73\xa2\x14\x37\xa7\x8b\x6e\xb1\xaf\x58\x22\x35\xd2\xec\x13\xe4\x29\xb6\xef\xc9\x57\xfc\x68\x78\x09\x8b\x0a\xf0\xcc\x36\xb4\x5c\xcd\x55\xac\x3c\x5c\x3d\x6e\xe6\x48\xbd\x08\x5c\x75\xc1\x42\x5f\x9d\x23\x1f\xb6\xee\x8f\xb2\x47\x27\x74\x04\x30\x1f\x9a\x2d\x61\xc4\x90\x6a\xee\xd7\xdd\x06\x4b\x3d\xd4\xee\xae\x60\x3f\x39\x20\xa3\xbd\x9d\x75\x1a\x46\x58\xd1\xaf\xbb\x13\xa4\x63\x3a\x25\xda\xd8\x48\xc4\x11\x7d\x27\xf7\x60\xfe\x4e\xbe\xc1\xf4\x31\x31\x0d\xb3\x22\xcb\xa4\x22\x34\xd2\xd4\x61\x6f\x43\x53\x0e\x1f\x55\xf6\x0b\x9b\x9d\x6d\xbf\xda\x90\xef\x18\x48\x26\xdf\x39\x94\xcc\xf8\xae\xba\xe9\x05\x6c\xca\x7b\x56\xcf\x40\xd1\x2b\x0e\x54\x30\xb6\x05\xb5\x23\x40\x82\x4b\xc5\x3c\xd0\x6f\x5b\x14\xcf\xed\xd5\x4d\xe8\x58\x7f\xd5\x6b\xfd\x70\x4a\x04\x7c\x03\x8a\xe5\x72\xec\x2b\x57\x00\xac\xf9\x9a\xfe\xa7\x7e\xc6\xfa\xcd\x59\xfc\xd9\x52\x51\x70\xa4\xf5\x76\x40\x54\x2d\x7a\x99\xcf\xe1\x1f\xb8\x5b\x8b\x7f\x15\x69\x29\x8c\x39\xa2\x20\x07\xf4\xf6\x84\x36\x60\x47\x69\xc8\x14\x44\x11\x36\x23\x0e\x49\x46\xe4\x98\xda\x84\x82\xdd\x9f\xab\x97\x94\x7e\x35\xc3\xee\xb2\xac\x55\x55\xc1\x67\xd0\xbf\x67\xd7\x4e\xc3\xc5\xcf\x0e\x55\xc0\x35\x06\xeb\x77\xfd\x0b\xab\xc1\x32\x10\xf5\x06\x4b\x1e\xb4\xd3\xa9\x5a\x48\xf3\x00\xfc\xbd\x8a\xc8\xe8\x21\x3a\x50\x17\x59\xb1\x51\x53\x52\xf7\x60\x2e\xc4\xe1\x9b\xb6\x02\x9c\xd1\x00\x5f\x5c\x68\xf5\xe6\x18\x39\x15\x2d\x64\x16\x25\x8e\x0f\x62\xba\x32\x7a\x46\xcf\x11\x1e\x20\xab\xaf\x54\xb7\x8f\x7c\xc8\xcb\xa3\x8f\x90\x6a\x90\x56\x5d\xe2\xf1\x94\x03\x1b\x17\xf5\xe4\x4b\x4e\x05\xa8\x17\x4b\xbc\x19\xd3\x6f\xbf\x0b\x4c\x48\xe1\x58\xbe\x57\xae\xf0\x86\xfb\xff\x3b\x7f\xfc\xfc\x24\x19\xe6\xd1\xa8\x4d\x4e\xd9\xec\x5f\xed\x2f\xad\x72\x90\x90\x58\x98\xb9\x75\x65\x2d\x42\x25\x62\x89\x9d\x2a\xf1\x80\x91\x79\x86\x6b\x73\x25\x64\xbe\xd6\x9e\xf2\xdf\x5a\xdd\x8e\x5e\xf6\x86\x35\x98\x9d\x30\x85\x8f\xc2\x83\x0c\x3b\x91\x7a\xbe\xc9\xf7\x1f\xdd\x93\xc5\x51\x55\x8e\x37\x49\x1d\x4c\x6c\x35\xe1\x94\x9b\xa3\x3a\x9c\x45\xb5\xa0\x2c\x11\xdf\xa8\xc6\x77\x7d\x71\x1e\x77\xaa\x45\xbb\xf0\x3b\xb3\x88\x2d\xd1\x27\x48\xa7\xf0\xbf\xa7\xaf\x1c\x3b\x8e\xf1\x4c\xc7\xbd\x5a\x09\xfe\x22\x25\x41\x75\x18\xc0\xe1\x2c\x9f\x42\xb7\x2a\xfc\x99\xd1\x8c\x89\x3f\xf1\xc0\x87\x5b\x7d\xe3\x15\x35\x08\x2d\x4b\x11\xdf\xc5\x58\x0d\xf7\x46\x90\x05\x96\x02\x8d\xdd\xa3\x97\x58\x44\x54\xc6\x92\x15\x71\x3a\x4c\xc6\xd8\x99\x52\xe5\xd6\x63\x90\x43\xdb\x0f\x1e\x05\x57\xce\x93\x5c\x28\x4c\xed\x10\x5b\xbe\x49\xa9\xc9\xea\xfe\xc3\x87\xf8\x9b\xfa\x55\x47\x7f\xd1\x9a\x80\x28\x1b\x01\x7d\x0a\x0d\x06\x18\xf2\x49\x4b\x4c\x07\x44\x68\x64\x70\x95\x48\xa9\xd0\xc8\xbf\xd4\x71\x01\x06\x30\xd4\x2f\xe3\xbf\x7a\xd8\x19\x59\x51\xd1\xc0\x3c\x47\xa4\x39\x62\x6a\xa2\x15\x10\x0e\x42\xf9\x6e\x86\x0e\x8f\x44\x54\xf3\x4e\x19\xf8\x68\x38\xb7\xfb\x37\xd8\xef\x18\x0d\x49\x44\x77\xc4\x6f\x20\x12\xb7\x5a\xad\xa3\xbf\x06\x5a\x75\x84\x42\x19\xb5\xc4\x95\x84\x05\x52\x76\x00\x0f\x2b\x52\x5f\x30\x2e\x8a\xc7\x62\xdd\xb2\x41\x16\x51\xa5\x84\x05\x3a\xd4\x11\xfd\x71\xac\xbe\x5c\xfe\x94\x85\x54\xb1\xf6\x3b\x5c\x8d\xc3\x87\x84\xf2\x29\x9a\xe7\xd5\x6c\x3b\xc3\x98\x1c\xac\xbe\x54\xc5\x14\x81\xe6\xe5\x30\x54\x95\xe0\x50\xa6\x59\x5d\x6a\x6d\xde\x51\x00\xb6\x2a\x51\x56\x1e\x02\x66\x18\xf5\x29\x35\xd4\x14\x63\x53\xdd\xcc\x09\xf8\xd7\xfa\x5a\x22\x54\x51\x3a\xec\xb3\x4b\xaa\x3a\x1e\x56\x20\xe9\x1e\x6c\x83\x9b\xe9\x8c\x4f\x03\x7b\xd7\xba\x7d\x01\x31\xb2\x5c\x2e\x7a\x00\x35\x3b\x07\x62\x4d\xb0\xfe\xc2\x9f\x7d\x8a\x6b\x42\x93\x05\x69\x87\x5c\xad\x41\x98\x6a\xee\x35\x00\x09\x50\xcd\x5f\xcb\x0d\x65\xfc\xf3\x2b\xfe\xfd\x29\x75\x2d\xd1\x67\x58\x37\x8a\x5d\xe5\x8f\xaa\x21\x2a\x22\xd7\x59\xac\xc6\x1a\x91\x94\xca\x80\xf9\xe5\x1c\x9d\x4d\x66\xb4\xd4\xd9\xd4\xe3\xeb\xd1\xe3\x04\x29\x97\xbc\xc8\x78\xc0\x21\x40\x18\x50\xdb\xfa\xe5\x76\x74\x36\x0a\xa4\x1f\x85\x3b\xd4\x6b\x4d\xec\x87\x1f\x91\xca\xa3\x43\xca\xde\x32\xf1\x66\xea\x73\x19\x4e\x3a\xea\xc6\xfd\x33\x4b\x74\x42\xd4\xf7\x02\x79\xe2\x71\xf3\x97\xef\xc2\xe5\x15\x16\xb1\x4f\x33\x70\xd2\xed\xc6\x24\x12\xbe\xd8\x00\x01\xaf\x6d\xa5\x9b\x37\x8a\xb5\x0b\x31\x86\xa1\xcb\xb5\x4a\x7b\x6b\x16\xf4\xc4\xf6\xd2\x28\xa9\x20\xf7\x01\x85\xe8\x26\x23\x9c\x43\x12\x28\x0f\xdb\x59\xcb\xaa\x46\x88\x0d\x27\x2f\xbc\x2d\x3c\xf1\x49\x70\x8d\x2a\x26\xa6\x44\xfb\x0c\x41\x74\xbf\xe9\xb0\xdc\xb5\x01\x1e\xed\x3d\xbd\x92\x53\x05\x39\xc6\x18\xc5\xe2\x94\xbf\xb0\x22\x61\x67\x5d\x7a\x71\x5c\x74\x06\xd5\x55\xb0\x03\x72\x0a\xee\x5a\x05\x2e\x5e\x0c\xde\x87\x11\x4d\x8f\x03\x61\x63\xf3\x79\xca\xd0\x35\x9c\x58\x85\xba\x41\xa3\xc6\x45\x37\xb9\xfc\x20\x15\x8e\x49\x5c\xd7\x6d\x96\x9d\x94\xe8\xf9\xc4\xbe\x70\x71\x16\xd8\xb1\xbc\x2d\x1e\xf4\x42\x1b\x88\xa7\xa1\x28\xf2\x48\x47\x07\xb5\x47\x4b\xec\xe5\xfa\x32\xa8\xf7\x1d\x99\xa2\x25\xbe\x44\x66\x60\xd5\x04\x2e\xa9\x01\xa1\x57\x54\x43\xc0\xd1\x45\xf7\x45\x41\x3f\x6a\xbe\xf5\x64\x0d\xf6\x35\x15\x02\x78\xb1\x2c\xf3\x97\x78\x61\x33\x60\x6c\x4c\x02\x9e\x82\x7e\xe9\xed\x6a\xc0\xb4\xb6\x93\xbb\x2e\xb5\x62\x1b\x8f\xf2\x7b\x6a\xeb\x00\x37\x50\x04\xb8\xd4\x81\xab\xaa\xf1\x4a\xcc\x13\x12\x37\x98\xde\x2a\x02\xf4\x60\x6c\x86\x10\x72\x96\x77\x62\xb8\x10\x81\x75\x25\xc9\x04\x30\x16\xc3\x4e\x5d\x46\xdd\x7a\x76\x8f\x05\xe9\xd4\x3a\xbc\xfd\x85\x6c\xdf\x30\x55\x69\xcd\x6f\xa2\xd6\x44\xdd\x7c\xa9\x55\xca\x76\x05\xb5\x14\x18\x28\x45\xbd\xcc\xce\x61\x9a\x8b\xd4\x2e\x5c\x74\xb4\x0d\xce\x5f\xa4\xac\x01\xc9\xa2\x1e\xbc\x18\x31\x68\x9e\xd2\x27\x70\xaf\xa9\x70\x88\xc2\x02\x77\x79\xed\x00\xb8\x9a\x0d\x22\x92\xc7\xc6\xc2\x8c\xa8\x31\x89\x8c\xa6\xf7\x0e\x37\x97\x01\x8c\xee\xbf\xdd\x81\xcb\x8e\xeb\x21\x81\x46\xe5\x33\xb9\x3a\x5e\x6d\xaf\x2d\xb4\x1f\x2e\x76\x6f\xd9\x84\xde\xb8\x10\x83\xc6\x43\x45\xcb\x9e\xe1\xbf\xac\xa3\xdf\xbe\xfb\x9d\x6b\xf5\x0d\x1b\x8a\xfc\x6f\xdf\xfb\x0e\x98\xb5\xa3\xdf\xbe\xff\x1d\xa5\x42\x48\xd6\xcd\xf6\xe7\x4e\xa1\x49\x7c\xd3\x22\x58\x0b\xbd\x97\xa9\x9d\xd8\x12\x55\x6b\xf6\xe9\xa2\x53\x77\x51\xf9\x0b\x1c\x11\xa5\x6a\xd1\xc4\xe2\x07\x34\x04\x4d\xc5\x3e\xf3\x99\xe7\x38\x5c\x45\x52\xa3\xe7\xbd\xa0\xd4\x24\x89\xc3\x5e\xa9\x97\xb3\x32\x77\x17\x29\x42\x70\xfb\x7a\x6c\xf2\x52\x8a\x92\x93\x97\xf9\x1e\x47\x0d\x93\x2e\x16\x70\xca\x30\x78\x95\x0c\xe2\x1f\xf8\xd7\x87\x34\x37\xe2\x52\xb9\x99\xef\xc3\x9e\x9c\xd0\x1e\xb0\x71\x15\x49\xa9\xb2\x2d\x2b\xc3\x40\x84\x42\x71\x5e\x8c\xd8\x68\xb9\x48\x46\x14\x01\x01\xac\x8e\x8d\xbb\x66\xd3\xba\x08\x10\x79\xc3\xf3\xea\xc4\x21\x62\xcd\x19\x90\xc9\x46\x85\x00\x2b\x6c\x89\x97\xf2\x5a\xff\xb6\x75\xe2\xf1\x7f\x1f\x1b\xd5\x6f\x6f\xc6\x18\xf7\xf7\x91\xcd\x2b\x22\xeb\xdc\x4f\xcd\xc1\xff\xed\x9a\x5d\xc9\xa3\x72\x07\x39\x62\x82\x62\x6b\x69\xce\x62\xd8\x37\xeb\x2e\xec\x01\x58\x6a\x8f\xa3\xa2\x81\x97\x24\x5e\x4b\x0a\x28\xbe\x2d\xf4\xd3\x0e\xb1\x95\xf5\x66\xca\x35\x53\x7f\x57\x81\x38\x20\x92\x80\x10\x88\x17\xf3\xd8\x4c\xfb\xa9\x8e\xb4\x35\xa1\x8a\x95\xac\x72\xf6\x66\x95\xce\xec\x24\xbb\x57\xa1\x58\xb6\x31\xd3\x5e\xdb\x04\x11\x04\x0e\x81\x19\xf9\x11\x8d\x83\x9a\x66\xe9\xb8\x05\x24\xe4\xfc\xdd\xa8\x39\x8e\x4d\xf1\x7a\xeb\x23\x87\xd9\x2e\x14\xe1\xb6\x78\xb1\xda\xde\x7d\x12\x2e\x71\x34\x1b\x8c\x1a\x67\xee\xb4\x9d\xe1\xe8\x3f\xfd\x8d\xef\x4b\x49\x07\x61\xdc\xf0\x31\x80\xbc\x53\x72\x14\x0b\xd0\xb9\x35\xdb\x9e\x78\x9a\x00\x40\xdd\x28\x5f\xdf\xb1\xab\x96\x01\x42\xc4\x77\x23\x7c\x00\x8a\x47\xd1\x1b\x89\xe1\xd3\xa6\xc5\x25\x11\xcf\xa8\x58\x99\x84\x23\x88\xab\x43\xda\x38\x62\x5a\xf5\x03\x61\x62\x66\x39\x59\x1f\x52\x22\x8a\x3b\xab\x71\xa3\x22\xcf\x18\x5a\xe4\x26\x83\xd1\x27\x31\x5b\x1c\xe9\x6a\xd3\xfb\xd1\x7a\x74\x91\xbf\x42\x73\xdc\xef\xd8\xcb\x0b\x64\x2e\x3c\x37\xd5\x1c\xa0\x17\x7b\x79\xb8\x18\xfa\x12\x3c\x99\x97\x74\x2a\x8f\x27\xfd\xe9\xc5\x2e\x90\x32\x0d\x02\xf7\xc7\xd6\x90\xc1\x22\xd1\xaf\xb3\x78\x49\x7b\xe2\x70\x03\x80\x61\x18\x45\xfb\xec\x85\x58\x38\x8c\xcc\x43\xec\x73\x11\x69\x1e\x13\xa4\x64\xf0\x9f\x44\xbf\xfc\xff\x8c\xfc\x5f\x15\xcb\x05\x27\x02\xec\x1f\xe8\x97\xc5\xbf\x14\x08\x10\xe4\x9a\xed\xd6\x4b\x28\x7e\x01\x35\x9e\xd8\xc7\xa0\xeb\x67\x73\x70\x5c\x42\x08\xca\xd8\xc3\xba\x0f\xee\xe6\xe4\x20\x10\x10\x14\x9f\xa5\x8c\xd5\x24\x54\x66\xf5\xd9\xf9\x5c\xdd\x45\x31\x1a\x83\x6d\x2a\x05\x6b\x10\xf3\x07\x29\x19\xd8\x42\x10\xfb\xb4\x8d\xa1\xe6\xdc\x3c\xba\xc1\x9a\xe9\x97\x32\xdf\xeb\xd6\x73\x25\x54\x77\x0e\x03\x55\x42\x00\x4b\x00\xa0\x07\x6f\x08\x7d\x31\x3c\x68\xcf\xb6\xbc\x21\x47\xd4\x26\xee\xef\xcd\x9b\x18\x48\xd5\x3b\xd4\xc3\x3b\x78\x1d\x17\x84\x6c\xfd\x03\xfd\x10\xe2\x25\x6b\xc8\x7c\x3b\x67\x09\xb3\x4c\x39\x5b\x41\xd0\x61\xe5\x3d\x45\xcf\x11\x17\xa7\x5b\xb6\xa1\x4b\xba\xba\x0b\x42\x33\x5d\x26\xa1\x1f\x60\x94\x94\xa2\x91\xf4\xb7\x55\xac\x40\x05\xf5\xfd\x7d\xfd\x5d\x35\x4f\x4d\xc9\xe5\xcc\xbd\xf0\x97\x7f\x5f\xeb\x50\xfb\x3f\x7c\xe7\xea\x29\xe4\xfa\xf0\xe2\xc5\x04\x6b\xec\x0a\x78\xdc\xf8\x11\x05\x62\x59\xfc\x38\xff\xdf\x2c\x22\xbd\x31\x62\x91\xad\x3c\xf4\x0a\xaa\x58\x2e\x51\x40\x11\x1a\xba\x8a\xb5\xe2\xcf\x92\xe8\xc9\xdc\x42\x18\x71\xd5\xae\xa1\x4a\x57\x16\x12\xe0\x74\x0a\x02\x73\x55\x32\x5f\xd2\xff\x4c\x64\x91\x82\x93\x89\x46\xb5\x93\x8e\x2c\x5f\xcc\x47\x87\x5b\xc0\x3c\x43\x70\x20\xc8\x14\xf8\x09\xfc\x8d\x39\x8f\x92\xe3\xd3\x4d\x31\xa4\x55\xa8\x93\xa3\xa1\x22\x1f\x58\x09\x95\x66\xa6\xbb\x91\x1e\x38\x5c\x05\x59\xd2\xca\xd3\x30\x78\x43\x25\x0b\x91\x9e\x34\x96\x1f\x8b\xcd\xdc\x72\x52\x56\xca\x6c\x95\xf4\xdd\xe9\x0d\xbf\xe5\x1d\xdc\xb4\x3a\x94\x1e\x1d\x2d\x3c\x83\x68\x6b\x2b\x15\xf3\x9e\xab\x8f\x93\xd2\x65\x74\xef\x51\xd4\x98\xb2\xb9\x75\x56\x98\xa1\x1a\x0f\x3d\x32\x71\x81\x9c\x12\xae\x92\xeb\x94\x4e\xc3\xf9\xf5\xa2\x5b\x19\x3d\xe4\xb4\xad\xb1\xc3\x66\xaa\xb1\x48\x63\x22\x5e\x46\xa1\xac\x67\x94\x9b\x22\xae\xc1\xef\x1a\x10\x51\x19\x37\xe4\x79\xe3\x20\xe8\x29\x08\x4c\xb8\x9b\x52\x8e\x9a\xd0\x3a\xac\x34\x89\x1b\xac\x0d\x6d\x3c\x08\xd6\x6f\x2b\xed\x50\x6c\x3c\x19\xc5\x5a\xc6\xbb\xc8\xa4\xb5\x0d\x32\xbf\x5b\xef\x43\xea\x88\xd6\x40\x62\xff\xf5\x54\x9b\xfb\xe7\x30\x0b\xe1\x5d\xd4\xf5\x8b\xdb\xfe\xde\x4d\xe3\xe2\x36\x3b\x30\xd5\x0e\xe9\x6b\xa5\x99\x8d\x78\x5d\x56\xf3\x8a\x82\xd7\xfc\xae\x27\x6d\x4c\x17\x2d\x39\x94\xfa\x87\x2c\x39\x91\x29\xda\xe8\x98\x4a\xba\x9f\x48\x81\x4e\xe0\x20\xcd\x65\xf9\xb0\x44\x5a\xd5\xd6\x19\x15\x03\x36\xcd\x0e\x00\x68\xb2\x78\x6b\x18\x1a\x3e\x56\x2e\x1f\x2b\x14\xc8\x8c\xe3\xef\xdd\xd6\xb9\x78\xe2\x0b\xa0\x6f\x74\xbd\x04\x6c\xfd\x11\xfd\x48\xe8\xc0\x61\xd4\x34\x38\x9e\xf4\x85\x43\x00\x63\x93\xc4\x63\x13\x36\x66\xf2\x26\x4c\x37\x58\x62\x5d\x1f\x2e\x1f\xba\x65\x90\x3a\xbc\xb9\xbd\x8d\xf1\x11\x7a\xf3\xe6\xce\xa1\x23\x89\x56\x75\x5c\xfd\x11\x03\x82\x24\x16\xcb\x9c\x44\x94\x7f\x34\x4a\x22\x0c\xd6\x81\xc3\x4c\x9d\x3f\xf6\xc8\x96\x50\x92\xaf\x98\x01\x46\xaf\x8b\x85\x46\x7c\x39\x62\x8c\x5a\x7a\x5f\x5d\x38\x35\x0d\xfc\x5a\x66\x8d\xdd\x02\xd2\x38\xb5\xb4\x5e\x12\xb3\x4a\x78\x4e\x99\x49\x22\xd9\x78\x1b\xcb\x1d\xd9\xc3\xf9\xab\xdc\x4c\x34\xed\x9a\x2e\x36\xd2\x4a\x38\x5a\x54\xa1\x84\x12\x1c\x60\xa1\xe0\x06\x1d\xe7\x94\x76\x62\xfc\xb3\xdd\x67\x75\x26\xee\xf8\xeb\x73\x06\xc4\x00\xe6\x92\x33\x80\x28\x9b\x5a\x1c\x08\xf8\xa2\x62\xde\xc8\x77\x99\x3e\xa8\x02\x5e\xaf\xb5\xec\x5f\x49\xdd\x39\xb3\xd9\xb9\xfa\x40\x3c\x10\xd0\x71\x5f\x43\xa5\xa4\x50\xd5\x65\xe2\x7f\xad\x3b\x62\x45\x49\x97\x25\x12\x3f\x66\xb4\x8d\xbc\x89\x33\x7e\x9a\x13\x3e\x3a\xe8\x87\xb6\x95\x1e\xa3\x71\x0f\x78\x3f\xb7\x1f\x8d\xa5\x14\x4a\x24\xa6\x77\x76\x05\x78\x34\x99\x02\xa8\xdd\xa0\x58\x3e\x43\x8f\x3c\x1e\x36\xd5\x6f\x8f\xff\x8c\x7e\x32\x6c\x05\x8c\xe6\xe8\x09\xbd\x9a\x1a\x8b\x46\x38\x94\xee\x80\x52\x98\x52\xc4\x20\x32\x12\x2e\x5b\xa1\xd1\xed\xc0\xb0\x36\x69\x5f\x0e\xd3\xc7\x91\xfd\x20\x0d\x83\x63\xb8\x51\xa6\x6c\x84\xf6\x50\xb1\x3c\xc5\x00\xcc\xe3\xa2\xfa\x21\x2f\x28\x72\x86\xe9\x8c\x9c\x83\xb9\x49\x26\xc8\xad\x89\x60\xe4\x3a\xa6\xf4\xdb\x9f\x6e\xdf\x9a\x8e\x4e\x40\xaf\x10\x66\x07\x83\x83\x91\x7d\x37\x73\xcc\x42\x1e\x80\x76\x07\xaf\x1a\x8b\xfd\x93\xac\x62\xbf\x05\xb3\xb5\x68\xb6\xc4\x4b\x03\xaf\x52\x28\x9e\x2e\x16\xea\xb9\x12\x65\x7f\x4a\xdb\x21\xdd\xec\x7b\x66\xb3\xc0\x2a\x90\xa5\xbe\x6b\xd3\xc0\xba\x18\x99\x69\x89\xe9\x2f\xea\x0c\xa3\x80\xc1\xcc\x63\xd9\x5c\xc3\x4d\xed\x18\x6f\x06\x11\x8a\x85\xbd\xa0\x98\x4c\x4b\xc7\x32\x45\x3c\xbb\xd9\x75\x1b\x7d\x85\xd8\xbf\x5b\x33\x3a\xbf\x4f\x2e\xbc\xb9\x52\x84\xcf\x21\x57\xa4\x1c\x69\x8e\x7f\xf4\xd5\x57\x7f\x3a\x19\xba\xd0\xf4\x01\x73\x53\x29\xc0\xc0\x7b\xba\x37\xf7\x5e\xb2\x39\x5a\x2c\xb2\x76\x55\x60\xf0\xa5\x61\x71\x16\xa7\xa9\x83\xc8\x53\x93\xcc\xa7\x8a\xe1\x0c\x0f\xcb\xdb\x30\xb9\x7c\xa9\x5e\xa0\x44\xac\x40\x33\x90\x47\x7d\x9b\xd5\x32\xee\xdb\x96\x52\xcc\xd1\xba\xf2\x16\x00\x03\x0e\xad\x84\x84\xcb\x89\xae\x6a\x6c\xa8\x64\x51\xc7\xe9\x7f\x9e\xe8\xd9\x22\x76\x13\x23\x9a\xde\xc6\x54\x9b\xc4\xd4\x8a\x63\x7d\x1f\x8b\x72\x65\x1b\x11\xc7\x06\xee\xa6\x00\x83\x00\x02\x80\xbb\xa2\xc8\xf3\xeb\x3a\x7d\xaf\x7b\xa7\x35\xca\xb6\x90\xd6\x2b\x7b\xf4\xc3\x54\x39\xe8\x07\x4f\xa9\xe5\x15\xcb\x07\x6d\x06\x75\xf6\x3e\x77\x66\xfa\xf7\x9f\xb2\xed\xaa\xd1\x43\x74\xf0\xa1\xd5\x97\x09\x5c\xe8\x30\x95\xb2\x45\x24\xb1\xd0\x42\x59\x80\x76\xc4\x97\x77\xa3\xb4\x61\x10\x88\x41\x6b\x13\x51\x2e\xc9\x23\x20\x2a\x31\x80\x0a\xbd\xc9\x34\x54\x39\x77\x0a\x78\x59\x45\x48\x25\xf9\x8b\x41\x4e\xd3\x1a\x64\xaf\x4b\xe5\x1b\xa3\x09\xae\x0a\xe8\x4c\x0e\x25\xea\x7f\x17\xf5\xbb\x8b\xf7\x82\x0e\xcb\x26\x02\x6a\xd7\x65\xa2\xa4\x29\xd7\x67\xbc\x42\xa8\x82\xa1\x91\x98\x31\x13\xba\x7a\x74\x78\x8c\x18\xe9\x8d\x98\xc1\xd6\xba\xba\xf6\x74\xc7\xb8\xba\x6b\x37\xf8\x8e\x88\xb6\x49\x31\xdb\x45\x0a\xc4\xcd\x72\x6e\xa1\x94\xb8\x6d\xe0\x54\x24\xbc\x55\x85\xe1\xfa\xd7\x6e\x72\xa6\x2c\xf4\x4d\xa1\x91\xb7\xce\x6c\x77\x19\x36\x4e\x7c\xc8\xee\x43\xce\x40\xe2\x3d\xd2\xb9\x07\x62\x1d\xf8\x9e\x08\xcb\xd9\x91\x09\x43\x9f\x29\x93\x26\x7a\x70\x93\xe3\x6f\x73\x0b\xf5\x46\xc8\xc7\x4d\x8f\xc3\xf7\xe6\xf6\x14\x1a\xe6\x97\xce\xa0\xce\x89\xbe\x90\x83\x0f\x47\x83\x58\x27\xfe\xd4\x7b\xd2\xd2\x01\x84\x6c\xa8\x3f\x38\xa3\xf3\x9f\x79\xbc\x68\x9f\x18\x0f\x1e\xcc\x73\x20\x02\xe7\x78\xa4\xe4\xe8\x9a\x89\x33\xc6\x2f\x73\x0c\xf5\x7d\x12\xba\x23\x6d\x1d\x00\x99\x8c\xf4\x11\x88\x48\x88\x0f\xea\x40\xcc\x4b\x80\xc8\x21\x14\x63\xea\x69\xa4\xae\x96\x78\x29\x1c\x14\xe5\xd3\x7d\x08\x0a\x91\x64\xb4\xaf\x8d\xf8\x89\xb7\xd4\xa3\x24\x5b\x2d\xce\xa6\x40\xb8\x55\xbc\x4a\x31\x63\x0c\xfd\x91\x02\xc3\x92\x86\x9b\xf9\x8c\xff\x9f\x02\x51\xe5\x2c\x2a\x19\xc9\xa6\x92\x02\xd1\xe7\x14\x86\x33\x1f\xc3\x3f\x29\xac\xa9\x64\xd7\xd6\x8c\x29\xa2\xf6\xfc\xa6\x3c\x10\xf0\xa8\x8d\x2e\x91\x73\xcd\xfd\x6b\x78\x8a\x54\x86\x4a\x76\xd3\x47\xf7\x50\xc2\x3c\xa4\x23\x94\xe8\x0f\x45\x73\xc6\x51\xf2\x5e\x89\x22\x83\xf4\x47\x4a\x65\xe1\x7d\x48\x07\x2f\xbd\x2e\x3f\xe0\x08\x4b\x3c\x4a\x13\xe3\xda\x67\x3b\x58\xfd\xa9\xb9\x3f\xa5\x22\x15\xd7\x29\xe8\x04\xa5\x96\x50\x85\x4f\xde\xd1\xc2\x6c\xad\xcc\xa1\x4e\x9b\x1a\x94\x76\xc8\xed\x82\x53\xed\x22\xe2\x02\x37\x36\xf3\x33\xb0\x57\xe9\x43\x23\x27\x5d\x99\x81\x68\xe0\x13\x30\xca\x56\x25\xc3\xa6\x36\x93\x94\x5f\xa0\x55\x6c\x26\xc1\x26\x58\x6c\x83\x0c\x08\x7f\x4b\x69\x0f\x70\xee\x23\x57\x3b\xa3\xe7\x45\x85\x87\x67\x55\x69\xf0\x58\x0f\x8c\x4e\xca\xab\x67\x3a\x8b\x9b\x7c\xc8\xf9\xe8\xe9\xe4\x57\xfe\xdc\x05\xe3\xc0\xeb\x7c\x2c\x9a\x79\xd6\x39\x04\x81\x85\x45\x69\x95\x12\x28\x72\xa8\x31\x48\x0d\x20\x4e\x83\x58\xff\xdf\x7a\xff\xf4\x95\x45\x11\x49\xd4\xef\x0f\xc7\x86\x86\x86\x8e\xe1\x41\x3b\x56\xaf\x95\xec\x0a\x7e\x2c\xc8\x98\x38\xf3\x8d\x44\x40\xc1\x98\xde\x94\x8c\x50\xd0\x13\x92\x11\xf3\xe2\x14\x54\xe6\x44\xc6\x91\x8c\x40\xe6\x95\x84\x1b\x60\xe6\x6f\x67\x75\x81\x29\x05\xd9\xf9\x9a\xad\xe2\x8b\x12\x7b\xe4\x96\x72\xf9\x53\x61\x34\xf2\x37\xf2\x47\x02\xa2\x08\x5d\xd1\x48\x3e\x87\x3f\x38\xa1\x72\x0c\x82\x4d\x32\xc7\xf1\x5f\xa3\x0c\x95\xd9\xca\xaf\x1c\x3d\xee\xe9\xb6\xc7\x68\x96\xe9\x60\xf9\x5a\xfb\xfe\x16\xec\x94\x41\xef\x51\x1c\xa7\x6d\xa4\x64\x37\xb1\x46\xc8\xcd\xcd\xa9\x94\x86\x29\x77\x2a\x2d\x88\x6c\x09\x96\x28\xac\xe0\xfa\x51\x9c\xe6\xfa\x94\x0c\x2c\xe4\x34\x33\x9f\x5b\xe8\xeb\xaa\xd9\xdc\xb0\x44\xb3\xba\x3d\x89\x36\x38\x26\x39\xf3\x85\xed\x59\x65\x64\x8d\xf0\x97\x35\x34\x08\xcc\x18\xb7\x96\x52\xc3\xd4\x9f\x77\x29\xe5\xf5\xf9\x98\x8c\x00\x6f\xa3\x7b\xa5\x97\x1b\xb0\xc4\x91\x21\x75\x19\x32\x27\xe0\x9f\xf4\x05\xd2\x14\x0c\x7f\x21\x7d\xcf\x19\x7c\x9a\x79\xe0\x28\xbd\x5d\x46\xd2\xb4\x50\x84\x72\xa2\x54\x27\x57\x5f\x78\x6e\x5e\xa4\x72\xb5\x2e\x9d\x91\xd4\x24\x1c\xb7\x4f\x7b\x09\xd7\xbe\xb1\x9d\xd1\x5d\xc0\x23\x4e\xe7\xdb\xb8\x4c\x14\x9d\x8d\xc7\xb1\xc5\x69\x88\xe6\x10\x88\x86\xa4\x73\x08\x02\xda\xad\x8b\xae\x2c\xa6\x70\xcb\xaa\x0b\x09\x8f\x4b\xed\x82\xdd\x31\xb2\x72\xa7\x62\x6a\x0a\xf1\xc9\x20\x6c\x6c\xaf\x5e\xe1\xf7\x5e\x4c\x9e\x45\xdc\x62\xa8\x25\xe5\x2a\x1d\x59\x12\x3e\x3d\x21\xe1\xd3\x99\xec\xc5\x73\x9a\x03\x18\x23\xe6\xd7\x5e\xac\xc2\x16\xed\x6b\xe7\x60\x4a\xd1\x75\xe6\x06\x39\x9c\x47\x05\xf2\xc4\x0a\x63\x19\xe2\xe3\x27\x19\x38\x7e\x7c\x8b\xa4\x73\x73\xa7\x33\x7a\x29\xb2\x52\xd5\x92\x33\x6c\x86\xab\x72\xe6\x6b\x1d\x59\x69\xce\x2b\x04\x56\x71\xbc\xe9\xb0\xe4\x4f\x1b\xb6\x8b\x79\x59\x29\xc5\x24\xb2\xe3\x9c\xc7\x87\x1c\x20\xcc\xda\x31\xa9\x3f\xa2\xbf\x4d\x19\x6c\x2c\xc6\x32\x41\x03\xa3\xc1\xa0\x66\x47\xb1\x60\xd0\x28\xde\xbc\x41\x50\x68\xb2\x2d\x23\x28\x34\xb2\x5a\xc9\x60\x4f\xb3\x6e\x97\x68\xcf\xb4\xb9\xc6\xd5\x94\xe9\x8b\x9e\x52\x21\xae\xb2\x34\x2a\x86\x2a\x4b\xa5\xc1\x91\x14\xe6\xca\xbe\x1c\x8b\x8b\x4b\xe8\x2e\x0f\xec\x57\x0b\x84\x89\x01\x47\xf4\x98\x85\x62\x7f\x7f\x4f\x5f\xcd\x19\x72\x31\x90\xb2\x5e\xcb\x83\x08\x36\x32\xdb\xbe\xb7\xc7\x4e\xb1\x02\x80\x46\x56\x0c\x8a\x6a\x3c\x6f\x3d\x19\xe9\xec\xdc\x90\xcf\x6c\xbd\x91\x54\x05\xca\xff\x94\x4a\xc8\xe2\x15\xcb\xe3\x4c\xb6\x0c\x60\x10\x50\xbe\xa1\x4b\x55\x60\xdd\x41\x67\x28\x8b\x7f\x51\x2c\xa8\x9b\x11\xb6\x8c\x18\xb2\xd6\xb3\xcd\xf6\x6a\x43\x01\x62\xb1\x2c\xe8\xd8\x26\x3e\x1d\xa1\x6e\x19\x4b\x5c\x12\xd8\xc8\x0d\xb2\x14\x90\xa5\xf9\x97\x46\xa0\xd7\xb4\x3f\x3d\x16\x4c\x3d\xd2\x15\xd0\xdf\xe8\xd1\xad\x60\xf6\xa2\x3f\x76\x37\xd4\xc1\xf8\x17\xa7\x63\x10\x1c\xb8\xa7\x21\xd4\x7a\xc1\x29\x6f\x6e\x4f\x77\x46\x9e\x52\x3e\x72\xfa\x46\x3e\xc9\x9c\xd3\x84\xc3\xb4\xc5\x1d\x59\xfb\x3e\xf7\x74\xf1\x81\x56\xc5\xec\xa6\x4e\x7f\x8b\x4f\x0b\x62\xac\x3c\x47\xa5\x80\x0a\xb5\x5c\xbf\x97\x69\xcf\x4c\xb4\x56\x5f\x85\x5f\xab\x35\x5b\xd5\xec\xdc\x9c\xe3\xca\xf1\x9a\xb0\x78\xb8\x0b\xad\xb5\x35\x0a\x42\x55\x9f\x23\x0e\x18\xea\x63\x0e\x25\x02\x4c\xc1\x8f\x09\x9c\x8c\xc1\x36\x5f\x4e\x61\x22\xa4\x17\x4f\xcd\xb5\x3f\x5a\x08\x17\x30\xe6\x4c\x8d\x29\x01\x30\xcb\x9f\x38\xb1\xeb\xa1\x10\x9e\x71\x66\xcf\x60\x7b\x4e\x61\x9a\x2a\x86\x6b\x5a\xde\x26\x89\x78\xaa\x84\xc5\xc4\xf9\x99\x99\x96\xa2\x75\xd5\xf3\x0d\xec\xbb\xdc\x58\x34\x5d\xfc\x31\x3d\x28\xd1\x0a\x3c\x5e\xe2\x14\x12\xdb\x1f\x95\x69\x9d\xb7\x40\xe8\x9f\x82\x51\xac\x21\x06\x37\x65\xcb\x8a\x3e\x45\xef\x91\x2f\x73\xb5\x53\x05\x67\xa8\xc2\x02\x2c\x2d\xad\xf2\x33\x53\xcd\x0c\xd5\x48\x89\x4e\x5f\xe3\x8b\x4f\x5e\x78\x68\x88\x5c\x68\xa0\xec\x72\x73\x0e\x0e\x63\x72\x00\xa6\xcf\x2e\xb2\x80\x94\xe8\x2c\xde\x0d\x32\xba\x94\xc1\x9c\x5e\x11\x01\x2a\xd7\xde\x9d\x90\xa7\xa1\xe2\x88\xc3\xc7\xaa\x33\xb2\xa4\xe3\x66\xba\x62\x92\x51\x49\x05\xc2\x29\xa9\xc2\xbf\x30\x09\xf2\x7e\x98\x78\x6e\x67\xbb\xbd\xbe\x41\x9c\x8c\x60\x50\x30\xb9\x80\x09\xd9\xe6\x57\x30\xd2\xf8\xe2\x86\x7f\xfb\xac\x91\x26\x50\x77\x80\x3a\x2f\x60\xc7\xba\x20\x32\xe6\x3d\xe7\x73\x80\x5e\x4e\x80\xa4\xb1\xd3\x40\xe2\x9f\x3e\x49\xb4\xba\x82\xbe\x92\x66\x28\x8e\x68\x59\xf1\xf9\x90\x1c\x5e\xe6\x95\x62\xde\x3f\xe2\x90\x4c\x29\xe8\xf5\xb8\x54\xae\x29\xa7\x36\xf0\x9d\x91\x81\x51\xe5\x2c\x37\xb2\x2f\x9a\xa5\xb1\x68\x4c\x06\xeb\x9c\xdd\x93\x3c\xc3\x23\x53\xad\x8d\x5b\xad\x95\x75\x54\xc8\x3f\xb9\x14\xfc\x38\xcb\xa1\x98\xfc\xcc\x0e\xa5\xf1\x3c\xa3\xa3\x5b\xc2\xd7\xd1\x54\x4e\x29\x8a\x3f\x61\xb6\x8d\x9e\x1c\x83\x23\x2b\x6c\x1a\x86\xf8\x57\x6d\xa7\x8a\xe8\x6d\xe8\x96\x28\x3b\x1f\xbe\xcf\xe4\x3a\x65\x9b\xbc\xa4\xcf\x8c\xa0\x51\x60\x67\x11\x0d\x8b\xe4\xde\xc6\x89\x22\x5d\x35\x21\xca\xde\x88\x39\x9e\x86\x28\x2f\x36\xaa\xb0\xf0\x05\xb3\x19\xd5\x1e\x17\xc4\xb2\x8d\x4d\xa5\xc4\xe5\x60\xab\xd1\x57\xe3\xa4\x69\x5c\x2b\x66\xdc\x78\xa0\x62\x2f\x4e\xcf\x20\x29\xdf\xf9\x66\xa0\xef\x09\x78\xe3\x85\x1d\x33\x13\x0e\xc6\xac\x71\xfc\xde\xfe\x39\x49\x45\x33\xff\x12\xba\xf4\xc7\x56\x3b\x0f\x65\x79\xc2\x3c\x99\xd8\x41\x18\x57\x35\xe2\xcf\xde\x6d\xaf\x6d\x72\x57\x70\x72\x70\x86\xdc\x39\x5c\xd4\xa3\x57\x9b\x3b\x23\x9d\xed\x5d\x15\x49\x48\xf5\x51\x4f\x5f\x74\x5d\xcd\x16\xe8\xd8\x4c\x0a\x9d\xa3\xaa\x13\x23\xfc\x44\x11\xd2\x27\x36\x2f\xad\x4f\xb4\x7e\xb9\x4a\x92\x5b\x7a\x3a\x35\x03\xc5\xfe\xee\x8c\x6a\x46\x1b\xaf\x09\x64\x0c\x5f\xb9\xa3\x3a\xbf\xd5\xee\x19\xa6\x11\x93\x3e\xc7\x56\xa3\xbc\x72\xfa\x1b\x8d\xba\xb8\x4b\x56\xb1\xd7\x18\x20\xbb\x8c\x35\x0a\x1c\x26\x64\x30\xa0\xbb\xcb\x37\x62\xbd\x04\x3c\xfd\xf7\x18\x2f\x4d\x1b\x56\x8a\x7a\x3f\x96\xc8\xea\x4f\x11\x8b\x17\x67\xf7\x92\x2a\xa1\xee\x50\x4e\x7e\x44\x77\x98\x34\x63\x64\xcc\x0c\x8a\x49\xb1\x2d\x2d\x30\xbf\x1b\xec\xeb\x23\xf4\x75\x1e\x48\x72\x0c\xf8\xad\x11\xfa\x5d\x4c\x05\xa9\xa1\xfa\xdd\xc6\x88\xe4\x44\xee\x75\xc6\xbb\x48\xbc\x7e\x1a\xb4\x0a\x69\x15\xf8\xbf\x33\x68\x3f\x4d\xd1\x8e\x21\xaa\x94\x7b\x5c\x94\xf8\x57\x7f\x34\xc4\x62\x16\xfb\xe5\x55\xb6\xc6\x46\x98\x41\x73\x6b\x0a\x01\xd5\x6a\x89\x97\x03\x11\x54\xbd\x5a\x2a\x05\x12\xd3\x63\xbe\x46\xf3\x2a\x9f\xa3\x50\xe6\x68\xa1\x8e\x28\x06\x64\x3f\xb3\xcd\xf1\xf6\x06\x0c\xdb\xcb\x32\xfc\x3d\xd1\x02\x97\x46\x9b\xe0\xce\x42\x20\xb6\x2f\x19\xae\xd8\xaa\x40\xec\x1e\xc1\xd2\x63\x20\xbb\xf1\xa6\x61\xa3\xf3\x36\x46\x76\x5f\xdd\x6c\x5f\x9e\x6d\x6f\x3f\x6c\xee\xec\x85\xa5\xac\x9a\xcf\x98\xa9\x66\xc3\x42\xb8\xd9\x4f\xe3\xa3\x60\x98\xa5\x54\x3f\xc1\x21\x65\x72\xcb\x69\xb5\x19\xf1\x4c\x98\x0c\x94\xae\x3b\xf2\x41\xc5\x0a\xc8\xb2\x86\xef\xf3\x10\x51\x24\xf2\x1b\x6b\x06\x9f\x6d\xe0\x8c\x21\x5c\x9f\xd2\x82\xe2\x25\xd9\x83\x89\x37\x25\xeb\xa6\xba\xce\xb8\xc0\x1c\x5c\xb4\x04\xf9\x0f\xc9\xee\x92\x69\x3f\x1e\x41\x9b\x07\x51\xff\x94\x72\xcd\xdf\x1a\x37\x0e\x62\x0d\x19\xf0\x24\x20\xf2\xe2\xb4\x44\x04\x03\x95\xdc\x7c\x14\xa6\x5b\x35\x52\xac\x50\xb3\xc4\x87\xaa\x7e\xfd\x27\x0f\x31\x4f\x68\xa4\x5f\x13\xe0\x0d\x3a\xfe\xdb\xc8\xa8\x44\x29\x5f\x94\x18\xd9\xd7\x8d\x40\x5e\x52\x14\xca\xcb\x49\x33\x23\x23\x30\x01\x7e\xcb\x08\x30\xd5\x39\xab\x77\x61\x28\xfc\xb4\x15\x3d\x4d\x66\x32\x3e\xe8\xb4\x4f\x8d\xa4\x8d\x4c\x45\x24\x87\x77\x73\x24\x34\x99\x81\x42\x97\x1a\x02\x51\x57\x0c\x17\xb2\xeb\x41\xe2\xd6\x0f\xb3\x26\xcb\x04\x66\x0e\x3e\xd6\x16\x73\x04\xa6\x36\x80\xc8\x27\x10\xa5\x19\x75\x8b\xbe\x30\x25\xb2\x98\x83\x4a\x94\x3e\xf0\xd0\x34\xcf\xc6\x33\x93\x43\xc4\x65\x5d\x9c\x78\x52\x26\xa8\xb2\xc4\x10\x13\x67\xa6\x70\x89\xe0\x36\x2a\x62\x88\xfd\x51\x67\x9e\x77\x23\xa5\x67\xa3\x3d\x15\x36\xc4\x4b\x14\xa1\xd6\x49\x58\x33\x11\x4e\x6a\x86\x18\x4a\x99\xa6\x37\xd2\xbc\x85\x0e\x26\xe0\xe6\x20\x31\xab\x07\x72\xe8\x67\xfd\x3b\x9b\xfe\xf9\x1d\x34\x7a\xc6\x93\x19\xc7\xd3\x18\x25\x06\xaa\x75\x51\xa4\xf7\x8d\x4c\x2e\x64\x31\x8c\x13\x9f\x60\x18\x35\x2e\x72\x06\x25\x18\x43\xf4\x7c\x69\x1c\x60\x22\x62\x4a\xe6\x82\x37\xb1\x29\x01\x27\xcc\x99\xbb\x63\x94\x03\x9f\x4c\x99\x7d\x00\xad\x18\xb9\x18\x4d\x92\xf0\x7f\x6f\x64\xa6\xd2\x85\x49\x50\x24\xaf\x4c\x17\x8a\xf1\x9a\xfe\x91\x3b\x7f\x7c\xd5\xec\x96\x0f\xc5\x1b\x2d\x08\x8f\x30\x49\x49\xf8\x6d\x5c\x4d\x4c\x28\x2b\x35\x29\x93\x95\x0d\xde\x18\x65\x54\xf6\xe1\x8d\x16\xf1\x27\x76\x2a\x8c\x67\x9a\xcd\x93\x11\x85\x16\x37\x04\x72\x1c\xe3\x8b\x2f\xd9\x5a\x05\x44\x37\x14\x60\x51\x3d\xa0\xd2\x8c\xfb\x57\x2e\xb7\xd7\xee\x49\xbb\x06\xb5\xe3\xda\x46\x6e\x78\x95\xfc\xda\x48\xc3\xa2\xde\x36\xa1\x05\xff\xae\xfb\xab\xed\x68\xe6\x52\xaf\x5e\xab\xfc\x01\x26\x5f\xab\x38\x6a\x55\x96\x92\x84\x5a\x15\x61\xec\x3c\x86\x8d\x2a\x26\xdf\x48\xdd\xad\x40\xf8\xc5\xb3\xc8\x53\x67\xaa\x48\x3c\x73\x32\xfc\x82\x5a\x30\x3b\xd7\xba\xb3\xad\xca\xca\x4e\x05\xbb\x0c\x5f\x37\x85\x39\xa8\x09\x90\x73\x4d\x96\x5e\x7c\xff\x03\xfe\x29\x79\xf0\xe8\xc3\x17\x39\xfc\xed\x39\x1e\xb0\x23\x27\xf1\xdf\xdf\x5b\x47\x0b\xa4\x38\x55\xab\x41\x6a\x49\x58\x76\x60\xb5\xa4\x71\xd2\x59\x6a\x15\xa7\x86\xd3\x4e\x5b\x6e\x78\x05\xe8\x8c\x51\x61\x6b\xc3\xb0\x83\x65\x52\x85\xd6\xd5\x54\xf0\x31\xd6\x7b\x8b\xad\xa9\x91\x60\x6c\x2a\xb5\xe7\x2c\xfa\x28\x70\x06\xfc\xf0\xa5\x68\x1a\x06\x70\x2e\xf8\x50\x51\x01\x1f\x2a\xc2\x07\x6b\xd4\x43\x72\xd3\xe1\x57\x54\x37\xd0\x06\xc5\xbf\x72\xda\xc0\xc4\x57\x41\x8e\xb4\xaf\x9c\xfe\x23\x5e\xd6\xfe\x65\x32\xf2\x29\x78\x74\x0b\x33\xea\x9f\xd9\x8e\x7e\xbd\x7d\x9d\xcf\x24\x1b\x7c\x12\x1d\x90\x47\x6f\xa2\x1d\x8a\x94\x4b\x4c\x27\x9a\xc3\x2f\x5a\xc6\x0f\xeb\xa5\x0e\x94\x53\xe5\x24\x6a\x18\x1a\xd0\x44\x19\x3f\x15\x49\xef\x7d\x46\x0a\x0c\x96\x3e\xd1\x8b\x72\x2b\x8e\x17\xb0\x82\x29\x01\x4e\x8d\x34\x77\x76\xfc\xa9\xa5\xc4\xa2\xd0\x79\x4e\xb4\xc3\x49\xb5\x53\x6b\x74\x96\x7e\x54\x86\xdc\x14\xcc\x14\xbd\x2b\xdf\x80\xea\x29\xf1\x14\x30\x7e\x5f\x0f\x43\x0f\x60\x21\xd3\x41\x6a\xf5\x8a\x3c\x68\x68\x96\xa3\xdb\x7e\x25\x2b\x19\x10\x1d\x4a\x88\x04\x57\x34\x32\x7d\xcb\x0f\x38\xed\xa1\xb9\x77\x07\xd7\x0c\x6f\x53\xf6\x32\x8b\xb6\x20\x76\x7b\xbe\xff\x8d\x54\x9e\xba\x41\xb9\x97\x8b\x95\xf8\xa3\x4d\xca\x66\xa2\x9b\x65\x3b\xae\xce\x02\xf7\x06\x2d\x24\x87\xa6\xdb\x80\x69\xbd\x7e\x50\xa4\xc2\xc3\xf4\x23\xc5\xd3\x76\x74\x38\x72\xe3\xac\x5f\x09\x1e\xcc\xbf\xae\x62\x6c\x14\x66\xd5\x03\x86\x80\x0f\x76\x0e\xe4\xd5\xc3\x83\xea\xa5\x6c\x66\x12\xfc\x1b\x67\xfd\xe5\x7d\x74\x6b\x9b\x7f\xde\xad\x4e\x6a\xaf\x78\xe5\x18\x75\xc3\xc4\x81\x94\xfc\x37\x36\x82\x9a\xed\x0e\x57\xf2\x59\x7a\x6f\xd2\x1d\x24\xfb\xa5\x3c\x6c\xc6\xf9\x6d\xdf\xea\x81\xcf\xef\x70\x9e\x95\xe2\x5f\x6d\x32\xf3\xa1\xde\x4b\x5e\x02\x6e\xb4\xd7\xef\xf9\x17\xe0\x54\x5c\x95\x67\x3e\xd5\x93\xde\x6c\xfe\x6a\xbe\x5c\x91\x84\xf8\x22\xc4\x4f\x1c\xdc\x77\x7c\x3e\x44\x14\xcd\xf1\xa4\xae\xa2\xd1\x8e\x61\x41\x8f\x4e\x24\xb6\x40\xd6\x37\x04\x68\x75\x1a\xe7\x89\x6a\x34\x38\x45\xbf\x4e\x5f\x8f\x11\xa7\x3a\x17\x3a\x5d\x7c\x6a\xc6\xdd\x66\x60\xf6\x1c\x1a\x04\xd5\xda\xff\x86\xa1\x8c\xc6\x6e\x3c\x7e\x05\xba\x5e\x45\x17\xd9\x8c\x24\xf2\xa2\xb3\x1e\x2c\x9d\xe9\x2c\x5e\x8a\x9c\xdb\x7a\x0d\x6d\x87\xd9\x01\xa7\xe6\xd4\x41\xa0\xb0\xc5\x5c\x08\xbb\x22\x1f\xe8\xce\xea\x8c\xcf\xa6\xd5\x02\x91\x01\x18\xa3\x6c\x9d\x52\xe7\x88\x70\x31\x76\x1f\x70\x58\x12\xc1\x46\x6b\xd1\x35\xad\xea\xa0\x72\x33\xcf\x3a\x70\x8e\xf8\xc6\x1d\x3f\x87\x0b\xc7\x1e\x5e\x18\x1e\x1d\x56\x95\x4a\x4e\x9f\x97\x83\x21\x15\x32\xaa\x97\xf9\x64\x2f\x55\x87\x52\xcf\x65\x4b\xb0\xac\xf5\x6a\x16\xd7\x80\x38\xfa\xce\xf8\x75\xce\x05\x84\x96\xc5\x85\xad\x94\xd6\xd5\x90\xa4\x0e\xf7\xc1\x83\xea\x5a\x07\x03\xd2\x23\xf0\x9d\xf1\x29\x7c\x15\x3f\x01\xaf\x96\x6c\xd0\xce\x55\x23\x0b\x66\x7d\x06\x5f\xac\x03\x96\x8d\x6a\xc4\x17\x20\x52\x29\x65\x15\xcc\x4a\xc5\x02\x88\x6a\x46\x85\xd6\xda\x76\x67\xf1\xe2\x41\x15\xc8\x2b\x20\x63\xbe\x6e\x8f\x58\x67\x34\xd1\xad\xa6\xd8\x6e\x0a\xe8\x31\xcb\x2b\xf1\xba\x8a\x4e\xdf\xbf\xd8\x79\xcf\x95\xf1\x6d\xcc\xb4\x37\x6f\x25\xf1\xad\xcf\x71\x3c\x7c\x90\xba\x8a\x8c\x17\xb9\x6e\x51\xae\x26\xf2\x17\xb4\x7a\xf1\x93\x95\xba\x74\x0c\x1d\x5f\x3b\x13\xd5\xa4\x76\x0a\xc6\x61\x42\x3e\xe8\xae\x56\xcf\x7b\x75\x38\xb4\xd2\xe7\x97\xbd\x98\xc6\x0f\xa3\xa1\xef\x4f\x1d\xb0\x67\x89\xda\xe9\x9d\x27\x5b\x8b\x34\x92\xcf\xe5\x07\xed\x94\x31\x1c\xc7\xef\x6f\x30\x88\x44\xfd\x2e\xa3\x48\xb6\x17\x39\x50\xf4\xde\x07\xaa\xe0\xfb\xea\xf9\x53\xb6\x87\x81\x32\x83\x59\xb2\x57\xa7\x37\xe8\x4f\x2c\x06\x37\x40\x5e\x6b\xf8\x5b\xd3\xed\x5b\xab\xc9\x16\xe1\x2e\x2a\xdb\x5e\x8e\xbc\x10\xd2\x5b\xa0\xcb\x08\x6e\xa2\xce\xb5\x73\xfe\xd8\x59\x61\x9a\x13\xed\x38\x18\xbb\x9a\x15\x96\x5c\x4e\x2f\x32\x37\x06\x99\x40\x31\xd0\x6c\x99\x39\xf6\x64\x53\x98\x41\x85\xef\xc8\xfc\x70\x1e\x1f\xcd\xdf\x9a\x42\xff\x82\xc8\x38\x88\x1c\xd0\x05\x19\x5b\x68\x92\x47\xa0\x32\xd1\xdb\xf6\x8b\xeb\x9d\x6b\xb7\x39\x41\xb7\x59\x3f\x49\x7b\x99\x1e\xaa\x7a\x91\xbe\x0c\x6a\xdd\xda\xda\x4b\xa5\xa3\x50\xaf\x8a\x01\xbc\x91\x8a\xc1\xd5\x87\xfe\xe8\x72\xb7\x8a\x6a\x9c\x5c\x2f\x65\x88\x46\xed\xd8\x7e\x09\x89\x4b\x8e\x51\x08\x9d\xc8\x99\xec\x3c\x2f\xe9\xb0\x01\xb7\xed\x52\x44\xf2\x8c\xc8\xa4\x3d\xc9\xa7\x8e\xc5\xc8\xa8\x1e\xda\x61\xa8\xd8\xcb\x95\xfc\x55\xf1\x74\xf4\xca\x91\xf2\xe4\x93\xa2\x78\x7e\x11\xfe\x2c\x1c\x13\x7b\xf2\xe0\x90\xf9\xb3\x78\x1c\xaa\x01\xc8\xdc\xb9\x4c\x5e\x52\x95\x67\x3b\x51\x7e\xed\x1f\xce\xf4\xc2\x47\xeb\x6b\xe3\x85\x7c\xeb\x2b\x2c\x10\xa1\xd8\x3a\xe9\x58\xe8\x4f\x6a\xce\x51\x5d\xed\xf8\xa8\x88\xcc\x97\xad\x77\xda\x28\x24\x83\x88\x1b\x85\xb8\x89\x88\x0f\x88\x4c\x91\xf8\x6b\xf6\x07\xfa\x28\x22\x94\x5b\xbd\xf4\x55\x01\x52\x86\xce\x0c\xe7\xe4\x8c\x54\x2e\x39\x03\xea\x49\xfa\x58\x03\x5f\x60\x89\xf5\x15\xf9\xc3\x72\x85\xf8\x03\xad\x5f\xa0\x9e\xdc\x2a\x7a\x9c\x29\x11\x6d\x65\x35\x7c\x0a\xa2\x62\xd5\x2b\x92\x03\x40\x8f\xbd\xcb\x93\x41\xfa\xa9\xec\x2e\xef\x05\x85\x13\x0f\xcd\x48\xec\x29\x60\xd4\x52\x60\x45\x37\x1b\x62\x43\xf8\x08\x37\x3d\x14\x1d\xc5\x0c\x84\x24\xe4\x08\xa1\xd8\x9a\x1b\xd5\xc8\xea\x85\x42\xfb\x2b\xbd\x90\x4f\x3e\x92\x61\x8a\x68\xaa\xc4\x08\x63\x04\x74\x6a\x6d\x58\xfa\xe4\x95\xb1\x33\x65\x06\xa9\x56\x3d\x3d\x46\x8d\x8d\x89\xd7\xdb\xfe\xff\x3e\x51\x67\x8e\x42\x3d\x54\x67\x0e\xe2\xcd\x5f\xa9\x83\xdb\x0a\x28\x73\xf7\xb7\xea\x8c\x55\x31\x7d\xe5\x3e\x92\xb3\xf3\xba\x38\x0c\x7e\xca\xab\x87\xe2\x77\x22\x94\xc8\xd0\x73\x29\x4a\x44\x90\xa6\xc5\x3b\x74\x06\x71\x7b\xd8\xa9\x42\x34\x90\x48\x32\xe8\xab\x52\xce\xcb\x33\x8a\x4c\xfd\x88\xba\x10\x8d\x89\xf6\x69\x2a\xd0\x5a\x0b\xd3\xd0\xad\x82\x4d\xa4\x3b\xe2\xcf\x5d\xf2\x84\xc7\xcd\x7d\x3a\x95\xa9\xdb\x43\xa9\x5d\x6d\xf5\x02\x1c\x8d\x87\x0b\x30\xa1\xab\x2b\x19\x5d\x8d\xcf\x91\x8c\xa2\x32\x7c\xa4\x09\x42\x19\x22\xc3\x8f\xd1\x86\x2f\xa9\xcc\x3a\x81\x65\xaa\x12\x66\x65\xf8\xa8\x50\xa0\x27\x93\x14\xf1\x91\x92\xe4\x43\xbd\x5c\x40\xde\xc1\x5c\xa0\xbc\x83\xb9\x80\x1f\xd3\x22\x9a\x0e\xcc\x1d\xbd\x44\xc2\x05\xa9\xfe\x32\x42\xab\x8d\xb1\x53\xc3\xb1\x31\x9f\x84\x6f\x11\xa0\x34\xa2\xc7\xe4\x8e\x81\x62\x7e\xc2\xfc\x71\xd0\x71\x31\xc3\xda\x4e\xb0\xb6\xa2\x9f\xec\xa1\x82\x2a\x26\xc7\xe3\x82\xd6\xc3\x27\xfe\xec\x4f\xaa\x80\x34\x21\x05\xb8\x88\x48\xeb\xf1\xc9\x57\x91\xef\xe1\x63\x55\x54\xaa\x5e\xa4\x4a\x81\x50\x44\xf7\xcf\xb9\x1a\x26\xeb\xfb\x3d\x47\x98\xaa\x52\x8c\x9b\xc4\x08\x27\x7a\xe6\xc8\xaa\x96\x90\x0a\x63\x72\x69\x0a\x78\x82\x0b\x8b\x32\x72\xe4\xac\xc1\xe2\xc0\x20\xc5\x57\x02\x1d\xc2\x34\x28\xe1\xc3\x68\xb2\xbc\x78\x6b\x53\x26\x21\xbc\xbb\xac\x5e\xca\xad\x6a\x7d\x4c\x59\x85\x0c\x08\x98\x0d\x95\x87\x93\xc9\x79\x5e\xad\xd8\x57\x47\x7b\x2b\xe1\x2d\xfa\x3f\xcd\xf9\x9b\x8f\x82\x91\xfb\x49\x10\xb7\xce\xf1\x16\xfe\xfd\x4b\xc1\xc6\x6c\x37\x28\x7e\x81\x5a\x3d\x61\x84\x8f\x09\x45\x00\x39\x7f\x91\x78\xf6\xe1\x0b\xae\x94\x75\xd1\x5f\xd2\xa8\xc2\x06\x08\x01\xe3\x83\x97\x06\x56\xc6\xbb\x20\xeb\xe6\x32\x5f\xba\xd6\x47\x05\xab\xf7\x23\x55\xe0\x96\xbd\x2a\xe7\x02\xef\xfd\xf2\xe4\x09\xeb\x00\x6c\x42\x48\xc2\x0b\x02\x4c\x43\x0e\x84\x20\x04\x31\x20\xa2\x58\x22\x3e\x3e\xe2\x9c\x0e\x34\x8e\x7f\xc3\xf6\xd1\xef\x2e\x60\xdd\x6f\x62\xdc\x73\xe0\xf4\x61\x31\x31\x37\x7c\x65\xd8\x92\x1a\x3d\xd6\x97\xf5\x92\x57\xac\x96\x6c\xf5\xc5\x72\x07\x9d\x7a\xa9\x80\xe1\xb5\xae\x5d\xcd\xd5\x88\x01\xe9\x1b\xe6\xfc\x2d\xd6\x5b\x6f\xbf\xd5\x13\x3d\x95\x59\xaf\x84\x44\x03\x4f\xa5\x75\xf2\x8b\x5e\x8b\x1f\x67\xd2\x33\x3d\x55\xac\x22\x84\x3c\xfb\x9a\xe9\x85\xdf\x04\xc6\xaf\xa6\xeb\xd3\x82\x56\x36\xbb\x76\xba\x98\x17\x8c\x39\xf1\xd1\x97\x96\x68\x28\x22\x24\x42\xfa\xa4\x4c\x33\x8a\x03\xcb\x48\xe4\x23\x99\x1d\xf8\x6e\x44\x8d\xcb\xd4\x82\x4a\x05\x27\xd4\xa5\x58\x85\x81\x52\xe6\x0d\x36\x32\xe8\x36\x91\x91\xfa\x14\xfe\x89\x6f\x6a\x2f\xdb\x52\xf5\x62\x9b\xdc\x84\x69\xe4\x10\xd7\xc3\x08\x65\x4a\x30\x78\xd1\xa6\xa3\x7c\x5e\xae\x50\x48\x72\x79\x26\x85\x0b\xef\xba\x68\x33\x6f\xea\x46\x64\xb6\x95\x11\x2d\xd1\xc1\x93\x15\x7f\x23\x89\xb4\x24\xe2\x12\xad\x10\x05\xcc\x32\x9d\x25\xeb\x6f\xac\xe1\xf0\xd1\xb6\x64\x05\x32\x02\x52\xe3\xb1\xf5\x81\x2f\x03\x8e\xa4\x0b\x03\x4c\x94\x1b\xfd\x6d\x40\xd2\x6e\xf1\x9a\x46\xe3\x11\xe6\x20\xda\xee\xeb\x79\x04\xb6\x54\x29\x65\x99\xb2\x5b\xa9\xac\xf7\xac\xc1\xd3\x50\xb9\x6a\x55\x94\xef\xec\xfa\x23\xb8\x6a\x94\x9e\xb6\xb5\xf5\x4a\x3c\x62\x8d\x42\x8a\x66\xa3\x42\x8e\x22\x93\x22\xb9\x69\xa4\x4d\xb9\x6f\xa4\xcc\xe9\xef\xc7\x0c\x4a\x98\x4c\x8f\x7c\x52\x5a\x2f\xae\x06\xab\xb7\x28\xca\x4d\xd5\x2e\xba\x74\x46\x50\x4f\x47\xfa\xae\x01\xc9\x29\xd4\x7e\x81\x01\x9c\xc1\xe5\xbb\xfe\xab\xcb\x1a\xba\x56\x97\x37\x77\x99\xc7\x53\xac\xa5\x51\x4a\x3d\x89\x54\x17\xed\x89\xd8\x9a\x9a\xe3\x78\x9c\xeb\x5f\x64\xa8\x9b\x2f\x39\xe3\x79\xb8\x94\x68\xef\xca\x67\x39\x6b\xb8\x86\xee\x5c\x5f\x0e\xc6\xc4\xdf\x3e\x59\x07\x46\x1d\xaf\xc0\x03\xef\x56\xc1\xcd\xd7\x8a\x55\x09\xfe\x6b\x8f\xfd\x0c\x2b\xad\x58\x08\x3d\x58\x4c\x62\x26\x78\xc7\x33\x9e\x9d\xf1\xe7\x2e\xa0\x1f\x3b\x5c\x05\x74\x90\xc3\x35\xec\xd3\x3b\xaf\x0c\x73\xb1\x9d\x07\x08\x23\xd0\x10\xcb\xa3\xdd\x41\x79\x0a\x6f\x10\x16\x32\xd6\xa8\xca\x31\xc4\x81\x72\x1a\x61\x68\x15\x8c\x6e\x0b\x94\xbb\x6e\x89\x77\xa6\xb7\xf7\x0b\x2b\x8e\x01\x61\xb1\xf1\xd8\x8a\x7f\x76\x0c\x84\x10\xeb\x08\x26\xe0\x1c\x80\xbb\xe0\x88\xa5\x02\x79\x22\xf3\xe6\xb5\x56\x1d\xf3\x23\x0d\xf1\x72\xd5\xea\x3f\xf6\x3b\x35\xeb\x88\xfb\x97\x52\xd1\xb3\xdf\x3f\x42\x61\xd6\x47\xbc\x62\xa1\xef\xc8\x3f\x45\xce\x51\x91\xc2\x06\x8c\x83\x14\x5b\x4b\x2d\x4a\x47\xde\x32\xcc\x30\xf9\x36\x5f\x2d\x64\x9f\xc1\x24\xa6\xab\x8b\x40\xf0\x9c\xea\x71\x50\x72\x38\x0e\x0c\x57\xa9\x19\xe2\x79\x16\xb8\x0a\xcf\xa9\x48\xdc\x0a\xd7\x09\xa6\x27\x3a\x8d\x05\x63\x5c\x9c\x33\x54\xe5\x10\x25\x07\x7f\x7f\xf7\x85\xdf\x78\xce\x16\x44\x8e\xb9\xd1\xf0\xea\xcd\x57\x52\xaf\xa9\x67\x5a\x29\xcf\x57\xeb\xc5\x1a\xea\x80\xd5\x63\xae\x0c\x4e\x93\x15\xed\x01\xcf\xcf\x7c\x56\x33\x31\x4b\x8a\x8a\x2a\xfe\x15\x33\x47\xda\xf9\x53\x99\x4f\xf8\xb3\xf5\x65\xb1\x52\x2c\xd7\xcb\xd6\x7f\xb7\x87\xad\x5e\x7c\xd1\xe5\x38\x16\x27\xc7\x54\x05\x69\x20\x97\xf9\x94\x7e\x5a\xc7\xf9\x67\x48\x8c\x38\xc4\x11\x63\x3b\xb2\x25\xb2\x5e\xb1\x84\x2c\x66\x57\x4a\xc3\x2f\x4f\xa8\x73\xaa\x7b\x59\x1f\xb8\x7f\x42\x8e\xd4\xa8\xdd\x19\xc7\x0d\x66\xf6\xb5\x5b\x6d\x15\xe1\x2c\x98\x11\x5a\x5e\x63\xd8\xf1\x97\xba\x5d\x87\x76\xed\xca\x00\x52\x0d\xf4\xbc\xb9\xdc\x59\x78\x41\x4f\x14\xa9\x15\xe2\x10\x44\x52\x46\x01\xd1\x93\x00\xe1\xf6\xf3\x31\x10\x05\x42\x04\x88\x71\x22\xfe\xab\xbd\xd6\xc2\x5d\xe2\x45\xd4\x83\x2e\xc6\xbe\x84\xa4\x5f\x76\x26\x3a\x26\x01\xd1\x72\x09\x5d\xfd\x8c\xdb\x71\x18\xb5\x7d\x70\x64\x9c\x4c\xeb\xde\x28\x12\xfb\xcf\x3e\xfd\xe2\x4f\x96\x7e\x6c\x38\x02\xce\x32\x27\x87\x6c\x8f\x8c\xc5\xe8\x82\xc0\x10\x61\xe1\x71\xa5\x92\x17\x01\x23\x12\x12\x36\x25\xb6\x59\x75\x8f\x10\x1d\x94\x39\x9a\xd6\xdb\xd8\x4c\x19\xee\xc0\x89\x32\xbe\x4b\x53\xac\x33\x8e\x35\x22\x27\xa2\x00\x58\x07\x43\x12\x90\x51\x34\x87\x11\xe7\x1d\x81\xd2\x0f\x04\x31\x18\x3f\x0d\x94\xec\xab\xa2\x9a\xa1\x77\xcd\xfc\xf5\xcb\xad\x47\xf7\x9a\x5b\x4f\x0d\xba\xc3\x6e\x46\x32\xac\x5e\xfe\x19\x1f\x98\x82\xaa\xd6\x9c\xd3\xc5\x02\xbd\x9e\xc4\x70\x9c\xdb\x40\x9e\x82\x20\x50\x05\xa2\x29\x99\x82\x88\xcf\x15\x70\xba\x28\x5c\xec\x71\xfa\xdb\x8a\xed\xa2\x1c\x49\x3c\x3b\x0c\x2c\xcb\xca\x5e\x7a\x16\x57\xd2\xd0\x03\x79\xbd\x24\x29\x0a\xe1\xe8\xea\xa8\xe9\x94\x8a\xfd\x6c\x7d\xd2\xf3\xc1\x27\x71\x2e\xec\xc5\xc0\x07\x3d\xaf\xea\x4a\x14\x39\x5f\x0e\xf4\xe8\x4f\x7c\x2a\x61\x6b\x32\x9f\xd4\xc6\xaa\x45\x32\x26\xa8\xe5\xe1\x17\xa3\x63\x6b\xa3\x60\xe4\x52\x10\xa0\x18\x3a\xa9\x03\xa3\x5e\xd8\x57\x87\x46\xbf\x8c\x1d\x23\xa3\xc8\x2a\xa8\x3d\xb9\x7c\xb7\xfd\x60\x3a\xd6\x29\x96\xd3\x4d\xc9\xa5\xea\xae\xd4\xce\x45\x3d\xf9\x1a\x26\x39\x85\x7f\x2c\x76\xbe\x08\x4b\xe4\x2d\xc3\x1d\x43\x0c\x51\x45\x2e\x20\x5f\xa1\x5e\xd2\xc5\x8f\x27\x82\xf3\x17\x8d\x9a\x92\x79\x1d\x35\xe9\x11\x13\xab\x02\x30\xb3\xb6\x77\x05\xb2\x7f\xb0\xf3\xf5\xd0\xf0\x18\xd1\xac\x87\x0d\x39\x6c\x20\xa6\xd2\xe6\xd6\x7a\x67\xe4\x69\x6b\x75\x2a\x04\x90\x10\x31\xfc\xa8\xf3\x37\xaa\x49\xc0\x72\x7a\x74\x45\xdd\x9f\x3a\xa8\x6f\x52\xbc\x44\x46\xa8\xdd\xb6\x94\xe7\x13\xff\x04\x5c\x01\xd2\x94\xe6\xc9\xa5\xc0\x99\x69\xa2\x22\xc5\x31\x99\x45\xd9\x77\x33\xca\x45\x4e\x7d\x8e\x64\x9e\x54\x1f\x9d\x6a\x46\xd1\xcf\x10\x8e\xe4\x0a\x1d\x0f\x62\x0c\x22\x25\x13\xe0\xb7\x78\xe5\x39\xe8\x20\x97\x7c\xcf\xac\xb9\x7d\x8e\x07\x11\x8d\x10\x3c\x2a\x89\xfa\x6b\x76\x45\xa7\x83\xe3\xbf\x0b\x66\xfa\xa7\x48\xf2\xdd\x77\xc3\x24\xbb\x98\x7a\xb7\x7b\xf6\x7f\x9d\x78\x1d\x3d\x00\xd9\x6f\x71\xfb\x9c\xd9\xff\x3b\x6e\x2d\xff\xce\xd1\x48\x0a\x77\x0e\xa3\xa4\xa7\x41\x31\x16\x13\xe3\x36\xa3\x59\x8d\xa3\x3d\xf0\x3c\x39\x6b\xfd\xf7\xe1\x4c\x49\xdf\x17\xe9\x89\x35\x81\xdc\x19\xa6\x41\x0e\x73\xb8\x4b\x1b\xd1\x24\xcc\xca\x4a\x11\x49\x8b\x6b\xb6\x27\xb9\x95\x53\x9a\x8b\x64\xd2\xff\x9e\xdd\xc2\x7e\xeb\x98\x52\x52\xc6\x7e\x2f\x69\x7d\x7f\xfb\x88\x74\x46\x2c\x46\x07\x95\x4e\x50\xed\xa7\xde\x4c\x9d\x5f\x30\x1d\x45\x28\xfb\x84\x97\x1b\x08\xb7\x92\xbd\xc4\x5e\xbb\xa1\x07\xef\xa0\xa4\xf0\x7e\x4f\xa7\x5e\x96\x04\x4d\xef\x71\x58\x34\xa5\xb4\x51\x89\x70\x38\xa5\x38\xa1\x3a\x66\xdb\x05\x44\xcf\x0d\x38\x19\x8c\x05\x9e\x00\x0e\x9a\x5e\x4d\xc3\x58\x08\x0e\x0e\xc6\x53\x34\x94\xe1\x27\xe7\x0f\x1f\x7a\xd7\xcd\xbc\x6b\xb5\xee\x5f\x3c\xea\xc2\xdf\x65\xf8\x1b\xcd\xa4\x73\x57\xe8\xe7\x20\xfe\xa4\x57\xfa\xe8\x67\x01\x7f\xde\x59\xa3\xbf\x87\xf0\xef\x0b\xab\x5c\x0b\x48\xea\xbb\x56\xb0\xdc\xa0\x5f\xc3\x58\xf2\xf2\x97\xa3\x94\xa4\x08\xc8\x72\x81\xd2\xcc\x4b\x0f\x65\x10\xe0\x3d\x49\x3c\xaf\xfb\x19\x74\xea\x35\xfe\xa4\xfb\x2a\xe4\x86\xf9\x0b\x77\x37\x64\xdb\xa7\xf8\x37\x77\x09\x3d\x7a\x83\xfc\x24\x05\xf7\x8a\x19\x61\x19\x80\x7b\xae\xe5\x86\xb2\xaa\x77\xe8\x9a\x3f\xa8\xce\xb9\x67\x5a\xad\x42\xcd\xa9\x62\x32\xcd\xef\xc2\x07\x0d\xd5\x2b\x50\xc1\xd4\x62\x70\xed\x67\x16\x41\xf1\x8d\x4a\x8e\x07\x6a\x2c\xfa\x8b\x8f\x83\x4b\x93\x40\xc9\xfd\x33\x3f\x53\x58\x26\xe5\xb2\x2d\x56\xaa\x75\x95\x8e\xe6\xcc\x6a\x73\x0b\x2d\x29\x0c\x83\x29\x05\xf8\x6d\x18\x95\xe2\x5d\x1e\xc0\x82\x9d\xca\xf6\xe1\x45\xc6\x5d\xdc\xb9\x0f\xd3\x07\xd1\xed\x5f\xff\x95\x12\x6a\x03\x77\xff\x6f\xff\x66\x7d\xf9\x31\x48\x6c\xc0\xdc\x76\x46\xcf\x23\x5e\xe1\x6b\x25\xf7\x59\x03\x66\xc0\x97\x73\x3f\xfc\x21\x56\x05\x09\x17\xb9\x23\x93\xd5\x49\xe2\x70\x74\xb8\xfb\xff\x09\x00\x00\xff\xff\xa9\xa0\x93\x82\x1b\xaa\x00\x00") func confLocaleLocale_zhHkIniBytes() ([]byte, error) { return bindataRead( @@ -4599,7 +4599,7 @@ func confLocaleLocale_zhHkIni() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/locale/locale_zh-HK.ini", size: 41822, mode: os.FileMode(493), modTime: time.Unix(1441457544, 0)} + info := bindataFileInfo{name: "conf/locale/locale_zh-HK.ini", size: 43547, mode: os.FileMode(493), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4619,7 +4619,7 @@ func confReadmeDefault() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "conf/readme/Default", size: 23, mode: os.FileMode(420), modTime: time.Unix(1441064597, 0)} + info := bindataFileInfo{name: "conf/readme/Default", size: 23, mode: os.FileMode(420), modTime: time.Unix(1444419364, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/modules/crypto/ssh/agent/client.go b/modules/crypto/ssh/agent/client.go new file mode 100755 index 000000000..99e309906 --- /dev/null +++ b/modules/crypto/ssh/agent/client.go @@ -0,0 +1,615 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* + Package agent implements a client to an ssh-agent daemon. + +References: + [PROTOCOL.agent]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.agent?rev=HEAD +*/ +package agent + +import ( + "bytes" + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rsa" + "encoding/base64" + "encoding/binary" + "errors" + "fmt" + "io" + "math/big" + "sync" + + "github.com/gogits/gogs/modules/crypto/ssh" +) + +// Agent represents the capabilities of an ssh-agent. +type Agent interface { + // List returns the identities known to the agent. + List() ([]*Key, error) + + // Sign has the agent sign the data using a protocol 2 key as defined + // in [PROTOCOL.agent] section 2.6.2. + Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) + + // Add adds a private key to the agent. + Add(key AddedKey) error + + // Remove removes all identities with the given public key. + Remove(key ssh.PublicKey) error + + // RemoveAll removes all identities. + RemoveAll() error + + // Lock locks the agent. Sign and Remove will fail, and List will empty an empty list. + Lock(passphrase []byte) error + + // Unlock undoes the effect of Lock + Unlock(passphrase []byte) error + + // Signers returns signers for all the known keys. + Signers() ([]ssh.Signer, error) +} + +// AddedKey describes an SSH key to be added to an Agent. +type AddedKey struct { + // PrivateKey must be a *rsa.PrivateKey, *dsa.PrivateKey or + // *ecdsa.PrivateKey, which will be inserted into the agent. + PrivateKey interface{} + // Certificate, if not nil, is communicated to the agent and will be + // stored with the key. + Certificate *ssh.Certificate + // Comment is an optional, free-form string. + Comment string + // LifetimeSecs, if not zero, is the number of seconds that the + // agent will store the key for. + LifetimeSecs uint32 + // ConfirmBeforeUse, if true, requests that the agent confirm with the + // user before each use of this key. + ConfirmBeforeUse bool +} + +// See [PROTOCOL.agent], section 3. +const ( + agentRequestV1Identities = 1 + + // 3.2 Requests from client to agent for protocol 2 key operations + agentAddIdentity = 17 + agentRemoveIdentity = 18 + agentRemoveAllIdentities = 19 + agentAddIdConstrained = 25 + + // 3.3 Key-type independent requests from client to agent + agentAddSmartcardKey = 20 + agentRemoveSmartcardKey = 21 + agentLock = 22 + agentUnlock = 23 + agentAddSmartcardKeyConstrained = 26 + + // 3.7 Key constraint identifiers + agentConstrainLifetime = 1 + agentConstrainConfirm = 2 +) + +// maxAgentResponseBytes is the maximum agent reply size that is accepted. This +// is a sanity check, not a limit in the spec. +const maxAgentResponseBytes = 16 << 20 + +// Agent messages: +// These structures mirror the wire format of the corresponding ssh agent +// messages found in [PROTOCOL.agent]. + +// 3.4 Generic replies from agent to client +const agentFailure = 5 + +type failureAgentMsg struct{} + +const agentSuccess = 6 + +type successAgentMsg struct{} + +// See [PROTOCOL.agent], section 2.5.2. +const agentRequestIdentities = 11 + +type requestIdentitiesAgentMsg struct{} + +// See [PROTOCOL.agent], section 2.5.2. +const agentIdentitiesAnswer = 12 + +type identitiesAnswerAgentMsg struct { + NumKeys uint32 `sshtype:"12"` + Keys []byte `ssh:"rest"` +} + +// See [PROTOCOL.agent], section 2.6.2. +const agentSignRequest = 13 + +type signRequestAgentMsg struct { + KeyBlob []byte `sshtype:"13"` + Data []byte + Flags uint32 +} + +// See [PROTOCOL.agent], section 2.6.2. + +// 3.6 Replies from agent to client for protocol 2 key operations +const agentSignResponse = 14 + +type signResponseAgentMsg struct { + SigBlob []byte `sshtype:"14"` +} + +type publicKey struct { + Format string + Rest []byte `ssh:"rest"` +} + +// Key represents a protocol 2 public key as defined in +// [PROTOCOL.agent], section 2.5.2. +type Key struct { + Format string + Blob []byte + Comment string +} + +func clientErr(err error) error { + return fmt.Errorf("agent: client error: %v", err) +} + +// String returns the storage form of an agent key with the format, base64 +// encoded serialized key, and the comment if it is not empty. +func (k *Key) String() string { + s := string(k.Format) + " " + base64.StdEncoding.EncodeToString(k.Blob) + + if k.Comment != "" { + s += " " + k.Comment + } + + return s +} + +// Type returns the public key type. +func (k *Key) Type() string { + return k.Format +} + +// Marshal returns key blob to satisfy the ssh.PublicKey interface. +func (k *Key) Marshal() []byte { + return k.Blob +} + +// Verify satisfies the ssh.PublicKey interface, but is not +// implemented for agent keys. +func (k *Key) Verify(data []byte, sig *ssh.Signature) error { + return errors.New("agent: agent key does not know how to verify") +} + +type wireKey struct { + Format string + Rest []byte `ssh:"rest"` +} + +func parseKey(in []byte) (out *Key, rest []byte, err error) { + var record struct { + Blob []byte + Comment string + Rest []byte `ssh:"rest"` + } + + if err := ssh.Unmarshal(in, &record); err != nil { + return nil, nil, err + } + + var wk wireKey + if err := ssh.Unmarshal(record.Blob, &wk); err != nil { + return nil, nil, err + } + + return &Key{ + Format: wk.Format, + Blob: record.Blob, + Comment: record.Comment, + }, record.Rest, nil +} + +// client is a client for an ssh-agent process. +type client struct { + // conn is typically a *net.UnixConn + conn io.ReadWriter + // mu is used to prevent concurrent access to the agent + mu sync.Mutex +} + +// NewClient returns an Agent that talks to an ssh-agent process over +// the given connection. +func NewClient(rw io.ReadWriter) Agent { + return &client{conn: rw} +} + +// call sends an RPC to the agent. On success, the reply is +// unmarshaled into reply and replyType is set to the first byte of +// the reply, which contains the type of the message. +func (c *client) call(req []byte) (reply interface{}, err error) { + c.mu.Lock() + defer c.mu.Unlock() + + msg := make([]byte, 4+len(req)) + binary.BigEndian.PutUint32(msg, uint32(len(req))) + copy(msg[4:], req) + if _, err = c.conn.Write(msg); err != nil { + return nil, clientErr(err) + } + + var respSizeBuf [4]byte + if _, err = io.ReadFull(c.conn, respSizeBuf[:]); err != nil { + return nil, clientErr(err) + } + respSize := binary.BigEndian.Uint32(respSizeBuf[:]) + if respSize > maxAgentResponseBytes { + return nil, clientErr(err) + } + + buf := make([]byte, respSize) + if _, err = io.ReadFull(c.conn, buf); err != nil { + return nil, clientErr(err) + } + reply, err = unmarshal(buf) + if err != nil { + return nil, clientErr(err) + } + return reply, err +} + +func (c *client) simpleCall(req []byte) error { + resp, err := c.call(req) + if err != nil { + return err + } + if _, ok := resp.(*successAgentMsg); ok { + return nil + } + return errors.New("agent: failure") +} + +func (c *client) RemoveAll() error { + return c.simpleCall([]byte{agentRemoveAllIdentities}) +} + +func (c *client) Remove(key ssh.PublicKey) error { + req := ssh.Marshal(&agentRemoveIdentityMsg{ + KeyBlob: key.Marshal(), + }) + return c.simpleCall(req) +} + +func (c *client) Lock(passphrase []byte) error { + req := ssh.Marshal(&agentLockMsg{ + Passphrase: passphrase, + }) + return c.simpleCall(req) +} + +func (c *client) Unlock(passphrase []byte) error { + req := ssh.Marshal(&agentUnlockMsg{ + Passphrase: passphrase, + }) + return c.simpleCall(req) +} + +// List returns the identities known to the agent. +func (c *client) List() ([]*Key, error) { + // see [PROTOCOL.agent] section 2.5.2. + req := []byte{agentRequestIdentities} + + msg, err := c.call(req) + if err != nil { + return nil, err + } + + switch msg := msg.(type) { + case *identitiesAnswerAgentMsg: + if msg.NumKeys > maxAgentResponseBytes/8 { + return nil, errors.New("agent: too many keys in agent reply") + } + keys := make([]*Key, msg.NumKeys) + data := msg.Keys + for i := uint32(0); i < msg.NumKeys; i++ { + var key *Key + var err error + if key, data, err = parseKey(data); err != nil { + return nil, err + } + keys[i] = key + } + return keys, nil + case *failureAgentMsg: + return nil, errors.New("agent: failed to list keys") + } + panic("unreachable") +} + +// Sign has the agent sign the data using a protocol 2 key as defined +// in [PROTOCOL.agent] section 2.6.2. +func (c *client) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { + req := ssh.Marshal(signRequestAgentMsg{ + KeyBlob: key.Marshal(), + Data: data, + }) + + msg, err := c.call(req) + if err != nil { + return nil, err + } + + switch msg := msg.(type) { + case *signResponseAgentMsg: + var sig ssh.Signature + if err := ssh.Unmarshal(msg.SigBlob, &sig); err != nil { + return nil, err + } + + return &sig, nil + case *failureAgentMsg: + return nil, errors.New("agent: failed to sign challenge") + } + panic("unreachable") +} + +// unmarshal parses an agent message in packet, returning the parsed +// form and the message type of packet. +func unmarshal(packet []byte) (interface{}, error) { + if len(packet) < 1 { + return nil, errors.New("agent: empty packet") + } + var msg interface{} + switch packet[0] { + case agentFailure: + return new(failureAgentMsg), nil + case agentSuccess: + return new(successAgentMsg), nil + case agentIdentitiesAnswer: + msg = new(identitiesAnswerAgentMsg) + case agentSignResponse: + msg = new(signResponseAgentMsg) + default: + return nil, fmt.Errorf("agent: unknown type tag %d", packet[0]) + } + if err := ssh.Unmarshal(packet, msg); err != nil { + return nil, err + } + return msg, nil +} + +type rsaKeyMsg struct { + Type string `sshtype:"17"` + N *big.Int + E *big.Int + D *big.Int + Iqmp *big.Int // IQMP = Inverse Q Mod P + P *big.Int + Q *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type dsaKeyMsg struct { + Type string `sshtype:"17"` + P *big.Int + Q *big.Int + G *big.Int + Y *big.Int + X *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type ecdsaKeyMsg struct { + Type string `sshtype:"17"` + Curve string + KeyBytes []byte + D *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +// Insert adds a private key to the agent. +func (c *client) insertKey(s interface{}, comment string, constraints []byte) error { + var req []byte + switch k := s.(type) { + case *rsa.PrivateKey: + if len(k.Primes) != 2 { + return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) + } + k.Precompute() + req = ssh.Marshal(rsaKeyMsg{ + Type: ssh.KeyAlgoRSA, + N: k.N, + E: big.NewInt(int64(k.E)), + D: k.D, + Iqmp: k.Precomputed.Qinv, + P: k.Primes[0], + Q: k.Primes[1], + Comments: comment, + Constraints: constraints, + }) + case *dsa.PrivateKey: + req = ssh.Marshal(dsaKeyMsg{ + Type: ssh.KeyAlgoDSA, + P: k.P, + Q: k.Q, + G: k.G, + Y: k.Y, + X: k.X, + Comments: comment, + Constraints: constraints, + }) + case *ecdsa.PrivateKey: + nistID := fmt.Sprintf("nistp%d", k.Params().BitSize) + req = ssh.Marshal(ecdsaKeyMsg{ + Type: "ecdsa-sha2-" + nistID, + Curve: nistID, + KeyBytes: elliptic.Marshal(k.Curve, k.X, k.Y), + D: k.D, + Comments: comment, + Constraints: constraints, + }) + default: + return fmt.Errorf("agent: unsupported key type %T", s) + } + + // if constraints are present then the message type needs to be changed. + if len(constraints) != 0 { + req[0] = agentAddIdConstrained + } + + resp, err := c.call(req) + if err != nil { + return err + } + if _, ok := resp.(*successAgentMsg); ok { + return nil + } + return errors.New("agent: failure") +} + +type rsaCertMsg struct { + Type string `sshtype:"17"` + CertBytes []byte + D *big.Int + Iqmp *big.Int // IQMP = Inverse Q Mod P + P *big.Int + Q *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type dsaCertMsg struct { + Type string `sshtype:"17"` + CertBytes []byte + X *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type ecdsaCertMsg struct { + Type string `sshtype:"17"` + CertBytes []byte + D *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +// Insert adds a private key to the agent. If a certificate is given, +// that certificate is added instead as public key. +func (c *client) Add(key AddedKey) error { + var constraints []byte + + if secs := key.LifetimeSecs; secs != 0 { + constraints = append(constraints, agentConstrainLifetime) + + var secsBytes [4]byte + binary.BigEndian.PutUint32(secsBytes[:], secs) + constraints = append(constraints, secsBytes[:]...) + } + + if key.ConfirmBeforeUse { + constraints = append(constraints, agentConstrainConfirm) + } + + if cert := key.Certificate; cert == nil { + return c.insertKey(key.PrivateKey, key.Comment, constraints) + } else { + return c.insertCert(key.PrivateKey, cert, key.Comment, constraints) + } +} + +func (c *client) insertCert(s interface{}, cert *ssh.Certificate, comment string, constraints []byte) error { + var req []byte + switch k := s.(type) { + case *rsa.PrivateKey: + if len(k.Primes) != 2 { + return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) + } + k.Precompute() + req = ssh.Marshal(rsaCertMsg{ + Type: cert.Type(), + CertBytes: cert.Marshal(), + D: k.D, + Iqmp: k.Precomputed.Qinv, + P: k.Primes[0], + Q: k.Primes[1], + Comments: comment, + Constraints: constraints, + }) + case *dsa.PrivateKey: + req = ssh.Marshal(dsaCertMsg{ + Type: cert.Type(), + CertBytes: cert.Marshal(), + X: k.X, + Comments: comment, + }) + case *ecdsa.PrivateKey: + req = ssh.Marshal(ecdsaCertMsg{ + Type: cert.Type(), + CertBytes: cert.Marshal(), + D: k.D, + Comments: comment, + }) + default: + return fmt.Errorf("agent: unsupported key type %T", s) + } + + // if constraints are present then the message type needs to be changed. + if len(constraints) != 0 { + req[0] = agentAddIdConstrained + } + + signer, err := ssh.NewSignerFromKey(s) + if err != nil { + return err + } + if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { + return errors.New("agent: signer and cert have different public key") + } + + resp, err := c.call(req) + if err != nil { + return err + } + if _, ok := resp.(*successAgentMsg); ok { + return nil + } + return errors.New("agent: failure") +} + +// Signers provides a callback for client authentication. +func (c *client) Signers() ([]ssh.Signer, error) { + keys, err := c.List() + if err != nil { + return nil, err + } + + var result []ssh.Signer + for _, k := range keys { + result = append(result, &agentKeyringSigner{c, k}) + } + return result, nil +} + +type agentKeyringSigner struct { + agent *client + pub ssh.PublicKey +} + +func (s *agentKeyringSigner) PublicKey() ssh.PublicKey { + return s.pub +} + +func (s *agentKeyringSigner) Sign(rand io.Reader, data []byte) (*ssh.Signature, error) { + // The agent has its own entropy source, so the rand argument is ignored. + return s.agent.Sign(s.pub, data) +} diff --git a/modules/crypto/ssh/agent/client_test.go b/modules/crypto/ssh/agent/client_test.go new file mode 100755 index 000000000..82b635150 --- /dev/null +++ b/modules/crypto/ssh/agent/client_test.go @@ -0,0 +1,287 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "bytes" + "crypto/rand" + "errors" + "net" + "os" + "os/exec" + "path/filepath" + "strconv" + "testing" + + "github.com/gogits/gogs/modules/crypto/ssh" +) + +// startAgent executes ssh-agent, and returns a Agent interface to it. +func startAgent(t *testing.T) (client Agent, socket string, cleanup func()) { + if testing.Short() { + // ssh-agent is not always available, and the key + // types supported vary by platform. + t.Skip("skipping test due to -short") + } + + bin, err := exec.LookPath("ssh-agent") + if err != nil { + t.Skip("could not find ssh-agent") + } + + cmd := exec.Command(bin, "-s") + out, err := cmd.Output() + if err != nil { + t.Fatalf("cmd.Output: %v", err) + } + + /* Output looks like: + + SSH_AUTH_SOCK=/tmp/ssh-P65gpcqArqvH/agent.15541; export SSH_AUTH_SOCK; + SSH_AGENT_PID=15542; export SSH_AGENT_PID; + echo Agent pid 15542; + */ + fields := bytes.Split(out, []byte(";")) + line := bytes.SplitN(fields[0], []byte("="), 2) + line[0] = bytes.TrimLeft(line[0], "\n") + if string(line[0]) != "SSH_AUTH_SOCK" { + t.Fatalf("could not find key SSH_AUTH_SOCK in %q", fields[0]) + } + socket = string(line[1]) + + line = bytes.SplitN(fields[2], []byte("="), 2) + line[0] = bytes.TrimLeft(line[0], "\n") + if string(line[0]) != "SSH_AGENT_PID" { + t.Fatalf("could not find key SSH_AGENT_PID in %q", fields[2]) + } + pidStr := line[1] + pid, err := strconv.Atoi(string(pidStr)) + if err != nil { + t.Fatalf("Atoi(%q): %v", pidStr, err) + } + + conn, err := net.Dial("unix", string(socket)) + if err != nil { + t.Fatalf("net.Dial: %v", err) + } + + ac := NewClient(conn) + return ac, socket, func() { + proc, _ := os.FindProcess(pid) + if proc != nil { + proc.Kill() + } + conn.Close() + os.RemoveAll(filepath.Dir(socket)) + } +} + +func testAgent(t *testing.T, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { + agent, _, cleanup := startAgent(t) + defer cleanup() + + testAgentInterface(t, agent, key, cert, lifetimeSecs) +} + +func testAgentInterface(t *testing.T, agent Agent, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { + signer, err := ssh.NewSignerFromKey(key) + if err != nil { + t.Fatalf("NewSignerFromKey(%T): %v", key, err) + } + // The agent should start up empty. + if keys, err := agent.List(); err != nil { + t.Fatalf("RequestIdentities: %v", err) + } else if len(keys) > 0 { + t.Fatalf("got %d keys, want 0: %v", len(keys), keys) + } + + // Attempt to insert the key, with certificate if specified. + var pubKey ssh.PublicKey + if cert != nil { + err = agent.Add(AddedKey{ + PrivateKey: key, + Certificate: cert, + Comment: "comment", + LifetimeSecs: lifetimeSecs, + }) + pubKey = cert + } else { + err = agent.Add(AddedKey{PrivateKey: key, Comment: "comment", LifetimeSecs: lifetimeSecs}) + pubKey = signer.PublicKey() + } + if err != nil { + t.Fatalf("insert(%T): %v", key, err) + } + + // Did the key get inserted successfully? + if keys, err := agent.List(); err != nil { + t.Fatalf("List: %v", err) + } else if len(keys) != 1 { + t.Fatalf("got %v, want 1 key", keys) + } else if keys[0].Comment != "comment" { + t.Fatalf("key comment: got %v, want %v", keys[0].Comment, "comment") + } else if !bytes.Equal(keys[0].Blob, pubKey.Marshal()) { + t.Fatalf("key mismatch") + } + + // Can the agent make a valid signature? + data := []byte("hello") + sig, err := agent.Sign(pubKey, data) + if err != nil { + t.Fatalf("Sign(%s): %v", pubKey.Type(), err) + } + + if err := pubKey.Verify(data, sig); err != nil { + t.Fatalf("Verify(%s): %v", pubKey.Type(), err) + } +} + +func TestAgent(t *testing.T) { + for _, keyType := range []string{"rsa", "dsa", "ecdsa"} { + testAgent(t, testPrivateKeys[keyType], nil, 0) + } +} + +func TestCert(t *testing.T) { + cert := &ssh.Certificate{ + Key: testPublicKeys["rsa"], + ValidBefore: ssh.CertTimeInfinity, + CertType: ssh.UserCert, + } + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + + testAgent(t, testPrivateKeys["rsa"], cert, 0) +} + +func TestConstraints(t *testing.T) { + testAgent(t, testPrivateKeys["rsa"], nil, 3600 /* lifetime in seconds */) +} + +// netPipe is analogous to net.Pipe, but it uses a real net.Conn, and +// therefore is buffered (net.Pipe deadlocks if both sides start with +// a write.) +func netPipe() (net.Conn, net.Conn, error) { + listener, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + return nil, nil, err + } + defer listener.Close() + c1, err := net.Dial("tcp", listener.Addr().String()) + if err != nil { + return nil, nil, err + } + + c2, err := listener.Accept() + if err != nil { + c1.Close() + return nil, nil, err + } + + return c1, c2, nil +} + +func TestAuth(t *testing.T) { + a, b, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + + defer a.Close() + defer b.Close() + + agent, _, cleanup := startAgent(t) + defer cleanup() + + if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment"}); err != nil { + t.Errorf("Add: %v", err) + } + + serverConf := ssh.ServerConfig{} + serverConf.AddHostKey(testSigners["rsa"]) + serverConf.PublicKeyCallback = func(c ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) { + if bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) { + return nil, nil + } + + return nil, errors.New("pubkey rejected") + } + + go func() { + conn, _, _, err := ssh.NewServerConn(a, &serverConf) + if err != nil { + t.Fatalf("Server: %v", err) + } + conn.Close() + }() + + conf := ssh.ClientConfig{} + conf.Auth = append(conf.Auth, ssh.PublicKeysCallback(agent.Signers)) + conn, _, _, err := ssh.NewClientConn(b, "", &conf) + if err != nil { + t.Fatalf("NewClientConn: %v", err) + } + conn.Close() +} + +func TestLockClient(t *testing.T) { + agent, _, cleanup := startAgent(t) + defer cleanup() + testLockAgent(agent, t) +} + +func testLockAgent(agent Agent, t *testing.T) { + if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment 1"}); err != nil { + t.Errorf("Add: %v", err) + } + if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["dsa"], Comment: "comment dsa"}); err != nil { + t.Errorf("Add: %v", err) + } + if keys, err := agent.List(); err != nil { + t.Errorf("List: %v", err) + } else if len(keys) != 2 { + t.Errorf("Want 2 keys, got %v", keys) + } + + passphrase := []byte("secret") + if err := agent.Lock(passphrase); err != nil { + t.Errorf("Lock: %v", err) + } + + if keys, err := agent.List(); err != nil { + t.Errorf("List: %v", err) + } else if len(keys) != 0 { + t.Errorf("Want 0 keys, got %v", keys) + } + + signer, _ := ssh.NewSignerFromKey(testPrivateKeys["rsa"]) + if _, err := agent.Sign(signer.PublicKey(), []byte("hello")); err == nil { + t.Fatalf("Sign did not fail") + } + + if err := agent.Remove(signer.PublicKey()); err == nil { + t.Fatalf("Remove did not fail") + } + + if err := agent.RemoveAll(); err == nil { + t.Fatalf("RemoveAll did not fail") + } + + if err := agent.Unlock(nil); err == nil { + t.Errorf("Unlock with wrong passphrase succeeded") + } + if err := agent.Unlock(passphrase); err != nil { + t.Errorf("Unlock: %v", err) + } + + if err := agent.Remove(signer.PublicKey()); err != nil { + t.Fatalf("Remove: %v", err) + } + + if keys, err := agent.List(); err != nil { + t.Errorf("List: %v", err) + } else if len(keys) != 1 { + t.Errorf("Want 1 keys, got %v", keys) + } +} diff --git a/modules/crypto/ssh/agent/forward.go b/modules/crypto/ssh/agent/forward.go new file mode 100755 index 000000000..8b54acb05 --- /dev/null +++ b/modules/crypto/ssh/agent/forward.go @@ -0,0 +1,103 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "errors" + "io" + "net" + "sync" + + "github.com/gogits/gogs/modules/crypto/ssh" +) + +// RequestAgentForwarding sets up agent forwarding for the session. +// ForwardToAgent or ForwardToRemote should be called to route +// the authentication requests. +func RequestAgentForwarding(session *ssh.Session) error { + ok, err := session.SendRequest("auth-agent-req@openssh.com", true, nil) + if err != nil { + return err + } + if !ok { + return errors.New("forwarding request denied") + } + return nil +} + +// ForwardToAgent routes authentication requests to the given keyring. +func ForwardToAgent(client *ssh.Client, keyring Agent) error { + channels := client.HandleChannelOpen(channelType) + if channels == nil { + return errors.New("agent: already have handler for " + channelType) + } + + go func() { + for ch := range channels { + channel, reqs, err := ch.Accept() + if err != nil { + continue + } + go ssh.DiscardRequests(reqs) + go func() { + ServeAgent(keyring, channel) + channel.Close() + }() + } + }() + return nil +} + +const channelType = "auth-agent@openssh.com" + +// ForwardToRemote routes authentication requests to the ssh-agent +// process serving on the given unix socket. +func ForwardToRemote(client *ssh.Client, addr string) error { + channels := client.HandleChannelOpen(channelType) + if channels == nil { + return errors.New("agent: already have handler for " + channelType) + } + conn, err := net.Dial("unix", addr) + if err != nil { + return err + } + conn.Close() + + go func() { + for ch := range channels { + channel, reqs, err := ch.Accept() + if err != nil { + continue + } + go ssh.DiscardRequests(reqs) + go forwardUnixSocket(channel, addr) + } + }() + return nil +} + +func forwardUnixSocket(channel ssh.Channel, addr string) { + conn, err := net.Dial("unix", addr) + if err != nil { + return + } + + var wg sync.WaitGroup + wg.Add(2) + go func() { + io.Copy(conn, channel) + conn.(*net.UnixConn).CloseWrite() + wg.Done() + }() + go func() { + io.Copy(channel, conn) + channel.CloseWrite() + wg.Done() + }() + + wg.Wait() + conn.Close() + channel.Close() +} diff --git a/modules/crypto/ssh/agent/keyring.go b/modules/crypto/ssh/agent/keyring.go new file mode 100755 index 000000000..e27c2c94f --- /dev/null +++ b/modules/crypto/ssh/agent/keyring.go @@ -0,0 +1,184 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "bytes" + "crypto/rand" + "crypto/subtle" + "errors" + "fmt" + "sync" + + "github.com/gogits/gogs/modules/crypto/ssh" +) + +type privKey struct { + signer ssh.Signer + comment string +} + +type keyring struct { + mu sync.Mutex + keys []privKey + + locked bool + passphrase []byte +} + +var errLocked = errors.New("agent: locked") + +// NewKeyring returns an Agent that holds keys in memory. It is safe +// for concurrent use by multiple goroutines. +func NewKeyring() Agent { + return &keyring{} +} + +// RemoveAll removes all identities. +func (r *keyring) RemoveAll() error { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return errLocked + } + + r.keys = nil + return nil +} + +// Remove removes all identities with the given public key. +func (r *keyring) Remove(key ssh.PublicKey) error { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return errLocked + } + + want := key.Marshal() + found := false + for i := 0; i < len(r.keys); { + if bytes.Equal(r.keys[i].signer.PublicKey().Marshal(), want) { + found = true + r.keys[i] = r.keys[len(r.keys)-1] + r.keys = r.keys[len(r.keys)-1:] + continue + } else { + i++ + } + } + + if !found { + return errors.New("agent: key not found") + } + return nil +} + +// Lock locks the agent. Sign and Remove will fail, and List will empty an empty list. +func (r *keyring) Lock(passphrase []byte) error { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return errLocked + } + + r.locked = true + r.passphrase = passphrase + return nil +} + +// Unlock undoes the effect of Lock +func (r *keyring) Unlock(passphrase []byte) error { + r.mu.Lock() + defer r.mu.Unlock() + if !r.locked { + return errors.New("agent: not locked") + } + if len(passphrase) != len(r.passphrase) || 1 != subtle.ConstantTimeCompare(passphrase, r.passphrase) { + return fmt.Errorf("agent: incorrect passphrase") + } + + r.locked = false + r.passphrase = nil + return nil +} + +// List returns the identities known to the agent. +func (r *keyring) List() ([]*Key, error) { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + // section 2.7: locked agents return empty. + return nil, nil + } + + var ids []*Key + for _, k := range r.keys { + pub := k.signer.PublicKey() + ids = append(ids, &Key{ + Format: pub.Type(), + Blob: pub.Marshal(), + Comment: k.comment}) + } + return ids, nil +} + +// Insert adds a private key to the keyring. If a certificate +// is given, that certificate is added as public key. Note that +// any constraints given are ignored. +func (r *keyring) Add(key AddedKey) error { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return errLocked + } + signer, err := ssh.NewSignerFromKey(key.PrivateKey) + + if err != nil { + return err + } + + if cert := key.Certificate; cert != nil { + signer, err = ssh.NewCertSigner(cert, signer) + if err != nil { + return err + } + } + + r.keys = append(r.keys, privKey{signer, key.Comment}) + + return nil +} + +// Sign returns a signature for the data. +func (r *keyring) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return nil, errLocked + } + + wanted := key.Marshal() + for _, k := range r.keys { + if bytes.Equal(k.signer.PublicKey().Marshal(), wanted) { + return k.signer.Sign(rand.Reader, data) + } + } + return nil, errors.New("not found") +} + +// Signers returns signers for all the known keys. +func (r *keyring) Signers() ([]ssh.Signer, error) { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return nil, errLocked + } + + s := make([]ssh.Signer, 0, len(r.keys)) + for _, k := range r.keys { + s = append(s, k.signer) + } + return s, nil +} diff --git a/modules/crypto/ssh/agent/server.go b/modules/crypto/ssh/agent/server.go new file mode 100755 index 000000000..71ec3bc09 --- /dev/null +++ b/modules/crypto/ssh/agent/server.go @@ -0,0 +1,209 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "crypto/rsa" + "encoding/binary" + "fmt" + "io" + "log" + "math/big" + + "github.com/gogits/gogs/modules/crypto/ssh" +) + +// Server wraps an Agent and uses it to implement the agent side of +// the SSH-agent, wire protocol. +type server struct { + agent Agent +} + +func (s *server) processRequestBytes(reqData []byte) []byte { + rep, err := s.processRequest(reqData) + if err != nil { + if err != errLocked { + // TODO(hanwen): provide better logging interface? + log.Printf("agent %d: %v", reqData[0], err) + } + return []byte{agentFailure} + } + + if err == nil && rep == nil { + return []byte{agentSuccess} + } + + return ssh.Marshal(rep) +} + +func marshalKey(k *Key) []byte { + var record struct { + Blob []byte + Comment string + } + record.Blob = k.Marshal() + record.Comment = k.Comment + + return ssh.Marshal(&record) +} + +type agentV1IdentityMsg struct { + Numkeys uint32 `sshtype:"2"` +} + +type agentRemoveIdentityMsg struct { + KeyBlob []byte `sshtype:"18"` +} + +type agentLockMsg struct { + Passphrase []byte `sshtype:"22"` +} + +type agentUnlockMsg struct { + Passphrase []byte `sshtype:"23"` +} + +func (s *server) processRequest(data []byte) (interface{}, error) { + switch data[0] { + case agentRequestV1Identities: + return &agentV1IdentityMsg{0}, nil + case agentRemoveIdentity: + var req agentRemoveIdentityMsg + if err := ssh.Unmarshal(data, &req); err != nil { + return nil, err + } + + var wk wireKey + if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { + return nil, err + } + + return nil, s.agent.Remove(&Key{Format: wk.Format, Blob: req.KeyBlob}) + + case agentRemoveAllIdentities: + return nil, s.agent.RemoveAll() + + case agentLock: + var req agentLockMsg + if err := ssh.Unmarshal(data, &req); err != nil { + return nil, err + } + + return nil, s.agent.Lock(req.Passphrase) + + case agentUnlock: + var req agentLockMsg + if err := ssh.Unmarshal(data, &req); err != nil { + return nil, err + } + return nil, s.agent.Unlock(req.Passphrase) + + case agentSignRequest: + var req signRequestAgentMsg + if err := ssh.Unmarshal(data, &req); err != nil { + return nil, err + } + + var wk wireKey + if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { + return nil, err + } + + k := &Key{ + Format: wk.Format, + Blob: req.KeyBlob, + } + + sig, err := s.agent.Sign(k, req.Data) // TODO(hanwen): flags. + if err != nil { + return nil, err + } + return &signResponseAgentMsg{SigBlob: ssh.Marshal(sig)}, nil + case agentRequestIdentities: + keys, err := s.agent.List() + if err != nil { + return nil, err + } + + rep := identitiesAnswerAgentMsg{ + NumKeys: uint32(len(keys)), + } + for _, k := range keys { + rep.Keys = append(rep.Keys, marshalKey(k)...) + } + return rep, nil + case agentAddIdentity: + return nil, s.insertIdentity(data) + } + + return nil, fmt.Errorf("unknown opcode %d", data[0]) +} + +func (s *server) insertIdentity(req []byte) error { + var record struct { + Type string `sshtype:"17"` + Rest []byte `ssh:"rest"` + } + if err := ssh.Unmarshal(req, &record); err != nil { + return err + } + + switch record.Type { + case ssh.KeyAlgoRSA: + var k rsaKeyMsg + if err := ssh.Unmarshal(req, &k); err != nil { + return err + } + + priv := rsa.PrivateKey{ + PublicKey: rsa.PublicKey{ + E: int(k.E.Int64()), + N: k.N, + }, + D: k.D, + Primes: []*big.Int{k.P, k.Q}, + } + priv.Precompute() + + return s.agent.Add(AddedKey{PrivateKey: &priv, Comment: k.Comments}) + } + return fmt.Errorf("not implemented: %s", record.Type) +} + +// ServeAgent serves the agent protocol on the given connection. It +// returns when an I/O error occurs. +func ServeAgent(agent Agent, c io.ReadWriter) error { + s := &server{agent} + + var length [4]byte + for { + if _, err := io.ReadFull(c, length[:]); err != nil { + return err + } + l := binary.BigEndian.Uint32(length[:]) + if l > maxAgentResponseBytes { + // We also cap requests. + return fmt.Errorf("agent: request too large: %d", l) + } + + req := make([]byte, l) + if _, err := io.ReadFull(c, req); err != nil { + return err + } + + repData := s.processRequestBytes(req) + if len(repData) > maxAgentResponseBytes { + return fmt.Errorf("agent: reply too large: %d bytes", len(repData)) + } + + binary.BigEndian.PutUint32(length[:], uint32(len(repData))) + if _, err := c.Write(length[:]); err != nil { + return err + } + if _, err := c.Write(repData); err != nil { + return err + } + } +} diff --git a/modules/crypto/ssh/agent/server_test.go b/modules/crypto/ssh/agent/server_test.go new file mode 100755 index 000000000..7f257bcf1 --- /dev/null +++ b/modules/crypto/ssh/agent/server_test.go @@ -0,0 +1,77 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "testing" + + "github.com/gogits/gogs/modules/crypto/ssh" +) + +func TestServer(t *testing.T) { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + client := NewClient(c1) + + go ServeAgent(NewKeyring(), c2) + + testAgentInterface(t, client, testPrivateKeys["rsa"], nil, 0) +} + +func TestLockServer(t *testing.T) { + testLockAgent(NewKeyring(), t) +} + +func TestSetupForwardAgent(t *testing.T) { + a, b, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + + defer a.Close() + defer b.Close() + + _, socket, cleanup := startAgent(t) + defer cleanup() + + serverConf := ssh.ServerConfig{ + NoClientAuth: true, + } + serverConf.AddHostKey(testSigners["rsa"]) + incoming := make(chan *ssh.ServerConn, 1) + go func() { + conn, _, _, err := ssh.NewServerConn(a, &serverConf) + if err != nil { + t.Fatalf("Server: %v", err) + } + incoming <- conn + }() + + conf := ssh.ClientConfig{} + conn, chans, reqs, err := ssh.NewClientConn(b, "", &conf) + if err != nil { + t.Fatalf("NewClientConn: %v", err) + } + client := ssh.NewClient(conn, chans, reqs) + + if err := ForwardToRemote(client, socket); err != nil { + t.Fatalf("SetupForwardAgent: %v", err) + } + + server := <-incoming + ch, reqs, err := server.OpenChannel(channelType, nil) + if err != nil { + t.Fatalf("OpenChannel(%q): %v", channelType, err) + } + go ssh.DiscardRequests(reqs) + + agentClient := NewClient(ch) + testAgentInterface(t, agentClient, testPrivateKeys["rsa"], nil, 0) + conn.Close() +} diff --git a/modules/crypto/ssh/agent/testdata_test.go b/modules/crypto/ssh/agent/testdata_test.go new file mode 100755 index 000000000..18dcde29c --- /dev/null +++ b/modules/crypto/ssh/agent/testdata_test.go @@ -0,0 +1,64 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// IMPLEMENTOR NOTE: To avoid a package loop, this file is in three places: +// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three +// instances. + +package agent + +import ( + "crypto/rand" + "fmt" + + "github.com/gogits/gogs/modules/crypto/ssh" + "github.com/gogits/gogs/modules/crypto/ssh/testdata" +) + +var ( + testPrivateKeys map[string]interface{} + testSigners map[string]ssh.Signer + testPublicKeys map[string]ssh.PublicKey +) + +func init() { + var err error + + n := len(testdata.PEMBytes) + testPrivateKeys = make(map[string]interface{}, n) + testSigners = make(map[string]ssh.Signer, n) + testPublicKeys = make(map[string]ssh.PublicKey, n) + for t, k := range testdata.PEMBytes { + testPrivateKeys[t], err = ssh.ParseRawPrivateKey(k) + if err != nil { + panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) + } + testSigners[t], err = ssh.NewSignerFromKey(testPrivateKeys[t]) + if err != nil { + panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) + } + testPublicKeys[t] = testSigners[t].PublicKey() + } + + // Create a cert and sign it for use in tests. + testCert := &ssh.Certificate{ + Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage + ValidAfter: 0, // unix epoch + ValidBefore: ssh.CertTimeInfinity, // The end of currently representable time. + Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + Key: testPublicKeys["ecdsa"], + SignatureKey: testPublicKeys["rsa"], + Permissions: ssh.Permissions{ + CriticalOptions: map[string]string{}, + Extensions: map[string]string{}, + }, + } + testCert.SignCert(rand.Reader, testSigners["rsa"]) + testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] + testSigners["cert"], err = ssh.NewCertSigner(testCert, testSigners["ecdsa"]) + if err != nil { + panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) + } +} diff --git a/modules/crypto/ssh/benchmark_test.go b/modules/crypto/ssh/benchmark_test.go new file mode 100755 index 000000000..d9f7eb9b6 --- /dev/null +++ b/modules/crypto/ssh/benchmark_test.go @@ -0,0 +1,122 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "errors" + "io" + "net" + "testing" +) + +type server struct { + *ServerConn + chans <-chan NewChannel +} + +func newServer(c net.Conn, conf *ServerConfig) (*server, error) { + sconn, chans, reqs, err := NewServerConn(c, conf) + if err != nil { + return nil, err + } + go DiscardRequests(reqs) + return &server{sconn, chans}, nil +} + +func (s *server) Accept() (NewChannel, error) { + n, ok := <-s.chans + if !ok { + return nil, io.EOF + } + return n, nil +} + +func sshPipe() (Conn, *server, error) { + c1, c2, err := netPipe() + if err != nil { + return nil, nil, err + } + + clientConf := ClientConfig{ + User: "user", + } + serverConf := ServerConfig{ + NoClientAuth: true, + } + serverConf.AddHostKey(testSigners["ecdsa"]) + done := make(chan *server, 1) + go func() { + server, err := newServer(c2, &serverConf) + if err != nil { + done <- nil + } + done <- server + }() + + client, _, reqs, err := NewClientConn(c1, "", &clientConf) + if err != nil { + return nil, nil, err + } + + server := <-done + if server == nil { + return nil, nil, errors.New("server handshake failed.") + } + go DiscardRequests(reqs) + + return client, server, nil +} + +func BenchmarkEndToEnd(b *testing.B) { + b.StopTimer() + + client, server, err := sshPipe() + if err != nil { + b.Fatalf("sshPipe: %v", err) + } + + defer client.Close() + defer server.Close() + + size := (1 << 20) + input := make([]byte, size) + output := make([]byte, size) + b.SetBytes(int64(size)) + done := make(chan int, 1) + + go func() { + newCh, err := server.Accept() + if err != nil { + b.Fatalf("Client: %v", err) + } + ch, incoming, err := newCh.Accept() + go DiscardRequests(incoming) + for i := 0; i < b.N; i++ { + if _, err := io.ReadFull(ch, output); err != nil { + b.Fatalf("ReadFull: %v", err) + } + } + ch.Close() + done <- 1 + }() + + ch, in, err := client.OpenChannel("speed", nil) + if err != nil { + b.Fatalf("OpenChannel: %v", err) + } + go DiscardRequests(in) + + b.ResetTimer() + b.StartTimer() + for i := 0; i < b.N; i++ { + if _, err := ch.Write(input); err != nil { + b.Fatalf("WriteFull: %v", err) + } + } + ch.Close() + b.StopTimer() + + <-done +} diff --git a/modules/crypto/ssh/buffer.go b/modules/crypto/ssh/buffer.go new file mode 100755 index 000000000..6931b5114 --- /dev/null +++ b/modules/crypto/ssh/buffer.go @@ -0,0 +1,98 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "io" + "sync" +) + +// buffer provides a linked list buffer for data exchange +// between producer and consumer. Theoretically the buffer is +// of unlimited capacity as it does no allocation of its own. +type buffer struct { + // protects concurrent access to head, tail and closed + *sync.Cond + + head *element // the buffer that will be read first + tail *element // the buffer that will be read last + + closed bool +} + +// An element represents a single link in a linked list. +type element struct { + buf []byte + next *element +} + +// newBuffer returns an empty buffer that is not closed. +func newBuffer() *buffer { + e := new(element) + b := &buffer{ + Cond: newCond(), + head: e, + tail: e, + } + return b +} + +// write makes buf available for Read to receive. +// buf must not be modified after the call to write. +func (b *buffer) write(buf []byte) { + b.Cond.L.Lock() + e := &element{buf: buf} + b.tail.next = e + b.tail = e + b.Cond.Signal() + b.Cond.L.Unlock() +} + +// eof closes the buffer. Reads from the buffer once all +// the data has been consumed will receive os.EOF. +func (b *buffer) eof() error { + b.Cond.L.Lock() + b.closed = true + b.Cond.Signal() + b.Cond.L.Unlock() + return nil +} + +// Read reads data from the internal buffer in buf. Reads will block +// if no data is available, or until the buffer is closed. +func (b *buffer) Read(buf []byte) (n int, err error) { + b.Cond.L.Lock() + defer b.Cond.L.Unlock() + + for len(buf) > 0 { + // if there is data in b.head, copy it + if len(b.head.buf) > 0 { + r := copy(buf, b.head.buf) + buf, b.head.buf = buf[r:], b.head.buf[r:] + n += r + continue + } + // if there is a next buffer, make it the head + if len(b.head.buf) == 0 && b.head != b.tail { + b.head = b.head.next + continue + } + + // if at least one byte has been copied, return + if n > 0 { + break + } + + // if nothing was read, and there is nothing outstanding + // check to see if the buffer is closed. + if b.closed { + err = io.EOF + break + } + // out of buffers, wait for producer + b.Cond.Wait() + } + return +} diff --git a/modules/crypto/ssh/buffer_test.go b/modules/crypto/ssh/buffer_test.go new file mode 100755 index 000000000..d5781cb3d --- /dev/null +++ b/modules/crypto/ssh/buffer_test.go @@ -0,0 +1,87 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "io" + "testing" +) + +var alphabet = []byte("abcdefghijklmnopqrstuvwxyz") + +func TestBufferReadwrite(t *testing.T) { + b := newBuffer() + b.write(alphabet[:10]) + r, _ := b.Read(make([]byte, 10)) + if r != 10 { + t.Fatalf("Expected written == read == 10, written: 10, read %d", r) + } + + b = newBuffer() + b.write(alphabet[:5]) + r, _ = b.Read(make([]byte, 10)) + if r != 5 { + t.Fatalf("Expected written == read == 5, written: 5, read %d", r) + } + + b = newBuffer() + b.write(alphabet[:10]) + r, _ = b.Read(make([]byte, 5)) + if r != 5 { + t.Fatalf("Expected written == 10, read == 5, written: 10, read %d", r) + } + + b = newBuffer() + b.write(alphabet[:5]) + b.write(alphabet[5:15]) + r, _ = b.Read(make([]byte, 10)) + r2, _ := b.Read(make([]byte, 10)) + if r != 10 || r2 != 5 || 15 != r+r2 { + t.Fatal("Expected written == read == 15") + } +} + +func TestBufferClose(t *testing.T) { + b := newBuffer() + b.write(alphabet[:10]) + b.eof() + _, err := b.Read(make([]byte, 5)) + if err != nil { + t.Fatal("expected read of 5 to not return EOF") + } + b = newBuffer() + b.write(alphabet[:10]) + b.eof() + r, err := b.Read(make([]byte, 5)) + r2, err2 := b.Read(make([]byte, 10)) + if r != 5 || r2 != 5 || err != nil || err2 != nil { + t.Fatal("expected reads of 5 and 5") + } + + b = newBuffer() + b.write(alphabet[:10]) + b.eof() + r, err = b.Read(make([]byte, 5)) + r2, err2 = b.Read(make([]byte, 10)) + r3, err3 := b.Read(make([]byte, 10)) + if r != 5 || r2 != 5 || r3 != 0 || err != nil || err2 != nil || err3 != io.EOF { + t.Fatal("expected reads of 5 and 5 and 0, with EOF") + } + + b = newBuffer() + b.write(make([]byte, 5)) + b.write(make([]byte, 10)) + b.eof() + r, err = b.Read(make([]byte, 9)) + r2, err2 = b.Read(make([]byte, 3)) + r3, err3 = b.Read(make([]byte, 3)) + r4, err4 := b.Read(make([]byte, 10)) + if err != nil || err2 != nil || err3 != nil || err4 != io.EOF { + t.Fatalf("Expected EOF on forth read only, err=%v, err2=%v, err3=%v, err4=%v", err, err2, err3, err4) + } + if r != 9 || r2 != 3 || r3 != 3 || r4 != 0 { + t.Fatal("Expected written == read == 15", r, r2, r3, r4) + } +} diff --git a/modules/crypto/ssh/certs.go b/modules/crypto/ssh/certs.go new file mode 100755 index 000000000..385770036 --- /dev/null +++ b/modules/crypto/ssh/certs.go @@ -0,0 +1,501 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "errors" + "fmt" + "io" + "net" + "sort" + "time" +) + +// These constants from [PROTOCOL.certkeys] represent the algorithm names +// for certificate types supported by this package. +const ( + CertAlgoRSAv01 = "ssh-rsa-cert-v01@openssh.com" + CertAlgoDSAv01 = "ssh-dss-cert-v01@openssh.com" + CertAlgoECDSA256v01 = "ecdsa-sha2-nistp256-cert-v01@openssh.com" + CertAlgoECDSA384v01 = "ecdsa-sha2-nistp384-cert-v01@openssh.com" + CertAlgoECDSA521v01 = "ecdsa-sha2-nistp521-cert-v01@openssh.com" +) + +// Certificate types distinguish between host and user +// certificates. The values can be set in the CertType field of +// Certificate. +const ( + UserCert = 1 + HostCert = 2 +) + +// Signature represents a cryptographic signature. +type Signature struct { + Format string + Blob []byte +} + +// CertTimeInfinity can be used for OpenSSHCertV01.ValidBefore to indicate that +// a certificate does not expire. +const CertTimeInfinity = 1<<64 - 1 + +// An Certificate represents an OpenSSH certificate as defined in +// [PROTOCOL.certkeys]?rev=1.8. +type Certificate struct { + Nonce []byte + Key PublicKey + Serial uint64 + CertType uint32 + KeyId string + ValidPrincipals []string + ValidAfter uint64 + ValidBefore uint64 + Permissions + Reserved []byte + SignatureKey PublicKey + Signature *Signature +} + +// genericCertData holds the key-independent part of the certificate data. +// Overall, certificates contain an nonce, public key fields and +// key-independent fields. +type genericCertData struct { + Serial uint64 + CertType uint32 + KeyId string + ValidPrincipals []byte + ValidAfter uint64 + ValidBefore uint64 + CriticalOptions []byte + Extensions []byte + Reserved []byte + SignatureKey []byte + Signature []byte +} + +func marshalStringList(namelist []string) []byte { + var to []byte + for _, name := range namelist { + s := struct{ N string }{name} + to = append(to, Marshal(&s)...) + } + return to +} + +type optionsTuple struct { + Key string + Value []byte +} + +type optionsTupleValue struct { + Value string +} + +// serialize a map of critical options or extensions +// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, +// we need two length prefixes for a non-empty string value +func marshalTuples(tups map[string]string) []byte { + keys := make([]string, 0, len(tups)) + for key := range tups { + keys = append(keys, key) + } + sort.Strings(keys) + + var ret []byte + for _, key := range keys { + s := optionsTuple{Key: key} + if value := tups[key]; len(value) > 0 { + s.Value = Marshal(&optionsTupleValue{value}) + } + ret = append(ret, Marshal(&s)...) + } + return ret +} + +// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, +// we need two length prefixes for a non-empty option value +func parseTuples(in []byte) (map[string]string, error) { + tups := map[string]string{} + var lastKey string + var haveLastKey bool + + for len(in) > 0 { + var key, val, extra []byte + var ok bool + + if key, in, ok = parseString(in); !ok { + return nil, errShortRead + } + keyStr := string(key) + // according to [PROTOCOL.certkeys], the names must be in + // lexical order. + if haveLastKey && keyStr <= lastKey { + return nil, fmt.Errorf("ssh: certificate options are not in lexical order") + } + lastKey, haveLastKey = keyStr, true + // the next field is a data field, which if non-empty has a string embedded + if val, in, ok = parseString(in); !ok { + return nil, errShortRead + } + if len(val) > 0 { + val, extra, ok = parseString(val) + if !ok { + return nil, errShortRead + } + if len(extra) > 0 { + return nil, fmt.Errorf("ssh: unexpected trailing data after certificate option value") + } + tups[keyStr] = string(val) + } else { + tups[keyStr] = "" + } + } + return tups, nil +} + +func parseCert(in []byte, privAlgo string) (*Certificate, error) { + nonce, rest, ok := parseString(in) + if !ok { + return nil, errShortRead + } + + key, rest, err := parsePubKey(rest, privAlgo) + if err != nil { + return nil, err + } + + var g genericCertData + if err := Unmarshal(rest, &g); err != nil { + return nil, err + } + + c := &Certificate{ + Nonce: nonce, + Key: key, + Serial: g.Serial, + CertType: g.CertType, + KeyId: g.KeyId, + ValidAfter: g.ValidAfter, + ValidBefore: g.ValidBefore, + } + + for principals := g.ValidPrincipals; len(principals) > 0; { + principal, rest, ok := parseString(principals) + if !ok { + return nil, errShortRead + } + c.ValidPrincipals = append(c.ValidPrincipals, string(principal)) + principals = rest + } + + c.CriticalOptions, err = parseTuples(g.CriticalOptions) + if err != nil { + return nil, err + } + c.Extensions, err = parseTuples(g.Extensions) + if err != nil { + return nil, err + } + c.Reserved = g.Reserved + k, err := ParsePublicKey(g.SignatureKey) + if err != nil { + return nil, err + } + + c.SignatureKey = k + c.Signature, rest, ok = parseSignatureBody(g.Signature) + if !ok || len(rest) > 0 { + return nil, errors.New("ssh: signature parse error") + } + + return c, nil +} + +type openSSHCertSigner struct { + pub *Certificate + signer Signer +} + +// NewCertSigner returns a Signer that signs with the given Certificate, whose +// private key is held by signer. It returns an error if the public key in cert +// doesn't match the key used by signer. +func NewCertSigner(cert *Certificate, signer Signer) (Signer, error) { + if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { + return nil, errors.New("ssh: signer and cert have different public key") + } + + return &openSSHCertSigner{cert, signer}, nil +} + +func (s *openSSHCertSigner) Sign(rand io.Reader, data []byte) (*Signature, error) { + return s.signer.Sign(rand, data) +} + +func (s *openSSHCertSigner) PublicKey() PublicKey { + return s.pub +} + +const sourceAddressCriticalOption = "source-address" + +// CertChecker does the work of verifying a certificate. Its methods +// can be plugged into ClientConfig.HostKeyCallback and +// ServerConfig.PublicKeyCallback. For the CertChecker to work, +// minimally, the IsAuthority callback should be set. +type CertChecker struct { + // SupportedCriticalOptions lists the CriticalOptions that the + // server application layer understands. These are only used + // for user certificates. + SupportedCriticalOptions []string + + // IsAuthority should return true if the key is recognized as + // an authority. This allows for certificates to be signed by other + // certificates. + IsAuthority func(auth PublicKey) bool + + // Clock is used for verifying time stamps. If nil, time.Now + // is used. + Clock func() time.Time + + // UserKeyFallback is called when CertChecker.Authenticate encounters a + // public key that is not a certificate. It must implement validation + // of user keys or else, if nil, all such keys are rejected. + UserKeyFallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) + + // HostKeyFallback is called when CertChecker.CheckHostKey encounters a + // public key that is not a certificate. It must implement host key + // validation or else, if nil, all such keys are rejected. + HostKeyFallback func(addr string, remote net.Addr, key PublicKey) error + + // IsRevoked is called for each certificate so that revocation checking + // can be implemented. It should return true if the given certificate + // is revoked and false otherwise. If nil, no certificates are + // considered to have been revoked. + IsRevoked func(cert *Certificate) bool +} + +// CheckHostKey checks a host key certificate. This method can be +// plugged into ClientConfig.HostKeyCallback. +func (c *CertChecker) CheckHostKey(addr string, remote net.Addr, key PublicKey) error { + cert, ok := key.(*Certificate) + if !ok { + if c.HostKeyFallback != nil { + return c.HostKeyFallback(addr, remote, key) + } + return errors.New("ssh: non-certificate host key") + } + if cert.CertType != HostCert { + return fmt.Errorf("ssh: certificate presented as a host key has type %d", cert.CertType) + } + + return c.CheckCert(addr, cert) +} + +// Authenticate checks a user certificate. Authenticate can be used as +// a value for ServerConfig.PublicKeyCallback. +func (c *CertChecker) Authenticate(conn ConnMetadata, pubKey PublicKey) (*Permissions, error) { + cert, ok := pubKey.(*Certificate) + if !ok { + if c.UserKeyFallback != nil { + return c.UserKeyFallback(conn, pubKey) + } + return nil, errors.New("ssh: normal key pairs not accepted") + } + + if cert.CertType != UserCert { + return nil, fmt.Errorf("ssh: cert has type %d", cert.CertType) + } + + if err := c.CheckCert(conn.User(), cert); err != nil { + return nil, err + } + + return &cert.Permissions, nil +} + +// CheckCert checks CriticalOptions, ValidPrincipals, revocation, timestamp and +// the signature of the certificate. +func (c *CertChecker) CheckCert(principal string, cert *Certificate) error { + if c.IsRevoked != nil && c.IsRevoked(cert) { + return fmt.Errorf("ssh: certicate serial %d revoked", cert.Serial) + } + + for opt, _ := range cert.CriticalOptions { + // sourceAddressCriticalOption will be enforced by + // serverAuthenticate + if opt == sourceAddressCriticalOption { + continue + } + + found := false + for _, supp := range c.SupportedCriticalOptions { + if supp == opt { + found = true + break + } + } + if !found { + return fmt.Errorf("ssh: unsupported critical option %q in certificate", opt) + } + } + + if len(cert.ValidPrincipals) > 0 { + // By default, certs are valid for all users/hosts. + found := false + for _, p := range cert.ValidPrincipals { + if p == principal { + found = true + break + } + } + if !found { + return fmt.Errorf("ssh: principal %q not in the set of valid principals for given certificate: %q", principal, cert.ValidPrincipals) + } + } + + if !c.IsAuthority(cert.SignatureKey) { + return fmt.Errorf("ssh: certificate signed by unrecognized authority") + } + + clock := c.Clock + if clock == nil { + clock = time.Now + } + + unixNow := clock().Unix() + if after := int64(cert.ValidAfter); after < 0 || unixNow < int64(cert.ValidAfter) { + return fmt.Errorf("ssh: cert is not yet valid") + } + if before := int64(cert.ValidBefore); cert.ValidBefore != uint64(CertTimeInfinity) && (unixNow >= before || before < 0) { + return fmt.Errorf("ssh: cert has expired") + } + if err := cert.SignatureKey.Verify(cert.bytesForSigning(), cert.Signature); err != nil { + return fmt.Errorf("ssh: certificate signature does not verify") + } + + return nil +} + +// SignCert sets c.SignatureKey to the authority's public key and stores a +// Signature, by authority, in the certificate. +func (c *Certificate) SignCert(rand io.Reader, authority Signer) error { + c.Nonce = make([]byte, 32) + if _, err := io.ReadFull(rand, c.Nonce); err != nil { + return err + } + c.SignatureKey = authority.PublicKey() + + sig, err := authority.Sign(rand, c.bytesForSigning()) + if err != nil { + return err + } + c.Signature = sig + return nil +} + +var certAlgoNames = map[string]string{ + KeyAlgoRSA: CertAlgoRSAv01, + KeyAlgoDSA: CertAlgoDSAv01, + KeyAlgoECDSA256: CertAlgoECDSA256v01, + KeyAlgoECDSA384: CertAlgoECDSA384v01, + KeyAlgoECDSA521: CertAlgoECDSA521v01, +} + +// certToPrivAlgo returns the underlying algorithm for a certificate algorithm. +// Panics if a non-certificate algorithm is passed. +func certToPrivAlgo(algo string) string { + for privAlgo, pubAlgo := range certAlgoNames { + if pubAlgo == algo { + return privAlgo + } + } + panic("unknown cert algorithm") +} + +func (cert *Certificate) bytesForSigning() []byte { + c2 := *cert + c2.Signature = nil + out := c2.Marshal() + // Drop trailing signature length. + return out[:len(out)-4] +} + +// Marshal serializes c into OpenSSH's wire format. It is part of the +// PublicKey interface. +func (c *Certificate) Marshal() []byte { + generic := genericCertData{ + Serial: c.Serial, + CertType: c.CertType, + KeyId: c.KeyId, + ValidPrincipals: marshalStringList(c.ValidPrincipals), + ValidAfter: uint64(c.ValidAfter), + ValidBefore: uint64(c.ValidBefore), + CriticalOptions: marshalTuples(c.CriticalOptions), + Extensions: marshalTuples(c.Extensions), + Reserved: c.Reserved, + SignatureKey: c.SignatureKey.Marshal(), + } + if c.Signature != nil { + generic.Signature = Marshal(c.Signature) + } + genericBytes := Marshal(&generic) + keyBytes := c.Key.Marshal() + _, keyBytes, _ = parseString(keyBytes) + prefix := Marshal(&struct { + Name string + Nonce []byte + Key []byte `ssh:"rest"` + }{c.Type(), c.Nonce, keyBytes}) + + result := make([]byte, 0, len(prefix)+len(genericBytes)) + result = append(result, prefix...) + result = append(result, genericBytes...) + return result +} + +// Type returns the key name. It is part of the PublicKey interface. +func (c *Certificate) Type() string { + algo, ok := certAlgoNames[c.Key.Type()] + if !ok { + panic("unknown cert key type") + } + return algo +} + +// Verify verifies a signature against the certificate's public +// key. It is part of the PublicKey interface. +func (c *Certificate) Verify(data []byte, sig *Signature) error { + return c.Key.Verify(data, sig) +} + +func parseSignatureBody(in []byte) (out *Signature, rest []byte, ok bool) { + format, in, ok := parseString(in) + if !ok { + return + } + + out = &Signature{ + Format: string(format), + } + + if out.Blob, in, ok = parseString(in); !ok { + return + } + + return out, in, ok +} + +func parseSignature(in []byte) (out *Signature, rest []byte, ok bool) { + sigBytes, rest, ok := parseString(in) + if !ok { + return + } + + out, trailing, ok := parseSignatureBody(sigBytes) + if !ok || len(trailing) > 0 { + return nil, nil, false + } + return +} diff --git a/modules/crypto/ssh/certs_test.go b/modules/crypto/ssh/certs_test.go new file mode 100755 index 000000000..c5f2e5330 --- /dev/null +++ b/modules/crypto/ssh/certs_test.go @@ -0,0 +1,216 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/rand" + "reflect" + "testing" + "time" +) + +// Cert generated by ssh-keygen 6.0p1 Debian-4. +// % ssh-keygen -s ca-key -I test user-key +const exampleSSHCert = `ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgb1srW/W3ZDjYAO45xLYAwzHBDLsJ4Ux6ICFIkTjb1LEAAAADAQABAAAAYQCkoR51poH0wE8w72cqSB8Sszx+vAhzcMdCO0wqHTj7UNENHWEXGrU0E0UQekD7U+yhkhtoyjbPOVIP7hNa6aRk/ezdh/iUnCIt4Jt1v3Z1h1P+hA4QuYFMHNB+rmjPwAcAAAAAAAAAAAAAAAEAAAAEdGVzdAAAAAAAAAAAAAAAAP//////////AAAAAAAAAIIAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAKcGVybWl0LXB0eQAAAAAAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAAHcAAAAHc3NoLXJzYQAAAAMBAAEAAABhANFS2kaktpSGc+CcmEKPyw9mJC4nZKxHKTgLVZeaGbFZOvJTNzBspQHdy7Q1uKSfktxpgjZnksiu/tFF9ngyY2KFoc+U88ya95IZUycBGCUbBQ8+bhDtw/icdDGQD5WnUwAAAG8AAAAHc3NoLXJzYQAAAGC8Y9Z2LQKhIhxf52773XaWrXdxP0t3GBVo4A10vUWiYoAGepr6rQIoGGXFxT4B9Gp+nEBJjOwKDXPrAevow0T9ca8gZN+0ykbhSrXLE5Ao48rqr3zP4O1/9P7e6gp0gw8=` + +func TestParseCert(t *testing.T) { + authKeyBytes := []byte(exampleSSHCert) + + key, _, _, rest, err := ParseAuthorizedKey(authKeyBytes) + if err != nil { + t.Fatalf("ParseAuthorizedKey: %v", err) + } + if len(rest) > 0 { + t.Errorf("rest: got %q, want empty", rest) + } + + if _, ok := key.(*Certificate); !ok { + t.Fatalf("got %v (%T), want *Certificate", key, key) + } + + marshaled := MarshalAuthorizedKey(key) + // Before comparison, remove the trailing newline that + // MarshalAuthorizedKey adds. + marshaled = marshaled[:len(marshaled)-1] + if !bytes.Equal(authKeyBytes, marshaled) { + t.Errorf("marshaled certificate does not match original: got %q, want %q", marshaled, authKeyBytes) + } +} + +// Cert generated by ssh-keygen OpenSSH_6.8p1 OS X 10.10.3 +// % ssh-keygen -s ca -I testcert -O source-address=192.168.1.0/24 -O force-command=/bin/sleep user.pub +// user.pub key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDACh1rt2DXfV3hk6fszSQcQ/rueMId0kVD9U7nl8cfEnFxqOCrNT92g4laQIGl2mn8lsGZfTLg8ksHq3gkvgO3oo/0wHy4v32JeBOHTsN5AL4gfHNEhWeWb50ev47hnTsRIt9P4dxogeUo/hTu7j9+s9lLpEQXCvq6xocXQt0j8MV9qZBBXFLXVT3cWIkSqOdwt/5ZBg+1GSrc7WfCXVWgTk4a20uPMuJPxU4RQwZW6X3+O8Pqo8C3cW0OzZRFP6gUYUKUsTI5WntlS+LAxgw1mZNsozFGdbiOPRnEryE3SRldh9vjDR3tin1fGpA5P7+CEB/bqaXtG3V+F2OkqaMN +// Critical Options: +// force-command /bin/sleep +// source-address 192.168.1.0/24 +// Extensions: +// permit-X11-forwarding +// permit-agent-forwarding +// permit-port-forwarding +// permit-pty +// permit-user-rc +const exampleSSHCertWithOptions = `ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgDyysCJY0XrO1n03EeRRoITnTPdjENFmWDs9X58PP3VUAAAADAQABAAABAQDACh1rt2DXfV3hk6fszSQcQ/rueMId0kVD9U7nl8cfEnFxqOCrNT92g4laQIGl2mn8lsGZfTLg8ksHq3gkvgO3oo/0wHy4v32JeBOHTsN5AL4gfHNEhWeWb50ev47hnTsRIt9P4dxogeUo/hTu7j9+s9lLpEQXCvq6xocXQt0j8MV9qZBBXFLXVT3cWIkSqOdwt/5ZBg+1GSrc7WfCXVWgTk4a20uPMuJPxU4RQwZW6X3+O8Pqo8C3cW0OzZRFP6gUYUKUsTI5WntlS+LAxgw1mZNsozFGdbiOPRnEryE3SRldh9vjDR3tin1fGpA5P7+CEB/bqaXtG3V+F2OkqaMNAAAAAAAAAAAAAAABAAAACHRlc3RjZXJ0AAAAAAAAAAAAAAAA//////////8AAABLAAAADWZvcmNlLWNvbW1hbmQAAAAOAAAACi9iaW4vc2xlZXAAAAAOc291cmNlLWFkZHJlc3MAAAASAAAADjE5Mi4xNjguMS4wLzI0AAAAggAAABVwZXJtaXQtWDExLWZvcndhcmRpbmcAAAAAAAAAF3Blcm1pdC1hZ2VudC1mb3J3YXJkaW5nAAAAAAAAABZwZXJtaXQtcG9ydC1mb3J3YXJkaW5nAAAAAAAAAApwZXJtaXQtcHR5AAAAAAAAAA5wZXJtaXQtdXNlci1yYwAAAAAAAAAAAAABFwAAAAdzc2gtcnNhAAAAAwEAAQAAAQEAwU+c5ui5A8+J/CFpjW8wCa52bEODA808WWQDCSuTG/eMXNf59v9Y8Pk0F1E9dGCosSNyVcB/hacUrc6He+i97+HJCyKavBsE6GDxrjRyxYqAlfcOXi/IVmaUGiO8OQ39d4GHrjToInKvExSUeleQyH4Y4/e27T/pILAqPFL3fyrvMLT5qU9QyIt6zIpa7GBP5+urouNavMprV3zsfIqNBbWypinOQAw823a5wN+zwXnhZrgQiHZ/USG09Y6k98y1dTVz8YHlQVR4D3lpTAsKDKJ5hCH9WU4fdf+lU8OyNGaJ/vz0XNqxcToe1l4numLTnaoSuH89pHryjqurB7lJKwAAAQ8AAAAHc3NoLXJzYQAAAQCaHvUIoPL1zWUHIXLvu96/HU1s/i4CAW2IIEuGgxCUCiFj6vyTyYtgxQxcmbfZf6eaITlS6XJZa7Qq4iaFZh75C1DXTX8labXhRSD4E2t//AIP9MC1rtQC5xo6FmbQ+BoKcDskr+mNACcbRSxs3IL3bwCfWDnIw2WbVox9ZdcthJKk4UoCW4ix4QwdHw7zlddlz++fGEEVhmTbll1SUkycGApPFBsAYRTMupUJcYPIeReBI/m8XfkoMk99bV8ZJQTAd7OekHY2/48Ff53jLmyDjP7kNw1F8OaPtkFs6dGJXta4krmaekPy87j+35In5hFj7yoOqvSbmYUkeX70/GGQ` + +func TestParseCertWithOptions(t *testing.T) { + opts := map[string]string{ + "source-address": "192.168.1.0/24", + "force-command": "/bin/sleep", + } + exts := map[string]string{ + "permit-X11-forwarding": "", + "permit-agent-forwarding": "", + "permit-port-forwarding": "", + "permit-pty": "", + "permit-user-rc": "", + } + authKeyBytes := []byte(exampleSSHCertWithOptions) + + key, _, _, rest, err := ParseAuthorizedKey(authKeyBytes) + if err != nil { + t.Fatalf("ParseAuthorizedKey: %v", err) + } + if len(rest) > 0 { + t.Errorf("rest: got %q, want empty", rest) + } + cert, ok := key.(*Certificate) + if !ok { + t.Fatalf("got %v (%T), want *Certificate", key, key) + } + if !reflect.DeepEqual(cert.CriticalOptions, opts) { + t.Errorf("unexpected critical options - got %v, want %v", cert.CriticalOptions, opts) + } + if !reflect.DeepEqual(cert.Extensions, exts) { + t.Errorf("unexpected Extensions - got %v, want %v", cert.Extensions, exts) + } + marshaled := MarshalAuthorizedKey(key) + // Before comparison, remove the trailing newline that + // MarshalAuthorizedKey adds. + marshaled = marshaled[:len(marshaled)-1] + if !bytes.Equal(authKeyBytes, marshaled) { + t.Errorf("marshaled certificate does not match original: got %q, want %q", marshaled, authKeyBytes) + } +} + +func TestValidateCert(t *testing.T) { + key, _, _, _, err := ParseAuthorizedKey([]byte(exampleSSHCert)) + if err != nil { + t.Fatalf("ParseAuthorizedKey: %v", err) + } + validCert, ok := key.(*Certificate) + if !ok { + t.Fatalf("got %v (%T), want *Certificate", key, key) + } + checker := CertChecker{} + checker.IsAuthority = func(k PublicKey) bool { + return bytes.Equal(k.Marshal(), validCert.SignatureKey.Marshal()) + } + + if err := checker.CheckCert("user", validCert); err != nil { + t.Errorf("Unable to validate certificate: %v", err) + } + invalidCert := &Certificate{ + Key: testPublicKeys["rsa"], + SignatureKey: testPublicKeys["ecdsa"], + ValidBefore: CertTimeInfinity, + Signature: &Signature{}, + } + if err := checker.CheckCert("user", invalidCert); err == nil { + t.Error("Invalid cert signature passed validation") + } +} + +func TestValidateCertTime(t *testing.T) { + cert := Certificate{ + ValidPrincipals: []string{"user"}, + Key: testPublicKeys["rsa"], + ValidAfter: 50, + ValidBefore: 100, + } + + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + + for ts, ok := range map[int64]bool{ + 25: false, + 50: true, + 99: true, + 100: false, + 125: false, + } { + checker := CertChecker{ + Clock: func() time.Time { return time.Unix(ts, 0) }, + } + checker.IsAuthority = func(k PublicKey) bool { + return bytes.Equal(k.Marshal(), + testPublicKeys["ecdsa"].Marshal()) + } + + if v := checker.CheckCert("user", &cert); (v == nil) != ok { + t.Errorf("Authenticate(%d): %v", ts, v) + } + } +} + +// TODO(hanwen): tests for +// +// host keys: +// * fallbacks + +func TestHostKeyCert(t *testing.T) { + cert := &Certificate{ + ValidPrincipals: []string{"hostname", "hostname.domain"}, + Key: testPublicKeys["rsa"], + ValidBefore: CertTimeInfinity, + CertType: HostCert, + } + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + + checker := &CertChecker{ + IsAuthority: func(p PublicKey) bool { + return bytes.Equal(testPublicKeys["ecdsa"].Marshal(), p.Marshal()) + }, + } + + certSigner, err := NewCertSigner(cert, testSigners["rsa"]) + if err != nil { + t.Errorf("NewCertSigner: %v", err) + } + + for _, name := range []string{"hostname", "otherhost"} { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + errc := make(chan error) + + go func() { + conf := ServerConfig{ + NoClientAuth: true, + } + conf.AddHostKey(certSigner) + _, _, _, err := NewServerConn(c1, &conf) + errc <- err + }() + + config := &ClientConfig{ + User: "user", + HostKeyCallback: checker.CheckHostKey, + } + _, _, _, err = NewClientConn(c2, name, config) + + succeed := name == "hostname" + if (err == nil) != succeed { + t.Fatalf("NewClientConn(%q): %v", name, err) + } + + err = <-errc + if (err == nil) != succeed { + t.Fatalf("NewServerConn(%q): %v", name, err) + } + } +} diff --git a/modules/crypto/ssh/channel.go b/modules/crypto/ssh/channel.go new file mode 100755 index 000000000..5403c7e45 --- /dev/null +++ b/modules/crypto/ssh/channel.go @@ -0,0 +1,631 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "encoding/binary" + "errors" + "fmt" + "io" + "log" + "sync" +) + +const ( + minPacketLength = 9 + // channelMaxPacket contains the maximum number of bytes that will be + // sent in a single packet. As per RFC 4253, section 6.1, 32k is also + // the minimum. + channelMaxPacket = 1 << 15 + // We follow OpenSSH here. + channelWindowSize = 64 * channelMaxPacket +) + +// NewChannel represents an incoming request to a channel. It must either be +// accepted for use by calling Accept, or rejected by calling Reject. +type NewChannel interface { + // Accept accepts the channel creation request. It returns the Channel + // and a Go channel containing SSH requests. The Go channel must be + // serviced otherwise the Channel will hang. + Accept() (Channel, <-chan *Request, error) + + // Reject rejects the channel creation request. After calling + // this, no other methods on the Channel may be called. + Reject(reason RejectionReason, message string) error + + // ChannelType returns the type of the channel, as supplied by the + // client. + ChannelType() string + + // ExtraData returns the arbitrary payload for this channel, as supplied + // by the client. This data is specific to the channel type. + ExtraData() []byte +} + +// A Channel is an ordered, reliable, flow-controlled, duplex stream +// that is multiplexed over an SSH connection. +type Channel interface { + // Read reads up to len(data) bytes from the channel. + Read(data []byte) (int, error) + + // Write writes len(data) bytes to the channel. + Write(data []byte) (int, error) + + // Close signals end of channel use. No data may be sent after this + // call. + Close() error + + // CloseWrite signals the end of sending in-band + // data. Requests may still be sent, and the other side may + // still send data + CloseWrite() error + + // SendRequest sends a channel request. If wantReply is true, + // it will wait for a reply and return the result as a + // boolean, otherwise the return value will be false. Channel + // requests are out-of-band messages so they may be sent even + // if the data stream is closed or blocked by flow control. + SendRequest(name string, wantReply bool, payload []byte) (bool, error) + + // Stderr returns an io.ReadWriter that writes to this channel + // with the extended data type set to stderr. Stderr may + // safely be read and written from a different goroutine than + // Read and Write respectively. + Stderr() io.ReadWriter +} + +// Request is a request sent outside of the normal stream of +// data. Requests can either be specific to an SSH channel, or they +// can be global. +type Request struct { + Type string + WantReply bool + Payload []byte + + ch *channel + mux *mux +} + +// Reply sends a response to a request. It must be called for all requests +// where WantReply is true and is a no-op otherwise. The payload argument is +// ignored for replies to channel-specific requests. +func (r *Request) Reply(ok bool, payload []byte) error { + if !r.WantReply { + return nil + } + + if r.ch == nil { + return r.mux.ackRequest(ok, payload) + } + + return r.ch.ackRequest(ok) +} + +// RejectionReason is an enumeration used when rejecting channel creation +// requests. See RFC 4254, section 5.1. +type RejectionReason uint32 + +const ( + Prohibited RejectionReason = iota + 1 + ConnectionFailed + UnknownChannelType + ResourceShortage +) + +// String converts the rejection reason to human readable form. +func (r RejectionReason) String() string { + switch r { + case Prohibited: + return "administratively prohibited" + case ConnectionFailed: + return "connect failed" + case UnknownChannelType: + return "unknown channel type" + case ResourceShortage: + return "resource shortage" + } + return fmt.Sprintf("unknown reason %d", int(r)) +} + +func min(a uint32, b int) uint32 { + if a < uint32(b) { + return a + } + return uint32(b) +} + +type channelDirection uint8 + +const ( + channelInbound channelDirection = iota + channelOutbound +) + +// channel is an implementation of the Channel interface that works +// with the mux class. +type channel struct { + // R/O after creation + chanType string + extraData []byte + localId, remoteId uint32 + + // maxIncomingPayload and maxRemotePayload are the maximum + // payload sizes of normal and extended data packets for + // receiving and sending, respectively. The wire packet will + // be 9 or 13 bytes larger (excluding encryption overhead). + maxIncomingPayload uint32 + maxRemotePayload uint32 + + mux *mux + + // decided is set to true if an accept or reject message has been sent + // (for outbound channels) or received (for inbound channels). + decided bool + + // direction contains either channelOutbound, for channels created + // locally, or channelInbound, for channels created by the peer. + direction channelDirection + + // Pending internal channel messages. + msg chan interface{} + + // Since requests have no ID, there can be only one request + // with WantReply=true outstanding. This lock is held by a + // goroutine that has such an outgoing request pending. + sentRequestMu sync.Mutex + + incomingRequests chan *Request + + sentEOF bool + + // thread-safe data + remoteWin window + pending *buffer + extPending *buffer + + // windowMu protects myWindow, the flow-control window. + windowMu sync.Mutex + myWindow uint32 + + // writeMu serializes calls to mux.conn.writePacket() and + // protects sentClose and packetPool. This mutex must be + // different from windowMu, as writePacket can block if there + // is a key exchange pending. + writeMu sync.Mutex + sentClose bool + + // packetPool has a buffer for each extended channel ID to + // save allocations during writes. + packetPool map[uint32][]byte +} + +// writePacket sends a packet. If the packet is a channel close, it updates +// sentClose. This method takes the lock c.writeMu. +func (c *channel) writePacket(packet []byte) error { + c.writeMu.Lock() + if c.sentClose { + c.writeMu.Unlock() + return io.EOF + } + c.sentClose = (packet[0] == msgChannelClose) + err := c.mux.conn.writePacket(packet) + c.writeMu.Unlock() + return err +} + +func (c *channel) sendMessage(msg interface{}) error { + if debugMux { + log.Printf("send %d: %#v", c.mux.chanList.offset, msg) + } + + p := Marshal(msg) + binary.BigEndian.PutUint32(p[1:], c.remoteId) + return c.writePacket(p) +} + +// WriteExtended writes data to a specific extended stream. These streams are +// used, for example, for stderr. +func (c *channel) WriteExtended(data []byte, extendedCode uint32) (n int, err error) { + if c.sentEOF { + return 0, io.EOF + } + // 1 byte message type, 4 bytes remoteId, 4 bytes data length + opCode := byte(msgChannelData) + headerLength := uint32(9) + if extendedCode > 0 { + headerLength += 4 + opCode = msgChannelExtendedData + } + + c.writeMu.Lock() + packet := c.packetPool[extendedCode] + // We don't remove the buffer from packetPool, so + // WriteExtended calls from different goroutines will be + // flagged as errors by the race detector. + c.writeMu.Unlock() + + for len(data) > 0 { + space := min(c.maxRemotePayload, len(data)) + if space, err = c.remoteWin.reserve(space); err != nil { + return n, err + } + if want := headerLength + space; uint32(cap(packet)) < want { + packet = make([]byte, want) + } else { + packet = packet[:want] + } + + todo := data[:space] + + packet[0] = opCode + binary.BigEndian.PutUint32(packet[1:], c.remoteId) + if extendedCode > 0 { + binary.BigEndian.PutUint32(packet[5:], uint32(extendedCode)) + } + binary.BigEndian.PutUint32(packet[headerLength-4:], uint32(len(todo))) + copy(packet[headerLength:], todo) + if err = c.writePacket(packet); err != nil { + return n, err + } + + n += len(todo) + data = data[len(todo):] + } + + c.writeMu.Lock() + c.packetPool[extendedCode] = packet + c.writeMu.Unlock() + + return n, err +} + +func (c *channel) handleData(packet []byte) error { + headerLen := 9 + isExtendedData := packet[0] == msgChannelExtendedData + if isExtendedData { + headerLen = 13 + } + if len(packet) < headerLen { + // malformed data packet + return parseError(packet[0]) + } + + var extended uint32 + if isExtendedData { + extended = binary.BigEndian.Uint32(packet[5:]) + } + + length := binary.BigEndian.Uint32(packet[headerLen-4 : headerLen]) + if length == 0 { + return nil + } + if length > c.maxIncomingPayload { + // TODO(hanwen): should send Disconnect? + return errors.New("ssh: incoming packet exceeds maximum payload size") + } + + data := packet[headerLen:] + if length != uint32(len(data)) { + return errors.New("ssh: wrong packet length") + } + + c.windowMu.Lock() + if c.myWindow < length { + c.windowMu.Unlock() + // TODO(hanwen): should send Disconnect with reason? + return errors.New("ssh: remote side wrote too much") + } + c.myWindow -= length + c.windowMu.Unlock() + + if extended == 1 { + c.extPending.write(data) + } else if extended > 0 { + // discard other extended data. + } else { + c.pending.write(data) + } + return nil +} + +func (c *channel) adjustWindow(n uint32) error { + c.windowMu.Lock() + // Since myWindow is managed on our side, and can never exceed + // the initial window setting, we don't worry about overflow. + c.myWindow += uint32(n) + c.windowMu.Unlock() + return c.sendMessage(windowAdjustMsg{ + AdditionalBytes: uint32(n), + }) +} + +func (c *channel) ReadExtended(data []byte, extended uint32) (n int, err error) { + switch extended { + case 1: + n, err = c.extPending.Read(data) + case 0: + n, err = c.pending.Read(data) + default: + return 0, fmt.Errorf("ssh: extended code %d unimplemented", extended) + } + + if n > 0 { + err = c.adjustWindow(uint32(n)) + // sendWindowAdjust can return io.EOF if the remote + // peer has closed the connection, however we want to + // defer forwarding io.EOF to the caller of Read until + // the buffer has been drained. + if n > 0 && err == io.EOF { + err = nil + } + } + + return n, err +} + +func (c *channel) close() { + c.pending.eof() + c.extPending.eof() + close(c.msg) + close(c.incomingRequests) + c.writeMu.Lock() + // This is not necesary for a normal channel teardown, but if + // there was another error, it is. + c.sentClose = true + c.writeMu.Unlock() + // Unblock writers. + c.remoteWin.close() +} + +// responseMessageReceived is called when a success or failure message is +// received on a channel to check that such a message is reasonable for the +// given channel. +func (c *channel) responseMessageReceived() error { + if c.direction == channelInbound { + return errors.New("ssh: channel response message received on inbound channel") + } + if c.decided { + return errors.New("ssh: duplicate response received for channel") + } + c.decided = true + return nil +} + +func (c *channel) handlePacket(packet []byte) error { + switch packet[0] { + case msgChannelData, msgChannelExtendedData: + return c.handleData(packet) + case msgChannelClose: + c.sendMessage(channelCloseMsg{PeersId: c.remoteId}) + c.mux.chanList.remove(c.localId) + c.close() + return nil + case msgChannelEOF: + // RFC 4254 is mute on how EOF affects dataExt messages but + // it is logical to signal EOF at the same time. + c.extPending.eof() + c.pending.eof() + return nil + } + + decoded, err := decode(packet) + if err != nil { + return err + } + + switch msg := decoded.(type) { + case *channelOpenFailureMsg: + if err := c.responseMessageReceived(); err != nil { + return err + } + c.mux.chanList.remove(msg.PeersId) + c.msg <- msg + case *channelOpenConfirmMsg: + if err := c.responseMessageReceived(); err != nil { + return err + } + if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { + return fmt.Errorf("ssh: invalid MaxPacketSize %d from peer", msg.MaxPacketSize) + } + c.remoteId = msg.MyId + c.maxRemotePayload = msg.MaxPacketSize + c.remoteWin.add(msg.MyWindow) + c.msg <- msg + case *windowAdjustMsg: + if !c.remoteWin.add(msg.AdditionalBytes) { + return fmt.Errorf("ssh: invalid window update for %d bytes", msg.AdditionalBytes) + } + case *channelRequestMsg: + req := Request{ + Type: msg.Request, + WantReply: msg.WantReply, + Payload: msg.RequestSpecificData, + ch: c, + } + + c.incomingRequests <- &req + default: + c.msg <- msg + } + return nil +} + +func (m *mux) newChannel(chanType string, direction channelDirection, extraData []byte) *channel { + ch := &channel{ + remoteWin: window{Cond: newCond()}, + myWindow: channelWindowSize, + pending: newBuffer(), + extPending: newBuffer(), + direction: direction, + incomingRequests: make(chan *Request, 16), + msg: make(chan interface{}, 16), + chanType: chanType, + extraData: extraData, + mux: m, + packetPool: make(map[uint32][]byte), + } + ch.localId = m.chanList.add(ch) + return ch +} + +var errUndecided = errors.New("ssh: must Accept or Reject channel") +var errDecidedAlready = errors.New("ssh: can call Accept or Reject only once") + +type extChannel struct { + code uint32 + ch *channel +} + +func (e *extChannel) Write(data []byte) (n int, err error) { + return e.ch.WriteExtended(data, e.code) +} + +func (e *extChannel) Read(data []byte) (n int, err error) { + return e.ch.ReadExtended(data, e.code) +} + +func (c *channel) Accept() (Channel, <-chan *Request, error) { + if c.decided { + return nil, nil, errDecidedAlready + } + c.maxIncomingPayload = channelMaxPacket + confirm := channelOpenConfirmMsg{ + PeersId: c.remoteId, + MyId: c.localId, + MyWindow: c.myWindow, + MaxPacketSize: c.maxIncomingPayload, + } + c.decided = true + if err := c.sendMessage(confirm); err != nil { + return nil, nil, err + } + + return c, c.incomingRequests, nil +} + +func (ch *channel) Reject(reason RejectionReason, message string) error { + if ch.decided { + return errDecidedAlready + } + reject := channelOpenFailureMsg{ + PeersId: ch.remoteId, + Reason: reason, + Message: message, + Language: "en", + } + ch.decided = true + return ch.sendMessage(reject) +} + +func (ch *channel) Read(data []byte) (int, error) { + if !ch.decided { + return 0, errUndecided + } + return ch.ReadExtended(data, 0) +} + +func (ch *channel) Write(data []byte) (int, error) { + if !ch.decided { + return 0, errUndecided + } + return ch.WriteExtended(data, 0) +} + +func (ch *channel) CloseWrite() error { + if !ch.decided { + return errUndecided + } + ch.sentEOF = true + return ch.sendMessage(channelEOFMsg{ + PeersId: ch.remoteId}) +} + +func (ch *channel) Close() error { + if !ch.decided { + return errUndecided + } + + return ch.sendMessage(channelCloseMsg{ + PeersId: ch.remoteId}) +} + +// Extended returns an io.ReadWriter that sends and receives data on the given, +// SSH extended stream. Such streams are used, for example, for stderr. +func (ch *channel) Extended(code uint32) io.ReadWriter { + if !ch.decided { + return nil + } + return &extChannel{code, ch} +} + +func (ch *channel) Stderr() io.ReadWriter { + return ch.Extended(1) +} + +func (ch *channel) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { + if !ch.decided { + return false, errUndecided + } + + if wantReply { + ch.sentRequestMu.Lock() + defer ch.sentRequestMu.Unlock() + } + + msg := channelRequestMsg{ + PeersId: ch.remoteId, + Request: name, + WantReply: wantReply, + RequestSpecificData: payload, + } + + if err := ch.sendMessage(msg); err != nil { + return false, err + } + + if wantReply { + m, ok := (<-ch.msg) + if !ok { + return false, io.EOF + } + switch m.(type) { + case *channelRequestFailureMsg: + return false, nil + case *channelRequestSuccessMsg: + return true, nil + default: + return false, fmt.Errorf("ssh: unexpected response to channel request: %#v", m) + } + } + + return false, nil +} + +// ackRequest either sends an ack or nack to the channel request. +func (ch *channel) ackRequest(ok bool) error { + if !ch.decided { + return errUndecided + } + + var msg interface{} + if !ok { + msg = channelRequestFailureMsg{ + PeersId: ch.remoteId, + } + } else { + msg = channelRequestSuccessMsg{ + PeersId: ch.remoteId, + } + } + return ch.sendMessage(msg) +} + +func (ch *channel) ChannelType() string { + return ch.chanType +} + +func (ch *channel) ExtraData() []byte { + return ch.extraData +} diff --git a/modules/crypto/ssh/cipher.go b/modules/crypto/ssh/cipher.go new file mode 100755 index 000000000..3e06da0de --- /dev/null +++ b/modules/crypto/ssh/cipher.go @@ -0,0 +1,549 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/rc4" + "crypto/subtle" + "encoding/binary" + "errors" + "fmt" + "hash" + "io" + "io/ioutil" +) + +const ( + packetSizeMultiple = 16 // TODO(huin) this should be determined by the cipher. + + // RFC 4253 section 6.1 defines a minimum packet size of 32768 that implementations + // MUST be able to process (plus a few more kilobytes for padding and mac). The RFC + // indicates implementations SHOULD be able to handle larger packet sizes, but then + // waffles on about reasonable limits. + // + // OpenSSH caps their maxPacket at 256kB so we choose to do + // the same. maxPacket is also used to ensure that uint32 + // length fields do not overflow, so it should remain well + // below 4G. + maxPacket = 256 * 1024 +) + +// noneCipher implements cipher.Stream and provides no encryption. It is used +// by the transport before the first key-exchange. +type noneCipher struct{} + +func (c noneCipher) XORKeyStream(dst, src []byte) { + copy(dst, src) +} + +func newAESCTR(key, iv []byte) (cipher.Stream, error) { + c, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + return cipher.NewCTR(c, iv), nil +} + +func newRC4(key, iv []byte) (cipher.Stream, error) { + return rc4.NewCipher(key) +} + +type streamCipherMode struct { + keySize int + ivSize int + skip int + createFunc func(key, iv []byte) (cipher.Stream, error) +} + +func (c *streamCipherMode) createStream(key, iv []byte) (cipher.Stream, error) { + if len(key) < c.keySize { + panic("ssh: key length too small for cipher") + } + if len(iv) < c.ivSize { + panic("ssh: iv too small for cipher") + } + + stream, err := c.createFunc(key[:c.keySize], iv[:c.ivSize]) + if err != nil { + return nil, err + } + + var streamDump []byte + if c.skip > 0 { + streamDump = make([]byte, 512) + } + + for remainingToDump := c.skip; remainingToDump > 0; { + dumpThisTime := remainingToDump + if dumpThisTime > len(streamDump) { + dumpThisTime = len(streamDump) + } + stream.XORKeyStream(streamDump[:dumpThisTime], streamDump[:dumpThisTime]) + remainingToDump -= dumpThisTime + } + + return stream, nil +} + +// cipherModes documents properties of supported ciphers. Ciphers not included +// are not supported and will not be negotiated, even if explicitly requested in +// ClientConfig.Crypto.Ciphers. +var cipherModes = map[string]*streamCipherMode{ + // Ciphers from RFC4344, which introduced many CTR-based ciphers. Algorithms + // are defined in the order specified in the RFC. + "aes128-ctr": {16, aes.BlockSize, 0, newAESCTR}, + "aes192-ctr": {24, aes.BlockSize, 0, newAESCTR}, + "aes256-ctr": {32, aes.BlockSize, 0, newAESCTR}, + + // Ciphers from RFC4345, which introduces security-improved arcfour ciphers. + // They are defined in the order specified in the RFC. + "arcfour128": {16, 0, 1536, newRC4}, + "arcfour256": {32, 0, 1536, newRC4}, + + // Cipher defined in RFC 4253, which describes SSH Transport Layer Protocol. + // Note that this cipher is not safe, as stated in RFC 4253: "Arcfour (and + // RC4) has problems with weak keys, and should be used with caution." + // RFC4345 introduces improved versions of Arcfour. + "arcfour": {16, 0, 0, newRC4}, + + // AES-GCM is not a stream cipher, so it is constructed with a + // special case. If we add any more non-stream ciphers, we + // should invest a cleaner way to do this. + gcmCipherID: {16, 12, 0, nil}, + + // insecure cipher, see http://www.isg.rhul.ac.uk/~kp/SandPfinal.pdf + // uncomment below to enable it. + // aes128cbcID: {16, aes.BlockSize, 0, nil}, +} + +// prefixLen is the length of the packet prefix that contains the packet length +// and number of padding bytes. +const prefixLen = 5 + +// streamPacketCipher is a packetCipher using a stream cipher. +type streamPacketCipher struct { + mac hash.Hash + cipher cipher.Stream + + // The following members are to avoid per-packet allocations. + prefix [prefixLen]byte + seqNumBytes [4]byte + padding [2 * packetSizeMultiple]byte + packetData []byte + macResult []byte +} + +// readPacket reads and decrypt a single packet from the reader argument. +func (s *streamPacketCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { + if _, err := io.ReadFull(r, s.prefix[:]); err != nil { + return nil, err + } + + s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) + length := binary.BigEndian.Uint32(s.prefix[0:4]) + paddingLength := uint32(s.prefix[4]) + + var macSize uint32 + if s.mac != nil { + s.mac.Reset() + binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) + s.mac.Write(s.seqNumBytes[:]) + s.mac.Write(s.prefix[:]) + macSize = uint32(s.mac.Size()) + } + + if length <= paddingLength+1 { + return nil, errors.New("ssh: invalid packet length, packet too small") + } + + if length > maxPacket { + return nil, errors.New("ssh: invalid packet length, packet too large") + } + + // the maxPacket check above ensures that length-1+macSize + // does not overflow. + if uint32(cap(s.packetData)) < length-1+macSize { + s.packetData = make([]byte, length-1+macSize) + } else { + s.packetData = s.packetData[:length-1+macSize] + } + + if _, err := io.ReadFull(r, s.packetData); err != nil { + return nil, err + } + mac := s.packetData[length-1:] + data := s.packetData[:length-1] + s.cipher.XORKeyStream(data, data) + + if s.mac != nil { + s.mac.Write(data) + s.macResult = s.mac.Sum(s.macResult[:0]) + if subtle.ConstantTimeCompare(s.macResult, mac) != 1 { + return nil, errors.New("ssh: MAC failure") + } + } + + return s.packetData[:length-paddingLength-1], nil +} + +// writePacket encrypts and sends a packet of data to the writer argument +func (s *streamPacketCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { + if len(packet) > maxPacket { + return errors.New("ssh: packet too large") + } + + paddingLength := packetSizeMultiple - (prefixLen+len(packet))%packetSizeMultiple + if paddingLength < 4 { + paddingLength += packetSizeMultiple + } + + length := len(packet) + 1 + paddingLength + binary.BigEndian.PutUint32(s.prefix[:], uint32(length)) + s.prefix[4] = byte(paddingLength) + padding := s.padding[:paddingLength] + if _, err := io.ReadFull(rand, padding); err != nil { + return err + } + + if s.mac != nil { + s.mac.Reset() + binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) + s.mac.Write(s.seqNumBytes[:]) + s.mac.Write(s.prefix[:]) + s.mac.Write(packet) + s.mac.Write(padding) + } + + s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) + s.cipher.XORKeyStream(packet, packet) + s.cipher.XORKeyStream(padding, padding) + + if _, err := w.Write(s.prefix[:]); err != nil { + return err + } + if _, err := w.Write(packet); err != nil { + return err + } + if _, err := w.Write(padding); err != nil { + return err + } + + if s.mac != nil { + s.macResult = s.mac.Sum(s.macResult[:0]) + if _, err := w.Write(s.macResult); err != nil { + return err + } + } + + return nil +} + +type gcmCipher struct { + aead cipher.AEAD + prefix [4]byte + iv []byte + buf []byte +} + +func newGCMCipher(iv, key, macKey []byte) (packetCipher, error) { + c, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + aead, err := cipher.NewGCM(c) + if err != nil { + return nil, err + } + + return &gcmCipher{ + aead: aead, + iv: iv, + }, nil +} + +const gcmTagSize = 16 + +func (c *gcmCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { + // Pad out to multiple of 16 bytes. This is different from the + // stream cipher because that encrypts the length too. + padding := byte(packetSizeMultiple - (1+len(packet))%packetSizeMultiple) + if padding < 4 { + padding += packetSizeMultiple + } + + length := uint32(len(packet) + int(padding) + 1) + binary.BigEndian.PutUint32(c.prefix[:], length) + if _, err := w.Write(c.prefix[:]); err != nil { + return err + } + + if cap(c.buf) < int(length) { + c.buf = make([]byte, length) + } else { + c.buf = c.buf[:length] + } + + c.buf[0] = padding + copy(c.buf[1:], packet) + if _, err := io.ReadFull(rand, c.buf[1+len(packet):]); err != nil { + return err + } + c.buf = c.aead.Seal(c.buf[:0], c.iv, c.buf, c.prefix[:]) + if _, err := w.Write(c.buf); err != nil { + return err + } + c.incIV() + + return nil +} + +func (c *gcmCipher) incIV() { + for i := 4 + 7; i >= 4; i-- { + c.iv[i]++ + if c.iv[i] != 0 { + break + } + } +} + +func (c *gcmCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { + if _, err := io.ReadFull(r, c.prefix[:]); err != nil { + return nil, err + } + length := binary.BigEndian.Uint32(c.prefix[:]) + if length > maxPacket { + return nil, errors.New("ssh: max packet length exceeded.") + } + + if cap(c.buf) < int(length+gcmTagSize) { + c.buf = make([]byte, length+gcmTagSize) + } else { + c.buf = c.buf[:length+gcmTagSize] + } + + if _, err := io.ReadFull(r, c.buf); err != nil { + return nil, err + } + + plain, err := c.aead.Open(c.buf[:0], c.iv, c.buf, c.prefix[:]) + if err != nil { + return nil, err + } + c.incIV() + + padding := plain[0] + if padding < 4 || padding >= 20 { + return nil, fmt.Errorf("ssh: illegal padding %d", padding) + } + + if int(padding+1) >= len(plain) { + return nil, fmt.Errorf("ssh: padding %d too large", padding) + } + plain = plain[1 : length-uint32(padding)] + return plain, nil +} + +// cbcCipher implements aes128-cbc cipher defined in RFC 4253 section 6.1 +type cbcCipher struct { + mac hash.Hash + macSize uint32 + decrypter cipher.BlockMode + encrypter cipher.BlockMode + + // The following members are to avoid per-packet allocations. + seqNumBytes [4]byte + packetData []byte + macResult []byte + + // Amount of data we should still read to hide which + // verification error triggered. + oracleCamouflage uint32 +} + +func newAESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { + c, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + cbc := &cbcCipher{ + mac: macModes[algs.MAC].new(macKey), + decrypter: cipher.NewCBCDecrypter(c, iv), + encrypter: cipher.NewCBCEncrypter(c, iv), + packetData: make([]byte, 1024), + } + if cbc.mac != nil { + cbc.macSize = uint32(cbc.mac.Size()) + } + + return cbc, nil +} + +func maxUInt32(a, b int) uint32 { + if a > b { + return uint32(a) + } + return uint32(b) +} + +const ( + cbcMinPacketSizeMultiple = 8 + cbcMinPacketSize = 16 + cbcMinPaddingSize = 4 +) + +// cbcError represents a verification error that may leak information. +type cbcError string + +func (e cbcError) Error() string { return string(e) } + +func (c *cbcCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { + p, err := c.readPacketLeaky(seqNum, r) + if err != nil { + if _, ok := err.(cbcError); ok { + // Verification error: read a fixed amount of + // data, to make distinguishing between + // failing MAC and failing length check more + // difficult. + io.CopyN(ioutil.Discard, r, int64(c.oracleCamouflage)) + } + } + return p, err +} + +func (c *cbcCipher) readPacketLeaky(seqNum uint32, r io.Reader) ([]byte, error) { + blockSize := c.decrypter.BlockSize() + + // Read the header, which will include some of the subsequent data in the + // case of block ciphers - this is copied back to the payload later. + // How many bytes of payload/padding will be read with this first read. + firstBlockLength := uint32((prefixLen + blockSize - 1) / blockSize * blockSize) + firstBlock := c.packetData[:firstBlockLength] + if _, err := io.ReadFull(r, firstBlock); err != nil { + return nil, err + } + + c.oracleCamouflage = maxPacket + 4 + c.macSize - firstBlockLength + + c.decrypter.CryptBlocks(firstBlock, firstBlock) + length := binary.BigEndian.Uint32(firstBlock[:4]) + if length > maxPacket { + return nil, cbcError("ssh: packet too large") + } + if length+4 < maxUInt32(cbcMinPacketSize, blockSize) { + // The minimum size of a packet is 16 (or the cipher block size, whichever + // is larger) bytes. + return nil, cbcError("ssh: packet too small") + } + // The length of the packet (including the length field but not the MAC) must + // be a multiple of the block size or 8, whichever is larger. + if (length+4)%maxUInt32(cbcMinPacketSizeMultiple, blockSize) != 0 { + return nil, cbcError("ssh: invalid packet length multiple") + } + + paddingLength := uint32(firstBlock[4]) + if paddingLength < cbcMinPaddingSize || length <= paddingLength+1 { + return nil, cbcError("ssh: invalid packet length") + } + + // Positions within the c.packetData buffer: + macStart := 4 + length + paddingStart := macStart - paddingLength + + // Entire packet size, starting before length, ending at end of mac. + entirePacketSize := macStart + c.macSize + + // Ensure c.packetData is large enough for the entire packet data. + if uint32(cap(c.packetData)) < entirePacketSize { + // Still need to upsize and copy, but this should be rare at runtime, only + // on upsizing the packetData buffer. + c.packetData = make([]byte, entirePacketSize) + copy(c.packetData, firstBlock) + } else { + c.packetData = c.packetData[:entirePacketSize] + } + + if n, err := io.ReadFull(r, c.packetData[firstBlockLength:]); err != nil { + return nil, err + } else { + c.oracleCamouflage -= uint32(n) + } + + remainingCrypted := c.packetData[firstBlockLength:macStart] + c.decrypter.CryptBlocks(remainingCrypted, remainingCrypted) + + mac := c.packetData[macStart:] + if c.mac != nil { + c.mac.Reset() + binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) + c.mac.Write(c.seqNumBytes[:]) + c.mac.Write(c.packetData[:macStart]) + c.macResult = c.mac.Sum(c.macResult[:0]) + if subtle.ConstantTimeCompare(c.macResult, mac) != 1 { + return nil, cbcError("ssh: MAC failure") + } + } + + return c.packetData[prefixLen:paddingStart], nil +} + +func (c *cbcCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { + effectiveBlockSize := maxUInt32(cbcMinPacketSizeMultiple, c.encrypter.BlockSize()) + + // Length of encrypted portion of the packet (header, payload, padding). + // Enforce minimum padding and packet size. + encLength := maxUInt32(prefixLen+len(packet)+cbcMinPaddingSize, cbcMinPaddingSize) + // Enforce block size. + encLength = (encLength + effectiveBlockSize - 1) / effectiveBlockSize * effectiveBlockSize + + length := encLength - 4 + paddingLength := int(length) - (1 + len(packet)) + + // Overall buffer contains: header, payload, padding, mac. + // Space for the MAC is reserved in the capacity but not the slice length. + bufferSize := encLength + c.macSize + if uint32(cap(c.packetData)) < bufferSize { + c.packetData = make([]byte, encLength, bufferSize) + } else { + c.packetData = c.packetData[:encLength] + } + + p := c.packetData + + // Packet header. + binary.BigEndian.PutUint32(p, length) + p = p[4:] + p[0] = byte(paddingLength) + + // Payload. + p = p[1:] + copy(p, packet) + + // Padding. + p = p[len(packet):] + if _, err := io.ReadFull(rand, p); err != nil { + return err + } + + if c.mac != nil { + c.mac.Reset() + binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) + c.mac.Write(c.seqNumBytes[:]) + c.mac.Write(c.packetData) + // The MAC is now appended into the capacity reserved for it earlier. + c.packetData = c.mac.Sum(c.packetData) + } + + c.encrypter.CryptBlocks(c.packetData[:encLength], c.packetData[:encLength]) + + if _, err := w.Write(c.packetData); err != nil { + return err + } + + return nil +} diff --git a/modules/crypto/ssh/cipher_test.go b/modules/crypto/ssh/cipher_test.go new file mode 100755 index 000000000..54b92b6ed --- /dev/null +++ b/modules/crypto/ssh/cipher_test.go @@ -0,0 +1,127 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto" + "crypto/aes" + "crypto/rand" + "testing" +) + +func TestDefaultCiphersExist(t *testing.T) { + for _, cipherAlgo := range supportedCiphers { + if _, ok := cipherModes[cipherAlgo]; !ok { + t.Errorf("default cipher %q is unknown", cipherAlgo) + } + } +} + +func TestPacketCiphers(t *testing.T) { + // Still test aes128cbc cipher althought it's commented out. + cipherModes[aes128cbcID] = &streamCipherMode{16, aes.BlockSize, 0, nil} + defer delete(cipherModes, aes128cbcID) + + for cipher := range cipherModes { + kr := &kexResult{Hash: crypto.SHA1} + algs := directionAlgorithms{ + Cipher: cipher, + MAC: "hmac-sha1", + Compression: "none", + } + client, err := newPacketCipher(clientKeys, algs, kr) + if err != nil { + t.Errorf("newPacketCipher(client, %q): %v", cipher, err) + continue + } + server, err := newPacketCipher(clientKeys, algs, kr) + if err != nil { + t.Errorf("newPacketCipher(client, %q): %v", cipher, err) + continue + } + + want := "bla bla" + input := []byte(want) + buf := &bytes.Buffer{} + if err := client.writePacket(0, buf, rand.Reader, input); err != nil { + t.Errorf("writePacket(%q): %v", cipher, err) + continue + } + + packet, err := server.readPacket(0, buf) + if err != nil { + t.Errorf("readPacket(%q): %v", cipher, err) + continue + } + + if string(packet) != want { + t.Errorf("roundtrip(%q): got %q, want %q", cipher, packet, want) + } + } +} + +func TestCBCOracleCounterMeasure(t *testing.T) { + cipherModes[aes128cbcID] = &streamCipherMode{16, aes.BlockSize, 0, nil} + defer delete(cipherModes, aes128cbcID) + + kr := &kexResult{Hash: crypto.SHA1} + algs := directionAlgorithms{ + Cipher: aes128cbcID, + MAC: "hmac-sha1", + Compression: "none", + } + client, err := newPacketCipher(clientKeys, algs, kr) + if err != nil { + t.Fatalf("newPacketCipher(client): %v", err) + } + + want := "bla bla" + input := []byte(want) + buf := &bytes.Buffer{} + if err := client.writePacket(0, buf, rand.Reader, input); err != nil { + t.Errorf("writePacket: %v", err) + } + + packetSize := buf.Len() + buf.Write(make([]byte, 2*maxPacket)) + + // We corrupt each byte, but this usually will only test the + // 'packet too large' or 'MAC failure' cases. + lastRead := -1 + for i := 0; i < packetSize; i++ { + server, err := newPacketCipher(clientKeys, algs, kr) + if err != nil { + t.Fatalf("newPacketCipher(client): %v", err) + } + + fresh := &bytes.Buffer{} + fresh.Write(buf.Bytes()) + fresh.Bytes()[i] ^= 0x01 + + before := fresh.Len() + _, err = server.readPacket(0, fresh) + if err == nil { + t.Errorf("corrupt byte %d: readPacket succeeded ", i) + continue + } + if _, ok := err.(cbcError); !ok { + t.Errorf("corrupt byte %d: got %v (%T), want cbcError", i, err, err) + continue + } + + after := fresh.Len() + bytesRead := before - after + if bytesRead < maxPacket { + t.Errorf("corrupt byte %d: read %d bytes, want more than %d", i, bytesRead, maxPacket) + continue + } + + if i > 0 && bytesRead != lastRead { + t.Errorf("corrupt byte %d: read %d bytes, want %d bytes read", i, bytesRead, lastRead) + } + lastRead = bytesRead + } +} diff --git a/modules/crypto/ssh/client.go b/modules/crypto/ssh/client.go new file mode 100755 index 000000000..0b9fbe500 --- /dev/null +++ b/modules/crypto/ssh/client.go @@ -0,0 +1,213 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "errors" + "fmt" + "net" + "sync" +) + +// Client implements a traditional SSH client that supports shells, +// subprocesses, port forwarding and tunneled dialing. +type Client struct { + Conn + + forwards forwardList // forwarded tcpip connections from the remote side + mu sync.Mutex + channelHandlers map[string]chan NewChannel +} + +// HandleChannelOpen returns a channel on which NewChannel requests +// for the given type are sent. If the type already is being handled, +// nil is returned. The channel is closed when the connection is closed. +func (c *Client) HandleChannelOpen(channelType string) <-chan NewChannel { + c.mu.Lock() + defer c.mu.Unlock() + if c.channelHandlers == nil { + // The SSH channel has been closed. + c := make(chan NewChannel) + close(c) + return c + } + + ch := c.channelHandlers[channelType] + if ch != nil { + return nil + } + + ch = make(chan NewChannel, 16) + c.channelHandlers[channelType] = ch + return ch +} + +// NewClient creates a Client on top of the given connection. +func NewClient(c Conn, chans <-chan NewChannel, reqs <-chan *Request) *Client { + conn := &Client{ + Conn: c, + channelHandlers: make(map[string]chan NewChannel, 1), + } + + go conn.handleGlobalRequests(reqs) + go conn.handleChannelOpens(chans) + go func() { + conn.Wait() + conn.forwards.closeAll() + }() + go conn.forwards.handleChannels(conn.HandleChannelOpen("forwarded-tcpip")) + return conn +} + +// NewClientConn establishes an authenticated SSH connection using c +// as the underlying transport. The Request and NewChannel channels +// must be serviced or the connection will hang. +func NewClientConn(c net.Conn, addr string, config *ClientConfig) (Conn, <-chan NewChannel, <-chan *Request, error) { + fullConf := *config + fullConf.SetDefaults() + conn := &connection{ + sshConn: sshConn{conn: c}, + } + + if err := conn.clientHandshake(addr, &fullConf); err != nil { + c.Close() + return nil, nil, nil, fmt.Errorf("ssh: handshake failed: %v", err) + } + conn.mux = newMux(conn.transport) + return conn, conn.mux.incomingChannels, conn.mux.incomingRequests, nil +} + +// clientHandshake performs the client side key exchange. See RFC 4253 Section +// 7. +func (c *connection) clientHandshake(dialAddress string, config *ClientConfig) error { + if config.ClientVersion != "" { + c.clientVersion = []byte(config.ClientVersion) + } else { + c.clientVersion = []byte(packageVersion) + } + var err error + c.serverVersion, err = exchangeVersions(c.sshConn.conn, c.clientVersion) + if err != nil { + return err + } + + c.transport = newClientTransport( + newTransport(c.sshConn.conn, config.Rand, true /* is client */), + c.clientVersion, c.serverVersion, config, dialAddress, c.sshConn.RemoteAddr()) + if err := c.transport.requestKeyChange(); err != nil { + return err + } + + if packet, err := c.transport.readPacket(); err != nil { + return err + } else if packet[0] != msgNewKeys { + return unexpectedMessageError(msgNewKeys, packet[0]) + } + + // We just did the key change, so the session ID is established. + c.sessionID = c.transport.getSessionID() + + return c.clientAuthenticate(config) +} + +// verifyHostKeySignature verifies the host key obtained in the key +// exchange. +func verifyHostKeySignature(hostKey PublicKey, result *kexResult) error { + sig, rest, ok := parseSignatureBody(result.Signature) + if len(rest) > 0 || !ok { + return errors.New("ssh: signature parse error") + } + + return hostKey.Verify(result.H, sig) +} + +// NewSession opens a new Session for this client. (A session is a remote +// execution of a program.) +func (c *Client) NewSession() (*Session, error) { + ch, in, err := c.OpenChannel("session", nil) + if err != nil { + return nil, err + } + return newSession(ch, in) +} + +func (c *Client) handleGlobalRequests(incoming <-chan *Request) { + for r := range incoming { + // This handles keepalive messages and matches + // the behaviour of OpenSSH. + r.Reply(false, nil) + } +} + +// handleChannelOpens channel open messages from the remote side. +func (c *Client) handleChannelOpens(in <-chan NewChannel) { + for ch := range in { + c.mu.Lock() + handler := c.channelHandlers[ch.ChannelType()] + c.mu.Unlock() + + if handler != nil { + handler <- ch + } else { + ch.Reject(UnknownChannelType, fmt.Sprintf("unknown channel type: %v", ch.ChannelType())) + } + } + + c.mu.Lock() + for _, ch := range c.channelHandlers { + close(ch) + } + c.channelHandlers = nil + c.mu.Unlock() +} + +// Dial starts a client connection to the given SSH server. It is a +// convenience function that connects to the given network address, +// initiates the SSH handshake, and then sets up a Client. For access +// to incoming channels and requests, use net.Dial with NewClientConn +// instead. +func Dial(network, addr string, config *ClientConfig) (*Client, error) { + conn, err := net.Dial(network, addr) + if err != nil { + return nil, err + } + c, chans, reqs, err := NewClientConn(conn, addr, config) + if err != nil { + return nil, err + } + return NewClient(c, chans, reqs), nil +} + +// A ClientConfig structure is used to configure a Client. It must not be +// modified after having been passed to an SSH function. +type ClientConfig struct { + // Config contains configuration that is shared between clients and + // servers. + Config + + // User contains the username to authenticate as. + User string + + // Auth contains possible authentication methods to use with the + // server. Only the first instance of a particular RFC 4252 method will + // be used during authentication. + Auth []AuthMethod + + // HostKeyCallback, if not nil, is called during the cryptographic + // handshake to validate the server's host key. A nil HostKeyCallback + // implies that all host keys are accepted. + HostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error + + // ClientVersion contains the version identification string that will + // be used for the connection. If empty, a reasonable default is used. + ClientVersion string + + // HostKeyAlgorithms lists the key types that the client will + // accept from the server as host key, in order of + // preference. If empty, a reasonable default is used. Any + // string returned from PublicKey.Type method may be used, or + // any of the CertAlgoXxxx and KeyAlgoXxxx constants. + HostKeyAlgorithms []string +} diff --git a/modules/crypto/ssh/client_auth.go b/modules/crypto/ssh/client_auth.go new file mode 100755 index 000000000..e15be3ef2 --- /dev/null +++ b/modules/crypto/ssh/client_auth.go @@ -0,0 +1,441 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "errors" + "fmt" + "io" +) + +// clientAuthenticate authenticates with the remote server. See RFC 4252. +func (c *connection) clientAuthenticate(config *ClientConfig) error { + // initiate user auth session + if err := c.transport.writePacket(Marshal(&serviceRequestMsg{serviceUserAuth})); err != nil { + return err + } + packet, err := c.transport.readPacket() + if err != nil { + return err + } + var serviceAccept serviceAcceptMsg + if err := Unmarshal(packet, &serviceAccept); err != nil { + return err + } + + // during the authentication phase the client first attempts the "none" method + // then any untried methods suggested by the server. + tried := make(map[string]bool) + var lastMethods []string + for auth := AuthMethod(new(noneAuth)); auth != nil; { + ok, methods, err := auth.auth(c.transport.getSessionID(), config.User, c.transport, config.Rand) + if err != nil { + return err + } + if ok { + // success + return nil + } + tried[auth.method()] = true + if methods == nil { + methods = lastMethods + } + lastMethods = methods + + auth = nil + + findNext: + for _, a := range config.Auth { + candidateMethod := a.method() + if tried[candidateMethod] { + continue + } + for _, meth := range methods { + if meth == candidateMethod { + auth = a + break findNext + } + } + } + } + return fmt.Errorf("ssh: unable to authenticate, attempted methods %v, no supported methods remain", keys(tried)) +} + +func keys(m map[string]bool) []string { + s := make([]string, 0, len(m)) + + for key := range m { + s = append(s, key) + } + return s +} + +// An AuthMethod represents an instance of an RFC 4252 authentication method. +type AuthMethod interface { + // auth authenticates user over transport t. + // Returns true if authentication is successful. + // If authentication is not successful, a []string of alternative + // method names is returned. If the slice is nil, it will be ignored + // and the previous set of possible methods will be reused. + auth(session []byte, user string, p packetConn, rand io.Reader) (bool, []string, error) + + // method returns the RFC 4252 method name. + method() string +} + +// "none" authentication, RFC 4252 section 5.2. +type noneAuth int + +func (n *noneAuth) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { + if err := c.writePacket(Marshal(&userAuthRequestMsg{ + User: user, + Service: serviceSSH, + Method: "none", + })); err != nil { + return false, nil, err + } + + return handleAuthResponse(c) +} + +func (n *noneAuth) method() string { + return "none" +} + +// passwordCallback is an AuthMethod that fetches the password through +// a function call, e.g. by prompting the user. +type passwordCallback func() (password string, err error) + +func (cb passwordCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { + type passwordAuthMsg struct { + User string `sshtype:"50"` + Service string + Method string + Reply bool + Password string + } + + pw, err := cb() + // REVIEW NOTE: is there a need to support skipping a password attempt? + // The program may only find out that the user doesn't have a password + // when prompting. + if err != nil { + return false, nil, err + } + + if err := c.writePacket(Marshal(&passwordAuthMsg{ + User: user, + Service: serviceSSH, + Method: cb.method(), + Reply: false, + Password: pw, + })); err != nil { + return false, nil, err + } + + return handleAuthResponse(c) +} + +func (cb passwordCallback) method() string { + return "password" +} + +// Password returns an AuthMethod using the given password. +func Password(secret string) AuthMethod { + return passwordCallback(func() (string, error) { return secret, nil }) +} + +// PasswordCallback returns an AuthMethod that uses a callback for +// fetching a password. +func PasswordCallback(prompt func() (secret string, err error)) AuthMethod { + return passwordCallback(prompt) +} + +type publickeyAuthMsg struct { + User string `sshtype:"50"` + Service string + Method string + // HasSig indicates to the receiver packet that the auth request is signed and + // should be used for authentication of the request. + HasSig bool + Algoname string + PubKey []byte + // Sig is tagged with "rest" so Marshal will exclude it during + // validateKey + Sig []byte `ssh:"rest"` +} + +// publicKeyCallback is an AuthMethod that uses a set of key +// pairs for authentication. +type publicKeyCallback func() ([]Signer, error) + +func (cb publicKeyCallback) method() string { + return "publickey" +} + +func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { + // Authentication is performed in two stages. The first stage sends an + // enquiry to test if each key is acceptable to the remote. The second + // stage attempts to authenticate with the valid keys obtained in the + // first stage. + + signers, err := cb() + if err != nil { + return false, nil, err + } + var validKeys []Signer + for _, signer := range signers { + if ok, err := validateKey(signer.PublicKey(), user, c); ok { + validKeys = append(validKeys, signer) + } else { + if err != nil { + return false, nil, err + } + } + } + + // methods that may continue if this auth is not successful. + var methods []string + for _, signer := range validKeys { + pub := signer.PublicKey() + + pubKey := pub.Marshal() + sign, err := signer.Sign(rand, buildDataSignedForAuth(session, userAuthRequestMsg{ + User: user, + Service: serviceSSH, + Method: cb.method(), + }, []byte(pub.Type()), pubKey)) + if err != nil { + return false, nil, err + } + + // manually wrap the serialized signature in a string + s := Marshal(sign) + sig := make([]byte, stringLength(len(s))) + marshalString(sig, s) + msg := publickeyAuthMsg{ + User: user, + Service: serviceSSH, + Method: cb.method(), + HasSig: true, + Algoname: pub.Type(), + PubKey: pubKey, + Sig: sig, + } + p := Marshal(&msg) + if err := c.writePacket(p); err != nil { + return false, nil, err + } + var success bool + success, methods, err = handleAuthResponse(c) + if err != nil { + return false, nil, err + } + if success { + return success, methods, err + } + } + return false, methods, nil +} + +// validateKey validates the key provided is acceptable to the server. +func validateKey(key PublicKey, user string, c packetConn) (bool, error) { + pubKey := key.Marshal() + msg := publickeyAuthMsg{ + User: user, + Service: serviceSSH, + Method: "publickey", + HasSig: false, + Algoname: key.Type(), + PubKey: pubKey, + } + if err := c.writePacket(Marshal(&msg)); err != nil { + return false, err + } + + return confirmKeyAck(key, c) +} + +func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { + pubKey := key.Marshal() + algoname := key.Type() + + for { + packet, err := c.readPacket() + if err != nil { + return false, err + } + switch packet[0] { + case msgUserAuthBanner: + // TODO(gpaul): add callback to present the banner to the user + case msgUserAuthPubKeyOk: + var msg userAuthPubKeyOkMsg + if err := Unmarshal(packet, &msg); err != nil { + return false, err + } + if msg.Algo != algoname || !bytes.Equal(msg.PubKey, pubKey) { + return false, nil + } + return true, nil + case msgUserAuthFailure: + return false, nil + default: + return false, unexpectedMessageError(msgUserAuthSuccess, packet[0]) + } + } +} + +// PublicKeys returns an AuthMethod that uses the given key +// pairs. +func PublicKeys(signers ...Signer) AuthMethod { + return publicKeyCallback(func() ([]Signer, error) { return signers, nil }) +} + +// PublicKeysCallback returns an AuthMethod that runs the given +// function to obtain a list of key pairs. +func PublicKeysCallback(getSigners func() (signers []Signer, err error)) AuthMethod { + return publicKeyCallback(getSigners) +} + +// handleAuthResponse returns whether the preceding authentication request succeeded +// along with a list of remaining authentication methods to try next and +// an error if an unexpected response was received. +func handleAuthResponse(c packetConn) (bool, []string, error) { + for { + packet, err := c.readPacket() + if err != nil { + return false, nil, err + } + + switch packet[0] { + case msgUserAuthBanner: + // TODO: add callback to present the banner to the user + case msgUserAuthFailure: + var msg userAuthFailureMsg + if err := Unmarshal(packet, &msg); err != nil { + return false, nil, err + } + return false, msg.Methods, nil + case msgUserAuthSuccess: + return true, nil, nil + case msgDisconnect: + return false, nil, io.EOF + default: + return false, nil, unexpectedMessageError(msgUserAuthSuccess, packet[0]) + } + } +} + +// KeyboardInteractiveChallenge should print questions, optionally +// disabling echoing (e.g. for passwords), and return all the answers. +// Challenge may be called multiple times in a single session. After +// successful authentication, the server may send a challenge with no +// questions, for which the user and instruction messages should be +// printed. RFC 4256 section 3.3 details how the UI should behave for +// both CLI and GUI environments. +type KeyboardInteractiveChallenge func(user, instruction string, questions []string, echos []bool) (answers []string, err error) + +// KeyboardInteractive returns a AuthMethod using a prompt/response +// sequence controlled by the server. +func KeyboardInteractive(challenge KeyboardInteractiveChallenge) AuthMethod { + return challenge +} + +func (cb KeyboardInteractiveChallenge) method() string { + return "keyboard-interactive" +} + +func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { + type initiateMsg struct { + User string `sshtype:"50"` + Service string + Method string + Language string + Submethods string + } + + if err := c.writePacket(Marshal(&initiateMsg{ + User: user, + Service: serviceSSH, + Method: "keyboard-interactive", + })); err != nil { + return false, nil, err + } + + for { + packet, err := c.readPacket() + if err != nil { + return false, nil, err + } + + // like handleAuthResponse, but with less options. + switch packet[0] { + case msgUserAuthBanner: + // TODO: Print banners during userauth. + continue + case msgUserAuthInfoRequest: + // OK + case msgUserAuthFailure: + var msg userAuthFailureMsg + if err := Unmarshal(packet, &msg); err != nil { + return false, nil, err + } + return false, msg.Methods, nil + case msgUserAuthSuccess: + return true, nil, nil + default: + return false, nil, unexpectedMessageError(msgUserAuthInfoRequest, packet[0]) + } + + var msg userAuthInfoRequestMsg + if err := Unmarshal(packet, &msg); err != nil { + return false, nil, err + } + + // Manually unpack the prompt/echo pairs. + rest := msg.Prompts + var prompts []string + var echos []bool + for i := 0; i < int(msg.NumPrompts); i++ { + prompt, r, ok := parseString(rest) + if !ok || len(r) == 0 { + return false, nil, errors.New("ssh: prompt format error") + } + prompts = append(prompts, string(prompt)) + echos = append(echos, r[0] != 0) + rest = r[1:] + } + + if len(rest) != 0 { + return false, nil, errors.New("ssh: extra data following keyboard-interactive pairs") + } + + answers, err := cb(msg.User, msg.Instruction, prompts, echos) + if err != nil { + return false, nil, err + } + + if len(answers) != len(prompts) { + return false, nil, errors.New("ssh: not enough answers from keyboard-interactive callback") + } + responseLength := 1 + 4 + for _, a := range answers { + responseLength += stringLength(len(a)) + } + serialized := make([]byte, responseLength) + p := serialized + p[0] = msgUserAuthInfoResponse + p = p[1:] + p = marshalUint32(p, uint32(len(answers))) + for _, a := range answers { + p = marshalString(p, []byte(a)) + } + + if err := c.writePacket(serialized); err != nil { + return false, nil, err + } + } +} diff --git a/modules/crypto/ssh/client_auth_test.go b/modules/crypto/ssh/client_auth_test.go new file mode 100755 index 000000000..2ea44624f --- /dev/null +++ b/modules/crypto/ssh/client_auth_test.go @@ -0,0 +1,393 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/rand" + "errors" + "fmt" + "strings" + "testing" +) + +type keyboardInteractive map[string]string + +func (cr keyboardInteractive) Challenge(user string, instruction string, questions []string, echos []bool) ([]string, error) { + var answers []string + for _, q := range questions { + answers = append(answers, cr[q]) + } + return answers, nil +} + +// reused internally by tests +var clientPassword = "tiger" + +// tryAuth runs a handshake with a given config against an SSH server +// with config serverConfig +func tryAuth(t *testing.T, config *ClientConfig) error { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + certChecker := CertChecker{ + IsAuthority: func(k PublicKey) bool { + return bytes.Equal(k.Marshal(), testPublicKeys["ecdsa"].Marshal()) + }, + UserKeyFallback: func(conn ConnMetadata, key PublicKey) (*Permissions, error) { + if conn.User() == "testuser" && bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) { + return nil, nil + } + + return nil, fmt.Errorf("pubkey for %q not acceptable", conn.User()) + }, + IsRevoked: func(c *Certificate) bool { + return c.Serial == 666 + }, + } + + serverConfig := &ServerConfig{ + PasswordCallback: func(conn ConnMetadata, pass []byte) (*Permissions, error) { + if conn.User() == "testuser" && string(pass) == clientPassword { + return nil, nil + } + return nil, errors.New("password auth failed") + }, + PublicKeyCallback: certChecker.Authenticate, + KeyboardInteractiveCallback: func(conn ConnMetadata, challenge KeyboardInteractiveChallenge) (*Permissions, error) { + ans, err := challenge("user", + "instruction", + []string{"question1", "question2"}, + []bool{true, true}) + if err != nil { + return nil, err + } + ok := conn.User() == "testuser" && ans[0] == "answer1" && ans[1] == "answer2" + if ok { + challenge("user", "motd", nil, nil) + return nil, nil + } + return nil, errors.New("keyboard-interactive failed") + }, + AuthLogCallback: func(conn ConnMetadata, method string, err error) { + t.Logf("user %q, method %q: %v", conn.User(), method, err) + }, + } + serverConfig.AddHostKey(testSigners["rsa"]) + + go newServer(c1, serverConfig) + _, _, _, err = NewClientConn(c2, "", config) + return err +} + +func TestClientAuthPublicKey(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["rsa"]), + }, + } + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } +} + +func TestAuthMethodPassword(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + Password(clientPassword), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } +} + +func TestAuthMethodFallback(t *testing.T) { + var passwordCalled bool + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["rsa"]), + PasswordCallback( + func() (string, error) { + passwordCalled = true + return "WRONG", nil + }), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } + + if passwordCalled { + t.Errorf("password auth tried before public-key auth.") + } +} + +func TestAuthMethodWrongPassword(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + Password("wrong"), + PublicKeys(testSigners["rsa"]), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } +} + +func TestAuthMethodKeyboardInteractive(t *testing.T) { + answers := keyboardInteractive(map[string]string{ + "question1": "answer1", + "question2": "answer2", + }) + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + KeyboardInteractive(answers.Challenge), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } +} + +func TestAuthMethodWrongKeyboardInteractive(t *testing.T) { + answers := keyboardInteractive(map[string]string{ + "question1": "answer1", + "question2": "WRONG", + }) + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + KeyboardInteractive(answers.Challenge), + }, + } + + if err := tryAuth(t, config); err == nil { + t.Fatalf("wrong answers should not have authenticated with KeyboardInteractive") + } +} + +// the mock server will only authenticate ssh-rsa keys +func TestAuthMethodInvalidPublicKey(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["dsa"]), + }, + } + + if err := tryAuth(t, config); err == nil { + t.Fatalf("dsa private key should not have authenticated with rsa public key") + } +} + +// the client should authenticate with the second key +func TestAuthMethodRSAandDSA(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["dsa"], testSigners["rsa"]), + }, + } + if err := tryAuth(t, config); err != nil { + t.Fatalf("client could not authenticate with rsa key: %v", err) + } +} + +func TestClientHMAC(t *testing.T) { + for _, mac := range supportedMACs { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["rsa"]), + }, + Config: Config{ + MACs: []string{mac}, + }, + } + if err := tryAuth(t, config); err != nil { + t.Fatalf("client could not authenticate with mac algo %s: %v", mac, err) + } + } +} + +// issue 4285. +func TestClientUnsupportedCipher(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(), + }, + Config: Config{ + Ciphers: []string{"aes128-cbc"}, // not currently supported + }, + } + if err := tryAuth(t, config); err == nil { + t.Errorf("expected no ciphers in common") + } +} + +func TestClientUnsupportedKex(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(), + }, + Config: Config{ + KeyExchanges: []string{"diffie-hellman-group-exchange-sha256"}, // not currently supported + }, + } + if err := tryAuth(t, config); err == nil || !strings.Contains(err.Error(), "common algorithm") { + t.Errorf("got %v, expected 'common algorithm'", err) + } +} + +func TestClientLoginCert(t *testing.T) { + cert := &Certificate{ + Key: testPublicKeys["rsa"], + ValidBefore: CertTimeInfinity, + CertType: UserCert, + } + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + certSigner, err := NewCertSigner(cert, testSigners["rsa"]) + if err != nil { + t.Fatalf("NewCertSigner: %v", err) + } + + clientConfig := &ClientConfig{ + User: "user", + } + clientConfig.Auth = append(clientConfig.Auth, PublicKeys(certSigner)) + + t.Log("should succeed") + if err := tryAuth(t, clientConfig); err != nil { + t.Errorf("cert login failed: %v", err) + } + + t.Log("corrupted signature") + cert.Signature.Blob[0]++ + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with corrupted sig") + } + + t.Log("revoked") + cert.Serial = 666 + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("revoked cert login succeeded") + } + cert.Serial = 1 + + t.Log("sign with wrong key") + cert.SignCert(rand.Reader, testSigners["dsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with non-authoritive key") + } + + t.Log("host cert") + cert.CertType = HostCert + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with wrong type") + } + cert.CertType = UserCert + + t.Log("principal specified") + cert.ValidPrincipals = []string{"user"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err != nil { + t.Errorf("cert login failed: %v", err) + } + + t.Log("wrong principal specified") + cert.ValidPrincipals = []string{"fred"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with wrong principal") + } + cert.ValidPrincipals = nil + + t.Log("added critical option") + cert.CriticalOptions = map[string]string{"root-access": "yes"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with unrecognized critical option") + } + + t.Log("allowed source address") + cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42/24"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err != nil { + t.Errorf("cert login with source-address failed: %v", err) + } + + t.Log("disallowed source address") + cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login with source-address succeeded") + } +} + +func testPermissionsPassing(withPermissions bool, t *testing.T) { + serverConfig := &ServerConfig{ + PublicKeyCallback: func(conn ConnMetadata, key PublicKey) (*Permissions, error) { + if conn.User() == "nopermissions" { + return nil, nil + } else { + return &Permissions{}, nil + } + }, + } + serverConfig.AddHostKey(testSigners["rsa"]) + + clientConfig := &ClientConfig{ + Auth: []AuthMethod{ + PublicKeys(testSigners["rsa"]), + }, + } + if withPermissions { + clientConfig.User = "permissions" + } else { + clientConfig.User = "nopermissions" + } + + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + go NewClientConn(c2, "", clientConfig) + serverConn, err := newServer(c1, serverConfig) + if err != nil { + t.Fatal(err) + } + if p := serverConn.Permissions; (p != nil) != withPermissions { + t.Fatalf("withPermissions is %t, but Permissions object is %#v", withPermissions, p) + } +} + +func TestPermissionsPassing(t *testing.T) { + testPermissionsPassing(true, t) +} + +func TestNoPermissionsPassing(t *testing.T) { + testPermissionsPassing(false, t) +} diff --git a/modules/crypto/ssh/client_test.go b/modules/crypto/ssh/client_test.go new file mode 100755 index 000000000..1fe790cb4 --- /dev/null +++ b/modules/crypto/ssh/client_test.go @@ -0,0 +1,39 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "net" + "testing" +) + +func testClientVersion(t *testing.T, config *ClientConfig, expected string) { + clientConn, serverConn := net.Pipe() + defer clientConn.Close() + receivedVersion := make(chan string, 1) + go func() { + version, err := readVersion(serverConn) + if err != nil { + receivedVersion <- "" + } else { + receivedVersion <- string(version) + } + serverConn.Close() + }() + NewClientConn(clientConn, "", config) + actual := <-receivedVersion + if actual != expected { + t.Fatalf("got %s; want %s", actual, expected) + } +} + +func TestCustomClientVersion(t *testing.T) { + version := "Test-Client-Version-0.0" + testClientVersion(t, &ClientConfig{ClientVersion: version}, version) +} + +func TestDefaultClientVersion(t *testing.T) { + testClientVersion(t, &ClientConfig{}, packageVersion) +} diff --git a/modules/crypto/ssh/common.go b/modules/crypto/ssh/common.go new file mode 100755 index 000000000..9fc739e1d --- /dev/null +++ b/modules/crypto/ssh/common.go @@ -0,0 +1,354 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "crypto" + "crypto/rand" + "fmt" + "io" + "sync" + + _ "crypto/sha1" + _ "crypto/sha256" + _ "crypto/sha512" +) + +// These are string constants in the SSH protocol. +const ( + compressionNone = "none" + serviceUserAuth = "ssh-userauth" + serviceSSH = "ssh-connection" +) + +// supportedCiphers specifies the supported ciphers in preference order. +var supportedCiphers = []string{ + "aes128-ctr", "aes192-ctr", "aes256-ctr", + "aes128-gcm@openssh.com", + "arcfour256", "arcfour128", +} + +// supportedKexAlgos specifies the supported key-exchange algorithms in +// preference order. +var supportedKexAlgos = []string{ + kexAlgoCurve25519SHA256, + // P384 and P521 are not constant-time yet, but since we don't + // reuse ephemeral keys, using them for ECDH should be OK. + kexAlgoECDH256, kexAlgoECDH384, kexAlgoECDH521, + kexAlgoDH14SHA1, kexAlgoDH1SHA1, +} + +// supportedKexAlgos specifies the supported host-key algorithms (i.e. methods +// of authenticating servers) in preference order. +var supportedHostKeyAlgos = []string{ + CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, + CertAlgoECDSA384v01, CertAlgoECDSA521v01, + + KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, + KeyAlgoRSA, KeyAlgoDSA, +} + +// supportedMACs specifies a default set of MAC algorithms in preference order. +// This is based on RFC 4253, section 6.4, but with hmac-md5 variants removed +// because they have reached the end of their useful life. +var supportedMACs = []string{ + "hmac-sha2-256", "hmac-sha1", "hmac-sha1-96", +} + +var supportedCompressions = []string{compressionNone} + +// hashFuncs keeps the mapping of supported algorithms to their respective +// hashes needed for signature verification. +var hashFuncs = map[string]crypto.Hash{ + KeyAlgoRSA: crypto.SHA1, + KeyAlgoDSA: crypto.SHA1, + KeyAlgoECDSA256: crypto.SHA256, + KeyAlgoECDSA384: crypto.SHA384, + KeyAlgoECDSA521: crypto.SHA512, + CertAlgoRSAv01: crypto.SHA1, + CertAlgoDSAv01: crypto.SHA1, + CertAlgoECDSA256v01: crypto.SHA256, + CertAlgoECDSA384v01: crypto.SHA384, + CertAlgoECDSA521v01: crypto.SHA512, +} + +// unexpectedMessageError results when the SSH message that we received didn't +// match what we wanted. +func unexpectedMessageError(expected, got uint8) error { + return fmt.Errorf("ssh: unexpected message type %d (expected %d)", got, expected) +} + +// parseError results from a malformed SSH message. +func parseError(tag uint8) error { + return fmt.Errorf("ssh: parse error in message type %d", tag) +} + +func findCommon(what string, client []string, server []string) (common string, err error) { + for _, c := range client { + for _, s := range server { + if c == s { + return c, nil + } + } + } + return "", fmt.Errorf("ssh: no common algorithm for %s; client offered: %v, server offered: %v", what, client, server) +} + +type directionAlgorithms struct { + Cipher string + MAC string + Compression string +} + +type algorithms struct { + kex string + hostKey string + w directionAlgorithms + r directionAlgorithms +} + +func findAgreedAlgorithms(clientKexInit, serverKexInit *kexInitMsg) (algs *algorithms, err error) { + result := &algorithms{} + + result.kex, err = findCommon("key exchange", clientKexInit.KexAlgos, serverKexInit.KexAlgos) + if err != nil { + return + } + + result.hostKey, err = findCommon("host key", clientKexInit.ServerHostKeyAlgos, serverKexInit.ServerHostKeyAlgos) + if err != nil { + return + } + + result.w.Cipher, err = findCommon("client to server cipher", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer) + if err != nil { + return + } + + result.r.Cipher, err = findCommon("server to client cipher", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient) + if err != nil { + return + } + + result.w.MAC, err = findCommon("client to server MAC", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer) + if err != nil { + return + } + + result.r.MAC, err = findCommon("server to client MAC", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient) + if err != nil { + return + } + + result.w.Compression, err = findCommon("client to server compression", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer) + if err != nil { + return + } + + result.r.Compression, err = findCommon("server to client compression", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient) + if err != nil { + return + } + + return result, nil +} + +// If rekeythreshold is too small, we can't make any progress sending +// stuff. +const minRekeyThreshold uint64 = 256 + +// Config contains configuration data common to both ServerConfig and +// ClientConfig. +type Config struct { + // Rand provides the source of entropy for cryptographic + // primitives. If Rand is nil, the cryptographic random reader + // in package crypto/rand will be used. + Rand io.Reader + + // The maximum number of bytes sent or received after which a + // new key is negotiated. It must be at least 256. If + // unspecified, 1 gigabyte is used. + RekeyThreshold uint64 + + // The allowed key exchanges algorithms. If unspecified then a + // default set of algorithms is used. + KeyExchanges []string + + // The allowed cipher algorithms. If unspecified then a sensible + // default is used. + Ciphers []string + + // The allowed MAC algorithms. If unspecified then a sensible default + // is used. + MACs []string +} + +// SetDefaults sets sensible values for unset fields in config. This is +// exported for testing: Configs passed to SSH functions are copied and have +// default values set automatically. +func (c *Config) SetDefaults() { + if c.Rand == nil { + c.Rand = rand.Reader + } + if c.Ciphers == nil { + c.Ciphers = supportedCiphers + } + var ciphers []string + for _, c := range c.Ciphers { + if cipherModes[c] != nil { + // reject the cipher if we have no cipherModes definition + ciphers = append(ciphers, c) + } + } + c.Ciphers = ciphers + + if c.KeyExchanges == nil { + c.KeyExchanges = supportedKexAlgos + } + + if c.MACs == nil { + c.MACs = supportedMACs + } + + if c.RekeyThreshold == 0 { + // RFC 4253, section 9 suggests rekeying after 1G. + c.RekeyThreshold = 1 << 30 + } + if c.RekeyThreshold < minRekeyThreshold { + c.RekeyThreshold = minRekeyThreshold + } +} + +// buildDataSignedForAuth returns the data that is signed in order to prove +// possession of a private key. See RFC 4252, section 7. +func buildDataSignedForAuth(sessionId []byte, req userAuthRequestMsg, algo, pubKey []byte) []byte { + data := struct { + Session []byte + Type byte + User string + Service string + Method string + Sign bool + Algo []byte + PubKey []byte + }{ + sessionId, + msgUserAuthRequest, + req.User, + req.Service, + req.Method, + true, + algo, + pubKey, + } + return Marshal(data) +} + +func appendU16(buf []byte, n uint16) []byte { + return append(buf, byte(n>>8), byte(n)) +} + +func appendU32(buf []byte, n uint32) []byte { + return append(buf, byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) +} + +func appendU64(buf []byte, n uint64) []byte { + return append(buf, + byte(n>>56), byte(n>>48), byte(n>>40), byte(n>>32), + byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) +} + +func appendInt(buf []byte, n int) []byte { + return appendU32(buf, uint32(n)) +} + +func appendString(buf []byte, s string) []byte { + buf = appendU32(buf, uint32(len(s))) + buf = append(buf, s...) + return buf +} + +func appendBool(buf []byte, b bool) []byte { + if b { + return append(buf, 1) + } + return append(buf, 0) +} + +// newCond is a helper to hide the fact that there is no usable zero +// value for sync.Cond. +func newCond() *sync.Cond { return sync.NewCond(new(sync.Mutex)) } + +// window represents the buffer available to clients +// wishing to write to a channel. +type window struct { + *sync.Cond + win uint32 // RFC 4254 5.2 says the window size can grow to 2^32-1 + writeWaiters int + closed bool +} + +// add adds win to the amount of window available +// for consumers. +func (w *window) add(win uint32) bool { + // a zero sized window adjust is a noop. + if win == 0 { + return true + } + w.L.Lock() + if w.win+win < win { + w.L.Unlock() + return false + } + w.win += win + // It is unusual that multiple goroutines would be attempting to reserve + // window space, but not guaranteed. Use broadcast to notify all waiters + // that additional window is available. + w.Broadcast() + w.L.Unlock() + return true +} + +// close sets the window to closed, so all reservations fail +// immediately. +func (w *window) close() { + w.L.Lock() + w.closed = true + w.Broadcast() + w.L.Unlock() +} + +// reserve reserves win from the available window capacity. +// If no capacity remains, reserve will block. reserve may +// return less than requested. +func (w *window) reserve(win uint32) (uint32, error) { + var err error + w.L.Lock() + w.writeWaiters++ + w.Broadcast() + for w.win == 0 && !w.closed { + w.Wait() + } + w.writeWaiters-- + if w.win < win { + win = w.win + } + w.win -= win + if w.closed { + err = io.EOF + } + w.L.Unlock() + return win, err +} + +// waitWriterBlocked waits until some goroutine is blocked for further +// writes. It is used in tests only. +func (w *window) waitWriterBlocked() { + w.Cond.L.Lock() + for w.writeWaiters == 0 { + w.Cond.Wait() + } + w.Cond.L.Unlock() +} diff --git a/modules/crypto/ssh/connection.go b/modules/crypto/ssh/connection.go new file mode 100755 index 000000000..979d919e8 --- /dev/null +++ b/modules/crypto/ssh/connection.go @@ -0,0 +1,144 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "fmt" + "net" +) + +// OpenChannelError is returned if the other side rejects an +// OpenChannel request. +type OpenChannelError struct { + Reason RejectionReason + Message string +} + +func (e *OpenChannelError) Error() string { + return fmt.Sprintf("ssh: rejected: %s (%s)", e.Reason, e.Message) +} + +// ConnMetadata holds metadata for the connection. +type ConnMetadata interface { + // User returns the user ID for this connection. + // It is empty if no authentication is used. + User() string + + // SessionID returns the sesson hash, also denoted by H. + SessionID() []byte + + // ClientVersion returns the client's version string as hashed + // into the session ID. + ClientVersion() []byte + + // ServerVersion returns the server's version string as hashed + // into the session ID. + ServerVersion() []byte + + // RemoteAddr returns the remote address for this connection. + RemoteAddr() net.Addr + + // LocalAddr returns the local address for this connection. + LocalAddr() net.Addr +} + +// Conn represents an SSH connection for both server and client roles. +// Conn is the basis for implementing an application layer, such +// as ClientConn, which implements the traditional shell access for +// clients. +type Conn interface { + ConnMetadata + + // SendRequest sends a global request, and returns the + // reply. If wantReply is true, it returns the response status + // and payload. See also RFC4254, section 4. + SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) + + // OpenChannel tries to open an channel. If the request is + // rejected, it returns *OpenChannelError. On success it returns + // the SSH Channel and a Go channel for incoming, out-of-band + // requests. The Go channel must be serviced, or the + // connection will hang. + OpenChannel(name string, data []byte) (Channel, <-chan *Request, error) + + // Close closes the underlying network connection + Close() error + + // Wait blocks until the connection has shut down, and returns the + // error causing the shutdown. + Wait() error + + // TODO(hanwen): consider exposing: + // RequestKeyChange + // Disconnect +} + +// DiscardRequests consumes and rejects all requests from the +// passed-in channel. +func DiscardRequests(in <-chan *Request) { + for req := range in { + if req.WantReply { + req.Reply(false, nil) + } + } +} + +// A connection represents an incoming connection. +type connection struct { + transport *handshakeTransport + sshConn + + // The connection protocol. + *mux +} + +func (c *connection) Close() error { + return c.sshConn.conn.Close() +} + +// sshconn provides net.Conn metadata, but disallows direct reads and +// writes. +type sshConn struct { + conn net.Conn + + user string + sessionID []byte + clientVersion []byte + serverVersion []byte +} + +func dup(src []byte) []byte { + dst := make([]byte, len(src)) + copy(dst, src) + return dst +} + +func (c *sshConn) User() string { + return c.user +} + +func (c *sshConn) RemoteAddr() net.Addr { + return c.conn.RemoteAddr() +} + +func (c *sshConn) Close() error { + return c.conn.Close() +} + +func (c *sshConn) LocalAddr() net.Addr { + return c.conn.LocalAddr() +} + +func (c *sshConn) SessionID() []byte { + return dup(c.sessionID) +} + +func (c *sshConn) ClientVersion() []byte { + return dup(c.clientVersion) +} + +func (c *sshConn) ServerVersion() []byte { + return dup(c.serverVersion) +} diff --git a/modules/crypto/ssh/doc.go b/modules/crypto/ssh/doc.go new file mode 100755 index 000000000..a5ff8af6b --- /dev/null +++ b/modules/crypto/ssh/doc.go @@ -0,0 +1,18 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package ssh implements an SSH client and server. + +SSH is a transport security protocol, an authentication protocol and a +family of application protocols. The most typical application level +protocol is a remote shell and this is specifically implemented. However, +the multiplexed nature of SSH is exposed to users that wish to support +others. + +References: + [PROTOCOL.certkeys]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.certkeys?rev=HEAD + [SSH-PARAMETERS]: http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xml#ssh-parameters-1 +*/ +package ssh diff --git a/modules/crypto/ssh/example_test.go b/modules/crypto/ssh/example_test.go new file mode 100755 index 000000000..3b1327f46 --- /dev/null +++ b/modules/crypto/ssh/example_test.go @@ -0,0 +1,211 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh_test + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "net" + "net/http" + + "github.com/gogits/gogs/modules/crypto/ssh" + "github.com/gogits/gogs/modules/crypto/ssh/terminal" +) + +func ExampleNewServerConn() { + // An SSH server is represented by a ServerConfig, which holds + // certificate details and handles authentication of ServerConns. + config := &ssh.ServerConfig{ + PasswordCallback: func(c ssh.ConnMetadata, pass []byte) (*ssh.Permissions, error) { + // Should use constant-time compare (or better, salt+hash) in + // a production setting. + if c.User() == "testuser" && string(pass) == "tiger" { + return nil, nil + } + return nil, fmt.Errorf("password rejected for %q", c.User()) + }, + } + + privateBytes, err := ioutil.ReadFile("id_rsa") + if err != nil { + panic("Failed to load private key") + } + + private, err := ssh.ParsePrivateKey(privateBytes) + if err != nil { + panic("Failed to parse private key") + } + + config.AddHostKey(private) + + // Once a ServerConfig has been configured, connections can be + // accepted. + listener, err := net.Listen("tcp", "0.0.0.0:2022") + if err != nil { + panic("failed to listen for connection") + } + nConn, err := listener.Accept() + if err != nil { + panic("failed to accept incoming connection") + } + + // Before use, a handshake must be performed on the incoming + // net.Conn. + _, chans, reqs, err := ssh.NewServerConn(nConn, config) + if err != nil { + panic("failed to handshake") + } + // The incoming Request channel must be serviced. + go ssh.DiscardRequests(reqs) + + // Service the incoming Channel channel. + for newChannel := range chans { + // Channels have a type, depending on the application level + // protocol intended. In the case of a shell, the type is + // "session" and ServerShell may be used to present a simple + // terminal interface. + if newChannel.ChannelType() != "session" { + newChannel.Reject(ssh.UnknownChannelType, "unknown channel type") + continue + } + channel, requests, err := newChannel.Accept() + if err != nil { + panic("could not accept channel.") + } + + // Sessions have out-of-band requests such as "shell", + // "pty-req" and "env". Here we handle only the + // "shell" request. + go func(in <-chan *ssh.Request) { + for req := range in { + ok := false + switch req.Type { + case "shell": + ok = true + if len(req.Payload) > 0 { + // We don't accept any + // commands, only the + // default shell. + ok = false + } + } + req.Reply(ok, nil) + } + }(requests) + + term := terminal.NewTerminal(channel, "> ") + + go func() { + defer channel.Close() + for { + line, err := term.ReadLine() + if err != nil { + break + } + fmt.Println(line) + } + }() + } +} + +func ExampleDial() { + // An SSH client is represented with a ClientConn. Currently only + // the "password" authentication method is supported. + // + // To authenticate with the remote server you must pass at least one + // implementation of AuthMethod via the Auth field in ClientConfig. + config := &ssh.ClientConfig{ + User: "username", + Auth: []ssh.AuthMethod{ + ssh.Password("yourpassword"), + }, + } + client, err := ssh.Dial("tcp", "yourserver.com:22", config) + if err != nil { + panic("Failed to dial: " + err.Error()) + } + + // Each ClientConn can support multiple interactive sessions, + // represented by a Session. + session, err := client.NewSession() + if err != nil { + panic("Failed to create session: " + err.Error()) + } + defer session.Close() + + // Once a Session is created, you can execute a single command on + // the remote side using the Run method. + var b bytes.Buffer + session.Stdout = &b + if err := session.Run("/usr/bin/whoami"); err != nil { + panic("Failed to run: " + err.Error()) + } + fmt.Println(b.String()) +} + +func ExampleClient_Listen() { + config := &ssh.ClientConfig{ + User: "username", + Auth: []ssh.AuthMethod{ + ssh.Password("password"), + }, + } + // Dial your ssh server. + conn, err := ssh.Dial("tcp", "localhost:22", config) + if err != nil { + log.Fatalf("unable to connect: %s", err) + } + defer conn.Close() + + // Request the remote side to open port 8080 on all interfaces. + l, err := conn.Listen("tcp", "0.0.0.0:8080") + if err != nil { + log.Fatalf("unable to register tcp forward: %v", err) + } + defer l.Close() + + // Serve HTTP with your SSH server acting as a reverse proxy. + http.Serve(l, http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) { + fmt.Fprintf(resp, "Hello world!\n") + })) +} + +func ExampleSession_RequestPty() { + // Create client config + config := &ssh.ClientConfig{ + User: "username", + Auth: []ssh.AuthMethod{ + ssh.Password("password"), + }, + } + // Connect to ssh server + conn, err := ssh.Dial("tcp", "localhost:22", config) + if err != nil { + log.Fatalf("unable to connect: %s", err) + } + defer conn.Close() + // Create a session + session, err := conn.NewSession() + if err != nil { + log.Fatalf("unable to create session: %s", err) + } + defer session.Close() + // Set up terminal modes + modes := ssh.TerminalModes{ + ssh.ECHO: 0, // disable echoing + ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud + ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud + } + // Request pseudo terminal + if err := session.RequestPty("xterm", 80, 40, modes); err != nil { + log.Fatalf("request for pseudo terminal failed: %s", err) + } + // Start remote shell + if err := session.Shell(); err != nil { + log.Fatalf("failed to start shell: %s", err) + } +} diff --git a/modules/crypto/ssh/handshake.go b/modules/crypto/ssh/handshake.go new file mode 100755 index 000000000..1c54f7587 --- /dev/null +++ b/modules/crypto/ssh/handshake.go @@ -0,0 +1,412 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "crypto/rand" + "errors" + "fmt" + "io" + "log" + "net" + "sync" +) + +// debugHandshake, if set, prints messages sent and received. Key +// exchange messages are printed as if DH were used, so the debug +// messages are wrong when using ECDH. +const debugHandshake = false + +// keyingTransport is a packet based transport that supports key +// changes. It need not be thread-safe. It should pass through +// msgNewKeys in both directions. +type keyingTransport interface { + packetConn + + // prepareKeyChange sets up a key change. The key change for a + // direction will be effected if a msgNewKeys message is sent + // or received. + prepareKeyChange(*algorithms, *kexResult) error + + // getSessionID returns the session ID. prepareKeyChange must + // have been called once. + getSessionID() []byte +} + +// rekeyingTransport is the interface of handshakeTransport that we +// (internally) expose to ClientConn and ServerConn. +type rekeyingTransport interface { + packetConn + + // requestKeyChange asks the remote side to change keys. All + // writes are blocked until the key change succeeds, which is + // signaled by reading a msgNewKeys. + requestKeyChange() error + + // getSessionID returns the session ID. This is only valid + // after the first key change has completed. + getSessionID() []byte +} + +// handshakeTransport implements rekeying on top of a keyingTransport +// and offers a thread-safe writePacket() interface. +type handshakeTransport struct { + conn keyingTransport + config *Config + + serverVersion []byte + clientVersion []byte + + // hostKeys is non-empty if we are the server. In that case, + // it contains all host keys that can be used to sign the + // connection. + hostKeys []Signer + + // hostKeyAlgorithms is non-empty if we are the client. In that case, + // we accept these key types from the server as host key. + hostKeyAlgorithms []string + + // On read error, incoming is closed, and readError is set. + incoming chan []byte + readError error + + // data for host key checking + hostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error + dialAddress string + remoteAddr net.Addr + + readSinceKex uint64 + + // Protects the writing side of the connection + mu sync.Mutex + cond *sync.Cond + sentInitPacket []byte + sentInitMsg *kexInitMsg + writtenSinceKex uint64 + writeError error +} + +func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, serverVersion []byte) *handshakeTransport { + t := &handshakeTransport{ + conn: conn, + serverVersion: serverVersion, + clientVersion: clientVersion, + incoming: make(chan []byte, 16), + config: config, + } + t.cond = sync.NewCond(&t.mu) + return t +} + +func newClientTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ClientConfig, dialAddr string, addr net.Addr) *handshakeTransport { + t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) + t.dialAddress = dialAddr + t.remoteAddr = addr + t.hostKeyCallback = config.HostKeyCallback + if config.HostKeyAlgorithms != nil { + t.hostKeyAlgorithms = config.HostKeyAlgorithms + } else { + t.hostKeyAlgorithms = supportedHostKeyAlgos + } + go t.readLoop() + return t +} + +func newServerTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ServerConfig) *handshakeTransport { + t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) + t.hostKeys = config.hostKeys + go t.readLoop() + return t +} + +func (t *handshakeTransport) getSessionID() []byte { + return t.conn.getSessionID() +} + +func (t *handshakeTransport) id() string { + if len(t.hostKeys) > 0 { + return "server" + } + return "client" +} + +func (t *handshakeTransport) readPacket() ([]byte, error) { + p, ok := <-t.incoming + if !ok { + return nil, t.readError + } + return p, nil +} + +func (t *handshakeTransport) readLoop() { + for { + p, err := t.readOnePacket() + if err != nil { + t.readError = err + close(t.incoming) + break + } + if p[0] == msgIgnore || p[0] == msgDebug { + continue + } + t.incoming <- p + } + + // If we can't read, declare the writing part dead too. + t.mu.Lock() + defer t.mu.Unlock() + if t.writeError == nil { + t.writeError = t.readError + } + t.cond.Broadcast() +} + +func (t *handshakeTransport) readOnePacket() ([]byte, error) { + if t.readSinceKex > t.config.RekeyThreshold { + if err := t.requestKeyChange(); err != nil { + return nil, err + } + } + + p, err := t.conn.readPacket() + if err != nil { + return nil, err + } + + t.readSinceKex += uint64(len(p)) + if debugHandshake { + msg, err := decode(p) + log.Printf("%s got %T %v (%v)", t.id(), msg, msg, err) + } + if p[0] != msgKexInit { + return p, nil + } + err = t.enterKeyExchange(p) + + t.mu.Lock() + if err != nil { + // drop connection + t.conn.Close() + t.writeError = err + } + + if debugHandshake { + log.Printf("%s exited key exchange, err %v", t.id(), err) + } + + // Unblock writers. + t.sentInitMsg = nil + t.sentInitPacket = nil + t.cond.Broadcast() + t.writtenSinceKex = 0 + t.mu.Unlock() + + if err != nil { + return nil, err + } + + t.readSinceKex = 0 + return []byte{msgNewKeys}, nil +} + +// sendKexInit sends a key change message, and returns the message +// that was sent. After initiating the key change, all writes will be +// blocked until the change is done, and a failed key change will +// close the underlying transport. This function is safe for +// concurrent use by multiple goroutines. +func (t *handshakeTransport) sendKexInit() (*kexInitMsg, []byte, error) { + t.mu.Lock() + defer t.mu.Unlock() + return t.sendKexInitLocked() +} + +func (t *handshakeTransport) requestKeyChange() error { + _, _, err := t.sendKexInit() + return err +} + +// sendKexInitLocked sends a key change message. t.mu must be locked +// while this happens. +func (t *handshakeTransport) sendKexInitLocked() (*kexInitMsg, []byte, error) { + // kexInits may be sent either in response to the other side, + // or because our side wants to initiate a key change, so we + // may have already sent a kexInit. In that case, don't send a + // second kexInit. + if t.sentInitMsg != nil { + return t.sentInitMsg, t.sentInitPacket, nil + } + msg := &kexInitMsg{ + KexAlgos: t.config.KeyExchanges, + CiphersClientServer: t.config.Ciphers, + CiphersServerClient: t.config.Ciphers, + MACsClientServer: t.config.MACs, + MACsServerClient: t.config.MACs, + CompressionClientServer: supportedCompressions, + CompressionServerClient: supportedCompressions, + } + io.ReadFull(rand.Reader, msg.Cookie[:]) + + if len(t.hostKeys) > 0 { + for _, k := range t.hostKeys { + msg.ServerHostKeyAlgos = append( + msg.ServerHostKeyAlgos, k.PublicKey().Type()) + } + } else { + msg.ServerHostKeyAlgos = t.hostKeyAlgorithms + } + packet := Marshal(msg) + + // writePacket destroys the contents, so save a copy. + packetCopy := make([]byte, len(packet)) + copy(packetCopy, packet) + + if err := t.conn.writePacket(packetCopy); err != nil { + return nil, nil, err + } + + t.sentInitMsg = msg + t.sentInitPacket = packet + return msg, packet, nil +} + +func (t *handshakeTransport) writePacket(p []byte) error { + t.mu.Lock() + defer t.mu.Unlock() + + if t.writtenSinceKex > t.config.RekeyThreshold { + t.sendKexInitLocked() + } + for t.sentInitMsg != nil && t.writeError == nil { + t.cond.Wait() + } + if t.writeError != nil { + return t.writeError + } + t.writtenSinceKex += uint64(len(p)) + + switch p[0] { + case msgKexInit: + return errors.New("ssh: only handshakeTransport can send kexInit") + case msgNewKeys: + return errors.New("ssh: only handshakeTransport can send newKeys") + default: + return t.conn.writePacket(p) + } +} + +func (t *handshakeTransport) Close() error { + return t.conn.Close() +} + +// enterKeyExchange runs the key exchange. +func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { + if debugHandshake { + log.Printf("%s entered key exchange", t.id()) + } + myInit, myInitPacket, err := t.sendKexInit() + if err != nil { + return err + } + + otherInit := &kexInitMsg{} + if err := Unmarshal(otherInitPacket, otherInit); err != nil { + return err + } + + magics := handshakeMagics{ + clientVersion: t.clientVersion, + serverVersion: t.serverVersion, + clientKexInit: otherInitPacket, + serverKexInit: myInitPacket, + } + + clientInit := otherInit + serverInit := myInit + if len(t.hostKeys) == 0 { + clientInit = myInit + serverInit = otherInit + + magics.clientKexInit = myInitPacket + magics.serverKexInit = otherInitPacket + } + + algs, err := findAgreedAlgorithms(clientInit, serverInit) + if err != nil { + return err + } + + // We don't send FirstKexFollows, but we handle receiving it. + if otherInit.FirstKexFollows && algs.kex != otherInit.KexAlgos[0] { + // other side sent a kex message for the wrong algorithm, + // which we have to ignore. + if _, err := t.conn.readPacket(); err != nil { + return err + } + } + + kex, ok := kexAlgoMap[algs.kex] + if !ok { + return fmt.Errorf("ssh: unexpected key exchange algorithm %v", algs.kex) + } + + var result *kexResult + if len(t.hostKeys) > 0 { + result, err = t.server(kex, algs, &magics) + } else { + result, err = t.client(kex, algs, &magics) + } + + if err != nil { + return err + } + + t.conn.prepareKeyChange(algs, result) + if err = t.conn.writePacket([]byte{msgNewKeys}); err != nil { + return err + } + if packet, err := t.conn.readPacket(); err != nil { + return err + } else if packet[0] != msgNewKeys { + return unexpectedMessageError(msgNewKeys, packet[0]) + } + return nil +} + +func (t *handshakeTransport) server(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { + var hostKey Signer + for _, k := range t.hostKeys { + if algs.hostKey == k.PublicKey().Type() { + hostKey = k + } + } + + r, err := kex.Server(t.conn, t.config.Rand, magics, hostKey) + return r, err +} + +func (t *handshakeTransport) client(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { + result, err := kex.Client(t.conn, t.config.Rand, magics) + if err != nil { + return nil, err + } + + hostKey, err := ParsePublicKey(result.HostKey) + if err != nil { + return nil, err + } + + if err := verifyHostKeySignature(hostKey, result); err != nil { + return nil, err + } + + if t.hostKeyCallback != nil { + err = t.hostKeyCallback(t.dialAddress, t.remoteAddr, hostKey) + if err != nil { + return nil, err + } + } + + return result, nil +} diff --git a/modules/crypto/ssh/handshake_test.go b/modules/crypto/ssh/handshake_test.go new file mode 100755 index 000000000..b86d369cc --- /dev/null +++ b/modules/crypto/ssh/handshake_test.go @@ -0,0 +1,415 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/rand" + "errors" + "fmt" + "net" + "runtime" + "strings" + "sync" + "testing" +) + +type testChecker struct { + calls []string +} + +func (t *testChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error { + if dialAddr == "bad" { + return fmt.Errorf("dialAddr is bad") + } + + if tcpAddr, ok := addr.(*net.TCPAddr); !ok || tcpAddr == nil { + return fmt.Errorf("testChecker: got %T want *net.TCPAddr", addr) + } + + t.calls = append(t.calls, fmt.Sprintf("%s %v %s %x", dialAddr, addr, key.Type(), key.Marshal())) + + return nil +} + +// netPipe is analogous to net.Pipe, but it uses a real net.Conn, and +// therefore is buffered (net.Pipe deadlocks if both sides start with +// a write.) +func netPipe() (net.Conn, net.Conn, error) { + listener, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + return nil, nil, err + } + defer listener.Close() + c1, err := net.Dial("tcp", listener.Addr().String()) + if err != nil { + return nil, nil, err + } + + c2, err := listener.Accept() + if err != nil { + c1.Close() + return nil, nil, err + } + + return c1, c2, nil +} + +func handshakePair(clientConf *ClientConfig, addr string) (client *handshakeTransport, server *handshakeTransport, err error) { + a, b, err := netPipe() + if err != nil { + return nil, nil, err + } + + trC := newTransport(a, rand.Reader, true) + trS := newTransport(b, rand.Reader, false) + clientConf.SetDefaults() + + v := []byte("version") + client = newClientTransport(trC, v, v, clientConf, addr, a.RemoteAddr()) + + serverConf := &ServerConfig{} + serverConf.AddHostKey(testSigners["ecdsa"]) + serverConf.AddHostKey(testSigners["rsa"]) + serverConf.SetDefaults() + server = newServerTransport(trS, v, v, serverConf) + + return client, server, nil +} + +func TestHandshakeBasic(t *testing.T) { + if runtime.GOOS == "plan9" { + t.Skip("see golang.org/issue/7237") + } + checker := &testChecker{} + trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + + defer trC.Close() + defer trS.Close() + + go func() { + // Client writes a bunch of stuff, and does a key + // change in the middle. This should not confuse the + // handshake in progress + for i := 0; i < 10; i++ { + p := []byte{msgRequestSuccess, byte(i)} + if err := trC.writePacket(p); err != nil { + t.Fatalf("sendPacket: %v", err) + } + if i == 5 { + // halfway through, we request a key change. + _, _, err := trC.sendKexInit() + if err != nil { + t.Fatalf("sendKexInit: %v", err) + } + } + } + trC.Close() + }() + + // Server checks that client messages come in cleanly + i := 0 + for { + p, err := trS.readPacket() + if err != nil { + break + } + if p[0] == msgNewKeys { + continue + } + want := []byte{msgRequestSuccess, byte(i)} + if bytes.Compare(p, want) != 0 { + t.Errorf("message %d: got %q, want %q", i, p, want) + } + i++ + } + if i != 10 { + t.Errorf("received %d messages, want 10.", i) + } + + // If all went well, we registered exactly 1 key change. + if len(checker.calls) != 1 { + t.Fatalf("got %d host key checks, want 1", len(checker.calls)) + } + + pub := testSigners["ecdsa"].PublicKey() + want := fmt.Sprintf("%s %v %s %x", "addr", trC.remoteAddr, pub.Type(), pub.Marshal()) + if want != checker.calls[0] { + t.Errorf("got %q want %q for host key check", checker.calls[0], want) + } +} + +func TestHandshakeError(t *testing.T) { + checker := &testChecker{} + trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "bad") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + defer trC.Close() + defer trS.Close() + + // send a packet + packet := []byte{msgRequestSuccess, 42} + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + + // Now request a key change. + _, _, err = trC.sendKexInit() + if err != nil { + t.Errorf("sendKexInit: %v", err) + } + + // the key change will fail, and afterwards we can't write. + if err := trC.writePacket([]byte{msgRequestSuccess, 43}); err == nil { + t.Errorf("writePacket after botched rekey succeeded.") + } + + readback, err := trS.readPacket() + if err != nil { + t.Fatalf("server closed too soon: %v", err) + } + if bytes.Compare(readback, packet) != 0 { + t.Errorf("got %q want %q", readback, packet) + } + readback, err = trS.readPacket() + if err == nil { + t.Errorf("got a message %q after failed key change", readback) + } +} + +func TestHandshakeTwice(t *testing.T) { + checker := &testChecker{} + trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + + defer trC.Close() + defer trS.Close() + + // send a packet + packet := make([]byte, 5) + packet[0] = msgRequestSuccess + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + + // Now request a key change. + _, _, err = trC.sendKexInit() + if err != nil { + t.Errorf("sendKexInit: %v", err) + } + + // Send another packet. Use a fresh one, since writePacket destroys. + packet = make([]byte, 5) + packet[0] = msgRequestSuccess + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + + // 2nd key change. + _, _, err = trC.sendKexInit() + if err != nil { + t.Errorf("sendKexInit: %v", err) + } + + packet = make([]byte, 5) + packet[0] = msgRequestSuccess + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + + packet = make([]byte, 5) + packet[0] = msgRequestSuccess + for i := 0; i < 5; i++ { + msg, err := trS.readPacket() + if err != nil { + t.Fatalf("server closed too soon: %v", err) + } + if msg[0] == msgNewKeys { + continue + } + + if bytes.Compare(msg, packet) != 0 { + t.Errorf("packet %d: got %q want %q", i, msg, packet) + } + } + if len(checker.calls) != 2 { + t.Errorf("got %d key changes, want 2", len(checker.calls)) + } +} + +func TestHandshakeAutoRekeyWrite(t *testing.T) { + checker := &testChecker{} + clientConf := &ClientConfig{HostKeyCallback: checker.Check} + clientConf.RekeyThreshold = 500 + trC, trS, err := handshakePair(clientConf, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + defer trC.Close() + defer trS.Close() + + for i := 0; i < 5; i++ { + packet := make([]byte, 251) + packet[0] = msgRequestSuccess + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + } + + j := 0 + for ; j < 5; j++ { + _, err := trS.readPacket() + if err != nil { + break + } + } + + if j != 5 { + t.Errorf("got %d, want 5 messages", j) + } + + if len(checker.calls) != 2 { + t.Errorf("got %d key changes, wanted 2", len(checker.calls)) + } +} + +type syncChecker struct { + called chan int +} + +func (t *syncChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error { + t.called <- 1 + return nil +} + +func TestHandshakeAutoRekeyRead(t *testing.T) { + sync := &syncChecker{make(chan int, 2)} + clientConf := &ClientConfig{ + HostKeyCallback: sync.Check, + } + clientConf.RekeyThreshold = 500 + + trC, trS, err := handshakePair(clientConf, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + defer trC.Close() + defer trS.Close() + + packet := make([]byte, 501) + packet[0] = msgRequestSuccess + if err := trS.writePacket(packet); err != nil { + t.Fatalf("writePacket: %v", err) + } + // While we read out the packet, a key change will be + // initiated. + if _, err := trC.readPacket(); err != nil { + t.Fatalf("readPacket(client): %v", err) + } + + <-sync.called +} + +// errorKeyingTransport generates errors after a given number of +// read/write operations. +type errorKeyingTransport struct { + packetConn + readLeft, writeLeft int +} + +func (n *errorKeyingTransport) prepareKeyChange(*algorithms, *kexResult) error { + return nil +} +func (n *errorKeyingTransport) getSessionID() []byte { + return nil +} + +func (n *errorKeyingTransport) writePacket(packet []byte) error { + if n.writeLeft == 0 { + n.Close() + return errors.New("barf") + } + + n.writeLeft-- + return n.packetConn.writePacket(packet) +} + +func (n *errorKeyingTransport) readPacket() ([]byte, error) { + if n.readLeft == 0 { + n.Close() + return nil, errors.New("barf") + } + + n.readLeft-- + return n.packetConn.readPacket() +} + +func TestHandshakeErrorHandlingRead(t *testing.T) { + for i := 0; i < 20; i++ { + testHandshakeErrorHandlingN(t, i, -1) + } +} + +func TestHandshakeErrorHandlingWrite(t *testing.T) { + for i := 0; i < 20; i++ { + testHandshakeErrorHandlingN(t, -1, i) + } +} + +// testHandshakeErrorHandlingN runs handshakes, injecting errors. If +// handshakeTransport deadlocks, the go runtime will detect it and +// panic. +func testHandshakeErrorHandlingN(t *testing.T, readLimit, writeLimit int) { + msg := Marshal(&serviceRequestMsg{strings.Repeat("x", int(minRekeyThreshold)/4)}) + + a, b := memPipe() + defer a.Close() + defer b.Close() + + key := testSigners["ecdsa"] + serverConf := Config{RekeyThreshold: minRekeyThreshold} + serverConf.SetDefaults() + serverConn := newHandshakeTransport(&errorKeyingTransport{a, readLimit, writeLimit}, &serverConf, []byte{'a'}, []byte{'b'}) + serverConn.hostKeys = []Signer{key} + go serverConn.readLoop() + + clientConf := Config{RekeyThreshold: 10 * minRekeyThreshold} + clientConf.SetDefaults() + clientConn := newHandshakeTransport(&errorKeyingTransport{b, -1, -1}, &clientConf, []byte{'a'}, []byte{'b'}) + clientConn.hostKeyAlgorithms = []string{key.PublicKey().Type()} + go clientConn.readLoop() + + var wg sync.WaitGroup + wg.Add(4) + + for _, hs := range []packetConn{serverConn, clientConn} { + go func(c packetConn) { + for { + err := c.writePacket(msg) + if err != nil { + break + } + } + wg.Done() + }(hs) + go func(c packetConn) { + for { + _, err := c.readPacket() + if err != nil { + break + } + } + wg.Done() + }(hs) + } + + wg.Wait() +} diff --git a/modules/crypto/ssh/kex.go b/modules/crypto/ssh/kex.go new file mode 100755 index 000000000..ea19d537f --- /dev/null +++ b/modules/crypto/ssh/kex.go @@ -0,0 +1,526 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "crypto" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/subtle" + "crypto/rand" + "errors" + "io" + "math/big" + + "golang.org/x/crypto/curve25519" +) + +const ( + kexAlgoDH1SHA1 = "diffie-hellman-group1-sha1" + kexAlgoDH14SHA1 = "diffie-hellman-group14-sha1" + kexAlgoECDH256 = "ecdh-sha2-nistp256" + kexAlgoECDH384 = "ecdh-sha2-nistp384" + kexAlgoECDH521 = "ecdh-sha2-nistp521" + kexAlgoCurve25519SHA256 = "curve25519-sha256@libssh.org" +) + +// kexResult captures the outcome of a key exchange. +type kexResult struct { + // Session hash. See also RFC 4253, section 8. + H []byte + + // Shared secret. See also RFC 4253, section 8. + K []byte + + // Host key as hashed into H. + HostKey []byte + + // Signature of H. + Signature []byte + + // A cryptographic hash function that matches the security + // level of the key exchange algorithm. It is used for + // calculating H, and for deriving keys from H and K. + Hash crypto.Hash + + // The session ID, which is the first H computed. This is used + // to signal data inside transport. + SessionID []byte +} + +// handshakeMagics contains data that is always included in the +// session hash. +type handshakeMagics struct { + clientVersion, serverVersion []byte + clientKexInit, serverKexInit []byte +} + +func (m *handshakeMagics) write(w io.Writer) { + writeString(w, m.clientVersion) + writeString(w, m.serverVersion) + writeString(w, m.clientKexInit) + writeString(w, m.serverKexInit) +} + +// kexAlgorithm abstracts different key exchange algorithms. +type kexAlgorithm interface { + // Server runs server-side key agreement, signing the result + // with a hostkey. + Server(p packetConn, rand io.Reader, magics *handshakeMagics, s Signer) (*kexResult, error) + + // Client runs the client-side key agreement. Caller is + // responsible for verifying the host key signature. + Client(p packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) +} + +// dhGroup is a multiplicative group suitable for implementing Diffie-Hellman key agreement. +type dhGroup struct { + g, p *big.Int +} + +func (group *dhGroup) diffieHellman(theirPublic, myPrivate *big.Int) (*big.Int, error) { + if theirPublic.Sign() <= 0 || theirPublic.Cmp(group.p) >= 0 { + return nil, errors.New("ssh: DH parameter out of bounds") + } + return new(big.Int).Exp(theirPublic, myPrivate, group.p), nil +} + +func (group *dhGroup) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) { + hashFunc := crypto.SHA1 + + x, err := rand.Int(randSource, group.p) + if err != nil { + return nil, err + } + X := new(big.Int).Exp(group.g, x, group.p) + kexDHInit := kexDHInitMsg{ + X: X, + } + if err := c.writePacket(Marshal(&kexDHInit)); err != nil { + return nil, err + } + + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var kexDHReply kexDHReplyMsg + if err = Unmarshal(packet, &kexDHReply); err != nil { + return nil, err + } + + kInt, err := group.diffieHellman(kexDHReply.Y, x) + if err != nil { + return nil, err + } + + h := hashFunc.New() + magics.write(h) + writeString(h, kexDHReply.HostKey) + writeInt(h, X) + writeInt(h, kexDHReply.Y) + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + return &kexResult{ + H: h.Sum(nil), + K: K, + HostKey: kexDHReply.HostKey, + Signature: kexDHReply.Signature, + Hash: crypto.SHA1, + }, nil +} + +func (group *dhGroup) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { + hashFunc := crypto.SHA1 + packet, err := c.readPacket() + if err != nil { + return + } + var kexDHInit kexDHInitMsg + if err = Unmarshal(packet, &kexDHInit); err != nil { + return + } + + y, err := rand.Int(randSource, group.p) + if err != nil { + return + } + + Y := new(big.Int).Exp(group.g, y, group.p) + kInt, err := group.diffieHellman(kexDHInit.X, y) + if err != nil { + return nil, err + } + + hostKeyBytes := priv.PublicKey().Marshal() + + h := hashFunc.New() + magics.write(h) + writeString(h, hostKeyBytes) + writeInt(h, kexDHInit.X) + writeInt(h, Y) + + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + H := h.Sum(nil) + + // H is already a hash, but the hostkey signing will apply its + // own key-specific hash algorithm. + sig, err := signAndMarshal(priv, randSource, H) + if err != nil { + return nil, err + } + + kexDHReply := kexDHReplyMsg{ + HostKey: hostKeyBytes, + Y: Y, + Signature: sig, + } + packet = Marshal(&kexDHReply) + + err = c.writePacket(packet) + return &kexResult{ + H: H, + K: K, + HostKey: hostKeyBytes, + Signature: sig, + Hash: crypto.SHA1, + }, nil +} + +// ecdh performs Elliptic Curve Diffie-Hellman key exchange as +// described in RFC 5656, section 4. +type ecdh struct { + curve elliptic.Curve +} + +func (kex *ecdh) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { + ephKey, err := ecdsa.GenerateKey(kex.curve, rand) + if err != nil { + return nil, err + } + + kexInit := kexECDHInitMsg{ + ClientPubKey: elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y), + } + + serialized := Marshal(&kexInit) + if err := c.writePacket(serialized); err != nil { + return nil, err + } + + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var reply kexECDHReplyMsg + if err = Unmarshal(packet, &reply); err != nil { + return nil, err + } + + x, y, err := unmarshalECKey(kex.curve, reply.EphemeralPubKey) + if err != nil { + return nil, err + } + + // generate shared secret + secret, _ := kex.curve.ScalarMult(x, y, ephKey.D.Bytes()) + + h := ecHash(kex.curve).New() + magics.write(h) + writeString(h, reply.HostKey) + writeString(h, kexInit.ClientPubKey) + writeString(h, reply.EphemeralPubKey) + K := make([]byte, intLength(secret)) + marshalInt(K, secret) + h.Write(K) + + return &kexResult{ + H: h.Sum(nil), + K: K, + HostKey: reply.HostKey, + Signature: reply.Signature, + Hash: ecHash(kex.curve), + }, nil +} + +// unmarshalECKey parses and checks an EC key. +func unmarshalECKey(curve elliptic.Curve, pubkey []byte) (x, y *big.Int, err error) { + x, y = elliptic.Unmarshal(curve, pubkey) + if x == nil { + return nil, nil, errors.New("ssh: elliptic.Unmarshal failure") + } + if !validateECPublicKey(curve, x, y) { + return nil, nil, errors.New("ssh: public key not on curve") + } + return x, y, nil +} + +// validateECPublicKey checks that the point is a valid public key for +// the given curve. See [SEC1], 3.2.2 +func validateECPublicKey(curve elliptic.Curve, x, y *big.Int) bool { + if x.Sign() == 0 && y.Sign() == 0 { + return false + } + + if x.Cmp(curve.Params().P) >= 0 { + return false + } + + if y.Cmp(curve.Params().P) >= 0 { + return false + } + + if !curve.IsOnCurve(x, y) { + return false + } + + // We don't check if N * PubKey == 0, since + // + // - the NIST curves have cofactor = 1, so this is implicit. + // (We don't foresee an implementation that supports non NIST + // curves) + // + // - for ephemeral keys, we don't need to worry about small + // subgroup attacks. + return true +} + +func (kex *ecdh) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var kexECDHInit kexECDHInitMsg + if err = Unmarshal(packet, &kexECDHInit); err != nil { + return nil, err + } + + clientX, clientY, err := unmarshalECKey(kex.curve, kexECDHInit.ClientPubKey) + if err != nil { + return nil, err + } + + // We could cache this key across multiple users/multiple + // connection attempts, but the benefit is small. OpenSSH + // generates a new key for each incoming connection. + ephKey, err := ecdsa.GenerateKey(kex.curve, rand) + if err != nil { + return nil, err + } + + hostKeyBytes := priv.PublicKey().Marshal() + + serializedEphKey := elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y) + + // generate shared secret + secret, _ := kex.curve.ScalarMult(clientX, clientY, ephKey.D.Bytes()) + + h := ecHash(kex.curve).New() + magics.write(h) + writeString(h, hostKeyBytes) + writeString(h, kexECDHInit.ClientPubKey) + writeString(h, serializedEphKey) + + K := make([]byte, intLength(secret)) + marshalInt(K, secret) + h.Write(K) + + H := h.Sum(nil) + + // H is already a hash, but the hostkey signing will apply its + // own key-specific hash algorithm. + sig, err := signAndMarshal(priv, rand, H) + if err != nil { + return nil, err + } + + reply := kexECDHReplyMsg{ + EphemeralPubKey: serializedEphKey, + HostKey: hostKeyBytes, + Signature: sig, + } + + serialized := Marshal(&reply) + if err := c.writePacket(serialized); err != nil { + return nil, err + } + + return &kexResult{ + H: H, + K: K, + HostKey: reply.HostKey, + Signature: sig, + Hash: ecHash(kex.curve), + }, nil +} + +var kexAlgoMap = map[string]kexAlgorithm{} + +func init() { + // This is the group called diffie-hellman-group1-sha1 in RFC + // 4253 and Oakley Group 2 in RFC 2409. + p, _ := new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF", 16) + kexAlgoMap[kexAlgoDH1SHA1] = &dhGroup{ + g: new(big.Int).SetInt64(2), + p: p, + } + + // This is the group called diffie-hellman-group14-sha1 in RFC + // 4253 and Oakley Group 14 in RFC 3526. + p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF", 16) + + kexAlgoMap[kexAlgoDH14SHA1] = &dhGroup{ + g: new(big.Int).SetInt64(2), + p: p, + } + + kexAlgoMap[kexAlgoECDH521] = &ecdh{elliptic.P521()} + kexAlgoMap[kexAlgoECDH384] = &ecdh{elliptic.P384()} + kexAlgoMap[kexAlgoECDH256] = &ecdh{elliptic.P256()} + kexAlgoMap[kexAlgoCurve25519SHA256] = &curve25519sha256{} +} + +// curve25519sha256 implements the curve25519-sha256@libssh.org key +// agreement protocol, as described in +// https://git.libssh.org/projects/libssh.git/tree/doc/curve25519-sha256@libssh.org.txt +type curve25519sha256 struct{} + +type curve25519KeyPair struct { + priv [32]byte + pub [32]byte +} + +func (kp *curve25519KeyPair) generate(rand io.Reader) error { + if _, err := io.ReadFull(rand, kp.priv[:]); err != nil { + return err + } + curve25519.ScalarBaseMult(&kp.pub, &kp.priv) + return nil +} + +// curve25519Zeros is just an array of 32 zero bytes so that we have something +// convenient to compare against in order to reject curve25519 points with the +// wrong order. +var curve25519Zeros [32]byte + +func (kex *curve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { + var kp curve25519KeyPair + if err := kp.generate(rand); err != nil { + return nil, err + } + if err := c.writePacket(Marshal(&kexECDHInitMsg{kp.pub[:]})); err != nil { + return nil, err + } + + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var reply kexECDHReplyMsg + if err = Unmarshal(packet, &reply); err != nil { + return nil, err + } + if len(reply.EphemeralPubKey) != 32 { + return nil, errors.New("ssh: peer's curve25519 public value has wrong length") + } + + var servPub, secret [32]byte + copy(servPub[:], reply.EphemeralPubKey) + curve25519.ScalarMult(&secret, &kp.priv, &servPub) + if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { + return nil, errors.New("ssh: peer's curve25519 public value has wrong order") + } + + h := crypto.SHA256.New() + magics.write(h) + writeString(h, reply.HostKey) + writeString(h, kp.pub[:]) + writeString(h, reply.EphemeralPubKey) + + kInt := new(big.Int).SetBytes(secret[:]) + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + return &kexResult{ + H: h.Sum(nil), + K: K, + HostKey: reply.HostKey, + Signature: reply.Signature, + Hash: crypto.SHA256, + }, nil +} + +func (kex *curve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { + packet, err := c.readPacket() + if err != nil { + return + } + var kexInit kexECDHInitMsg + if err = Unmarshal(packet, &kexInit); err != nil { + return + } + + if len(kexInit.ClientPubKey) != 32 { + return nil, errors.New("ssh: peer's curve25519 public value has wrong length") + } + + var kp curve25519KeyPair + if err := kp.generate(rand); err != nil { + return nil, err + } + + var clientPub, secret [32]byte + copy(clientPub[:], kexInit.ClientPubKey) + curve25519.ScalarMult(&secret, &kp.priv, &clientPub) + if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { + return nil, errors.New("ssh: peer's curve25519 public value has wrong order") + } + + hostKeyBytes := priv.PublicKey().Marshal() + + h := crypto.SHA256.New() + magics.write(h) + writeString(h, hostKeyBytes) + writeString(h, kexInit.ClientPubKey) + writeString(h, kp.pub[:]) + + kInt := new(big.Int).SetBytes(secret[:]) + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + H := h.Sum(nil) + + sig, err := signAndMarshal(priv, rand, H) + if err != nil { + return nil, err + } + + reply := kexECDHReplyMsg{ + EphemeralPubKey: kp.pub[:], + HostKey: hostKeyBytes, + Signature: sig, + } + if err := c.writePacket(Marshal(&reply)); err != nil { + return nil, err + } + return &kexResult{ + H: H, + K: K, + HostKey: hostKeyBytes, + Signature: sig, + Hash: crypto.SHA256, + }, nil +} diff --git a/modules/crypto/ssh/kex_test.go b/modules/crypto/ssh/kex_test.go new file mode 100755 index 000000000..12ca0acd3 --- /dev/null +++ b/modules/crypto/ssh/kex_test.go @@ -0,0 +1,50 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +// Key exchange tests. + +import ( + "crypto/rand" + "reflect" + "testing" +) + +func TestKexes(t *testing.T) { + type kexResultErr struct { + result *kexResult + err error + } + + for name, kex := range kexAlgoMap { + a, b := memPipe() + + s := make(chan kexResultErr, 1) + c := make(chan kexResultErr, 1) + var magics handshakeMagics + go func() { + r, e := kex.Client(a, rand.Reader, &magics) + a.Close() + c <- kexResultErr{r, e} + }() + go func() { + r, e := kex.Server(b, rand.Reader, &magics, testSigners["ecdsa"]) + b.Close() + s <- kexResultErr{r, e} + }() + + clientRes := <-c + serverRes := <-s + if clientRes.err != nil { + t.Errorf("client: %v", clientRes.err) + } + if serverRes.err != nil { + t.Errorf("server: %v", serverRes.err) + } + if !reflect.DeepEqual(clientRes.result, serverRes.result) { + t.Errorf("kex %q: mismatch %#v, %#v", name, clientRes.result, serverRes.result) + } + } +} diff --git a/modules/crypto/ssh/keys.go b/modules/crypto/ssh/keys.go new file mode 100755 index 000000000..3272d7c93 --- /dev/null +++ b/modules/crypto/ssh/keys.go @@ -0,0 +1,628 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto" + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rsa" + "crypto/x509" + "encoding/asn1" + "encoding/base64" + "encoding/pem" + "errors" + "fmt" + "io" + "math/big" +) + +// These constants represent the algorithm names for key types supported by this +// package. +const ( + KeyAlgoRSA = "ssh-rsa" + KeyAlgoDSA = "ssh-dss" + KeyAlgoECDSA256 = "ecdsa-sha2-nistp256" + KeyAlgoECDSA384 = "ecdsa-sha2-nistp384" + KeyAlgoECDSA521 = "ecdsa-sha2-nistp521" +) + +// parsePubKey parses a public key of the given algorithm. +// Use ParsePublicKey for keys with prepended algorithm. +func parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err error) { + switch algo { + case KeyAlgoRSA: + return parseRSA(in) + case KeyAlgoDSA: + return parseDSA(in) + case KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521: + return parseECDSA(in) + case CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01: + cert, err := parseCert(in, certToPrivAlgo(algo)) + if err != nil { + return nil, nil, err + } + return cert, nil, nil + } + return nil, nil, fmt.Errorf("ssh: unknown key algorithm: %v", err) +} + +// parseAuthorizedKey parses a public key in OpenSSH authorized_keys format +// (see sshd(8) manual page) once the options and key type fields have been +// removed. +func parseAuthorizedKey(in []byte) (out PublicKey, comment string, err error) { + in = bytes.TrimSpace(in) + + i := bytes.IndexAny(in, " \t") + if i == -1 { + i = len(in) + } + base64Key := in[:i] + + key := make([]byte, base64.StdEncoding.DecodedLen(len(base64Key))) + n, err := base64.StdEncoding.Decode(key, base64Key) + if err != nil { + return nil, "", err + } + key = key[:n] + out, err = ParsePublicKey(key) + if err != nil { + return nil, "", err + } + comment = string(bytes.TrimSpace(in[i:])) + return out, comment, nil +} + +// ParseAuthorizedKeys parses a public key from an authorized_keys +// file used in OpenSSH according to the sshd(8) manual page. +func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []string, rest []byte, err error) { + for len(in) > 0 { + end := bytes.IndexByte(in, '\n') + if end != -1 { + rest = in[end+1:] + in = in[:end] + } else { + rest = nil + } + + end = bytes.IndexByte(in, '\r') + if end != -1 { + in = in[:end] + } + + in = bytes.TrimSpace(in) + if len(in) == 0 || in[0] == '#' { + in = rest + continue + } + + i := bytes.IndexAny(in, " \t") + if i == -1 { + in = rest + continue + } + + if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { + return out, comment, options, rest, nil + } + + // No key type recognised. Maybe there's an options field at + // the beginning. + var b byte + inQuote := false + var candidateOptions []string + optionStart := 0 + for i, b = range in { + isEnd := !inQuote && (b == ' ' || b == '\t') + if (b == ',' && !inQuote) || isEnd { + if i-optionStart > 0 { + candidateOptions = append(candidateOptions, string(in[optionStart:i])) + } + optionStart = i + 1 + } + if isEnd { + break + } + if b == '"' && (i == 0 || (i > 0 && in[i-1] != '\\')) { + inQuote = !inQuote + } + } + for i < len(in) && (in[i] == ' ' || in[i] == '\t') { + i++ + } + if i == len(in) { + // Invalid line: unmatched quote + in = rest + continue + } + + in = in[i:] + i = bytes.IndexAny(in, " \t") + if i == -1 { + in = rest + continue + } + + if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { + options = candidateOptions + return out, comment, options, rest, nil + } + + in = rest + continue + } + + return nil, "", nil, nil, errors.New("ssh: no key found") +} + +// ParsePublicKey parses an SSH public key formatted for use in +// the SSH wire protocol according to RFC 4253, section 6.6. +func ParsePublicKey(in []byte) (out PublicKey, err error) { + algo, in, ok := parseString(in) + if !ok { + return nil, errShortRead + } + var rest []byte + out, rest, err = parsePubKey(in, string(algo)) + if len(rest) > 0 { + return nil, errors.New("ssh: trailing junk in public key") + } + + return out, err +} + +// MarshalAuthorizedKey serializes key for inclusion in an OpenSSH +// authorized_keys file. The return value ends with newline. +func MarshalAuthorizedKey(key PublicKey) []byte { + b := &bytes.Buffer{} + b.WriteString(key.Type()) + b.WriteByte(' ') + e := base64.NewEncoder(base64.StdEncoding, b) + e.Write(key.Marshal()) + e.Close() + b.WriteByte('\n') + return b.Bytes() +} + +// PublicKey is an abstraction of different types of public keys. +type PublicKey interface { + // Type returns the key's type, e.g. "ssh-rsa". + Type() string + + // Marshal returns the serialized key data in SSH wire format, + // with the name prefix. + Marshal() []byte + + // Verify that sig is a signature on the given data using this + // key. This function will hash the data appropriately first. + Verify(data []byte, sig *Signature) error +} + +// A Signer can create signatures that verify against a public key. +type Signer interface { + // PublicKey returns an associated PublicKey instance. + PublicKey() PublicKey + + // Sign returns raw signature for the given data. This method + // will apply the hash specified for the keytype to the data. + Sign(rand io.Reader, data []byte) (*Signature, error) +} + +type rsaPublicKey rsa.PublicKey + +func (r *rsaPublicKey) Type() string { + return "ssh-rsa" +} + +// parseRSA parses an RSA key according to RFC 4253, section 6.6. +func parseRSA(in []byte) (out PublicKey, rest []byte, err error) { + var w struct { + E *big.Int + N *big.Int + Rest []byte `ssh:"rest"` + } + if err := Unmarshal(in, &w); err != nil { + return nil, nil, err + } + + if w.E.BitLen() > 24 { + return nil, nil, errors.New("ssh: exponent too large") + } + e := w.E.Int64() + if e < 3 || e&1 == 0 { + return nil, nil, errors.New("ssh: incorrect exponent") + } + + var key rsa.PublicKey + key.E = int(e) + key.N = w.N + return (*rsaPublicKey)(&key), w.Rest, nil +} + +func (r *rsaPublicKey) Marshal() []byte { + e := new(big.Int).SetInt64(int64(r.E)) + wirekey := struct { + Name string + E *big.Int + N *big.Int + }{ + KeyAlgoRSA, + e, + r.N, + } + return Marshal(&wirekey) +} + +func (r *rsaPublicKey) Verify(data []byte, sig *Signature) error { + if sig.Format != r.Type() { + return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, r.Type()) + } + h := crypto.SHA1.New() + h.Write(data) + digest := h.Sum(nil) + return rsa.VerifyPKCS1v15((*rsa.PublicKey)(r), crypto.SHA1, digest, sig.Blob) +} + +type rsaPrivateKey struct { + *rsa.PrivateKey +} + +func (r *rsaPrivateKey) PublicKey() PublicKey { + return (*rsaPublicKey)(&r.PrivateKey.PublicKey) +} + +func (r *rsaPrivateKey) Sign(rand io.Reader, data []byte) (*Signature, error) { + h := crypto.SHA1.New() + h.Write(data) + digest := h.Sum(nil) + blob, err := rsa.SignPKCS1v15(rand, r.PrivateKey, crypto.SHA1, digest) + if err != nil { + return nil, err + } + return &Signature{ + Format: r.PublicKey().Type(), + Blob: blob, + }, nil +} + +type dsaPublicKey dsa.PublicKey + +func (r *dsaPublicKey) Type() string { + return "ssh-dss" +} + +// parseDSA parses an DSA key according to RFC 4253, section 6.6. +func parseDSA(in []byte) (out PublicKey, rest []byte, err error) { + var w struct { + P, Q, G, Y *big.Int + Rest []byte `ssh:"rest"` + } + if err := Unmarshal(in, &w); err != nil { + return nil, nil, err + } + + key := &dsaPublicKey{ + Parameters: dsa.Parameters{ + P: w.P, + Q: w.Q, + G: w.G, + }, + Y: w.Y, + } + return key, w.Rest, nil +} + +func (k *dsaPublicKey) Marshal() []byte { + w := struct { + Name string + P, Q, G, Y *big.Int + }{ + k.Type(), + k.P, + k.Q, + k.G, + k.Y, + } + + return Marshal(&w) +} + +func (k *dsaPublicKey) Verify(data []byte, sig *Signature) error { + if sig.Format != k.Type() { + return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) + } + h := crypto.SHA1.New() + h.Write(data) + digest := h.Sum(nil) + + // Per RFC 4253, section 6.6, + // The value for 'dss_signature_blob' is encoded as a string containing + // r, followed by s (which are 160-bit integers, without lengths or + // padding, unsigned, and in network byte order). + // For DSS purposes, sig.Blob should be exactly 40 bytes in length. + if len(sig.Blob) != 40 { + return errors.New("ssh: DSA signature parse error") + } + r := new(big.Int).SetBytes(sig.Blob[:20]) + s := new(big.Int).SetBytes(sig.Blob[20:]) + if dsa.Verify((*dsa.PublicKey)(k), digest, r, s) { + return nil + } + return errors.New("ssh: signature did not verify") +} + +type dsaPrivateKey struct { + *dsa.PrivateKey +} + +func (k *dsaPrivateKey) PublicKey() PublicKey { + return (*dsaPublicKey)(&k.PrivateKey.PublicKey) +} + +func (k *dsaPrivateKey) Sign(rand io.Reader, data []byte) (*Signature, error) { + h := crypto.SHA1.New() + h.Write(data) + digest := h.Sum(nil) + r, s, err := dsa.Sign(rand, k.PrivateKey, digest) + if err != nil { + return nil, err + } + + sig := make([]byte, 40) + rb := r.Bytes() + sb := s.Bytes() + + copy(sig[20-len(rb):20], rb) + copy(sig[40-len(sb):], sb) + + return &Signature{ + Format: k.PublicKey().Type(), + Blob: sig, + }, nil +} + +type ecdsaPublicKey ecdsa.PublicKey + +func (key *ecdsaPublicKey) Type() string { + return "ecdsa-sha2-" + key.nistID() +} + +func (key *ecdsaPublicKey) nistID() string { + switch key.Params().BitSize { + case 256: + return "nistp256" + case 384: + return "nistp384" + case 521: + return "nistp521" + } + panic("ssh: unsupported ecdsa key size") +} + +func supportedEllipticCurve(curve elliptic.Curve) bool { + return curve == elliptic.P256() || curve == elliptic.P384() || curve == elliptic.P521() +} + +// ecHash returns the hash to match the given elliptic curve, see RFC +// 5656, section 6.2.1 +func ecHash(curve elliptic.Curve) crypto.Hash { + bitSize := curve.Params().BitSize + switch { + case bitSize <= 256: + return crypto.SHA256 + case bitSize <= 384: + return crypto.SHA384 + } + return crypto.SHA512 +} + +// parseECDSA parses an ECDSA key according to RFC 5656, section 3.1. +func parseECDSA(in []byte) (out PublicKey, rest []byte, err error) { + var w struct { + Curve string + KeyBytes []byte + Rest []byte `ssh:"rest"` + } + + if err := Unmarshal(in, &w); err != nil { + return nil, nil, err + } + + key := new(ecdsa.PublicKey) + + switch w.Curve { + case "nistp256": + key.Curve = elliptic.P256() + case "nistp384": + key.Curve = elliptic.P384() + case "nistp521": + key.Curve = elliptic.P521() + default: + return nil, nil, errors.New("ssh: unsupported curve") + } + + key.X, key.Y = elliptic.Unmarshal(key.Curve, w.KeyBytes) + if key.X == nil || key.Y == nil { + return nil, nil, errors.New("ssh: invalid curve point") + } + return (*ecdsaPublicKey)(key), w.Rest, nil +} + +func (key *ecdsaPublicKey) Marshal() []byte { + // See RFC 5656, section 3.1. + keyBytes := elliptic.Marshal(key.Curve, key.X, key.Y) + w := struct { + Name string + ID string + Key []byte + }{ + key.Type(), + key.nistID(), + keyBytes, + } + + return Marshal(&w) +} + +func (key *ecdsaPublicKey) Verify(data []byte, sig *Signature) error { + if sig.Format != key.Type() { + return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type()) + } + + h := ecHash(key.Curve).New() + h.Write(data) + digest := h.Sum(nil) + + // Per RFC 5656, section 3.1.2, + // The ecdsa_signature_blob value has the following specific encoding: + // mpint r + // mpint s + var ecSig struct { + R *big.Int + S *big.Int + } + + if err := Unmarshal(sig.Blob, &ecSig); err != nil { + return err + } + + if ecdsa.Verify((*ecdsa.PublicKey)(key), digest, ecSig.R, ecSig.S) { + return nil + } + return errors.New("ssh: signature did not verify") +} + +type ecdsaPrivateKey struct { + *ecdsa.PrivateKey +} + +func (k *ecdsaPrivateKey) PublicKey() PublicKey { + return (*ecdsaPublicKey)(&k.PrivateKey.PublicKey) +} + +func (k *ecdsaPrivateKey) Sign(rand io.Reader, data []byte) (*Signature, error) { + h := ecHash(k.PrivateKey.PublicKey.Curve).New() + h.Write(data) + digest := h.Sum(nil) + r, s, err := ecdsa.Sign(rand, k.PrivateKey, digest) + if err != nil { + return nil, err + } + + sig := make([]byte, intLength(r)+intLength(s)) + rest := marshalInt(sig, r) + marshalInt(rest, s) + return &Signature{ + Format: k.PublicKey().Type(), + Blob: sig, + }, nil +} + +// NewSignerFromKey takes a pointer to rsa, dsa or ecdsa PrivateKey +// returns a corresponding Signer instance. EC keys should use P256, +// P384 or P521. +func NewSignerFromKey(k interface{}) (Signer, error) { + var sshKey Signer + switch t := k.(type) { + case *rsa.PrivateKey: + sshKey = &rsaPrivateKey{t} + case *dsa.PrivateKey: + sshKey = &dsaPrivateKey{t} + case *ecdsa.PrivateKey: + if !supportedEllipticCurve(t.Curve) { + return nil, errors.New("ssh: only P256, P384 and P521 EC keys are supported.") + } + + sshKey = &ecdsaPrivateKey{t} + default: + return nil, fmt.Errorf("ssh: unsupported key type %T", k) + } + return sshKey, nil +} + +// NewPublicKey takes a pointer to rsa, dsa or ecdsa PublicKey +// and returns a corresponding ssh PublicKey instance. EC keys should use P256, P384 or P521. +func NewPublicKey(k interface{}) (PublicKey, error) { + var sshKey PublicKey + switch t := k.(type) { + case *rsa.PublicKey: + sshKey = (*rsaPublicKey)(t) + case *ecdsa.PublicKey: + if !supportedEllipticCurve(t.Curve) { + return nil, errors.New("ssh: only P256, P384 and P521 EC keys are supported.") + } + sshKey = (*ecdsaPublicKey)(t) + case *dsa.PublicKey: + sshKey = (*dsaPublicKey)(t) + default: + return nil, fmt.Errorf("ssh: unsupported key type %T", k) + } + return sshKey, nil +} + +// ParsePrivateKey returns a Signer from a PEM encoded private key. It supports +// the same keys as ParseRawPrivateKey. +func ParsePrivateKey(pemBytes []byte) (Signer, error) { + key, err := ParseRawPrivateKey(pemBytes) + if err != nil { + return nil, err + } + + return NewSignerFromKey(key) +} + +// ParseRawPrivateKey returns a private key from a PEM encoded private key. It +// supports RSA (PKCS#1), DSA (OpenSSL), and ECDSA private keys. +func ParseRawPrivateKey(pemBytes []byte) (interface{}, error) { + block, _ := pem.Decode(pemBytes) + if block == nil { + return nil, errors.New("ssh: no key found") + } + + switch block.Type { + case "RSA PRIVATE KEY": + return x509.ParsePKCS1PrivateKey(block.Bytes) + case "EC PRIVATE KEY": + return x509.ParseECPrivateKey(block.Bytes) + case "DSA PRIVATE KEY": + return ParseDSAPrivateKey(block.Bytes) + default: + return nil, fmt.Errorf("ssh: unsupported key type %q", block.Type) + } +} + +// ParseDSAPrivateKey returns a DSA private key from its ASN.1 DER encoding, as +// specified by the OpenSSL DSA man page. +func ParseDSAPrivateKey(der []byte) (*dsa.PrivateKey, error) { + var k struct { + Version int + P *big.Int + Q *big.Int + G *big.Int + Priv *big.Int + Pub *big.Int + } + rest, err := asn1.Unmarshal(der, &k) + if err != nil { + return nil, errors.New("ssh: failed to parse DSA key: " + err.Error()) + } + if len(rest) > 0 { + return nil, errors.New("ssh: garbage after DSA key") + } + + return &dsa.PrivateKey{ + PublicKey: dsa.PublicKey{ + Parameters: dsa.Parameters{ + P: k.P, + Q: k.Q, + G: k.G, + }, + Y: k.Priv, + }, + X: k.Pub, + }, nil +} diff --git a/modules/crypto/ssh/keys_test.go b/modules/crypto/ssh/keys_test.go new file mode 100755 index 000000000..2b19ef922 --- /dev/null +++ b/modules/crypto/ssh/keys_test.go @@ -0,0 +1,306 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/rsa" + "encoding/base64" + "fmt" + "reflect" + "strings" + "testing" + + "github.com/gogits/gogs/modules/crypto/ssh/testdata" +) + +func rawKey(pub PublicKey) interface{} { + switch k := pub.(type) { + case *rsaPublicKey: + return (*rsa.PublicKey)(k) + case *dsaPublicKey: + return (*dsa.PublicKey)(k) + case *ecdsaPublicKey: + return (*ecdsa.PublicKey)(k) + case *Certificate: + return k + } + panic("unknown key type") +} + +func TestKeyMarshalParse(t *testing.T) { + for _, priv := range testSigners { + pub := priv.PublicKey() + roundtrip, err := ParsePublicKey(pub.Marshal()) + if err != nil { + t.Errorf("ParsePublicKey(%T): %v", pub, err) + } + + k1 := rawKey(pub) + k2 := rawKey(roundtrip) + + if !reflect.DeepEqual(k1, k2) { + t.Errorf("got %#v in roundtrip, want %#v", k2, k1) + } + } +} + +func TestUnsupportedCurves(t *testing.T) { + raw, err := ecdsa.GenerateKey(elliptic.P224(), rand.Reader) + if err != nil { + t.Fatalf("GenerateKey: %v", err) + } + + if _, err = NewSignerFromKey(raw); err == nil || !strings.Contains(err.Error(), "only P256") { + t.Fatalf("NewPrivateKey should not succeed with P224, got: %v", err) + } + + if _, err = NewPublicKey(&raw.PublicKey); err == nil || !strings.Contains(err.Error(), "only P256") { + t.Fatalf("NewPublicKey should not succeed with P224, got: %v", err) + } +} + +func TestNewPublicKey(t *testing.T) { + for _, k := range testSigners { + raw := rawKey(k.PublicKey()) + // Skip certificates, as NewPublicKey does not support them. + if _, ok := raw.(*Certificate); ok { + continue + } + pub, err := NewPublicKey(raw) + if err != nil { + t.Errorf("NewPublicKey(%#v): %v", raw, err) + } + if !reflect.DeepEqual(k.PublicKey(), pub) { + t.Errorf("NewPublicKey(%#v) = %#v, want %#v", raw, pub, k.PublicKey()) + } + } +} + +func TestKeySignVerify(t *testing.T) { + for _, priv := range testSigners { + pub := priv.PublicKey() + + data := []byte("sign me") + sig, err := priv.Sign(rand.Reader, data) + if err != nil { + t.Fatalf("Sign(%T): %v", priv, err) + } + + if err := pub.Verify(data, sig); err != nil { + t.Errorf("publicKey.Verify(%T): %v", priv, err) + } + sig.Blob[5]++ + if err := pub.Verify(data, sig); err == nil { + t.Errorf("publicKey.Verify on broken sig did not fail") + } + } +} + +func TestParseRSAPrivateKey(t *testing.T) { + key := testPrivateKeys["rsa"] + + rsa, ok := key.(*rsa.PrivateKey) + if !ok { + t.Fatalf("got %T, want *rsa.PrivateKey", rsa) + } + + if err := rsa.Validate(); err != nil { + t.Errorf("Validate: %v", err) + } +} + +func TestParseECPrivateKey(t *testing.T) { + key := testPrivateKeys["ecdsa"] + + ecKey, ok := key.(*ecdsa.PrivateKey) + if !ok { + t.Fatalf("got %T, want *ecdsa.PrivateKey", ecKey) + } + + if !validateECPublicKey(ecKey.Curve, ecKey.X, ecKey.Y) { + t.Fatalf("public key does not validate.") + } +} + +func TestParseDSA(t *testing.T) { + // We actually exercise the ParsePrivateKey codepath here, as opposed to + // using the ParseRawPrivateKey+NewSignerFromKey path that testdata_test.go + // uses. + s, err := ParsePrivateKey(testdata.PEMBytes["dsa"]) + if err != nil { + t.Fatalf("ParsePrivateKey returned error: %s", err) + } + + data := []byte("sign me") + sig, err := s.Sign(rand.Reader, data) + if err != nil { + t.Fatalf("dsa.Sign: %v", err) + } + + if err := s.PublicKey().Verify(data, sig); err != nil { + t.Errorf("Verify failed: %v", err) + } +} + +// Tests for authorized_keys parsing. + +// getTestKey returns a public key, and its base64 encoding. +func getTestKey() (PublicKey, string) { + k := testPublicKeys["rsa"] + + b := &bytes.Buffer{} + e := base64.NewEncoder(base64.StdEncoding, b) + e.Write(k.Marshal()) + e.Close() + + return k, b.String() +} + +func TestMarshalParsePublicKey(t *testing.T) { + pub, pubSerialized := getTestKey() + line := fmt.Sprintf("%s %s user@host", pub.Type(), pubSerialized) + + authKeys := MarshalAuthorizedKey(pub) + actualFields := strings.Fields(string(authKeys)) + if len(actualFields) == 0 { + t.Fatalf("failed authKeys: %v", authKeys) + } + + // drop the comment + expectedFields := strings.Fields(line)[0:2] + + if !reflect.DeepEqual(actualFields, expectedFields) { + t.Errorf("got %v, expected %v", actualFields, expectedFields) + } + + actPub, _, _, _, err := ParseAuthorizedKey([]byte(line)) + if err != nil { + t.Fatalf("cannot parse %v: %v", line, err) + } + if !reflect.DeepEqual(actPub, pub) { + t.Errorf("got %v, expected %v", actPub, pub) + } +} + +type authResult struct { + pubKey PublicKey + options []string + comments string + rest string + ok bool +} + +func testAuthorizedKeys(t *testing.T, authKeys []byte, expected []authResult) { + rest := authKeys + var values []authResult + for len(rest) > 0 { + var r authResult + var err error + r.pubKey, r.comments, r.options, rest, err = ParseAuthorizedKey(rest) + r.ok = (err == nil) + t.Log(err) + r.rest = string(rest) + values = append(values, r) + } + + if !reflect.DeepEqual(values, expected) { + t.Errorf("got %#v, expected %#v", values, expected) + } +} + +func TestAuthorizedKeyBasic(t *testing.T) { + pub, pubSerialized := getTestKey() + line := "ssh-rsa " + pubSerialized + " user@host" + testAuthorizedKeys(t, []byte(line), + []authResult{ + {pub, nil, "user@host", "", true}, + }) +} + +func TestAuth(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithOptions := []string{ + `# comments to ignore before any keys...`, + ``, + `env="HOME=/home/root",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`, + `# comments to ignore, along with a blank line`, + ``, + `env="HOME=/home/root2" ssh-rsa ` + pubSerialized + ` user2@host2`, + ``, + `# more comments, plus a invalid entry`, + `ssh-rsa data-that-will-not-parse user@host3`, + } + for _, eol := range []string{"\n", "\r\n"} { + authOptions := strings.Join(authWithOptions, eol) + rest2 := strings.Join(authWithOptions[3:], eol) + rest3 := strings.Join(authWithOptions[6:], eol) + testAuthorizedKeys(t, []byte(authOptions), []authResult{ + {pub, []string{`env="HOME=/home/root"`, "no-port-forwarding"}, "user@host", rest2, true}, + {pub, []string{`env="HOME=/home/root2"`}, "user2@host2", rest3, true}, + {nil, nil, "", "", false}, + }) + } +} + +func TestAuthWithQuotedSpaceInEnv(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithQuotedSpaceInEnv := []byte(`env="HOME=/home/root dir",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`) + testAuthorizedKeys(t, []byte(authWithQuotedSpaceInEnv), []authResult{ + {pub, []string{`env="HOME=/home/root dir"`, "no-port-forwarding"}, "user@host", "", true}, + }) +} + +func TestAuthWithQuotedCommaInEnv(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithQuotedCommaInEnv := []byte(`env="HOME=/home/root,dir",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`) + testAuthorizedKeys(t, []byte(authWithQuotedCommaInEnv), []authResult{ + {pub, []string{`env="HOME=/home/root,dir"`, "no-port-forwarding"}, "user@host", "", true}, + }) +} + +func TestAuthWithQuotedQuoteInEnv(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithQuotedQuoteInEnv := []byte(`env="HOME=/home/\"root dir",no-port-forwarding` + "\t" + `ssh-rsa` + "\t" + pubSerialized + ` user@host`) + authWithDoubleQuotedQuote := []byte(`no-port-forwarding,env="HOME=/home/ \"root dir\"" ssh-rsa ` + pubSerialized + "\t" + `user@host`) + testAuthorizedKeys(t, []byte(authWithQuotedQuoteInEnv), []authResult{ + {pub, []string{`env="HOME=/home/\"root dir"`, "no-port-forwarding"}, "user@host", "", true}, + }) + + testAuthorizedKeys(t, []byte(authWithDoubleQuotedQuote), []authResult{ + {pub, []string{"no-port-forwarding", `env="HOME=/home/ \"root dir\""`}, "user@host", "", true}, + }) +} + +func TestAuthWithInvalidSpace(t *testing.T) { + _, pubSerialized := getTestKey() + authWithInvalidSpace := []byte(`env="HOME=/home/root dir", no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host +#more to follow but still no valid keys`) + testAuthorizedKeys(t, []byte(authWithInvalidSpace), []authResult{ + {nil, nil, "", "", false}, + }) +} + +func TestAuthWithMissingQuote(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithMissingQuote := []byte(`env="HOME=/home/root,no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host +env="HOME=/home/root",shared-control ssh-rsa ` + pubSerialized + ` user@host`) + + testAuthorizedKeys(t, []byte(authWithMissingQuote), []authResult{ + {pub, []string{`env="HOME=/home/root"`, `shared-control`}, "user@host", "", true}, + }) +} + +func TestInvalidEntry(t *testing.T) { + authInvalid := []byte(`ssh-rsa`) + _, _, _, _, err := ParseAuthorizedKey(authInvalid) + if err == nil { + t.Errorf("got valid entry for %q", authInvalid) + } +} diff --git a/modules/crypto/ssh/mac.go b/modules/crypto/ssh/mac.go new file mode 100755 index 000000000..07744ad67 --- /dev/null +++ b/modules/crypto/ssh/mac.go @@ -0,0 +1,57 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +// Message authentication support + +import ( + "crypto/hmac" + "crypto/sha1" + "crypto/sha256" + "hash" +) + +type macMode struct { + keySize int + new func(key []byte) hash.Hash +} + +// truncatingMAC wraps around a hash.Hash and truncates the output digest to +// a given size. +type truncatingMAC struct { + length int + hmac hash.Hash +} + +func (t truncatingMAC) Write(data []byte) (int, error) { + return t.hmac.Write(data) +} + +func (t truncatingMAC) Sum(in []byte) []byte { + out := t.hmac.Sum(in) + return out[:len(in)+t.length] +} + +func (t truncatingMAC) Reset() { + t.hmac.Reset() +} + +func (t truncatingMAC) Size() int { + return t.length +} + +func (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() } + +var macModes = map[string]*macMode{ + "hmac-sha2-256": {32, func(key []byte) hash.Hash { + return hmac.New(sha256.New, key) + }}, + "hmac-sha1": {20, func(key []byte) hash.Hash { + return hmac.New(sha1.New, key) + }}, + "hmac-sha1-96": {20, func(key []byte) hash.Hash { + return truncatingMAC{12, hmac.New(sha1.New, key)} + }}, +} diff --git a/modules/crypto/ssh/mempipe_test.go b/modules/crypto/ssh/mempipe_test.go new file mode 100755 index 000000000..8697cd614 --- /dev/null +++ b/modules/crypto/ssh/mempipe_test.go @@ -0,0 +1,110 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "io" + "sync" + "testing" +) + +// An in-memory packetConn. It is safe to call Close and writePacket +// from different goroutines. +type memTransport struct { + eof bool + pending [][]byte + write *memTransport + sync.Mutex + *sync.Cond +} + +func (t *memTransport) readPacket() ([]byte, error) { + t.Lock() + defer t.Unlock() + for { + if len(t.pending) > 0 { + r := t.pending[0] + t.pending = t.pending[1:] + return r, nil + } + if t.eof { + return nil, io.EOF + } + t.Cond.Wait() + } +} + +func (t *memTransport) closeSelf() error { + t.Lock() + defer t.Unlock() + if t.eof { + return io.EOF + } + t.eof = true + t.Cond.Broadcast() + return nil +} + +func (t *memTransport) Close() error { + err := t.write.closeSelf() + t.closeSelf() + return err +} + +func (t *memTransport) writePacket(p []byte) error { + t.write.Lock() + defer t.write.Unlock() + if t.write.eof { + return io.EOF + } + c := make([]byte, len(p)) + copy(c, p) + t.write.pending = append(t.write.pending, c) + t.write.Cond.Signal() + return nil +} + +func memPipe() (a, b packetConn) { + t1 := memTransport{} + t2 := memTransport{} + t1.write = &t2 + t2.write = &t1 + t1.Cond = sync.NewCond(&t1.Mutex) + t2.Cond = sync.NewCond(&t2.Mutex) + return &t1, &t2 +} + +func TestMemPipe(t *testing.T) { + a, b := memPipe() + if err := a.writePacket([]byte{42}); err != nil { + t.Fatalf("writePacket: %v", err) + } + if err := a.Close(); err != nil { + t.Fatal("Close: ", err) + } + p, err := b.readPacket() + if err != nil { + t.Fatal("readPacket: ", err) + } + if len(p) != 1 || p[0] != 42 { + t.Fatalf("got %v, want {42}", p) + } + p, err = b.readPacket() + if err != io.EOF { + t.Fatalf("got %v, %v, want EOF", p, err) + } +} + +func TestDoubleClose(t *testing.T) { + a, _ := memPipe() + err := a.Close() + if err != nil { + t.Errorf("Close: %v", err) + } + err = a.Close() + if err != io.EOF { + t.Errorf("expect EOF on double close.") + } +} diff --git a/modules/crypto/ssh/messages.go b/modules/crypto/ssh/messages.go new file mode 100755 index 000000000..eaf610669 --- /dev/null +++ b/modules/crypto/ssh/messages.go @@ -0,0 +1,725 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "math/big" + "reflect" + "strconv" +) + +// These are SSH message type numbers. They are scattered around several +// documents but many were taken from [SSH-PARAMETERS]. +const ( + msgIgnore = 2 + msgUnimplemented = 3 + msgDebug = 4 + msgNewKeys = 21 + + // Standard authentication messages + msgUserAuthSuccess = 52 + msgUserAuthBanner = 53 +) + +// SSH messages: +// +// These structures mirror the wire format of the corresponding SSH messages. +// They are marshaled using reflection with the marshal and unmarshal functions +// in this file. The only wrinkle is that a final member of type []byte with a +// ssh tag of "rest" receives the remainder of a packet when unmarshaling. + +// See RFC 4253, section 11.1. +const msgDisconnect = 1 + +// disconnectMsg is the message that signals a disconnect. It is also +// the error type returned from mux.Wait() +type disconnectMsg struct { + Reason uint32 `sshtype:"1"` + Message string + Language string +} + +func (d *disconnectMsg) Error() string { + return fmt.Sprintf("ssh: disconnect reason %d: %s", d.Reason, d.Message) +} + +// See RFC 4253, section 7.1. +const msgKexInit = 20 + +type kexInitMsg struct { + Cookie [16]byte `sshtype:"20"` + KexAlgos []string + ServerHostKeyAlgos []string + CiphersClientServer []string + CiphersServerClient []string + MACsClientServer []string + MACsServerClient []string + CompressionClientServer []string + CompressionServerClient []string + LanguagesClientServer []string + LanguagesServerClient []string + FirstKexFollows bool + Reserved uint32 +} + +// See RFC 4253, section 8. + +// Diffie-Helman +const msgKexDHInit = 30 + +type kexDHInitMsg struct { + X *big.Int `sshtype:"30"` +} + +const msgKexECDHInit = 30 + +type kexECDHInitMsg struct { + ClientPubKey []byte `sshtype:"30"` +} + +const msgKexECDHReply = 31 + +type kexECDHReplyMsg struct { + HostKey []byte `sshtype:"31"` + EphemeralPubKey []byte + Signature []byte +} + +const msgKexDHReply = 31 + +type kexDHReplyMsg struct { + HostKey []byte `sshtype:"31"` + Y *big.Int + Signature []byte +} + +// See RFC 4253, section 10. +const msgServiceRequest = 5 + +type serviceRequestMsg struct { + Service string `sshtype:"5"` +} + +// See RFC 4253, section 10. +const msgServiceAccept = 6 + +type serviceAcceptMsg struct { + Service string `sshtype:"6"` +} + +// See RFC 4252, section 5. +const msgUserAuthRequest = 50 + +type userAuthRequestMsg struct { + User string `sshtype:"50"` + Service string + Method string + Payload []byte `ssh:"rest"` +} + +// See RFC 4252, section 5.1 +const msgUserAuthFailure = 51 + +type userAuthFailureMsg struct { + Methods []string `sshtype:"51"` + PartialSuccess bool +} + +// See RFC 4256, section 3.2 +const msgUserAuthInfoRequest = 60 +const msgUserAuthInfoResponse = 61 + +type userAuthInfoRequestMsg struct { + User string `sshtype:"60"` + Instruction string + DeprecatedLanguage string + NumPrompts uint32 + Prompts []byte `ssh:"rest"` +} + +// See RFC 4254, section 5.1. +const msgChannelOpen = 90 + +type channelOpenMsg struct { + ChanType string `sshtype:"90"` + PeersId uint32 + PeersWindow uint32 + MaxPacketSize uint32 + TypeSpecificData []byte `ssh:"rest"` +} + +const msgChannelExtendedData = 95 +const msgChannelData = 94 + +// See RFC 4254, section 5.1. +const msgChannelOpenConfirm = 91 + +type channelOpenConfirmMsg struct { + PeersId uint32 `sshtype:"91"` + MyId uint32 + MyWindow uint32 + MaxPacketSize uint32 + TypeSpecificData []byte `ssh:"rest"` +} + +// See RFC 4254, section 5.1. +const msgChannelOpenFailure = 92 + +type channelOpenFailureMsg struct { + PeersId uint32 `sshtype:"92"` + Reason RejectionReason + Message string + Language string +} + +const msgChannelRequest = 98 + +type channelRequestMsg struct { + PeersId uint32 `sshtype:"98"` + Request string + WantReply bool + RequestSpecificData []byte `ssh:"rest"` +} + +// See RFC 4254, section 5.4. +const msgChannelSuccess = 99 + +type channelRequestSuccessMsg struct { + PeersId uint32 `sshtype:"99"` +} + +// See RFC 4254, section 5.4. +const msgChannelFailure = 100 + +type channelRequestFailureMsg struct { + PeersId uint32 `sshtype:"100"` +} + +// See RFC 4254, section 5.3 +const msgChannelClose = 97 + +type channelCloseMsg struct { + PeersId uint32 `sshtype:"97"` +} + +// See RFC 4254, section 5.3 +const msgChannelEOF = 96 + +type channelEOFMsg struct { + PeersId uint32 `sshtype:"96"` +} + +// See RFC 4254, section 4 +const msgGlobalRequest = 80 + +type globalRequestMsg struct { + Type string `sshtype:"80"` + WantReply bool + Data []byte `ssh:"rest"` +} + +// See RFC 4254, section 4 +const msgRequestSuccess = 81 + +type globalRequestSuccessMsg struct { + Data []byte `ssh:"rest" sshtype:"81"` +} + +// See RFC 4254, section 4 +const msgRequestFailure = 82 + +type globalRequestFailureMsg struct { + Data []byte `ssh:"rest" sshtype:"82"` +} + +// See RFC 4254, section 5.2 +const msgChannelWindowAdjust = 93 + +type windowAdjustMsg struct { + PeersId uint32 `sshtype:"93"` + AdditionalBytes uint32 +} + +// See RFC 4252, section 7 +const msgUserAuthPubKeyOk = 60 + +type userAuthPubKeyOkMsg struct { + Algo string `sshtype:"60"` + PubKey []byte +} + +// typeTag returns the type byte for the given type. The type should +// be struct. +func typeTag(structType reflect.Type) byte { + var tag byte + var tagStr string + tagStr = structType.Field(0).Tag.Get("sshtype") + i, err := strconv.Atoi(tagStr) + if err == nil { + tag = byte(i) + } + return tag +} + +func fieldError(t reflect.Type, field int, problem string) error { + if problem != "" { + problem = ": " + problem + } + return fmt.Errorf("ssh: unmarshal error for field %s of type %s%s", t.Field(field).Name, t.Name(), problem) +} + +var errShortRead = errors.New("ssh: short read") + +// Unmarshal parses data in SSH wire format into a structure. The out +// argument should be a pointer to struct. If the first member of the +// struct has the "sshtype" tag set to a number in decimal, the packet +// must start that number. In case of error, Unmarshal returns a +// ParseError or UnexpectedMessageError. +func Unmarshal(data []byte, out interface{}) error { + v := reflect.ValueOf(out).Elem() + structType := v.Type() + expectedType := typeTag(structType) + if len(data) == 0 { + return parseError(expectedType) + } + if expectedType > 0 { + if data[0] != expectedType { + return unexpectedMessageError(expectedType, data[0]) + } + data = data[1:] + } + + var ok bool + for i := 0; i < v.NumField(); i++ { + field := v.Field(i) + t := field.Type() + switch t.Kind() { + case reflect.Bool: + if len(data) < 1 { + return errShortRead + } + field.SetBool(data[0] != 0) + data = data[1:] + case reflect.Array: + if t.Elem().Kind() != reflect.Uint8 { + return fieldError(structType, i, "array of unsupported type") + } + if len(data) < t.Len() { + return errShortRead + } + for j, n := 0, t.Len(); j < n; j++ { + field.Index(j).Set(reflect.ValueOf(data[j])) + } + data = data[t.Len():] + case reflect.Uint64: + var u64 uint64 + if u64, data, ok = parseUint64(data); !ok { + return errShortRead + } + field.SetUint(u64) + case reflect.Uint32: + var u32 uint32 + if u32, data, ok = parseUint32(data); !ok { + return errShortRead + } + field.SetUint(uint64(u32)) + case reflect.Uint8: + if len(data) < 1 { + return errShortRead + } + field.SetUint(uint64(data[0])) + data = data[1:] + case reflect.String: + var s []byte + if s, data, ok = parseString(data); !ok { + return fieldError(structType, i, "") + } + field.SetString(string(s)) + case reflect.Slice: + switch t.Elem().Kind() { + case reflect.Uint8: + if structType.Field(i).Tag.Get("ssh") == "rest" { + field.Set(reflect.ValueOf(data)) + data = nil + } else { + var s []byte + if s, data, ok = parseString(data); !ok { + return errShortRead + } + field.Set(reflect.ValueOf(s)) + } + case reflect.String: + var nl []string + if nl, data, ok = parseNameList(data); !ok { + return errShortRead + } + field.Set(reflect.ValueOf(nl)) + default: + return fieldError(structType, i, "slice of unsupported type") + } + case reflect.Ptr: + if t == bigIntType { + var n *big.Int + if n, data, ok = parseInt(data); !ok { + return errShortRead + } + field.Set(reflect.ValueOf(n)) + } else { + return fieldError(structType, i, "pointer to unsupported type") + } + default: + return fieldError(structType, i, "unsupported type") + } + } + + if len(data) != 0 { + return parseError(expectedType) + } + + return nil +} + +// Marshal serializes the message in msg to SSH wire format. The msg +// argument should be a struct or pointer to struct. If the first +// member has the "sshtype" tag set to a number in decimal, that +// number is prepended to the result. If the last of member has the +// "ssh" tag set to "rest", its contents are appended to the output. +func Marshal(msg interface{}) []byte { + out := make([]byte, 0, 64) + return marshalStruct(out, msg) +} + +func marshalStruct(out []byte, msg interface{}) []byte { + v := reflect.Indirect(reflect.ValueOf(msg)) + msgType := typeTag(v.Type()) + if msgType > 0 { + out = append(out, msgType) + } + + for i, n := 0, v.NumField(); i < n; i++ { + field := v.Field(i) + switch t := field.Type(); t.Kind() { + case reflect.Bool: + var v uint8 + if field.Bool() { + v = 1 + } + out = append(out, v) + case reflect.Array: + if t.Elem().Kind() != reflect.Uint8 { + panic(fmt.Sprintf("array of non-uint8 in field %d: %T", i, field.Interface())) + } + for j, l := 0, t.Len(); j < l; j++ { + out = append(out, uint8(field.Index(j).Uint())) + } + case reflect.Uint32: + out = appendU32(out, uint32(field.Uint())) + case reflect.Uint64: + out = appendU64(out, uint64(field.Uint())) + case reflect.Uint8: + out = append(out, uint8(field.Uint())) + case reflect.String: + s := field.String() + out = appendInt(out, len(s)) + out = append(out, s...) + case reflect.Slice: + switch t.Elem().Kind() { + case reflect.Uint8: + if v.Type().Field(i).Tag.Get("ssh") != "rest" { + out = appendInt(out, field.Len()) + } + out = append(out, field.Bytes()...) + case reflect.String: + offset := len(out) + out = appendU32(out, 0) + if n := field.Len(); n > 0 { + for j := 0; j < n; j++ { + f := field.Index(j) + if j != 0 { + out = append(out, ',') + } + out = append(out, f.String()...) + } + // overwrite length value + binary.BigEndian.PutUint32(out[offset:], uint32(len(out)-offset-4)) + } + default: + panic(fmt.Sprintf("slice of unknown type in field %d: %T", i, field.Interface())) + } + case reflect.Ptr: + if t == bigIntType { + var n *big.Int + nValue := reflect.ValueOf(&n) + nValue.Elem().Set(field) + needed := intLength(n) + oldLength := len(out) + + if cap(out)-len(out) < needed { + newOut := make([]byte, len(out), 2*(len(out)+needed)) + copy(newOut, out) + out = newOut + } + out = out[:oldLength+needed] + marshalInt(out[oldLength:], n) + } else { + panic(fmt.Sprintf("pointer to unknown type in field %d: %T", i, field.Interface())) + } + } + } + + return out +} + +var bigOne = big.NewInt(1) + +func parseString(in []byte) (out, rest []byte, ok bool) { + if len(in) < 4 { + return + } + length := binary.BigEndian.Uint32(in) + in = in[4:] + if uint32(len(in)) < length { + return + } + out = in[:length] + rest = in[length:] + ok = true + return +} + +var ( + comma = []byte{','} + emptyNameList = []string{} +) + +func parseNameList(in []byte) (out []string, rest []byte, ok bool) { + contents, rest, ok := parseString(in) + if !ok { + return + } + if len(contents) == 0 { + out = emptyNameList + return + } + parts := bytes.Split(contents, comma) + out = make([]string, len(parts)) + for i, part := range parts { + out[i] = string(part) + } + return +} + +func parseInt(in []byte) (out *big.Int, rest []byte, ok bool) { + contents, rest, ok := parseString(in) + if !ok { + return + } + out = new(big.Int) + + if len(contents) > 0 && contents[0]&0x80 == 0x80 { + // This is a negative number + notBytes := make([]byte, len(contents)) + for i := range notBytes { + notBytes[i] = ^contents[i] + } + out.SetBytes(notBytes) + out.Add(out, bigOne) + out.Neg(out) + } else { + // Positive number + out.SetBytes(contents) + } + ok = true + return +} + +func parseUint32(in []byte) (uint32, []byte, bool) { + if len(in) < 4 { + return 0, nil, false + } + return binary.BigEndian.Uint32(in), in[4:], true +} + +func parseUint64(in []byte) (uint64, []byte, bool) { + if len(in) < 8 { + return 0, nil, false + } + return binary.BigEndian.Uint64(in), in[8:], true +} + +func intLength(n *big.Int) int { + length := 4 /* length bytes */ + if n.Sign() < 0 { + nMinus1 := new(big.Int).Neg(n) + nMinus1.Sub(nMinus1, bigOne) + bitLen := nMinus1.BitLen() + if bitLen%8 == 0 { + // The number will need 0xff padding + length++ + } + length += (bitLen + 7) / 8 + } else if n.Sign() == 0 { + // A zero is the zero length string + } else { + bitLen := n.BitLen() + if bitLen%8 == 0 { + // The number will need 0x00 padding + length++ + } + length += (bitLen + 7) / 8 + } + + return length +} + +func marshalUint32(to []byte, n uint32) []byte { + binary.BigEndian.PutUint32(to, n) + return to[4:] +} + +func marshalUint64(to []byte, n uint64) []byte { + binary.BigEndian.PutUint64(to, n) + return to[8:] +} + +func marshalInt(to []byte, n *big.Int) []byte { + lengthBytes := to + to = to[4:] + length := 0 + + if n.Sign() < 0 { + // A negative number has to be converted to two's-complement + // form. So we'll subtract 1 and invert. If the + // most-significant-bit isn't set then we'll need to pad the + // beginning with 0xff in order to keep the number negative. + nMinus1 := new(big.Int).Neg(n) + nMinus1.Sub(nMinus1, bigOne) + bytes := nMinus1.Bytes() + for i := range bytes { + bytes[i] ^= 0xff + } + if len(bytes) == 0 || bytes[0]&0x80 == 0 { + to[0] = 0xff + to = to[1:] + length++ + } + nBytes := copy(to, bytes) + to = to[nBytes:] + length += nBytes + } else if n.Sign() == 0 { + // A zero is the zero length string + } else { + bytes := n.Bytes() + if len(bytes) > 0 && bytes[0]&0x80 != 0 { + // We'll have to pad this with a 0x00 in order to + // stop it looking like a negative number. + to[0] = 0 + to = to[1:] + length++ + } + nBytes := copy(to, bytes) + to = to[nBytes:] + length += nBytes + } + + lengthBytes[0] = byte(length >> 24) + lengthBytes[1] = byte(length >> 16) + lengthBytes[2] = byte(length >> 8) + lengthBytes[3] = byte(length) + return to +} + +func writeInt(w io.Writer, n *big.Int) { + length := intLength(n) + buf := make([]byte, length) + marshalInt(buf, n) + w.Write(buf) +} + +func writeString(w io.Writer, s []byte) { + var lengthBytes [4]byte + lengthBytes[0] = byte(len(s) >> 24) + lengthBytes[1] = byte(len(s) >> 16) + lengthBytes[2] = byte(len(s) >> 8) + lengthBytes[3] = byte(len(s)) + w.Write(lengthBytes[:]) + w.Write(s) +} + +func stringLength(n int) int { + return 4 + n +} + +func marshalString(to []byte, s []byte) []byte { + to[0] = byte(len(s) >> 24) + to[1] = byte(len(s) >> 16) + to[2] = byte(len(s) >> 8) + to[3] = byte(len(s)) + to = to[4:] + copy(to, s) + return to[len(s):] +} + +var bigIntType = reflect.TypeOf((*big.Int)(nil)) + +// Decode a packet into its corresponding message. +func decode(packet []byte) (interface{}, error) { + var msg interface{} + switch packet[0] { + case msgDisconnect: + msg = new(disconnectMsg) + case msgServiceRequest: + msg = new(serviceRequestMsg) + case msgServiceAccept: + msg = new(serviceAcceptMsg) + case msgKexInit: + msg = new(kexInitMsg) + case msgKexDHInit: + msg = new(kexDHInitMsg) + case msgKexDHReply: + msg = new(kexDHReplyMsg) + case msgUserAuthRequest: + msg = new(userAuthRequestMsg) + case msgUserAuthFailure: + msg = new(userAuthFailureMsg) + case msgUserAuthPubKeyOk: + msg = new(userAuthPubKeyOkMsg) + case msgGlobalRequest: + msg = new(globalRequestMsg) + case msgRequestSuccess: + msg = new(globalRequestSuccessMsg) + case msgRequestFailure: + msg = new(globalRequestFailureMsg) + case msgChannelOpen: + msg = new(channelOpenMsg) + case msgChannelOpenConfirm: + msg = new(channelOpenConfirmMsg) + case msgChannelOpenFailure: + msg = new(channelOpenFailureMsg) + case msgChannelWindowAdjust: + msg = new(windowAdjustMsg) + case msgChannelEOF: + msg = new(channelEOFMsg) + case msgChannelClose: + msg = new(channelCloseMsg) + case msgChannelRequest: + msg = new(channelRequestMsg) + case msgChannelSuccess: + msg = new(channelRequestSuccessMsg) + case msgChannelFailure: + msg = new(channelRequestFailureMsg) + default: + return nil, unexpectedMessageError(0, packet[0]) + } + if err := Unmarshal(packet, msg); err != nil { + return nil, err + } + return msg, nil +} diff --git a/modules/crypto/ssh/messages_test.go b/modules/crypto/ssh/messages_test.go new file mode 100755 index 000000000..955b5127f --- /dev/null +++ b/modules/crypto/ssh/messages_test.go @@ -0,0 +1,254 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "math/big" + "math/rand" + "reflect" + "testing" + "testing/quick" +) + +var intLengthTests = []struct { + val, length int +}{ + {0, 4 + 0}, + {1, 4 + 1}, + {127, 4 + 1}, + {128, 4 + 2}, + {-1, 4 + 1}, +} + +func TestIntLength(t *testing.T) { + for _, test := range intLengthTests { + v := new(big.Int).SetInt64(int64(test.val)) + length := intLength(v) + if length != test.length { + t.Errorf("For %d, got length %d but expected %d", test.val, length, test.length) + } + } +} + +type msgAllTypes struct { + Bool bool `sshtype:"21"` + Array [16]byte + Uint64 uint64 + Uint32 uint32 + Uint8 uint8 + String string + Strings []string + Bytes []byte + Int *big.Int + Rest []byte `ssh:"rest"` +} + +func (t *msgAllTypes) Generate(rand *rand.Rand, size int) reflect.Value { + m := &msgAllTypes{} + m.Bool = rand.Intn(2) == 1 + randomBytes(m.Array[:], rand) + m.Uint64 = uint64(rand.Int63n(1<<63 - 1)) + m.Uint32 = uint32(rand.Intn((1 << 31) - 1)) + m.Uint8 = uint8(rand.Intn(1 << 8)) + m.String = string(m.Array[:]) + m.Strings = randomNameList(rand) + m.Bytes = m.Array[:] + m.Int = randomInt(rand) + m.Rest = m.Array[:] + return reflect.ValueOf(m) +} + +func TestMarshalUnmarshal(t *testing.T) { + rand := rand.New(rand.NewSource(0)) + iface := &msgAllTypes{} + ty := reflect.ValueOf(iface).Type() + + n := 100 + if testing.Short() { + n = 5 + } + for j := 0; j < n; j++ { + v, ok := quick.Value(ty, rand) + if !ok { + t.Errorf("failed to create value") + break + } + + m1 := v.Elem().Interface() + m2 := iface + + marshaled := Marshal(m1) + if err := Unmarshal(marshaled, m2); err != nil { + t.Errorf("Unmarshal %#v: %s", m1, err) + break + } + + if !reflect.DeepEqual(v.Interface(), m2) { + t.Errorf("got: %#v\nwant:%#v\n%x", m2, m1, marshaled) + break + } + } +} + +func TestUnmarshalEmptyPacket(t *testing.T) { + var b []byte + var m channelRequestSuccessMsg + if err := Unmarshal(b, &m); err == nil { + t.Fatalf("unmarshal of empty slice succeeded") + } +} + +func TestUnmarshalUnexpectedPacket(t *testing.T) { + type S struct { + I uint32 `sshtype:"43"` + S string + B bool + } + + s := S{11, "hello", true} + packet := Marshal(s) + packet[0] = 42 + roundtrip := S{} + err := Unmarshal(packet, &roundtrip) + if err == nil { + t.Fatal("expected error, not nil") + } +} + +func TestMarshalPtr(t *testing.T) { + s := struct { + S string + }{"hello"} + + m1 := Marshal(s) + m2 := Marshal(&s) + if !bytes.Equal(m1, m2) { + t.Errorf("got %q, want %q for marshaled pointer", m2, m1) + } +} + +func TestBareMarshalUnmarshal(t *testing.T) { + type S struct { + I uint32 + S string + B bool + } + + s := S{42, "hello", true} + packet := Marshal(s) + roundtrip := S{} + Unmarshal(packet, &roundtrip) + + if !reflect.DeepEqual(s, roundtrip) { + t.Errorf("got %#v, want %#v", roundtrip, s) + } +} + +func TestBareMarshal(t *testing.T) { + type S2 struct { + I uint32 + } + s := S2{42} + packet := Marshal(s) + i, rest, ok := parseUint32(packet) + if len(rest) > 0 || !ok { + t.Errorf("parseInt(%q): parse error", packet) + } + if i != s.I { + t.Errorf("got %d, want %d", i, s.I) + } +} + +func TestUnmarshalShortKexInitPacket(t *testing.T) { + // This used to panic. + // Issue 11348 + packet := []byte{0x14, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xff, 0xff, 0xff, 0xff} + kim := &kexInitMsg{} + if err := Unmarshal(packet, kim); err == nil { + t.Error("truncated packet unmarshaled without error") + } +} + +func randomBytes(out []byte, rand *rand.Rand) { + for i := 0; i < len(out); i++ { + out[i] = byte(rand.Int31()) + } +} + +func randomNameList(rand *rand.Rand) []string { + ret := make([]string, rand.Int31()&15) + for i := range ret { + s := make([]byte, 1+(rand.Int31()&15)) + for j := range s { + s[j] = 'a' + uint8(rand.Int31()&15) + } + ret[i] = string(s) + } + return ret +} + +func randomInt(rand *rand.Rand) *big.Int { + return new(big.Int).SetInt64(int64(int32(rand.Uint32()))) +} + +func (*kexInitMsg) Generate(rand *rand.Rand, size int) reflect.Value { + ki := &kexInitMsg{} + randomBytes(ki.Cookie[:], rand) + ki.KexAlgos = randomNameList(rand) + ki.ServerHostKeyAlgos = randomNameList(rand) + ki.CiphersClientServer = randomNameList(rand) + ki.CiphersServerClient = randomNameList(rand) + ki.MACsClientServer = randomNameList(rand) + ki.MACsServerClient = randomNameList(rand) + ki.CompressionClientServer = randomNameList(rand) + ki.CompressionServerClient = randomNameList(rand) + ki.LanguagesClientServer = randomNameList(rand) + ki.LanguagesServerClient = randomNameList(rand) + if rand.Int31()&1 == 1 { + ki.FirstKexFollows = true + } + return reflect.ValueOf(ki) +} + +func (*kexDHInitMsg) Generate(rand *rand.Rand, size int) reflect.Value { + dhi := &kexDHInitMsg{} + dhi.X = randomInt(rand) + return reflect.ValueOf(dhi) +} + +var ( + _kexInitMsg = new(kexInitMsg).Generate(rand.New(rand.NewSource(0)), 10).Elem().Interface() + _kexDHInitMsg = new(kexDHInitMsg).Generate(rand.New(rand.NewSource(0)), 10).Elem().Interface() + + _kexInit = Marshal(_kexInitMsg) + _kexDHInit = Marshal(_kexDHInitMsg) +) + +func BenchmarkMarshalKexInitMsg(b *testing.B) { + for i := 0; i < b.N; i++ { + Marshal(_kexInitMsg) + } +} + +func BenchmarkUnmarshalKexInitMsg(b *testing.B) { + m := new(kexInitMsg) + for i := 0; i < b.N; i++ { + Unmarshal(_kexInit, m) + } +} + +func BenchmarkMarshalKexDHInitMsg(b *testing.B) { + for i := 0; i < b.N; i++ { + Marshal(_kexDHInitMsg) + } +} + +func BenchmarkUnmarshalKexDHInitMsg(b *testing.B) { + m := new(kexDHInitMsg) + for i := 0; i < b.N; i++ { + Unmarshal(_kexDHInit, m) + } +} diff --git a/modules/crypto/ssh/mux.go b/modules/crypto/ssh/mux.go new file mode 100755 index 000000000..321880ad9 --- /dev/null +++ b/modules/crypto/ssh/mux.go @@ -0,0 +1,356 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "encoding/binary" + "fmt" + "io" + "log" + "sync" + "sync/atomic" +) + +// debugMux, if set, causes messages in the connection protocol to be +// logged. +const debugMux = false + +// chanList is a thread safe channel list. +type chanList struct { + // protects concurrent access to chans + sync.Mutex + + // chans are indexed by the local id of the channel, which the + // other side should send in the PeersId field. + chans []*channel + + // This is a debugging aid: it offsets all IDs by this + // amount. This helps distinguish otherwise identical + // server/client muxes + offset uint32 +} + +// Assigns a channel ID to the given channel. +func (c *chanList) add(ch *channel) uint32 { + c.Lock() + defer c.Unlock() + for i := range c.chans { + if c.chans[i] == nil { + c.chans[i] = ch + return uint32(i) + c.offset + } + } + c.chans = append(c.chans, ch) + return uint32(len(c.chans)-1) + c.offset +} + +// getChan returns the channel for the given ID. +func (c *chanList) getChan(id uint32) *channel { + id -= c.offset + + c.Lock() + defer c.Unlock() + if id < uint32(len(c.chans)) { + return c.chans[id] + } + return nil +} + +func (c *chanList) remove(id uint32) { + id -= c.offset + c.Lock() + if id < uint32(len(c.chans)) { + c.chans[id] = nil + } + c.Unlock() +} + +// dropAll forgets all channels it knows, returning them in a slice. +func (c *chanList) dropAll() []*channel { + c.Lock() + defer c.Unlock() + var r []*channel + + for _, ch := range c.chans { + if ch == nil { + continue + } + r = append(r, ch) + } + c.chans = nil + return r +} + +// mux represents the state for the SSH connection protocol, which +// multiplexes many channels onto a single packet transport. +type mux struct { + conn packetConn + chanList chanList + + incomingChannels chan NewChannel + + globalSentMu sync.Mutex + globalResponses chan interface{} + incomingRequests chan *Request + + errCond *sync.Cond + err error +} + +// When debugging, each new chanList instantiation has a different +// offset. +var globalOff uint32 + +func (m *mux) Wait() error { + m.errCond.L.Lock() + defer m.errCond.L.Unlock() + for m.err == nil { + m.errCond.Wait() + } + return m.err +} + +// newMux returns a mux that runs over the given connection. +func newMux(p packetConn) *mux { + m := &mux{ + conn: p, + incomingChannels: make(chan NewChannel, 16), + globalResponses: make(chan interface{}, 1), + incomingRequests: make(chan *Request, 16), + errCond: newCond(), + } + if debugMux { + m.chanList.offset = atomic.AddUint32(&globalOff, 1) + } + + go m.loop() + return m +} + +func (m *mux) sendMessage(msg interface{}) error { + p := Marshal(msg) + return m.conn.writePacket(p) +} + +func (m *mux) SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) { + if wantReply { + m.globalSentMu.Lock() + defer m.globalSentMu.Unlock() + } + + if err := m.sendMessage(globalRequestMsg{ + Type: name, + WantReply: wantReply, + Data: payload, + }); err != nil { + return false, nil, err + } + + if !wantReply { + return false, nil, nil + } + + msg, ok := <-m.globalResponses + if !ok { + return false, nil, io.EOF + } + switch msg := msg.(type) { + case *globalRequestFailureMsg: + return false, msg.Data, nil + case *globalRequestSuccessMsg: + return true, msg.Data, nil + default: + return false, nil, fmt.Errorf("ssh: unexpected response to request: %#v", msg) + } +} + +// ackRequest must be called after processing a global request that +// has WantReply set. +func (m *mux) ackRequest(ok bool, data []byte) error { + if ok { + return m.sendMessage(globalRequestSuccessMsg{Data: data}) + } + return m.sendMessage(globalRequestFailureMsg{Data: data}) +} + +// TODO(hanwen): Disconnect is a transport layer message. We should +// probably send and receive Disconnect somewhere in the transport +// code. + +// Disconnect sends a disconnect message. +func (m *mux) Disconnect(reason uint32, message string) error { + return m.sendMessage(disconnectMsg{ + Reason: reason, + Message: message, + }) +} + +func (m *mux) Close() error { + return m.conn.Close() +} + +// loop runs the connection machine. It will process packets until an +// error is encountered. To synchronize on loop exit, use mux.Wait. +func (m *mux) loop() { + var err error + for err == nil { + err = m.onePacket() + } + + for _, ch := range m.chanList.dropAll() { + ch.close() + } + + close(m.incomingChannels) + close(m.incomingRequests) + close(m.globalResponses) + + m.conn.Close() + + m.errCond.L.Lock() + m.err = err + m.errCond.Broadcast() + m.errCond.L.Unlock() + + if debugMux { + log.Println("loop exit", err) + } +} + +// onePacket reads and processes one packet. +func (m *mux) onePacket() error { + packet, err := m.conn.readPacket() + if err != nil { + return err + } + + if debugMux { + if packet[0] == msgChannelData || packet[0] == msgChannelExtendedData { + log.Printf("decoding(%d): data packet - %d bytes", m.chanList.offset, len(packet)) + } else { + p, _ := decode(packet) + log.Printf("decoding(%d): %d %#v - %d bytes", m.chanList.offset, packet[0], p, len(packet)) + } + } + + switch packet[0] { + case msgNewKeys: + // Ignore notification of key change. + return nil + case msgDisconnect: + return m.handleDisconnect(packet) + case msgChannelOpen: + return m.handleChannelOpen(packet) + case msgGlobalRequest, msgRequestSuccess, msgRequestFailure: + return m.handleGlobalPacket(packet) + } + + // assume a channel packet. + if len(packet) < 5 { + return parseError(packet[0]) + } + id := binary.BigEndian.Uint32(packet[1:]) + ch := m.chanList.getChan(id) + if ch == nil { + return fmt.Errorf("ssh: invalid channel %d", id) + } + + return ch.handlePacket(packet) +} + +func (m *mux) handleDisconnect(packet []byte) error { + var d disconnectMsg + if err := Unmarshal(packet, &d); err != nil { + return err + } + + if debugMux { + log.Printf("caught disconnect: %v", d) + } + return &d +} + +func (m *mux) handleGlobalPacket(packet []byte) error { + msg, err := decode(packet) + if err != nil { + return err + } + + switch msg := msg.(type) { + case *globalRequestMsg: + m.incomingRequests <- &Request{ + Type: msg.Type, + WantReply: msg.WantReply, + Payload: msg.Data, + mux: m, + } + case *globalRequestSuccessMsg, *globalRequestFailureMsg: + m.globalResponses <- msg + default: + panic(fmt.Sprintf("not a global message %#v", msg)) + } + + return nil +} + +// handleChannelOpen schedules a channel to be Accept()ed. +func (m *mux) handleChannelOpen(packet []byte) error { + var msg channelOpenMsg + if err := Unmarshal(packet, &msg); err != nil { + return err + } + + if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { + failMsg := channelOpenFailureMsg{ + PeersId: msg.PeersId, + Reason: ConnectionFailed, + Message: "invalid request", + Language: "en_US.UTF-8", + } + return m.sendMessage(failMsg) + } + + c := m.newChannel(msg.ChanType, channelInbound, msg.TypeSpecificData) + c.remoteId = msg.PeersId + c.maxRemotePayload = msg.MaxPacketSize + c.remoteWin.add(msg.PeersWindow) + m.incomingChannels <- c + return nil +} + +func (m *mux) OpenChannel(chanType string, extra []byte) (Channel, <-chan *Request, error) { + ch, err := m.openChannel(chanType, extra) + if err != nil { + return nil, nil, err + } + + return ch, ch.incomingRequests, nil +} + +func (m *mux) openChannel(chanType string, extra []byte) (*channel, error) { + ch := m.newChannel(chanType, channelOutbound, extra) + + ch.maxIncomingPayload = channelMaxPacket + + open := channelOpenMsg{ + ChanType: chanType, + PeersWindow: ch.myWindow, + MaxPacketSize: ch.maxIncomingPayload, + TypeSpecificData: extra, + PeersId: ch.localId, + } + if err := m.sendMessage(open); err != nil { + return nil, err + } + + switch msg := (<-ch.msg).(type) { + case *channelOpenConfirmMsg: + return ch, nil + case *channelOpenFailureMsg: + return nil, &OpenChannelError{msg.Reason, msg.Message} + default: + return nil, fmt.Errorf("ssh: unexpected packet in response to channel open: %T", msg) + } +} diff --git a/modules/crypto/ssh/mux_test.go b/modules/crypto/ssh/mux_test.go new file mode 100755 index 000000000..523038960 --- /dev/null +++ b/modules/crypto/ssh/mux_test.go @@ -0,0 +1,525 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "io" + "io/ioutil" + "sync" + "testing" +) + +func muxPair() (*mux, *mux) { + a, b := memPipe() + + s := newMux(a) + c := newMux(b) + + return s, c +} + +// Returns both ends of a channel, and the mux for the the 2nd +// channel. +func channelPair(t *testing.T) (*channel, *channel, *mux) { + c, s := muxPair() + + res := make(chan *channel, 1) + go func() { + newCh, ok := <-s.incomingChannels + if !ok { + t.Fatalf("No incoming channel") + } + if newCh.ChannelType() != "chan" { + t.Fatalf("got type %q want chan", newCh.ChannelType()) + } + ch, _, err := newCh.Accept() + if err != nil { + t.Fatalf("Accept %v", err) + } + res <- ch.(*channel) + }() + + ch, err := c.openChannel("chan", nil) + if err != nil { + t.Fatalf("OpenChannel: %v", err) + } + + return <-res, ch, c +} + +// Test that stderr and stdout can be addressed from different +// goroutines. This is intended for use with the race detector. +func TestMuxChannelExtendedThreadSafety(t *testing.T) { + writer, reader, mux := channelPair(t) + defer writer.Close() + defer reader.Close() + defer mux.Close() + + var wr, rd sync.WaitGroup + magic := "hello world" + + wr.Add(2) + go func() { + io.WriteString(writer, magic) + wr.Done() + }() + go func() { + io.WriteString(writer.Stderr(), magic) + wr.Done() + }() + + rd.Add(2) + go func() { + c, err := ioutil.ReadAll(reader) + if string(c) != magic { + t.Fatalf("stdout read got %q, want %q (error %s)", c, magic, err) + } + rd.Done() + }() + go func() { + c, err := ioutil.ReadAll(reader.Stderr()) + if string(c) != magic { + t.Fatalf("stderr read got %q, want %q (error %s)", c, magic, err) + } + rd.Done() + }() + + wr.Wait() + writer.CloseWrite() + rd.Wait() +} + +func TestMuxReadWrite(t *testing.T) { + s, c, mux := channelPair(t) + defer s.Close() + defer c.Close() + defer mux.Close() + + magic := "hello world" + magicExt := "hello stderr" + go func() { + _, err := s.Write([]byte(magic)) + if err != nil { + t.Fatalf("Write: %v", err) + } + _, err = s.Extended(1).Write([]byte(magicExt)) + if err != nil { + t.Fatalf("Write: %v", err) + } + err = s.Close() + if err != nil { + t.Fatalf("Close: %v", err) + } + }() + + var buf [1024]byte + n, err := c.Read(buf[:]) + if err != nil { + t.Fatalf("server Read: %v", err) + } + got := string(buf[:n]) + if got != magic { + t.Fatalf("server: got %q want %q", got, magic) + } + + n, err = c.Extended(1).Read(buf[:]) + if err != nil { + t.Fatalf("server Read: %v", err) + } + + got = string(buf[:n]) + if got != magicExt { + t.Fatalf("server: got %q want %q", got, magic) + } +} + +func TestMuxChannelOverflow(t *testing.T) { + reader, writer, mux := channelPair(t) + defer reader.Close() + defer writer.Close() + defer mux.Close() + + wDone := make(chan int, 1) + go func() { + if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { + t.Errorf("could not fill window: %v", err) + } + writer.Write(make([]byte, 1)) + wDone <- 1 + }() + writer.remoteWin.waitWriterBlocked() + + // Send 1 byte. + packet := make([]byte, 1+4+4+1) + packet[0] = msgChannelData + marshalUint32(packet[1:], writer.remoteId) + marshalUint32(packet[5:], uint32(1)) + packet[9] = 42 + + if err := writer.mux.conn.writePacket(packet); err != nil { + t.Errorf("could not send packet") + } + if _, err := reader.SendRequest("hello", true, nil); err == nil { + t.Errorf("SendRequest succeeded.") + } + <-wDone +} + +func TestMuxChannelCloseWriteUnblock(t *testing.T) { + reader, writer, mux := channelPair(t) + defer reader.Close() + defer writer.Close() + defer mux.Close() + + wDone := make(chan int, 1) + go func() { + if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { + t.Errorf("could not fill window: %v", err) + } + if _, err := writer.Write(make([]byte, 1)); err != io.EOF { + t.Errorf("got %v, want EOF for unblock write", err) + } + wDone <- 1 + }() + + writer.remoteWin.waitWriterBlocked() + reader.Close() + <-wDone +} + +func TestMuxConnectionCloseWriteUnblock(t *testing.T) { + reader, writer, mux := channelPair(t) + defer reader.Close() + defer writer.Close() + defer mux.Close() + + wDone := make(chan int, 1) + go func() { + if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { + t.Errorf("could not fill window: %v", err) + } + if _, err := writer.Write(make([]byte, 1)); err != io.EOF { + t.Errorf("got %v, want EOF for unblock write", err) + } + wDone <- 1 + }() + + writer.remoteWin.waitWriterBlocked() + mux.Close() + <-wDone +} + +func TestMuxReject(t *testing.T) { + client, server := muxPair() + defer server.Close() + defer client.Close() + + go func() { + ch, ok := <-server.incomingChannels + if !ok { + t.Fatalf("Accept") + } + if ch.ChannelType() != "ch" || string(ch.ExtraData()) != "extra" { + t.Fatalf("unexpected channel: %q, %q", ch.ChannelType(), ch.ExtraData()) + } + ch.Reject(RejectionReason(42), "message") + }() + + ch, err := client.openChannel("ch", []byte("extra")) + if ch != nil { + t.Fatal("openChannel not rejected") + } + + ocf, ok := err.(*OpenChannelError) + if !ok { + t.Errorf("got %#v want *OpenChannelError", err) + } else if ocf.Reason != 42 || ocf.Message != "message" { + t.Errorf("got %#v, want {Reason: 42, Message: %q}", ocf, "message") + } + + want := "ssh: rejected: unknown reason 42 (message)" + if err.Error() != want { + t.Errorf("got %q, want %q", err.Error(), want) + } +} + +func TestMuxChannelRequest(t *testing.T) { + client, server, mux := channelPair(t) + defer server.Close() + defer client.Close() + defer mux.Close() + + var received int + var wg sync.WaitGroup + wg.Add(1) + go func() { + for r := range server.incomingRequests { + received++ + r.Reply(r.Type == "yes", nil) + } + wg.Done() + }() + _, err := client.SendRequest("yes", false, nil) + if err != nil { + t.Fatalf("SendRequest: %v", err) + } + ok, err := client.SendRequest("yes", true, nil) + if err != nil { + t.Fatalf("SendRequest: %v", err) + } + + if !ok { + t.Errorf("SendRequest(yes): %v", ok) + + } + + ok, err = client.SendRequest("no", true, nil) + if err != nil { + t.Fatalf("SendRequest: %v", err) + } + if ok { + t.Errorf("SendRequest(no): %v", ok) + + } + + client.Close() + wg.Wait() + + if received != 3 { + t.Errorf("got %d requests, want %d", received, 3) + } +} + +func TestMuxGlobalRequest(t *testing.T) { + clientMux, serverMux := muxPair() + defer serverMux.Close() + defer clientMux.Close() + + var seen bool + go func() { + for r := range serverMux.incomingRequests { + seen = seen || r.Type == "peek" + if r.WantReply { + err := r.Reply(r.Type == "yes", + append([]byte(r.Type), r.Payload...)) + if err != nil { + t.Errorf("AckRequest: %v", err) + } + } + } + }() + + _, _, err := clientMux.SendRequest("peek", false, nil) + if err != nil { + t.Errorf("SendRequest: %v", err) + } + + ok, data, err := clientMux.SendRequest("yes", true, []byte("a")) + if !ok || string(data) != "yesa" || err != nil { + t.Errorf("SendRequest(\"yes\", true, \"a\"): %v %v %v", + ok, data, err) + } + if ok, data, err := clientMux.SendRequest("yes", true, []byte("a")); !ok || string(data) != "yesa" || err != nil { + t.Errorf("SendRequest(\"yes\", true, \"a\"): %v %v %v", + ok, data, err) + } + + if ok, data, err := clientMux.SendRequest("no", true, []byte("a")); ok || string(data) != "noa" || err != nil { + t.Errorf("SendRequest(\"no\", true, \"a\"): %v %v %v", + ok, data, err) + } + + clientMux.Disconnect(0, "") + if !seen { + t.Errorf("never saw 'peek' request") + } +} + +func TestMuxGlobalRequestUnblock(t *testing.T) { + clientMux, serverMux := muxPair() + defer serverMux.Close() + defer clientMux.Close() + + result := make(chan error, 1) + go func() { + _, _, err := clientMux.SendRequest("hello", true, nil) + result <- err + }() + + <-serverMux.incomingRequests + serverMux.conn.Close() + err := <-result + + if err != io.EOF { + t.Errorf("want EOF, got %v", io.EOF) + } +} + +func TestMuxChannelRequestUnblock(t *testing.T) { + a, b, connB := channelPair(t) + defer a.Close() + defer b.Close() + defer connB.Close() + + result := make(chan error, 1) + go func() { + _, err := a.SendRequest("hello", true, nil) + result <- err + }() + + <-b.incomingRequests + connB.conn.Close() + err := <-result + + if err != io.EOF { + t.Errorf("want EOF, got %v", err) + } +} + +func TestMuxDisconnect(t *testing.T) { + a, b := muxPair() + defer a.Close() + defer b.Close() + + go func() { + for r := range b.incomingRequests { + r.Reply(true, nil) + } + }() + + a.Disconnect(42, "whatever") + ok, _, err := a.SendRequest("hello", true, nil) + if ok || err == nil { + t.Errorf("got reply after disconnecting") + } + err = b.Wait() + if d, ok := err.(*disconnectMsg); !ok || d.Reason != 42 { + t.Errorf("got %#v, want disconnectMsg{Reason:42}", err) + } +} + +func TestMuxCloseChannel(t *testing.T) { + r, w, mux := channelPair(t) + defer mux.Close() + defer r.Close() + defer w.Close() + + result := make(chan error, 1) + go func() { + var b [1024]byte + _, err := r.Read(b[:]) + result <- err + }() + if err := w.Close(); err != nil { + t.Errorf("w.Close: %v", err) + } + + if _, err := w.Write([]byte("hello")); err != io.EOF { + t.Errorf("got err %v, want io.EOF after Close", err) + } + + if err := <-result; err != io.EOF { + t.Errorf("got %v (%T), want io.EOF", err, err) + } +} + +func TestMuxCloseWriteChannel(t *testing.T) { + r, w, mux := channelPair(t) + defer mux.Close() + + result := make(chan error, 1) + go func() { + var b [1024]byte + _, err := r.Read(b[:]) + result <- err + }() + if err := w.CloseWrite(); err != nil { + t.Errorf("w.CloseWrite: %v", err) + } + + if _, err := w.Write([]byte("hello")); err != io.EOF { + t.Errorf("got err %v, want io.EOF after CloseWrite", err) + } + + if err := <-result; err != io.EOF { + t.Errorf("got %v (%T), want io.EOF", err, err) + } +} + +func TestMuxInvalidRecord(t *testing.T) { + a, b := muxPair() + defer a.Close() + defer b.Close() + + packet := make([]byte, 1+4+4+1) + packet[0] = msgChannelData + marshalUint32(packet[1:], 29348723 /* invalid channel id */) + marshalUint32(packet[5:], 1) + packet[9] = 42 + + a.conn.writePacket(packet) + go a.SendRequest("hello", false, nil) + // 'a' wrote an invalid packet, so 'b' has exited. + req, ok := <-b.incomingRequests + if ok { + t.Errorf("got request %#v after receiving invalid packet", req) + } +} + +func TestZeroWindowAdjust(t *testing.T) { + a, b, mux := channelPair(t) + defer a.Close() + defer b.Close() + defer mux.Close() + + go func() { + io.WriteString(a, "hello") + // bogus adjust. + a.sendMessage(windowAdjustMsg{}) + io.WriteString(a, "world") + a.Close() + }() + + want := "helloworld" + c, _ := ioutil.ReadAll(b) + if string(c) != want { + t.Errorf("got %q want %q", c, want) + } +} + +func TestMuxMaxPacketSize(t *testing.T) { + a, b, mux := channelPair(t) + defer a.Close() + defer b.Close() + defer mux.Close() + + large := make([]byte, a.maxRemotePayload+1) + packet := make([]byte, 1+4+4+1+len(large)) + packet[0] = msgChannelData + marshalUint32(packet[1:], a.remoteId) + marshalUint32(packet[5:], uint32(len(large))) + packet[9] = 42 + + if err := a.mux.conn.writePacket(packet); err != nil { + t.Errorf("could not send packet") + } + + go a.SendRequest("hello", false, nil) + + _, ok := <-b.incomingRequests + if ok { + t.Errorf("connection still alive after receiving large packet.") + } +} + +// Don't ship code with debug=true. +func TestDebug(t *testing.T) { + if debugMux { + t.Error("mux debug switched on") + } + if debugHandshake { + t.Error("handshake debug switched on") + } +} diff --git a/modules/crypto/ssh/server.go b/modules/crypto/ssh/server.go new file mode 100755 index 000000000..baedf5bbe --- /dev/null +++ b/modules/crypto/ssh/server.go @@ -0,0 +1,493 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "errors" + "fmt" + "io" + "net" +) + +// The Permissions type holds fine-grained permissions that are +// specific to a user or a specific authentication method for a +// user. Permissions, except for "source-address", must be enforced in +// the server application layer, after successful authentication. The +// Permissions are passed on in ServerConn so a server implementation +// can honor them. +type Permissions struct { + // Critical options restrict default permissions. Common + // restrictions are "source-address" and "force-command". If + // the server cannot enforce the restriction, or does not + // recognize it, the user should not authenticate. + CriticalOptions map[string]string + + // Extensions are extra functionality that the server may + // offer on authenticated connections. Common extensions are + // "permit-agent-forwarding", "permit-X11-forwarding". Lack of + // support for an extension does not preclude authenticating a + // user. + Extensions map[string]string +} + +// ServerConfig holds server specific configuration data. +type ServerConfig struct { + // Config contains configuration shared between client and server. + Config + + hostKeys []Signer + + // NoClientAuth is true if clients are allowed to connect without + // authenticating. + NoClientAuth bool + + // PasswordCallback, if non-nil, is called when a user + // attempts to authenticate using a password. + PasswordCallback func(conn ConnMetadata, password []byte) (*Permissions, error) + + // PublicKeyCallback, if non-nil, is called when a client attempts public + // key authentication. It must return true if the given public key is + // valid for the given user. For example, see CertChecker.Authenticate. + PublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) + + // KeyboardInteractiveCallback, if non-nil, is called when + // keyboard-interactive authentication is selected (RFC + // 4256). The client object's Challenge function should be + // used to query the user. The callback may offer multiple + // Challenge rounds. To avoid information leaks, the client + // should be presented a challenge even if the user is + // unknown. + KeyboardInteractiveCallback func(conn ConnMetadata, client KeyboardInteractiveChallenge) (*Permissions, error) + + // AuthLogCallback, if non-nil, is called to log all authentication + // attempts. + AuthLogCallback func(conn ConnMetadata, method string, err error) + + // ServerVersion is the version identification string to + // announce in the public handshake. + // If empty, a reasonable default is used. + ServerVersion string +} + +// AddHostKey adds a private key as a host key. If an existing host +// key exists with the same algorithm, it is overwritten. Each server +// config must have at least one host key. +func (s *ServerConfig) AddHostKey(key Signer) { + for i, k := range s.hostKeys { + if k.PublicKey().Type() == key.PublicKey().Type() { + s.hostKeys[i] = key + return + } + } + + s.hostKeys = append(s.hostKeys, key) +} + +// cachedPubKey contains the results of querying whether a public key is +// acceptable for a user. +type cachedPubKey struct { + user string + pubKeyData []byte + result error + perms *Permissions +} + +const maxCachedPubKeys = 16 + +// pubKeyCache caches tests for public keys. Since SSH clients +// will query whether a public key is acceptable before attempting to +// authenticate with it, we end up with duplicate queries for public +// key validity. The cache only applies to a single ServerConn. +type pubKeyCache struct { + keys []cachedPubKey +} + +// get returns the result for a given user/algo/key tuple. +func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { + for _, k := range c.keys { + if k.user == user && bytes.Equal(k.pubKeyData, pubKeyData) { + return k, true + } + } + return cachedPubKey{}, false +} + +// add adds the given tuple to the cache. +func (c *pubKeyCache) add(candidate cachedPubKey) { + if len(c.keys) < maxCachedPubKeys { + c.keys = append(c.keys, candidate) + } +} + +// ServerConn is an authenticated SSH connection, as seen from the +// server +type ServerConn struct { + Conn + + // If the succeeding authentication callback returned a + // non-nil Permissions pointer, it is stored here. + Permissions *Permissions +} + +// NewServerConn starts a new SSH server with c as the underlying +// transport. It starts with a handshake and, if the handshake is +// unsuccessful, it closes the connection and returns an error. The +// Request and NewChannel channels must be serviced, or the connection +// will hang. +func NewServerConn(c net.Conn, config *ServerConfig) (*ServerConn, <-chan NewChannel, <-chan *Request, error) { + fullConf := *config + fullConf.SetDefaults() + s := &connection{ + sshConn: sshConn{conn: c}, + } + perms, err := s.serverHandshake(&fullConf) + if err != nil { + c.Close() + return nil, nil, nil, err + } + return &ServerConn{s, perms}, s.mux.incomingChannels, s.mux.incomingRequests, nil +} + +// signAndMarshal signs the data with the appropriate algorithm, +// and serializes the result in SSH wire format. +func signAndMarshal(k Signer, rand io.Reader, data []byte) ([]byte, error) { + sig, err := k.Sign(rand, data) + if err != nil { + return nil, err + } + + return Marshal(sig), nil +} + +// handshake performs key exchange and user authentication. +func (s *connection) serverHandshake(config *ServerConfig) (*Permissions, error) { + if len(config.hostKeys) == 0 { + return nil, errors.New("ssh: server has no host keys") + } + + if !config.NoClientAuth && config.PasswordCallback == nil && config.PublicKeyCallback == nil && config.KeyboardInteractiveCallback == nil { + return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") + } + + if config.ServerVersion != "" { + s.serverVersion = []byte(config.ServerVersion) + } else { + s.serverVersion = []byte(packageVersion) + } + var err error + s.clientVersion, err = exchangeVersions(s.sshConn.conn, s.serverVersion) + if err != nil { + return nil, err + } + + tr := newTransport(s.sshConn.conn, config.Rand, false /* not client */) + s.transport = newServerTransport(tr, s.clientVersion, s.serverVersion, config) + + if err := s.transport.requestKeyChange(); err != nil { + return nil, err + } + + if packet, err := s.transport.readPacket(); err != nil { + return nil, err + } else if packet[0] != msgNewKeys { + return nil, unexpectedMessageError(msgNewKeys, packet[0]) + } + + // We just did the key change, so the session ID is established. + s.sessionID = s.transport.getSessionID() + + var packet []byte + if packet, err = s.transport.readPacket(); err != nil { + return nil, err + } + + var serviceRequest serviceRequestMsg + if err = Unmarshal(packet, &serviceRequest); err != nil { + return nil, err + } + if serviceRequest.Service != serviceUserAuth { + return nil, errors.New("ssh: requested service '" + serviceRequest.Service + "' before authenticating") + } + serviceAccept := serviceAcceptMsg{ + Service: serviceUserAuth, + } + if err := s.transport.writePacket(Marshal(&serviceAccept)); err != nil { + return nil, err + } + + perms, err := s.serverAuthenticate(config) + if err != nil { + return nil, err + } + s.mux = newMux(s.transport) + return perms, err +} + +func isAcceptableAlgo(algo string) bool { + switch algo { + case KeyAlgoRSA, KeyAlgoDSA, KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, + CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01: + return true + } + return false +} + +func checkSourceAddress(addr net.Addr, sourceAddr string) error { + if addr == nil { + return errors.New("ssh: no address known for client, but source-address match required") + } + + tcpAddr, ok := addr.(*net.TCPAddr) + if !ok { + return fmt.Errorf("ssh: remote address %v is not an TCP address when checking source-address match", addr) + } + + if allowedIP := net.ParseIP(sourceAddr); allowedIP != nil { + if bytes.Equal(allowedIP, tcpAddr.IP) { + return nil + } + } else { + _, ipNet, err := net.ParseCIDR(sourceAddr) + if err != nil { + return fmt.Errorf("ssh: error parsing source-address restriction %q: %v", sourceAddr, err) + } + + if ipNet.Contains(tcpAddr.IP) { + return nil + } + } + + return fmt.Errorf("ssh: remote address %v is not allowed because of source-address restriction", addr) +} + +func (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, error) { + var err error + var cache pubKeyCache + var perms *Permissions + +userAuthLoop: + for { + var userAuthReq userAuthRequestMsg + if packet, err := s.transport.readPacket(); err != nil { + return nil, err + } else if err = Unmarshal(packet, &userAuthReq); err != nil { + return nil, err + } + + if userAuthReq.Service != serviceSSH { + return nil, errors.New("ssh: client attempted to negotiate for unknown service: " + userAuthReq.Service) + } + + s.user = userAuthReq.User + perms = nil + authErr := errors.New("no auth passed yet") + + switch userAuthReq.Method { + case "none": + if config.NoClientAuth { + s.user = "" + authErr = nil + } + case "password": + if config.PasswordCallback == nil { + authErr = errors.New("ssh: password auth not configured") + break + } + payload := userAuthReq.Payload + if len(payload) < 1 || payload[0] != 0 { + return nil, parseError(msgUserAuthRequest) + } + payload = payload[1:] + password, payload, ok := parseString(payload) + if !ok || len(payload) > 0 { + return nil, parseError(msgUserAuthRequest) + } + + perms, authErr = config.PasswordCallback(s, password) + case "keyboard-interactive": + if config.KeyboardInteractiveCallback == nil { + authErr = errors.New("ssh: keyboard-interactive auth not configubred") + break + } + + prompter := &sshClientKeyboardInteractive{s} + perms, authErr = config.KeyboardInteractiveCallback(s, prompter.Challenge) + case "publickey": + if config.PublicKeyCallback == nil { + authErr = errors.New("ssh: publickey auth not configured") + break + } + payload := userAuthReq.Payload + if len(payload) < 1 { + return nil, parseError(msgUserAuthRequest) + } + isQuery := payload[0] == 0 + payload = payload[1:] + algoBytes, payload, ok := parseString(payload) + if !ok { + return nil, parseError(msgUserAuthRequest) + } + algo := string(algoBytes) + if !isAcceptableAlgo(algo) { + authErr = fmt.Errorf("ssh: algorithm %q not accepted", algo) + break + } + + pubKeyData, payload, ok := parseString(payload) + if !ok { + return nil, parseError(msgUserAuthRequest) + } + + pubKey, err := ParsePublicKey(pubKeyData) + if err != nil { + return nil, err + } + + candidate, ok := cache.get(s.user, pubKeyData) + if !ok { + candidate.user = s.user + candidate.pubKeyData = pubKeyData + candidate.perms, candidate.result = config.PublicKeyCallback(s, pubKey) + if candidate.result == nil && candidate.perms != nil && candidate.perms.CriticalOptions != nil && candidate.perms.CriticalOptions[sourceAddressCriticalOption] != "" { + candidate.result = checkSourceAddress( + s.RemoteAddr(), + candidate.perms.CriticalOptions[sourceAddressCriticalOption]) + } + cache.add(candidate) + } + + if isQuery { + // The client can query if the given public key + // would be okay. + if len(payload) > 0 { + return nil, parseError(msgUserAuthRequest) + } + + if candidate.result == nil { + okMsg := userAuthPubKeyOkMsg{ + Algo: algo, + PubKey: pubKeyData, + } + if err = s.transport.writePacket(Marshal(&okMsg)); err != nil { + return nil, err + } + continue userAuthLoop + } + authErr = candidate.result + } else { + sig, payload, ok := parseSignature(payload) + if !ok || len(payload) > 0 { + return nil, parseError(msgUserAuthRequest) + } + // Ensure the public key algo and signature algo + // are supported. Compare the private key + // algorithm name that corresponds to algo with + // sig.Format. This is usually the same, but + // for certs, the names differ. + if !isAcceptableAlgo(sig.Format) { + break + } + signedData := buildDataSignedForAuth(s.transport.getSessionID(), userAuthReq, algoBytes, pubKeyData) + + if err := pubKey.Verify(signedData, sig); err != nil { + return nil, err + } + + authErr = candidate.result + perms = candidate.perms + } + default: + authErr = fmt.Errorf("ssh: unknown method %q", userAuthReq.Method) + } + + if config.AuthLogCallback != nil { + config.AuthLogCallback(s, userAuthReq.Method, authErr) + } + + if authErr == nil { + break userAuthLoop + } + + var failureMsg userAuthFailureMsg + if config.PasswordCallback != nil { + failureMsg.Methods = append(failureMsg.Methods, "password") + } + if config.PublicKeyCallback != nil { + failureMsg.Methods = append(failureMsg.Methods, "publickey") + } + if config.KeyboardInteractiveCallback != nil { + failureMsg.Methods = append(failureMsg.Methods, "keyboard-interactive") + } + + if len(failureMsg.Methods) == 0 { + return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") + } + + if err = s.transport.writePacket(Marshal(&failureMsg)); err != nil { + return nil, err + } + } + + if err = s.transport.writePacket([]byte{msgUserAuthSuccess}); err != nil { + return nil, err + } + return perms, nil +} + +// sshClientKeyboardInteractive implements a ClientKeyboardInteractive by +// asking the client on the other side of a ServerConn. +type sshClientKeyboardInteractive struct { + *connection +} + +func (c *sshClientKeyboardInteractive) Challenge(user, instruction string, questions []string, echos []bool) (answers []string, err error) { + if len(questions) != len(echos) { + return nil, errors.New("ssh: echos and questions must have equal length") + } + + var prompts []byte + for i := range questions { + prompts = appendString(prompts, questions[i]) + prompts = appendBool(prompts, echos[i]) + } + + if err := c.transport.writePacket(Marshal(&userAuthInfoRequestMsg{ + Instruction: instruction, + NumPrompts: uint32(len(questions)), + Prompts: prompts, + })); err != nil { + return nil, err + } + + packet, err := c.transport.readPacket() + if err != nil { + return nil, err + } + if packet[0] != msgUserAuthInfoResponse { + return nil, unexpectedMessageError(msgUserAuthInfoResponse, packet[0]) + } + packet = packet[1:] + + n, packet, ok := parseUint32(packet) + if !ok || int(n) != len(questions) { + return nil, parseError(msgUserAuthInfoResponse) + } + + for i := uint32(0); i < n; i++ { + ans, rest, ok := parseString(packet) + if !ok { + return nil, parseError(msgUserAuthInfoResponse) + } + + answers = append(answers, string(ans)) + packet = rest + } + if len(packet) != 0 { + return nil, errors.New("ssh: junk at end of message") + } + + return answers, nil +} diff --git a/modules/crypto/ssh/session.go b/modules/crypto/ssh/session.go new file mode 100755 index 000000000..3b42b508a --- /dev/null +++ b/modules/crypto/ssh/session.go @@ -0,0 +1,605 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +// Session implements an interactive session described in +// "RFC 4254, section 6". + +import ( + "bytes" + "errors" + "fmt" + "io" + "io/ioutil" + "sync" +) + +type Signal string + +// POSIX signals as listed in RFC 4254 Section 6.10. +const ( + SIGABRT Signal = "ABRT" + SIGALRM Signal = "ALRM" + SIGFPE Signal = "FPE" + SIGHUP Signal = "HUP" + SIGILL Signal = "ILL" + SIGINT Signal = "INT" + SIGKILL Signal = "KILL" + SIGPIPE Signal = "PIPE" + SIGQUIT Signal = "QUIT" + SIGSEGV Signal = "SEGV" + SIGTERM Signal = "TERM" + SIGUSR1 Signal = "USR1" + SIGUSR2 Signal = "USR2" +) + +var signals = map[Signal]int{ + SIGABRT: 6, + SIGALRM: 14, + SIGFPE: 8, + SIGHUP: 1, + SIGILL: 4, + SIGINT: 2, + SIGKILL: 9, + SIGPIPE: 13, + SIGQUIT: 3, + SIGSEGV: 11, + SIGTERM: 15, +} + +type TerminalModes map[uint8]uint32 + +// POSIX terminal mode flags as listed in RFC 4254 Section 8. +const ( + tty_OP_END = 0 + VINTR = 1 + VQUIT = 2 + VERASE = 3 + VKILL = 4 + VEOF = 5 + VEOL = 6 + VEOL2 = 7 + VSTART = 8 + VSTOP = 9 + VSUSP = 10 + VDSUSP = 11 + VREPRINT = 12 + VWERASE = 13 + VLNEXT = 14 + VFLUSH = 15 + VSWTCH = 16 + VSTATUS = 17 + VDISCARD = 18 + IGNPAR = 30 + PARMRK = 31 + INPCK = 32 + ISTRIP = 33 + INLCR = 34 + IGNCR = 35 + ICRNL = 36 + IUCLC = 37 + IXON = 38 + IXANY = 39 + IXOFF = 40 + IMAXBEL = 41 + ISIG = 50 + ICANON = 51 + XCASE = 52 + ECHO = 53 + ECHOE = 54 + ECHOK = 55 + ECHONL = 56 + NOFLSH = 57 + TOSTOP = 58 + IEXTEN = 59 + ECHOCTL = 60 + ECHOKE = 61 + PENDIN = 62 + OPOST = 70 + OLCUC = 71 + ONLCR = 72 + OCRNL = 73 + ONOCR = 74 + ONLRET = 75 + CS7 = 90 + CS8 = 91 + PARENB = 92 + PARODD = 93 + TTY_OP_ISPEED = 128 + TTY_OP_OSPEED = 129 +) + +// A Session represents a connection to a remote command or shell. +type Session struct { + // Stdin specifies the remote process's standard input. + // If Stdin is nil, the remote process reads from an empty + // bytes.Buffer. + Stdin io.Reader + + // Stdout and Stderr specify the remote process's standard + // output and error. + // + // If either is nil, Run connects the corresponding file + // descriptor to an instance of ioutil.Discard. There is a + // fixed amount of buffering that is shared for the two streams. + // If either blocks it may eventually cause the remote + // command to block. + Stdout io.Writer + Stderr io.Writer + + ch Channel // the channel backing this session + started bool // true once Start, Run or Shell is invoked. + copyFuncs []func() error + errors chan error // one send per copyFunc + + // true if pipe method is active + stdinpipe, stdoutpipe, stderrpipe bool + + // stdinPipeWriter is non-nil if StdinPipe has not been called + // and Stdin was specified by the user; it is the write end of + // a pipe connecting Session.Stdin to the stdin channel. + stdinPipeWriter io.WriteCloser + + exitStatus chan error +} + +// SendRequest sends an out-of-band channel request on the SSH channel +// underlying the session. +func (s *Session) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { + return s.ch.SendRequest(name, wantReply, payload) +} + +func (s *Session) Close() error { + return s.ch.Close() +} + +// RFC 4254 Section 6.4. +type setenvRequest struct { + Name string + Value string +} + +// Setenv sets an environment variable that will be applied to any +// command executed by Shell or Run. +func (s *Session) Setenv(name, value string) error { + msg := setenvRequest{ + Name: name, + Value: value, + } + ok, err := s.ch.SendRequest("env", true, Marshal(&msg)) + if err == nil && !ok { + err = errors.New("ssh: setenv failed") + } + return err +} + +// RFC 4254 Section 6.2. +type ptyRequestMsg struct { + Term string + Columns uint32 + Rows uint32 + Width uint32 + Height uint32 + Modelist string +} + +// RequestPty requests the association of a pty with the session on the remote host. +func (s *Session) RequestPty(term string, h, w int, termmodes TerminalModes) error { + var tm []byte + for k, v := range termmodes { + kv := struct { + Key byte + Val uint32 + }{k, v} + + tm = append(tm, Marshal(&kv)...) + } + tm = append(tm, tty_OP_END) + req := ptyRequestMsg{ + Term: term, + Columns: uint32(w), + Rows: uint32(h), + Width: uint32(w * 8), + Height: uint32(h * 8), + Modelist: string(tm), + } + ok, err := s.ch.SendRequest("pty-req", true, Marshal(&req)) + if err == nil && !ok { + err = errors.New("ssh: pty-req failed") + } + return err +} + +// RFC 4254 Section 6.5. +type subsystemRequestMsg struct { + Subsystem string +} + +// RequestSubsystem requests the association of a subsystem with the session on the remote host. +// A subsystem is a predefined command that runs in the background when the ssh session is initiated +func (s *Session) RequestSubsystem(subsystem string) error { + msg := subsystemRequestMsg{ + Subsystem: subsystem, + } + ok, err := s.ch.SendRequest("subsystem", true, Marshal(&msg)) + if err == nil && !ok { + err = errors.New("ssh: subsystem request failed") + } + return err +} + +// RFC 4254 Section 6.9. +type signalMsg struct { + Signal string +} + +// Signal sends the given signal to the remote process. +// sig is one of the SIG* constants. +func (s *Session) Signal(sig Signal) error { + msg := signalMsg{ + Signal: string(sig), + } + + _, err := s.ch.SendRequest("signal", false, Marshal(&msg)) + return err +} + +// RFC 4254 Section 6.5. +type execMsg struct { + Command string +} + +// Start runs cmd on the remote host. Typically, the remote +// server passes cmd to the shell for interpretation. +// A Session only accepts one call to Run, Start or Shell. +func (s *Session) Start(cmd string) error { + if s.started { + return errors.New("ssh: session already started") + } + req := execMsg{ + Command: cmd, + } + + ok, err := s.ch.SendRequest("exec", true, Marshal(&req)) + if err == nil && !ok { + err = fmt.Errorf("ssh: command %v failed", cmd) + } + if err != nil { + return err + } + return s.start() +} + +// Run runs cmd on the remote host. Typically, the remote +// server passes cmd to the shell for interpretation. +// A Session only accepts one call to Run, Start, Shell, Output, +// or CombinedOutput. +// +// The returned error is nil if the command runs, has no problems +// copying stdin, stdout, and stderr, and exits with a zero exit +// status. +// +// If the command fails to run or doesn't complete successfully, the +// error is of type *ExitError. Other error types may be +// returned for I/O problems. +func (s *Session) Run(cmd string) error { + err := s.Start(cmd) + if err != nil { + return err + } + return s.Wait() +} + +// Output runs cmd on the remote host and returns its standard output. +func (s *Session) Output(cmd string) ([]byte, error) { + if s.Stdout != nil { + return nil, errors.New("ssh: Stdout already set") + } + var b bytes.Buffer + s.Stdout = &b + err := s.Run(cmd) + return b.Bytes(), err +} + +type singleWriter struct { + b bytes.Buffer + mu sync.Mutex +} + +func (w *singleWriter) Write(p []byte) (int, error) { + w.mu.Lock() + defer w.mu.Unlock() + return w.b.Write(p) +} + +// CombinedOutput runs cmd on the remote host and returns its combined +// standard output and standard error. +func (s *Session) CombinedOutput(cmd string) ([]byte, error) { + if s.Stdout != nil { + return nil, errors.New("ssh: Stdout already set") + } + if s.Stderr != nil { + return nil, errors.New("ssh: Stderr already set") + } + var b singleWriter + s.Stdout = &b + s.Stderr = &b + err := s.Run(cmd) + return b.b.Bytes(), err +} + +// Shell starts a login shell on the remote host. A Session only +// accepts one call to Run, Start, Shell, Output, or CombinedOutput. +func (s *Session) Shell() error { + if s.started { + return errors.New("ssh: session already started") + } + + ok, err := s.ch.SendRequest("shell", true, nil) + if err == nil && !ok { + return fmt.Errorf("ssh: cound not start shell") + } + if err != nil { + return err + } + return s.start() +} + +func (s *Session) start() error { + s.started = true + + type F func(*Session) + for _, setupFd := range []F{(*Session).stdin, (*Session).stdout, (*Session).stderr} { + setupFd(s) + } + + s.errors = make(chan error, len(s.copyFuncs)) + for _, fn := range s.copyFuncs { + go func(fn func() error) { + s.errors <- fn() + }(fn) + } + return nil +} + +// Wait waits for the remote command to exit. +// +// The returned error is nil if the command runs, has no problems +// copying stdin, stdout, and stderr, and exits with a zero exit +// status. +// +// If the command fails to run or doesn't complete successfully, the +// error is of type *ExitError. Other error types may be +// returned for I/O problems. +func (s *Session) Wait() error { + if !s.started { + return errors.New("ssh: session not started") + } + waitErr := <-s.exitStatus + + if s.stdinPipeWriter != nil { + s.stdinPipeWriter.Close() + } + var copyError error + for _ = range s.copyFuncs { + if err := <-s.errors; err != nil && copyError == nil { + copyError = err + } + } + if waitErr != nil { + return waitErr + } + return copyError +} + +func (s *Session) wait(reqs <-chan *Request) error { + wm := Waitmsg{status: -1} + // Wait for msg channel to be closed before returning. + for msg := range reqs { + switch msg.Type { + case "exit-status": + d := msg.Payload + wm.status = int(d[0])<<24 | int(d[1])<<16 | int(d[2])<<8 | int(d[3]) + case "exit-signal": + var sigval struct { + Signal string + CoreDumped bool + Error string + Lang string + } + if err := Unmarshal(msg.Payload, &sigval); err != nil { + return err + } + + // Must sanitize strings? + wm.signal = sigval.Signal + wm.msg = sigval.Error + wm.lang = sigval.Lang + default: + // This handles keepalives and matches + // OpenSSH's behaviour. + if msg.WantReply { + msg.Reply(false, nil) + } + } + } + if wm.status == 0 { + return nil + } + if wm.status == -1 { + // exit-status was never sent from server + if wm.signal == "" { + return errors.New("wait: remote command exited without exit status or exit signal") + } + wm.status = 128 + if _, ok := signals[Signal(wm.signal)]; ok { + wm.status += signals[Signal(wm.signal)] + } + } + return &ExitError{wm} +} + +func (s *Session) stdin() { + if s.stdinpipe { + return + } + var stdin io.Reader + if s.Stdin == nil { + stdin = new(bytes.Buffer) + } else { + r, w := io.Pipe() + go func() { + _, err := io.Copy(w, s.Stdin) + w.CloseWithError(err) + }() + stdin, s.stdinPipeWriter = r, w + } + s.copyFuncs = append(s.copyFuncs, func() error { + _, err := io.Copy(s.ch, stdin) + if err1 := s.ch.CloseWrite(); err == nil && err1 != io.EOF { + err = err1 + } + return err + }) +} + +func (s *Session) stdout() { + if s.stdoutpipe { + return + } + if s.Stdout == nil { + s.Stdout = ioutil.Discard + } + s.copyFuncs = append(s.copyFuncs, func() error { + _, err := io.Copy(s.Stdout, s.ch) + return err + }) +} + +func (s *Session) stderr() { + if s.stderrpipe { + return + } + if s.Stderr == nil { + s.Stderr = ioutil.Discard + } + s.copyFuncs = append(s.copyFuncs, func() error { + _, err := io.Copy(s.Stderr, s.ch.Stderr()) + return err + }) +} + +// sessionStdin reroutes Close to CloseWrite. +type sessionStdin struct { + io.Writer + ch Channel +} + +func (s *sessionStdin) Close() error { + return s.ch.CloseWrite() +} + +// StdinPipe returns a pipe that will be connected to the +// remote command's standard input when the command starts. +func (s *Session) StdinPipe() (io.WriteCloser, error) { + if s.Stdin != nil { + return nil, errors.New("ssh: Stdin already set") + } + if s.started { + return nil, errors.New("ssh: StdinPipe after process started") + } + s.stdinpipe = true + return &sessionStdin{s.ch, s.ch}, nil +} + +// StdoutPipe returns a pipe that will be connected to the +// remote command's standard output when the command starts. +// There is a fixed amount of buffering that is shared between +// stdout and stderr streams. If the StdoutPipe reader is +// not serviced fast enough it may eventually cause the +// remote command to block. +func (s *Session) StdoutPipe() (io.Reader, error) { + if s.Stdout != nil { + return nil, errors.New("ssh: Stdout already set") + } + if s.started { + return nil, errors.New("ssh: StdoutPipe after process started") + } + s.stdoutpipe = true + return s.ch, nil +} + +// StderrPipe returns a pipe that will be connected to the +// remote command's standard error when the command starts. +// There is a fixed amount of buffering that is shared between +// stdout and stderr streams. If the StderrPipe reader is +// not serviced fast enough it may eventually cause the +// remote command to block. +func (s *Session) StderrPipe() (io.Reader, error) { + if s.Stderr != nil { + return nil, errors.New("ssh: Stderr already set") + } + if s.started { + return nil, errors.New("ssh: StderrPipe after process started") + } + s.stderrpipe = true + return s.ch.Stderr(), nil +} + +// newSession returns a new interactive session on the remote host. +func newSession(ch Channel, reqs <-chan *Request) (*Session, error) { + s := &Session{ + ch: ch, + } + s.exitStatus = make(chan error, 1) + go func() { + s.exitStatus <- s.wait(reqs) + }() + + return s, nil +} + +// An ExitError reports unsuccessful completion of a remote command. +type ExitError struct { + Waitmsg +} + +func (e *ExitError) Error() string { + return e.Waitmsg.String() +} + +// Waitmsg stores the information about an exited remote command +// as reported by Wait. +type Waitmsg struct { + status int + signal string + msg string + lang string +} + +// ExitStatus returns the exit status of the remote command. +func (w Waitmsg) ExitStatus() int { + return w.status +} + +// Signal returns the exit signal of the remote command if +// it was terminated violently. +func (w Waitmsg) Signal() string { + return w.signal +} + +// Msg returns the exit message given by the remote command +func (w Waitmsg) Msg() string { + return w.msg +} + +// Lang returns the language tag. See RFC 3066 +func (w Waitmsg) Lang() string { + return w.lang +} + +func (w Waitmsg) String() string { + return fmt.Sprintf("Process exited with: %v. Reason was: %v (%v)", w.status, w.msg, w.signal) +} diff --git a/modules/crypto/ssh/session_test.go b/modules/crypto/ssh/session_test.go new file mode 100755 index 000000000..628845e4d --- /dev/null +++ b/modules/crypto/ssh/session_test.go @@ -0,0 +1,774 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +// Session tests. + +import ( + "bytes" + crypto_rand "crypto/rand" + "errors" + "io" + "io/ioutil" + "math/rand" + "net" + "testing" + + "github.com/gogits/gogs/modules/crypto/ssh/terminal" +) + +type serverType func(Channel, <-chan *Request, *testing.T) + +// dial constructs a new test server and returns a *ClientConn. +func dial(handler serverType, t *testing.T) *Client { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + + go func() { + defer c1.Close() + conf := ServerConfig{ + NoClientAuth: true, + } + conf.AddHostKey(testSigners["rsa"]) + + _, chans, reqs, err := NewServerConn(c1, &conf) + if err != nil { + t.Fatalf("Unable to handshake: %v", err) + } + go DiscardRequests(reqs) + + for newCh := range chans { + if newCh.ChannelType() != "session" { + newCh.Reject(UnknownChannelType, "unknown channel type") + continue + } + + ch, inReqs, err := newCh.Accept() + if err != nil { + t.Errorf("Accept: %v", err) + continue + } + go func() { + handler(ch, inReqs, t) + }() + } + }() + + config := &ClientConfig{ + User: "testuser", + } + + conn, chans, reqs, err := NewClientConn(c2, "", config) + if err != nil { + t.Fatalf("unable to dial remote side: %v", err) + } + + return NewClient(conn, chans, reqs) +} + +// Test a simple string is returned to session.Stdout. +func TestSessionShell(t *testing.T) { + conn := dial(shellHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + stdout := new(bytes.Buffer) + session.Stdout = stdout + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %s", err) + } + if err := session.Wait(); err != nil { + t.Fatalf("Remote command did not exit cleanly: %v", err) + } + actual := stdout.String() + if actual != "golang" { + t.Fatalf("Remote shell did not return expected string: expected=golang, actual=%s", actual) + } +} + +// TODO(dfc) add support for Std{in,err}Pipe when the Server supports it. + +// Test a simple string is returned via StdoutPipe. +func TestSessionStdoutPipe(t *testing.T) { + conn := dial(shellHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("Unable to request StdoutPipe(): %v", err) + } + var buf bytes.Buffer + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + done := make(chan bool, 1) + go func() { + if _, err := io.Copy(&buf, stdout); err != nil { + t.Errorf("Copy of stdout failed: %v", err) + } + done <- true + }() + if err := session.Wait(); err != nil { + t.Fatalf("Remote command did not exit cleanly: %v", err) + } + <-done + actual := buf.String() + if actual != "golang" { + t.Fatalf("Remote shell did not return expected string: expected=golang, actual=%s", actual) + } +} + +// Test that a simple string is returned via the Output helper, +// and that stderr is discarded. +func TestSessionOutput(t *testing.T) { + conn := dial(fixedOutputHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + + buf, err := session.Output("") // cmd is ignored by fixedOutputHandler + if err != nil { + t.Error("Remote command did not exit cleanly:", err) + } + w := "this-is-stdout." + g := string(buf) + if g != w { + t.Error("Remote command did not return expected string:") + t.Logf("want %q", w) + t.Logf("got %q", g) + } +} + +// Test that both stdout and stderr are returned +// via the CombinedOutput helper. +func TestSessionCombinedOutput(t *testing.T) { + conn := dial(fixedOutputHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + + buf, err := session.CombinedOutput("") // cmd is ignored by fixedOutputHandler + if err != nil { + t.Error("Remote command did not exit cleanly:", err) + } + const stdout = "this-is-stdout." + const stderr = "this-is-stderr." + g := string(buf) + if g != stdout+stderr && g != stderr+stdout { + t.Error("Remote command did not return expected string:") + t.Logf("want %q, or %q", stdout+stderr, stderr+stdout) + t.Logf("got %q", g) + } +} + +// Test non-0 exit status is returned correctly. +func TestExitStatusNonZero(t *testing.T) { + conn := dial(exitStatusNonZeroHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + e, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected *ExitError but got %T", err) + } + if e.ExitStatus() != 15 { + t.Fatalf("expected command to exit with 15 but got %v", e.ExitStatus()) + } +} + +// Test 0 exit status is returned correctly. +func TestExitStatusZero(t *testing.T) { + conn := dial(exitStatusZeroHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err != nil { + t.Fatalf("expected nil but got %v", err) + } +} + +// Test exit signal and status are both returned correctly. +func TestExitSignalAndStatus(t *testing.T) { + conn := dial(exitSignalAndStatusHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + e, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected *ExitError but got %T", err) + } + if e.Signal() != "TERM" || e.ExitStatus() != 15 { + t.Fatalf("expected command to exit with signal TERM and status 15 but got signal %s and status %v", e.Signal(), e.ExitStatus()) + } +} + +// Test exit signal and status are both returned correctly. +func TestKnownExitSignalOnly(t *testing.T) { + conn := dial(exitSignalHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + e, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected *ExitError but got %T", err) + } + if e.Signal() != "TERM" || e.ExitStatus() != 143 { + t.Fatalf("expected command to exit with signal TERM and status 143 but got signal %s and status %v", e.Signal(), e.ExitStatus()) + } +} + +// Test exit signal and status are both returned correctly. +func TestUnknownExitSignal(t *testing.T) { + conn := dial(exitSignalUnknownHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + e, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected *ExitError but got %T", err) + } + if e.Signal() != "SYS" || e.ExitStatus() != 128 { + t.Fatalf("expected command to exit with signal SYS and status 128 but got signal %s and status %v", e.Signal(), e.ExitStatus()) + } +} + +// Test WaitMsg is not returned if the channel closes abruptly. +func TestExitWithoutStatusOrSignal(t *testing.T) { + conn := dial(exitWithoutSignalOrStatus, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + _, ok := err.(*ExitError) + if ok { + // you can't actually test for errors.errorString + // because it's not exported. + t.Fatalf("expected *errorString but got %T", err) + } +} + +// windowTestBytes is the number of bytes that we'll send to the SSH server. +const windowTestBytes = 16000 * 200 + +// TestServerWindow writes random data to the server. The server is expected to echo +// the same data back, which is compared against the original. +func TestServerWindow(t *testing.T) { + origBuf := bytes.NewBuffer(make([]byte, 0, windowTestBytes)) + io.CopyN(origBuf, crypto_rand.Reader, windowTestBytes) + origBytes := origBuf.Bytes() + + conn := dial(echoHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatal(err) + } + defer session.Close() + result := make(chan []byte) + + go func() { + defer close(result) + echoedBuf := bytes.NewBuffer(make([]byte, 0, windowTestBytes)) + serverStdout, err := session.StdoutPipe() + if err != nil { + t.Errorf("StdoutPipe failed: %v", err) + return + } + n, err := copyNRandomly("stdout", echoedBuf, serverStdout, windowTestBytes) + if err != nil && err != io.EOF { + t.Errorf("Read only %d bytes from server, expected %d: %v", n, windowTestBytes, err) + } + result <- echoedBuf.Bytes() + }() + + serverStdin, err := session.StdinPipe() + if err != nil { + t.Fatalf("StdinPipe failed: %v", err) + } + written, err := copyNRandomly("stdin", serverStdin, origBuf, windowTestBytes) + if err != nil { + t.Fatalf("failed to copy origBuf to serverStdin: %v", err) + } + if written != windowTestBytes { + t.Fatalf("Wrote only %d of %d bytes to server", written, windowTestBytes) + } + + echoedBytes := <-result + + if !bytes.Equal(origBytes, echoedBytes) { + t.Fatalf("Echoed buffer differed from original, orig %d, echoed %d", len(origBytes), len(echoedBytes)) + } +} + +// Verify the client can handle a keepalive packet from the server. +func TestClientHandlesKeepalives(t *testing.T) { + conn := dial(channelKeepaliveSender, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatal(err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err != nil { + t.Fatalf("expected nil but got: %v", err) + } +} + +type exitStatusMsg struct { + Status uint32 +} + +type exitSignalMsg struct { + Signal string + CoreDumped bool + Errmsg string + Lang string +} + +func handleTerminalRequests(in <-chan *Request) { + for req := range in { + ok := false + switch req.Type { + case "shell": + ok = true + if len(req.Payload) > 0 { + // We don't accept any commands, only the default shell. + ok = false + } + case "env": + ok = true + } + req.Reply(ok, nil) + } +} + +func newServerShell(ch Channel, in <-chan *Request, prompt string) *terminal.Terminal { + term := terminal.NewTerminal(ch, prompt) + go handleTerminalRequests(in) + return term +} + +func exitStatusZeroHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + // this string is returned to stdout + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendStatus(0, ch, t) +} + +func exitStatusNonZeroHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendStatus(15, ch, t) +} + +func exitSignalAndStatusHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendStatus(15, ch, t) + sendSignal("TERM", ch, t) +} + +func exitSignalHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendSignal("TERM", ch, t) +} + +func exitSignalUnknownHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendSignal("SYS", ch, t) +} + +func exitWithoutSignalOrStatus(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) +} + +func shellHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + // this string is returned to stdout + shell := newServerShell(ch, in, "golang") + readLine(shell, t) + sendStatus(0, ch, t) +} + +// Ignores the command, writes fixed strings to stderr and stdout. +// Strings are "this-is-stdout." and "this-is-stderr.". +func fixedOutputHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + _, err := ch.Read(nil) + + req, ok := <-in + if !ok { + t.Fatalf("error: expected channel request, got: %#v", err) + return + } + + // ignore request, always send some text + req.Reply(true, nil) + + _, err = io.WriteString(ch, "this-is-stdout.") + if err != nil { + t.Fatalf("error writing on server: %v", err) + } + _, err = io.WriteString(ch.Stderr(), "this-is-stderr.") + if err != nil { + t.Fatalf("error writing on server: %v", err) + } + sendStatus(0, ch, t) +} + +func readLine(shell *terminal.Terminal, t *testing.T) { + if _, err := shell.ReadLine(); err != nil && err != io.EOF { + t.Errorf("unable to read line: %v", err) + } +} + +func sendStatus(status uint32, ch Channel, t *testing.T) { + msg := exitStatusMsg{ + Status: status, + } + if _, err := ch.SendRequest("exit-status", false, Marshal(&msg)); err != nil { + t.Errorf("unable to send status: %v", err) + } +} + +func sendSignal(signal string, ch Channel, t *testing.T) { + sig := exitSignalMsg{ + Signal: signal, + CoreDumped: false, + Errmsg: "Process terminated", + Lang: "en-GB-oed", + } + if _, err := ch.SendRequest("exit-signal", false, Marshal(&sig)); err != nil { + t.Errorf("unable to send signal: %v", err) + } +} + +func discardHandler(ch Channel, t *testing.T) { + defer ch.Close() + io.Copy(ioutil.Discard, ch) +} + +func echoHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + if n, err := copyNRandomly("echohandler", ch, ch, windowTestBytes); err != nil { + t.Errorf("short write, wrote %d, expected %d: %v ", n, windowTestBytes, err) + } +} + +// copyNRandomly copies n bytes from src to dst. It uses a variable, and random, +// buffer size to exercise more code paths. +func copyNRandomly(title string, dst io.Writer, src io.Reader, n int) (int, error) { + var ( + buf = make([]byte, 32*1024) + written int + remaining = n + ) + for remaining > 0 { + l := rand.Intn(1 << 15) + if remaining < l { + l = remaining + } + nr, er := src.Read(buf[:l]) + nw, ew := dst.Write(buf[:nr]) + remaining -= nw + written += nw + if ew != nil { + return written, ew + } + if nr != nw { + return written, io.ErrShortWrite + } + if er != nil && er != io.EOF { + return written, er + } + } + return written, nil +} + +func channelKeepaliveSender(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + if _, err := ch.SendRequest("keepalive@openssh.com", true, nil); err != nil { + t.Errorf("unable to send channel keepalive request: %v", err) + } + sendStatus(0, ch, t) +} + +func TestClientWriteEOF(t *testing.T) { + conn := dial(simpleEchoHandler, t) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatal(err) + } + defer session.Close() + stdin, err := session.StdinPipe() + if err != nil { + t.Fatalf("StdinPipe failed: %v", err) + } + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("StdoutPipe failed: %v", err) + } + + data := []byte(`0000`) + _, err = stdin.Write(data) + if err != nil { + t.Fatalf("Write failed: %v", err) + } + stdin.Close() + + res, err := ioutil.ReadAll(stdout) + if err != nil { + t.Fatalf("Read failed: %v", err) + } + + if !bytes.Equal(data, res) { + t.Fatalf("Read differed from write, wrote: %v, read: %v", data, res) + } +} + +func simpleEchoHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + data, err := ioutil.ReadAll(ch) + if err != nil { + t.Errorf("handler read error: %v", err) + } + _, err = ch.Write(data) + if err != nil { + t.Errorf("handler write error: %v", err) + } +} + +func TestSessionID(t *testing.T) { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + serverID := make(chan []byte, 1) + clientID := make(chan []byte, 1) + + serverConf := &ServerConfig{ + NoClientAuth: true, + } + serverConf.AddHostKey(testSigners["ecdsa"]) + clientConf := &ClientConfig{ + User: "user", + } + + go func() { + conn, chans, reqs, err := NewServerConn(c1, serverConf) + if err != nil { + t.Fatalf("server handshake: %v", err) + } + serverID <- conn.SessionID() + go DiscardRequests(reqs) + for ch := range chans { + ch.Reject(Prohibited, "") + } + }() + + go func() { + conn, chans, reqs, err := NewClientConn(c2, "", clientConf) + if err != nil { + t.Fatalf("client handshake: %v", err) + } + clientID <- conn.SessionID() + go DiscardRequests(reqs) + for ch := range chans { + ch.Reject(Prohibited, "") + } + }() + + s := <-serverID + c := <-clientID + if bytes.Compare(s, c) != 0 { + t.Errorf("server session ID (%x) != client session ID (%x)", s, c) + } else if len(s) == 0 { + t.Errorf("client and server SessionID were empty.") + } +} + +type noReadConn struct { + readSeen bool + net.Conn +} + +func (c *noReadConn) Close() error { + return nil +} + +func (c *noReadConn) Read(b []byte) (int, error) { + c.readSeen = true + return 0, errors.New("noReadConn error") +} + +func TestInvalidServerConfiguration(t *testing.T) { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + serveConn := noReadConn{Conn: c1} + serverConf := &ServerConfig{} + + NewServerConn(&serveConn, serverConf) + if serveConn.readSeen { + t.Fatalf("NewServerConn attempted to Read() from Conn while configuration is missing host key") + } + + serverConf.AddHostKey(testSigners["ecdsa"]) + + NewServerConn(&serveConn, serverConf) + if serveConn.readSeen { + t.Fatalf("NewServerConn attempted to Read() from Conn while configuration is missing authentication method") + } +} + +func TestHostKeyAlgorithms(t *testing.T) { + serverConf := &ServerConfig{ + NoClientAuth: true, + } + serverConf.AddHostKey(testSigners["rsa"]) + serverConf.AddHostKey(testSigners["ecdsa"]) + + connect := func(clientConf *ClientConfig, want string) { + var alg string + clientConf.HostKeyCallback = func(h string, a net.Addr, key PublicKey) error { + alg = key.Type() + return nil + } + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + go NewServerConn(c1, serverConf) + _, _, _, err = NewClientConn(c2, "", clientConf) + if err != nil { + t.Fatalf("NewClientConn: %v", err) + } + if alg != want { + t.Errorf("selected key algorithm %s, want %s", alg, want) + } + } + + // By default, we get the preferred algorithm, which is ECDSA 256. + + clientConf := &ClientConfig{} + connect(clientConf, KeyAlgoECDSA256) + + // Client asks for RSA explicitly. + clientConf.HostKeyAlgorithms = []string{KeyAlgoRSA} + connect(clientConf, KeyAlgoRSA) + + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + go NewServerConn(c1, serverConf) + clientConf.HostKeyAlgorithms = []string{"nonexistent-hostkey-algo"} + _, _, _, err = NewClientConn(c2, "", clientConf) + if err == nil { + t.Fatal("succeeded connecting with unknown hostkey algorithm") + } +} diff --git a/modules/crypto/ssh/tcpip.go b/modules/crypto/ssh/tcpip.go new file mode 100755 index 000000000..6151241ff --- /dev/null +++ b/modules/crypto/ssh/tcpip.go @@ -0,0 +1,407 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "errors" + "fmt" + "io" + "math/rand" + "net" + "strconv" + "strings" + "sync" + "time" +) + +// Listen requests the remote peer open a listening socket on +// addr. Incoming connections will be available by calling Accept on +// the returned net.Listener. The listener must be serviced, or the +// SSH connection may hang. +func (c *Client) Listen(n, addr string) (net.Listener, error) { + laddr, err := net.ResolveTCPAddr(n, addr) + if err != nil { + return nil, err + } + return c.ListenTCP(laddr) +} + +// Automatic port allocation is broken with OpenSSH before 6.0. See +// also https://bugzilla.mindrot.org/show_bug.cgi?id=2017. In +// particular, OpenSSH 5.9 sends a channelOpenMsg with port number 0, +// rather than the actual port number. This means you can never open +// two different listeners with auto allocated ports. We work around +// this by trying explicit ports until we succeed. + +const openSSHPrefix = "OpenSSH_" + +var portRandomizer = rand.New(rand.NewSource(time.Now().UnixNano())) + +// isBrokenOpenSSHVersion returns true if the given version string +// specifies a version of OpenSSH that is known to have a bug in port +// forwarding. +func isBrokenOpenSSHVersion(versionStr string) bool { + i := strings.Index(versionStr, openSSHPrefix) + if i < 0 { + return false + } + i += len(openSSHPrefix) + j := i + for ; j < len(versionStr); j++ { + if versionStr[j] < '0' || versionStr[j] > '9' { + break + } + } + version, _ := strconv.Atoi(versionStr[i:j]) + return version < 6 +} + +// autoPortListenWorkaround simulates automatic port allocation by +// trying random ports repeatedly. +func (c *Client) autoPortListenWorkaround(laddr *net.TCPAddr) (net.Listener, error) { + var sshListener net.Listener + var err error + const tries = 10 + for i := 0; i < tries; i++ { + addr := *laddr + addr.Port = 1024 + portRandomizer.Intn(60000) + sshListener, err = c.ListenTCP(&addr) + if err == nil { + laddr.Port = addr.Port + return sshListener, err + } + } + return nil, fmt.Errorf("ssh: listen on random port failed after %d tries: %v", tries, err) +} + +// RFC 4254 7.1 +type channelForwardMsg struct { + addr string + rport uint32 +} + +// ListenTCP requests the remote peer open a listening socket +// on laddr. Incoming connections will be available by calling +// Accept on the returned net.Listener. +func (c *Client) ListenTCP(laddr *net.TCPAddr) (net.Listener, error) { + if laddr.Port == 0 && isBrokenOpenSSHVersion(string(c.ServerVersion())) { + return c.autoPortListenWorkaround(laddr) + } + + m := channelForwardMsg{ + laddr.IP.String(), + uint32(laddr.Port), + } + // send message + ok, resp, err := c.SendRequest("tcpip-forward", true, Marshal(&m)) + if err != nil { + return nil, err + } + if !ok { + return nil, errors.New("ssh: tcpip-forward request denied by peer") + } + + // If the original port was 0, then the remote side will + // supply a real port number in the response. + if laddr.Port == 0 { + var p struct { + Port uint32 + } + if err := Unmarshal(resp, &p); err != nil { + return nil, err + } + laddr.Port = int(p.Port) + } + + // Register this forward, using the port number we obtained. + ch := c.forwards.add(*laddr) + + return &tcpListener{laddr, c, ch}, nil +} + +// forwardList stores a mapping between remote +// forward requests and the tcpListeners. +type forwardList struct { + sync.Mutex + entries []forwardEntry +} + +// forwardEntry represents an established mapping of a laddr on a +// remote ssh server to a channel connected to a tcpListener. +type forwardEntry struct { + laddr net.TCPAddr + c chan forward +} + +// forward represents an incoming forwarded tcpip connection. The +// arguments to add/remove/lookup should be address as specified in +// the original forward-request. +type forward struct { + newCh NewChannel // the ssh client channel underlying this forward + raddr *net.TCPAddr // the raddr of the incoming connection +} + +func (l *forwardList) add(addr net.TCPAddr) chan forward { + l.Lock() + defer l.Unlock() + f := forwardEntry{ + addr, + make(chan forward, 1), + } + l.entries = append(l.entries, f) + return f.c +} + +// See RFC 4254, section 7.2 +type forwardedTCPPayload struct { + Addr string + Port uint32 + OriginAddr string + OriginPort uint32 +} + +// parseTCPAddr parses the originating address from the remote into a *net.TCPAddr. +func parseTCPAddr(addr string, port uint32) (*net.TCPAddr, error) { + if port == 0 || port > 65535 { + return nil, fmt.Errorf("ssh: port number out of range: %d", port) + } + ip := net.ParseIP(string(addr)) + if ip == nil { + return nil, fmt.Errorf("ssh: cannot parse IP address %q", addr) + } + return &net.TCPAddr{IP: ip, Port: int(port)}, nil +} + +func (l *forwardList) handleChannels(in <-chan NewChannel) { + for ch := range in { + var payload forwardedTCPPayload + if err := Unmarshal(ch.ExtraData(), &payload); err != nil { + ch.Reject(ConnectionFailed, "could not parse forwarded-tcpip payload: "+err.Error()) + continue + } + + // RFC 4254 section 7.2 specifies that incoming + // addresses should list the address, in string + // format. It is implied that this should be an IP + // address, as it would be impossible to connect to it + // otherwise. + laddr, err := parseTCPAddr(payload.Addr, payload.Port) + if err != nil { + ch.Reject(ConnectionFailed, err.Error()) + continue + } + raddr, err := parseTCPAddr(payload.OriginAddr, payload.OriginPort) + if err != nil { + ch.Reject(ConnectionFailed, err.Error()) + continue + } + + if ok := l.forward(*laddr, *raddr, ch); !ok { + // Section 7.2, implementations MUST reject spurious incoming + // connections. + ch.Reject(Prohibited, "no forward for address") + continue + } + } +} + +// remove removes the forward entry, and the channel feeding its +// listener. +func (l *forwardList) remove(addr net.TCPAddr) { + l.Lock() + defer l.Unlock() + for i, f := range l.entries { + if addr.IP.Equal(f.laddr.IP) && addr.Port == f.laddr.Port { + l.entries = append(l.entries[:i], l.entries[i+1:]...) + close(f.c) + return + } + } +} + +// closeAll closes and clears all forwards. +func (l *forwardList) closeAll() { + l.Lock() + defer l.Unlock() + for _, f := range l.entries { + close(f.c) + } + l.entries = nil +} + +func (l *forwardList) forward(laddr, raddr net.TCPAddr, ch NewChannel) bool { + l.Lock() + defer l.Unlock() + for _, f := range l.entries { + if laddr.IP.Equal(f.laddr.IP) && laddr.Port == f.laddr.Port { + f.c <- forward{ch, &raddr} + return true + } + } + return false +} + +type tcpListener struct { + laddr *net.TCPAddr + + conn *Client + in <-chan forward +} + +// Accept waits for and returns the next connection to the listener. +func (l *tcpListener) Accept() (net.Conn, error) { + s, ok := <-l.in + if !ok { + return nil, io.EOF + } + ch, incoming, err := s.newCh.Accept() + if err != nil { + return nil, err + } + go DiscardRequests(incoming) + + return &tcpChanConn{ + Channel: ch, + laddr: l.laddr, + raddr: s.raddr, + }, nil +} + +// Close closes the listener. +func (l *tcpListener) Close() error { + m := channelForwardMsg{ + l.laddr.IP.String(), + uint32(l.laddr.Port), + } + + // this also closes the listener. + l.conn.forwards.remove(*l.laddr) + ok, _, err := l.conn.SendRequest("cancel-tcpip-forward", true, Marshal(&m)) + if err == nil && !ok { + err = errors.New("ssh: cancel-tcpip-forward failed") + } + return err +} + +// Addr returns the listener's network address. +func (l *tcpListener) Addr() net.Addr { + return l.laddr +} + +// Dial initiates a connection to the addr from the remote host. +// The resulting connection has a zero LocalAddr() and RemoteAddr(). +func (c *Client) Dial(n, addr string) (net.Conn, error) { + // Parse the address into host and numeric port. + host, portString, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + port, err := strconv.ParseUint(portString, 10, 16) + if err != nil { + return nil, err + } + // Use a zero address for local and remote address. + zeroAddr := &net.TCPAddr{ + IP: net.IPv4zero, + Port: 0, + } + ch, err := c.dial(net.IPv4zero.String(), 0, host, int(port)) + if err != nil { + return nil, err + } + return &tcpChanConn{ + Channel: ch, + laddr: zeroAddr, + raddr: zeroAddr, + }, nil +} + +// DialTCP connects to the remote address raddr on the network net, +// which must be "tcp", "tcp4", or "tcp6". If laddr is not nil, it is used +// as the local address for the connection. +func (c *Client) DialTCP(n string, laddr, raddr *net.TCPAddr) (net.Conn, error) { + if laddr == nil { + laddr = &net.TCPAddr{ + IP: net.IPv4zero, + Port: 0, + } + } + ch, err := c.dial(laddr.IP.String(), laddr.Port, raddr.IP.String(), raddr.Port) + if err != nil { + return nil, err + } + return &tcpChanConn{ + Channel: ch, + laddr: laddr, + raddr: raddr, + }, nil +} + +// RFC 4254 7.2 +type channelOpenDirectMsg struct { + raddr string + rport uint32 + laddr string + lport uint32 +} + +func (c *Client) dial(laddr string, lport int, raddr string, rport int) (Channel, error) { + msg := channelOpenDirectMsg{ + raddr: raddr, + rport: uint32(rport), + laddr: laddr, + lport: uint32(lport), + } + ch, in, err := c.OpenChannel("direct-tcpip", Marshal(&msg)) + if err != nil { + return nil, err + } + go DiscardRequests(in) + return ch, err +} + +type tcpChan struct { + Channel // the backing channel +} + +// tcpChanConn fulfills the net.Conn interface without +// the tcpChan having to hold laddr or raddr directly. +type tcpChanConn struct { + Channel + laddr, raddr net.Addr +} + +// LocalAddr returns the local network address. +func (t *tcpChanConn) LocalAddr() net.Addr { + return t.laddr +} + +// RemoteAddr returns the remote network address. +func (t *tcpChanConn) RemoteAddr() net.Addr { + return t.raddr +} + +// SetDeadline sets the read and write deadlines associated +// with the connection. +func (t *tcpChanConn) SetDeadline(deadline time.Time) error { + if err := t.SetReadDeadline(deadline); err != nil { + return err + } + return t.SetWriteDeadline(deadline) +} + +// SetReadDeadline sets the read deadline. +// A zero value for t means Read will not time out. +// After the deadline, the error from Read will implement net.Error +// with Timeout() == true. +func (t *tcpChanConn) SetReadDeadline(deadline time.Time) error { + return errors.New("ssh: tcpChan: deadline not supported") +} + +// SetWriteDeadline exists to satisfy the net.Conn interface +// but is not implemented by this type. It always returns an error. +func (t *tcpChanConn) SetWriteDeadline(deadline time.Time) error { + return errors.New("ssh: tcpChan: deadline not supported") +} diff --git a/modules/crypto/ssh/tcpip_test.go b/modules/crypto/ssh/tcpip_test.go new file mode 100755 index 000000000..f1265cb49 --- /dev/null +++ b/modules/crypto/ssh/tcpip_test.go @@ -0,0 +1,20 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "testing" +) + +func TestAutoPortListenBroken(t *testing.T) { + broken := "SSH-2.0-OpenSSH_5.9hh11" + works := "SSH-2.0-OpenSSH_6.1" + if !isBrokenOpenSSHVersion(broken) { + t.Errorf("version %q not marked as broken", broken) + } + if isBrokenOpenSSHVersion(works) { + t.Errorf("version %q marked as broken", works) + } +} diff --git a/modules/crypto/ssh/terminal/terminal.go b/modules/crypto/ssh/terminal/terminal.go new file mode 100755 index 000000000..741eeb13f --- /dev/null +++ b/modules/crypto/ssh/terminal/terminal.go @@ -0,0 +1,892 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package terminal + +import ( + "bytes" + "io" + "sync" + "unicode/utf8" +) + +// EscapeCodes contains escape sequences that can be written to the terminal in +// order to achieve different styles of text. +type EscapeCodes struct { + // Foreground colors + Black, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte + + // Reset all attributes + Reset []byte +} + +var vt100EscapeCodes = EscapeCodes{ + Black: []byte{keyEscape, '[', '3', '0', 'm'}, + Red: []byte{keyEscape, '[', '3', '1', 'm'}, + Green: []byte{keyEscape, '[', '3', '2', 'm'}, + Yellow: []byte{keyEscape, '[', '3', '3', 'm'}, + Blue: []byte{keyEscape, '[', '3', '4', 'm'}, + Magenta: []byte{keyEscape, '[', '3', '5', 'm'}, + Cyan: []byte{keyEscape, '[', '3', '6', 'm'}, + White: []byte{keyEscape, '[', '3', '7', 'm'}, + + Reset: []byte{keyEscape, '[', '0', 'm'}, +} + +// Terminal contains the state for running a VT100 terminal that is capable of +// reading lines of input. +type Terminal struct { + // AutoCompleteCallback, if non-null, is called for each keypress with + // the full input line and the current position of the cursor (in + // bytes, as an index into |line|). If it returns ok=false, the key + // press is processed normally. Otherwise it returns a replacement line + // and the new cursor position. + AutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool) + + // Escape contains a pointer to the escape codes for this terminal. + // It's always a valid pointer, although the escape codes themselves + // may be empty if the terminal doesn't support them. + Escape *EscapeCodes + + // lock protects the terminal and the state in this object from + // concurrent processing of a key press and a Write() call. + lock sync.Mutex + + c io.ReadWriter + prompt []rune + + // line is the current line being entered. + line []rune + // pos is the logical position of the cursor in line + pos int + // echo is true if local echo is enabled + echo bool + // pasteActive is true iff there is a bracketed paste operation in + // progress. + pasteActive bool + + // cursorX contains the current X value of the cursor where the left + // edge is 0. cursorY contains the row number where the first row of + // the current line is 0. + cursorX, cursorY int + // maxLine is the greatest value of cursorY so far. + maxLine int + + termWidth, termHeight int + + // outBuf contains the terminal data to be sent. + outBuf []byte + // remainder contains the remainder of any partial key sequences after + // a read. It aliases into inBuf. + remainder []byte + inBuf [256]byte + + // history contains previously entered commands so that they can be + // accessed with the up and down keys. + history stRingBuffer + // historyIndex stores the currently accessed history entry, where zero + // means the immediately previous entry. + historyIndex int + // When navigating up and down the history it's possible to return to + // the incomplete, initial line. That value is stored in + // historyPending. + historyPending string +} + +// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is +// a local terminal, that terminal must first have been put into raw mode. +// prompt is a string that is written at the start of each input line (i.e. +// "> "). +func NewTerminal(c io.ReadWriter, prompt string) *Terminal { + return &Terminal{ + Escape: &vt100EscapeCodes, + c: c, + prompt: []rune(prompt), + termWidth: 80, + termHeight: 24, + echo: true, + historyIndex: -1, + } +} + +const ( + keyCtrlD = 4 + keyCtrlU = 21 + keyEnter = '\r' + keyEscape = 27 + keyBackspace = 127 + keyUnknown = 0xd800 /* UTF-16 surrogate area */ + iota + keyUp + keyDown + keyLeft + keyRight + keyAltLeft + keyAltRight + keyHome + keyEnd + keyDeleteWord + keyDeleteLine + keyClearScreen + keyPasteStart + keyPasteEnd +) + +var pasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'} +var pasteEnd = []byte{keyEscape, '[', '2', '0', '1', '~'} + +// bytesToKey tries to parse a key sequence from b. If successful, it returns +// the key and the remainder of the input. Otherwise it returns utf8.RuneError. +func bytesToKey(b []byte, pasteActive bool) (rune, []byte) { + if len(b) == 0 { + return utf8.RuneError, nil + } + + if !pasteActive { + switch b[0] { + case 1: // ^A + return keyHome, b[1:] + case 5: // ^E + return keyEnd, b[1:] + case 8: // ^H + return keyBackspace, b[1:] + case 11: // ^K + return keyDeleteLine, b[1:] + case 12: // ^L + return keyClearScreen, b[1:] + case 23: // ^W + return keyDeleteWord, b[1:] + } + } + + if b[0] != keyEscape { + if !utf8.FullRune(b) { + return utf8.RuneError, b + } + r, l := utf8.DecodeRune(b) + return r, b[l:] + } + + if !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' { + switch b[2] { + case 'A': + return keyUp, b[3:] + case 'B': + return keyDown, b[3:] + case 'C': + return keyRight, b[3:] + case 'D': + return keyLeft, b[3:] + case 'H': + return keyHome, b[3:] + case 'F': + return keyEnd, b[3:] + } + } + + if !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' { + switch b[5] { + case 'C': + return keyAltRight, b[6:] + case 'D': + return keyAltLeft, b[6:] + } + } + + if !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) { + return keyPasteStart, b[6:] + } + + if pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) { + return keyPasteEnd, b[6:] + } + + // If we get here then we have a key that we don't recognise, or a + // partial sequence. It's not clear how one should find the end of a + // sequence without knowing them all, but it seems that [a-zA-Z~] only + // appears at the end of a sequence. + for i, c := range b[0:] { + if c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' { + return keyUnknown, b[i+1:] + } + } + + return utf8.RuneError, b +} + +// queue appends data to the end of t.outBuf +func (t *Terminal) queue(data []rune) { + t.outBuf = append(t.outBuf, []byte(string(data))...) +} + +var eraseUnderCursor = []rune{' ', keyEscape, '[', 'D'} +var space = []rune{' '} + +func isPrintable(key rune) bool { + isInSurrogateArea := key >= 0xd800 && key <= 0xdbff + return key >= 32 && !isInSurrogateArea +} + +// moveCursorToPos appends data to t.outBuf which will move the cursor to the +// given, logical position in the text. +func (t *Terminal) moveCursorToPos(pos int) { + if !t.echo { + return + } + + x := visualLength(t.prompt) + pos + y := x / t.termWidth + x = x % t.termWidth + + up := 0 + if y < t.cursorY { + up = t.cursorY - y + } + + down := 0 + if y > t.cursorY { + down = y - t.cursorY + } + + left := 0 + if x < t.cursorX { + left = t.cursorX - x + } + + right := 0 + if x > t.cursorX { + right = x - t.cursorX + } + + t.cursorX = x + t.cursorY = y + t.move(up, down, left, right) +} + +func (t *Terminal) move(up, down, left, right int) { + movement := make([]rune, 3*(up+down+left+right)) + m := movement + for i := 0; i < up; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'A' + m = m[3:] + } + for i := 0; i < down; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'B' + m = m[3:] + } + for i := 0; i < left; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'D' + m = m[3:] + } + for i := 0; i < right; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'C' + m = m[3:] + } + + t.queue(movement) +} + +func (t *Terminal) clearLineToRight() { + op := []rune{keyEscape, '[', 'K'} + t.queue(op) +} + +const maxLineLength = 4096 + +func (t *Terminal) setLine(newLine []rune, newPos int) { + if t.echo { + t.moveCursorToPos(0) + t.writeLine(newLine) + for i := len(newLine); i < len(t.line); i++ { + t.writeLine(space) + } + t.moveCursorToPos(newPos) + } + t.line = newLine + t.pos = newPos +} + +func (t *Terminal) advanceCursor(places int) { + t.cursorX += places + t.cursorY += t.cursorX / t.termWidth + if t.cursorY > t.maxLine { + t.maxLine = t.cursorY + } + t.cursorX = t.cursorX % t.termWidth + + if places > 0 && t.cursorX == 0 { + // Normally terminals will advance the current position + // when writing a character. But that doesn't happen + // for the last character in a line. However, when + // writing a character (except a new line) that causes + // a line wrap, the position will be advanced two + // places. + // + // So, if we are stopping at the end of a line, we + // need to write a newline so that our cursor can be + // advanced to the next line. + t.outBuf = append(t.outBuf, '\n') + } +} + +func (t *Terminal) eraseNPreviousChars(n int) { + if n == 0 { + return + } + + if t.pos < n { + n = t.pos + } + t.pos -= n + t.moveCursorToPos(t.pos) + + copy(t.line[t.pos:], t.line[n+t.pos:]) + t.line = t.line[:len(t.line)-n] + if t.echo { + t.writeLine(t.line[t.pos:]) + for i := 0; i < n; i++ { + t.queue(space) + } + t.advanceCursor(n) + t.moveCursorToPos(t.pos) + } +} + +// countToLeftWord returns then number of characters from the cursor to the +// start of the previous word. +func (t *Terminal) countToLeftWord() int { + if t.pos == 0 { + return 0 + } + + pos := t.pos - 1 + for pos > 0 { + if t.line[pos] != ' ' { + break + } + pos-- + } + for pos > 0 { + if t.line[pos] == ' ' { + pos++ + break + } + pos-- + } + + return t.pos - pos +} + +// countToRightWord returns then number of characters from the cursor to the +// start of the next word. +func (t *Terminal) countToRightWord() int { + pos := t.pos + for pos < len(t.line) { + if t.line[pos] == ' ' { + break + } + pos++ + } + for pos < len(t.line) { + if t.line[pos] != ' ' { + break + } + pos++ + } + return pos - t.pos +} + +// visualLength returns the number of visible glyphs in s. +func visualLength(runes []rune) int { + inEscapeSeq := false + length := 0 + + for _, r := range runes { + switch { + case inEscapeSeq: + if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') { + inEscapeSeq = false + } + case r == '\x1b': + inEscapeSeq = true + default: + length++ + } + } + + return length +} + +// handleKey processes the given key and, optionally, returns a line of text +// that the user has entered. +func (t *Terminal) handleKey(key rune) (line string, ok bool) { + if t.pasteActive && key != keyEnter { + t.addKeyToLine(key) + return + } + + switch key { + case keyBackspace: + if t.pos == 0 { + return + } + t.eraseNPreviousChars(1) + case keyAltLeft: + // move left by a word. + t.pos -= t.countToLeftWord() + t.moveCursorToPos(t.pos) + case keyAltRight: + // move right by a word. + t.pos += t.countToRightWord() + t.moveCursorToPos(t.pos) + case keyLeft: + if t.pos == 0 { + return + } + t.pos-- + t.moveCursorToPos(t.pos) + case keyRight: + if t.pos == len(t.line) { + return + } + t.pos++ + t.moveCursorToPos(t.pos) + case keyHome: + if t.pos == 0 { + return + } + t.pos = 0 + t.moveCursorToPos(t.pos) + case keyEnd: + if t.pos == len(t.line) { + return + } + t.pos = len(t.line) + t.moveCursorToPos(t.pos) + case keyUp: + entry, ok := t.history.NthPreviousEntry(t.historyIndex + 1) + if !ok { + return "", false + } + if t.historyIndex == -1 { + t.historyPending = string(t.line) + } + t.historyIndex++ + runes := []rune(entry) + t.setLine(runes, len(runes)) + case keyDown: + switch t.historyIndex { + case -1: + return + case 0: + runes := []rune(t.historyPending) + t.setLine(runes, len(runes)) + t.historyIndex-- + default: + entry, ok := t.history.NthPreviousEntry(t.historyIndex - 1) + if ok { + t.historyIndex-- + runes := []rune(entry) + t.setLine(runes, len(runes)) + } + } + case keyEnter: + t.moveCursorToPos(len(t.line)) + t.queue([]rune("\r\n")) + line = string(t.line) + ok = true + t.line = t.line[:0] + t.pos = 0 + t.cursorX = 0 + t.cursorY = 0 + t.maxLine = 0 + case keyDeleteWord: + // Delete zero or more spaces and then one or more characters. + t.eraseNPreviousChars(t.countToLeftWord()) + case keyDeleteLine: + // Delete everything from the current cursor position to the + // end of line. + for i := t.pos; i < len(t.line); i++ { + t.queue(space) + t.advanceCursor(1) + } + t.line = t.line[:t.pos] + t.moveCursorToPos(t.pos) + case keyCtrlD: + // Erase the character under the current position. + // The EOF case when the line is empty is handled in + // readLine(). + if t.pos < len(t.line) { + t.pos++ + t.eraseNPreviousChars(1) + } + case keyCtrlU: + t.eraseNPreviousChars(t.pos) + case keyClearScreen: + // Erases the screen and moves the cursor to the home position. + t.queue([]rune("\x1b[2J\x1b[H")) + t.queue(t.prompt) + t.cursorX, t.cursorY = 0, 0 + t.advanceCursor(visualLength(t.prompt)) + t.setLine(t.line, t.pos) + default: + if t.AutoCompleteCallback != nil { + prefix := string(t.line[:t.pos]) + suffix := string(t.line[t.pos:]) + + t.lock.Unlock() + newLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key) + t.lock.Lock() + + if completeOk { + t.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos])) + return + } + } + if !isPrintable(key) { + return + } + if len(t.line) == maxLineLength { + return + } + t.addKeyToLine(key) + } + return +} + +// addKeyToLine inserts the given key at the current position in the current +// line. +func (t *Terminal) addKeyToLine(key rune) { + if len(t.line) == cap(t.line) { + newLine := make([]rune, len(t.line), 2*(1+len(t.line))) + copy(newLine, t.line) + t.line = newLine + } + t.line = t.line[:len(t.line)+1] + copy(t.line[t.pos+1:], t.line[t.pos:]) + t.line[t.pos] = key + if t.echo { + t.writeLine(t.line[t.pos:]) + } + t.pos++ + t.moveCursorToPos(t.pos) +} + +func (t *Terminal) writeLine(line []rune) { + for len(line) != 0 { + remainingOnLine := t.termWidth - t.cursorX + todo := len(line) + if todo > remainingOnLine { + todo = remainingOnLine + } + t.queue(line[:todo]) + t.advanceCursor(visualLength(line[:todo])) + line = line[todo:] + } +} + +func (t *Terminal) Write(buf []byte) (n int, err error) { + t.lock.Lock() + defer t.lock.Unlock() + + if t.cursorX == 0 && t.cursorY == 0 { + // This is the easy case: there's nothing on the screen that we + // have to move out of the way. + return t.c.Write(buf) + } + + // We have a prompt and possibly user input on the screen. We + // have to clear it first. + t.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */) + t.cursorX = 0 + t.clearLineToRight() + + for t.cursorY > 0 { + t.move(1 /* up */, 0, 0, 0) + t.cursorY-- + t.clearLineToRight() + } + + if _, err = t.c.Write(t.outBuf); err != nil { + return + } + t.outBuf = t.outBuf[:0] + + if n, err = t.c.Write(buf); err != nil { + return + } + + t.writeLine(t.prompt) + if t.echo { + t.writeLine(t.line) + } + + t.moveCursorToPos(t.pos) + + if _, err = t.c.Write(t.outBuf); err != nil { + return + } + t.outBuf = t.outBuf[:0] + return +} + +// ReadPassword temporarily changes the prompt and reads a password, without +// echo, from the terminal. +func (t *Terminal) ReadPassword(prompt string) (line string, err error) { + t.lock.Lock() + defer t.lock.Unlock() + + oldPrompt := t.prompt + t.prompt = []rune(prompt) + t.echo = false + + line, err = t.readLine() + + t.prompt = oldPrompt + t.echo = true + + return +} + +// ReadLine returns a line of input from the terminal. +func (t *Terminal) ReadLine() (line string, err error) { + t.lock.Lock() + defer t.lock.Unlock() + + return t.readLine() +} + +func (t *Terminal) readLine() (line string, err error) { + // t.lock must be held at this point + + if t.cursorX == 0 && t.cursorY == 0 { + t.writeLine(t.prompt) + t.c.Write(t.outBuf) + t.outBuf = t.outBuf[:0] + } + + lineIsPasted := t.pasteActive + + for { + rest := t.remainder + lineOk := false + for !lineOk { + var key rune + key, rest = bytesToKey(rest, t.pasteActive) + if key == utf8.RuneError { + break + } + if !t.pasteActive { + if key == keyCtrlD { + if len(t.line) == 0 { + return "", io.EOF + } + } + if key == keyPasteStart { + t.pasteActive = true + if len(t.line) == 0 { + lineIsPasted = true + } + continue + } + } else if key == keyPasteEnd { + t.pasteActive = false + continue + } + if !t.pasteActive { + lineIsPasted = false + } + line, lineOk = t.handleKey(key) + } + if len(rest) > 0 { + n := copy(t.inBuf[:], rest) + t.remainder = t.inBuf[:n] + } else { + t.remainder = nil + } + t.c.Write(t.outBuf) + t.outBuf = t.outBuf[:0] + if lineOk { + if t.echo { + t.historyIndex = -1 + t.history.Add(line) + } + if lineIsPasted { + err = ErrPasteIndicator + } + return + } + + // t.remainder is a slice at the beginning of t.inBuf + // containing a partial key sequence + readBuf := t.inBuf[len(t.remainder):] + var n int + + t.lock.Unlock() + n, err = t.c.Read(readBuf) + t.lock.Lock() + + if err != nil { + return + } + + t.remainder = t.inBuf[:n+len(t.remainder)] + } + + panic("unreachable") // for Go 1.0. +} + +// SetPrompt sets the prompt to be used when reading subsequent lines. +func (t *Terminal) SetPrompt(prompt string) { + t.lock.Lock() + defer t.lock.Unlock() + + t.prompt = []rune(prompt) +} + +func (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) { + // Move cursor to column zero at the start of the line. + t.move(t.cursorY, 0, t.cursorX, 0) + t.cursorX, t.cursorY = 0, 0 + t.clearLineToRight() + for t.cursorY < numPrevLines { + // Move down a line + t.move(0, 1, 0, 0) + t.cursorY++ + t.clearLineToRight() + } + // Move back to beginning. + t.move(t.cursorY, 0, 0, 0) + t.cursorX, t.cursorY = 0, 0 + + t.queue(t.prompt) + t.advanceCursor(visualLength(t.prompt)) + t.writeLine(t.line) + t.moveCursorToPos(t.pos) +} + +func (t *Terminal) SetSize(width, height int) error { + t.lock.Lock() + defer t.lock.Unlock() + + if width == 0 { + width = 1 + } + + oldWidth := t.termWidth + t.termWidth, t.termHeight = width, height + + switch { + case width == oldWidth: + // If the width didn't change then nothing else needs to be + // done. + return nil + case len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0: + // If there is nothing on current line and no prompt printed, + // just do nothing + return nil + case width < oldWidth: + // Some terminals (e.g. xterm) will truncate lines that were + // too long when shinking. Others, (e.g. gnome-terminal) will + // attempt to wrap them. For the former, repainting t.maxLine + // works great, but that behaviour goes badly wrong in the case + // of the latter because they have doubled every full line. + + // We assume that we are working on a terminal that wraps lines + // and adjust the cursor position based on every previous line + // wrapping and turning into two. This causes the prompt on + // xterms to move upwards, which isn't great, but it avoids a + // huge mess with gnome-terminal. + if t.cursorX >= t.termWidth { + t.cursorX = t.termWidth - 1 + } + t.cursorY *= 2 + t.clearAndRepaintLinePlusNPrevious(t.maxLine * 2) + case width > oldWidth: + // If the terminal expands then our position calculations will + // be wrong in the future because we think the cursor is + // |t.pos| chars into the string, but there will be a gap at + // the end of any wrapped line. + // + // But the position will actually be correct until we move, so + // we can move back to the beginning and repaint everything. + t.clearAndRepaintLinePlusNPrevious(t.maxLine) + } + + _, err := t.c.Write(t.outBuf) + t.outBuf = t.outBuf[:0] + return err +} + +type pasteIndicatorError struct{} + +func (pasteIndicatorError) Error() string { + return "terminal: ErrPasteIndicator not correctly handled" +} + +// ErrPasteIndicator may be returned from ReadLine as the error, in addition +// to valid line data. It indicates that bracketed paste mode is enabled and +// that the returned line consists only of pasted data. Programs may wish to +// interpret pasted data more literally than typed data. +var ErrPasteIndicator = pasteIndicatorError{} + +// SetBracketedPasteMode requests that the terminal bracket paste operations +// with markers. Not all terminals support this but, if it is supported, then +// enabling this mode will stop any autocomplete callback from running due to +// pastes. Additionally, any lines that are completely pasted will be returned +// from ReadLine with the error set to ErrPasteIndicator. +func (t *Terminal) SetBracketedPasteMode(on bool) { + if on { + io.WriteString(t.c, "\x1b[?2004h") + } else { + io.WriteString(t.c, "\x1b[?2004l") + } +} + +// stRingBuffer is a ring buffer of strings. +type stRingBuffer struct { + // entries contains max elements. + entries []string + max int + // head contains the index of the element most recently added to the ring. + head int + // size contains the number of elements in the ring. + size int +} + +func (s *stRingBuffer) Add(a string) { + if s.entries == nil { + const defaultNumEntries = 100 + s.entries = make([]string, defaultNumEntries) + s.max = defaultNumEntries + } + + s.head = (s.head + 1) % s.max + s.entries[s.head] = a + if s.size < s.max { + s.size++ + } +} + +// NthPreviousEntry returns the value passed to the nth previous call to Add. +// If n is zero then the immediately prior value is returned, if one, then the +// next most recent, and so on. If such an element doesn't exist then ok is +// false. +func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) { + if n >= s.size { + return "", false + } + index := s.head - n + if index < 0 { + index += s.max + } + return s.entries[index], true +} diff --git a/modules/crypto/ssh/terminal/terminal_test.go b/modules/crypto/ssh/terminal/terminal_test.go new file mode 100755 index 000000000..a663fe41b --- /dev/null +++ b/modules/crypto/ssh/terminal/terminal_test.go @@ -0,0 +1,269 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package terminal + +import ( + "io" + "testing" +) + +type MockTerminal struct { + toSend []byte + bytesPerRead int + received []byte +} + +func (c *MockTerminal) Read(data []byte) (n int, err error) { + n = len(data) + if n == 0 { + return + } + if n > len(c.toSend) { + n = len(c.toSend) + } + if n == 0 { + return 0, io.EOF + } + if c.bytesPerRead > 0 && n > c.bytesPerRead { + n = c.bytesPerRead + } + copy(data, c.toSend[:n]) + c.toSend = c.toSend[n:] + return +} + +func (c *MockTerminal) Write(data []byte) (n int, err error) { + c.received = append(c.received, data...) + return len(data), nil +} + +func TestClose(t *testing.T) { + c := &MockTerminal{} + ss := NewTerminal(c, "> ") + line, err := ss.ReadLine() + if line != "" { + t.Errorf("Expected empty line but got: %s", line) + } + if err != io.EOF { + t.Errorf("Error should have been EOF but got: %s", err) + } +} + +var keyPressTests = []struct { + in string + line string + err error + throwAwayLines int +}{ + { + err: io.EOF, + }, + { + in: "\r", + line: "", + }, + { + in: "foo\r", + line: "foo", + }, + { + in: "a\x1b[Cb\r", // right + line: "ab", + }, + { + in: "a\x1b[Db\r", // left + line: "ba", + }, + { + in: "a\177b\r", // backspace + line: "b", + }, + { + in: "\x1b[A\r", // up + }, + { + in: "\x1b[B\r", // down + }, + { + in: "line\x1b[A\x1b[B\r", // up then down + line: "line", + }, + { + in: "line1\rline2\x1b[A\r", // recall previous line. + line: "line1", + throwAwayLines: 1, + }, + { + // recall two previous lines and append. + in: "line1\rline2\rline3\x1b[A\x1b[Axxx\r", + line: "line1xxx", + throwAwayLines: 2, + }, + { + // Ctrl-A to move to beginning of line followed by ^K to kill + // line. + in: "a b \001\013\r", + line: "", + }, + { + // Ctrl-A to move to beginning of line, Ctrl-E to move to end, + // finally ^K to kill nothing. + in: "a b \001\005\013\r", + line: "a b ", + }, + { + in: "\027\r", + line: "", + }, + { + in: "a\027\r", + line: "", + }, + { + in: "a \027\r", + line: "", + }, + { + in: "a b\027\r", + line: "a ", + }, + { + in: "a b \027\r", + line: "a ", + }, + { + in: "one two thr\x1b[D\027\r", + line: "one two r", + }, + { + in: "\013\r", + line: "", + }, + { + in: "a\013\r", + line: "a", + }, + { + in: "ab\x1b[D\013\r", + line: "a", + }, + { + in: "Ξεσκεπάζω\r", + line: "Ξεσκεπάζω", + }, + { + in: "£\r\x1b[A\177\r", // non-ASCII char, enter, up, backspace. + line: "", + throwAwayLines: 1, + }, + { + in: "£\r££\x1b[A\x1b[B\177\r", // non-ASCII char, enter, 2x non-ASCII, up, down, backspace, enter. + line: "£", + throwAwayLines: 1, + }, + { + // Ctrl-D at the end of the line should be ignored. + in: "a\004\r", + line: "a", + }, + { + // a, b, left, Ctrl-D should erase the b. + in: "ab\x1b[D\004\r", + line: "a", + }, + { + // a, b, c, d, left, left, ^U should erase to the beginning of + // the line. + in: "abcd\x1b[D\x1b[D\025\r", + line: "cd", + }, + { + // Bracketed paste mode: control sequences should be returned + // verbatim in paste mode. + in: "abc\x1b[200~de\177f\x1b[201~\177\r", + line: "abcde\177", + }, + { + // Enter in bracketed paste mode should still work. + in: "abc\x1b[200~d\refg\x1b[201~h\r", + line: "efgh", + throwAwayLines: 1, + }, + { + // Lines consisting entirely of pasted data should be indicated as such. + in: "\x1b[200~a\r", + line: "a", + err: ErrPasteIndicator, + }, +} + +func TestKeyPresses(t *testing.T) { + for i, test := range keyPressTests { + for j := 1; j < len(test.in); j++ { + c := &MockTerminal{ + toSend: []byte(test.in), + bytesPerRead: j, + } + ss := NewTerminal(c, "> ") + for k := 0; k < test.throwAwayLines; k++ { + _, err := ss.ReadLine() + if err != nil { + t.Errorf("Throwaway line %d from test %d resulted in error: %s", k, i, err) + } + } + line, err := ss.ReadLine() + if line != test.line { + t.Errorf("Line resulting from test %d (%d bytes per read) was '%s', expected '%s'", i, j, line, test.line) + break + } + if err != test.err { + t.Errorf("Error resulting from test %d (%d bytes per read) was '%v', expected '%v'", i, j, err, test.err) + break + } + } + } +} + +func TestPasswordNotSaved(t *testing.T) { + c := &MockTerminal{ + toSend: []byte("password\r\x1b[A\r"), + bytesPerRead: 1, + } + ss := NewTerminal(c, "> ") + pw, _ := ss.ReadPassword("> ") + if pw != "password" { + t.Fatalf("failed to read password, got %s", pw) + } + line, _ := ss.ReadLine() + if len(line) > 0 { + t.Fatalf("password was saved in history") + } +} + +var setSizeTests = []struct { + width, height int +}{ + {40, 13}, + {80, 24}, + {132, 43}, +} + +func TestTerminalSetSize(t *testing.T) { + for _, setSize := range setSizeTests { + c := &MockTerminal{ + toSend: []byte("password\r\x1b[A\r"), + bytesPerRead: 1, + } + ss := NewTerminal(c, "> ") + ss.SetSize(setSize.width, setSize.height) + pw, _ := ss.ReadPassword("Password: ") + if pw != "password" { + t.Fatalf("failed to read password, got %s", pw) + } + if string(c.received) != "Password: \r\n" { + t.Errorf("failed to set the temporary prompt expected %q, got %q", "Password: ", c.received) + } + } +} diff --git a/modules/crypto/ssh/terminal/util.go b/modules/crypto/ssh/terminal/util.go new file mode 100755 index 000000000..0763c9a97 --- /dev/null +++ b/modules/crypto/ssh/terminal/util.go @@ -0,0 +1,128 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux,!appengine netbsd openbsd + +// Package terminal provides support functions for dealing with terminals, as +// commonly found on UNIX systems. +// +// Putting a terminal into raw mode is the most common requirement: +// +// oldState, err := terminal.MakeRaw(0) +// if err != nil { +// panic(err) +// } +// defer terminal.Restore(0, oldState) +package terminal + +import ( + "io" + "syscall" + "unsafe" +) + +// State contains the state of a terminal. +type State struct { + termios syscall.Termios +} + +// IsTerminal returns true if the given file descriptor is a terminal. +func IsTerminal(fd int) bool { + var termios syscall.Termios + _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) + return err == 0 +} + +// MakeRaw put the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +func MakeRaw(fd int) (*State, error) { + var oldState State + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 { + return nil, err + } + + newState := oldState.termios + newState.Iflag &^= syscall.ISTRIP | syscall.INLCR | syscall.ICRNL | syscall.IGNCR | syscall.IXON | syscall.IXOFF + newState.Lflag &^= syscall.ECHO | syscall.ICANON | syscall.ISIG + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 { + return nil, err + } + + return &oldState, nil +} + +// GetState returns the current state of a terminal which may be useful to +// restore the terminal after a signal. +func GetState(fd int) (*State, error) { + var oldState State + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 { + return nil, err + } + + return &oldState, nil +} + +// Restore restores the terminal connected to the given file descriptor to a +// previous state. +func Restore(fd int, state *State) error { + _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&state.termios)), 0, 0, 0) + return err +} + +// GetSize returns the dimensions of the given terminal. +func GetSize(fd int) (width, height int, err error) { + var dimensions [4]uint16 + + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&dimensions)), 0, 0, 0); err != 0 { + return -1, -1, err + } + return int(dimensions[1]), int(dimensions[0]), nil +} + +// ReadPassword reads a line of input from a terminal without local echo. This +// is commonly used for inputting passwords and other sensitive data. The slice +// returned does not include the \n. +func ReadPassword(fd int) ([]byte, error) { + var oldState syscall.Termios + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0); err != 0 { + return nil, err + } + + newState := oldState + newState.Lflag &^= syscall.ECHO + newState.Lflag |= syscall.ICANON | syscall.ISIG + newState.Iflag |= syscall.ICRNL + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 { + return nil, err + } + + defer func() { + syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0) + }() + + var buf [16]byte + var ret []byte + for { + n, err := syscall.Read(fd, buf[:]) + if err != nil { + return nil, err + } + if n == 0 { + if len(ret) == 0 { + return nil, io.EOF + } + break + } + if buf[n-1] == '\n' { + n-- + } + ret = append(ret, buf[:n]...) + if n < len(buf) { + break + } + } + + return ret, nil +} diff --git a/modules/crypto/ssh/terminal/util_bsd.go b/modules/crypto/ssh/terminal/util_bsd.go new file mode 100755 index 000000000..9c1ffd145 --- /dev/null +++ b/modules/crypto/ssh/terminal/util_bsd.go @@ -0,0 +1,12 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd netbsd openbsd + +package terminal + +import "syscall" + +const ioctlReadTermios = syscall.TIOCGETA +const ioctlWriteTermios = syscall.TIOCSETA diff --git a/modules/crypto/ssh/terminal/util_linux.go b/modules/crypto/ssh/terminal/util_linux.go new file mode 100755 index 000000000..5883b22d7 --- /dev/null +++ b/modules/crypto/ssh/terminal/util_linux.go @@ -0,0 +1,11 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package terminal + +// These constants are declared here, rather than importing +// them from the syscall package as some syscall packages, even +// on linux, for example gccgo, do not declare them. +const ioctlReadTermios = 0x5401 // syscall.TCGETS +const ioctlWriteTermios = 0x5402 // syscall.TCSETS diff --git a/modules/crypto/ssh/terminal/util_windows.go b/modules/crypto/ssh/terminal/util_windows.go new file mode 100755 index 000000000..2dd6c3d97 --- /dev/null +++ b/modules/crypto/ssh/terminal/util_windows.go @@ -0,0 +1,174 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// Package terminal provides support functions for dealing with terminals, as +// commonly found on UNIX systems. +// +// Putting a terminal into raw mode is the most common requirement: +// +// oldState, err := terminal.MakeRaw(0) +// if err != nil { +// panic(err) +// } +// defer terminal.Restore(0, oldState) +package terminal + +import ( + "io" + "syscall" + "unsafe" +) + +const ( + enableLineInput = 2 + enableEchoInput = 4 + enableProcessedInput = 1 + enableWindowInput = 8 + enableMouseInput = 16 + enableInsertMode = 32 + enableQuickEditMode = 64 + enableExtendedFlags = 128 + enableAutoPosition = 256 + enableProcessedOutput = 1 + enableWrapAtEolOutput = 2 +) + +var kernel32 = syscall.NewLazyDLL("kernel32.dll") + +var ( + procGetConsoleMode = kernel32.NewProc("GetConsoleMode") + procSetConsoleMode = kernel32.NewProc("SetConsoleMode") + procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") +) + +type ( + short int16 + word uint16 + + coord struct { + x short + y short + } + smallRect struct { + left short + top short + right short + bottom short + } + consoleScreenBufferInfo struct { + size coord + cursorPosition coord + attributes word + window smallRect + maximumWindowSize coord + } +) + +type State struct { + mode uint32 +} + +// IsTerminal returns true if the given file descriptor is a terminal. +func IsTerminal(fd int) bool { + var st uint32 + r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) + return r != 0 && e == 0 +} + +// MakeRaw put the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +func MakeRaw(fd int) (*State, error) { + var st uint32 + _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) + if e != 0 { + return nil, error(e) + } + st &^= (enableEchoInput | enableProcessedInput | enableLineInput | enableProcessedOutput) + _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(st), 0) + if e != 0 { + return nil, error(e) + } + return &State{st}, nil +} + +// GetState returns the current state of a terminal which may be useful to +// restore the terminal after a signal. +func GetState(fd int) (*State, error) { + var st uint32 + _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) + if e != 0 { + return nil, error(e) + } + return &State{st}, nil +} + +// Restore restores the terminal connected to the given file descriptor to a +// previous state. +func Restore(fd int, state *State) error { + _, _, err := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(state.mode), 0) + return err +} + +// GetSize returns the dimensions of the given terminal. +func GetSize(fd int) (width, height int, err error) { + var info consoleScreenBufferInfo + _, _, e := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&info)), 0) + if e != 0 { + return 0, 0, error(e) + } + return int(info.size.x), int(info.size.y), nil +} + +// ReadPassword reads a line of input from a terminal without local echo. This +// is commonly used for inputting passwords and other sensitive data. The slice +// returned does not include the \n. +func ReadPassword(fd int) ([]byte, error) { + var st uint32 + _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) + if e != 0 { + return nil, error(e) + } + old := st + + st &^= (enableEchoInput) + st |= (enableProcessedInput | enableLineInput | enableProcessedOutput) + _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(st), 0) + if e != 0 { + return nil, error(e) + } + + defer func() { + syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(old), 0) + }() + + var buf [16]byte + var ret []byte + for { + n, err := syscall.Read(syscall.Handle(fd), buf[:]) + if err != nil { + return nil, err + } + if n == 0 { + if len(ret) == 0 { + return nil, io.EOF + } + break + } + if buf[n-1] == '\n' { + n-- + } + if n > 0 && buf[n-1] == '\r' { + n-- + } + ret = append(ret, buf[:n]...) + if n < len(buf) { + break + } + } + + return ret, nil +} diff --git a/modules/crypto/ssh/test/agent_unix_test.go b/modules/crypto/ssh/test/agent_unix_test.go new file mode 100755 index 000000000..f481253c9 --- /dev/null +++ b/modules/crypto/ssh/test/agent_unix_test.go @@ -0,0 +1,59 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd + +package test + +import ( + "bytes" + "testing" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/agent" +) + +func TestAgentForward(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + keyring := agent.NewKeyring() + if err := keyring.Add(agent.AddedKey{PrivateKey: testPrivateKeys["dsa"]}); err != nil { + t.Fatalf("Error adding key: %s", err) + } + if err := keyring.Add(agent.AddedKey{ + PrivateKey: testPrivateKeys["dsa"], + ConfirmBeforeUse: true, + LifetimeSecs: 3600, + }); err != nil { + t.Fatalf("Error adding key with constraints: %s", err) + } + pub := testPublicKeys["dsa"] + + sess, err := conn.NewSession() + if err != nil { + t.Fatalf("NewSession: %v", err) + } + if err := agent.RequestAgentForwarding(sess); err != nil { + t.Fatalf("RequestAgentForwarding: %v", err) + } + + if err := agent.ForwardToAgent(conn, keyring); err != nil { + t.Fatalf("SetupForwardKeyring: %v", err) + } + out, err := sess.CombinedOutput("ssh-add -L") + if err != nil { + t.Fatalf("running ssh-add: %v, out %s", err, out) + } + key, _, _, _, err := ssh.ParseAuthorizedKey(out) + if err != nil { + t.Fatalf("ParseAuthorizedKey(%q): %v", out, err) + } + + if !bytes.Equal(key.Marshal(), pub.Marshal()) { + t.Fatalf("got key %s, want %s", ssh.MarshalAuthorizedKey(key), ssh.MarshalAuthorizedKey(pub)) + } +} diff --git a/modules/crypto/ssh/test/cert_test.go b/modules/crypto/ssh/test/cert_test.go new file mode 100755 index 000000000..364790f17 --- /dev/null +++ b/modules/crypto/ssh/test/cert_test.go @@ -0,0 +1,47 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd + +package test + +import ( + "crypto/rand" + "testing" + + "golang.org/x/crypto/ssh" +) + +func TestCertLogin(t *testing.T) { + s := newServer(t) + defer s.Shutdown() + + // Use a key different from the default. + clientKey := testSigners["dsa"] + caAuthKey := testSigners["ecdsa"] + cert := &ssh.Certificate{ + Key: clientKey.PublicKey(), + ValidPrincipals: []string{username()}, + CertType: ssh.UserCert, + ValidBefore: ssh.CertTimeInfinity, + } + if err := cert.SignCert(rand.Reader, caAuthKey); err != nil { + t.Fatalf("SetSignature: %v", err) + } + + certSigner, err := ssh.NewCertSigner(cert, clientKey) + if err != nil { + t.Fatalf("NewCertSigner: %v", err) + } + + conf := &ssh.ClientConfig{ + User: username(), + } + conf.Auth = append(conf.Auth, ssh.PublicKeys(certSigner)) + client, err := s.TryDial(conf) + if err != nil { + t.Fatalf("TryDial: %v", err) + } + client.Close() +} diff --git a/modules/crypto/ssh/test/doc.go b/modules/crypto/ssh/test/doc.go new file mode 100755 index 000000000..29ad65e96 --- /dev/null +++ b/modules/crypto/ssh/test/doc.go @@ -0,0 +1,7 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This package contains integration tests for the +// golang.org/x/crypto/ssh package. +package test diff --git a/modules/crypto/ssh/test/forward_unix_test.go b/modules/crypto/ssh/test/forward_unix_test.go new file mode 100755 index 000000000..877a88cde --- /dev/null +++ b/modules/crypto/ssh/test/forward_unix_test.go @@ -0,0 +1,160 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd + +package test + +import ( + "bytes" + "io" + "io/ioutil" + "math/rand" + "net" + "testing" + "time" +) + +func TestPortForward(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + sshListener, err := conn.Listen("tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + + go func() { + sshConn, err := sshListener.Accept() + if err != nil { + t.Fatalf("listen.Accept failed: %v", err) + } + + _, err = io.Copy(sshConn, sshConn) + if err != nil && err != io.EOF { + t.Fatalf("ssh client copy: %v", err) + } + sshConn.Close() + }() + + forwardedAddr := sshListener.Addr().String() + tcpConn, err := net.Dial("tcp", forwardedAddr) + if err != nil { + t.Fatalf("TCP dial failed: %v", err) + } + + readChan := make(chan []byte) + go func() { + data, _ := ioutil.ReadAll(tcpConn) + readChan <- data + }() + + // Invent some data. + data := make([]byte, 100*1000) + for i := range data { + data[i] = byte(i % 255) + } + + var sent []byte + for len(sent) < 1000*1000 { + // Send random sized chunks + m := rand.Intn(len(data)) + n, err := tcpConn.Write(data[:m]) + if err != nil { + break + } + sent = append(sent, data[:n]...) + } + if err := tcpConn.(*net.TCPConn).CloseWrite(); err != nil { + t.Errorf("tcpConn.CloseWrite: %v", err) + } + + read := <-readChan + + if len(sent) != len(read) { + t.Fatalf("got %d bytes, want %d", len(read), len(sent)) + } + if bytes.Compare(sent, read) != 0 { + t.Fatalf("read back data does not match") + } + + if err := sshListener.Close(); err != nil { + t.Fatalf("sshListener.Close: %v", err) + } + + // Check that the forward disappeared. + tcpConn, err = net.Dial("tcp", forwardedAddr) + if err == nil { + tcpConn.Close() + t.Errorf("still listening to %s after closing", forwardedAddr) + } +} + +func TestAcceptClose(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + + sshListener, err := conn.Listen("tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + + quit := make(chan error, 1) + go func() { + for { + c, err := sshListener.Accept() + if err != nil { + quit <- err + break + } + c.Close() + } + }() + sshListener.Close() + + select { + case <-time.After(1 * time.Second): + t.Errorf("timeout: listener did not close.") + case err := <-quit: + t.Logf("quit as expected (error %v)", err) + } +} + +// Check that listeners exit if the underlying client transport dies. +func TestPortForwardConnectionClose(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + + sshListener, err := conn.Listen("tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + + quit := make(chan error, 1) + go func() { + for { + c, err := sshListener.Accept() + if err != nil { + quit <- err + break + } + c.Close() + } + }() + + // It would be even nicer if we closed the server side, but it + // is more involved as the fd for that side is dup()ed. + server.clientConn.Close() + + select { + case <-time.After(1 * time.Second): + t.Errorf("timeout: listener did not close.") + case err := <-quit: + t.Logf("quit as expected (error %v)", err) + } +} diff --git a/modules/crypto/ssh/test/session_test.go b/modules/crypto/ssh/test/session_test.go new file mode 100755 index 000000000..c0e714ba9 --- /dev/null +++ b/modules/crypto/ssh/test/session_test.go @@ -0,0 +1,340 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !windows + +package test + +// Session functional tests. + +import ( + "bytes" + "errors" + "io" + "strings" + "testing" + + "golang.org/x/crypto/ssh" +) + +func TestRunCommandSuccess(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + err = session.Run("true") + if err != nil { + t.Fatalf("session failed: %v", err) + } +} + +func TestHostKeyCheck(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + + conf := clientConfig() + hostDB := hostKeyDB() + conf.HostKeyCallback = hostDB.Check + + // change the keys. + hostDB.keys[ssh.KeyAlgoRSA][25]++ + hostDB.keys[ssh.KeyAlgoDSA][25]++ + hostDB.keys[ssh.KeyAlgoECDSA256][25]++ + + conn, err := server.TryDial(conf) + if err == nil { + conn.Close() + t.Fatalf("dial should have failed.") + } else if !strings.Contains(err.Error(), "host key mismatch") { + t.Fatalf("'host key mismatch' not found in %v", err) + } +} + +func TestRunCommandStdin(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + + r, w := io.Pipe() + defer r.Close() + defer w.Close() + session.Stdin = r + + err = session.Run("true") + if err != nil { + t.Fatalf("session failed: %v", err) + } +} + +func TestRunCommandStdinError(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + + r, w := io.Pipe() + defer r.Close() + session.Stdin = r + pipeErr := errors.New("closing write end of pipe") + w.CloseWithError(pipeErr) + + err = session.Run("true") + if err != pipeErr { + t.Fatalf("expected %v, found %v", pipeErr, err) + } +} + +func TestRunCommandFailed(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + err = session.Run(`bash -c "kill -9 $$"`) + if err == nil { + t.Fatalf("session succeeded: %v", err) + } +} + +func TestRunCommandWeClosed(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + err = session.Shell() + if err != nil { + t.Fatalf("shell failed: %v", err) + } + err = session.Close() + if err != nil { + t.Fatalf("shell failed: %v", err) + } +} + +func TestFuncLargeRead(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("unable to create new session: %s", err) + } + + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("unable to acquire stdout pipe: %s", err) + } + + err = session.Start("dd if=/dev/urandom bs=2048 count=1024") + if err != nil { + t.Fatalf("unable to execute remote command: %s", err) + } + + buf := new(bytes.Buffer) + n, err := io.Copy(buf, stdout) + if err != nil { + t.Fatalf("error reading from remote stdout: %s", err) + } + + if n != 2048*1024 { + t.Fatalf("Expected %d bytes but read only %d from remote command", 2048, n) + } +} + +func TestKeyChange(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conf := clientConfig() + hostDB := hostKeyDB() + conf.HostKeyCallback = hostDB.Check + conf.RekeyThreshold = 1024 + conn := server.Dial(conf) + defer conn.Close() + + for i := 0; i < 4; i++ { + session, err := conn.NewSession() + if err != nil { + t.Fatalf("unable to create new session: %s", err) + } + + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("unable to acquire stdout pipe: %s", err) + } + + err = session.Start("dd if=/dev/urandom bs=1024 count=1") + if err != nil { + t.Fatalf("unable to execute remote command: %s", err) + } + buf := new(bytes.Buffer) + n, err := io.Copy(buf, stdout) + if err != nil { + t.Fatalf("error reading from remote stdout: %s", err) + } + + want := int64(1024) + if n != want { + t.Fatalf("Expected %d bytes but read only %d from remote command", want, n) + } + } + + if changes := hostDB.checkCount; changes < 4 { + t.Errorf("got %d key changes, want 4", changes) + } +} + +func TestInvalidTerminalMode(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + + if err = session.RequestPty("vt100", 80, 40, ssh.TerminalModes{255: 1984}); err == nil { + t.Fatalf("req-pty failed: successful request with invalid mode") + } +} + +func TestValidTerminalMode(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("unable to acquire stdout pipe: %s", err) + } + + stdin, err := session.StdinPipe() + if err != nil { + t.Fatalf("unable to acquire stdin pipe: %s", err) + } + + tm := ssh.TerminalModes{ssh.ECHO: 0} + if err = session.RequestPty("xterm", 80, 40, tm); err != nil { + t.Fatalf("req-pty failed: %s", err) + } + + err = session.Shell() + if err != nil { + t.Fatalf("session failed: %s", err) + } + + stdin.Write([]byte("stty -a && exit\n")) + + var buf bytes.Buffer + if _, err := io.Copy(&buf, stdout); err != nil { + t.Fatalf("reading failed: %s", err) + } + + if sttyOutput := buf.String(); !strings.Contains(sttyOutput, "-echo ") { + t.Fatalf("terminal mode failure: expected -echo in stty output, got %s", sttyOutput) + } +} + +func TestCiphers(t *testing.T) { + var config ssh.Config + config.SetDefaults() + cipherOrder := config.Ciphers + // This cipher will not be tested when commented out in cipher.go it will + // fallback to the next available as per line 292. + cipherOrder = append(cipherOrder, "aes128-cbc") + + for _, ciph := range cipherOrder { + server := newServer(t) + defer server.Shutdown() + conf := clientConfig() + conf.Ciphers = []string{ciph} + // Don't fail if sshd doesnt have the cipher. + conf.Ciphers = append(conf.Ciphers, cipherOrder...) + conn, err := server.TryDial(conf) + if err == nil { + conn.Close() + } else { + t.Fatalf("failed for cipher %q", ciph) + } + } +} + +func TestMACs(t *testing.T) { + var config ssh.Config + config.SetDefaults() + macOrder := config.MACs + + for _, mac := range macOrder { + server := newServer(t) + defer server.Shutdown() + conf := clientConfig() + conf.MACs = []string{mac} + // Don't fail if sshd doesnt have the MAC. + conf.MACs = append(conf.MACs, macOrder...) + if conn, err := server.TryDial(conf); err == nil { + conn.Close() + } else { + t.Fatalf("failed for MAC %q", mac) + } + } +} + +func TestKeyExchanges(t *testing.T) { + var config ssh.Config + config.SetDefaults() + kexOrder := config.KeyExchanges + for _, kex := range kexOrder { + server := newServer(t) + defer server.Shutdown() + conf := clientConfig() + // Don't fail if sshd doesnt have the kex. + conf.KeyExchanges = append([]string{kex}, kexOrder...) + conn, err := server.TryDial(conf) + if err == nil { + conn.Close() + } else { + t.Errorf("failed for kex %q", kex) + } + } +} diff --git a/modules/crypto/ssh/test/tcpip_test.go b/modules/crypto/ssh/test/tcpip_test.go new file mode 100755 index 000000000..a2eb9358d --- /dev/null +++ b/modules/crypto/ssh/test/tcpip_test.go @@ -0,0 +1,46 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !windows + +package test + +// direct-tcpip functional tests + +import ( + "io" + "net" + "testing" +) + +func TestDial(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + sshConn := server.Dial(clientConfig()) + defer sshConn.Close() + + l, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + t.Fatalf("Listen: %v", err) + } + defer l.Close() + + go func() { + for { + c, err := l.Accept() + if err != nil { + break + } + + io.WriteString(c, c.RemoteAddr().String()) + c.Close() + } + }() + + conn, err := sshConn.Dial("tcp", l.Addr().String()) + if err != nil { + t.Fatalf("Dial: %v", err) + } + defer conn.Close() +} diff --git a/modules/crypto/ssh/test/test_unix_test.go b/modules/crypto/ssh/test/test_unix_test.go new file mode 100755 index 000000000..f1fc50b2e --- /dev/null +++ b/modules/crypto/ssh/test/test_unix_test.go @@ -0,0 +1,261 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd plan9 + +package test + +// functional test harness for unix. + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "net" + "os" + "os/exec" + "os/user" + "path/filepath" + "testing" + "text/template" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/testdata" +) + +const sshd_config = ` +Protocol 2 +HostKey {{.Dir}}/id_rsa +HostKey {{.Dir}}/id_dsa +HostKey {{.Dir}}/id_ecdsa +Pidfile {{.Dir}}/sshd.pid +#UsePrivilegeSeparation no +KeyRegenerationInterval 3600 +ServerKeyBits 768 +SyslogFacility AUTH +LogLevel DEBUG2 +LoginGraceTime 120 +PermitRootLogin no +StrictModes no +RSAAuthentication yes +PubkeyAuthentication yes +AuthorizedKeysFile {{.Dir}}/id_user.pub +TrustedUserCAKeys {{.Dir}}/id_ecdsa.pub +IgnoreRhosts yes +RhostsRSAAuthentication no +HostbasedAuthentication no +` + +var configTmpl = template.Must(template.New("").Parse(sshd_config)) + +type server struct { + t *testing.T + cleanup func() // executed during Shutdown + configfile string + cmd *exec.Cmd + output bytes.Buffer // holds stderr from sshd process + + // Client half of the network connection. + clientConn net.Conn +} + +func username() string { + var username string + if user, err := user.Current(); err == nil { + username = user.Username + } else { + // user.Current() currently requires cgo. If an error is + // returned attempt to get the username from the environment. + log.Printf("user.Current: %v; falling back on $USER", err) + username = os.Getenv("USER") + } + if username == "" { + panic("Unable to get username") + } + return username +} + +type storedHostKey struct { + // keys map from an algorithm string to binary key data. + keys map[string][]byte + + // checkCount counts the Check calls. Used for testing + // rekeying. + checkCount int +} + +func (k *storedHostKey) Add(key ssh.PublicKey) { + if k.keys == nil { + k.keys = map[string][]byte{} + } + k.keys[key.Type()] = key.Marshal() +} + +func (k *storedHostKey) Check(addr string, remote net.Addr, key ssh.PublicKey) error { + k.checkCount++ + algo := key.Type() + + if k.keys == nil || bytes.Compare(key.Marshal(), k.keys[algo]) != 0 { + return fmt.Errorf("host key mismatch. Got %q, want %q", key, k.keys[algo]) + } + return nil +} + +func hostKeyDB() *storedHostKey { + keyChecker := &storedHostKey{} + keyChecker.Add(testPublicKeys["ecdsa"]) + keyChecker.Add(testPublicKeys["rsa"]) + keyChecker.Add(testPublicKeys["dsa"]) + return keyChecker +} + +func clientConfig() *ssh.ClientConfig { + config := &ssh.ClientConfig{ + User: username(), + Auth: []ssh.AuthMethod{ + ssh.PublicKeys(testSigners["user"]), + }, + HostKeyCallback: hostKeyDB().Check, + } + return config +} + +// unixConnection creates two halves of a connected net.UnixConn. It +// is used for connecting the Go SSH client with sshd without opening +// ports. +func unixConnection() (*net.UnixConn, *net.UnixConn, error) { + dir, err := ioutil.TempDir("", "unixConnection") + if err != nil { + return nil, nil, err + } + defer os.Remove(dir) + + addr := filepath.Join(dir, "ssh") + listener, err := net.Listen("unix", addr) + if err != nil { + return nil, nil, err + } + defer listener.Close() + c1, err := net.Dial("unix", addr) + if err != nil { + return nil, nil, err + } + + c2, err := listener.Accept() + if err != nil { + c1.Close() + return nil, nil, err + } + + return c1.(*net.UnixConn), c2.(*net.UnixConn), nil +} + +func (s *server) TryDial(config *ssh.ClientConfig) (*ssh.Client, error) { + sshd, err := exec.LookPath("sshd") + if err != nil { + s.t.Skipf("skipping test: %v", err) + } + + c1, c2, err := unixConnection() + if err != nil { + s.t.Fatalf("unixConnection: %v", err) + } + + s.cmd = exec.Command(sshd, "-f", s.configfile, "-i", "-e") + f, err := c2.File() + if err != nil { + s.t.Fatalf("UnixConn.File: %v", err) + } + defer f.Close() + s.cmd.Stdin = f + s.cmd.Stdout = f + s.cmd.Stderr = &s.output + if err := s.cmd.Start(); err != nil { + s.t.Fail() + s.Shutdown() + s.t.Fatalf("s.cmd.Start: %v", err) + } + s.clientConn = c1 + conn, chans, reqs, err := ssh.NewClientConn(c1, "", config) + if err != nil { + return nil, err + } + return ssh.NewClient(conn, chans, reqs), nil +} + +func (s *server) Dial(config *ssh.ClientConfig) *ssh.Client { + conn, err := s.TryDial(config) + if err != nil { + s.t.Fail() + s.Shutdown() + s.t.Fatalf("ssh.Client: %v", err) + } + return conn +} + +func (s *server) Shutdown() { + if s.cmd != nil && s.cmd.Process != nil { + // Don't check for errors; if it fails it's most + // likely "os: process already finished", and we don't + // care about that. Use os.Interrupt, so child + // processes are killed too. + s.cmd.Process.Signal(os.Interrupt) + s.cmd.Wait() + } + if s.t.Failed() { + // log any output from sshd process + s.t.Logf("sshd: %s", s.output.String()) + } + s.cleanup() +} + +func writeFile(path string, contents []byte) { + f, err := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600) + if err != nil { + panic(err) + } + defer f.Close() + if _, err := f.Write(contents); err != nil { + panic(err) + } +} + +// newServer returns a new mock ssh server. +func newServer(t *testing.T) *server { + if testing.Short() { + t.Skip("skipping test due to -short") + } + dir, err := ioutil.TempDir("", "sshtest") + if err != nil { + t.Fatal(err) + } + f, err := os.Create(filepath.Join(dir, "sshd_config")) + if err != nil { + t.Fatal(err) + } + err = configTmpl.Execute(f, map[string]string{ + "Dir": dir, + }) + if err != nil { + t.Fatal(err) + } + f.Close() + + for k, v := range testdata.PEMBytes { + filename := "id_" + k + writeFile(filepath.Join(dir, filename), v) + writeFile(filepath.Join(dir, filename+".pub"), ssh.MarshalAuthorizedKey(testPublicKeys[k])) + } + + return &server{ + t: t, + configfile: f.Name(), + cleanup: func() { + if err := os.RemoveAll(dir); err != nil { + t.Error(err) + } + }, + } +} diff --git a/modules/crypto/ssh/test/testdata_test.go b/modules/crypto/ssh/test/testdata_test.go new file mode 100755 index 000000000..ae48c7516 --- /dev/null +++ b/modules/crypto/ssh/test/testdata_test.go @@ -0,0 +1,64 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// IMPLEMENTOR NOTE: To avoid a package loop, this file is in three places: +// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three +// instances. + +package test + +import ( + "crypto/rand" + "fmt" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/testdata" +) + +var ( + testPrivateKeys map[string]interface{} + testSigners map[string]ssh.Signer + testPublicKeys map[string]ssh.PublicKey +) + +func init() { + var err error + + n := len(testdata.PEMBytes) + testPrivateKeys = make(map[string]interface{}, n) + testSigners = make(map[string]ssh.Signer, n) + testPublicKeys = make(map[string]ssh.PublicKey, n) + for t, k := range testdata.PEMBytes { + testPrivateKeys[t], err = ssh.ParseRawPrivateKey(k) + if err != nil { + panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) + } + testSigners[t], err = ssh.NewSignerFromKey(testPrivateKeys[t]) + if err != nil { + panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) + } + testPublicKeys[t] = testSigners[t].PublicKey() + } + + // Create a cert and sign it for use in tests. + testCert := &ssh.Certificate{ + Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage + ValidAfter: 0, // unix epoch + ValidBefore: ssh.CertTimeInfinity, // The end of currently representable time. + Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + Key: testPublicKeys["ecdsa"], + SignatureKey: testPublicKeys["rsa"], + Permissions: ssh.Permissions{ + CriticalOptions: map[string]string{}, + Extensions: map[string]string{}, + }, + } + testCert.SignCert(rand.Reader, testSigners["rsa"]) + testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] + testSigners["cert"], err = ssh.NewCertSigner(testCert, testSigners["ecdsa"]) + if err != nil { + panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) + } +} diff --git a/modules/crypto/ssh/testdata/doc.go b/modules/crypto/ssh/testdata/doc.go new file mode 100755 index 000000000..ae7bd8b89 --- /dev/null +++ b/modules/crypto/ssh/testdata/doc.go @@ -0,0 +1,8 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This package contains test data shared between the various subpackages of +// the golang.org/x/crypto/ssh package. Under no circumstance should +// this data be used for production code. +package testdata diff --git a/modules/crypto/ssh/testdata/keys.go b/modules/crypto/ssh/testdata/keys.go new file mode 100755 index 000000000..5ff1c0e03 --- /dev/null +++ b/modules/crypto/ssh/testdata/keys.go @@ -0,0 +1,43 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package testdata + +var PEMBytes = map[string][]byte{ + "dsa": []byte(`-----BEGIN DSA PRIVATE KEY----- +MIIBuwIBAAKBgQD6PDSEyXiI9jfNs97WuM46MSDCYlOqWw80ajN16AohtBncs1YB +lHk//dQOvCYOsYaE+gNix2jtoRjwXhDsc25/IqQbU1ahb7mB8/rsaILRGIbA5WH3 +EgFtJmXFovDz3if6F6TzvhFpHgJRmLYVR8cqsezL3hEZOvvs2iH7MorkxwIVAJHD +nD82+lxh2fb4PMsIiaXudAsBAoGAQRf7Q/iaPRn43ZquUhd6WwvirqUj+tkIu6eV +2nZWYmXLlqFQKEy4Tejl7Wkyzr2OSYvbXLzo7TNxLKoWor6ips0phYPPMyXld14r +juhT24CrhOzuLMhDduMDi032wDIZG4Y+K7ElU8Oufn8Sj5Wge8r6ANmmVgmFfynr +FhdYCngCgYEA3ucGJ93/Mx4q4eKRDxcWD3QzWyqpbRVRRV1Vmih9Ha/qC994nJFz +DQIdjxDIT2Rk2AGzMqFEB68Zc3O+Wcsmz5eWWzEwFxaTwOGWTyDqsDRLm3fD+QYj +nOwuxb0Kce+gWI8voWcqC9cyRm09jGzu2Ab3Bhtpg8JJ8L7gS3MRZK4CFEx4UAfY +Fmsr0W6fHB9nhS4/UXM8 +-----END DSA PRIVATE KEY----- +`), + "ecdsa": []byte(`-----BEGIN EC PRIVATE KEY----- +MHcCAQEEINGWx0zo6fhJ/0EAfrPzVFyFC9s18lBt3cRoEDhS3ARooAoGCCqGSM49 +AwEHoUQDQgAEi9Hdw6KvZcWxfg2IDhA7UkpDtzzt6ZqJXSsFdLd+Kx4S3Sx4cVO+ +6/ZOXRnPmNAlLUqjShUsUBBngG0u2fqEqA== +-----END EC PRIVATE KEY----- +`), + "rsa": []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIBOwIBAAJBALdGZxkXDAjsYk10ihwU6Id2KeILz1TAJuoq4tOgDWxEEGeTrcld +r/ZwVaFzjWzxaf6zQIJbfaSEAhqD5yo72+sCAwEAAQJBAK8PEVU23Wj8mV0QjwcJ +tZ4GcTUYQL7cF4+ezTCE9a1NrGnCP2RuQkHEKxuTVrxXt+6OF15/1/fuXnxKjmJC +nxkCIQDaXvPPBi0c7vAxGwNY9726x01/dNbHCE0CBtcotobxpwIhANbbQbh3JHVW +2haQh4fAG5mhesZKAGcxTyv4mQ7uMSQdAiAj+4dzMpJWdSzQ+qGHlHMIBvVHLkqB +y2VdEyF7DPCZewIhAI7GOI/6LDIFOvtPo6Bj2nNmyQ1HU6k/LRtNIXi4c9NJAiAr +rrxx26itVhJmcvoUhOjwuzSlP2bE5VHAvkGB352YBg== +-----END RSA PRIVATE KEY----- +`), + "user": []byte(`-----BEGIN EC PRIVATE KEY----- +MHcCAQEEILYCAeq8f7V4vSSypRw7pxy8yz3V5W4qg8kSC3zJhqpQoAoGCCqGSM49 +AwEHoUQDQgAEYcO2xNKiRUYOLEHM7VYAp57HNyKbOdYtHD83Z4hzNPVC4tM5mdGD +PLL8IEwvYu2wq+lpXfGQnNMbzYf9gspG0w== +-----END EC PRIVATE KEY----- +`), +} diff --git a/modules/crypto/ssh/testdata_test.go b/modules/crypto/ssh/testdata_test.go new file mode 100755 index 000000000..ca43fc6d7 --- /dev/null +++ b/modules/crypto/ssh/testdata_test.go @@ -0,0 +1,63 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// IMPLEMENTOR NOTE: To avoid a package loop, this file is in three places: +// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three +// instances. + +package ssh + +import ( + "crypto/rand" + "fmt" + + "github.com/gogits/gogs/modules/crypto/ssh/testdata" +) + +var ( + testPrivateKeys map[string]interface{} + testSigners map[string]Signer + testPublicKeys map[string]PublicKey +) + +func init() { + var err error + + n := len(testdata.PEMBytes) + testPrivateKeys = make(map[string]interface{}, n) + testSigners = make(map[string]Signer, n) + testPublicKeys = make(map[string]PublicKey, n) + for t, k := range testdata.PEMBytes { + testPrivateKeys[t], err = ParseRawPrivateKey(k) + if err != nil { + panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) + } + testSigners[t], err = NewSignerFromKey(testPrivateKeys[t]) + if err != nil { + panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) + } + testPublicKeys[t] = testSigners[t].PublicKey() + } + + // Create a cert and sign it for use in tests. + testCert := &Certificate{ + Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage + ValidAfter: 0, // unix epoch + ValidBefore: CertTimeInfinity, // The end of currently representable time. + Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + Key: testPublicKeys["ecdsa"], + SignatureKey: testPublicKeys["rsa"], + Permissions: Permissions{ + CriticalOptions: map[string]string{}, + Extensions: map[string]string{}, + }, + } + testCert.SignCert(rand.Reader, testSigners["rsa"]) + testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] + testSigners["cert"], err = NewCertSigner(testCert, testSigners["ecdsa"]) + if err != nil { + panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) + } +} diff --git a/modules/crypto/ssh/transport.go b/modules/crypto/ssh/transport.go new file mode 100755 index 000000000..8351d378e --- /dev/null +++ b/modules/crypto/ssh/transport.go @@ -0,0 +1,332 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bufio" + "errors" + "io" +) + +const ( + gcmCipherID = "aes128-gcm@openssh.com" + aes128cbcID = "aes128-cbc" +) + +// packetConn represents a transport that implements packet based +// operations. +type packetConn interface { + // Encrypt and send a packet of data to the remote peer. + writePacket(packet []byte) error + + // Read a packet from the connection + readPacket() ([]byte, error) + + // Close closes the write-side of the connection. + Close() error +} + +// transport is the keyingTransport that implements the SSH packet +// protocol. +type transport struct { + reader connectionState + writer connectionState + + bufReader *bufio.Reader + bufWriter *bufio.Writer + rand io.Reader + + io.Closer + + // Initial H used for the session ID. Once assigned this does + // not change, even during subsequent key exchanges. + sessionID []byte +} + +// getSessionID returns the ID of the SSH connection. The return value +// should not be modified. +func (t *transport) getSessionID() []byte { + if t.sessionID == nil { + panic("session ID not set yet") + } + return t.sessionID +} + +// packetCipher represents a combination of SSH encryption/MAC +// protocol. A single instance should be used for one direction only. +type packetCipher interface { + // writePacket encrypts the packet and writes it to w. The + // contents of the packet are generally scrambled. + writePacket(seqnum uint32, w io.Writer, rand io.Reader, packet []byte) error + + // readPacket reads and decrypts a packet of data. The + // returned packet may be overwritten by future calls of + // readPacket. + readPacket(seqnum uint32, r io.Reader) ([]byte, error) +} + +// connectionState represents one side (read or write) of the +// connection. This is necessary because each direction has its own +// keys, and can even have its own algorithms +type connectionState struct { + packetCipher + seqNum uint32 + dir direction + pendingKeyChange chan packetCipher +} + +// prepareKeyChange sets up key material for a keychange. The key changes in +// both directions are triggered by reading and writing a msgNewKey packet +// respectively. +func (t *transport) prepareKeyChange(algs *algorithms, kexResult *kexResult) error { + if t.sessionID == nil { + t.sessionID = kexResult.H + } + + kexResult.SessionID = t.sessionID + + if ciph, err := newPacketCipher(t.reader.dir, algs.r, kexResult); err != nil { + return err + } else { + t.reader.pendingKeyChange <- ciph + } + + if ciph, err := newPacketCipher(t.writer.dir, algs.w, kexResult); err != nil { + return err + } else { + t.writer.pendingKeyChange <- ciph + } + + return nil +} + +// Read and decrypt next packet. +func (t *transport) readPacket() ([]byte, error) { + return t.reader.readPacket(t.bufReader) +} + +func (s *connectionState) readPacket(r *bufio.Reader) ([]byte, error) { + packet, err := s.packetCipher.readPacket(s.seqNum, r) + s.seqNum++ + if err == nil && len(packet) == 0 { + err = errors.New("ssh: zero length packet") + } + + if len(packet) > 0 && packet[0] == msgNewKeys { + select { + case cipher := <-s.pendingKeyChange: + s.packetCipher = cipher + default: + return nil, errors.New("ssh: got bogus newkeys message.") + } + } + + // The packet may point to an internal buffer, so copy the + // packet out here. + fresh := make([]byte, len(packet)) + copy(fresh, packet) + + return fresh, err +} + +func (t *transport) writePacket(packet []byte) error { + return t.writer.writePacket(t.bufWriter, t.rand, packet) +} + +func (s *connectionState) writePacket(w *bufio.Writer, rand io.Reader, packet []byte) error { + changeKeys := len(packet) > 0 && packet[0] == msgNewKeys + + err := s.packetCipher.writePacket(s.seqNum, w, rand, packet) + if err != nil { + return err + } + if err = w.Flush(); err != nil { + return err + } + s.seqNum++ + if changeKeys { + select { + case cipher := <-s.pendingKeyChange: + s.packetCipher = cipher + default: + panic("ssh: no key material for msgNewKeys") + } + } + return err +} + +func newTransport(rwc io.ReadWriteCloser, rand io.Reader, isClient bool) *transport { + t := &transport{ + bufReader: bufio.NewReader(rwc), + bufWriter: bufio.NewWriter(rwc), + rand: rand, + reader: connectionState{ + packetCipher: &streamPacketCipher{cipher: noneCipher{}}, + pendingKeyChange: make(chan packetCipher, 1), + }, + writer: connectionState{ + packetCipher: &streamPacketCipher{cipher: noneCipher{}}, + pendingKeyChange: make(chan packetCipher, 1), + }, + Closer: rwc, + } + if isClient { + t.reader.dir = serverKeys + t.writer.dir = clientKeys + } else { + t.reader.dir = clientKeys + t.writer.dir = serverKeys + } + + return t +} + +type direction struct { + ivTag []byte + keyTag []byte + macKeyTag []byte +} + +var ( + serverKeys = direction{[]byte{'B'}, []byte{'D'}, []byte{'F'}} + clientKeys = direction{[]byte{'A'}, []byte{'C'}, []byte{'E'}} +) + +// generateKeys generates key material for IV, MAC and encryption. +func generateKeys(d direction, algs directionAlgorithms, kex *kexResult) (iv, key, macKey []byte) { + cipherMode := cipherModes[algs.Cipher] + macMode := macModes[algs.MAC] + + iv = make([]byte, cipherMode.ivSize) + key = make([]byte, cipherMode.keySize) + macKey = make([]byte, macMode.keySize) + + generateKeyMaterial(iv, d.ivTag, kex) + generateKeyMaterial(key, d.keyTag, kex) + generateKeyMaterial(macKey, d.macKeyTag, kex) + return +} + +// setupKeys sets the cipher and MAC keys from kex.K, kex.H and sessionId, as +// described in RFC 4253, section 6.4. direction should either be serverKeys +// (to setup server->client keys) or clientKeys (for client->server keys). +func newPacketCipher(d direction, algs directionAlgorithms, kex *kexResult) (packetCipher, error) { + iv, key, macKey := generateKeys(d, algs, kex) + + if algs.Cipher == gcmCipherID { + return newGCMCipher(iv, key, macKey) + } + + if algs.Cipher == aes128cbcID { + return newAESCBCCipher(iv, key, macKey, algs) + } + + c := &streamPacketCipher{ + mac: macModes[algs.MAC].new(macKey), + } + c.macResult = make([]byte, c.mac.Size()) + + var err error + c.cipher, err = cipherModes[algs.Cipher].createStream(key, iv) + if err != nil { + return nil, err + } + + return c, nil +} + +// generateKeyMaterial fills out with key material generated from tag, K, H +// and sessionId, as specified in RFC 4253, section 7.2. +func generateKeyMaterial(out, tag []byte, r *kexResult) { + var digestsSoFar []byte + + h := r.Hash.New() + for len(out) > 0 { + h.Reset() + h.Write(r.K) + h.Write(r.H) + + if len(digestsSoFar) == 0 { + h.Write(tag) + h.Write(r.SessionID) + } else { + h.Write(digestsSoFar) + } + + digest := h.Sum(nil) + n := copy(out, digest) + out = out[n:] + if len(out) > 0 { + digestsSoFar = append(digestsSoFar, digest...) + } + } +} + +const packageVersion = "SSH-2.0-Go" + +// Sends and receives a version line. The versionLine string should +// be US ASCII, start with "SSH-2.0-", and should not include a +// newline. exchangeVersions returns the other side's version line. +func exchangeVersions(rw io.ReadWriter, versionLine []byte) (them []byte, err error) { + // Contrary to the RFC, we do not ignore lines that don't + // start with "SSH-2.0-" to make the library usable with + // nonconforming servers. + for _, c := range versionLine { + // The spec disallows non US-ASCII chars, and + // specifically forbids null chars. + if c < 32 { + return nil, errors.New("ssh: junk character in version line") + } + } + if _, err = rw.Write(append(versionLine, '\r', '\n')); err != nil { + return + } + + them, err = readVersion(rw) + return them, err +} + +// maxVersionStringBytes is the maximum number of bytes that we'll +// accept as a version string. RFC 4253 section 4.2 limits this at 255 +// chars +const maxVersionStringBytes = 255 + +// Read version string as specified by RFC 4253, section 4.2. +func readVersion(r io.Reader) ([]byte, error) { + versionString := make([]byte, 0, 64) + var ok bool + var buf [1]byte + + for len(versionString) < maxVersionStringBytes { + _, err := io.ReadFull(r, buf[:]) + if err != nil { + return nil, err + } + // The RFC says that the version should be terminated with \r\n + // but several SSH servers actually only send a \n. + if buf[0] == '\n' { + ok = true + break + } + + // non ASCII chars are disallowed, but we are lenient, + // since Go doesn't use null-terminated strings. + + // The RFC allows a comment after a space, however, + // all of it (version and comments) goes into the + // session hash. + versionString = append(versionString, buf[0]) + } + + if !ok { + return nil, errors.New("ssh: overflow reading version string") + } + + // There might be a '\r' on the end which we should remove. + if len(versionString) > 0 && versionString[len(versionString)-1] == '\r' { + versionString = versionString[:len(versionString)-1] + } + return versionString, nil +} diff --git a/modules/crypto/ssh/transport_test.go b/modules/crypto/ssh/transport_test.go new file mode 100755 index 000000000..92d83abf9 --- /dev/null +++ b/modules/crypto/ssh/transport_test.go @@ -0,0 +1,109 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/rand" + "encoding/binary" + "strings" + "testing" +) + +func TestReadVersion(t *testing.T) { + longversion := strings.Repeat("SSH-2.0-bla", 50)[:253] + cases := map[string]string{ + "SSH-2.0-bla\r\n": "SSH-2.0-bla", + "SSH-2.0-bla\n": "SSH-2.0-bla", + longversion + "\r\n": longversion, + } + + for in, want := range cases { + result, err := readVersion(bytes.NewBufferString(in)) + if err != nil { + t.Errorf("readVersion(%q): %s", in, err) + } + got := string(result) + if got != want { + t.Errorf("got %q, want %q", got, want) + } + } +} + +func TestReadVersionError(t *testing.T) { + longversion := strings.Repeat("SSH-2.0-bla", 50)[:253] + cases := []string{ + longversion + "too-long\r\n", + } + for _, in := range cases { + if _, err := readVersion(bytes.NewBufferString(in)); err == nil { + t.Errorf("readVersion(%q) should have failed", in) + } + } +} + +func TestExchangeVersionsBasic(t *testing.T) { + v := "SSH-2.0-bla" + buf := bytes.NewBufferString(v + "\r\n") + them, err := exchangeVersions(buf, []byte("xyz")) + if err != nil { + t.Errorf("exchangeVersions: %v", err) + } + + if want := "SSH-2.0-bla"; string(them) != want { + t.Errorf("got %q want %q for our version", them, want) + } +} + +func TestExchangeVersions(t *testing.T) { + cases := []string{ + "not\x000allowed", + "not allowed\n", + } + for _, c := range cases { + buf := bytes.NewBufferString("SSH-2.0-bla\r\n") + if _, err := exchangeVersions(buf, []byte(c)); err == nil { + t.Errorf("exchangeVersions(%q): should have failed", c) + } + } +} + +type closerBuffer struct { + bytes.Buffer +} + +func (b *closerBuffer) Close() error { + return nil +} + +func TestTransportMaxPacketWrite(t *testing.T) { + buf := &closerBuffer{} + tr := newTransport(buf, rand.Reader, true) + huge := make([]byte, maxPacket+1) + err := tr.writePacket(huge) + if err == nil { + t.Errorf("transport accepted write for a huge packet.") + } +} + +func TestTransportMaxPacketReader(t *testing.T) { + var header [5]byte + huge := make([]byte, maxPacket+128) + binary.BigEndian.PutUint32(header[0:], uint32(len(huge))) + // padding. + header[4] = 0 + + buf := &closerBuffer{} + buf.Write(header[:]) + buf.Write(huge) + + tr := newTransport(buf, rand.Reader, true) + _, err := tr.readPacket() + if err == nil { + t.Errorf("transport succeeded reading huge packet.") + } else if !strings.Contains(err.Error(), "large") { + t.Errorf("got %q, should mention %q", err.Error(), "large") + } +} diff --git a/modules/git/repo_pull.go b/modules/git/repo_pull.go index add32df90..a9cc33a1d 100644 --- a/modules/git/repo_pull.go +++ b/modules/git/repo_pull.go @@ -44,7 +44,7 @@ func (repo *Repository) GetPullRequestInfo(basePath, baseBranch, headBranch stri } prInfo.MergeBase = strings.TrimSpace(stdout) - stdout, stderr, err = com.ExecCmdDir(repo.Path, "git", "log", remoteBranch+"..."+headBranch, prettyLogFormat) + stdout, stderr, err = com.ExecCmdDir(repo.Path, "git", "log", prInfo.MergeBase+"..."+headBranch, prettyLogFormat) if err != nil { return nil, fmt.Errorf("list diff logs: %v", concatenateError(err, stderr)) } @@ -64,20 +64,8 @@ func (repo *Repository) GetPullRequestInfo(basePath, baseBranch, headBranch stri } // GetPatch generates and returns patch data between given branches. -func (repo *Repository) GetPatch(basePath, baseBranch, headBranch string) ([]byte, error) { - // Add a temporary remote. - tmpRemote := com.ToStr(time.Now().UnixNano()) - _, stderr, err := com.ExecCmdDirBytes(repo.Path, "git", "remote", "add", "-f", tmpRemote, basePath) - if err != nil { - return nil, fmt.Errorf("add base as remote: %v", concatenateError(err, string(stderr))) - } - defer func() { - com.ExecCmdDir(repo.Path, "git", "remote", "remove", tmpRemote) - }() - - var stdout []byte - remoteBranch := "remotes/" + tmpRemote + "/" + baseBranch - stdout, stderr, err = com.ExecCmdDirBytes(repo.Path, "git", "diff", "-p", remoteBranch, headBranch) +func (repo *Repository) GetPatch(mergeBase, headBranch string) ([]byte, error) { + stdout, stderr, err := com.ExecCmdDirBytes(repo.Path, "git", "diff", "-p", mergeBase, headBranch) if err != nil { return nil, concatenateError(err, string(stderr)) } diff --git a/modules/git/version.go b/modules/git/version.go index b535521ec..9940518ab 100644 --- a/modules/git/version.go +++ b/modules/git/version.go @@ -6,6 +6,7 @@ package git import ( "errors" + "fmt" "strings" "github.com/Unknwon/com" @@ -78,6 +79,10 @@ func (v *Version) AtLeast(that *Version) bool { return v.Compare(that) >= 0 } +func (v *Version) String() string { + return fmt.Sprintf("%d.%d.%d", v.Major, v.Minor, v.Patch) +} + // GetVersion returns current Git version installed. func GetVersion() (*Version, error) { if gitVer != nil { diff --git a/modules/identicon/block.go b/modules/identicon/block.go deleted file mode 100644 index f8a6c6a34..000000000 --- a/modules/identicon/block.go +++ /dev/null @@ -1,405 +0,0 @@ -// Copyright 2015 by caixw, All rights reserved -// Use of this source code is governed by a MIT -// license that can be found in the LICENSE file. - -package identicon - -import ( - "image" -) - -var ( - // 可以出现在中间的方块,一般为了美观,都是对称图像。 - centerBlocks = []blockFunc{b0, b1, b2, b3} - - // 所有方块 - blocks = []blockFunc{b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16} -) - -// 所有block函数的类型 -type blockFunc func(img *image.Paletted, x, y, size float64, angle int) - -// 将多边形points旋转angle个角度,然后输出到img上,起点为x,y坐标 -func drawBlock(img *image.Paletted, x, y, size float64, angle int, points []float64) { - if angle > 0 { // 0角度不需要转换 - // 中心坐标与x,y的距离,方便下面指定中心坐标(x+m,y+m), - // 0.5的偏移值不能少,否则坐靠右,非正中央 - m := size/2 - 0.5 - rotate(points, x+m, y+m, angle) - } - - for i := x; i < x+size; i++ { - for j := y; j < y+size; j++ { - if pointInPolygon(i, j, points) { - img.SetColorIndex(int(i), int(j), 1) - } - } - } -} - -// 全空白 -// -// -------- -// | | -// | | -// | | -// -------- -func b0(img *image.Paletted, x, y, size float64, angle int) { -} - -// 全填充正方形 -// -// -------- -// |######| -// |######| -// |######| -// -------- -func b1(img *image.Paletted, x, y, size float64, angle int) { - isize := int(size) - ix := int(x) - iy := int(y) - for i := ix + 1; i < ix+isize; i++ { - for j := iy + 1; j < iy+isize; j++ { - img.SetColorIndex(i, j, 1) - } - } -} - -// 中间小方块 -// ---------- -// | | -// | #### | -// | #### | -// | | -// ---------- -func b2(img *image.Paletted, x, y, size float64, angle int) { - l := size / 4 - x = x + l - y = y + l - - for i := x; i < x+2*l; i++ { - for j := y; j < y+2*l; j++ { - img.SetColorIndex(int(i), int(j), 1) - } - } -} - -// 菱形 -// -// --------- -// | # | -// | ### | -// | ##### | -// |#######| -// | ##### | -// | ### | -// | # | -// --------- -func b3(img *image.Paletted, x, y, size float64, angle int) { - m := size / 2 - points := []float64{} - - drawBlock(img, x, y, size, 0, append(points, - x+m, y, - x+size, y+m, - x+m, y+size, - x, y+m, - x+m, y, - )) -} - -// b4 -// -// ------- -// |#####| -// |#### | -// |### | -// |## | -// |# | -// |------ -func b4(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - drawBlock(img, x, y, size, angle, append(points, - x, y, - x+size, y, - x, y+size, - x, y, - )) -} - -// b5 -// -// --------- -// | # | -// | ### | -// | ##### | -// |#######| -func b5(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x+m, y, - x+size, - y+size, - x, y+size, - x+m, y, - )) -} - -// b6 矩形 -// -// -------- -// |### | -// |### | -// |### | -// -------- -func b6(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x, y, - x+m, y, - x+m, y+size, - x, y+size, - x, y, - )) -} - -// b7 斜放的锥形 -// -// --------- -// | # | -// | ## | -// | #####| -// | ####| -// |-------- -func b7(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x, y, - x+size, y+m, - x+size, y+size, - x+m, y+size, - x, y, - )) -} - -// b8 三个堆叠的三角形 -// -// ----------- -// | # | -// | ### | -// | ##### | -// | # # | -// | ### ### | -// |#########| -// ----------- -func b8(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - mm := m / 2 - - // 顶部三角形 - drawBlock(img, x, y, size, angle, append(points, - x+m, y, - x+3*mm, y+m, - x+mm, y+m, - x+m, y, - )) - - // 底下左边 - drawBlock(img, x, y, size, angle, append(points[:0], - x+mm, y+m, - x+m, y+size, - x, y+size, - x+mm, y+m, - )) - - // 底下右边 - drawBlock(img, x, y, size, angle, append(points[:0], - x+3*mm, y+m, - x+size, y+size, - x+m, y+size, - x+3*mm, y+m, - )) -} - -// b9 斜靠的三角形 -// -// --------- -// |# | -// | #### | -// | #####| -// | #### | -// | # | -// --------- -func b9(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x, y, - x+size, y+m, - x+m, y+size, - x, y, - )) -} - -// b10 -// -// ---------- -// | ####| -// | ### | -// | ## | -// | # | -// |#### | -// |### | -// |## | -// |# | -// ---------- -func b10(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x+m, y, - x+size, y, - x+m, y+m, - x+m, y, - )) - - drawBlock(img, x, y, size, angle, append(points[:0], - x, y+m, - x+m, y+m, - x, y+size, - x, y+m, - )) -} - -// b11 左上角1/4大小的方块 -// -// ---------- -// |#### | -// |#### | -// |#### | -// | | -// | | -// ---------- -func b11(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x, y, - x+m, y, - x+m, y+m, - x, y+m, - x, y, - )) -} - -// b12 -// -// ----------- -// | | -// | | -// |#########| -// | ##### | -// | # | -// ----------- -func b12(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x, y+m, - x+size, y+m, - x+m, y+size, - x, y+m, - )) -} - -// b13 -// -// ----------- -// | | -// | | -// | # | -// | ##### | -// |#########| -// ----------- -func b13(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x+m, y+m, - x+size, y+size, - x, y+size, - x+m, y+m, - )) -} - -// b14 -// -// --------- -// | # | -// | ### | -// |#### | -// | | -// | | -// --------- -func b14(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x+m, y, - x+m, y+m, - x, y+m, - x+m, y, - )) -} - -// b15 -// -// ---------- -// |##### | -// |### | -// |# | -// | | -// | | -// ---------- -func b15(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x, y, - x+m, y, - x, y+m, - x, y, - )) -} - -// b16 -// -// --------- -// | # | -// | ##### | -// |#######| -// | # | -// | ##### | -// |#######| -// --------- -func b16(img *image.Paletted, x, y, size float64, angle int) { - points := []float64{} - m := size / 2 - drawBlock(img, x, y, size, angle, append(points, - x+m, y, - x+size, y+m, - x, y+m, - x+m, y, - )) - - drawBlock(img, x, y, size, angle, append(points[:0], - x+m, y+m, - x+size, y+size, - x, y+size, - x+m, y+m, - )) -} diff --git a/modules/identicon/doc.go b/modules/identicon/doc.go deleted file mode 100644 index 23a8e9b91..000000000 --- a/modules/identicon/doc.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2015 by caixw, All rights reserved. -// Use of this source code is governed by a MIT -// license that can be found in the LICENSE file. - -// 一个基于hash值生成随机图像的包。 -// -// 关于identicon并没有统一的标准,一般用于在用户注册时, -// 取用户的邮箱或是访问IP等数据(也可以是其它任何数据), -// 进行hash运算,之后根据hash数据,产生一张图像, -// 这样即可以为用户产生一张独特的头像,又不会泄漏用户的隐藏。 -// -// 在identicon中,把图像分成以下九个部分: -// ------------- -// | 1 | 2 | 3 | -// ------------- -// | 4 | 5 | 6 | -// ------------- -// | 7 | 8 | 9 | -// ------------- -// 其中1、3、9、7为不同角度(依次增加90度)的同一张图片, -// 2、6、8、4也是如此,这样可以保持图像是对称的,比较美观。 -// 5则单独使用一张图片。 -// -// // 根据用户访问的IP,为其生成一张头像 -// img, _ := identicon.Make(128, color.NRGBA{},color.NRGBA{}, []byte("192.168.1.1")) -// fi, _ := os.Create("/tmp/u1.png") -// png.Encode(fi, img) -// fi.Close() -// -// // 或者 -// ii, _ := identicon.New(128, color.NRGBA{}, color.NRGBA{}, color.NRGBA{}) -// img := ii.Make([]byte("192.168.1.1")) -// img = ii.Make([]byte("192.168.1.2")) -// -// NOTE: go test 会在当前目录的testdata文件夹下产生大量的随机图片。 -// 要运行测试,必须保证该文件夹是存在的,且有相应的写入权限。 -package identicon - -const Version = "0.2.6.150603" diff --git a/modules/identicon/identicon.go b/modules/identicon/identicon.go deleted file mode 100644 index c0b1db3b0..000000000 --- a/modules/identicon/identicon.go +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright 2015 by caixw, All rights reserved. -// Use of this source code is governed by a MIT -// license that can be found in the LICENSE file. - -package identicon - -import ( - "crypto/md5" - "fmt" - "image" - "image/color" -) - -const ( - minSize = 16 // 图片的最小尺寸 - maxForeColors = 32 // 在New()函数中可以指定的最大颜色数量 -) - -// Identicon 用于产生统一尺寸的头像。 -// 可以根据用户提供的数据,经过一定的算法,自动产生相应的图案和颜色。 -type Identicon struct { - foreColors []color.Color - backColor color.Color - size int - rect image.Rectangle -} - -// 声明一个Identicon实例。 -// size表示整个头像的大小。 -// back表示前景色。 -// fore表示所有可能的前景色,会为每个图像随机挑选一个作为其前景色。 -// NOTE:前景色不要与背景色太相近。 -func New(size int, back color.Color, fore ...color.Color) (*Identicon, error) { - if len(fore) == 0 || len(fore) > maxForeColors { - return nil, fmt.Errorf("前景色数量必须介于[1]~[%v]之间,当前为[%v]", maxForeColors, len(fore)) - } - - if size < minSize { - return nil, fmt.Errorf("参数size的值(%v)不能小于%v", size, minSize) - } - - return &Identicon{ - foreColors: fore, - backColor: back, - size: size, - - // 画布坐标从0开始,其长度应该是size-1 - rect: image.Rect(0, 0, size, size), - }, nil -} - -// 根据data数据产生一张唯一性的头像图片。 -func (i *Identicon) Make(data []byte) image.Image { - h := md5.New() - h.Write(data) - sum := h.Sum(nil) - - // 第一个方块 - index := int(sum[0]+sum[1]+sum[2]+sum[3]) % len(blocks) - b1 := blocks[index] - - // 第二个方块 - index = int(sum[4]+sum[5]+sum[6]+sum[7]) % len(blocks) - b2 := blocks[index] - - // 中间方块 - index = int(sum[8]+sum[9]+sum[10]+sum[11]) % len(centerBlocks) - c := centerBlocks[index] - - // 旋转角度 - angle := int(sum[12]+sum[13]+sum[14]) % 4 - - // 根据最后一个字段,获取前景颜色 - index = int(sum[15]) % len(i.foreColors) - - p := image.NewPaletted(i.rect, []color.Color{i.backColor, i.foreColors[index]}) - drawBlocks(p, i.size, c, b1, b2, angle) - return p -} - -// 根据data数据产生一张唯一性的头像图片。 -// size 头像的大小。 -// back, fore头像的背景和前景色。 -func Make(size int, back, fore color.Color, data []byte) (image.Image, error) { - if size < minSize { - return nil, fmt.Errorf("参数size的值(%v)不能小于%v", size, minSize) - } - - h := md5.New() - h.Write(data) - sum := h.Sum(nil) - - // 第一个方块 - index := int(sum[0]+sum[1]+sum[2]+sum[3]) % len(blocks) - b1 := blocks[index] - - // 第二个方块 - index = int(sum[4]+sum[5]+sum[6]+sum[7]) % len(blocks) - b2 := blocks[index] - - // 中间方块 - index = int(sum[8]+sum[9]+sum[10]+sum[11]) % len(centerBlocks) - c := centerBlocks[index] - - // 旋转角度 - angle := int(sum[12]+sum[13]+sum[14]+sum[15]) % 4 - - // 画布坐标从0开始,其长度应该是size-1 - p := image.NewPaletted(image.Rect(0, 0, size, size), []color.Color{back, fore}) - drawBlocks(p, size, c, b1, b2, angle) - return p, nil -} - -// 将九个方格都填上内容。 -// p为画板。 -// c为中间方格的填充函数。 -// b1,b2为边上8格的填充函数。 -// angle为b1,b2的起始旋转角度。 -func drawBlocks(p *image.Paletted, size int, c, b1, b2 blockFunc, angle int) { - // 每个格子的长宽。先转换成float,再计算! - blockSize := float64(size) / 3 - twoBlockSize := 2 * blockSize - - incr := func() { // 增加angle的值,但不会大于3 - angle++ - if angle > 3 { - angle = 0 - } - } - - c(p, blockSize, blockSize, blockSize, 0) - - b1(p, 0, 0, blockSize, angle) - b2(p, blockSize, 0, blockSize, angle) - - incr() - b1(p, twoBlockSize, 0, blockSize, angle) - b2(p, twoBlockSize, blockSize, blockSize, angle) - - incr() - b1(p, twoBlockSize, twoBlockSize, blockSize, angle) - b2(p, blockSize, twoBlockSize, blockSize, angle) - - incr() - b1(p, 0, twoBlockSize, blockSize, angle) - b2(p, 0, blockSize, blockSize, angle) -} diff --git a/modules/identicon/identicon_test.go b/modules/identicon/identicon_test.go deleted file mode 100644 index 145a45bc0..000000000 --- a/modules/identicon/identicon_test.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2015 by caixw, All rights reserved. -// Use of this source code is governed by a MIT -// license that can be found in the LICENSE file. - -package identicon - -import ( - "image" - "image/color" - "image/png" - "os" - "strconv" - "testing" - - "github.com/issue9/assert" -) - -var ( - back = color.RGBA{255, 0, 0, 100} - fore = color.RGBA{0, 255, 255, 100} - fores = []color.Color{color.Black, color.RGBA{200, 2, 5, 100}, color.RGBA{2, 200, 5, 100}} - size = 128 -) - -// 依次画出各个网络的图像。 -func TestBlocks(t *testing.T) { - p := []color.Color{back, fore} - - a := assert.New(t) - - for k, v := range blocks { - img := image.NewPaletted(image.Rect(0, 0, size*4, size), p) // 横向4张图片大小 - - for i := 0; i < 4; i++ { - v(img, float64(i*size), 0, float64(size), i) - } - - fi, err := os.Create("./testdata/block-" + strconv.Itoa(k) + ".png") - a.NotError(err).NotNil(fi) - a.NotError(png.Encode(fi, img)) - a.NotError(fi.Close()) // 关闭文件 - } -} - -// 产生一组测试图片 -func TestDrawBlocks(t *testing.T) { - a := assert.New(t) - - for i := 0; i < 20; i++ { - p := image.NewPaletted(image.Rect(0, 0, size, size), []color.Color{back, fore}) - c := (i + 1) % len(centerBlocks) - b1 := (i + 2) % len(blocks) - b2 := (i + 3) % len(blocks) - drawBlocks(p, size, centerBlocks[c], blocks[b1], blocks[b2], 0) - - fi, err := os.Create("./testdata/draw-" + strconv.Itoa(i) + ".png") - a.NotError(err).NotNil(fi) - a.NotError(png.Encode(fi, p)) - a.NotError(fi.Close()) // 关闭文件 - } -} - -func TestMake(t *testing.T) { - a := assert.New(t) - - for i := 0; i < 20; i++ { - img, err := Make(size, back, fore, []byte("make-"+strconv.Itoa(i))) - a.NotError(err).NotNil(img) - - fi, err := os.Create("./testdata/make-" + strconv.Itoa(i) + ".png") - a.NotError(err).NotNil(fi) - a.NotError(png.Encode(fi, img)) - a.NotError(fi.Close()) // 关闭文件 - } -} - -func TestIdenticon(t *testing.T) { - a := assert.New(t) - - ii, err := New(size, back, fores...) - a.NotError(err).NotNil(ii) - - for i := 0; i < 20; i++ { - img := ii.Make([]byte("identicon-" + strconv.Itoa(i))) - a.NotNil(img) - - fi, err := os.Create("./testdata/identicon-" + strconv.Itoa(i) + ".png") - a.NotError(err).NotNil(fi) - a.NotError(png.Encode(fi, img)) - a.NotError(fi.Close()) // 关闭文件 - } -} - -// BenchmarkMake 5000 229378 ns/op -func BenchmarkMake(b *testing.B) { - a := assert.New(b) - for i := 0; i < b.N; i++ { - img, err := Make(size, back, fore, []byte("Make")) - a.NotError(err).NotNil(img) - } -} - -// BenchmarkIdenticon_Make 10000 222127 ns/op -func BenchmarkIdenticon_Make(b *testing.B) { - a := assert.New(b) - - ii, err := New(size, back, fores...) - a.NotError(err).NotNil(ii) - - for i := 0; i < b.N; i++ { - img := ii.Make([]byte("Make")) - a.NotNil(img) - } -} diff --git a/modules/identicon/polygon.go b/modules/identicon/polygon.go deleted file mode 100644 index d4cd1e9fd..000000000 --- a/modules/identicon/polygon.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2015 by caixw, All rights reserved. -// Use of this source code is governed by a MIT -// license that can be found in the LICENSE file. - -package identicon - -var ( - // 4个元素分别表示cos(0),cos(90),cos(180),cos(270) - cos = []float64{1, 0, -1, 0} - - // 4个元素分别表示sin(0),sin(90),sin(180),sin(270) - sin = []float64{0, 1, 0, -1} -) - -// 将points中的所有点,以x,y为原点旋转angle个角度。 -// angle取值只能是[0,1,2,3],分别表示[0,90,180,270] -func rotate(points []float64, x, y float64, angle int) { - if angle > 3 { - panic("rotate:参数angle必须0,1,2,3三值之一") - } - - for i := 0; i < len(points); i += 2 { - px := points[i] - x - py := points[i+1] - y - points[i] = px*cos[angle] - py*sin[angle] + x - points[i+1] = px*sin[angle] + py*cos[angle] + y - } -} - -// 判断某个点是否在多边形之内,不包含构成多边形的线和点 -// x,y 需要判断的点坐标 -// points 组成多边形的所顶点,每两个元素表示一点顶点,其中最后一个顶点必须与第一个顶点相同。 -func pointInPolygon(x float64, y float64, points []float64) bool { - if len(points) < 8 { // 只有2个以上的点,才能组成闭合多边形 - return false - } - - // 大致算法如下: - // 把整个平面以给定的测试点为原点分两部分: - // - y>0,包含(x>0 && y==0) - // - y<0,包含(x<0 && y==0) - // 依次扫描每一个点,当该点与前一个点处于不同部分时(即一个在y>0区,一个在y<0区), - // 则判断从前一点到当前点是顺时针还是逆时针(以给定的测试点为原点),如果是顺时针r++,否则r--。 - // 结果为:2==abs(r)。 - - r := 0 - x1, y1 := points[0], points[1] - prev := (y1 > y) || ((x1 > x) && (y1 == y)) - for i := 2; i < len(points); i += 2 { - x2, y2 := points[i], points[i+1] - curr := (y2 > y) || ((x2 > x) && (y2 == y)) - - if curr == prev { - x1, y1 = x2, y2 - continue - } - - mul := (x1-x)*(y2-y) - (x2-x)*(y1-y) - if mul > 0 { - r++ - } else if mul < 0 { - r-- - } - x1, y1 = x2, y2 - prev = curr - } - - return r == 2 || r == -2 -} diff --git a/modules/mailer/mail.go b/modules/mailer/mail.go index 9a38b57d2..680a3c483 100644 --- a/modules/mailer/mail.go +++ b/modules/mailer/mail.go @@ -5,13 +5,10 @@ package mailer import ( - "encoding/hex" - "errors" "fmt" "path" - "github.com/Unknwon/com" - "github.com/Unknwon/macaron" + "gopkg.in/macaron.v1" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/base" @@ -20,145 +17,89 @@ import ( ) const ( - AUTH_ACTIVE base.TplName = "mail/auth/active" - AUTH_ACTIVATE_EMAIL base.TplName = "mail/auth/activate_email" - AUTH_REGISTER_SUCCESS base.TplName = "mail/auth/register_success" - AUTH_RESET_PASSWORD base.TplName = "mail/auth/reset_passwd" + AUTH_ACTIVATE base.TplName = "mail/auth/activate" + AUTH_ACTIVATE_EMAIL base.TplName = "mail/auth/activate_email" + AUTH_REGISTER_NOTIFY base.TplName = "mail/auth/register_notify" + AUTH_RESET_PASSWORD base.TplName = "mail/auth/reset_passwd" NOTIFY_COLLABORATOR base.TplName = "mail/notify/collaborator" NOTIFY_MENTION base.TplName = "mail/notify/mention" ) -// Create New mail message use MailFrom and MailUser -func NewMailMessageFrom(To []string, from, subject, body string) Message { - return NewHtmlMessage(To, from, subject, body) -} - -// Create New mail message use MailFrom and MailUser -func NewMailMessage(To []string, subject, body string) Message { - return NewMailMessageFrom(To, setting.MailService.From, subject, body) -} - -func GetMailTmplData(u *models.User) map[interface{}]interface{} { +func ComposeTplData(u *models.User) map[interface{}]interface{} { data := make(map[interface{}]interface{}, 10) data["AppName"] = setting.AppName data["AppVer"] = setting.AppVer data["AppUrl"] = setting.AppUrl data["ActiveCodeLives"] = setting.Service.ActiveCodeLives / 60 data["ResetPwdCodeLives"] = setting.Service.ResetPwdCodeLives / 60 + if u != nil { data["User"] = u } return data } -// create a time limit code for user active -func CreateUserActiveCode(u *models.User, startInf interface{}) string { - minutes := setting.Service.ActiveCodeLives - data := com.ToStr(u.Id) + u.Email + u.LowerName + u.Passwd + u.Rands - code := base.CreateTimeLimitCode(data, minutes, startInf) - - // add tail hex username - code += hex.EncodeToString([]byte(u.LowerName)) - return code -} - -// create a time limit code for user active -func CreateUserEmailActivateCode(u *models.User, e *models.EmailAddress, startInf interface{}) string { - minutes := setting.Service.ActiveCodeLives - data := com.ToStr(u.Id) + e.Email + u.LowerName + u.Passwd + u.Rands - code := base.CreateTimeLimitCode(data, minutes, startInf) - - // add tail hex username - code += hex.EncodeToString([]byte(u.LowerName)) - return code -} - -// Send user register mail with active code -func SendRegisterMail(r macaron.Render, u *models.User) { - code := CreateUserActiveCode(u, nil) - subject := "Register success, Welcome" - - data := GetMailTmplData(u) +func SendUserMail(c *macaron.Context, u *models.User, tpl base.TplName, code, subject, info string) { + data := ComposeTplData(u) data["Code"] = code - body, err := r.HTMLString(string(AUTH_REGISTER_SUCCESS), data) + body, err := c.HTMLString(string(tpl), data) if err != nil { - log.Error(4, "mail.SendRegisterMail(fail to render): %v", err) + log.Error(4, "HTMLString: %v", err) return } - msg := NewMailMessage([]string{u.Email}, subject, body) - msg.Info = fmt.Sprintf("UID: %d, send register mail", u.Id) + msg := NewMessage([]string{u.Email}, subject, body) + msg.Info = fmt.Sprintf("UID: %d, %s", u.Id, info) - SendAsync(&msg) + SendAsync(msg) } -// Send email verify active email. -func SendActiveMail(r macaron.Render, u *models.User) { - code := CreateUserActiveCode(u, nil) - - subject := "Verify your e-mail address" - - data := GetMailTmplData(u) - data["Code"] = code - body, err := r.HTMLString(string(AUTH_ACTIVE), data) - if err != nil { - log.Error(4, "mail.SendActiveMail(fail to render): %v", err) - return - } - - msg := NewMailMessage([]string{u.Email}, subject, body) - msg.Info = fmt.Sprintf("UID: %d, send active mail", u.Id) - - SendAsync(&msg) +func SendActivateAccountMail(c *macaron.Context, u *models.User) { + SendUserMail(c, u, AUTH_ACTIVATE, u.GenerateActivateCode(), c.Tr("mail.activate_account"), "activate account") } -// Send email to verify secondary email. -func SendActivateEmail(r macaron.Render, user *models.User, email *models.EmailAddress) { - code := CreateUserEmailActivateCode(user, email, nil) - - subject := "Verify your e-mail address" +// SendResetPasswordMail sends reset password e-mail. +func SendResetPasswordMail(c *macaron.Context, u *models.User) { + SendUserMail(c, u, AUTH_RESET_PASSWORD, u.GenerateActivateCode(), c.Tr("mail.reset_password"), "reset password") +} - data := GetMailTmplData(user) - data["Code"] = code - data["Email"] = email.Email - body, err := r.HTMLString(string(AUTH_ACTIVATE_EMAIL), data) +// SendRegisterNotifyMail triggers a notify e-mail by admin created a account. +func SendRegisterNotifyMail(c *macaron.Context, u *models.User) { + body, err := c.HTMLString(string(AUTH_REGISTER_NOTIFY), ComposeTplData(u)) if err != nil { - log.Error(4, "mail.SendActiveMail(fail to render): %v", err) + log.Error(4, "HTMLString: %v", err) return } - msg := NewMailMessage([]string{email.Email}, subject, body) - msg.Info = fmt.Sprintf("UID: %d, send activate email to %s", user.Id, email.Email) + msg := NewMessage([]string{u.Email}, c.Tr("mail.register_notify"), body) + msg.Info = fmt.Sprintf("UID: %d, registration notify", u.Id) - SendAsync(&msg) + SendAsync(msg) } -// Send reset password email. -func SendResetPasswdMail(r macaron.Render, u *models.User) { - code := CreateUserActiveCode(u, nil) - - subject := "Reset your password" - - data := GetMailTmplData(u) - data["Code"] = code - body, err := r.HTMLString(string(AUTH_RESET_PASSWORD), data) +// SendActivateAccountMail sends confirmation e-mail. +func SendActivateEmailMail(c *macaron.Context, u *models.User, email *models.EmailAddress) { + data := ComposeTplData(u) + data["Code"] = u.GenerateEmailActivateCode(email.Email) + data["Email"] = email.Email + body, err := c.HTMLString(string(AUTH_ACTIVATE_EMAIL), data) if err != nil { - log.Error(4, "mail.SendResetPasswdMail(fail to render): %v", err) + log.Error(4, "HTMLString: %v", err) return } - msg := NewMailMessage([]string{u.Email}, subject, body) - msg.Info = fmt.Sprintf("UID: %d, send reset password email", u.Id) + msg := NewMessage([]string{email.Email}, c.Tr("mail.activate_email"), body) + msg.Info = fmt.Sprintf("UID: %d, activate email", u.Id) - SendAsync(&msg) + SendAsync(msg) } // SendIssueNotifyMail sends mail notification of all watchers of repository. func SendIssueNotifyMail(u, owner *models.User, repo *models.Repository, issue *models.Issue) ([]string, error) { ws, err := models.GetWatchers(repo.ID) if err != nil { - return nil, errors.New("mail.NotifyWatchers(GetWatchers): " + err.Error()) + return nil, fmt.Errorf("GetWatchers[%d]: %v", repo.ID, err) } tos := make([]string, 0, len(ws)) @@ -167,11 +108,15 @@ func SendIssueNotifyMail(u, owner *models.User, repo *models.Repository, issue * if u.Id == uid { continue } - u, err := models.GetUserByID(uid) + to, err := models.GetUserByID(uid) if err != nil { - return nil, errors.New("mail.NotifyWatchers(GetUserById): " + err.Error()) + return nil, fmt.Errorf("GetUserByID: %v", err) + } + if to.IsOrganization() { + continue } - tos = append(tos, u.Email) + + tos = append(tos, to.Email) } if len(tos) == 0 { @@ -182,9 +127,10 @@ func SendIssueNotifyMail(u, owner *models.User, repo *models.Repository, issue * content := fmt.Sprintf("%s
-
View it on Gogs.", base.RenderSpecialLink([]byte(issue.Content), owner.Name+"/"+repo.Name), setting.AppUrl, owner.Name, repo.Name, issue.Index) - msg := NewMailMessageFrom(tos, u.Email, subject, content) - msg.Info = fmt.Sprintf("Subject: %s, send issue notify emails", subject) - SendAsync(&msg) + msg := NewMessage(tos, subject, content) + msg.Info = fmt.Sprintf("Subject: %s, issue notify", subject) + + SendAsync(msg) return tos, nil } @@ -198,39 +144,40 @@ func SendIssueMentionMail(r macaron.Render, u, owner *models.User, subject := fmt.Sprintf("[%s] %s (#%d)", repo.Name, issue.Name, issue.Index) - data := GetMailTmplData(nil) + data := ComposeTplData(nil) data["IssueLink"] = fmt.Sprintf("%s/%s/issues/%d", owner.Name, repo.Name, issue.Index) data["Subject"] = subject + data["ActUserName"] = u.DisplayName() + data["Content"] = string(base.RenderSpecialLink([]byte(issue.Content), owner.Name+"/"+repo.Name)) body, err := r.HTMLString(string(NOTIFY_MENTION), data) if err != nil { - return fmt.Errorf("mail.SendIssueMentionMail(fail to render): %v", err) + return fmt.Errorf("HTMLString: %v", err) } - msg := NewMailMessageFrom(tos, u.Email, subject, body) - msg.Info = fmt.Sprintf("Subject: %s, send issue mention emails", subject) - SendAsync(&msg) + msg := NewMessage(tos, subject, body) + msg.Info = fmt.Sprintf("Subject: %s, issue mention", subject) + + SendAsync(msg) return nil } // SendCollaboratorMail sends mail notification to new collaborator. -func SendCollaboratorMail(r macaron.Render, u, owner *models.User, - repo *models.Repository) error { - - subject := fmt.Sprintf("%s added you to %s", owner.Name, repo.Name) +func SendCollaboratorMail(r macaron.Render, u, doer *models.User, repo *models.Repository) error { + subject := fmt.Sprintf("%s added you to %s/%s", doer.Name, repo.Owner.Name, repo.Name) - data := GetMailTmplData(nil) - data["RepoLink"] = path.Join(owner.Name, repo.Name) + data := ComposeTplData(nil) + data["RepoLink"] = path.Join(repo.Owner.Name, repo.Name) data["Subject"] = subject body, err := r.HTMLString(string(NOTIFY_COLLABORATOR), data) if err != nil { - return fmt.Errorf("mail.SendCollaboratorMail(fail to render): %v", err) + return fmt.Errorf("HTMLString: %v", err) } - msg := NewMailMessage([]string{u.Email}, subject, body) - msg.Info = fmt.Sprintf("UID: %d, send register mail", u.Id) + msg := NewMessage([]string{u.Email}, subject, body) + msg.Info = fmt.Sprintf("UID: %d, add collaborator", u.Id) - SendAsync(&msg) + SendAsync(msg) return nil } diff --git a/modules/mailer/mailer.go b/modules/mailer/mailer.go index ff82caa90..4dbcf1180 100644 --- a/modules/mailer/mailer.go +++ b/modules/mailer/mailer.go @@ -7,16 +7,44 @@ package mailer import ( "crypto/tls" "fmt" + "io" "net" - "net/mail" "net/smtp" "os" "strings" + "time" + + "gopkg.in/gomail.v2" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/setting" ) +type Message struct { + Info string // Message information for log purpose. + *gomail.Message +} + +// NewMessageFrom creates new mail message object with custom From header. +func NewMessageFrom(to []string, from, subject, body string) *Message { + msg := gomail.NewMessage() + msg.SetHeader("From", from) + msg.SetHeader("To", to...) + msg.SetHeader("Subject", subject) + msg.SetDateHeader("Date", time.Now()) + msg.SetBody("text/plain", body) + msg.AddAlternative("text/html", body) + + return &Message{ + Message: msg, + } +} + +// NewMessage creates new mail message object with default From header. +func NewMessage(to []string, subject, body string) *Message { + return NewMessageFrom(to, setting.MailService.From, subject, body) +} + type loginAuth struct { username, password string } @@ -44,70 +72,24 @@ func (a *loginAuth) Next(fromServer []byte, more bool) ([]byte, error) { return nil, nil } -type Message struct { - To []string - From string - Subject string - ReplyTo string - Body string - Type string - Massive bool - Info string -} - -// create mail content -func (m Message) Content() string { - // set mail type - contentType := "text/plain; charset=UTF-8" - if m.Type == "html" { - contentType = "text/html; charset=UTF-8" - } - - // create mail content - content := "From: " + m.From + "\r\nReply-To: " + m.ReplyTo + "\r\nSubject: " + m.Subject + "\r\nContent-Type: " + contentType + "\r\n\r\n" + m.Body - return content -} - -var mailQueue chan *Message - -func NewMailerContext() { - mailQueue = make(chan *Message, setting.Cfg.Section("mailer").Key("SEND_BUFFER_LEN").MustInt(10)) - go processMailQueue() +type Sender struct { } -func processMailQueue() { - for { - select { - case msg := <-mailQueue: - num, err := Send(msg) - tos := strings.Join(msg.To, "; ") - info := "" - if err != nil { - if len(msg.Info) > 0 { - info = ", info: " + msg.Info - } - log.Error(4, fmt.Sprintf("Async sent email %d succeed, not send emails: %s%s err: %s", num, tos, info, err)) - } else { - log.Trace(fmt.Sprintf("Async sent email %d succeed, sent emails: %s%s", num, tos, info)) - } - } - } -} +func (s *Sender) Send(from string, to []string, msg io.WriterTo) error { + opts := setting.MailService -// sendMail allows mail with self-signed certificates. -func sendMail(settings *setting.Mailer, recipients []string, msgContent []byte) error { - host, port, err := net.SplitHostPort(settings.Host) + host, port, err := net.SplitHostPort(opts.Host) if err != nil { return err } tlsconfig := &tls.Config{ - InsecureSkipVerify: settings.SkipVerify, + InsecureSkipVerify: opts.SkipVerify, ServerName: host, } - if settings.UseCertificate { - cert, err := tls.LoadX509KeyPair(settings.CertFile, settings.KeyFile) + if opts.UseCertificate { + cert, err := tls.LoadX509KeyPair(opts.CertFile, opts.KeyFile) if err != nil { return err } @@ -155,17 +137,16 @@ func sendMail(settings *setting.Mailer, recipients []string, msgContent []byte) } canAuth, options := client.Extension("AUTH") - - if canAuth && len(settings.User) > 0 { + if canAuth && len(opts.User) > 0 { var auth smtp.Auth if strings.Contains(options, "CRAM-MD5") { - auth = smtp.CRAMMD5Auth(settings.User, settings.Passwd) + auth = smtp.CRAMMD5Auth(opts.User, opts.Passwd) } else if strings.Contains(options, "PLAIN") { - auth = smtp.PlainAuth("", settings.User, settings.Passwd, host) + auth = smtp.PlainAuth("", opts.User, opts.Passwd, host) } else if strings.Contains(options, "LOGIN") { // Patch for AUTH LOGIN - auth = LoginAuth(settings.User, settings.Passwd) + auth = LoginAuth(opts.User, opts.Passwd) } if auth != nil { @@ -175,15 +156,11 @@ func sendMail(settings *setting.Mailer, recipients []string, msgContent []byte) } } - if fromAddress, err := mail.ParseAddress(settings.From); err != nil { + if err = client.Mail(from); err != nil { return err - } else { - if err = client.Mail(fromAddress.Address); err != nil { - return err - } } - for _, rec := range recipients { + for _, rec := range to { if err = client.Rcpt(rec); err != nil { return err } @@ -192,71 +169,44 @@ func sendMail(settings *setting.Mailer, recipients []string, msgContent []byte) w, err := client.Data() if err != nil { return err - } - if _, err = w.Write([]byte(msgContent)); err != nil { + } else if _, err = msg.WriteTo(w); err != nil { return err - } - - if err = w.Close(); err != nil { + } else if err = w.Close(); err != nil { return err } return client.Quit() } -// Direct Send mail message -func Send(msg *Message) (int, error) { - log.Trace("Sending mails to: %s", strings.Join(msg.To, "; ")) - - // get message body - content := msg.Content() - - if len(msg.To) == 0 { - return 0, fmt.Errorf("empty receive emails") - } else if len(msg.Body) == 0 { - return 0, fmt.Errorf("empty email body") - } +func processMailQueue() { + sender := &Sender{} - if msg.Massive { - // send mail to multiple emails one by one - num := 0 - for _, to := range msg.To { - body := []byte("To: " + to + "\r\n" + content) - err := sendMail(setting.MailService, []string{to}, body) - if err != nil { - return num, err + for { + select { + case msg := <-mailQueue: + log.Trace("New e-mail sending request %s: %s", msg.GetHeader("To"), msg.Info) + if err := gomail.Send(sender, msg.Message); err != nil { + log.Error(4, "Fail to send e-mails %s: %s - %v", msg.GetHeader("To"), msg.Info, err) + } else { + log.Trace("E-mails sent %s: %s", msg.GetHeader("To"), msg.Info) } - num++ } - return num, nil - } else { - body := []byte("To: " + strings.Join(msg.To, ";") + "\r\n" + content) + } +} - // send to multiple emails in one message - err := sendMail(setting.MailService, msg.To, body) - if err != nil { - return 0, err - } else { - return 1, nil - } +var mailQueue chan *Message + +func NewContext() { + if setting.MailService == nil { + return } + + mailQueue = make(chan *Message, setting.MailService.QueueLength) + go processMailQueue() } -// Async Send mail message func SendAsync(msg *Message) { go func() { mailQueue <- msg }() } - -// Create html mail message -func NewHtmlMessage(To []string, From, Subject, Body string) Message { - return Message{ - To: To, - From: setting.MailService.From, - ReplyTo: From, - Subject: Subject, - Body: Body, - Type: "html", - } -} diff --git a/modules/middleware/auth.go b/modules/middleware/auth.go index 68d74e876..823e457af 100644 --- a/modules/middleware/auth.go +++ b/modules/middleware/auth.go @@ -8,8 +8,8 @@ import ( "fmt" "net/url" - "github.com/Unknwon/macaron" - "github.com/macaron-contrib/csrf" + "github.com/go-macaron/csrf" + "gopkg.in/macaron.v1" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" @@ -27,6 +27,10 @@ type ToggleOptions struct { // AutoSignIn reads cookie and try to auto-login. func AutoSignIn(ctx *Context) (bool, error) { + if !models.HasEngine { + return false, nil + } + uname := ctx.GetCookie(setting.CookieUserName) if len(uname) == 0 { return false, nil @@ -91,7 +95,7 @@ func Toggle(options *ToggleOptions) macaron.Handler { if !ctx.IsSigned { // Restrict API calls with error message. if auth.IsAPIPath(ctx.Req.URL.Path) { - ctx.HandleAPI(403, "Only signed in user is allowed to call APIs.") + ctx.APIError(403, "", "Only signed in user is allowed to call APIs.") return } diff --git a/modules/middleware/context.go b/modules/middleware/context.go index 141e8ace4..dffebe6f2 100644 --- a/modules/middleware/context.go +++ b/modules/middleware/context.go @@ -12,11 +12,11 @@ import ( "strings" "time" - "github.com/Unknwon/macaron" - "github.com/macaron-contrib/cache" - "github.com/macaron-contrib/csrf" - "github.com/macaron-contrib/i18n" - "github.com/macaron-contrib/session" + "github.com/go-macaron/cache" + "github.com/go-macaron/csrf" + "github.com/go-macaron/i18n" + "github.com/go-macaron/session" + "gopkg.in/macaron.v1" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" @@ -154,18 +154,25 @@ func (ctx *Context) HandleText(status int, title string) { if (status/100 == 4) || (status/100 == 5) { log.Error(4, "%s", title) } - ctx.RenderData(status, []byte(title)) + ctx.PlainText(status, []byte(title)) } -func (ctx *Context) HandleAPI(status int, obj interface{}) { +// APIError logs error with title if status is 500. +func (ctx *Context) APIError(status int, title string, obj interface{}) { var message string if err, ok := obj.(error); ok { message = err.Error() } else { message = obj.(string) } + + if status == 500 { + log.Error(4, "%s: %s", title, message) + } + ctx.JSON(status, map[string]string{ "message": message, + "url": base.DOC_URL, }) } diff --git a/modules/middleware/org.go b/modules/middleware/org.go index 065e1b1e9..1e7d4a679 100644 --- a/modules/middleware/org.go +++ b/modules/middleware/org.go @@ -5,7 +5,7 @@ package middleware import ( - "github.com/Unknwon/macaron" + "gopkg.in/macaron.v1" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/log" diff --git a/modules/middleware/repo.go b/modules/middleware/repo.go index 8f44ac9a2..ba7cbac82 100644 --- a/modules/middleware/repo.go +++ b/modules/middleware/repo.go @@ -9,12 +9,11 @@ import ( "net/url" "strings" - "github.com/Unknwon/macaron" "github.com/mcuadros/go-version" "github.com/mssola/user_agent" + "gopkg.in/macaron.v1" "github.com/gogits/gogs/models" - "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/git" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/setting" @@ -44,7 +43,7 @@ func ApiRepoAssignment() macaron.Handler { if models.IsErrUserNotExist(err) { ctx.Error(404) } else { - ctx.JSON(500, &base.ApiJsonErr{"GetUserByName: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "GetUserByName", err) } return } @@ -57,17 +56,17 @@ func ApiRepoAssignment() macaron.Handler { if models.IsErrRepoNotExist(err) { ctx.Error(404) } else { - ctx.JSON(500, &base.ApiJsonErr{"GetRepositoryByName: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "GetRepositoryByName", err) } return } else if err = repo.GetOwner(); err != nil { - ctx.JSON(500, &base.ApiJsonErr{"GetOwner: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "GetOwner", err) return } mode, err := models.AccessLevel(ctx.User, repo) if err != nil { - ctx.JSON(500, &base.ApiJsonErr{"AccessLevel: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "AccessLevel", err) return } @@ -347,7 +346,12 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler { ctx.Data["CloneLink"] = ctx.Repo.CloneLink if ctx.Query("go-get") == "1" { - ctx.Data["GoGetImport"] = fmt.Sprintf("%s/%s/%s", setting.Domain, u.LowerName, repo.LowerName) + ctx.Data["GoGetImport"] = fmt.Sprintf("%s/%s/%s", setting.Domain, u.Name, repo.Name) + } + + if ctx.IsSigned { + ctx.Data["IsWatchingRepo"] = models.IsWatching(ctx.User.Id, repo.ID) + ctx.Data["IsStaringRepo"] = models.IsStaring(ctx.User.Id, repo.ID) } // repo is bare and display enable @@ -356,16 +360,14 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler { // NOTE: to prevent templating error ctx.Data["BranchName"] = "" if displayBare { + if !ctx.Repo.IsAdmin() { + ctx.Flash.Info(ctx.Tr("repo.repo_is_empty"), true) + } ctx.HTML(200, "repo/bare") } return } - if ctx.IsSigned { - ctx.Data["IsWatchingRepo"] = models.IsWatching(ctx.User.Id, repo.ID) - ctx.Data["IsStaringRepo"] = models.IsStaring(ctx.User.Id, repo.ID) - } - ctx.Data["TagName"] = ctx.Repo.TagName brs, err := ctx.Repo.GitRepo.GetBranches() if err != nil { diff --git a/modules/setting/setting.go b/modules/setting/setting.go index cbc2cc18e..6b5a36598 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -18,8 +18,7 @@ import ( "gopkg.in/ini.v1" "github.com/Unknwon/com" - "github.com/macaron-contrib/oauth2" - "github.com/macaron-contrib/session" + "github.com/go-macaron/session" "github.com/gogits/gogs/modules/bindata" "github.com/gogits/gogs/modules/log" @@ -75,6 +74,7 @@ var ( UseSQLite3 bool UseMySQL bool UsePostgreSQL bool + UseTiDB bool // Webhook settings. Webhook struct { @@ -91,8 +91,13 @@ var ( AnsiCharset string // UI settings. - ExplorePagingNum int - IssuePagingNum int + ExplorePagingNum int + IssuePagingNum int + FeedMaxCommitNum int + AdminUserPagingNum int + AdminRepoPagingNum int + AdminNoticePagingNum int + AdminOrgPagingNum int // Markdown sttings. Markdown struct { @@ -227,9 +232,9 @@ func forcePathSeparator(path string) { } } -// NewConfigContext initializes configuration context. +// NewContext initializes configuration context. // NOTE: do not print any log except error. -func NewConfigContext() { +func NewContext() { workDir, err := WorkDir() if err != nil { log.Fatal(4, "Fail to get work directory: %v", err) @@ -366,6 +371,13 @@ func NewConfigContext() { sec = Cfg.Section("ui") ExplorePagingNum = sec.Key("EXPLORE_PAGING_NUM").MustInt(20) IssuePagingNum = sec.Key("ISSUE_PAGING_NUM").MustInt(10) + FeedMaxCommitNum = sec.Key("FEED_MAX_COMMIT_NUM").MustInt(5) + + sec = Cfg.Section("ui.admin") + AdminUserPagingNum = sec.Key("USER_PAGING_NUM").MustInt(50) + AdminRepoPagingNum = sec.Key("REPO_PAGING_NUM").MustInt(50) + AdminNoticePagingNum = sec.Key("NOTICE_PAGING_NUM").MustInt(50) + AdminOrgPagingNum = sec.Key("ORG_PAGING_NUM").MustInt(50) sec = Cfg.Section("picture") PictureService = sec.Key("SERVICE").In("server", []string{"server"}) @@ -416,6 +428,7 @@ var Service struct { EnableReverseProxyAuth bool EnableReverseProxyAutoRegister bool DisableMinimumKeySizeCheck bool + EnableCaptcha bool } func newService() { @@ -429,6 +442,7 @@ func newService() { Service.EnableReverseProxyAuth = sec.Key("ENABLE_REVERSE_PROXY_AUTHENTICATION").MustBool() Service.EnableReverseProxyAutoRegister = sec.Key("ENABLE_REVERSE_PROXY_AUTO_REGISTRATION").MustBool() Service.DisableMinimumKeySizeCheck = sec.Key("DISABLE_MINIMUM_KEY_SIZE_CHECK").MustBool() + Service.EnableCaptcha = sec.Key("ENABLE_CAPTCHA").MustBool() } var logLevels = map[string]string{ @@ -538,6 +552,7 @@ func newSessionService() { // Mailer represents mail service. type Mailer struct { + QueueLength int Name string Host string From string @@ -549,21 +564,8 @@ type Mailer struct { CertFile, KeyFile string } -type OauthInfo struct { - oauth2.Options - AuthUrl, TokenUrl string -} - -// Oauther represents oauth service. -type Oauther struct { - GitHub, Google, Tencent, - Twitter, Weibo bool - OauthInfos map[string]*OauthInfo -} - var ( - MailService *Mailer - OauthService *Oauther + MailService *Mailer ) func newMailService() { @@ -574,6 +576,7 @@ func newMailService() { } MailService = &Mailer{ + QueueLength: sec.Key("SEND_BUFFER_LEN").MustInt(100), Name: sec.Key("NAME").MustString(AppName), Host: sec.Key("HOST").String(), User: sec.Key("USER").String(), diff --git a/modules/setting/setting_memcache.go b/modules/setting/setting_memcache.go index 26b1cc6f6..9a7653b72 100644 --- a/modules/setting/setting_memcache.go +++ b/modules/setting/setting_memcache.go @@ -7,7 +7,7 @@ package setting import ( - _ "github.com/macaron-contrib/cache/memcache" + _ "github.com/go-macaron/cache/memcache" ) func init() { diff --git a/modules/setting/setting_redis.go b/modules/setting/setting_redis.go index bfd1694de..e12010cd5 100644 --- a/modules/setting/setting_redis.go +++ b/modules/setting/setting_redis.go @@ -7,8 +7,8 @@ package setting import ( - _ "github.com/macaron-contrib/cache/redis" - _ "github.com/macaron-contrib/session/redis" + _ "github.com/go-macaron/cache/redis" + _ "github.com/go-macaron/session/redis" ) func init() { diff --git a/modules/social/social.go b/modules/social/social.go deleted file mode 100644 index e214aa522..000000000 --- a/modules/social/social.go +++ /dev/null @@ -1,333 +0,0 @@ -// Copyright 2014 Google Inc. All Rights Reserved. -// 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 social - -import ( - "encoding/json" - "io/ioutil" - "net/http" - "net/url" - "strconv" - - "github.com/macaron-contrib/oauth2" - - "github.com/gogits/gogs/models" - "github.com/gogits/gogs/modules/log" - "github.com/gogits/gogs/modules/setting" -) - -type BasicUserInfo struct { - Identity string - Name string - Email string -} - -type SocialConnector interface { - Type() int - UserInfo(*oauth2.Token, *url.URL) (*BasicUserInfo, error) -} - -var ( - SocialMap = make(map[string]SocialConnector) -) - -func NewOauthService() { - if !setting.Cfg.Section("oauth").Key("ENABLED").MustBool() { - return - } - - oauth2.AppSubUrl = setting.AppSubUrl - - setting.OauthService = &setting.Oauther{} - setting.OauthService.OauthInfos = make(map[string]*setting.OauthInfo) - - socialConfigs := make(map[string]*oauth2.Options) - allOauthes := []string{"github", "google", "qq", "twitter", "weibo"} - // Load all OAuth config data. - for _, name := range allOauthes { - sec := setting.Cfg.Section("oauth." + name) - if !sec.Key("ENABLED").MustBool() { - continue - } - setting.OauthService.OauthInfos[name] = &setting.OauthInfo{ - Options: oauth2.Options{ - ClientID: sec.Key("CLIENT_ID").String(), - ClientSecret: sec.Key("CLIENT_SECRET").String(), - Scopes: sec.Key("SCOPES").Strings(" "), - PathLogin: "/user/login/oauth2/" + name, - PathCallback: setting.AppSubUrl + "/user/login/" + name, - RedirectURL: setting.AppUrl + "user/login/" + name, - }, - AuthUrl: sec.Key("AUTH_URL").String(), - TokenUrl: sec.Key("TOKEN_URL").String(), - } - socialConfigs[name] = &oauth2.Options{ - ClientID: setting.OauthService.OauthInfos[name].ClientID, - ClientSecret: setting.OauthService.OauthInfos[name].ClientSecret, - Scopes: setting.OauthService.OauthInfos[name].Scopes, - } - } - enabledOauths := make([]string, 0, 10) - - // GitHub. - if setting.Cfg.Section("oauth.github").Key("ENABLED").MustBool() { - setting.OauthService.GitHub = true - newGitHubOauth(socialConfigs["github"]) - enabledOauths = append(enabledOauths, "GitHub") - } - - // Google. - if setting.Cfg.Section("oauth.google").Key("ENABLED").MustBool() { - setting.OauthService.Google = true - newGoogleOauth(socialConfigs["google"]) - enabledOauths = append(enabledOauths, "Google") - } - - // QQ. - if setting.Cfg.Section("oauth.qq").Key("ENABLED").MustBool() { - setting.OauthService.Tencent = true - newTencentOauth(socialConfigs["qq"]) - enabledOauths = append(enabledOauths, "QQ") - } - - // Twitter. - // if setting.Cfg.Section("oauth.twitter").Key( "ENABLED").MustBool() { - // setting.OauthService.Twitter = true - // newTwitterOauth(socialConfigs["twitter"]) - // enabledOauths = append(enabledOauths, "Twitter") - // } - - // Weibo. - if setting.Cfg.Section("oauth.weibo").Key("ENABLED").MustBool() { - setting.OauthService.Weibo = true - newWeiboOauth(socialConfigs["weibo"]) - enabledOauths = append(enabledOauths, "Weibo") - } - - log.Info("Oauth Service Enabled %s", enabledOauths) -} - -// ________.__ __ ___ ___ ___. -// / _____/|__|/ |_ / | \ __ _\_ |__ -// / \ ___| \ __\/ ~ \ | \ __ \ -// \ \_\ \ || | \ Y / | / \_\ \ -// \______ /__||__| \___|_ /|____/|___ / -// \/ \/ \/ - -type SocialGithub struct { - opts *oauth2.Options -} - -func newGitHubOauth(opts *oauth2.Options) { - SocialMap["github"] = &SocialGithub{opts} -} - -func (s *SocialGithub) Type() int { - return int(models.GITHUB) -} - -func (s *SocialGithub) UserInfo(token *oauth2.Token, _ *url.URL) (*BasicUserInfo, error) { - transport := s.opts.NewTransportFromToken(token) - var data struct { - Id int `json:"id"` - Name string `json:"login"` - Email string `json:"email"` - } - r, err := transport.Client().Get("https://api.github.com/user") - if err != nil { - return nil, err - } - defer r.Body.Close() - if err = json.NewDecoder(r.Body).Decode(&data); err != nil { - return nil, err - } - return &BasicUserInfo{ - Identity: strconv.Itoa(data.Id), - Name: data.Name, - Email: data.Email, - }, nil -} - -// ________ .__ -// / _____/ ____ ____ ____ | | ____ -// / \ ___ / _ \ / _ \ / ___\| | _/ __ \ -// \ \_\ ( <_> | <_> ) /_/ > |_\ ___/ -// \______ /\____/ \____/\___ /|____/\___ > -// \/ /_____/ \/ - -type SocialGoogle struct { - opts *oauth2.Options -} - -func (s *SocialGoogle) Type() int { - return int(models.GOOGLE) -} - -func newGoogleOauth(opts *oauth2.Options) { - SocialMap["google"] = &SocialGoogle{opts} -} - -func (s *SocialGoogle) UserInfo(token *oauth2.Token, _ *url.URL) (*BasicUserInfo, error) { - transport := s.opts.NewTransportFromToken(token) - var data struct { - Id string `json:"id"` - Name string `json:"name"` - Email string `json:"email"` - } - r, err := transport.Client().Get("https://www.googleapis.com/userinfo/v2/me") - if err != nil { - return nil, err - } - defer r.Body.Close() - if err = json.NewDecoder(r.Body).Decode(&data); err != nil { - return nil, err - } - return &BasicUserInfo{ - Identity: data.Id, - Name: data.Name, - Email: data.Email, - }, nil -} - -// ________ ________ -// \_____ \ \_____ \ -// / / \ \ / / \ \ -// / \_/. \/ \_/. \ -// \_____\ \_/\_____\ \_/ -// \__> \__> - -type SocialTencent struct { - opts *oauth2.Options -} - -func newTencentOauth(opts *oauth2.Options) { - SocialMap["qq"] = &SocialTencent{opts} -} - -func (s *SocialTencent) Type() int { - return int(models.QQ) -} - -func (s *SocialTencent) UserInfo(token *oauth2.Token, URL *url.URL) (*BasicUserInfo, error) { - r, err := http.Get("https://graph.z.qq.com/moc2/me?access_token=" + url.QueryEscape(token.AccessToken)) - if err != nil { - return nil, err - } - defer r.Body.Close() - - body, err := ioutil.ReadAll(r.Body) - if err != nil { - return nil, err - } - vals, err := url.ParseQuery(string(body)) - if err != nil { - return nil, err - } - - return &BasicUserInfo{ - Identity: vals.Get("openid"), - }, nil -} - -// ___________ .__ __ __ -// \__ ___/_ _ _|__|/ |__/ |_ ___________ -// | | \ \/ \/ / \ __\ __\/ __ \_ __ \ -// | | \ /| || | | | \ ___/| | \/ -// |____| \/\_/ |__||__| |__| \___ >__| -// \/ - -// type SocialTwitter struct { -// Token *oauth2.Token -// *oauth2.Transport -// } - -// func (s *SocialTwitter) Type() int { -// return int(models.TWITTER) -// } - -// func newTwitterOauth(config *oauth2.Config) { -// SocialMap["twitter"] = &SocialTwitter{ -// Transport: &oauth.Transport{ -// Config: config, -// Transport: http.DefaultTransport, -// }, -// } -// } - -// func (s *SocialTwitter) SetRedirectUrl(url string) { -// s.Transport.Config.RedirectURL = url -// } - -// //https://github.com/mrjones/oauth -// func (s *SocialTwitter) UserInfo(token *oauth2.Token, _ *url.URL) (*BasicUserInfo, error) { -// // transport := &oauth.Transport{Token: token} -// // var data struct { -// // Id string `json:"id"` -// // Name string `json:"name"` -// // Email string `json:"email"` -// // } -// // var err error - -// // reqUrl := "https://www.googleapis.com/oauth2/v1/userinfo" -// // r, err := transport.Client().Get(reqUrl) -// // if err != nil { -// // return nil, err -// // } -// // defer r.Body.Close() -// // if err = json.NewDecoder(r.Body).Decode(&data); err != nil { -// // return nil, err -// // } -// // return &BasicUserInfo{ -// // Identity: data.Id, -// // Name: data.Name, -// // Email: data.Email, -// // }, nil -// return nil, nil -// } - -// __ __ ._____. -// / \ / \ ____ |__\_ |__ ____ -// \ \/\/ // __ \| || __ \ / _ \ -// \ /\ ___/| || \_\ ( <_> ) -// \__/\ / \___ >__||___ /\____/ -// \/ \/ \/ - -type SocialWeibo struct { - opts *oauth2.Options -} - -func newWeiboOauth(opts *oauth2.Options) { - SocialMap["weibo"] = &SocialWeibo{opts} -} - -func (s *SocialWeibo) Type() int { - return int(models.WEIBO) -} - -func (s *SocialWeibo) UserInfo(token *oauth2.Token, _ *url.URL) (*BasicUserInfo, error) { - transport := s.opts.NewTransportFromToken(token) - var data struct { - Name string `json:"name"` - } - var urls = url.Values{ - "access_token": {token.AccessToken}, - "uid": {token.Extra("uid")}, - } - reqUrl := "https://api.weibo.com/2/users/show.json" - r, err := transport.Client().Get(reqUrl + "?" + urls.Encode()) - if err != nil { - return nil, err - } - defer r.Body.Close() - - if err = json.NewDecoder(r.Body).Decode(&data); err != nil { - return nil, err - } - return &BasicUserInfo{ - Identity: token.Extra("uid"), - Name: data.Name, - }, nil -} diff --git a/modules/ssh/ssh.go b/modules/ssh/ssh.go index 26169e0f3..557f08ffe 100644 --- a/modules/ssh/ssh.go +++ b/modules/ssh/ssh.go @@ -14,8 +14,8 @@ import ( "strings" "github.com/Unknwon/com" - "golang.org/x/crypto/ssh" + "github.com/gogits/gogs/modules/crypto/ssh" "github.com/gogits/gogs/modules/log" ) diff --git a/packager/debian/postinst b/packager/debian/postinst index 964e8148f..82f45b06d 100755 --- a/packager/debian/postinst +++ b/packager/debian/postinst @@ -28,6 +28,10 @@ case "$1" in # scale ${CLI} scale web=1 || true + + # restart the service + service gogs restart || true + ;; esac diff --git a/public/config.codekit b/public/config.codekit index 63f5efa4d..20da2684d 100644 --- a/public/config.codekit +++ b/public/config.codekit @@ -149,6 +149,17 @@ "outputPathIsSetByUser": 0, "processed": 1 }, + "\/img\/gogs-large-resize.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 78864, + "inputAbbreviatedPath": "\/img\/gogs-large-resize.png", + "outputAbbreviatedPath": "\/img\/gogs-large-resize.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 1 + }, "\/img\/gogs-lg.png": { "fileType": 32768, "ignore": 0, @@ -193,6 +204,17 @@ "outputStyle": 1, "syntaxCheckerStyle": 1 }, + "\/js\/libs\/clipboard-1.3.1.min.js": { + "fileType": 64, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/js\/libs\/clipboard-1.3.1.min.js", + "outputAbbreviatedPath": "\/js\/libs\/min\/clipboard-1.3.1.min-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, "\/js\/libs\/dropzone-4.0.1.js": { "fileType": 64, "ignore": 0, @@ -537,12 +559,12 @@ "fileType": 1, "ieCompatibility": 1, "ignore": 0, - "ignoreWasSetByUser": 0, + "ignoreWasSetByUser": 1, "inputAbbreviatedPath": "\/less\/gogs.less", - "outputAbbreviatedPath": "\/css\/gogs.min.css", + "outputAbbreviatedPath": "\/css\/gogs.css", "outputPathIsOutsideProject": 0, "outputPathIsSetByUser": 1, - "outputStyle": 1, + "outputStyle": 0, "relativeURLS": 0, "shouldRunAutoprefixer": 0, "shouldRunBless": 0, diff --git a/public/css/gogs.css b/public/css/gogs.css index 0af09a3ec..205509a26 100755 --- a/public/css/gogs.css +++ b/public/css/gogs.css @@ -1,1856 +1,2618 @@ -/*! - * Gogs - Go Git Service (http://gogs.io) - * Copyright 2014 Gogs. - * Licensed under MIT (https://github.com/gogits/gogs/blob/master/LICENSE) - */ - -body { - background: #F6F6F6; +@font-face { + font-family: 'octicons'; + src: url('../fonts/octicons.eot?#iefix&v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d') format('embedded-opentype'), url('../fonts/octicons.woff?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d') format('woff'), url('../fonts/octicons.ttf?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d') format('truetype'), url('../fonts/octicons.svg?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d#octicons') format('svg'); + font-weight: normal; + font-style: normal; +} +.octicon, +.mega-octicon { + font: normal normal normal 16px/1 octicons; + display: inline-block; + text-decoration: none; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mega-octicon { + font-size: 32px; +} +.octicon-alert:before { + content: '\f02d'; +} +/*  */ +.octicon-arrow-down:before { + content: '\f03f'; +} +/*  */ +.octicon-arrow-left:before { + content: '\f040'; +} +/*  */ +.octicon-arrow-right:before { + content: '\f03e'; +} +/*  */ +.octicon-arrow-small-down:before { + content: '\f0a0'; +} +/*  */ +.octicon-arrow-small-left:before { + content: '\f0a1'; +} +/*  */ +.octicon-arrow-small-right:before { + content: '\f071'; +} +/*  */ +.octicon-arrow-small-up:before { + content: '\f09f'; +} +/*  */ +.octicon-arrow-up:before { + content: '\f03d'; +} +/*  */ +.octicon-microscope:before, +.octicon-beaker:before { + content: '\f0dd'; +} +/*  */ +.octicon-bell:before { + content: '\f0de'; +} +/*  */ +.octicon-book:before { + content: '\f007'; +} +/*  */ +.octicon-bookmark:before { + content: '\f07b'; +} +/*  */ +.octicon-briefcase:before { + content: '\f0d3'; +} +/*  */ +.octicon-broadcast:before { + content: '\f048'; +} +/*  */ +.octicon-browser:before { + content: '\f0c5'; +} +/*  */ +.octicon-bug:before { + content: '\f091'; +} +/*  */ +.octicon-calendar:before { + content: '\f068'; +} +/*  */ +.octicon-check:before { + content: '\f03a'; +} +/*  */ +.octicon-checklist:before { + content: '\f076'; +} +/*  */ +.octicon-chevron-down:before { + content: '\f0a3'; +} +/*  */ +.octicon-chevron-left:before { + content: '\f0a4'; +} +/*  */ +.octicon-chevron-right:before { + content: '\f078'; +} +/*  */ +.octicon-chevron-up:before { + content: '\f0a2'; +} +/*  */ +.octicon-circle-slash:before { + content: '\f084'; +} +/*  */ +.octicon-circuit-board:before { + content: '\f0d6'; +} +/*  */ +.octicon-clippy:before { + content: '\f035'; +} +/*  */ +.octicon-clock:before { + content: '\f046'; +} +/*  */ +.octicon-cloud-download:before { + content: '\f00b'; +} +/*  */ +.octicon-cloud-upload:before { + content: '\f00c'; +} +/*  */ +.octicon-code:before { + content: '\f05f'; +} +/*  */ +.octicon-color-mode:before { + content: '\f065'; +} +/*  */ +.octicon-comment-add:before, +.octicon-comment:before { + content: '\f02b'; +} +/*  */ +.octicon-comment-discussion:before { + content: '\f04f'; +} +/*  */ +.octicon-credit-card:before { + content: '\f045'; +} +/*  */ +.octicon-dash:before { + content: '\f0ca'; +} +/*  */ +.octicon-dashboard:before { + content: '\f07d'; +} +/*  */ +.octicon-database:before { + content: '\f096'; +} +/*  */ +.octicon-clone:before, +.octicon-desktop-download:before { + content: '\f0dc'; +} +/*  */ +.octicon-device-camera:before { + content: '\f056'; +} +/*  */ +.octicon-device-camera-video:before { + content: '\f057'; +} +/*  */ +.octicon-device-desktop:before { + content: '\f27c'; +} +/*  */ +.octicon-device-mobile:before { + content: '\f038'; +} +/*  */ +.octicon-diff:before { + content: '\f04d'; +} +/*  */ +.octicon-diff-added:before { + content: '\f06b'; +} +/*  */ +.octicon-diff-ignored:before { + content: '\f099'; +} +/*  */ +.octicon-diff-modified:before { + content: '\f06d'; +} +/*  */ +.octicon-diff-removed:before { + content: '\f06c'; +} +/*  */ +.octicon-diff-renamed:before { + content: '\f06e'; +} +/*  */ +.octicon-ellipsis:before { + content: '\f09a'; +} +/*  */ +.octicon-eye-unwatch:before, +.octicon-eye-watch:before, +.octicon-eye:before { + content: '\f04e'; +} +/*  */ +.octicon-file-binary:before { + content: '\f094'; +} +/*  */ +.octicon-file-code:before { + content: '\f010'; +} +/*  */ +.octicon-file-directory:before { + content: '\f016'; +} +/*  */ +.octicon-file-media:before { + content: '\f012'; +} +/*  */ +.octicon-file-pdf:before { + content: '\f014'; +} +/*  */ +.octicon-file-submodule:before { + content: '\f017'; +} +/*  */ +.octicon-file-symlink-directory:before { + content: '\f0b1'; +} +/*  */ +.octicon-file-symlink-file:before { + content: '\f0b0'; +} +/*  */ +.octicon-file-text:before { + content: '\f011'; +} +/*  */ +.octicon-file-zip:before { + content: '\f013'; +} +/*  */ +.octicon-flame:before { + content: '\f0d2'; +} +/*  */ +.octicon-fold:before { + content: '\f0cc'; +} +/*  */ +.octicon-gear:before { + content: '\f02f'; +} +/*  */ +.octicon-gift:before { + content: '\f042'; +} +/*  */ +.octicon-gist:before { + content: '\f00e'; +} +/*  */ +.octicon-gist-secret:before { + content: '\f08c'; +} +/*  */ +.octicon-git-branch-create:before, +.octicon-git-branch-delete:before, +.octicon-git-branch:before { + content: '\f020'; +} +/*  */ +.octicon-git-commit:before { + content: '\f01f'; +} +/*  */ +.octicon-git-compare:before { + content: '\f0ac'; +} +/*  */ +.octicon-git-merge:before { + content: '\f023'; +} +/*  */ +.octicon-git-pull-request-abandoned:before, +.octicon-git-pull-request:before { + content: '\f009'; +} +/*  */ +.octicon-globe:before { + content: '\f0b6'; +} +/*  */ +.octicon-graph:before { + content: '\f043'; +} +/*  */ +.octicon-heart:before { + content: '\2665'; +} +/* ♥ */ +.octicon-history:before { + content: '\f07e'; +} +/*  */ +.octicon-home:before { + content: '\f08d'; +} +/*  */ +.octicon-horizontal-rule:before { + content: '\f070'; +} +/*  */ +.octicon-hubot:before { + content: '\f09d'; +} +/*  */ +.octicon-inbox:before { + content: '\f0cf'; +} +/*  */ +.octicon-info:before { + content: '\f059'; +} +/*  */ +.octicon-issue-closed:before { + content: '\f028'; +} +/*  */ +.octicon-issue-opened:before { + content: '\f026'; +} +/*  */ +.octicon-issue-reopened:before { + content: '\f027'; +} +/*  */ +.octicon-jersey:before { + content: '\f019'; +} +/*  */ +.octicon-key:before { + content: '\f049'; +} +/*  */ +.octicon-keyboard:before { + content: '\f00d'; +} +/*  */ +.octicon-law:before { + content: '\f0d8'; +} +/*  */ +.octicon-light-bulb:before { + content: '\f000'; +} +/*  */ +.octicon-link:before { + content: '\f05c'; +} +/*  */ +.octicon-link-external:before { + content: '\f07f'; +} +/*  */ +.octicon-list-ordered:before { + content: '\f062'; +} +/*  */ +.octicon-list-unordered:before { + content: '\f061'; +} +/*  */ +.octicon-location:before { + content: '\f060'; +} +/*  */ +.octicon-gist-private:before, +.octicon-mirror-private:before, +.octicon-git-fork-private:before, +.octicon-lock:before { + content: '\f06a'; +} +/*  */ +.octicon-logo-github:before { + content: '\f092'; +} +/*  */ +.octicon-mail:before { + content: '\f03b'; +} +/*  */ +.octicon-mail-read:before { + content: '\f03c'; +} +/*  */ +.octicon-mail-reply:before { + content: '\f051'; +} +/*  */ +.octicon-mark-github:before { + content: '\f00a'; +} +/*  */ +.octicon-markdown:before { + content: '\f0c9'; +} +/*  */ +.octicon-megaphone:before { + content: '\f077'; +} +/*  */ +.octicon-mention:before { + content: '\f0be'; +} +/*  */ +.octicon-milestone:before { + content: '\f075'; +} +/*  */ +.octicon-mirror-public:before, +.octicon-mirror:before { + content: '\f024'; +} +/*  */ +.octicon-mortar-board:before { + content: '\f0d7'; +} +/*  */ +.octicon-mute:before { + content: '\f080'; +} +/*  */ +.octicon-no-newline:before { + content: '\f09c'; +} +/*  */ +.octicon-octoface:before { + content: '\f008'; +} +/*  */ +.octicon-organization:before { + content: '\f037'; +} +/*  */ +.octicon-package:before { + content: '\f0c4'; +} +/*  */ +.octicon-paintcan:before { + content: '\f0d1'; +} +/*  */ +.octicon-pencil:before { + content: '\f058'; +} +/*  */ +.octicon-person-add:before, +.octicon-person-follow:before, +.octicon-person:before { + content: '\f018'; +} +/*  */ +.octicon-pin:before { + content: '\f041'; +} +/*  */ +.octicon-plug:before { + content: '\f0d4'; +} +/*  */ +.octicon-repo-create:before, +.octicon-gist-new:before, +.octicon-file-directory-create:before, +.octicon-file-add:before, +.octicon-plus:before { + content: '\f05d'; +} +/*  */ +.octicon-primitive-dot:before { + content: '\f052'; +} +/*  */ +.octicon-primitive-square:before { + content: '\f053'; +} +/*  */ +.octicon-pulse:before { + content: '\f085'; +} +/*  */ +.octicon-question:before { + content: '\f02c'; +} +/*  */ +.octicon-quote:before { + content: '\f063'; +} +/*  */ +.octicon-radio-tower:before { + content: '\f030'; +} +/*  */ +.octicon-repo-delete:before, +.octicon-repo:before { + content: '\f001'; +} +/*  */ +.octicon-repo-clone:before { + content: '\f04c'; +} +/*  */ +.octicon-repo-force-push:before { + content: '\f04a'; +} +/*  */ +.octicon-gist-fork:before, +.octicon-repo-forked:before { + content: '\f002'; +} +/*  */ +.octicon-repo-pull:before { + content: '\f006'; +} +/*  */ +.octicon-repo-push:before { + content: '\f005'; +} +/*  */ +.octicon-rocket:before { + content: '\f033'; +} +/*  */ +.octicon-rss:before { + content: '\f034'; +} +/*  */ +.octicon-ruby:before { + content: '\f047'; +} +/*  */ +.octicon-screen-full:before { + content: '\f066'; +} +/*  */ +.octicon-screen-normal:before { + content: '\f067'; +} +/*  */ +.octicon-search-save:before, +.octicon-search:before { + content: '\f02e'; +} +/*  */ +.octicon-server:before { + content: '\f097'; +} +/*  */ +.octicon-settings:before { + content: '\f07c'; +} +/*  */ +.octicon-shield:before { + content: '\f0e1'; +} +/*  */ +.octicon-log-in:before, +.octicon-sign-in:before { + content: '\f036'; +} +/*  */ +.octicon-log-out:before, +.octicon-sign-out:before { + content: '\f032'; +} +/*  */ +.octicon-squirrel:before { + content: '\f0b2'; +} +/*  */ +.octicon-star-add:before, +.octicon-star-delete:before, +.octicon-star:before { + content: '\f02a'; +} +/*  */ +.octicon-stop:before { + content: '\f08f'; +} +/*  */ +.octicon-repo-sync:before, +.octicon-sync:before { + content: '\f087'; +} +/*  */ +.octicon-tag-remove:before, +.octicon-tag-add:before, +.octicon-tag:before { + content: '\f015'; +} +/*  */ +.octicon-telescope:before { + content: '\f088'; +} +/*  */ +.octicon-terminal:before { + content: '\f0c8'; +} +/*  */ +.octicon-three-bars:before { + content: '\f05e'; +} +/*  */ +.octicon-thumbsdown:before { + content: '\f0db'; +} +/*  */ +.octicon-thumbsup:before { + content: '\f0da'; +} +/*  */ +.octicon-tools:before { + content: '\f031'; +} +/*  */ +.octicon-trashcan:before { + content: '\f0d0'; +} +/*  */ +.octicon-triangle-down:before { + content: '\f05b'; +} +/*  */ +.octicon-triangle-left:before { + content: '\f044'; +} +/*  */ +.octicon-triangle-right:before { + content: '\f05a'; +} +/*  */ +.octicon-triangle-up:before { + content: '\f0aa'; +} +/*  */ +.octicon-unfold:before { + content: '\f039'; +} +/*  */ +.octicon-unmute:before { + content: '\f0ba'; +} +/*  */ +.octicon-versions:before { + content: '\f064'; +} +/*  */ +.octicon-watch:before { + content: '\f0e0'; +} +/*  */ +.octicon-remove-close:before, +.octicon-x:before { + content: '\f081'; +} +/*  */ +.octicon-zap:before { + content: '\26A1'; +} +/* ⚡ */ +.emoji { + width: 1.5em; + height: 1.5em; + display: inline-block; + background-size: contain; } -html, body { - height: 100%; - font-family: Arial, Helvetica, sans-serif; + font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif, '微软雅黑'; + background-color: #FAFAFA; } -/* override bs3 */ - -.tooltip-inner { - border-radius: 3px; - background: #333; - border: none; +img { + border-radius: 3px; } -.tooltip-arrow { - border-bottom-color: #333 !important; +pre { + font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; } -.tooltip-arrow:before { - border-bottom-color: transparent !important; +pre.raw { + padding: 7px 12px; + margin: 10px 0; + background-color: #f8f8f8; + border: 1px solid #ddd; + border-radius: 3px; + font-size: 13px; + line-height: 1.5; + overflow: auto; } -.fa { - margin: 0 .5em; +.full.height { + padding: 0; + margin: 0 0 -80px 0; + min-height: 100%; } -.fa-m { - margin: 0; +.following.bar { + z-index: 900; + left: 0; + width: 100%; } -.list-group .list-group-item { - background-color: transparent; +.following.bar.light { + background-color: white; + border-bottom: 1px solid #DDDDDD; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.04); } -.btn { - cursor: pointer; +.following.bar .column .menu { + margin-top: 0; } -.panel-default .panel-heading { - background-color: #FAFAFA; - border-bottom: 1px solid #DDD; - font-weight: bold; +.following.bar .top.menu a.item.brand { + padding-left: 0; } -/* gogits nav header */ - -.masthead { - background-color: #428bca; - box-shadow: inset 0 -2px 5px rgba(0, 0, 0, .1); - margin: 0; -} -/* gogits nav item link */ - -.nav-item { - position: relative; - display: inline-block; - padding: 10px; - font-weight: bold; - color: #EEE; - font-size: 100%; - height: 46px; - margin-top: 3px; -} -#nav-logo { - padding-left: 0; - padding-right: 0; - margin-right: 10px; - margin-top: 0; -} -.nav-item:hover, -.nav-item:focus { - color: #fff; - text-decoration: none; -} -.nav-item.navbar-btn { - cursor: pointer; - margin-top: 8px; - padding: 5px 15px; - height: 30px; -} -.nav-item.navbar-right .fa { - margin: 0; -} -#nav-search-form { - width: 300px; - margin-top: 0; -} -#nav-search-form button { - margin-top: 0; - background-image: none; - background-color: #F6F6F6; -} -#nav-search-form input[type=search] { - background-color: #F6F6F6; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; - -webkit-transition: width linear .25s; -} -#nav-search-form input[type=search]:focus { - background-color: #FFF; - border-color: #D9D9D9; - width: 320px; -} -/* gogits nav item active status */ - -#masthead .nav .active { - color: #fff; -} -#masthead .nav .active:after { - position: absolute; - bottom: -1px; - left: 50%; - width: 0; - height: 0; - margin-left: -5px; - vertical-align: middle; - content: " "; - border-right: 5px solid transparent; - border-bottom: 5px solid; - border-left: 5px solid transparent; -} -#nav-logo:after { - bottom: -4px !important; -} -#nav-avatar:after { - bottom: -4px !important; -} -.nav .tooltip { - border: none; -} -/* gogits logo */ - -#nav-avatar { - margin-top: 0; -} -#logo, -#nav-avatar img { - width: 28px; - height: 28px; -} -#nav-out { - margin-top: 10px; - padding: 5px 0; - margin-left: 10px; - height: 28px; - float: right; -} -#nav-signin, -#nav-signup { - float: right; - margin-left: 1em; -} -#nav-out .fa { - vertical-align: -10%; - margin: 0 .5em; -} -/* gogits body */ - -#body { - padding-bottom: 60px; - margin-top: 30px; -} -#body .btn-default { - background-color: #FFF; - background-image: linear-gradient(to bottom, #FFF 0, #FAFAFA 100%); -} -#body-nav { - background-color: #FFF; - border-bottom: 1px solid #DDD; - height: 66px -} -#body-nav .nav { - font-size: 14px; - margin-top: 12px; -} -#body-nav .nav-pills li a { - color: #444; -} -#body-nav .nav-pills li.active a { - font-weight: bold; - border-bottom: 2px solid #d26911; - background-color: transparent; - color: #444; -} -#body-nav .nav-pills li:hover a { - background-color: transparent; - text-decoration: underline; -} -/* gogits login card */ - -.card { - margin: auto; - padding: 30px; - background: #fff; - border: 1px solid #ccc; - border-radius: 5px; - box-sizing: border-box; -} -.card h3 { - margin-top: 0; - margin-bottom: 30px; - padding-bottom: 20px; - border-bottom: 1px solid #ccc; -} -#login-card { - max-width: 600px; -} -#login-card .form-control { - padding: 6px 12px; - box-sizing: content-box; -} -#login-card .control-label { - height: 44px; - line-height: 30px; -} -#install-card { - max-width: 800px; -} -#install-card .form-group { - margin-left: 0; - margin-right: 0; -} -.card .btn { - cursor: pointer; -} -.card .btn-primary { - margin-right: 1.2em; -} -#social-login { - margin-top: 40px; - padding-top: 40px; - border-top: 1px solid #ccc; - position: relative; -} -#social-login .btn { - float: none; - margin: auto 4px; -} -#social-login .btn .fa { - margin-left: 0; - margin-right: 4px; -} -#social-login .btn span { - display: inline-block; - vertical-align: top; - font-size: 16px; - margin-top: 5px; -} -#social-login h4 { - position: absolute; - top: -20px; - width: 100%; - text-align: center; - background-color: transparent; -} -#social-login h4 span { - background-color: #FFF; - padding: 0 12px; -} -/* gogs-user-profile */ - -#user-avatar { - width: 200px; - height: 200px; - border-radius: 6px; -} -#user-avatar-commit { - width: 16px; - height: 16px; - border-radius: 2px; -} -#user-name, -#user-full-name { - font-size: 1.6em; - font-weight: bold; +.following.bar .brand .ui.mini.image { + width: 30px; } -#user-name { - margin-bottom: 20px; - margin-top: 10px; -} -#user-full-name { - margin-top: 20px; -} -#user-profile .profile-info .list-group-item { - background-color: transparent; - padding-top: 18px; - color: #666; -} -#user-profile .profile-info .list-group-item a { - margin: 0; - padding: 0; - display: inline; - color: #0093c4; -} -#user-profile .profile-info .list-group { - border-top: 1px solid #ccc; - padding-bottom: 18px; - border-bottom: 1px solid #ccc; - padding-left: 18px; - padding-right: 18px; -} -#user-profile .profile-rel .col-md-6 { - text-align: center; - padding-bottom: 12px; -} -#user-profile .profile-rel strong { - font-size: 24px; - color: #444; - display: block; -} -#user-profile .profile-rel p { - margin-right: 0; - color: #888; -} -#user-activity .tab-pane { - padding: 20px; -} -#user-act-tabs li.active a { - border-bottom-color: #ddd; -} -/* gogits repo create */ - -#repo-create, -#org-create, -#org-teams-create, -#org-teams-edit { - max-width: 800px; -} -#repo-create textarea[name=desc] { - height: 8em; -} -#repo-import-auth { - width: 100%; - margin-top: 48px; - box-sizing: border-box; -} -#repo-import-auth .form-group { - box-sizing: border-box; - margin-left: 0; - margin-right: 0; -} -/* gogits user setting */ - -#user-setting-nav.repo-setting-nav { - background-color: #FFF; - border: 1px solid #CCC; - padding: 0; - padding-top: 10px; -} -#user-setting-nav > h4, -#user-setting-container > h4, -#user-setting-container > div > h4, -#ssh-keys > h4, -#user-delete > h4, -#repo-setting-container .tab-pane > h4 { - padding-bottom: 18px; - margin-bottom: 18px; - border-bottom: 1px solid #CCC; -} -#user-setting-nav .list-group .list-group-item a { - margin-left: 0; - padding: .6em 1.2em; - font-size: 14px; - color: #3B73AF; -} -#user-setting-nav .list-group .list-group-item { - background-color: transparent; - margin-bottom: .6em; -} -#user-setting-nav .list-group .list-group-item-success a { - font-weight: bold; - color: #444; +.following.bar .top.menu a.item:hover, +.following.bar .top.menu .dropdown.item:hover, +.following.bar .top.menu .dropdown.item.active { + background-color: transparent; } -.admin-nav { - background-color: #FFF; - padding-top: 10px; - padding-left: 0; - padding-right: 0; - border: 1px solid #D8D8D8; +.following.bar .top.menu a.item:hover { + color: rgba(0, 0, 0, 0.45); } -.admin-nav li { - margin-bottom: 8px; - border-left: 4px solid transparent; +.following.bar .top.menu .menu { + z-index: 900; } -.admin-nav li:hover { - border-left-color: #EEE; +.following.bar .head.link.item { + padding-right: 0!important; } -.admin-nav li.active:hover { - border-left: 4px solid #DD4B39; +.following.bar .head.link.item .dropdown.icon, +.following.bar .head.link.item .menu .octicon { + margin-right: 5px; } -#repo-setting-container { - padding-right: 0; +.following.bar .avatar > .ui.image { + margin-right: 0; } -#repo-setting-container .form-horizontal label { - line-height: 30px; +.following.bar .searchbox { + background-color: #f4f4f4 !important; } -#repo-collab-list li.collab { - margin-bottom: .6em; +.following.bar .searchbox:focus { + background-color: #e9e9e9 !important; } -#repo-collab-list .avatar { - margin-right: 1em; - width: 40px; +.following.bar .text .octicon { + width: 16px; + text-align: center; } -#repo-collab-list a.member { - color: #444; +.following.bar .right.menu .menu { + left: auto; + right: 0; } -#repo-collab-list .remove-collab, -#repo-hooks-list .remove-hook { - color: #DD4B39; +.following.bar .right.menu .dropdown .menu { + margin-top: 0; } -#repo-collab-form .dropdown-menu, -#org-team-content .header .dropdown-menu { - margin-left: 15px; - margin-top: 4px; - padding: 0; +.ui.left { + float: left; } -#repo-collab-form .dropdown-menu li, -#org-team-content .header .dropdown-menu li { - padding: 0 1em; - line-height: 36px; - cursor: pointer; - font-weight: bold; +.ui.right { + float: right; } -#repo-collab-form .dropdown-menu li:hover, -#org-team-content .header .dropdown-menu li:hover { - background-color: #e8f0ff; -} -#repo-collab-form .dropdown-menu img, -#org-team-content .header .dropdown-menu img { - width: 28px; - height: 28px; - margin-right: 1em; - vertical-align: middle; - margin-top: -3px; -} -#repo-collab-form .dropdown-menu ul, -#org-team-content .header .dropdown-menu ul { - margin-bottom: 0; -} -#repo-hooks-list li { - line-height: 40px; - border-top: 1px solid #DDD; - height: 40px; -} -#repo-hooks-list .link { - display: inline-block; - max-width: 360px; - overflow: hidden; - text-overflow: ellipsis; - height: 40px; - line-height: 40px; - white-space: nowrap; -} -/* gogits user ssh keys */ - -#ssh-keys .list-group-item { - padding: 15px 0; - border-bottom: 1px solid #DDD; -} -#ssh-keys .list-group-item .delete { - margin: -5px 50px 0; -} -#ssh-keys .list-group-item:after { - clear: both; -} -#ssh-keys .name { - font-size: 14px; - font-weight: bold; +.ui .text.red { + color: #d95c5c!important; } -#ssh-keys .print { - padding-left: 1em; - color: #888; +.ui .text.red a { + color: #d95c5c!important; } -#ssh-add { - display: inline-block; - color: white; - cursor: pointer; - margin-left: 0; - border-radius: 3px; +.ui .text.red a:hover { + color: #E67777!important; } -#ssh-form textarea { - height: 16em; +.ui .text.blue { + color: #428bca!important; } -/* #feed */ - -#feed-right .repo-panel .panel-heading .btn { - margin-top: -4px; +.ui .text.blue a { + color: #15c!important; } -#feed-right .repo-panel .panel-body { - padding: 0; +.ui .text.blue a:hover { + color: #428bca!important; } -#feed-right .repo-panel .list-group { - margin-bottom: 0; +.ui .text.grey { + color: #767676!important; } -#feed-right .repo-panel .list-group-item a { - display: block; - margin-left: 0; - background-color: transparent; - padding-left: 0; - font-weight: bold; +.ui .text.grey a { + color: #444!important; } -#feed-right .repo-panel .list-group-item .fa { - color: #666; -} -#feed-right .repo-panel .list-group-item { - font-size: 14px; - line-height: 32px; - border-bottom: 1px solid #DDD; - padding-left: 15px; - clear: both; +.ui .text.grey a:hover { + color: #000!important; } -#feed-right .repo-panel .list-group-item:last-child { - border-bottom: none; -} -#feed-right .repo-panel .list-group-item:hover { - background-color: #eafffd; - background-color: rgba(65, 131, 196, 0.1); +.ui .text.green { + color: #6cc644!important; } -#feed-right .repo-panel span.stars { - color: #666; - margin-right: 1em; +.ui .text.purple { + color: #6e5494!important; } -#user-dashboard-repo-new .btn-sm.dropdown-toggle { - padding: 3px 8px; +.ui .text.left { + text-align: left!important; } -#user-dashboard-repo-new .dropdown-menu, -#nav-repo-new .dropdown-menu { - padding: 0; - margin: 0; +.ui .text.right { + text-align: right!important; } -#user-dashboard-repo-new ul, -#nav-repo-new ul { - margin: 0; - width: 200px; +.ui .text.small { + font-size: 0.75em; } -#user-dashboard-repo-new li a, -#nav-repo-new li a { - line-height: 36px; - display: block; - padding: 0 18px; - color: #444; -} -#user-dashboard-repo-new li a:hover, -#nav-repo-new li a:hover { - background: #0093c4; - color: #FFF; -} -#nav-repo-new button { - border: none; - background: transparent; - padding: 0; - width: 15px; -} -#nav-repo-new li .fa { - margin: 0 .5em; -} -#dashboard-switch .btn, -#repo-owner-switch .btn { - height: 40px; -} -#dashboard-switch { - margin-top: 14px; - margin-right: 18px; -} -#dashboard-switch .dropdown-menu, -#repo-owner-switch .dropdown-menu { - padding: 0; -} -#dashboard-switch-menu { - width: 180px; - margin-bottom: 0; - padding-bottom: 0; -} -#dashboard-switch-menu > li > a { - display: block; - padding: .8em 1.2em; -} -#dashboard-switch-menu > li > a:hover { - text-decoration: none; -} -#dashboard-switch-menu > li > a img, -#dashboard-switch button img { - margin-right: 6px; -} -#dashboard-switch-menu > li { - border-bottom: 1px solid #eaeaea; -} -#dashboard-switch-menu > li .fa { - opacity: 0; - margin-right: 16px; -} -#dashboard-switch-menu > li.checked .fa { - opacity: 1; -} -#dashboard-switch-menu > li:last-child { - border-bottom: none; -} -/* gogits repo single page */ - -#body-nav.repo-nav { - padding-top: 16px; - padding-bottom: 30px; - height: auto; -} -.repo-nav .name { - margin-top: 15px; -} -.repo-nav .desc { - color: #888; - margin-bottom: 0; +.ui .text.truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: inline-block; } -.repo-nav h3 .fa { - color: #BBB; - margin-left: 0; -} -.repo-nav .actions { - padding-top: 20px; +.ui .text.thin { + font-weight: normal; } -.repo-nav .btn-default { - font-family: Tahoma, Arial, sans-serif; -} -#repo-watching .dropdown-menu { - width: 280px; - padding: 0; -} -#repo-watching .dropdown-menu .dropdown-item:hover .dropdown-header, -#repo-watching .dropdown-item .dropdown-header.text-primary { - color: rgb(65, 131, 196); - cursor: pointer; +.ui .text.middle { + vertical-align: middle; } -#repo-watching .dropdown-menu .description { - padding: 0 20px; - color: #888; +.ui .message { + text-align: center; } -#repo-watching .dropdown-menu .dropdown-header { - color: #444; - font-weight: bold; - font-size: 14px; - margin-bottom: 4px; +.ui .header > i + .content { + padding-left: 0.75rem; + vertical-align: middle; +} +.ui .warning.header { + background-color: #F9EDBE!important; + border-color: #F0C36D; +} +.ui .warning.segment { + border-color: #F0C36D; +} +.ui .info.header { + background-color: #d9edf7!important; + border-color: #85c5e5; +} +.ui .info.segment { + border-color: #85c5e5; } -#repo-toolbar { - border-bottom: 1px solid #DDD; - background-color: #FFF; - height: 40px; - font-size: 14px; +.ui .normal.header { + font-weight: normal; } -#repo-toolbar .navbar-default { - border: none; - height: 39px; +.ui .avatar.image { + border-radius: 3px; } -#repo-toolbar .nav > li > a { - height: 39px; +.ui .form .fake { + display: none!important; } -#repo-toolbar .nav .tmp { - padding: 0 6px; +.ui.status.buttons .octicon { + margin-right: 4px; } -#repo-toolbar .nav .tmp a { - display: inline-block; - padding-left: 6px; - padding-right: 6px; +.overflow.menu .items { + max-height: 300px; + overflow-y: auto; } -#repo-toolbar .nav .tmp a:hover { - text-decoration: none; +.overflow.menu .items .item { + position: relative; + cursor: pointer; + display: block; + border: none; + height: auto; + border-top: none; + line-height: 1em; + color: rgba(0, 0, 0, 0.8); + padding: .71428571em 1.14285714em!important; + font-size: 1rem; + text-transform: none; + font-weight: 400; + box-shadow: none; + -webkit-touch-callout: none; } -#repo-toolbar .nav .tmp .btn { - margin-top: -2px; +.overflow.menu .items .item.active { + font-weight: 700; } -#repo-toolbar .nav .active { - color: #F6F6F6; +.overflow.menu .items .item:hover { + background: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.8); + z-index: 13; } -#repo-toolbar .nav > .active > a:after { - border-bottom-color: #999; +.scrolling.menu .item.selected { + font-weight: 700!important; } -#repo-toolbar .navbar.nav-toolbar { - margin-bottom: 0; +footer { + margin-top: 54px !important; + height: 40px; + background-color: white; + border-top: 1px solid #d6d6d6; + clear: both; + width: 100%; + color: #888888; +} +footer .container { + padding-top: 10px; +} +footer .container .fa { + width: 16px; + text-align: center; + color: #428bca; +} +footer .container .links > * { + border-left: 1px solid #d6d6d6; + padding-left: 8px; + margin-left: 5px; +} +footer .container .links > *:first-child { + border-left: none; +} +.hide { + display: none; +} +.center { + text-align: center; +} +.img-1 { + width: 2px !important; + height: 2px !important; +} +.img-2 { + width: 4px !important; + height: 4px !important; +} +.img-3 { + width: 6px !important; + height: 6px !important; +} +.img-4 { + width: 8px !important; + height: 8px !important; +} +.img-5 { + width: 10px !important; + height: 10px !important; +} +.img-6 { + width: 12px !important; + height: 12px !important; +} +.img-7 { + width: 14px !important; + height: 14px !important; +} +.img-8 { + width: 16px !important; + height: 16px !important; +} +.img-9 { + width: 18px !important; + height: 18px !important; +} +.img-10 { + width: 20px !important; + height: 20px !important; +} +.img-11 { + width: 22px !important; + height: 22px !important; +} +.img-12 { + width: 24px !important; + height: 24px !important; +} +.img-13 { + width: 26px !important; + height: 26px !important; +} +.img-14 { + width: 28px !important; + height: 28px !important; +} +.img-15 { + width: 30px !important; + height: 30px !important; +} +.img-16 { + width: 32px !important; + height: 32px !important; +} +.octicon.icon, +.mega-octicon.icon { + font-family: octicons; + opacity: 1!important; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +@media only screen and (max-width: 991px) and (min-width: 768px) { + .ui.container { + width: 95%; + } +} +.markdown { + overflow: hidden; + font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif; + font-size: 16px; + line-height: 1.6; + word-wrap: break-word; +} +.markdown > *:first-child { + margin-top: 0 !important; +} +.markdown > *:last-child { + margin-bottom: 0 !important; +} +.markdown a:not([href]) { + color: inherit; + text-decoration: none; +} +.markdown .absent { + color: #c00; +} +.markdown .anchor { + position: absolute; + top: 0; + left: 0; + display: block; + padding-right: 6px; + padding-left: 30px; + margin-left: -30px; +} +.markdown .anchor:focus { + outline: none; +} +.markdown h1, +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + position: relative; + margin-top: 1em; + margin-bottom: 16px; + font-weight: bold; + line-height: 1.4; +} +.markdown h1 .octicon-link, +.markdown h2 .octicon-link, +.markdown h3 .octicon-link, +.markdown h4 .octicon-link, +.markdown h5 .octicon-link, +.markdown h6 .octicon-link { + display: none; + color: #000; + vertical-align: middle; +} +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + padding-left: 8px; + margin-left: -30px; + text-decoration: none; +} +.markdown h1:hover .anchor .octicon-link, +.markdown h2:hover .anchor .octicon-link, +.markdown h3:hover .anchor .octicon-link, +.markdown h4:hover .anchor .octicon-link, +.markdown h5:hover .anchor .octicon-link, +.markdown h6:hover .anchor .octicon-link { + display: inline-block; +} +.markdown h1 tt, +.markdown h1 code, +.markdown h2 tt, +.markdown h2 code, +.markdown h3 tt, +.markdown h3 code, +.markdown h4 tt, +.markdown h4 code, +.markdown h5 tt, +.markdown h5 code, +.markdown h6 tt, +.markdown h6 code { + font-size: inherit; +} +.markdown h1 { + padding-bottom: 0.3em; + font-size: 2.25em; + line-height: 1.2; + border-bottom: 1px solid #eee; +} +.markdown h1 .anchor { + line-height: 1; +} +.markdown h2 { + padding-bottom: 0.3em; + font-size: 1.75em; + line-height: 1.225; + border-bottom: 1px solid #eee; +} +.markdown h2 .anchor { + line-height: 1; +} +.markdown h3 { + font-size: 1.5em; + line-height: 1.43; +} +.markdown h3 .anchor { + line-height: 1.2; +} +.markdown h4 { + font-size: 1.25em; +} +.markdown h4 .anchor { + line-height: 1.2; +} +.markdown h5 { + font-size: 1em; +} +.markdown h5 .anchor { + line-height: 1.1; } -#repo-toolbar .navbar-collapse { - padding: 0; +.markdown h6 { + font-size: 1em; + color: #777; } -#repo-toolbar ul.navbar-right { - margin-right: 0; +.markdown h6 .anchor { + line-height: 1.1; } -.activity-list { - font-size: 14px; +.markdown p, +.markdown blockquote, +.markdown ul, +.markdown ol, +.markdown dl, +.markdown table, +.markdown pre { + margin-top: 0; + margin-bottom: 16px; +} +.markdown hr { + height: 4px; + padding: 0; + margin: 16px 0; + background-color: #e7e7e7; + border: 0 none; +} +.markdown ul, +.markdown ol { + padding-left: 2em; +} +.markdown ul.no-list, +.markdown ol.no-list { + padding: 0; + list-style-type: none; +} +.markdown ul ul, +.markdown ul ol, +.markdown ol ol, +.markdown ol ul { + margin-top: 0; + margin-bottom: 0; +} +.markdown ol ol, +.markdown ul ol { + list-style-type: lower-roman; +} +.markdown li > p { + margin-top: 16px; +} +.markdown dl { + padding: 0; +} +.markdown dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: bold; +} +.markdown dl dd { + padding: 0 16px; + margin-bottom: 16px; +} +.markdown blockquote { + padding: 0 15px; + color: #777; + border-left: 4px solid #ddd; +} +.markdown blockquote > :first-child { + margin-top: 0; +} +.markdown blockquote > :last-child { + margin-bottom: 0; +} +.markdown table { + display: block; + width: 100%; + overflow: auto; + word-break: normal; + word-break: keep-all; +} +.markdown table th { + font-weight: bold; +} +.markdown table th, +.markdown table td { + padding: 6px 13px !important; + border: 1px solid #ddd; +} +.markdown table tr { + background-color: #fff; + border-top: 1px solid #ccc; +} +.markdown table tr:nth-child(2n) { + background-color: #f8f8f8; +} +.markdown img { + max-width: 100%; + box-sizing: border-box; +} +.markdown .emoji { + max-width: none; +} +.markdown span.frame { + display: block; + overflow: hidden; +} +.markdown span.frame > span { + display: block; + float: left; + width: auto; + padding: 7px; + margin: 13px 0 0; + overflow: hidden; + border: 1px solid #ddd; +} +.markdown span.frame span img { + display: block; + float: left; +} +.markdown span.frame span span { + display: block; + padding: 5px 0 0; + clear: both; + color: #333; +} +.markdown span.align-center { + display: block; + overflow: hidden; + clear: both; +} +.markdown span.align-center > span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: center; +} +.markdown span.align-center span img { + margin: 0 auto; + text-align: center; +} +.markdown span.align-right { + display: block; + overflow: hidden; + clear: both; +} +.markdown span.align-right > span { + display: block; + margin: 13px 0 0; + overflow: hidden; + text-align: right; +} +.markdown span.align-right span img { + margin: 0; + text-align: right; +} +.markdown span.float-left { + display: block; + float: left; + margin-right: 13px; + overflow: hidden; +} +.markdown span.float-left span { + margin: 13px 0 0; +} +.markdown span.float-right { + display: block; + float: right; + margin-left: 13px; + overflow: hidden; +} +.markdown span.float-right > span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: right; +} +.markdown code, +.markdown tt { + padding: 0; + padding-top: 0.2em; + padding-bottom: 0.2em; + margin: 0; + font-size: 85%; + background-color: rgba(0, 0, 0, 0.04); + border-radius: 3px; +} +.markdown code:before, +.markdown code:after, +.markdown tt:before, +.markdown tt:after { + letter-spacing: -0.2em; + content: "\00a0"; +} +.markdown code br, +.markdown tt br { + display: none; +} +.markdown del code { + text-decoration: inherit; +} +.markdown pre > code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} +.markdown .highlight { + margin-bottom: 16px; +} +.markdown .highlight pre, +.markdown pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f7f7f7; + border-radius: 3px; +} +.markdown .highlight pre { + margin-bottom: 0; + word-break: normal; +} +.markdown pre { + word-wrap: normal; +} +.markdown pre code, +.markdown pre tt { + display: inline; + max-width: initial; + padding: 0; + margin: 0; + overflow: initial; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} +.markdown pre code:before, +.markdown pre code:after, +.markdown pre tt:before, +.markdown pre tt:after { + content: normal; +} +.markdown kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #555; + vertical-align: middle; + background-color: #fcfcfc; + border: solid 1px #ccc; + border-bottom-color: #bbb; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #bbbbbb; +} +.markdown .csv-data td, +.markdown .csv-data th { + padding: 5px; + overflow: hidden; + font-size: 12px; + line-height: 1; + text-align: left; + white-space: nowrap; +} +.markdown .csv-data .blob-num { + padding: 10px 8px 9px; + text-align: right; + background: #fff; + border: 0; +} +.markdown .csv-data tr { + border-top: 0; +} +.markdown .csv-data th { + font-weight: bold; + background: #f8f8f8; + border-top: 0; +} +/* Author: jmblog */ +/* Project: https://github.com/jmblog/color-themes-for-google-code-prettify */ +/* GitHub Theme */ +/* Pretty printing styles. Used with prettify.js. */ +/* SPAN elements with the classes below are added by prettyprint. */ +/* plain text */ +.pln { + color: #333333; +} +@media screen { + /* string content */ + .str { + color: #dd1144; + } + /* a keyword */ + .kwd { + color: #333333; + } + /* a comment */ + .com { + color: #999988; + font-style: italic; + } + /* a type name */ + .typ { + color: #445588; + } + /* a literal value */ + .lit { + color: #445588; + } + /* punctuation */ + .pun { + color: #333333; + } + /* lisp open bracket */ + .opn { + color: #333333; + } + /* lisp close bracket */ + .clo { + color: #333333; + } + /* a markup tag name */ + .tag { + color: navy; + } + /* a markup attribute name */ + .atn { + color: teal; + } + /* a markup attribute value */ + .atv { + color: #dd1144; + } + /* a declaration */ + .dec { + color: #333333; + } + /* a variable name */ + .var { + color: teal; + } + /* a function name */ + .fun { + color: #990000; + } +} +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { + color: #006600; + } + .kwd { + color: #006; + font-weight: bold; + } + .com { + color: #600; + font-style: italic; + } + .typ { + color: #404; + font-weight: bold; + } + .lit { + color: #004444; + } + .pun, + .opn, + .clo { + color: #444400; + } + .tag { + color: #006; + font-weight: bold; + } + .atn { + color: #440044; + } + .atv { + color: #006600; + } } -.activity-list .icon { - font-size: 20px; - color: #aaa; - float: left; +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { + margin-top: 0; + margin-bottom: 0; } -.activity-list .info { - margin: 0 0 0 40px; - line-height: 1.7em; +.home { + padding-bottom: 80px; } -.activity-list .meta { - color: #aaa; +.home .logo { + max-width: 220px; } -.activity-list li { - padding: 15px 0; - border-top: 1px solid #ddd; +.home .hero h1, +.home .hero h2 { + font-family: 'PT Sans Narrow', sans-serif, 'Microsoft YaHei'; } -.activity-list li:first-child { - border-top: none; +.home .hero h1 { + font-size: 5.5em; } -.repo-list li { - padding: 15px 0; - border-top: 1px solid #ddd; +.home .hero h2 { + font-size: 3em; } -.repo-list li:first-child { - border-top: none; +.home .hero .octicon { + color: #d9453d; + font-size: 40px; + width: 50px; } -.repo-list h4 { - font-weight: bold; - font-size: 24px; +.home .hero.header { + font-size: 20px; } -.repo-list .meta { - margin: 15px 0 0; - font-size: 14px; +.home p.large { + font-size: 16px; } -.repo-list .desc { - font-size: 15px; +.home .stackable { + padding-top: 30px; } -.repo-list .meta .fa { - margin: 0 0 0 20px; +.home a { + color: #d9453d; +} +.signup { + padding-top: 15px; + padding-bottom: 80px; +} +.install { + padding-top: 45px; + padding-bottom: 80px; +} +.install form label { + text-align: right; + width: 320px !important; +} +.install form input { + width: 35% !important; +} +.install form .field { + text-align: left; +} +.install form .field .help { + margin-left: 335px !important; +} +.install form .field.optional .title { + margin-left: 38%; +} +.install .ui .checkbox { + margin-left: 40% !important; +} +.install .ui .checkbox label { + width: auto !important; +} +.form .help { + color: #999999; + padding-top: .6em; + padding-bottom: .6em; + display: inline-block; +} +.ui.attached.header { + background: #f0f0f0; +} +.ui.attached.header .right { + margin-top: -5px; +} +.ui.attached.header .right .button { + padding: 8px 10px; + font-weight: normal; +} +#create-page-form form { + margin: auto; + width: 800px!important; +} +#create-page-form form .ui.message { + text-align: center; +} +#create-page-form form .header { + padding-left: 280px !important; +} +#create-page-form form .inline.field > label { + text-align: right; + width: 250px !important; + word-wrap: break-word; +} +#create-page-form form .help { + margin-left: 265px !important; +} +#create-page-form form .optional .title { + margin-left: 250px !important; +} +#create-page-form form input, +#create-page-form form textarea { + width: 50%!important; +} +.user.activate form, +.user.forgot.password form, +.user.reset.password form, +.user.signin form, +.user.signup form { + margin: auto; + width: 800px!important; +} +.user.activate form .ui.message, +.user.forgot.password form .ui.message, +.user.reset.password form .ui.message, +.user.signin form .ui.message, +.user.signup form .ui.message { + text-align: center; +} +.user.activate form .header, +.user.forgot.password form .header, +.user.reset.password form .header, +.user.signin form .header, +.user.signup form .header { + padding-left: 280px !important; +} +.user.activate form .inline.field > label, +.user.forgot.password form .inline.field > label, +.user.reset.password form .inline.field > label, +.user.signin form .inline.field > label, +.user.signup form .inline.field > label { + text-align: right; + width: 250px !important; + word-wrap: break-word; +} +.user.activate form .help, +.user.forgot.password form .help, +.user.reset.password form .help, +.user.signin form .help, +.user.signup form .help { + margin-left: 265px !important; +} +.user.activate form .optional .title, +.user.forgot.password form .optional .title, +.user.reset.password form .optional .title, +.user.signin form .optional .title, +.user.signup form .optional .title { + margin-left: 250px !important; +} +.user.activate form input, +.user.forgot.password form input, +.user.reset.password form input, +.user.signin form input, +.user.signup form input, +.user.activate form textarea, +.user.forgot.password form textarea, +.user.reset.password form textarea, +.user.signin form textarea, +.user.signup form textarea { + width: 50%!important; +} +.user.activate form, +.user.forgot.password form, +.user.reset.password form, +.user.signin form, +.user.signup form { + width: 700px!important; +} +.user.activate form .header, +.user.forgot.password form .header, +.user.reset.password form .header, +.user.signin form .header, +.user.signup form .header { + padding-left: 230px !important; +} +.user.activate form .inline.field > label, +.user.forgot.password form .inline.field > label, +.user.reset.password form .inline.field > label, +.user.signin form .inline.field > label, +.user.signup form .inline.field > label { + width: 200px !important; +} +.repository.new.repo form, +.repository.new.migrate form, +.repository.new.fork form { + margin: auto; + width: 800px!important; +} +.repository.new.repo form .ui.message, +.repository.new.migrate form .ui.message, +.repository.new.fork form .ui.message { + text-align: center; +} +.repository.new.repo form .header, +.repository.new.migrate form .header, +.repository.new.fork form .header { + padding-left: 280px !important; +} +.repository.new.repo form .inline.field > label, +.repository.new.migrate form .inline.field > label, +.repository.new.fork form .inline.field > label { + text-align: right; + width: 250px !important; + word-wrap: break-word; +} +.repository.new.repo form .help, +.repository.new.migrate form .help, +.repository.new.fork form .help { + margin-left: 265px !important; +} +.repository.new.repo form .optional .title, +.repository.new.migrate form .optional .title, +.repository.new.fork form .optional .title { + margin-left: 250px !important; +} +.repository.new.repo form input, +.repository.new.migrate form input, +.repository.new.fork form input, +.repository.new.repo form textarea, +.repository.new.migrate form textarea, +.repository.new.fork form textarea { + width: 50%!important; +} +.repository.new.repo form .dropdown .dropdown.icon, +.repository.new.migrate form .dropdown .dropdown.icon, +.repository.new.fork form .dropdown .dropdown.icon { + margin-top: -7px !important; +} +.repository.new.repo form .dropdown .text, +.repository.new.migrate form .dropdown .text, +.repository.new.fork form .dropdown .text { + margin-right: 0!important; +} +.repository.new.repo form .dropdown .text i, +.repository.new.migrate form .dropdown .text i, +.repository.new.fork form .dropdown .text i { + margin-right: 0!important; +} +.repository.new.repo .ui.form .selection.dropdown:not(.owner) { + width: 50%!important; +} +.repository.new.repo .ui.form #auto-init { + margin-left: 265px !important; +} +.new.webhook form .help { + margin-left: 25px; +} +.new.webhook .events.fields .column { + padding-left: 40px; +} +.repository { + padding-top: 15px; + padding-bottom: 80px; +} +.repository .head .column { + padding-top: 5px!important; + padding-bottom: 5px!important; +} +.repository .head .ui.compact.menu { + margin-left: 1rem; +} +.repository .head .ui.header { + margin-top: 0; +} +.repository .head .mega-octicon { + width: 30px; + font-size: 30px; +} +.repository .head .ui.huge.breadcrumb { + font-weight: 300; + font-size: 1.7rem; +} +.repository .head .fork-flag { + margin-left: 38px; + display: block; + font-size: 12px; + line-height: 10px; + white-space: nowrap; +} +.repository .metas .menu { + max-height: 300px; + overflow-x: auto; +} +.repository .metas .ui.list .hide { + display: none!important; +} +.repository .metas .ui.list .label.color { + padding: 0 8px; + margin-right: 5px; +} +.repository .metas .ui.list a { + padding-top: 5px; + padding-right: 10px; +} +.repository .metas .ui.list a .text { + color: #444; +} +.repository .metas .ui.list a .text:hover { + color: #000; +} +.repository .filter.menu .label.color { + margin-left: 15px; + padding: 0 8px; +} +.repository .filter.menu .octicon { + float: left; + margin-left: -5px; + margin-right: -7px; +} +.repository .filter.menu .menu { + max-height: 300px; + overflow-x: auto; + right: 0!important; + left: auto!important; +} +.repository .filter.menu .dropdown.item { + margin: 1px; + padding-right: 0; +} +.repository.options #interval { + width: 100px!important; + min-width: 100px; +} +.repository.options .danger .item { + padding: 20px 15px; +} +.repository.options .danger .ui.divider { + margin: 0; +} +.repository.new.issue .comment.form .comment .avatar { + width: 3em; +} +.repository.new.issue .comment.form .content { + margin-left: 4em; +} +.repository.new.issue .comment.form .content .markdown { + font-size: 14px; +} +.repository.new.issue .comment.form .metas { + min-width: 220px; +} +.repository.new.issue .comment.form .metas .filter.menu { + max-height: 300px; + overflow-x: auto; +} +.repository.view.issue .title { + padding-bottom: 0!important; +} +.repository.view.issue .title h1 { + font-weight: 300; + font-size: 3rem; + margin-bottom: 5px; +} +.repository.view.issue .title h1 .ui.input { + font-size: 0.5em; + vertical-align: top; + width: 50%; + min-width: 600px; +} +.repository.view.issue .title h1 .ui.input input { + font-size: 1.5em; + padding: 6px 10px; +} +.repository.view.issue .title .index { + font-weight: 300; + color: #aaa; + letter-spacing: -1px; +} +.repository.view.issue .title .label { + margin-right: 10px; +} +.repository.view.issue .title .edit-zone { + margin-top: 10px; +} +.repository.view.issue .pull-desc code { + color: #0166E6; +} +.repository.view.issue .pull.tabular.menu { + margin-bottom: 10px; +} +.repository.view.issue .pull.tabular.menu .octicon { + margin-right: 5px; +} +.repository.view.issue .pull.tab.segment { + border: none; + padding: 0; + padding-top: 10px; + box-shadow: none; + background-color: inherit; +} +.repository.view.issue .pull .merge.box .avatar { + margin-left: 10px; + margin-top: 10px; +} +.repository.view.issue .comment-list:before { + display: block; + content: ""; + position: absolute; + margin-top: 12px; + margin-bottom: 14px; + top: 0; + bottom: 0; + left: 96px; + width: 2px; + background-color: #f3f3f3; + z-index: -1; +} +.repository.view.issue .comment-list .comment .avatar { + width: 3em; +} +.repository.view.issue .comment-list .comment .tag { + color: #767676; + margin-top: 3px; + padding: 2px 5px; + font-size: 12px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 3px; +} +.repository.view.issue .comment-list .comment .actions .item { + float: left; +} +.repository.view.issue .comment-list .comment .actions a.item { + margin-top: 6px; + margin-left: 10px; +} +.repository.view.issue .comment-list .comment .content { + margin-left: 4em; +} +.repository.view.issue .comment-list .comment .content .header { + font-weight: normal; + padding: auto 15px; + color: #767676; + background-color: #f7f7f7; + border-bottom: 1px solid #eee; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.repository.view.issue .comment-list .comment .content .header .text { + max-width: 78%; + padding-top: 10px; + padding-bottom: 10px; +} +.repository.view.issue .comment-list .comment .content .markdown { + font-size: 14px; +} +.repository.view.issue .comment-list .comment .content .no-content { + color: #767676; + font-style: italic; +} +.repository.view.issue .comment-list .comment .content > .bottom.segment { + background: #f3f4f5; +} +.repository.view.issue .comment-list .comment .content > .bottom.segment .ui.image { + max-height: 150px; +} +.repository.view.issue .comment-list .comment .ui.form .field:first-child { + clear: none; +} +.repository.view.issue .comment-list .comment .ui.form .tab.segment { + border: none; + padding: 0; + padding-top: 10px; +} +.repository.view.issue .comment-list .comment .ui.form textarea { + height: 200px; +} +.repository.view.issue .comment-list .comment .edit.buttons { + margin-top: 10px; +} +.repository.view.issue .comment-list .event { + position: relative; + margin: 15px 0 15px 79px; + padding-left: 25px; +} +.repository.view.issue .comment-list .event .octicon { + width: 30px; + float: left; + margin-left: -36px; + text-align: center; +} +.repository.view.issue .comment-list .event .octicon.octicon-circle-slash { + margin-top: 5px; + font-size: 20px; + color: #bd2c00; +} +.repository.view.issue .comment-list .event .octicon.octicon-primitive-dot { + font-size: 30px; + color: #6cc644; +} +.repository.view.issue .comment-list .event .octicon.octicon-bookmark { + margin-top: 3px; + font-size: 25px; +} +.repository.view.issue .comment-list .event .detail { + font-size: 0.9rem; + margin-top: 5px; + margin-left: 35px; +} +.repository.view.issue .comment-list .event .detail .octicon.octicon-git-commit { + margin-top: 2px; +} +.repository.view.issue .ui.segment.metas { + margin-top: -3px; } -.repo-list .meta, -.repo-list .info { - color: #999; -} -.popover .repo-clone-div { - min-width: 200px; +.repository .comment.form .ui.comments { + margin-top: -12px; + max-width: 100%; } -#repo-clone .dropdown-menu { - width: 400px; - padding: 20px; +.repository .comment.form .content .field:first-child { + clear: none; +} +.repository .comment.form .content .tab.segment { + border: none; + padding: 0; + padding-top: 10px; } -#repo-clone .input-group { - margin-bottom: 15px; +.repository .comment.form .content textarea { + height: 200px; } -#repo-clone .zclip { - left: auto !important; -} -/* #source */ - -#source, -#commits { - margin-top: -20px; +.repository .label.list { + list-style: none; + padding-top: 15px; } -#commits-pager { - margin-top: 0; -} -#source .source-toolbar:after { - clear: both; -} -#source .source-toolbar .branch-switch { - display: inline-block; -} -#source .source-toolbar .breadcrumb { - margin: 0 .5em; - padding: 6px 15px; - font-size: 16px; - vertical-align: middle; - display: inline-block; - background-color: transparent; -} -#source .source-toolbar, -#source .info-box, -#source .file-content { - margin: 0 0 10px; -} -.info-box .info-head, -.info-box .info-content { - padding: 9px 20px; -} -.info-box .info-head { - font-weight: normal; -} -.info-box .info-content a, -.info-box .info-head a { - color: #666; -} -.file-list { - background-color: #fafafa; -} -.file-list .icon { - font-size: 17px; - padding: 5px 0 4px 10px; - width: 50px; - color: #999; - text-align: right; -} -.file-list .wrap { - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - vertical-align: top; - white-space: nowrap; -} -.file-list .name .wrap { - max-width: 180px; -} -.file-list .text .wrap { - max-width: 450px; -} -.file-list .date .wrap { - max-width: 120px; - padding: 0 20px 0 0; -} -.file-list .date { - text-align: right; -} -.file-content .file-head { - font-size: 18px; -} -.file-content .file-head .icon { - color: #666; - margin: 0 .5em 0 0; -} -.file-content .file-head .file-size { - font-size: 13px; - color: #888; - margin-left: 1em; -} -.file-content .file-body { - padding: 30px 30px 50px; - border: none; - background-color: #FFF; - overflow: auto; - overflow-x: auto; - overflow-y: hidden; -} -.file-content .file-body.file-code pre { - background-color: #FFF; - border: none; -} -.file-content .file-body.file-code { - padding: 0; -} -.file-content .file-body.file-code .lines-code > pre { - border: none; - background: none; - border-left: 1px solid #ddd; -} -.file-content .file-body.file-code .lines-code ol.linenums > .active { - background: #ffffdd; -} -.file-content .file-body.file-code .lines-num { - text-align: right; - color: #999; - background: #fafafa; - width: 1%; -} -.file-content .file-body.file-code .lines-ellipsis { - background-color: #FAFAFA; - color: #999; - width: 1%; -} -.file-content .file-body.file-code .lines-num span { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - line-height: 1.6; - padding: 0 8px 0 10px; - cursor: pointer; - display: block; - margin-top: 2px; - font-size: 90%; -} -.file-content .file-body.file-code .lines-num span:first-child { - margin-top: 0; -} -.file-content .file-body.file-code > table { - width: 100%; -} -.file-content .file-body.file-code > table > tbody > tr, -.file-content .file-body.file-code > table > tbody > tr > td, -.file-content .file-body.file-code > table { - border: none; - background: none; -} -.branch-list th, -.commit-list th { - background-color: #FFF; - line-height: 28px !important; -} -.branch-list td { - line-height: 36px !important; -} -.branch-box tr:hover td, -.commit-box tr:hover td { - background-color: rgba(19, 95, 215, 0.06) !important; -} -.branch-box .name, -.commit-box .author { - padding-left: 20px; -} -.branch-box .name { - font-size: 15px; +.repository .label.list .item { + padding-top: 10px; + padding-bottom: 10px; + border-bottom: 1px dashed #AAA; } -.branch-box .action { - width: 150px; +.repository .label.list .item a { + font-size: 15px; + padding-top: 5px; + padding-right: 10px; + color: #666; } -.branch-box td.date, -.branch-box td.behind, -.branch-box td.ahead { - width: 120px; - font-family: Verdana, Arial, sans-serif; -} -.branch-box .graph { - display: block; - height: 3px; -} -.branch-box .behind { - text-align: right; - direction: rtl; -} -.branch-box .behind .graph { - background-color: #888; -} -.branch-box .ahead .graph { - background-color: #0093c4; -} -.branch-box .branch-main { - background-color: #444; - color: #FFF; - border-color: #444; -} -.branch-box .branch-main a { - color: #FFF; +.repository .label.list .item a:hover { + color: #000; } -.branch-box .branch-main .name .btn { - margin-left: .5em; +.repository .label.list .item a.open-issues { + margin-right: 30px; } -#commits-search-form { - margin-top: 4px; +.repository .milestone.list { + list-style: none; + padding-top: 15px; } -.commit-box .avatar, -.diff-head-box .avatar { - width: 20px; - height: 20px; - margin-right: 8px; - vertical-align: top; +.repository .milestone.list > .item { + padding-top: 10px; + padding-bottom: 10px; + border-bottom: 1px dashed #AAA; } -.commit-box td { - background-color: #FFF; +.repository .milestone.list > .item > a { + padding-top: 5px; + padding-right: 10px; + color: #000; } -.commit-list .date { - width: 120px; -} -.commit-list .author { - min-width: 180px; +.repository .milestone.list > .item > a:hover { + color: #4078c0; } -.commit-list .sha a { - font-family: Consolas, Menlo, Monaco, "Lucida Console", monospace; - font-size: 14px; +.repository .milestone.list > .item .ui.progress { + width: 40%; + padding: 0; + border: 0; + margin: 0; } -.guide-box pre, -.guide-box .input-group { - margin-top: 20px; - margin-bottom: 30px; - line-height: 24px; +.repository .milestone.list > .item .ui.progress .bar { + height: 20px; } -.guide-box input[readonly] { - background-color: #FFF; +.repository .milestone.list > .item .meta { + color: #999; + padding-top: 5px; } -.guide-box, -.diff-head-box { - margin-top: 4px; +.repository .milestone.list > .item .meta .issue-stats .octicon { + padding-left: 5px; } -.guide-box .zclip { - left: auto !important; +.repository .milestone.list > .item .meta .overdue { + color: red; } -div.compare div#commits { - margin-top: 5px; +.repository .milestone.list > .item .operate { + margin-top: -15px; } -div.compare div#commits h4 { - margin: 10px 0; - line-height: 1.1; +.repository .milestone.list > .item .operate > a { + font-size: 15px; + padding-top: 5px; + padding-right: 10px; + color: #666; } -.diff-head-box h4 { - margin-top: 0; - margin-bottom: 0; - line-height: 26px; +.repository .milestone.list > .item .operate > a:hover { + color: #000; } -.diff-head-box p { - margin-bottom: 0; +.repository .milestone.list > .item .content { + padding-top: 10px; } -.diff-head-box .sha { - margin-left: 8px; +.repository.new.milestone textarea { + height: 200px; } -.diff-head-box a.name { - color: #444; - margin-right: 8px; +.repository.new.milestone #deadline { + width: 150px; } -.diff-head-box span.time { - color: #888; +.repository.compare.pull .choose.branch .octicon { + padding-right: 10px; } -.diff-detail-box { - margin-bottom: 16px; - line-height: 30px; +.repository .filter.dropdown .menu { + margin-top: 1px!important; } -.diff-detail-box span.status { - display: inline-block; - width: 12px; - height: 12px; - margin-right: 8px; - vertical-align: middle; +.repository.commits .header .ui.right .search input { + font-weight: normal; + padding: 5px 10px; } -.diff-detail-box ol { - padding-left: 0; - margin-bottom: 28px; +.repository.commits .header .ui.right .button { + float: right; + margin-left: 5px; + margin-top: 1px; } -.diff-detail-box li { - list-style: none; - padding-bottom: 4px; - margin-bottom: 4px; - border-bottom: 1px dashed #DDD; - padding-left: 6px; +.repository .commits.table { + font-size: 13px; } -.diff-detail-box span.status.modify { - background-color: #f0db88; -} -.diff-detail-box span.status.add { - background-color: #b4e2b4; +.repository .commits.table th:first-child, +.repository .commits.table td:first-child { + padding-left: 15px; } -.diff-detail-box span.status.del { - background-color: #e9aeae; +.repository .commits.table td { + line-height: 15px; } -.diff-detail-box span.status.rename { - background-color: #dad8ff; +.repository .commits.table .author { + min-width: 180px; } -.diff-file-box .panel-heading { - padding: 10px 20px; - line-height: 26px; +.repository .commits.table .message span { + max-width: 500px; } -.diff-box .count { - margin-right: 12px; +.repository .commits.table .date { + width: 120px; } -.diff-box .count .bar { - width: 40px; - display: inline-block; - margin: 2px 4px 0 4px; - vertical-align: text-top; +.repository .sha.label { + font-family: Consolas, Menlo, Monaco, "Lucida Console", monospace; + font-size: 14px; + padding: 6px 10px 4px 10px; + font-weight: normal; } -.diff-box .file { - color: #888; +.repository .diff-detail-box { + margin: 15px 0; + line-height: 30px; } -#source .file-content.diff-file-box { - margin-bottom: 20px; +.repository .diff-detail-box ol { + clear: both; + padding-left: 0; + margin-top: 5px; + margin-bottom: 28px; } -.diff-box .count .bar .add { - background-color: #77c64a; - height: 12px; +.repository .diff-detail-box ol li { + list-style: none; + padding-bottom: 4px; + margin-bottom: 4px; + border-bottom: 1px dashed #DDD; + padding-left: 6px; } -.diff-box .count .bar .del, -.diff-box .count .bar { - background-color: #e75316; - height: 12px; +.repository .diff-detail-box span.status { + display: inline-block; + width: 12px; + height: 12px; + margin-right: 8px; + vertical-align: middle; } -.diff-file-box .file-body.file-code .lines-code > pre { - margin: 0; - padding: 3px; +.repository .diff-detail-box span.status.modify { + background-color: #f0db88; } -.diff-file-box .file-body.file-code .lines-num-old { - border-right: 1px solid #DDD; +.repository .diff-detail-box span.status.add { + background-color: #b4e2b4; } -.diff-file-box .code-bin td { - padding: 20px; +.repository .diff-detail-box span.status.del { + background-color: #e9aeae; } -.diff-file-box .code-diff tbody tr.tag-code td, -.diff-file-box .code-diff tbody tr.tag-code pre { - background-color: #E0E0E0 !important; - border-color: #ADADAD !important; +.repository .diff-detail-box span.status.rename { + background-color: #dad8ff; } -.diff-file-box .code-diff tbody tr.add-code td, -.diff-file-box .code-diff tbody tr.add-code pre { - background-color: #d1ffd6 !important; - border-color: #b4e2b4 !important; +.repository .diff-box .count { + margin-right: 12px; } -.diff-file-box .code-diff tbody tr.del-code td, -.diff-file-box .code-diff tbody tr.del-code pre { - background-color: #ffe2dd !important; - border-color: #e9aeae !important; +.repository .diff-box .count .bar { + background-color: #e75316; + height: 12px; + width: 40px; + display: inline-block; + margin: 2px 4px 0 4px; + vertical-align: text-top; } -.diff-file-box .code-diff tbody tr:hover td, -.diff-file-box .code-diff tbody tr:hover pre { - background-color: #fff8d2 !important; - border-color: #f0db88 !important; -} -.diff-file-box .ellipsis-code pre { - color: #AAA; -} -/* issue */ - -#issue-create-form .avatar { - width: 50px; - height: 50px; -} -#issue-create-form .panel-body { - padding: 15px 0 0 0; -} -#issue-create-form .panel-body.form-group, -#issue-create-form .tab-pane .form-group { - margin-bottom: 0; -} -#issue-create-form .nav-tabs, -#issue .issue-reply .nav-tabs, -#issue .issue-edit-content .nav-tabs { - margin-bottom: 10px; +.repository .diff-box .count .bar .add { + background-color: #77c64a; + height: 12px; } -#issue .md-help { - margin-top: 6px; -} -#issue .filters ul { - margin-bottom: 0; +.repository .diff-box .file { + color: #888; } -#issue .filter-list a { - padding: 6px 10px; - font-size: 14px; - display: block; - margin-bottom: 6px; - border-radius: 3px; - color: #444; +.repository .diff-file-box .header { + border-bottom: 1px solid #d4d4d5!important; } -#issue .filter-list a.sm { - font-size: 13px; +.repository .diff-file-box .file-body.file-code .lines-num { + text-align: right; + color: #999; + background: #fafafa; + width: 1%; } -#issue .filter-list hr { - border-color: #CCC; +.repository .diff-file-box .file-body.file-code .lines-num-old { + border-right: 1px solid #DDD; } -#issue .filter-list li a:hover { - background-color: #DDD; - text-decoration: none; +.repository .diff-file-box .code-diff { + font-size: 13px; +} +.repository .diff-file-box .code-diff td { + padding: 0; + border-top: none; } -#issue .filter-list li a.active { - background-color: #4183c4; - color: #FFF; +.repository .diff-file-box .code-diff pre { + margin: 0; } -#issue .filter-option { - margin-bottom: 12px; -} -#issue .filters > div { - margin-bottom: 16px; - padding-bottom: 16px; - border-bottom: 1px solid #CCC; +.repository .diff-file-box .code-diff .lines-num { + border-right: 1px solid #d4d4d5; + padding: 0 5px; } -#issue .label-filter li { - line-height: 24px; - margin-top: 4px; +.repository .diff-file-box .code-diff tbody tr.tag-code td, +.repository .diff-file-box .code-diff tbody tr.tag-code pre { + background-color: #E0E0E0 !important; + border-color: #ADADAD!important; } -#issue .label-filter a { - color: #666; - font-weight: bold; - padding: 0 4px; - display: block; +.repository .diff-file-box .code-diff tbody tr.del-code td, +.repository .diff-file-box .code-diff tbody tr.del-code pre { + background-color: #ffe2dd !important; + border-color: #e9aeae !important; +} +.repository .diff-file-box .code-diff tbody tr.add-code td, +.repository .diff-file-box .code-diff tbody tr.add-code pre { + background-color: #d1ffd6 !important; + border-color: #b4e2b4 !important; +} +.repository .diff-file-box .code-diff tbody tr:hover td { + background-color: #FFF8D2 !important; + border-color: #F0DB88 !important; } -#issue .label-filter li.label-item:hover { - background-color: #FFF; +.repository .diff-file-box .code-diff tbody tr:hover pre { + background-color: transparent !important; } -#issue .label-filter .count { - font-size: 12px; - margin-right: 6px; - color: #888; +.repository .code-view { + overflow: auto; + overflow-x: auto; + overflow-y: hidden; } -#issue .label-filter .color { - float: left; - height: 12px; - width: 12px; - border-radius: 2px; - margin-right: 12px; - margin-top: 6px; +.repository.quickstart .guide .item { + padding: 1em; } -#issue .label-filter .del { - margin-top: -24px; - color: #888; - display: none; +.repository.quickstart .guide .item small { + font-weight: normal; } -#issue .label-filter .label-button { - margin-top: 16px; +.repository.quickstart .guide .clone.button:first-child { + border-radius: .28571429rem 0 0 .28571429rem; } -#issue .list-group .list-group-item { - background-color: #FFF; +.repository.quickstart .guide .ui.action.small.input { + width: 100%; } -#issue .issue-item:hover { - background-color: rgba(19, 95, 215, 0.03); +.repository.quickstart .guide #repo-clone-url { + border-radius: 0; + padding: 5px 10px; + font-size: 1.2em; } -#issue .list-group .list-group-item.unread { - border-left: 2px solid #DD4B39; +.issue.list { + list-style: none; + padding-top: 15px; } -#issue .issue-item .title { - margin-bottom: 16px; - font-weight: bold; +.issue.list > .item { + padding-top: 15px; + padding-bottom: 10px; + border-bottom: 1px dashed #AAA; } -#issue .issue-item h5.title a { - color: #444; -} -#issue .issue-item h5 .labels .label { - margin-left: 12px; -} -#issue .issue-item .info span { - margin-right: 12px; - color: #888; - line-height: 20px; -} -#issue .issue-item .info a, -#issue .issue-item .number { - color: #888; -} -#issue .issue-item .number { - margin-top: 8px; -} -#issue .issue-item .avatar { - margin-right: 8px; - width: 20px; - height: 20px; - vertical-align: top; -} -#issue .issue-whole .title { - margin-top: 0; - font-size: 28px; -} -#issue .issue-whole .number { - font-size: 26px; - color: #AAA; -} -#issue .issue-head .author .avatar { - width: 48px; - height: 48px; - margin-right: 16px; -} -#issue .issue-head .info { - width: 99%; - margin-top: 10px; - padding-left: 74px; - margin-bottom: 16px; - padding-bottom: 20px; - border-bottom: 1px solid #CCC; -} -#issue .issue-head .status { - font-size: 16px; - font-weight: bold; - padding: 6px 18px; - border-radius: 3px; +.issue.list > .item .title { + color: #444; + font-size: 15px; + font-weight: bold; + margin: 0 6px; } -#issue .issue-head a.author { - margin-left: .6em; - color: #444; +.issue.list > .item .title:hover { + color: #000; } -#issue .issue-main { - padding-left: 0; +.issue.list > .item .comment { + padding-right: 10px; + color: #666; } -#issue .issue-content { - border-bottom-width: 1px; +.issue.list > .item .desc { + padding-top: 5px; + color: #999; } -#issue .issue-child .user .avatar { - width: 42px; - height: 42px; - margin-right: 12px; +.issue.list > .item .desc a.milestone { + padding-left: 5px; + color: #999!important; } -#issue .issue-child .issue-content { - margin-left: 56px; +.issue.list > .item .desc a.milestone:hover { + color: #000!important; } -#issue .issue-child .panel-heading { - padding-top: 10px; - padding-bottom: 10px; - font-weight: normal; +.issue.list > .item .desc .assignee { + margin-top: -5px; + margin-right: 5px; } -#issue .issue-child .panel-heading .user, -#issue .issue-closed a.user, -#issue .issue-opened a.user, -#issue .issue-reference a.user { - font-weight: bold; +.page.buttons { + padding-top: 15px; } - -#issue .issue-child .issue-content .user .avatar { - height: 21px; - width: 21px; -} - -#issue .issue-line { - border-color: #CCC; -} -#issue .issue-is-closed .issue-line { - display: none; -} -#issue .issue-head .info .btn { - margin-top: -8px; - margin-left: 8px; -} -#issue .issue-action { - padding-left: 8px; - color: #888; - width: 24px; -} -#issue-edit-title { - width: 60%; -} -#issue .issue-closed .issue-content, -#issue .issue-opened .issue-content, -#issue .issue-reference .issue-content { - line-height: 42px; -} -#issue .issue-closed, -#issue .issue-opened, -#issue .issue-reference { - border-bottom: 2px solid #CCC; - margin-bottom: 24px; - padding-bottom: 24px; -} - -#issue .issue-reference { - padding-bottom: 6px; -} - -#issue .issue-closed .label-danger, -#issue .issue-opened .label-success, -#issue .issue-reference .label-primary { - margin: 0.8em; -} -#issue .milestone-item .actions { - margin-top: 10px; -} -#issue .milestone-item .actions a { - margin-left: 8px; -} -#issue .milestone-item hr { - width: 100%; - padding-top: 8px; - margin-top: 48px; - margin-bottom: 8px; -} -#issue .milestone-item .label { - margin-top: 8px; - float: left; - padding: .5em; - margin-left: .8em; -} -#issue .assignee.dropdown-menu, -#issue .assignee ul, -#issue .milestone.dropdown-menu, -#issue .milestone ul { - padding: 0; - margin: 0; - min-width: 300px; -} -#issue .issue-bar .assignee, -#issue .issue-bar .assignee ul { - min-width: 160px; -} -#issue .issue-bar .assignee .dropdown-menu, -#issue .issue-bar .milestone .dropdown-menu, -#issue .issue-bar .labels .dropdown-menu { - padding: 0; - margin: 0; -} -#issue .assignee li, -#issue .milestone li.clear-milestone { - padding: 4px 12px; - line-height: 30px; -} -#issue .milestone .milestone-item { - padding: 8px 12px; -} -#issue .milestone li.milestone-item { - border-bottom: 1px solid #CCC; -} -#issue .milestone li.milestone-item:last-child { - border-bottom: none; -} -#issue .milestone .milestone-item p { - margin-bottom: 0; -} -#issue .assignee li:hover, -#issue .milestone li.clear-milestone:hover, -#issue .milestone li.milestone-item:hover { - background-color: #e8f0ff; - cursor: pointer; -} -#issue .assignee li img, -#issue .issue-bar .assignee img { - width: 28px; - height: 28px; - margin-right: 12px; -} -#issue .issue-bar > div { - padding-bottom: 8px; - margin-bottom: 40px; - border-bottom: 1px solid #CCC; -} -#issue .issue-bar .assignee { - line-height: 30px; -} -#issue .issue-bar .assignee .action, -#issue .issue-bar .milestone .action, -#issue .issue-bar .labels .action { - position: relative; - margin-top: -6px; -} -#issue .issue-bar .milestone .completion { - margin-top: 20px; - margin-bottom: 12px; -} -#issue .issue-bar .milestone .completion span { - display: block; - height: 12px; - background-color: #77c64a; -} -#issue .milestone .nav-tabs a { - padding: 4px 8px; - border-top: none; -} -#milestone { - margin-left: 24px; - margin-right: 12px; -} -#issue .issue-bar .labels .label-item { - padding: 2px 12px 4px 12px; - border-radius: 2px; - text-shadow: 0 0 2px #444; -} -#issue .label-selected .count, -#issue .label-selected a { - color: #FAFAFA; -} -#issue .label-selected a { - text-shadow: 0 0 2px #444; -} -#issue .issue-bar .labels .label-white { - color: #FFF; -} -#issue .issue-bar .labels .label-black { - color: #444; -} -#issue .issue-bar .labels .dropdown-menu ul { - margin: 0; - width: 180px; -} -#issue .issue-bar .labels .dropdown-menu li { - line-height: 30px; - padding-left: 12px; - border-bottom: 1px solid #DDD; -} -#issue .issue-bar .labels .dropdown-menu li:hover { - background-color: #e8f0ff; - cursor: pointer; -} -#issue .issue-bar .labels .color { - display: inline-block; - width: 16px; - height: 16px; - vertical-align: text-top; - margin-right: 6px; -} -#issue .issue-bar .labels .no-checked .color { - margin-left: 26px; -} -#label-color-ipt2, -#label-color-change-ipt2 { - width: 120px; - display: inline-block; - vertical-align: top; -} -#label-color-change-ipt2 { - margin-top: 1px; -} -/* wrapper and footer */ - -#wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -100px; - padding: 0 0 100px; -} -#footer { - background: #fff; - -webkit-box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.05);; - height: 100px; -} -#footer .footer-wrap { - padding: 20px 15px; -} -#footer a { - color: #000; -} -/* admin dashboard/configuration */ - -.admin-dl-horizontal > dt { - width: 220px; -} -.admin-dl-horizontal > dd { - margin-left: 240px; -} -/* release page */ - -#release-head { - margin-top: 0; - padding-bottom: 30px; - margin-bottom: 0; - border-bottom: 1px solid #DDD; -} -#release .release-item .col-md-10 { - border-left: 1px solid #DDD; - position: relative; -} -#release .release-item .commit, -#release .release-item .tag { - display: block; - margin-top: 12px; -} -#release .release-item.release-tag .commit { - margin-top: 6px; -} -#release .release-item .title { - line-height: 30px; - margin-top: 0; -} -#release .release-item .dot { - width: 9px; - height: 9px; - background-color: #ccc; - z-index: 999; - position: absolute; - display: block; - left: -5px; - top: 30px; - border-radius: 6px; - border: 1px solid #FFF; -} -#release .release-item > div { - padding-top: 20px; - padding-bottom: 20px; -} -#release .release-item p.info { - line-height: 20px; - color: #666; - margin-bottom: 18px; -} -#release .release-item div.desc { - margin-bottom: 18px; -} -#release .release-item p.info > *, -#release .release-item .download a { - margin-right: 12px; -} -#release .release-item .info .avatar { - vertical-align: middle; -} -#release-new-form { - margin-top: 24px; -} -#release-new-form .target-at { - margin: 0 1em; -} -#release-new-form .target-text { - color: #888; -} -#release-new-target-branch-list { - padding-top: 0; - padding-bottom: 0; - min-width: 200px; -} -#release-new-target-branch-list ul { - margin-bottom: 0; -} -#release-new-target-branch-list li { - padding: 8px 20px; +.ui.comments .dropzone { + width: 100%; + margin-bottom: 10px; + border: 2px dashed #0087F7; + box-shadow: none!important; } -#release-new-target-branch-list li a { - margin-left: 0; - background-color: transparent; - padding: 0; +.ui.comments .dropzone .dz-error-message { + top: 140px; } -#release-new-target-branch-list li a:hover { - background-image: none; +.settings .content { + margin-top: 2px; } -#release-new-target-branch-list li:hover { - background-color: #0093c4; +.settings .content .header, +.settings .content .segment { + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15); } -#release-new-target-branch-list li:hover a { - color: #FFF; +.settings .key.list .item:not(:first-child) { + border-top: 1px solid #eaeaea; } -#release-new-title { - width: 50%; +.settings .key.list .ssh-key-state-indicator { + float: left; + color: gray; + padding-left: 10px; + padding-top: 10px; } -#release-new-content-div { - margin-top: 16px; - padding-left: 0; +.settings .key.list .ssh-key-state-indicator.active { + color: #6cc644; } -#release-new-content-div .md-help { - margin-top: 6px; +.settings .key.list .meta { + padding-top: 5px; } -#release-textarea .form-group { - display: block; +.settings .key.list .print { + color: #767676; } -#release-new-content { - width: 100%; - margin: 16px 0; +.settings .key.list .activity { + color: #666; } -#release-preview { - margin: 6px 0; +.settings .hook.list > .item:not(:first-child) { + border-top: 1px solid #eaeaea; } -/* organization */ - -#body-nav.org-nav { - height: 140px; - padding: 16px 0; +.settings .hook.list .item { + padding: 10px 20px; } -#body-nav.org-nav.org-nav-auto { - height: auto; +.settings .hook.list .item .octicon, +.settings .hook.list .item .fa { + width: 20px; + text-align: center; } -.org-nav > .container { - padding-left: 0; - padding-left: 0; +.settings .hook.history.list .item { + padding-left: 13px; } -.org-nav .org-logo { - margin-right: 16px; - width: 100px; - height: 100px; +.settings .hook.history.list .item .meta .ui.right { + margin-top: 5px; } -.org-nav .org-small-logo { - margin-right: 16px; - width: 50px; - height: 50px; +.settings .hook.history.list .item .meta .ui.right .time { + font-size: 12px; } -.org-nav .org-name { - margin-top: 0; +.settings .hook.history.list .item .info { + margin-top: 10px; } -.org-nav-auto .org-name { - font-size: 1.4em; - line-height: 48px; +.settings .hook.history.list .item .info .tabular.menu .item { + font-weight: 500; } -#body-nav.org-nav-auto .nav { - margin-top: 6px; +.settings .hook.history.list .item .info .tab.segment { + border: none; + padding: 0; + padding-top: 10px; + box-shadow: none; } -#body-nav.org-nav-auto .nav a:hover { - text-decoration: none; +.settings .hook.history.list .item .info .tab.segment > * { + color: #666; } -.org-description { - font-size: 16px; +.settings .hook.history.list .item .info .tab.segment pre { + word-wrap: break-word; } -.org-meta li, -.org-meta li a, -.org-repo-update, -.org-repo-status, -.org-team-meta { - color: #888; +.settings .hook.history.list .item .info .tab.segment pre .hljs { + padding: 0; + background-color: inherit; } -.org-meta li { - margin-right: 12px; +.ui.vertical.menu .header.item { + font-size: 1.1em; + background: #f0f0f0; } -.org-meta li a:hover { - text-decoration: underline; +.edit-label.modal .form .column, +.new-label.segment .form .column { + padding-right: 0; } -.org-meta .fa { - margin-left: 0; +.edit-label.modal .form .buttons, +.new-label.segment .form .buttons { + margin-left: auto; + padding-top: 15px; } -.org-main { - padding-left: 0; +.edit-label.modal .form .color.picker.column, +.new-label.segment .form .color.picker.column { + width: auto; } -.org-sidebar { - margin-top: -100px; +.edit-label.modal .form .color.picker.column .color-picker, +.new-label.segment .form .color.picker.column .color-picker { + height: 35px; + width: auto; + padding-left: 30px; } -.org-panel .panel-heading { - font-size: 18px; +.edit-label.modal .form .minicolors-swatch.minicolors-sprite, +.new-label.segment .form .minicolors-swatch.minicolors-sprite { + top: 10px; + left: 10px; + width: 15px; + height: 15px; } -.org-repo-status { - font-family: Verdana, Arial, Helvetica, sans-serif; +.edit-label.modal .form .precolors, +.new-label.segment .form .precolors { + padding-left: 0; + padding-right: 0; + margin: 3px 10px auto 10px; + width: 120px; } -.org-repo-item { - border-bottom: 1px solid #DDD; - padding-bottom: 18px; +.edit-label.modal .form .precolors .color, +.new-label.segment .form .precolors .color { + float: left; + width: 15px; + height: 15px; } -.org-member img { - width: 60px; - height: 60px; - border-radius: 4px; +#transfer-repo-modal .ui.message, +#delete-repo-modal .ui.message { + width: 100%!important; } -.org-member { - display: inline-block; - padding: 2px; +.organization { + padding-top: 15px; + padding-bottom: 80px; } -.org-team-name { - font-size: 15px; - margin-bottom: 0; - color: #444; +.organization .head .ui.header .text { + vertical-align: middle; + font-size: 1.6rem; + margin-left: 15px; } -.org-team { - border-bottom: 1px solid #DDD; - margin-bottom: 12px; +.organization .head .ui.header .ui.right { + margin-top: 5px; } -.org-team:last-child { - border: none; +.organization.new.org form { + margin: auto; + width: 800px!important; } -.org-team a { - display: block; +.organization.new.org form .ui.message { + text-align: center; } -.org-team a:hover { - text-decoration: none; +.organization.new.org form .header { + padding-left: 280px !important; } -.org-team a:hover .org-team-name { - color: #0079bc !important; +.organization.new.org form .inline.field > label { + text-align: right; + width: 250px !important; + word-wrap: break-word; } -#org-members { - margin-right: 30px; +.organization.new.org form .help { + margin-left: 265px !important; } -#org-members .member .avatar img, -#org-team-members .member .avatar img { - width: 50px; - height: 50px; +.organization.new.org form .optional .title { + margin-left: 250px !important; } -#org-members .member, -#org-team-members .member { - padding-bottom: 20px; - margin-bottom: 20px; - border-bottom: 1px solid #DDD; - height: 70px; +.organization.new.org form input, +.organization.new.org form textarea { + width: 50%!important; } -#org-members .member .name, -#org-team-members .member .name { - padding-top: 4px; +.organization.options input { + width: 50%!important; + min-width: 300px; } -#org-members .member .nick, -#org-team-members .member .nick { - display: block; - color: #888; +.user { + padding-top: 15px; + padding-bottom: 80px; } -#org-members .member .name a, -#org-team-members .member .name a { - color: #444; +.user.settings .list .item.ui.grid { + margin-top: 15px; } -#org-members .member .name strong, -#org-team-members .member .name strong { - font-size: 1.2em; +.user.settings .email.list .item:not(:first-child) { + border-top: 1px solid #eaeaea; + height: 50px; } -#org-members .status, -#org-members .role, -#org-team-members .status, -#org-team-members .role { - line-height: 48px; - text-align: right; +.user.settings .email.list .item:not(:first-child) .button { + margin-top: -10px; +} +.dashboard { + padding-top: 15px; + padding-bottom: 80px; +} +.dashboard.issues .context.user.menu { + z-index: 101; + min-width: 200px; +} +.dashboard.issues .context.user.menu .ui.header { + font-size: 1rem; + text-transform: none; +} +.dashboard.issues .filter.menu .item { + text-align: left; } -#org-teams .org-team .panel-heading { - margin-top: 0; +.dashboard.issues .filter.menu .item .text { + height: 16px; + vertical-align: middle; } -#org-teams .org-team .panel-heading a { - color: #444; +.dashboard.issues .filter.menu .item .floating.label { + top: 7px; + left: 90%; + width: 15%; } -#org-teams .org-team-members { - margin-top: 18px; +.dashboard.issues .filter.menu .item.active { + background-color: #4183c4; + color: #FFF; } -#org-teams .org-team-members img { - width: 40px; - height: 40px; - margin-right: 12px; +.dashboard.issues .filter.menu .item .text { + width: 85%; } -#org-teams .org-team-members a { - display: inline-block; +.dashboard.issues .ui.right .head.menu { + margin-top: -5px; } -#org-teams .org-team .panel-footer { - height: 60px; +.dashboard.issues .ui.right .head.menu .item.active { + color: #d9453d; } -#org-teams .org-team { - border-bottom: none; +.dashboard.issues .head.menu .octicon { + margin-right: 5px; } -#org-team-card { - border: 1px solid #CCC; - background-color: #FFF; +.admin { + padding-top: 15px; + padding-bottom: 80px; } -#org-team-card .meta .num { - font-weight: bold; - color: #444; - font-size: 1.2em; +.admin .table.segment { + padding: 0; + font-size: 13px; } -#org-team-card .meta > div { - margin-bottom: 12px; +.admin .table.segment th { + padding-top: 5px; + padding-bottom: 5px; } -#org-team-card .meta a:hover { - text-decoration: none; - font-weight: bold; +.admin .table.segment th:first-child, +.admin .table.segment td:first-child { + padding-left: 15px; } -#org-team-card .action a { - margin-right: 12px; +.admin .ui.header, +.admin .ui.segment { + box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15); } -#org-team-card .action a:hover { - text-decoration: none; +.admin.user .email { + max-width: 200px; } -#org-team-content .header { - height: 50px; +.explore { + padding-top: 15px; + padding-bottom: 80px; } -#org-team-content .header > form { - padding-right: 0; +.explore.repositories .ui.repository.list .item { + border-top: 1px solid #eee; + padding-top: 25px; + padding-bottom: 25px; } -#org-team-repos .repo{ - padding-bottom: 20px; - margin-bottom: 20px; - border-bottom: 1px solid #DDD; - padding-left: 15px; +.explore.repositories .ui.repository.list .item .ui.header { + font-size: 1.5rem; + padding-bottom: 10px; } -#org-team-repos .repo-name{ - font-size: 1.2em; - color: #444; - font-weight: bold; - line-height: 30px; -} - -.issue-main .attachments { - margin: 0px 10px 10px 10px; -} - -.issue-main .attachments .attachment-label { - margin-right: 5px; -} - -.attachment-preview { - position: absolute; - top: 0px; - bottom: 0px; - - margin: 5px; - padding: 8px; - - background: #fff; - border: 1px solid #d8d8d8; - box-shadow: 0 0 5px 1px #d8d8d8; -} - -.attachment-preview-img { - border: 1px solid #d8d8d8; -} - -#attachments-button { - float: left; -} - -#attached { - margin: 10px 0 15px; -} - -#attached-list .label { - display: inline-block; - vertical-align: top; - margin-right: 10px; - padding-right: 0; -} - -#attached-list .label .attachment-remove { - cursor: pointer; -} - -#attached-list .label .attachment-remove:hover { - background: #d8d8d8; -} - -#issue-create-form #attached { - margin-bottom: 0; +.explore.repositories .ui.repository.list .item .ui.header .metas { + color: #888; + font-size: 13px; + font-weight: normal; +} +.explore.repositories .ui.repository.list .item .ui.header .metas span:not(:last-child) { + margin-right: 5px; +} +.explore.repositories .ui.repository.list .item .time { + font-size: 12px; + color: #808080; } diff --git a/public/css/gogs.min.css b/public/css/gogs.min.css index d2b7b87d3..b3ebce785 100644 --- a/public/css/gogs.min.css +++ b/public/css/gogs.min.css @@ -1 +1 @@ -@font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('embedded-opentype'),url(../fonts/octicons.woff?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('woff'),url(../fonts/octicons.ttf?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('truetype'),url(../fonts/octicons.svg?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d#octicons) format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beaker:before,.octicon-microscope:before{content:'\f0dd'}.octicon-bell:before{content:'\f0de'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-clone:before,.octicon-desktop-download:before{content:'\f0dc'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-gist-private:before,.octicon-git-fork-private:before,.octicon-lock:before,.octicon-mirror-private:before{content:'\f06a'}.octicon-logo-github:before{content:'\f092'}.octicon-mail:before{content:'\f03b'}.octicon-mail-read:before{content:'\f03c'}.octicon-mail-reply:before{content:'\f051'}.octicon-mark-github:before{content:'\f00a'}.octicon-markdown:before{content:'\f0c9'}.octicon-megaphone:before{content:'\f077'}.octicon-mention:before{content:'\f0be'}.octicon-milestone:before{content:'\f075'}.octicon-mirror-public:before,.octicon-mirror:before{content:'\f024'}.octicon-mortar-board:before{content:'\f0d7'}.octicon-mute:before{content:'\f080'}.octicon-no-newline:before{content:'\f09c'}.octicon-octoface:before{content:'\f008'}.octicon-organization:before{content:'\f037'}.octicon-package:before{content:'\f0c4'}.octicon-paintcan:before{content:'\f0d1'}.octicon-pencil:before{content:'\f058'}.octicon-person-add:before,.octicon-person-follow:before,.octicon-person:before{content:'\f018'}.octicon-pin:before{content:'\f041'}.octicon-plug:before{content:'\f0d4'}.octicon-file-add:before,.octicon-file-directory-create:before,.octicon-gist-new:before,.octicon-plus:before,.octicon-repo-create:before{content:'\f05d'}.octicon-primitive-dot:before{content:'\f052'}.octicon-primitive-square:before{content:'\f053'}.octicon-pulse:before{content:'\f085'}.octicon-question:before{content:'\f02c'}.octicon-quote:before{content:'\f063'}.octicon-radio-tower:before{content:'\f030'}.octicon-repo-delete:before,.octicon-repo:before{content:'\f001'}.octicon-repo-clone:before{content:'\f04c'}.octicon-repo-force-push:before{content:'\f04a'}.octicon-gist-fork:before,.octicon-repo-forked:before{content:'\f002'}.octicon-repo-pull:before{content:'\f006'}.octicon-repo-push:before{content:'\f005'}.octicon-rocket:before{content:'\f033'}.octicon-rss:before{content:'\f034'}.octicon-ruby:before{content:'\f047'}.octicon-screen-full:before{content:'\f066'}.octicon-screen-normal:before{content:'\f067'}.octicon-search-save:before,.octicon-search:before{content:'\f02e'}.octicon-server:before{content:'\f097'}.octicon-settings:before{content:'\f07c'}.octicon-shield:before{content:'\f0e1'}.octicon-log-in:before,.octicon-sign-in:before{content:'\f036'}.octicon-log-out:before,.octicon-sign-out:before{content:'\f032'}.octicon-squirrel:before{content:'\f0b2'}.octicon-star-add:before,.octicon-star-delete:before,.octicon-star:before{content:'\f02a'}.octicon-stop:before{content:'\f08f'}.octicon-repo-sync:before,.octicon-sync:before{content:'\f087'}.octicon-tag-add:before,.octicon-tag-remove:before,.octicon-tag:before{content:'\f015'}.octicon-telescope:before{content:'\f088'}.octicon-terminal:before{content:'\f0c8'}.octicon-three-bars:before{content:'\f05e'}.octicon-thumbsdown:before{content:'\f0db'}.octicon-thumbsup:before{content:'\f0da'}.octicon-tools:before{content:'\f031'}.octicon-trashcan:before{content:'\f0d0'}.octicon-triangle-down:before{content:'\f05b'}.octicon-triangle-left:before{content:'\f044'}.octicon-triangle-right:before{content:'\f05a'}.octicon-triangle-up:before{content:'\f0aa'}.octicon-unfold:before{content:'\f039'}.octicon-unmute:before{content:'\f0ba'}.octicon-versions:before{content:'\f064'}.octicon-watch:before{content:'\f0e0'}.octicon-remove-close:before,.octicon-x:before{content:'\f081'}.octicon-zap:before{content:'\26A1'}.emoji{width:1.5em;height:1.5em;display:inline-block;background-size:contain}body{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif,'微软雅黑';background-color:#FAFAFA}img{border-radius:3px}pre{font:12px Consolas,"Liberation Mono",Menlo,Courier,monospace}pre.raw{padding:7px 12px;margin:10px 0;background-color:#f8f8f8;border:1px solid #ddd;border-radius:3px;font-size:13px;line-height:1.5;overflow:auto}.full.height{padding:0;margin:0 0 -80px 0;min-height:100%}.following.bar{z-index:900;left:0;width:100%}.following.bar.light{background-color:#fff;border-bottom:1px solid #DDD;box-shadow:0 2px 3px rgba(0,0,0,.04)}.following.bar .column .menu{margin-top:0}.following.bar .top.menu a.item.brand{padding-left:0}.following.bar .brand .ui.mini.image{width:30px}.following.bar .top.menu .dropdown.item.active,.following.bar .top.menu .dropdown.item:hover,.following.bar .top.menu a.item:hover{background-color:transparent}.following.bar .top.menu a.item:hover{color:rgba(0,0,0,.45)}.following.bar .top.menu .menu{z-index:900}.following.bar .head.link.item{padding-right:0!important}.following.bar .head.link.item .dropdown.icon,.following.bar .head.link.item .menu .octicon{margin-right:5px}.following.bar .avatar>.ui.image{margin-right:0}.following.bar .searchbox{background-color:#f4f4f4!important}.following.bar .searchbox:focus{background-color:#e9e9e9!important}.following.bar .text .octicon{width:16px;text-align:center}.following.bar .right.menu .menu{left:auto;right:0}.following.bar .right.menu .dropdown .menu{margin-top:0}.ui.left{float:left}.ui.right{float:right}.ui .text.red{color:#d95c5c!important}.ui .text.red a{color:#d95c5c!important}.ui .text.red a:hover{color:#E67777!important}.ui .text.blue{color:#428bca!important}.ui .text.blue a{color:#15c!important}.ui .text.blue a:hover{color:#428bca!important}.ui .text.grey{color:#767676!important}.ui .text.grey a{color:#444!important}.ui .text.grey a:hover{color:#000!important}.ui .text.green{color:#6cc644!important}.ui .text.purple{color:#6e5494!important}.ui .text.left{text-align:left!important}.ui .text.right{text-align:right!important}.ui .text.small{font-size:.75em}.ui .text.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.ui .text.thin{font-weight:400}.ui .text.middle{vertical-align:middle}.ui .message{text-align:center}.ui .header>i+.content{padding-left:.75rem;vertical-align:middle}.ui .warning.header{background-color:#F9EDBE!important;border-color:#F0C36D}.ui .warning.segment{border-color:#F0C36D}.ui .info.header{background-color:#d9edf7!important;border-color:#85c5e5}.ui .info.segment{border-color:#85c5e5}.ui .normal.header{font-weight:400}.ui .avatar.image{border-radius:3px}.ui .form .fake{display:none!important}.ui.status.buttons .octicon{margin-right:4px}.overflow.menu .items{max-height:300px;overflow-y:auto}.overflow.menu .items .item{position:relative;cursor:pointer;display:block;border:none;height:auto;border-top:none;line-height:1em;color:rgba(0,0,0,.8);padding:.71428571em 1.14285714em!important;font-size:1rem;text-transform:none;font-weight:400;box-shadow:none;-webkit-touch-callout:none}.overflow.menu .items .item.active{font-weight:700}.overflow.menu .items .item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.8);z-index:13}.scrolling.menu .item.selected{font-weight:700!important}footer{margin-top:54px!important;height:40px;background-color:#fff;border-top:1px solid #d6d6d6;clear:both;width:100%;color:#888}footer .container{padding-top:10px}footer .container .fa{width:16px;text-align:center;color:#428bca}footer .container .ui.language.dropdown{z-index:10000}footer .container .links>*{border-left:1px solid #d6d6d6;padding-left:8px;margin-left:5px}footer .container .links>:first-child{border-left:none}.hide{display:none}.center{text-align:center}.img-1{width:2px!important;height:2px!important}.img-2{width:4px!important;height:4px!important}.img-3{width:6px!important;height:6px!important}.img-4{width:8px!important;height:8px!important}.img-5{width:10px!important;height:10px!important}.img-6{width:12px!important;height:12px!important}.img-7{width:14px!important;height:14px!important}.img-8{width:16px!important;height:16px!important}.img-9{width:18px!important;height:18px!important}.img-10{width:20px!important;height:20px!important}.img-11{width:22px!important;height:22px!important}.img-12{width:24px!important;height:24px!important}.img-13{width:26px!important;height:26px!important}.img-14{width:28px!important;height:28px!important}.img-15{width:30px!important;height:30px!important}.img-16{width:32px!important;height:32px!important}.mega-octicon.icon,.octicon.icon{font-family:octicons;opacity:1!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}@media only screen and (max-width:991px) and (min-width:768px){.ui.container{width:95%}}.markdown{overflow:hidden;font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,freesans,sans-serif;font-size:16px;line-height:1.6;word-wrap:break-word}.markdown>:first-child{margin-top:0!important}.markdown>:last-child{margin-bottom:0!important}.markdown a:not([href]){color:inherit;text-decoration:none}.markdown .absent{color:#c00}.markdown .anchor{position:absolute;top:0;left:0;display:block;padding-right:6px;padding-left:30px;margin-left:-30px}.markdown .anchor:focus{outline:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{position:relative;margin-top:1em;margin-bottom:16px;font-weight:700;line-height:1.4}.markdown h1 .octicon-link,.markdown h2 .octicon-link,.markdown h3 .octicon-link,.markdown h4 .octicon-link,.markdown h5 .octicon-link,.markdown h6 .octicon-link{display:none;color:#000;vertical-align:middle}.markdown h1:hover .anchor,.markdown h2:hover .anchor,.markdown h3:hover .anchor,.markdown h4:hover .anchor,.markdown h5:hover .anchor,.markdown h6:hover .anchor{padding-left:8px;margin-left:-30px;text-decoration:none}.markdown h1:hover .anchor .octicon-link,.markdown h2:hover .anchor .octicon-link,.markdown h3:hover .anchor .octicon-link,.markdown h4:hover .anchor .octicon-link,.markdown h5:hover .anchor .octicon-link,.markdown h6:hover .anchor .octicon-link{display:inline-block}.markdown h1 code,.markdown h1 tt,.markdown h2 code,.markdown h2 tt,.markdown h3 code,.markdown h3 tt,.markdown h4 code,.markdown h4 tt,.markdown h5 code,.markdown h5 tt,.markdown h6 code,.markdown h6 tt{font-size:inherit}.markdown h1{padding-bottom:.3em;font-size:2.25em;line-height:1.2;border-bottom:1px solid #eee}.markdown h1 .anchor{line-height:1}.markdown h2{padding-bottom:.3em;font-size:1.75em;line-height:1.225;border-bottom:1px solid #eee}.markdown h2 .anchor{line-height:1}.markdown h3{font-size:1.5em;line-height:1.43}.markdown h3 .anchor{line-height:1.2}.markdown h4{font-size:1.25em}.markdown h4 .anchor{line-height:1.2}.markdown h5{font-size:1em}.markdown h5 .anchor{line-height:1.1}.markdown h6{font-size:1em;color:#777}.markdown h6 .anchor{line-height:1.1}.markdown blockquote,.markdown dl,.markdown ol,.markdown p,.markdown pre,.markdown table,.markdown ul{margin-top:0;margin-bottom:16px}.markdown hr{height:4px;padding:0;margin:16px 0;background-color:#e7e7e7;border:0 none}.markdown ol,.markdown ul{padding-left:2em}.markdown ol.no-list,.markdown ul.no-list{padding:0;list-style-type:none}.markdown ol ol,.markdown ol ul,.markdown ul ol,.markdown ul ul{margin-top:0;margin-bottom:0}.markdown ol ol,.markdown ul ol{list-style-type:lower-roman}.markdown li>p{margin-top:16px}.markdown dl{padding:0}.markdown dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}.markdown dl dd{padding:0 16px;margin-bottom:16px}.markdown blockquote{padding:0 15px;color:#777;border-left:4px solid #ddd}.markdown blockquote>:first-child{margin-top:0}.markdown blockquote>:last-child{margin-bottom:0}.markdown table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}.markdown table th{font-weight:700}.markdown table td,.markdown table th{padding:6px 13px!important;border:1px solid #ddd}.markdown table tr{background-color:#fff;border-top:1px solid #ccc}.markdown table tr:nth-child(2n){background-color:#f8f8f8}.markdown img{max-width:100%;box-sizing:border-box}.markdown .emoji{max-width:none}.markdown span.frame{display:block;overflow:hidden}.markdown span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #ddd}.markdown span.frame span img{display:block;float:left}.markdown span.frame span span{display:block;padding:5px 0 0;clear:both;color:#333}.markdown span.align-center{display:block;overflow:hidden;clear:both}.markdown span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown span.align-center span img{margin:0 auto;text-align:center}.markdown span.align-right{display:block;overflow:hidden;clear:both}.markdown span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown span.align-right span img{margin:0;text-align:right}.markdown span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown span.float-left span{margin:13px 0 0}.markdown span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown code,.markdown tt{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(0,0,0,.04);border-radius:3px}.markdown code:after,.markdown code:before,.markdown tt:after,.markdown tt:before{letter-spacing:-.2em;content:"\00a0"}.markdown code br,.markdown tt br{display:none}.markdown del code{text-decoration:inherit}.markdown pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:0 0;border:0}.markdown .highlight{margin-bottom:16px}.markdown .highlight pre,.markdown pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f7f7f7;border-radius:3px}.markdown .highlight pre{margin-bottom:0;word-break:normal}.markdown pre{word-wrap:normal}.markdown pre code,.markdown pre tt{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown pre code:after,.markdown pre code:before,.markdown pre tt:after,.markdown pre tt:before{content:normal}.markdown kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#555;vertical-align:middle;background-color:#fcfcfc;border:solid 1px #ccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.markdown .csv-data td,.markdown .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown .csv-data tr{border-top:0}.markdown .csv-data th{font-weight:700;background:#f8f8f8;border-top:0}.pln{color:#333}@media screen{.str{color:#d14}.kwd{color:#333}.com{color:#998;font-style:italic}.typ{color:#458}.lit{color:#458}.pun{color:#333}.opn{color:#333}.clo{color:#333}.tag{color:navy}.atn{color:teal}.atv{color:#d14}.dec{color:#333}.var{color:teal}.fun{color:#900}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:700}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:700}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006;font-weight:700}.atn{color:#404}.atv{color:#060}}ol.linenums{margin-top:0;margin-bottom:0}.home{padding-bottom:80px}.home .logo{max-width:250px}.home .hero h1,.home .hero h2{font-family:'PT Sans Narrow',sans-serif}.home .hero h1{font-size:7em}.home .hero h2{font-size:4em}.home .hero .octicon{color:#d9453d;font-size:60px;margin-right:10px}.home .hero.header{font-size:24px}.home p.large{font-size:20px}.home .stackable{padding-top:30px}.home a{color:#d9453d}.install{padding-top:45px;padding-bottom:80px}.install form label{text-align:right;width:320px!important}.install form input{width:35%!important}.install form .field{text-align:left}.install form .field .help{margin-left:335px!important}.install form .field.optional .title{margin-left:38%}.install .ui .checkbox{margin-left:40%!important}.install .ui .checkbox label{width:auto!important}.form .help{color:#999;padding-top:.6em;padding-bottom:.6em;display:inline-block}.ui.attached.header{background:#f0f0f0}.ui.attached.header .right{margin-top:-5px}.ui.attached.header .right .button{padding:8px 10px;font-weight:400}#create-page-form form{margin:auto;width:800px!important}#create-page-form form .ui.message{text-align:center}#create-page-form form .header{padding-left:280px!important}#create-page-form form .inline.field>label{text-align:right;width:250px!important;word-wrap:break-word}#create-page-form form .help{margin-left:265px!important}#create-page-form form .optional .title{margin-left:250px!important}#create-page-form form input,#create-page-form form textarea{width:50%!important}.repository.new.fork form,.repository.new.migrate form,.repository.new.repo form{margin:auto;width:800px!important}.repository.new.fork form .ui.message,.repository.new.migrate form .ui.message,.repository.new.repo form .ui.message{text-align:center}.repository.new.fork form .header,.repository.new.migrate form .header,.repository.new.repo form .header{padding-left:280px!important}.repository.new.fork form .inline.field>label,.repository.new.migrate form .inline.field>label,.repository.new.repo form .inline.field>label{text-align:right;width:250px!important;word-wrap:break-word}.repository.new.fork form .help,.repository.new.migrate form .help,.repository.new.repo form .help{margin-left:265px!important}.repository.new.fork form .optional .title,.repository.new.migrate form .optional .title,.repository.new.repo form .optional .title{margin-left:250px!important}.repository.new.fork form input,.repository.new.fork form textarea,.repository.new.migrate form input,.repository.new.migrate form textarea,.repository.new.repo form input,.repository.new.repo form textarea{width:50%!important}.repository.new.fork form .dropdown .dropdown.icon,.repository.new.migrate form .dropdown .dropdown.icon,.repository.new.repo form .dropdown .dropdown.icon{margin-top:-7px!important}.repository.new.fork form .dropdown .text,.repository.new.migrate form .dropdown .text,.repository.new.repo form .dropdown .text{margin-right:0!important}.repository.new.fork form .dropdown .text i,.repository.new.migrate form .dropdown .text i,.repository.new.repo form .dropdown .text i{margin-right:0!important}.repository.new.repo .ui.form .selection.dropdown:not(.owner){width:50%!important}.repository.new.repo .ui.form #auto-init{margin-left:265px!important}.new.webhook form .help{margin-left:25px}.new.webhook .events.fields .column{padding-left:40px}.repository{padding-top:15px;padding-bottom:80px}.repository .head .column{padding-top:5px!important;padding-bottom:5px!important}.repository .head .ui.compact.menu{margin-left:1rem}.repository .head .ui.header{margin-top:0}.repository .head .mega-octicon{width:30px;font-size:30px}.repository .head .ui.huge.breadcrumb{font-weight:300;font-size:1.7rem}.repository .head .fork-flag{margin-left:38px;display:block;font-size:12px;line-height:10px;white-space:nowrap}.repository .metas .menu{max-height:300px;overflow-x:auto}.repository .metas .ui.list .hide{display:none!important}.repository .metas .ui.list .label.color{padding:0 8px;margin-right:5px}.repository .metas .ui.list a{padding-top:5px;padding-right:10px}.repository .metas .ui.list a .text{color:#444}.repository .metas .ui.list a .text:hover{color:#000}.repository .filter.menu .label.color{margin-left:15px;padding:0 8px}.repository .filter.menu .octicon{float:left;margin-left:-5px;margin-right:-7px}.repository .filter.menu .menu{max-height:300px;overflow-x:auto;right:0!important;left:auto!important}.repository .filter.menu .dropdown.item{margin:1px;padding-right:0}.repository.options #interval{width:100px!important;min-width:100px}.repository.options .danger .item{padding:20px 15px}.repository.options .danger .ui.divider{margin:0}.repository.new.issue .comment.form .comment .avatar{width:3em}.repository.new.issue .comment.form .content{margin-left:4em}.repository.new.issue .comment.form .content .markdown{font-size:14px}.repository.new.issue .comment.form .metas{min-width:220px}.repository.new.issue .comment.form .metas .filter.menu{max-height:300px;overflow-x:auto}.repository.view.issue .title{padding-bottom:0!important}.repository.view.issue .title h1{font-weight:300;font-size:3rem;margin-bottom:5px}.repository.view.issue .title h1 .ui.input{font-size:.5em;vertical-align:top;width:50%;min-width:600px}.repository.view.issue .title h1 .ui.input input{font-size:1.5em;padding:6px 10px}.repository.view.issue .title .index{font-weight:300;color:#aaa;letter-spacing:-1px}.repository.view.issue .title .label{margin-right:10px}.repository.view.issue .title .edit-zone{margin-top:10px}.repository.view.issue .pull-desc code{color:#0166E6}.repository.view.issue .pull.tabular.menu{margin-bottom:10px}.repository.view.issue .pull.tabular.menu .octicon{margin-right:5px}.repository.view.issue .pull.tab.segment{border:none;padding:0;padding-top:10px;box-shadow:none;background-color:inherit}.repository.view.issue .pull .merge.box .avatar{margin-left:10px;margin-top:10px}.repository.view.issue .comment-list:before{display:block;content:"";position:absolute;margin-top:12px;margin-bottom:14px;top:0;bottom:0;left:96px;width:2px;background-color:#f3f3f3;z-index:-1}.repository.view.issue .comment-list .comment .avatar{width:3em}.repository.view.issue .comment-list .comment .tag{color:#767676;margin-top:3px;padding:2px 5px;font-size:12px;border:1px solid rgba(0,0,0,.1);border-radius:3px}.repository.view.issue .comment-list .comment .actions .item{float:left}.repository.view.issue .comment-list .comment .actions a.item{margin-top:6px;margin-left:10px}.repository.view.issue .comment-list .comment .content{margin-left:4em}.repository.view.issue .comment-list .comment .content .header{font-weight:400;padding:auto 15px;color:#767676;background-color:#f7f7f7;border-bottom:1px solid #eee;border-top-left-radius:3px;border-top-right-radius:3px}.repository.view.issue .comment-list .comment .content .header .text{max-width:78%;padding-top:10px;padding-bottom:10px}.repository.view.issue .comment-list .comment .content .markdown{font-size:14px}.repository.view.issue .comment-list .comment .content .no-content{color:#767676;font-style:italic}.repository.view.issue .comment-list .comment .content>.bottom.segment{background:#f3f4f5}.repository.view.issue .comment-list .comment .content>.bottom.segment .ui.image{max-height:150px}.repository.view.issue .comment-list .comment .ui.form .field:first-child{clear:none}.repository.view.issue .comment-list .comment .ui.form .tab.segment{border:none;padding:0;padding-top:10px}.repository.view.issue .comment-list .comment .ui.form textarea{height:200px}.repository.view.issue .comment-list .comment .edit.buttons{margin-top:10px}.repository.view.issue .comment-list .event{position:relative;margin:15px 0 15px 79px;padding-left:25px}.repository.view.issue .comment-list .event .octicon{width:30px;float:left;margin-left:-36px;text-align:center}.repository.view.issue .comment-list .event .octicon.octicon-circle-slash{margin-top:5px;font-size:20px;color:#bd2c00}.repository.view.issue .comment-list .event .octicon.octicon-primitive-dot{font-size:30px;color:#6cc644}.repository.view.issue .comment-list .event .octicon.octicon-bookmark{margin-top:3px;font-size:25px}.repository.view.issue .comment-list .event .detail{font-size:.9rem;margin-top:5px;margin-left:35px}.repository.view.issue .comment-list .event .detail .octicon.octicon-git-commit{margin-top:2px}.repository.view.issue .ui.segment.metas{margin-top:-3px}.repository .comment.form .ui.comments{margin-top:-12px;max-width:100%}.repository .comment.form .content .field:first-child{clear:none}.repository .comment.form .content .tab.segment{border:none;padding:0;padding-top:10px}.repository .comment.form .content textarea{height:200px}.repository .label.list{list-style:none;padding-top:15px}.repository .label.list .item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .label.list .item a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .label.list .item a:hover{color:#000}.repository .label.list .item a.open-issues{margin-right:30px}.repository .milestone.list{list-style:none;padding-top:15px}.repository .milestone.list>.item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .milestone.list>.item>a{padding-top:5px;padding-right:10px;color:#000}.repository .milestone.list>.item>a:hover{color:#4078c0}.repository .milestone.list>.item .ui.progress{width:40%;padding:0;border:0;margin:0}.repository .milestone.list>.item .ui.progress .bar{height:20px}.repository .milestone.list>.item .meta{color:#999;padding-top:5px}.repository .milestone.list>.item .meta .issue-stats .octicon{padding-left:5px}.repository .milestone.list>.item .meta .overdue{color:red}.repository .milestone.list>.item .operate{margin-top:-15px}.repository .milestone.list>.item .operate>a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .milestone.list>.item .operate>a:hover{color:#000}.repository .milestone.list>.item .content{padding-top:10px}.repository.new.milestone textarea{height:200px}.repository.new.milestone #deadline{width:150px}.repository.compare.pull .choose.branch .octicon{padding-right:10px}.repository .filter.dropdown .menu{margin-top:1px!important}.repository.commits .header .ui.right .search input{font-weight:400;padding:5px 10px}.repository.commits .header .ui.right .button{float:right;margin-left:5px;margin-top:1px}.repository .commits.table{font-size:13px}.repository .commits.table td:first-child,.repository .commits.table th:first-child{padding-left:15px}.repository .commits.table td{line-height:15px}.repository .commits.table .author{min-width:180px}.repository .commits.table .message span{max-width:500px}.repository .commits.table .date{width:120px}.repository .sha.label{font-family:Consolas,Menlo,Monaco,"Lucida Console",monospace;font-size:14px;padding:6px 10px 4px 10px;font-weight:400}.repository .diff-detail-box{margin:15px 0;line-height:30px}.repository .diff-detail-box ol{clear:both;padding-left:0;margin-top:5px;margin-bottom:28px}.repository .diff-detail-box ol li{list-style:none;padding-bottom:4px;margin-bottom:4px;border-bottom:1px dashed #DDD;padding-left:6px}.repository .diff-detail-box span.status{display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:middle}.repository .diff-detail-box span.status.modify{background-color:#f0db88}.repository .diff-detail-box span.status.add{background-color:#b4e2b4}.repository .diff-detail-box span.status.del{background-color:#e9aeae}.repository .diff-detail-box span.status.rename{background-color:#dad8ff}.repository .diff-box .count{margin-right:12px}.repository .diff-box .count .bar{background-color:#e75316;height:12px;width:40px;display:inline-block;margin:2px 4px 0 4px;vertical-align:text-top}.repository .diff-box .count .bar .add{background-color:#77c64a;height:12px}.repository .diff-box .file{color:#888}.repository .diff-file-box .header{border-bottom:1px solid #d4d4d5!important}.repository .diff-file-box .file-body.file-code .lines-num{text-align:right;color:#999;background:#fafafa;width:1%}.repository .diff-file-box .file-body.file-code .lines-num-old{border-right:1px solid #DDD}.repository .diff-file-box .code-diff{font-size:13px}.repository .diff-file-box .code-diff td{padding:0;border-top:none}.repository .diff-file-box .code-diff pre{margin:0}.repository .diff-file-box .code-diff .lines-num{border-right:1px solid #d4d4d5;padding:0 5px}.repository .diff-file-box .code-diff tbody tr.tag-code pre,.repository .diff-file-box .code-diff tbody tr.tag-code td{background-color:#E0E0E0!important;border-color:#ADADAD!important}.repository .diff-file-box .code-diff tbody tr.del-code pre,.repository .diff-file-box .code-diff tbody tr.del-code td{background-color:#ffe2dd!important;border-color:#e9aeae!important}.repository .diff-file-box .code-diff tbody tr.add-code pre,.repository .diff-file-box .code-diff tbody tr.add-code td{background-color:#d1ffd6!important;border-color:#b4e2b4!important}.repository .diff-file-box .code-diff tbody tr:hover td{background-color:#FFF8D2!important;border-color:#F0DB88!important}.repository .diff-file-box .code-diff tbody tr:hover pre{background-color:transparent!important}.repository .code-view{overflow:auto;overflow-x:auto;overflow-y:hidden}.issue.list{list-style:none;padding-top:15px}.issue.list>.item{padding-top:15px;padding-bottom:10px;border-bottom:1px dashed #AAA}.issue.list>.item .title{color:#444;font-size:15px;font-weight:700;margin:0 6px}.issue.list>.item .title:hover{color:#000}.issue.list>.item .comment{padding-right:10px;color:#666}.issue.list>.item .desc{padding-top:5px;color:#999}.issue.list>.item .desc a.milestone{padding-left:5px;color:#999!important}.issue.list>.item .desc a.milestone:hover{color:#000!important}.issue.list>.item .desc .assignee{margin-top:-5px;margin-right:5px}.page.buttons{padding-top:15px}.ui.comments .dropzone{width:100%;margin-bottom:10px;border:2px dashed #0087F7;box-shadow:none!important}.ui.comments .dropzone .dz-error-message{top:140px}.settings .content{margin-top:2px}.settings .content .header,.settings .content .segment{box-shadow:0 1px 2px 0 rgba(34,36,38,.15)}.settings .key.list .item:not(:first-child){border-top:1px solid #eaeaea}.settings .key.list .ssh-key-state-indicator{float:left;color:gray;padding-left:10px;padding-top:10px}.settings .key.list .ssh-key-state-indicator.active{color:#6cc644}.settings .key.list .meta{padding-top:5px}.settings .key.list .print{color:#767676}.settings .key.list .activity{color:#666}.settings .hook.list>.item:not(:first-child){border-top:1px solid #eaeaea}.settings .hook.list .item{padding:10px 20px}.settings .hook.list .item .fa,.settings .hook.list .item .octicon{width:20px;text-align:center}.settings .hook.history.list .item{padding-left:13px}.settings .hook.history.list .item .meta .ui.right{margin-top:5px}.settings .hook.history.list .item .meta .ui.right .time{font-size:12px}.settings .hook.history.list .item .info{margin-top:10px}.settings .hook.history.list .item .info .tabular.menu .item{font-weight:500}.settings .hook.history.list .item .info .tab.segment{border:none;padding:0;padding-top:10px;box-shadow:none}.settings .hook.history.list .item .info .tab.segment>*{color:#666}.settings .hook.history.list .item .info .tab.segment pre{word-wrap:break-word}.settings .hook.history.list .item .info .tab.segment pre .hljs{padding:0;background-color:inherit}.ui.vertical.menu .header.item{font-size:1.1em;background:#f0f0f0}.edit-label.modal .form .column,.new-label.segment .form .column{padding-right:0}.edit-label.modal .form .buttons,.new-label.segment .form .buttons{margin-left:auto;padding-top:15px}.edit-label.modal .form .color.picker.column,.new-label.segment .form .color.picker.column{width:auto}.edit-label.modal .form .color.picker.column .color-picker,.new-label.segment .form .color.picker.column .color-picker{height:35px;width:auto;padding-left:30px}.edit-label.modal .form .minicolors-swatch.minicolors-sprite,.new-label.segment .form .minicolors-swatch.minicolors-sprite{top:10px;left:10px;width:15px;height:15px}.edit-label.modal .form .precolors,.new-label.segment .form .precolors{padding-left:0;padding-right:0;margin:3px 10px auto 10px;width:120px}.edit-label.modal .form .precolors .color,.new-label.segment .form .precolors .color{float:left;width:15px;height:15px}#delete-repo-modal .ui.message,#transfer-repo-modal .ui.message{width:100%!important}.organization{padding-top:15px;padding-bottom:80px}.organization .head .ui.header .text{vertical-align:middle;font-size:1.6rem;margin-left:15px}.organization .head .ui.header .ui.right{margin-top:5px}.organization.new.org form{margin:auto;width:800px!important}.organization.new.org form .ui.message{text-align:center}.organization.new.org form .header{padding-left:280px!important}.organization.new.org form .inline.field>label{text-align:right;width:250px!important;word-wrap:break-word}.organization.new.org form .help{margin-left:265px!important}.organization.new.org form .optional .title{margin-left:250px!important}.organization.new.org form input,.organization.new.org form textarea{width:50%!important}.organization.options input{width:50%!important;min-width:300px}.user{padding-top:15px;padding-bottom:80px}.user.settings .key.list .item.ui.grid{margin-top:15px}.dashboard{padding-top:15px;padding-bottom:80px}.dashboard.issues .context.user.menu{z-index:101;min-width:200px}.dashboard.issues .context.user.menu .ui.header{font-size:1rem;text-transform:none}.dashboard.issues .filter.menu .item{text-align:left}.dashboard.issues .filter.menu .item .text{height:16px;vertical-align:middle}.dashboard.issues .filter.menu .item .floating.label{top:7px;left:90%;width:15%}.dashboard.issues .filter.menu .item.active{background-color:#4183c4;color:#FFF}.dashboard.issues .filter.menu .item .text{width:85%}.dashboard.issues .ui.right .head.menu{margin-top:-5px}.dashboard.issues .ui.right .head.menu .item.active{color:#d9453d}.dashboard.issues .head.menu .octicon{margin-right:5px}.admin{padding-top:15px;padding-bottom:80px}.admin .table.segment{padding:0;font-size:13px}.admin .table.segment th{padding-top:5px;padding-bottom:5px}.admin .table.segment td:first-child,.admin .table.segment th:first-child{padding-left:15px}.explore{padding-top:15px;padding-bottom:80px}.explore.repositories .ui.repository.list .item{border-top:1px solid #eee;padding-top:25px;padding-bottom:25px}.explore.repositories .ui.repository.list .item .ui.header{font-size:1.5rem;padding-bottom:10px}.explore.repositories .ui.repository.list .item .ui.header .metas{color:#888;font-size:13px;font-weight:400}.explore.repositories .ui.repository.list .item .ui.header .metas span:not(:last-child){margin-right:5px}.explore.repositories .ui.repository.list .item .time{font-size:12px;color:grey} \ No newline at end of file +@font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('embedded-opentype'),url(../fonts/octicons.woff?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('woff'),url(../fonts/octicons.ttf?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d) format('truetype'),url(../fonts/octicons.svg?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d#octicons) format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beaker:before,.octicon-microscope:before{content:'\f0dd'}.octicon-bell:before{content:'\f0de'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-clone:before,.octicon-desktop-download:before{content:'\f0dc'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-gist-private:before,.octicon-git-fork-private:before,.octicon-lock:before,.octicon-mirror-private:before{content:'\f06a'}.octicon-logo-github:before{content:'\f092'}.octicon-mail:before{content:'\f03b'}.octicon-mail-read:before{content:'\f03c'}.octicon-mail-reply:before{content:'\f051'}.octicon-mark-github:before{content:'\f00a'}.octicon-markdown:before{content:'\f0c9'}.octicon-megaphone:before{content:'\f077'}.octicon-mention:before{content:'\f0be'}.octicon-milestone:before{content:'\f075'}.octicon-mirror-public:before,.octicon-mirror:before{content:'\f024'}.octicon-mortar-board:before{content:'\f0d7'}.octicon-mute:before{content:'\f080'}.octicon-no-newline:before{content:'\f09c'}.octicon-octoface:before{content:'\f008'}.octicon-organization:before{content:'\f037'}.octicon-package:before{content:'\f0c4'}.octicon-paintcan:before{content:'\f0d1'}.octicon-pencil:before{content:'\f058'}.octicon-person-add:before,.octicon-person-follow:before,.octicon-person:before{content:'\f018'}.octicon-pin:before{content:'\f041'}.octicon-plug:before{content:'\f0d4'}.octicon-file-add:before,.octicon-file-directory-create:before,.octicon-gist-new:before,.octicon-plus:before,.octicon-repo-create:before{content:'\f05d'}.octicon-primitive-dot:before{content:'\f052'}.octicon-primitive-square:before{content:'\f053'}.octicon-pulse:before{content:'\f085'}.octicon-question:before{content:'\f02c'}.octicon-quote:before{content:'\f063'}.octicon-radio-tower:before{content:'\f030'}.octicon-repo-delete:before,.octicon-repo:before{content:'\f001'}.octicon-repo-clone:before{content:'\f04c'}.octicon-repo-force-push:before{content:'\f04a'}.octicon-gist-fork:before,.octicon-repo-forked:before{content:'\f002'}.octicon-repo-pull:before{content:'\f006'}.octicon-repo-push:before{content:'\f005'}.octicon-rocket:before{content:'\f033'}.octicon-rss:before{content:'\f034'}.octicon-ruby:before{content:'\f047'}.octicon-screen-full:before{content:'\f066'}.octicon-screen-normal:before{content:'\f067'}.octicon-search-save:before,.octicon-search:before{content:'\f02e'}.octicon-server:before{content:'\f097'}.octicon-settings:before{content:'\f07c'}.octicon-shield:before{content:'\f0e1'}.octicon-log-in:before,.octicon-sign-in:before{content:'\f036'}.octicon-log-out:before,.octicon-sign-out:before{content:'\f032'}.octicon-squirrel:before{content:'\f0b2'}.octicon-star-add:before,.octicon-star-delete:before,.octicon-star:before{content:'\f02a'}.octicon-stop:before{content:'\f08f'}.octicon-repo-sync:before,.octicon-sync:before{content:'\f087'}.octicon-tag-add:before,.octicon-tag-remove:before,.octicon-tag:before{content:'\f015'}.octicon-telescope:before{content:'\f088'}.octicon-terminal:before{content:'\f0c8'}.octicon-three-bars:before{content:'\f05e'}.octicon-thumbsdown:before{content:'\f0db'}.octicon-thumbsup:before{content:'\f0da'}.octicon-tools:before{content:'\f031'}.octicon-trashcan:before{content:'\f0d0'}.octicon-triangle-down:before{content:'\f05b'}.octicon-triangle-left:before{content:'\f044'}.octicon-triangle-right:before{content:'\f05a'}.octicon-triangle-up:before{content:'\f0aa'}.octicon-unfold:before{content:'\f039'}.octicon-unmute:before{content:'\f0ba'}.octicon-versions:before{content:'\f064'}.octicon-watch:before{content:'\f0e0'}.octicon-remove-close:before,.octicon-x:before{content:'\f081'}.octicon-zap:before{content:'\26A1'}.emoji{width:1.5em;height:1.5em;display:inline-block;background-size:contain}body{font-family:'Helvetica Neue',Arial,Helvetica,sans-serif,'微软雅黑';background-color:#FAFAFA}img{border-radius:3px}pre{font:12px Consolas,"Liberation Mono",Menlo,Courier,monospace}pre.raw{padding:7px 12px;margin:10px 0;background-color:#f8f8f8;border:1px solid #ddd;border-radius:3px;font-size:13px;line-height:1.5;overflow:auto}.full.height{padding:0;margin:0 0 -80px 0;min-height:100%}.following.bar{z-index:900;left:0;width:100%}.following.bar.light{background-color:#fff;border-bottom:1px solid #DDD;box-shadow:0 2px 3px rgba(0,0,0,.04)}.following.bar .column .menu{margin-top:0}.following.bar .top.menu a.item.brand{padding-left:0}.following.bar .brand .ui.mini.image{width:30px}.following.bar .top.menu .dropdown.item.active,.following.bar .top.menu .dropdown.item:hover,.following.bar .top.menu a.item:hover{background-color:transparent}.following.bar .top.menu a.item:hover{color:rgba(0,0,0,.45)}.following.bar .top.menu .menu{z-index:900}.following.bar .head.link.item{padding-right:0!important}.following.bar .head.link.item .dropdown.icon,.following.bar .head.link.item .menu .octicon{margin-right:5px}.following.bar .avatar>.ui.image{margin-right:0}.following.bar .searchbox{background-color:#f4f4f4!important}.following.bar .searchbox:focus{background-color:#e9e9e9!important}.following.bar .text .octicon{width:16px;text-align:center}.following.bar .right.menu .menu{left:auto;right:0}.following.bar .right.menu .dropdown .menu{margin-top:0}.ui.left{float:left}.ui.right{float:right}.ui .text.red{color:#d95c5c!important}.ui .text.red a{color:#d95c5c!important}.ui .text.red a:hover{color:#E67777!important}.ui .text.blue{color:#428bca!important}.ui .text.blue a{color:#15c!important}.ui .text.blue a:hover{color:#428bca!important}.ui .text.grey{color:#767676!important}.ui .text.grey a{color:#444!important}.ui .text.grey a:hover{color:#000!important}.ui .text.green{color:#6cc644!important}.ui .text.purple{color:#6e5494!important}.ui .text.left{text-align:left!important}.ui .text.right{text-align:right!important}.ui .text.small{font-size:.75em}.ui .text.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.ui .text.thin{font-weight:400}.ui .text.middle{vertical-align:middle}.ui .message{text-align:center}.ui .header>i+.content{padding-left:.75rem;vertical-align:middle}.ui .warning.header{background-color:#F9EDBE!important;border-color:#F0C36D}.ui .warning.segment{border-color:#F0C36D}.ui .info.header{background-color:#d9edf7!important;border-color:#85c5e5}.ui .info.segment{border-color:#85c5e5}.ui .normal.header{font-weight:400}.ui .avatar.image{border-radius:3px}.ui .form .fake{display:none!important}.ui.status.buttons .octicon{margin-right:4px}.overflow.menu .items{max-height:300px;overflow-y:auto}.overflow.menu .items .item{position:relative;cursor:pointer;display:block;border:none;height:auto;border-top:none;line-height:1em;color:rgba(0,0,0,.8);padding:.71428571em 1.14285714em!important;font-size:1rem;text-transform:none;font-weight:400;box-shadow:none;-webkit-touch-callout:none}.overflow.menu .items .item.active{font-weight:700}.overflow.menu .items .item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.8);z-index:13}.scrolling.menu .item.selected{font-weight:700!important}footer{margin-top:54px!important;height:40px;background-color:#fff;border-top:1px solid #d6d6d6;clear:both;width:100%;color:#888}footer .container{padding-top:10px}footer .container .fa{width:16px;text-align:center;color:#428bca}footer .container .links>*{border-left:1px solid #d6d6d6;padding-left:8px;margin-left:5px}footer .container .links>:first-child{border-left:none}.hide{display:none}.center{text-align:center}.img-1{width:2px!important;height:2px!important}.img-2{width:4px!important;height:4px!important}.img-3{width:6px!important;height:6px!important}.img-4{width:8px!important;height:8px!important}.img-5{width:10px!important;height:10px!important}.img-6{width:12px!important;height:12px!important}.img-7{width:14px!important;height:14px!important}.img-8{width:16px!important;height:16px!important}.img-9{width:18px!important;height:18px!important}.img-10{width:20px!important;height:20px!important}.img-11{width:22px!important;height:22px!important}.img-12{width:24px!important;height:24px!important}.img-13{width:26px!important;height:26px!important}.img-14{width:28px!important;height:28px!important}.img-15{width:30px!important;height:30px!important}.img-16{width:32px!important;height:32px!important}.mega-octicon.icon,.octicon.icon{font-family:octicons;opacity:1!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}@media only screen and (max-width:991px) and (min-width:768px){.ui.container{width:95%}}.markdown{overflow:hidden;font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,freesans,sans-serif;font-size:16px;line-height:1.6;word-wrap:break-word}.markdown>:first-child{margin-top:0!important}.markdown>:last-child{margin-bottom:0!important}.markdown a:not([href]){color:inherit;text-decoration:none}.markdown .absent{color:#c00}.markdown .anchor{position:absolute;top:0;left:0;display:block;padding-right:6px;padding-left:30px;margin-left:-30px}.markdown .anchor:focus{outline:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{position:relative;margin-top:1em;margin-bottom:16px;font-weight:700;line-height:1.4}.markdown h1 .octicon-link,.markdown h2 .octicon-link,.markdown h3 .octicon-link,.markdown h4 .octicon-link,.markdown h5 .octicon-link,.markdown h6 .octicon-link{display:none;color:#000;vertical-align:middle}.markdown h1:hover .anchor,.markdown h2:hover .anchor,.markdown h3:hover .anchor,.markdown h4:hover .anchor,.markdown h5:hover .anchor,.markdown h6:hover .anchor{padding-left:8px;margin-left:-30px;text-decoration:none}.markdown h1:hover .anchor .octicon-link,.markdown h2:hover .anchor .octicon-link,.markdown h3:hover .anchor .octicon-link,.markdown h4:hover .anchor .octicon-link,.markdown h5:hover .anchor .octicon-link,.markdown h6:hover .anchor .octicon-link{display:inline-block}.markdown h1 code,.markdown h1 tt,.markdown h2 code,.markdown h2 tt,.markdown h3 code,.markdown h3 tt,.markdown h4 code,.markdown h4 tt,.markdown h5 code,.markdown h5 tt,.markdown h6 code,.markdown h6 tt{font-size:inherit}.markdown h1{padding-bottom:.3em;font-size:2.25em;line-height:1.2;border-bottom:1px solid #eee}.markdown h1 .anchor{line-height:1}.markdown h2{padding-bottom:.3em;font-size:1.75em;line-height:1.225;border-bottom:1px solid #eee}.markdown h2 .anchor{line-height:1}.markdown h3{font-size:1.5em;line-height:1.43}.markdown h3 .anchor{line-height:1.2}.markdown h4{font-size:1.25em}.markdown h4 .anchor{line-height:1.2}.markdown h5{font-size:1em}.markdown h5 .anchor{line-height:1.1}.markdown h6{font-size:1em;color:#777}.markdown h6 .anchor{line-height:1.1}.markdown blockquote,.markdown dl,.markdown ol,.markdown p,.markdown pre,.markdown table,.markdown ul{margin-top:0;margin-bottom:16px}.markdown hr{height:4px;padding:0;margin:16px 0;background-color:#e7e7e7;border:0 none}.markdown ol,.markdown ul{padding-left:2em}.markdown ol.no-list,.markdown ul.no-list{padding:0;list-style-type:none}.markdown ol ol,.markdown ol ul,.markdown ul ol,.markdown ul ul{margin-top:0;margin-bottom:0}.markdown ol ol,.markdown ul ol{list-style-type:lower-roman}.markdown li>p{margin-top:16px}.markdown dl{padding:0}.markdown dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}.markdown dl dd{padding:0 16px;margin-bottom:16px}.markdown blockquote{padding:0 15px;color:#777;border-left:4px solid #ddd}.markdown blockquote>:first-child{margin-top:0}.markdown blockquote>:last-child{margin-bottom:0}.markdown table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}.markdown table th{font-weight:700}.markdown table td,.markdown table th{padding:6px 13px!important;border:1px solid #ddd}.markdown table tr{background-color:#fff;border-top:1px solid #ccc}.markdown table tr:nth-child(2n){background-color:#f8f8f8}.markdown img{max-width:100%;box-sizing:border-box}.markdown .emoji{max-width:none}.markdown span.frame{display:block;overflow:hidden}.markdown span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #ddd}.markdown span.frame span img{display:block;float:left}.markdown span.frame span span{display:block;padding:5px 0 0;clear:both;color:#333}.markdown span.align-center{display:block;overflow:hidden;clear:both}.markdown span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown span.align-center span img{margin:0 auto;text-align:center}.markdown span.align-right{display:block;overflow:hidden;clear:both}.markdown span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown span.align-right span img{margin:0;text-align:right}.markdown span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown span.float-left span{margin:13px 0 0}.markdown span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown code,.markdown tt{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(0,0,0,.04);border-radius:3px}.markdown code:after,.markdown code:before,.markdown tt:after,.markdown tt:before{letter-spacing:-.2em;content:"\00a0"}.markdown code br,.markdown tt br{display:none}.markdown del code{text-decoration:inherit}.markdown pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:0 0;border:0}.markdown .highlight{margin-bottom:16px}.markdown .highlight pre,.markdown pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f7f7f7;border-radius:3px}.markdown .highlight pre{margin-bottom:0;word-break:normal}.markdown pre{word-wrap:normal}.markdown pre code,.markdown pre tt{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown pre code:after,.markdown pre code:before,.markdown pre tt:after,.markdown pre tt:before{content:normal}.markdown kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#555;vertical-align:middle;background-color:#fcfcfc;border:solid 1px #ccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.markdown .csv-data td,.markdown .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown .csv-data tr{border-top:0}.markdown .csv-data th{font-weight:700;background:#f8f8f8;border-top:0}.pln{color:#333}@media screen{.str{color:#d14}.kwd{color:#333}.com{color:#998;font-style:italic}.typ{color:#458}.lit{color:#458}.pun{color:#333}.opn{color:#333}.clo{color:#333}.tag{color:navy}.atn{color:teal}.atv{color:#d14}.dec{color:#333}.var{color:teal}.fun{color:#900}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:700}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:700}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006;font-weight:700}.atn{color:#404}.atv{color:#060}}ol.linenums{margin-top:0;margin-bottom:0}.home{padding-bottom:80px}.home .logo{max-width:220px}.home .hero h1,.home .hero h2{font-family:'PT Sans Narrow',sans-serif,'Microsoft YaHei'}.home .hero h1{font-size:5.5em}.home .hero h2{font-size:3em}.home .hero .octicon{color:#d9453d;font-size:40px;width:50px}.home .hero.header{font-size:20px}.home p.large{font-size:16px}.home .stackable{padding-top:30px}.home a{color:#d9453d}.signup{padding-top:15px;padding-bottom:80px}.install{padding-top:45px;padding-bottom:80px}.install form label{text-align:right;width:320px!important}.install form input{width:35%!important}.install form .field{text-align:left}.install form .field .help{margin-left:335px!important}.install form .field.optional .title{margin-left:38%}.install .ui .checkbox{margin-left:40%!important}.install .ui .checkbox label{width:auto!important}.form .help{color:#999;padding-top:.6em;padding-bottom:.6em;display:inline-block}.ui.attached.header{background:#f0f0f0}.ui.attached.header .right{margin-top:-5px}.ui.attached.header .right .button{padding:8px 10px;font-weight:400}#create-page-form form{margin:auto;width:800px!important}#create-page-form form .ui.message{text-align:center}#create-page-form form .header{padding-left:280px!important}#create-page-form form .inline.field>label{text-align:right;width:250px!important;word-wrap:break-word}#create-page-form form .help{margin-left:265px!important}#create-page-form form .optional .title{margin-left:250px!important}#create-page-form form input,#create-page-form form textarea{width:50%!important}.user.activate form,.user.forgot.password form,.user.reset.password form,.user.signin form,.user.signup form{margin:auto;width:800px!important}.user.activate form .ui.message,.user.forgot.password form .ui.message,.user.reset.password form .ui.message,.user.signin form .ui.message,.user.signup form .ui.message{text-align:center}.user.activate form .header,.user.forgot.password form .header,.user.reset.password form .header,.user.signin form .header,.user.signup form .header{padding-left:280px!important}.user.activate form .inline.field>label,.user.forgot.password form .inline.field>label,.user.reset.password form .inline.field>label,.user.signin form .inline.field>label,.user.signup form .inline.field>label{text-align:right;width:250px!important;word-wrap:break-word}.user.activate form .help,.user.forgot.password form .help,.user.reset.password form .help,.user.signin form .help,.user.signup form .help{margin-left:265px!important}.user.activate form .optional .title,.user.forgot.password form .optional .title,.user.reset.password form .optional .title,.user.signin form .optional .title,.user.signup form .optional .title{margin-left:250px!important}.user.activate form input,.user.activate form textarea,.user.forgot.password form input,.user.forgot.password form textarea,.user.reset.password form input,.user.reset.password form textarea,.user.signin form input,.user.signin form textarea,.user.signup form input,.user.signup form textarea{width:50%!important}.user.activate form,.user.forgot.password form,.user.reset.password form,.user.signin form,.user.signup form{width:700px!important}.user.activate form .header,.user.forgot.password form .header,.user.reset.password form .header,.user.signin form .header,.user.signup form .header{padding-left:230px!important}.user.activate form .inline.field>label,.user.forgot.password form .inline.field>label,.user.reset.password form .inline.field>label,.user.signin form .inline.field>label,.user.signup form .inline.field>label{width:200px!important}.repository.new.fork form,.repository.new.migrate form,.repository.new.repo form{margin:auto;width:800px!important}.repository.new.fork form .ui.message,.repository.new.migrate form .ui.message,.repository.new.repo form .ui.message{text-align:center}.repository.new.fork form .header,.repository.new.migrate form .header,.repository.new.repo form .header{padding-left:280px!important}.repository.new.fork form .inline.field>label,.repository.new.migrate form .inline.field>label,.repository.new.repo form .inline.field>label{text-align:right;width:250px!important;word-wrap:break-word}.repository.new.fork form .help,.repository.new.migrate form .help,.repository.new.repo form .help{margin-left:265px!important}.repository.new.fork form .optional .title,.repository.new.migrate form .optional .title,.repository.new.repo form .optional .title{margin-left:250px!important}.repository.new.fork form input,.repository.new.fork form textarea,.repository.new.migrate form input,.repository.new.migrate form textarea,.repository.new.repo form input,.repository.new.repo form textarea{width:50%!important}.repository.new.fork form .dropdown .dropdown.icon,.repository.new.migrate form .dropdown .dropdown.icon,.repository.new.repo form .dropdown .dropdown.icon{margin-top:-7px!important}.repository.new.fork form .dropdown .text,.repository.new.migrate form .dropdown .text,.repository.new.repo form .dropdown .text{margin-right:0!important}.repository.new.fork form .dropdown .text i,.repository.new.migrate form .dropdown .text i,.repository.new.repo form .dropdown .text i{margin-right:0!important}.repository.new.repo .ui.form .selection.dropdown:not(.owner){width:50%!important}.repository.new.repo .ui.form #auto-init{margin-left:265px!important}.new.webhook form .help{margin-left:25px}.new.webhook .events.fields .column{padding-left:40px}.repository{padding-top:15px;padding-bottom:80px}.repository .head .column{padding-top:5px!important;padding-bottom:5px!important}.repository .head .ui.compact.menu{margin-left:1rem}.repository .head .ui.header{margin-top:0}.repository .head .mega-octicon{width:30px;font-size:30px}.repository .head .ui.huge.breadcrumb{font-weight:300;font-size:1.7rem}.repository .head .fork-flag{margin-left:38px;display:block;font-size:12px;line-height:10px;white-space:nowrap}.repository .metas .menu{max-height:300px;overflow-x:auto}.repository .metas .ui.list .hide{display:none!important}.repository .metas .ui.list .label.color{padding:0 8px;margin-right:5px}.repository .metas .ui.list a{padding-top:5px;padding-right:10px}.repository .metas .ui.list a .text{color:#444}.repository .metas .ui.list a .text:hover{color:#000}.repository .filter.menu .label.color{margin-left:15px;padding:0 8px}.repository .filter.menu .octicon{float:left;margin-left:-5px;margin-right:-7px}.repository .filter.menu .menu{max-height:300px;overflow-x:auto;right:0!important;left:auto!important}.repository .filter.menu .dropdown.item{margin:1px;padding-right:0}.repository.options #interval{width:100px!important;min-width:100px}.repository.options .danger .item{padding:20px 15px}.repository.options .danger .ui.divider{margin:0}.repository.new.issue .comment.form .comment .avatar{width:3em}.repository.new.issue .comment.form .content{margin-left:4em}.repository.new.issue .comment.form .content .markdown{font-size:14px}.repository.new.issue .comment.form .metas{min-width:220px}.repository.new.issue .comment.form .metas .filter.menu{max-height:300px;overflow-x:auto}.repository.view.issue .title{padding-bottom:0!important}.repository.view.issue .title h1{font-weight:300;font-size:3rem;margin-bottom:5px}.repository.view.issue .title h1 .ui.input{font-size:.5em;vertical-align:top;width:50%;min-width:600px}.repository.view.issue .title h1 .ui.input input{font-size:1.5em;padding:6px 10px}.repository.view.issue .title .index{font-weight:300;color:#aaa;letter-spacing:-1px}.repository.view.issue .title .label{margin-right:10px}.repository.view.issue .title .edit-zone{margin-top:10px}.repository.view.issue .pull-desc code{color:#0166E6}.repository.view.issue .pull.tabular.menu{margin-bottom:10px}.repository.view.issue .pull.tabular.menu .octicon{margin-right:5px}.repository.view.issue .pull.tab.segment{border:none;padding:0;padding-top:10px;box-shadow:none;background-color:inherit}.repository.view.issue .pull .merge.box .avatar{margin-left:10px;margin-top:10px}.repository.view.issue .comment-list:before{display:block;content:"";position:absolute;margin-top:12px;margin-bottom:14px;top:0;bottom:0;left:96px;width:2px;background-color:#f3f3f3;z-index:-1}.repository.view.issue .comment-list .comment .avatar{width:3em}.repository.view.issue .comment-list .comment .tag{color:#767676;margin-top:3px;padding:2px 5px;font-size:12px;border:1px solid rgba(0,0,0,.1);border-radius:3px}.repository.view.issue .comment-list .comment .actions .item{float:left}.repository.view.issue .comment-list .comment .actions a.item{margin-top:6px;margin-left:10px}.repository.view.issue .comment-list .comment .content{margin-left:4em}.repository.view.issue .comment-list .comment .content .header{font-weight:400;padding:auto 15px;color:#767676;background-color:#f7f7f7;border-bottom:1px solid #eee;border-top-left-radius:3px;border-top-right-radius:3px}.repository.view.issue .comment-list .comment .content .header .text{max-width:78%;padding-top:10px;padding-bottom:10px}.repository.view.issue .comment-list .comment .content .markdown{font-size:14px}.repository.view.issue .comment-list .comment .content .no-content{color:#767676;font-style:italic}.repository.view.issue .comment-list .comment .content>.bottom.segment{background:#f3f4f5}.repository.view.issue .comment-list .comment .content>.bottom.segment .ui.image{max-height:150px}.repository.view.issue .comment-list .comment .ui.form .field:first-child{clear:none}.repository.view.issue .comment-list .comment .ui.form .tab.segment{border:none;padding:0;padding-top:10px}.repository.view.issue .comment-list .comment .ui.form textarea{height:200px}.repository.view.issue .comment-list .comment .edit.buttons{margin-top:10px}.repository.view.issue .comment-list .event{position:relative;margin:15px 0 15px 79px;padding-left:25px}.repository.view.issue .comment-list .event .octicon{width:30px;float:left;margin-left:-36px;text-align:center}.repository.view.issue .comment-list .event .octicon.octicon-circle-slash{margin-top:5px;font-size:20px;color:#bd2c00}.repository.view.issue .comment-list .event .octicon.octicon-primitive-dot{font-size:30px;color:#6cc644}.repository.view.issue .comment-list .event .octicon.octicon-bookmark{margin-top:3px;font-size:25px}.repository.view.issue .comment-list .event .detail{font-size:.9rem;margin-top:5px;margin-left:35px}.repository.view.issue .comment-list .event .detail .octicon.octicon-git-commit{margin-top:2px}.repository.view.issue .ui.segment.metas{margin-top:-3px}.repository .comment.form .ui.comments{margin-top:-12px;max-width:100%}.repository .comment.form .content .field:first-child{clear:none}.repository .comment.form .content .tab.segment{border:none;padding:0;padding-top:10px}.repository .comment.form .content textarea{height:200px}.repository .label.list{list-style:none;padding-top:15px}.repository .label.list .item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .label.list .item a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .label.list .item a:hover{color:#000}.repository .label.list .item a.open-issues{margin-right:30px}.repository .milestone.list{list-style:none;padding-top:15px}.repository .milestone.list>.item{padding-top:10px;padding-bottom:10px;border-bottom:1px dashed #AAA}.repository .milestone.list>.item>a{padding-top:5px;padding-right:10px;color:#000}.repository .milestone.list>.item>a:hover{color:#4078c0}.repository .milestone.list>.item .ui.progress{width:40%;padding:0;border:0;margin:0}.repository .milestone.list>.item .ui.progress .bar{height:20px}.repository .milestone.list>.item .meta{color:#999;padding-top:5px}.repository .milestone.list>.item .meta .issue-stats .octicon{padding-left:5px}.repository .milestone.list>.item .meta .overdue{color:red}.repository .milestone.list>.item .operate{margin-top:-15px}.repository .milestone.list>.item .operate>a{font-size:15px;padding-top:5px;padding-right:10px;color:#666}.repository .milestone.list>.item .operate>a:hover{color:#000}.repository .milestone.list>.item .content{padding-top:10px}.repository.new.milestone textarea{height:200px}.repository.new.milestone #deadline{width:150px}.repository.compare.pull .choose.branch .octicon{padding-right:10px}.repository .filter.dropdown .menu{margin-top:1px!important}.repository.commits .header .ui.right .search input{font-weight:400;padding:5px 10px}.repository.commits .header .ui.right .button{float:right;margin-left:5px;margin-top:1px}.repository .commits.table{font-size:13px}.repository .commits.table td:first-child,.repository .commits.table th:first-child{padding-left:15px}.repository .commits.table td{line-height:15px}.repository .commits.table .author{min-width:180px}.repository .commits.table .message span{max-width:500px}.repository .commits.table .date{width:120px}.repository .sha.label{font-family:Consolas,Menlo,Monaco,"Lucida Console",monospace;font-size:14px;padding:6px 10px 4px 10px;font-weight:400}.repository .diff-detail-box{margin:15px 0;line-height:30px}.repository .diff-detail-box ol{clear:both;padding-left:0;margin-top:5px;margin-bottom:28px}.repository .diff-detail-box ol li{list-style:none;padding-bottom:4px;margin-bottom:4px;border-bottom:1px dashed #DDD;padding-left:6px}.repository .diff-detail-box span.status{display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:middle}.repository .diff-detail-box span.status.modify{background-color:#f0db88}.repository .diff-detail-box span.status.add{background-color:#b4e2b4}.repository .diff-detail-box span.status.del{background-color:#e9aeae}.repository .diff-detail-box span.status.rename{background-color:#dad8ff}.repository .diff-box .count{margin-right:12px}.repository .diff-box .count .bar{background-color:#e75316;height:12px;width:40px;display:inline-block;margin:2px 4px 0 4px;vertical-align:text-top}.repository .diff-box .count .bar .add{background-color:#77c64a;height:12px}.repository .diff-box .file{color:#888}.repository .diff-file-box .header{border-bottom:1px solid #d4d4d5!important}.repository .diff-file-box .file-body.file-code .lines-num{text-align:right;color:#999;background:#fafafa;width:1%}.repository .diff-file-box .file-body.file-code .lines-num-old{border-right:1px solid #DDD}.repository .diff-file-box .code-diff{font-size:13px}.repository .diff-file-box .code-diff td{padding:0;border-top:none}.repository .diff-file-box .code-diff pre{margin:0}.repository .diff-file-box .code-diff .lines-num{border-right:1px solid #d4d4d5;padding:0 5px}.repository .diff-file-box .code-diff tbody tr.tag-code pre,.repository .diff-file-box .code-diff tbody tr.tag-code td{background-color:#E0E0E0!important;border-color:#ADADAD!important}.repository .diff-file-box .code-diff tbody tr.del-code pre,.repository .diff-file-box .code-diff tbody tr.del-code td{background-color:#ffe2dd!important;border-color:#e9aeae!important}.repository .diff-file-box .code-diff tbody tr.add-code pre,.repository .diff-file-box .code-diff tbody tr.add-code td{background-color:#d1ffd6!important;border-color:#b4e2b4!important}.repository .diff-file-box .code-diff tbody tr:hover td{background-color:#FFF8D2!important;border-color:#F0DB88!important}.repository .diff-file-box .code-diff tbody tr:hover pre{background-color:transparent!important}.repository .code-view{overflow:auto;overflow-x:auto;overflow-y:hidden}.issue.list{list-style:none;padding-top:15px}.issue.list>.item{padding-top:15px;padding-bottom:10px;border-bottom:1px dashed #AAA}.issue.list>.item .title{color:#444;font-size:15px;font-weight:700;margin:0 6px}.issue.list>.item .title:hover{color:#000}.issue.list>.item .comment{padding-right:10px;color:#666}.issue.list>.item .desc{padding-top:5px;color:#999}.issue.list>.item .desc a.milestone{padding-left:5px;color:#999!important}.issue.list>.item .desc a.milestone:hover{color:#000!important}.issue.list>.item .desc .assignee{margin-top:-5px;margin-right:5px}.page.buttons{padding-top:15px}.ui.comments .dropzone{width:100%;margin-bottom:10px;border:2px dashed #0087F7;box-shadow:none!important}.ui.comments .dropzone .dz-error-message{top:140px}.settings .content{margin-top:2px}.settings .content .header,.settings .content .segment{box-shadow:0 1px 2px 0 rgba(34,36,38,.15)}.settings .key.list .item:not(:first-child){border-top:1px solid #eaeaea}.settings .key.list .ssh-key-state-indicator{float:left;color:gray;padding-left:10px;padding-top:10px}.settings .key.list .ssh-key-state-indicator.active{color:#6cc644}.settings .key.list .meta{padding-top:5px}.settings .key.list .print{color:#767676}.settings .key.list .activity{color:#666}.settings .hook.list>.item:not(:first-child){border-top:1px solid #eaeaea}.settings .hook.list .item{padding:10px 20px}.settings .hook.list .item .fa,.settings .hook.list .item .octicon{width:20px;text-align:center}.settings .hook.history.list .item{padding-left:13px}.settings .hook.history.list .item .meta .ui.right{margin-top:5px}.settings .hook.history.list .item .meta .ui.right .time{font-size:12px}.settings .hook.history.list .item .info{margin-top:10px}.settings .hook.history.list .item .info .tabular.menu .item{font-weight:500}.settings .hook.history.list .item .info .tab.segment{border:none;padding:0;padding-top:10px;box-shadow:none}.settings .hook.history.list .item .info .tab.segment>*{color:#666}.settings .hook.history.list .item .info .tab.segment pre{word-wrap:break-word}.settings .hook.history.list .item .info .tab.segment pre .hljs{padding:0;background-color:inherit}.ui.vertical.menu .header.item{font-size:1.1em;background:#f0f0f0}.edit-label.modal .form .column,.new-label.segment .form .column{padding-right:0}.edit-label.modal .form .buttons,.new-label.segment .form .buttons{margin-left:auto;padding-top:15px}.edit-label.modal .form .color.picker.column,.new-label.segment .form .color.picker.column{width:auto}.edit-label.modal .form .color.picker.column .color-picker,.new-label.segment .form .color.picker.column .color-picker{height:35px;width:auto;padding-left:30px}.edit-label.modal .form .minicolors-swatch.minicolors-sprite,.new-label.segment .form .minicolors-swatch.minicolors-sprite{top:10px;left:10px;width:15px;height:15px}.edit-label.modal .form .precolors,.new-label.segment .form .precolors{padding-left:0;padding-right:0;margin:3px 10px auto 10px;width:120px}.edit-label.modal .form .precolors .color,.new-label.segment .form .precolors .color{float:left;width:15px;height:15px}#delete-repo-modal .ui.message,#transfer-repo-modal .ui.message{width:100%!important}.organization{padding-top:15px;padding-bottom:80px}.organization .head .ui.header .text{vertical-align:middle;font-size:1.6rem;margin-left:15px}.organization .head .ui.header .ui.right{margin-top:5px}.organization.new.org form{margin:auto;width:800px!important}.organization.new.org form .ui.message{text-align:center}.organization.new.org form .header{padding-left:280px!important}.organization.new.org form .inline.field>label{text-align:right;width:250px!important;word-wrap:break-word}.organization.new.org form .help{margin-left:265px!important}.organization.new.org form .optional .title{margin-left:250px!important}.organization.new.org form input,.organization.new.org form textarea{width:50%!important}.organization.options input{width:50%!important;min-width:300px}.user{padding-top:15px;padding-bottom:80px}.user.settings .list .item.ui.grid{margin-top:15px}.user.settings .email.list .item:not(:first-child){border-top:1px solid #eaeaea;height:50px}.user.settings .email.list .item:not(:first-child) .button{margin-top:-10px}.dashboard{padding-top:15px;padding-bottom:80px}.dashboard.issues .context.user.menu{z-index:101;min-width:200px}.dashboard.issues .context.user.menu .ui.header{font-size:1rem;text-transform:none}.dashboard.issues .filter.menu .item{text-align:left}.dashboard.issues .filter.menu .item .text{height:16px;vertical-align:middle}.dashboard.issues .filter.menu .item .floating.label{top:7px;left:90%;width:15%}.dashboard.issues .filter.menu .item.active{background-color:#4183c4;color:#FFF}.dashboard.issues .filter.menu .item .text{width:85%}.dashboard.issues .ui.right .head.menu{margin-top:-5px}.dashboard.issues .ui.right .head.menu .item.active{color:#d9453d}.dashboard.issues .head.menu .octicon{margin-right:5px}.admin{padding-top:15px;padding-bottom:80px}.admin .table.segment{padding:0;font-size:13px}.admin .table.segment th{padding-top:5px;padding-bottom:5px}.admin .table.segment td:first-child,.admin .table.segment th:first-child{padding-left:15px}.admin .ui.header,.admin .ui.segment{box-shadow:0 1px 2px 0 rgba(34,36,38,.15)}.admin.user .email{max-width:200px}.explore{padding-top:15px;padding-bottom:80px}.explore.repositories .ui.repository.list .item{border-top:1px solid #eee;padding-top:25px;padding-bottom:25px}.explore.repositories .ui.repository.list .item .ui.header{font-size:1.5rem;padding-bottom:10px}.explore.repositories .ui.repository.list .item .ui.header .metas{color:#888;font-size:13px;font-weight:400}.explore.repositories .ui.repository.list .item .ui.header .metas span:not(:last-child){margin-right:5px}.explore.repositories .ui.repository.list .item .time{font-size:12px;color:grey} \ No newline at end of file diff --git a/public/img/gogs-large-resize.png b/public/img/gogs-large-resize.png new file mode 100644 index 000000000..5e39d5056 Binary files /dev/null and b/public/img/gogs-large-resize.png differ diff --git a/public/js/gogs.js b/public/js/gogs.js index 39826f909..d835fa052 100644 --- a/public/js/gogs.js +++ b/public/js/gogs.js @@ -147,11 +147,20 @@ function initInstall() { // Database type change detection. $("#db_type").change(function () { - var db_type = $('#db_type').val(); + var sqlite_default = 'data/gogs.db'; + var tidb_default = 'data/gogs_tidb'; + + var db_type = $(this).val(); if (db_type === "SQLite3" || db_type === "TiDB") { $('#sql_settings').hide(); $('#pgsql_settings').hide(); $('#sqlite_settings').show(); + + if (db_type === "SQLite3" && $('#db_path').val() == tidb_default) { + $('#db_path').val(sqlite_default); + } else if (db_type === "TiDB" && $('#db_path').val() == sqlite_default) { + $('#db_path').val(tidb_default); + } return; } @@ -178,6 +187,16 @@ function initInstall() { $('#disable-gravatar').checkbox('check'); } }); + $('#disable-registration input').change(function () { + if ($(this).is(':checked')) { + $('#enable-captcha').checkbox('uncheck'); + } + }); + $('#enable-captcha input').change(function () { + if ($(this).is(':checked')) { + $('#disable-registration').checkbox('uncheck'); + } + }); } function initRepository() { @@ -219,6 +238,7 @@ function initRepository() { $('.edit-label-button').click(function () { $('#label-modal-id').val($(this).data('id')); $('.edit-label .new-label-input').val($(this).data('title')); + $('.edit-label .color-picker').val($(this).data('color')); $('.minicolors-swatch-color').css("background-color", $(this).data('color')); $('.edit-label.modal').modal({ onApprove: function () { @@ -376,6 +396,22 @@ function initRepository() { }); } + // Quick start + if ($('.repository.quickstart').length > 0) { + $('#repo-clone-ssh').click(function () { + $('.clone-url').text($(this).data('link')); + $('#repo-clone-url').val($(this).data('link')); + $(this).addClass('blue'); + $('#repo-clone-https').removeClass('blue'); + }); + $('#repo-clone-https').click(function () { + $('.clone-url').text($(this).data('link')); + $('#repo-clone-url').val($(this).data('link')); + $(this).addClass('blue'); + $('#repo-clone-ssh').removeClass('blue'); + }); + } + // Pull request if ($('.repository.compare.pull').length > 0) { var $branch_dropdown = $('.choose.branch .dropdown'); @@ -442,6 +478,65 @@ function initWebhook() { }); } + +function initAdmin() { + if ($('.admin').length == 0) { + return; + } + + // New user + if ($('.admin.new.user').length > 0 || + $('.admin.edit.user').length > 0) { + $('#login_type').change(function () { + if ($(this).val().substring(0, 1) == '0') { + $('#login_name').removeAttr('required'); + $('.non-local').hide(); + $('.local').show(); + $('#user_name').focus(); + + if ($(this).data('password') == "required") { + $('#password').attr('required', 'required'); + } + + } else { + $('#login_name').attr('required', 'required'); + $('.non-local').show(); + $('.local').hide(); + $('#login_name').focus(); + + $('#password').removeAttr('required'); + } + }); + } + + + // New authentication + if ($('.admin.new.authentication').length > 0) { + $('#auth_type').change(function () { + $('.ldap').hide(); + $('.dldap').hide(); + $('.smtp').hide(); + $('.pam').hide(); + + var auth_type = $(this).val(); + switch (auth_type) { + case '2': // LDAP + $('.ldap').show(); + break; + case '3': // SMTP + $('.smtp').show(); + break; + case '4': // PAM + $('.pam').show(); + break; + case '5': // LDAP + $('.dldap').show(); + break; + } + }); + } +} + $(document).ready(function () { csrf = $('meta[name=_csrf]').attr("content"); suburl = $('meta[name=_suburl]').attr("content"); @@ -529,6 +624,24 @@ $(document).ready(function () { emojify.run($(this)[0]); }); + // Clipboard JS + var clipboard = new Clipboard('.clipboard'); + clipboard.on('success', function (e) { + e.clearSelection(); + + $('#' + e.trigger.getAttribute('id')).popup('destroy'); + e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-success')) + $('#' + e.trigger.getAttribute('id')).popup('show'); + e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original')) + }); + + clipboard.on('error', function (e) { + $('#' + e.trigger.getAttribute('id')).popup('destroy'); + e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-error')) + $('#' + e.trigger.getAttribute('id')).popup('show'); + e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original')) + }); + // Helpers. $('.delete-button').click(function () { var $this = $(this); @@ -563,4 +676,5 @@ $(document).ready(function () { initOrganization(); initUser(); initWebhook(); + initAdmin(); }); \ No newline at end of file diff --git a/public/js/libs/clipboard-1.3.1.min.js b/public/js/libs/clipboard-1.3.1.min.js new file mode 100755 index 000000000..ed23e3e5a --- /dev/null +++ b/public/js/libs/clipboard-1.3.1.min.js @@ -0,0 +1 @@ +!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.Clipboard=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gd;d++)c[d].fn.apply(c[d].ctx,b);return this},off:function(a,b){var c=this.e||(this.e={}),d=c[a],e=[];if(d&&b)for(var f=0,g=d.length;g>f;f++)d[f].fn!==b&&e.push(d[f]);return e.length?c[a]=e:delete c[a],this}},b.exports=d},{}],6:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var e=function(){function a(a,b){for(var c=0;c* { border-left: 1px solid #d6d6d6; padding-left: 8px; diff --git a/public/less/_form.less b/public/less/_form.less index 905500521..f9ccfa971 100644 --- a/public/less/_form.less +++ b/public/less/_form.less @@ -46,6 +46,24 @@ } } +.user.activate, +.user.forgot.password, +.user.reset.password, +.user.signin, +.user.signup { + @input-padding: 200px!important; + #create-page-form; + form { + width: 700px!important; + .header { + padding-left: @input-padding+30px; + } + .inline.field > label { + width: @input-padding; + } + } +} + .repository { &.new.repo, &.new.migrate, diff --git a/public/less/_home.less b/public/less/_home.less index 14517fa9e..2a105ceb1 100644 --- a/public/less/_home.less +++ b/public/less/_home.less @@ -1,29 +1,29 @@ .home { padding-bottom: @footer-margin * 2; .logo { - max-width: 250px; + max-width: 220px; } .hero { h1, h2 { - font-family: 'PT Sans Narrow', sans-serif; + font-family: 'PT Sans Narrow', sans-serif, 'Microsoft YaHei'; } h1 { - font-size: 7em; + font-size: 5.5em; } h2 { - font-size: 4em; + font-size: 3em; } .octicon { color: #d9453d; - font-size: 60px; - margin-right: 10px; + font-size: 40px; + width: 50px; } &.header { - font-size: 24px; + font-size: 20px; } } p.large { - font-size: 20px + font-size: 16px } .stackable { padding-top: 30px; @@ -31,4 +31,9 @@ a { color: #d9453d; } +} + +.signup { + padding-top: 15px; + padding-bottom: @footer-margin * 2; } \ No newline at end of file diff --git a/public/less/_repository.less b/public/less/_repository.less index f653fec9f..7fdec66f9 100644 --- a/public/less/_repository.less +++ b/public/less/_repository.less @@ -591,7 +591,30 @@ overflow-x: auto; overflow-y: hidden; } + + &.quickstart { + .guide { + .item { + padding: 1em; + small { + font-weight: normal; + } + } + .clone.button:first-child { + border-radius: .28571429rem 0 0 .28571429rem; + } + .ui.action.small.input { + width: 100%; + } + #repo-clone-url { + border-radius: 0; + padding: 5px 10px; + font-size: 1.2em; + } + } + } } +// End of .repository .issue.list { list-style: none; diff --git a/public/less/_user.less b/public/less/_user.less index b07e30fe3..c403e3580 100644 --- a/public/less/_user.less +++ b/public/less/_user.less @@ -3,10 +3,19 @@ padding-bottom: @footer-margin * 2; &.settings { - .key.list { + .list { .item.ui.grid { margin-top: 15px; } } + .email.list { + .item:not(:first-child) { + border-top: 1px solid #eaeaea; + height: 50px; + .button { + margin-top: -10px; + } + } + } } } \ No newline at end of file diff --git a/public/ng/css/gogs.css b/public/ng/css/gogs.css index 73273d4f7..caecfe257 100644 --- a/public/ng/css/gogs.css +++ b/public/ng/css/gogs.css @@ -1947,6 +1947,94 @@ The register and sign-in page style #release #release-new-form { padding-top: 15px; } +#stars h4, +#watchers h4, +#forks h4 { + font-size: 18px; + padding-bottom: 20px; + text-transform: capitalize; + border-bottom: 1px solid #DDD; +} +#stars h3, +#watchers h3, +#forks h3 { + margin: -4px 0 0 0; + padding: 0; +} +#stars .avatar, +#watchers .avatar, +#forks .avatar { + width: 75px; + height: 75px; + float: left; + display: block; + margin-right: 10px; +} +#stars .avatar-small, +#watchers .avatar-small, +#forks .avatar-small { + width: 24px; + height: 24px; + float: left; + display: block; + margin-right: 10px; +} +#stars ol, +#watchers ol, +#forks ol { + margin-top: 10px; + list-style: none; + width: 100%; + overflow: hidden; +} +#stars li, +#watchers li, +#forks li { + width: 32.25%; + margin: 10px 10px 10px 0; + border-bottom: 1px solid #DDD; + float: left; + padding-bottom: 10px; +} +#stars .pagination, +#watchers .pagination, +#forks .pagination { + width: 100%; + text-align: center; + text-transform: capitalize; +} +#stars .pagination a, +#watchers .pagination a, +#forks .pagination a { + border-radius: 3px; + border: 1px solid #399ADE; + padding: 8px; + margin: 0; +} +#stars .pagination .active, +#watchers .pagination .active, +#forks .pagination .active { + border-radius: 3px; + border: 1px solid #399ADE; + background: #399ADE; + cursor: default; + padding: 8px; + margin: 0; + color: #FFFFFF; +} +#stars .pagination .disabled, +#watchers .pagination .disabled, +#forks .pagination .disabled { + border-radius: 3px; + border: 1px solid #DDD; + color: #D3D3D3; + cursor: default; + padding: 8px; + margin: 0; +} +#forks p { + padding: 5px 0; +} #admin-wrapper, #setting-wrapper { padding-bottom: 100px; diff --git a/public/ng/js/gogs.js b/public/ng/js/gogs.js index e4a0afe9f..f80481629 100644 --- a/public/ng/js/gogs.js +++ b/public/ng/js/gogs.js @@ -57,10 +57,10 @@ var Gogs = {}; }); $.fn.extend({ toggleHide: function () { - $(this).addClass("hidden"); + $(this).each(function(n, v) { $(v).addClass("hidden"); }); }, toggleShow: function () { - $(this).removeClass("hidden"); + $(this).each(function(n, v) { $(v).removeClass("hidden"); }); }, toggleAjax: function (successCallback, errorCallback) { var url = $(this).data("ajax"); @@ -775,24 +775,20 @@ function initAdmin() { $form.attr('action', $form.data('delete-url')); }); - // Create authorization. + // Create authorization. Keep list in sync with models/login.go. + var all_auths = ['none', 'plain', 'ldap', 'dldap', 'smtp', 'pam']; $('#auth-type').on("change", function () { var v = $(this).val(); - if (v == 2) { - $('.ldap').toggleShow(); - $('.smtp').toggleHide(); - $('.pam').toggleHide(); - } - if (v == 3) { - $('.smtp').toggleShow(); - $('.ldap').toggleHide(); - $('.pam').toggleHide(); - } - if (v == 4) { - $('.pam').toggleShow(); - $('.smtp').toggleHide(); - $('.ldap').toggleHide(); - } + if (v >= all_auths.length) return; + + // Hide all through their class names. + $.each(all_auths, function(i, type) { + $('.' + type).toggleHide(); + }); + + // Show the selected one. + var selected = all_auths[v]; + $('.' + selected).toggleShow(); }); // Delete authorization. diff --git a/public/ng/less/gogs/repository.less b/public/ng/less/gogs/repository.less index 6b0a927e8..c403b51fe 100644 --- a/public/ng/less/gogs/repository.less +++ b/public/ng/less/gogs/repository.less @@ -795,3 +795,84 @@ padding-top: 15px; } } + +#stars, #watchers, #forks { + h4 { + font-size: 18px; + padding-bottom: 20px; + text-transform: capitalize; + border-bottom: 1px solid #DDD; + } + + h3 { + margin: -4px 0 0 0; + padding: 0; + } + + .avatar { + width: 75px; + height: 75px; + float: left; + display: block; + margin-right: 10px; + } + + .avatar-small { + width: 24px; + height: 24px; + float: left; + display: block; + margin-right: 10px; + } + + ol { + margin-top: 10px; + list-style: none; + width: 100%; + overflow: hidden; + } + + li { + width: 32.25%; + margin: 10px 10px 10px 0; + border-bottom: 1px solid #DDD; + float: left; + padding-bottom: 10px; + } + + .pagination { + width: 100%; + text-align: center; + text-transform: capitalize; + + a { + border-radius: 3px; + border: 1px solid #399ADE; + padding: 8px; + margin: 0; + } + + .active { + border-radius: 3px; + border: 1px solid #399ADE; + background: #399ADE; + cursor: default; + padding: 8px; + margin: 0; + color: #FFFFFF; + } + + .disabled { + border-radius: 3px; + border: 1px solid #DDD; + color: #D3D3D3; + cursor: default; + padding: 8px; + margin: 0; + } + } +} + +#forks p { + padding: 5px 0; +} diff --git a/routers/admin/admin.go b/routers/admin/admin.go index 46106aa42..54e4559ff 100644 --- a/routers/admin/admin.go +++ b/routers/admin/admin.go @@ -11,7 +11,7 @@ import ( "time" "github.com/Unknwon/com" - "github.com/Unknwon/macaron" + "gopkg.in/macaron.v1" "github.com/gogits/gogs/models" "github.com/gogits/gogs/models/cron" @@ -114,8 +114,7 @@ func updateSystemStatus() { type AdminOperation int const ( - CLEAN_UNBIND_OAUTH AdminOperation = iota + 1 - CLEAN_INACTIVATE_USER + CLEAN_INACTIVATE_USER AdminOperation = iota + 1 CLEAN_REPO_ARCHIVES GIT_GC_REPOS SYNC_SSH_AUTHORIZED_KEY @@ -134,9 +133,6 @@ func Dashboard(ctx *middleware.Context) { var success string switch AdminOperation(op) { - case CLEAN_UNBIND_OAUTH: - success = ctx.Tr("admin.dashboard.clean_unbind_oauth_success") - err = models.CleanUnbindOauth() case CLEAN_INACTIVATE_USER: success = ctx.Tr("admin.dashboard.delete_inactivate_accounts_success") err = models.DeleteInactivateUsers() @@ -171,7 +167,7 @@ func Dashboard(ctx *middleware.Context) { } func Config(ctx *middleware.Context) { - ctx.Data["Title"] = ctx.Tr("admin.users") + ctx.Data["Title"] = ctx.Tr("admin.config") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminConfig"] = true @@ -197,12 +193,6 @@ func Config(ctx *middleware.Context) { ctx.Data["Mailer"] = setting.MailService } - ctx.Data["OauthEnabled"] = false - if setting.OauthService != nil { - ctx.Data["OauthEnabled"] = true - ctx.Data["Oauther"] = setting.OauthService - } - ctx.Data["CacheAdapter"] = setting.CacheAdapter ctx.Data["CacheInternal"] = setting.CacheInternal ctx.Data["CacheConn"] = setting.CacheConn diff --git a/routers/admin/auths.go b/routers/admin/auths.go index 3e552082e..e264f7a8b 100644 --- a/routers/admin/auths.go +++ b/routers/admin/auths.go @@ -29,28 +29,82 @@ func Authentications(ctx *middleware.Context) { ctx.Data["PageIsAdminAuthentications"] = true var err error - ctx.Data["Sources"], err = models.GetAuths() + ctx.Data["Sources"], err = models.LoginSources() if err != nil { - ctx.Handle(500, "GetAuths", err) + ctx.Handle(500, "LoginSources", err) return } + + ctx.Data["Total"] = models.CountLoginSources() ctx.HTML(200, AUTHS) } +type AuthSource struct { + Name string + Type models.LoginType +} + +var authSources = []AuthSource{ + {models.LoginNames[models.LDAP], models.LDAP}, + {models.LoginNames[models.DLDAP], models.DLDAP}, + {models.LoginNames[models.SMTP], models.SMTP}, + {models.LoginNames[models.PAM], models.PAM}, +} + func NewAuthSource(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("admin.auths.new") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminAuthentications"] = true - ctx.Data["LoginTypes"] = models.LoginTypes + + ctx.Data["type"] = models.LDAP + ctx.Data["CurTypeName"] = models.LoginNames[models.LDAP] + ctx.Data["smtp_auth"] = "PLAIN" + ctx.Data["is_active"] = true + ctx.Data["AuthSources"] = authSources ctx.Data["SMTPAuths"] = models.SMTPAuths ctx.HTML(200, AUTH_NEW) } +func parseLDAPConfig(form auth.AuthenticationForm) *models.LDAPConfig { + return &models.LDAPConfig{ + Source: &ldap.Source{ + Name: form.Name, + Host: form.Host, + Port: form.Port, + UseSSL: form.TLS, + SkipVerify: form.SkipVerify, + BindDN: form.BindDN, + UserDN: form.UserDN, + BindPassword: form.BindPassword, + UserBase: form.UserBase, + AttributeName: form.AttributeName, + AttributeSurname: form.AttributeSurname, + AttributeMail: form.AttributeMail, + Filter: form.Filter, + AdminFilter: form.AdminFilter, + Enabled: true, + }, + } +} + +func parseSMTPConfig(form auth.AuthenticationForm) *models.SMTPConfig { + return &models.SMTPConfig{ + Auth: form.SMTPAuth, + Host: form.SMTPHost, + Port: form.SMTPPort, + AllowedDomains: form.AllowedDomains, + TLS: form.TLS, + SkipVerify: form.SkipVerify, + } +} + func NewAuthSourcePost(ctx *middleware.Context, form auth.AuthenticationForm) { ctx.Data["Title"] = ctx.Tr("admin.auths.new") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminAuthentications"] = true - ctx.Data["LoginTypes"] = models.LoginTypes + + ctx.Data["CurTypeName"] = models.LoginNames[models.LoginType(form.Type)] + ctx.Data["AuthSources"] = authSources ctx.Data["SMTPAuths"] = models.SMTPAuths if ctx.HasError() { @@ -58,36 +112,14 @@ func NewAuthSourcePost(ctx *middleware.Context, form auth.AuthenticationForm) { return } - var u core.Conversion + var config core.Conversion switch models.LoginType(form.Type) { - case models.LDAP: - u = &models.LDAPConfig{ - Ldapsource: ldap.Ldapsource{ - Name: form.Name, - Host: form.Host, - Port: form.Port, - UseSSL: form.UseSSL, - BindDN: form.BindDN, - BindPassword: form.BindPassword, - UserBase: form.UserBase, - Filter: form.Filter, - AdminFilter: form.AdminFilter, - AttributeName: form.AttributeName, - AttributeSurname: form.AttributeSurname, - AttributeMail: form.AttributeMail, - Enabled: true, - }, - } + case models.LDAP, models.DLDAP: + config = parseLDAPConfig(form) case models.SMTP: - u = &models.SMTPConfig{ - Auth: form.SMTPAuth, - Host: form.SMTPHost, - Port: form.SMTPPort, - TLS: form.TLS, - SkipVerify: form.SkipVerify, - } + config = parseSMTPConfig(form) case models.PAM: - u = &models.PAMConfig{ + config = &models.PAMConfig{ ServiceName: form.PAMServiceName, } default: @@ -95,20 +127,19 @@ func NewAuthSourcePost(ctx *middleware.Context, form auth.AuthenticationForm) { return } - var source = &models.LoginSource{ - Type: models.LoginType(form.Type), - Name: form.Name, - IsActived: true, - AllowAutoRegister: form.AllowAutoRegister, - Cfg: u, - } - - if err := models.CreateSource(source); err != nil { + if err := models.CreateSource(&models.LoginSource{ + Type: models.LoginType(form.Type), + Name: form.Name, + IsActived: form.IsActive, + Cfg: config, + }); err != nil { ctx.Handle(500, "CreateSource", err) return } log.Trace("Authentication created by admin(%s): %s", ctx.User.Name, form.Name) + + ctx.Flash.Success(ctx.Tr("admin.auths.new_success", form.Name)) ctx.Redirect(setting.AppSubUrl + "/admin/auths") } @@ -116,20 +147,15 @@ func EditAuthSource(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("admin.auths.edit") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminAuthentications"] = true - ctx.Data["LoginTypes"] = models.LoginTypes + ctx.Data["SMTPAuths"] = models.SMTPAuths - id := com.StrTo(ctx.Params(":authid")).MustInt64() - if id == 0 { - ctx.Handle(404, "EditAuthSource", nil) - return - } - u, err := models.GetLoginSourceByID(id) + source, err := models.GetLoginSourceByID(ctx.ParamsInt64(":authid")) if err != nil { - ctx.Handle(500, "GetLoginSourceById", err) + ctx.Handle(500, "GetLoginSourceByID", err) return } - ctx.Data["Source"] = u + ctx.Data["Source"] = source ctx.HTML(200, AUTH_EDIT) } @@ -137,10 +163,16 @@ func EditAuthSourcePost(ctx *middleware.Context, form auth.AuthenticationForm) { ctx.Data["Title"] = ctx.Tr("admin.auths.edit") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminAuthentications"] = true - ctx.Data["PageIsAuths"] = true - ctx.Data["LoginTypes"] = models.LoginTypes + ctx.Data["SMTPAuths"] = models.SMTPAuths + source, err := models.GetLoginSourceByID(ctx.ParamsInt64(":authid")) + if err != nil { + ctx.Handle(500, "GetLoginSourceByID", err) + return + } + ctx.Data["Source"] = source + if ctx.HasError() { ctx.HTML(200, AUTH_EDIT) return @@ -148,32 +180,10 @@ func EditAuthSourcePost(ctx *middleware.Context, form auth.AuthenticationForm) { var config core.Conversion switch models.LoginType(form.Type) { - case models.LDAP: - config = &models.LDAPConfig{ - Ldapsource: ldap.Ldapsource{ - Name: form.Name, - Host: form.Host, - Port: form.Port, - UseSSL: form.UseSSL, - BindDN: form.BindDN, - BindPassword: form.BindPassword, - UserBase: form.UserBase, - AttributeName: form.AttributeName, - AttributeSurname: form.AttributeSurname, - AttributeMail: form.AttributeMail, - Filter: form.Filter, - AdminFilter: form.AdminFilter, - Enabled: true, - }, - } + case models.LDAP, models.DLDAP: + config = parseLDAPConfig(form) case models.SMTP: - config = &models.SMTPConfig{ - Auth: form.SMTPAuth, - Host: form.SMTPHost, - Port: form.SMTPPort, - TLS: form.TLS, - SkipVerify: form.SkipVerify, - } + config = parseSMTPConfig(form) case models.PAM: config = &models.PAMConfig{ ServiceName: form.PAMServiceName, @@ -183,48 +193,40 @@ func EditAuthSourcePost(ctx *middleware.Context, form auth.AuthenticationForm) { return } - u := models.LoginSource{ - ID: form.ID, - Name: form.Name, - IsActived: form.IsActived, - Type: models.LoginType(form.Type), - AllowAutoRegister: form.AllowAutoRegister, - Cfg: config, - } - - if err := models.UpdateSource(&u); err != nil { + source.Name = form.Name + source.IsActived = form.IsActive + source.Cfg = config + if err := models.UpdateSource(source); err != nil { ctx.Handle(500, "UpdateSource", err) return } + log.Trace("Authentication changed by admin(%s): %s", ctx.User.Name, source.ID) - log.Trace("Authentication changed by admin(%s): %s", ctx.User.Name, form.Name) ctx.Flash.Success(ctx.Tr("admin.auths.update_success")) - ctx.Redirect(setting.AppSubUrl + "/admin/auths/" + ctx.Params(":authid")) + ctx.Redirect(setting.AppSubUrl + "/admin/auths/" + com.ToStr(form.ID)) } func DeleteAuthSource(ctx *middleware.Context) { - id := com.StrTo(ctx.Params(":authid")).MustInt64() - if id == 0 { - ctx.Handle(404, "DeleteAuthSource", nil) - return - } - - a, err := models.GetLoginSourceByID(id) + source, err := models.GetLoginSourceByID(ctx.ParamsInt64(":authid")) if err != nil { - ctx.Handle(500, "GetLoginSourceById", err) + ctx.Handle(500, "GetLoginSourceByID", err) return } - if err = models.DelLoginSource(a); err != nil { + if err = models.DeleteSource(source); err != nil { switch err { case models.ErrAuthenticationUserUsed: ctx.Flash.Error("form.still_own_user") ctx.Redirect(setting.AppSubUrl + "/admin/auths/" + ctx.Params(":authid")) default: - ctx.Handle(500, "DelLoginSource", err) + ctx.Handle(500, "DeleteSource", err) } return } - log.Trace("Authentication deleted by admin(%s): %s", ctx.User.Name, a.Name) - ctx.Redirect(setting.AppSubUrl + "/admin/auths") + log.Trace("Authentication deleted by admin(%s): %d", ctx.User.Name, source.ID) + + ctx.Flash.Success(ctx.Tr("admin.auths.deletion_success")) + ctx.JSON(200, map[string]interface{}{ + "redirect": setting.AppSubUrl + "/admin/auths", + }) } diff --git a/routers/admin/notice.go b/routers/admin/notice.go index b43194636..512c3f599 100644 --- a/routers/admin/notice.go +++ b/routers/admin/notice.go @@ -5,12 +5,13 @@ package admin import ( - "github.com/Unknwon/com" + "github.com/Unknwon/paginater" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/middleware" + "github.com/gogits/gogs/modules/setting" ) const ( @@ -22,20 +23,26 @@ func Notices(ctx *middleware.Context) { ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminNotices"] = true - pageNum := 50 - p := pagination(ctx, models.CountNotices(), pageNum) + total := models.CountNotices() + page := ctx.QueryInt("page") + if page <= 1 { + page = 1 + } + ctx.Data["Page"] = paginater.New(int(total), setting.AdminNoticePagingNum, page, 5) - notices, err := models.GetNotices(pageNum, (p-1)*pageNum) + notices, err := models.Notices(page, setting.AdminNoticePagingNum) if err != nil { - ctx.Handle(500, "GetNotices", err) + ctx.Handle(500, "Notices", err) return } ctx.Data["Notices"] = notices + + ctx.Data["Total"] = total ctx.HTML(200, NOTICES) } func DeleteNotice(ctx *middleware.Context) { - id := com.StrTo(ctx.Params(":id")).MustInt64() + id := ctx.ParamsInt64(":id") if err := models.DeleteNotice(id); err != nil { ctx.Handle(500, "DeleteNotice", err) return diff --git a/routers/admin/orgs.go b/routers/admin/orgs.go index 54d7af5cb..ae68b872d 100644 --- a/routers/admin/orgs.go +++ b/routers/admin/orgs.go @@ -5,9 +5,12 @@ package admin import ( + "github.com/Unknwon/paginater" + "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/middleware" + "github.com/gogits/gogs/modules/setting" ) const ( @@ -15,18 +18,26 @@ const ( ) func Organizations(ctx *middleware.Context) { - ctx.Data["Title"] = ctx.Tr("admin.orgs") + ctx.Data["Title"] = ctx.Tr("admin.organizations") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminOrganizations"] = true - pageNum := 50 - p := pagination(ctx, models.CountOrganizations(), pageNum) - - var err error - ctx.Data["Orgs"], err = models.GetOrganizations(pageNum, (p-1)*pageNum) + total := models.CountOrganizations() + page := ctx.QueryInt("page") + if page <= 1 { + page = 1 + } + ctx.Data["Page"] = paginater.New(int(total), setting.AdminOrgPagingNum, page, 5) + + orgs, err := models.Organizations(page, setting.AdminOrgPagingNum) + if err != nil { - ctx.Handle(500, "GetOrganizations", err) + ctx.Handle(500, "Organizations", err) return } + + ctx.Data["Orgs"] = orgs + ctx.Data["Total"] = total + ctx.HTML(200, ORGS) } diff --git a/routers/admin/repos.go b/routers/admin/repos.go index 6d9169f94..474d3db95 100644 --- a/routers/admin/repos.go +++ b/routers/admin/repos.go @@ -5,9 +5,12 @@ package admin import ( + "github.com/Unknwon/paginater" + "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/middleware" + "github.com/gogits/gogs/modules/setting" ) const ( @@ -19,14 +22,20 @@ func Repositories(ctx *middleware.Context) { ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminRepositories"] = true - pageNum := 50 - p := pagination(ctx, models.CountRepositories(), pageNum) + total := models.CountRepositories() + page := ctx.QueryInt("page") + if page <= 1 { + page = 1 + } + ctx.Data["Page"] = paginater.New(int(total), setting.AdminRepoPagingNum, page, 5) - var err error - ctx.Data["Repos"], err = models.GetRepositoriesWithUsers(pageNum, (p-1)*pageNum) + repos, err := models.RepositoriesWithUsers(page, setting.AdminRepoPagingNum) if err != nil { - ctx.Handle(500, "GetRepositoriesWithUsers", err) + ctx.Handle(500, "RepositoriesWithUsers", err) return } + ctx.Data["Repos"] = repos + + ctx.Data["Total"] = total ctx.HTML(200, REPOS) } diff --git a/routers/admin/users.go b/routers/admin/users.go index 2af3cdbc1..ac0f53817 100644 --- a/routers/admin/users.go +++ b/routers/admin/users.go @@ -5,15 +5,16 @@ package admin import ( - "math" "strings" "github.com/Unknwon/com" + "github.com/Unknwon/paginater" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/log" + "github.com/gogits/gogs/modules/mailer" "github.com/gogits/gogs/modules/middleware" "github.com/gogits/gogs/modules/setting" ) @@ -24,37 +25,26 @@ const ( USER_EDIT base.TplName = "admin/user/edit" ) -func pagination(ctx *middleware.Context, count int64, pageNum int) int { - p := ctx.QueryInt("p") - if p < 1 { - p = 1 - } - curCount := int64((p-1)*pageNum + pageNum) - if curCount >= count { - p = int(math.Ceil(float64(count) / float64(pageNum))) - } else { - ctx.Data["NextPageNum"] = p + 1 - } - if p > 1 { - ctx.Data["LastPageNum"] = p - 1 - } - return p -} - func Users(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("admin.users") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminUsers"] = true - pageNum := 50 - p := pagination(ctx, models.CountUsers(), pageNum) + total := models.CountUsers() + page := ctx.QueryInt("page") + if page <= 1 { + page = 1 + } + ctx.Data["Page"] = paginater.New(int(total), setting.AdminUserPagingNum, page, 5) - users, err := models.GetUsers(pageNum, (p-1)*pageNum) + users, err := models.Users(page, setting.AdminUserPagingNum) if err != nil { - ctx.Handle(500, "GetUsers", err) + ctx.Handle(500, "Users", err) return } ctx.Data["Users"] = users + + ctx.Data["Total"] = total ctx.HTML(200, USERS) } @@ -63,28 +53,35 @@ func NewUser(ctx *middleware.Context) { ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminUsers"] = true - auths, err := models.GetAuths() + ctx.Data["login_type"] = "0-0" + + sources, err := models.LoginSources() if err != nil { - ctx.Handle(500, "GetAuths", err) + ctx.Handle(500, "LoginSources", err) return } - ctx.Data["LoginSources"] = auths + ctx.Data["Sources"] = sources + + ctx.Data["CanSendEmail"] = setting.MailService != nil ctx.HTML(200, USER_NEW) } -func NewUserPost(ctx *middleware.Context, form auth.RegisterForm) { +func NewUserPost(ctx *middleware.Context, form auth.AdminCrateUserForm) { ctx.Data["Title"] = ctx.Tr("admin.users.new_account") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminUsers"] = true - if ctx.HasError() { - ctx.HTML(200, USER_NEW) + sources, err := models.LoginSources() + if err != nil { + ctx.Handle(500, "LoginSources", err) return } + ctx.Data["Sources"] = sources + + ctx.Data["CanSendEmail"] = setting.MailService != nil - if form.Password != form.Retype { - ctx.Data["Err_Password"] = true - ctx.RenderWithErr(ctx.Tr("form.password_not_match"), USER_NEW, &form) + if ctx.HasError() { + ctx.HTML(200, USER_NEW) return } @@ -97,12 +94,12 @@ func NewUserPost(ctx *middleware.Context, form auth.RegisterForm) { } if len(form.LoginType) > 0 { - // NOTE: need rewrite. fields := strings.Split(form.LoginType, "-") - tp, _ := com.StrTo(fields[0]).Int() - u.LoginType = models.LoginType(tp) - u.LoginSource, _ = com.StrTo(fields[1]).Int64() - u.LoginName = form.LoginName + if len(fields) == 2 { + u.LoginType = models.LoginType(com.StrTo(fields[0]).MustInt()) + u.LoginSource = com.StrTo(fields[1]).MustInt64() + u.LoginName = form.LoginName + } } if err := models.CreateUser(u); err != nil { @@ -125,75 +122,94 @@ func NewUserPost(ctx *middleware.Context, form auth.RegisterForm) { return } log.Trace("Account created by admin(%s): %s", ctx.User.Name, u.Name) - ctx.Redirect(setting.AppSubUrl + "/admin/users") -} - -func EditUser(ctx *middleware.Context) { - ctx.Data["Title"] = ctx.Tr("admin.users.edit_account") - ctx.Data["PageIsAdmin"] = true - ctx.Data["PageIsAdminUsers"] = true - uid := com.StrTo(ctx.Params(":userid")).MustInt64() - if uid == 0 { - ctx.Handle(404, "EditUser", nil) - return + // Send e-mail notification. + if form.SendNotify && setting.MailService != nil { + mailer.SendRegisterNotifyMail(ctx.Context, u) } - u, err := models.GetUserByID(uid) + ctx.Flash.Success(ctx.Tr("admin.users.new_success", u.Name)) + ctx.Redirect(setting.AppSubUrl + "/admin/users/" + com.ToStr(u.Id)) +} + +func prepareUserInfo(ctx *middleware.Context) *models.User { + u, err := models.GetUserByID(ctx.ParamsInt64(":userid")) if err != nil { ctx.Handle(500, "GetUserByID", err) - return + return nil } - ctx.Data["User"] = u - auths, err := models.GetAuths() + + if u.LoginSource > 0 { + ctx.Data["LoginSource"], err = models.GetLoginSourceByID(u.LoginSource) + if err != nil { + ctx.Handle(500, "GetLoginSourceByID", err) + return nil + } + } else { + ctx.Data["LoginSource"] = &models.LoginSource{} + } + + sources, err := models.LoginSources() if err != nil { - ctx.Handle(500, "GetAuths", err) - return + ctx.Handle(500, "LoginSources", err) + return nil } - ctx.Data["LoginSources"] = auths - ctx.HTML(200, USER_EDIT) + ctx.Data["Sources"] = sources + + return u } -func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { +func EditUser(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("admin.users.edit_account") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminUsers"] = true - uid := com.StrTo(ctx.Params(":userid")).MustInt64() - if uid == 0 { - ctx.Handle(404, "EditUser", nil) + prepareUserInfo(ctx) + if ctx.Written() { return } - u, err := models.GetUserByID(uid) - if err != nil { - ctx.Handle(500, "GetUserById", err) + ctx.HTML(200, USER_EDIT) +} + +func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { + ctx.Data["Title"] = ctx.Tr("admin.users.edit_account") + ctx.Data["PageIsAdmin"] = true + ctx.Data["PageIsAdminUsers"] = true + + u := prepareUserInfo(ctx) + if ctx.Written() { return } - ctx.Data["User"] = u if ctx.HasError() { ctx.HTML(200, USER_EDIT) return } - // FIXME: need password length check + fields := strings.Split(form.LoginType, "-") + if len(fields) == 2 { + loginType := models.LoginType(com.StrTo(fields[0]).MustInt()) + loginSource := com.StrTo(fields[1]).MustInt64() + + if u.LoginSource != loginSource { + u.LoginSource = loginSource + u.LoginType = loginType + } + } + if len(form.Password) > 0 { u.Passwd = form.Password u.Salt = models.GetUserSalt() u.EncodePasswd() } + u.LoginName = form.LoginName u.FullName = form.FullName u.Email = form.Email u.Website = form.Website u.Location = form.Location - if len(form.Avatar) == 0 { - form.Avatar = form.Email - } - u.Avatar = base.EncodeMd5(form.Avatar) - u.AvatarEmail = form.Avatar u.IsActive = form.Active u.IsAdmin = form.Admin u.AllowGitHook = form.AllowGitHook @@ -208,18 +224,13 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { return } log.Trace("Account profile updated by admin(%s): %s", ctx.User.Name, u.Name) + ctx.Flash.Success(ctx.Tr("admin.users.update_profile_success")) ctx.Redirect(setting.AppSubUrl + "/admin/users/" + ctx.Params(":userid")) } func DeleteUser(ctx *middleware.Context) { - uid := com.StrTo(ctx.Params(":userid")).MustInt64() - if uid == 0 { - ctx.Handle(404, "DeleteUser", nil) - return - } - - u, err := models.GetUserByID(uid) + u, err := models.GetUserByID(ctx.ParamsInt64(":userid")) if err != nil { ctx.Handle(500, "GetUserByID", err) return @@ -229,15 +240,23 @@ func DeleteUser(ctx *middleware.Context) { switch { case models.IsErrUserOwnRepos(err): ctx.Flash.Error(ctx.Tr("admin.users.still_own_repo")) - ctx.Redirect(setting.AppSubUrl + "/admin/users/" + ctx.Params(":userid")) + ctx.JSON(200, map[string]interface{}{ + "redirect": setting.AppSubUrl + "/admin/users/" + ctx.Params(":userid"), + }) case models.IsErrUserHasOrgs(err): ctx.Flash.Error(ctx.Tr("admin.users.still_has_org")) - ctx.Redirect(setting.AppSubUrl + "/admin/users/" + ctx.Params(":userid")) + ctx.JSON(200, map[string]interface{}{ + "redirect": setting.AppSubUrl + "/admin/users/" + ctx.Params(":userid"), + }) default: ctx.Handle(500, "DeleteUser", err) } return } log.Trace("Account deleted by admin(%s): %s", ctx.User.Name, u.Name) - ctx.Redirect(setting.AppSubUrl + "/admin/users") + + ctx.Flash.Success(ctx.Tr("admin.users.deletion_success")) + ctx.JSON(200, map[string]interface{}{ + "redirect": setting.AppSubUrl + "/admin/users", + }) } diff --git a/routers/api/v1/miscellaneous.go b/routers/api/v1/miscellaneous.go index 0da5dc156..7ffce8576 100644 --- a/routers/api/v1/miscellaneous.go +++ b/routers/api/v1/miscellaneous.go @@ -16,7 +16,7 @@ import ( // Render an arbitrary Markdown document. func Markdown(ctx *middleware.Context, form apiv1.MarkdownForm) { if ctx.HasApiError() { - ctx.JSON(422, base.ApiJsonErr{ctx.GetErrMsg(), base.DOC_URL}) + ctx.APIError(422, "", ctx.GetErrMsg()) return } @@ -38,7 +38,7 @@ func Markdown(ctx *middleware.Context, form apiv1.MarkdownForm) { func MarkdownRaw(ctx *middleware.Context) { body, err := ctx.Req.Body().Bytes() if err != nil { - ctx.JSON(422, base.ApiJsonErr{err.Error(), base.DOC_URL}) + ctx.APIError(422, "", err) return } ctx.Write(base.RenderRawMarkdown(body, "")) diff --git a/routers/api/v1/repo.go b/routers/api/v1/repo.go index c6d93070b..8f351068d 100644 --- a/routers/api/v1/repo.go +++ b/routers/api/v1/repo.go @@ -15,7 +15,6 @@ import ( "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" - "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/middleware" "github.com/gogits/gogs/modules/setting" @@ -104,14 +103,14 @@ func SearchRepos(ctx *middleware.Context) { func ListMyRepos(ctx *middleware.Context) { ownRepos, err := models.GetRepositories(ctx.User.Id, true) if err != nil { - ctx.JSON(500, &base.ApiJsonErr{"GetRepositories: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "GetRepositories", err) return } numOwnRepos := len(ownRepos) accessibleRepos, err := ctx.User.GetAccessibleRepositories() if err != nil { - ctx.JSON(500, &base.ApiJsonErr{"GetAccessibleRepositories: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "GetAccessibleRepositories", err) return } @@ -147,15 +146,14 @@ func createRepo(ctx *middleware.Context, owner *models.User, opt api.CreateRepoO if models.IsErrRepoAlreadyExist(err) || models.IsErrNameReserved(err) || models.IsErrNamePatternNotAllowed(err) { - ctx.JSON(422, &base.ApiJsonErr{err.Error(), base.DOC_URL}) + ctx.APIError(422, "", err) } else { - log.Error(4, "CreateRepository: %v", err) if repo != nil { if err = models.DeleteRepository(ctx.User.Id, repo.ID); err != nil { log.Error(4, "DeleteRepository: %v", err) } } - ctx.Error(500) + ctx.APIError(500, "CreateRepository", err) } return } @@ -171,7 +169,7 @@ func GetRepo(ctx *middleware.Context) { func CreateRepo(ctx *middleware.Context, opt api.CreateRepoOption) { // Shouldn't reach this condition, but just in case. if ctx.User.IsOrganization() { - ctx.JSON(422, "not allowed creating repository for organization") + ctx.APIError(422, "", "not allowed creating repository for organization") return } createRepo(ctx, ctx.User, opt) @@ -181,15 +179,15 @@ func CreateOrgRepo(ctx *middleware.Context, opt api.CreateRepoOption) { org, err := models.GetOrgByName(ctx.Params(":org")) if err != nil { if models.IsErrUserNotExist(err) { - ctx.Error(404) + ctx.APIError(422, "", err) } else { - ctx.Error(500) + ctx.APIError(500, "GetOrgByName", err) } return } if !org.IsOwnedBy(ctx.User.Id) { - ctx.Error(403) + ctx.APIError(403, "", "Given user is not owner of organization.") return } createRepo(ctx, org, opt) @@ -224,9 +222,9 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) { org, err := models.GetUserByID(form.Uid) if err != nil { if models.IsErrUserNotExist(err) { - ctx.HandleAPI(422, err) + ctx.APIError(422, "", err) } else { - ctx.HandleAPI(500, err) + ctx.APIError(500, "GetUserByID", err) } return } @@ -234,14 +232,14 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) { } if ctx.HasError() { - ctx.HandleAPI(422, ctx.GetErrMsg()) + ctx.APIError(422, "", ctx.GetErrMsg()) return } if ctxUser.IsOrganization() { // Check ownership of organization. if !ctxUser.IsOwnedBy(ctx.User.Id) { - ctx.HandleAPI(403, "Given user is not owner of organization.") + ctx.APIError(403, "", "Given user is not owner of organization.") return } } @@ -253,7 +251,7 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) { strings.HasPrefix(form.CloneAddr, "git://") { u, err := url.Parse(form.CloneAddr) if err != nil { - ctx.HandleAPI(422, err) + ctx.APIError(422, "", err) return } if len(form.AuthUsername) > 0 || len(form.AuthPassword) > 0 { @@ -261,7 +259,7 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) { } remoteAddr = u.String() } else if !com.IsDir(remoteAddr) { - ctx.HandleAPI(422, "Invalid local path, it does not exist or not a directory.") + ctx.APIError(422, "", "Invalid local path, it does not exist or not a directory.") return } @@ -272,10 +270,45 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) { log.Error(4, "DeleteRepository: %v", errDelete) } } - ctx.HandleAPI(500, err) + ctx.APIError(500, "MigrateRepository", err) return } log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName) ctx.JSON(201, ToApiRepository(ctxUser, repo, api.Permission{true, true, true})) } + +func DeleteRepo(ctx *middleware.Context) { + user, err := models.GetUserByName(ctx.Params(":username")) + if err != nil { + if models.IsErrUserNotExist(err) { + ctx.APIError(422, "", err) + } else { + ctx.APIError(500, "GetUserByName", err) + } + return + } + + repo, err := models.GetRepositoryByName(user.Id, ctx.Params(":reponame")) + if err != nil { + if models.IsErrRepoNotExist(err) { + ctx.Error(404) + } else { + ctx.APIError(500, "GetRepositoryByName", err) + } + return + } + + if user.IsOrganization() && !user.IsOwnedBy(ctx.User.Id) { + ctx.APIError(403, "", "Given user is not owner of organization.") + return + } + + if err := models.DeleteRepository(user.Id, repo.ID); err != nil { + ctx.APIError(500, "DeleteRepository", err) + return + } + + log.Trace("Repository deleted: %s/%s", user.Name, repo.Name) + ctx.Status(204) +} diff --git a/routers/api/v1/repo_file.go b/routers/api/v1/repo_file.go index 540cd32fa..3b2225e66 100644 --- a/routers/api/v1/repo_file.go +++ b/routers/api/v1/repo_file.go @@ -6,7 +6,6 @@ package v1 import ( "github.com/gogits/gogs/models" - "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/git" "github.com/gogits/gogs/modules/middleware" "github.com/gogits/gogs/routers/repo" @@ -23,12 +22,12 @@ func GetRepoRawFile(ctx *middleware.Context) { if err == git.ErrNotExist { ctx.Error(404) } else { - ctx.JSON(500, &base.ApiJsonErr{"GetBlobByPath: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "GetBlobByPath", err) } return } if err = repo.ServeBlob(ctx, blob); err != nil { - ctx.JSON(500, &base.ApiJsonErr{"ServeBlob: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "ServeBlob", err) } } @@ -36,7 +35,7 @@ func GetRepoArchive(ctx *middleware.Context) { repoPath := models.RepoPath(ctx.Params(":username"), ctx.Params(":reponame")) gitRepo, err := git.OpenRepository(repoPath) if err != nil { - ctx.Handle(500, "RepoAssignment Invalid repo: "+repoPath, err) + ctx.APIError(500, "OpenRepository", err) return } ctx.Repo.GitRepo = gitRepo diff --git a/routers/api/v1/repo_hooks.go b/routers/api/v1/repo_hooks.go index 020ac7e2f..91547cf16 100644 --- a/routers/api/v1/repo_hooks.go +++ b/routers/api/v1/repo_hooks.go @@ -13,7 +13,6 @@ import ( api "github.com/gogits/go-gogs-client" "github.com/gogits/gogs/models" - "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/middleware" ) @@ -47,7 +46,7 @@ func ToApiHook(repoLink string, w *models.Webhook) *api.Hook { func ListRepoHooks(ctx *middleware.Context) { hooks, err := models.GetWebhooksByRepoId(ctx.Repo.Repository.ID) if err != nil { - ctx.JSON(500, &base.ApiJsonErr{"GetWebhooksByRepoId: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "GetWebhooksByRepoId", err) return } @@ -62,17 +61,17 @@ func ListRepoHooks(ctx *middleware.Context) { // https://github.com/gogits/go-gogs-client/wiki/Repositories#create-a-hook func CreateRepoHook(ctx *middleware.Context, form api.CreateHookOption) { if !models.IsValidHookTaskType(form.Type) { - ctx.JSON(422, &base.ApiJsonErr{"invalid hook type", base.DOC_URL}) + ctx.APIError(422, "", "Invalid hook type") return } for _, name := range []string{"url", "content_type"} { if _, ok := form.Config[name]; !ok { - ctx.JSON(422, &base.ApiJsonErr{"missing config option: " + name, base.DOC_URL}) + ctx.APIError(422, "", "Missing config option: "+name) return } } if !models.IsValidHookContentType(form.Config["content_type"]) { - ctx.JSON(422, &base.ApiJsonErr{"invalid content type", base.DOC_URL}) + ctx.APIError(422, "", "Invalid content type") return } @@ -97,7 +96,7 @@ func CreateRepoHook(ctx *middleware.Context, form api.CreateHookOption) { if w.HookTaskType == models.SLACK { channel, ok := form.Config["channel"] if !ok { - ctx.JSON(422, &base.ApiJsonErr{"missing config option: channel", base.DOC_URL}) + ctx.APIError(422, "", "Missing config option: channel") return } meta, err := json.Marshal(&models.SlackMeta{ @@ -107,17 +106,17 @@ func CreateRepoHook(ctx *middleware.Context, form api.CreateHookOption) { Color: form.Config["color"], }) if err != nil { - ctx.JSON(500, &base.ApiJsonErr{"slack: JSON marshal failed: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "slack: JSON marshal failed", err) return } w.Meta = string(meta) } if err := w.UpdateEvent(); err != nil { - ctx.JSON(500, &base.ApiJsonErr{"UpdateEvent: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "UpdateEvent", err) return } else if err := models.CreateWebhook(w); err != nil { - ctx.JSON(500, &base.ApiJsonErr{"CreateWebhook: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "CreateWebhook", err) return } @@ -128,7 +127,7 @@ func CreateRepoHook(ctx *middleware.Context, form api.CreateHookOption) { func EditRepoHook(ctx *middleware.Context, form api.EditHookOption) { w, err := models.GetWebhookByID(ctx.ParamsInt64(":id")) if err != nil { - ctx.JSON(500, &base.ApiJsonErr{"GetWebhookById: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "GetWebhookById", err) return } @@ -138,7 +137,7 @@ func EditRepoHook(ctx *middleware.Context, form api.EditHookOption) { } if ct, ok := form.Config["content_type"]; ok { if !models.IsValidHookContentType(ct) { - ctx.JSON(422, &base.ApiJsonErr{"invalid content type", base.DOC_URL}) + ctx.APIError(422, "", "Invalid content type") return } w.ContentType = models.ToHookContentType(ct) @@ -153,7 +152,7 @@ func EditRepoHook(ctx *middleware.Context, form api.EditHookOption) { Color: form.Config["color"], }) if err != nil { - ctx.JSON(500, &base.ApiJsonErr{"slack: JSON marshal failed: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "slack: JSON marshal failed", err) return } w.Meta = string(meta) @@ -171,7 +170,7 @@ func EditRepoHook(ctx *middleware.Context, form api.EditHookOption) { w.Create = com.IsSliceContainsStr(form.Events, string(models.HOOK_EVENT_CREATE)) w.Push = com.IsSliceContainsStr(form.Events, string(models.HOOK_EVENT_PUSH)) if err = w.UpdateEvent(); err != nil { - ctx.JSON(500, &base.ApiJsonErr{"UpdateEvent: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "UpdateEvent", err) return } @@ -180,7 +179,7 @@ func EditRepoHook(ctx *middleware.Context, form api.EditHookOption) { } if err := models.UpdateWebhook(w); err != nil { - ctx.JSON(500, &base.ApiJsonErr{"UpdateWebhook: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "UpdateWebhook", err) return } diff --git a/routers/api/v1/user.go b/routers/api/v1/user.go index 57bf68bb5..f27cd3ae4 100644 --- a/routers/api/v1/user.go +++ b/routers/api/v1/user.go @@ -10,7 +10,6 @@ import ( api "github.com/gogits/go-gogs-client" "github.com/gogits/gogs/models" - "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/middleware" ) @@ -69,7 +68,7 @@ func GetUserInfo(ctx *middleware.Context) { if models.IsErrUserNotExist(err) { ctx.Error(404) } else { - ctx.JSON(500, &base.ApiJsonErr{"GetUserByName: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "GetUserByName", err) } return } diff --git a/routers/api/v1/user_app.go b/routers/api/v1/user_app.go index 5e5156aca..590d187e5 100644 --- a/routers/api/v1/user_app.go +++ b/routers/api/v1/user_app.go @@ -8,7 +8,6 @@ import ( api "github.com/gogits/go-gogs-client" "github.com/gogits/gogs/models" - "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/middleware" ) @@ -16,7 +15,7 @@ import ( func ListAccessTokens(ctx *middleware.Context) { tokens, err := models.ListAccessTokens(ctx.User.Id) if err != nil { - ctx.JSON(500, &base.ApiJsonErr{"ListAccessTokens: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "ListAccessTokens", err) return } @@ -38,7 +37,7 @@ func CreateAccessToken(ctx *middleware.Context, form CreateAccessTokenForm) { Name: form.Name, } if err := models.NewAccessToken(t); err != nil { - ctx.JSON(500, &base.ApiJsonErr{"NewAccessToken: " + err.Error(), base.DOC_URL}) + ctx.APIError(500, "NewAccessToken", err) return } ctx.JSON(201, &api.AccessToken{t.Name, t.Sha1}) diff --git a/routers/dev/template.go b/routers/dev/template.go index 9528c74c6..5548f5147 100644 --- a/routers/dev/template.go +++ b/routers/dev/template.go @@ -20,5 +20,6 @@ func TemplatePreview(ctx *middleware.Context) { ctx.Data["ActiveCodeLives"] = setting.Service.ActiveCodeLives / 60 ctx.Data["ResetPwdCodeLives"] = setting.Service.ResetPwdCodeLives / 60 ctx.Data["CurDbValue"] = "" + ctx.HTML(200, base.TplName(ctx.Params("*"))) } diff --git a/routers/home.go b/routers/home.go index c83cab377..4e1ebe989 100644 --- a/routers/home.go +++ b/routers/home.go @@ -39,17 +39,13 @@ func Home(ctx *middleware.Context) { return } - if setting.OauthService != nil { - ctx.Data["OauthEnabled"] = true - ctx.Data["OauthService"] = setting.OauthService - } - ctx.Data["PageIsHome"] = true ctx.HTML(200, HOME) } func Explore(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("explore") + ctx.Data["PageIsExplore"] = true ctx.Data["PageIsExploreRepositories"] = true page := ctx.QueryInt("page") diff --git a/routers/install.go b/routers/install.go index d9c5d51ca..4b22463ed 100644 --- a/routers/install.go +++ b/routers/install.go @@ -13,9 +13,9 @@ import ( "strings" "github.com/Unknwon/com" - "github.com/Unknwon/macaron" "github.com/go-xorm/xorm" "gopkg.in/ini.v1" + "gopkg.in/macaron.v1" "github.com/gogits/gogs/models" "github.com/gogits/gogs/models/cron" @@ -25,7 +25,6 @@ import ( "github.com/gogits/gogs/modules/mailer" "github.com/gogits/gogs/modules/middleware" "github.com/gogits/gogs/modules/setting" - "github.com/gogits/gogs/modules/social" "github.com/gogits/gogs/modules/user" ) @@ -45,16 +44,15 @@ func checkRunMode() { func NewServices() { setting.NewServices() - social.NewOauthService() + mailer.NewContext() } // GlobalInit is for global configuration reload-able. func GlobalInit() { - setting.NewConfigContext() + setting.NewContext() log.Trace("Custom path: %s", setting.CustomPath) log.Trace("Log path: %s", setting.LogRootPath) - mailer.NewMailerContext() - models.LoadModelsConfig() + models.LoadConfigs() NewServices() if setting.InstallLock { @@ -66,13 +64,16 @@ func GlobalInit() { } models.HasEngine = true - cron.NewCronContext() + cron.NewContext() models.InitDeliverHooks() log.NewGitLogger(path.Join(setting.LogRootPath, "http.log")) } if models.EnableSQLite3 { log.Info("SQLite3 Supported") } + if models.EnableTidb { + log.Info("TiDB Supported") + } checkRunMode() } @@ -104,10 +105,18 @@ func Install(ctx *middleware.Context) { form.DbName = models.DbCfg.Name form.DbPath = models.DbCfg.Path - if models.EnableSQLite3 { - ctx.Data["CurDbOption"] = "SQLite3" // Default when enabled. - } else { - ctx.Data["CurDbOption"] = "MySQL" + ctx.Data["CurDbOption"] = "MySQL" + switch models.DbCfg.Type { + case "postgres": + ctx.Data["CurDbOption"] = "PostgreSQL" + case "sqlite3": + if models.EnableSQLite3 { + ctx.Data["CurDbOption"] = "SQLite3" + } + case "tidb": + if models.EnableTidb { + ctx.Data["CurDbOption"] = "TiDB" + } } // Application general settings @@ -140,6 +149,7 @@ func Install(ctx *middleware.Context) { form.OfflineMode = setting.OfflineMode form.DisableGravatar = setting.DisableGravatar form.DisableRegistration = setting.Service.DisableRegistration + form.EnableCaptcha = setting.Service.EnableCaptcha form.RequireSignInView = setting.Service.RequireSignInView auth.AssignForm(form, ctx.Data) @@ -179,9 +189,15 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) { models.DbCfg.SSLMode = form.SSLMode models.DbCfg.Path = form.DbPath - if models.DbCfg.Type == "sqlite3" && len(models.DbCfg.Path) == 0 { + if (models.DbCfg.Type == "sqlite3" || models.DbCfg.Type == "tidb") && + len(models.DbCfg.Path) == 0 { + ctx.Data["Err_DbPath"] = true + ctx.RenderWithErr(ctx.Tr("install.err_empty_db_path"), INSTALL, &form) + return + } else if models.DbCfg.Type == "tidb" && + strings.ContainsAny(path.Base(models.DbCfg.Path), ".-") { ctx.Data["Err_DbPath"] = true - ctx.RenderWithErr(ctx.Tr("install.err_empty_sqlite_path"), INSTALL, &form) + ctx.RenderWithErr(ctx.Tr("install.err_invalid_tidb_name"), INSTALL, &form) return } @@ -213,7 +229,21 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) { return } + // Check logic loophole between disable self-registration and no admin account. + if form.DisableRegistration && len(form.AdminName) == 0 { + ctx.Data["Err_Services"] = true + ctx.Data["Err_Admin"] = true + ctx.RenderWithErr(ctx.Tr("install.no_admin_and_disable_registration"), INSTALL, form) + return + } + // Check admin password. + if len(form.AdminName) > 0 && len(form.AdminPasswd) == 0 { + ctx.Data["Err_Admin"] = true + ctx.Data["Err_AdminPasswd"] = true + ctx.RenderWithErr(ctx.Tr("install.err_empty_admin_password"), INSTALL, form) + return + } if form.AdminPasswd != form.AdminConfirmPasswd { ctx.Data["Err_Admin"] = true ctx.Data["Err_AdminPasswd"] = true @@ -270,6 +300,7 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) { cfg.Section("server").Key("OFFLINE_MODE").SetValue(com.ToStr(form.OfflineMode)) cfg.Section("picture").Key("DISABLE_GRAVATAR").SetValue(com.ToStr(form.DisableGravatar)) cfg.Section("service").Key("DISABLE_REGISTRATION").SetValue(com.ToStr(form.DisableRegistration)) + cfg.Section("service").Key("ENABLE_CAPTCHA").SetValue(com.ToStr(form.EnableCaptcha)) cfg.Section("service").Key("REQUIRE_SIGNIN_VIEW").SetValue(com.ToStr(form.RequireSignInView)) cfg.Section("").Key("RUN_MODE").SetValue("prod") diff --git a/routers/org/setting.go b/routers/org/setting.go index 9e26afa7d..bd9ab13be 100644 --- a/routers/org/setting.go +++ b/routers/org/setting.go @@ -5,7 +5,10 @@ package org import ( + "strings" + "github.com/Unknwon/com" + "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" "github.com/gogits/gogs/modules/base" @@ -39,7 +42,7 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateOrgSettingForm) { org := ctx.Org.Organization // Check if organization name has been changed. - if org.Name != form.Name { + if org.LowerName != strings.ToLower(form.Name) { isExist, err := models.IsUserExist(org.Id, form.Name) if err != nil { ctx.Handle(500, "IsUserExist", err) @@ -58,8 +61,10 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateOrgSettingForm) { return } log.Trace("Organization name changed: %s -> %s", org.Name, form.Name) - org.Name = form.Name } + // In case it's just a case change. + org.Name = form.Name + org.LowerName = strings.ToLower(form.Name) org.FullName = form.FullName org.Description = form.Description diff --git a/routers/repo/forks.go b/routers/repo/forks.go new file mode 100644 index 000000000..099f0cc4f --- /dev/null +++ b/routers/repo/forks.go @@ -0,0 +1,37 @@ +// 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 repo + +import ( + "fmt" + "github.com/gogits/gogs/modules/base" + "github.com/gogits/gogs/modules/middleware" +) + +const ( + FORKS base.TplName = "repo/forks" +) + +func Forks(ctx *middleware.Context) { + ctx.Data["Title"] = ctx.Tr("repos.forks") + + forks, err := ctx.Repo.Repository.GetForks() + + if err != nil { + ctx.Handle(500, "GetForks", err) + return + } + + for _, fork := range forks { + if err = fork.GetOwner(); err != nil { + ctx.Handle(500, "GetOwner", fmt.Errorf("%d: %v", fork.ID, err)) + return + } + } + + ctx.Data["Forks"] = forks + + ctx.HTML(200, FORKS) +} diff --git a/routers/repo/issue.go b/routers/repo/issue.go index e242dd0e5..5bc53b35f 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -367,7 +367,7 @@ func NewIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) { mentions := base.MentionPattern.FindAllString(issue.Content, -1) if len(mentions) > 0 { for i := range mentions { - mentions[i] = mentions[i][1:] + mentions[i] = strings.TrimSpace(mentions[i])[1:] } if err := models.UpdateMentions(mentions, issue.ID); err != nil { @@ -759,13 +759,56 @@ func NewComment(ctx *middleware.Context, form auth.CreateCommentForm) { return } + var comment *models.Comment + defer func() { + // Check if issue owner/poster changes the status of issue. + if (ctx.Repo.IsOwner() || (ctx.IsSigned && issue.IsPoster(ctx.User.Id))) && + (form.Status == "reopen" || form.Status == "close") && + !(issue.IsPull && issue.HasMerged) { + + var pr *models.PullRequest + + if form.Status == "reopen" { + pull := issue.PullRequest + pr, err = models.GetUnmergedPullRequest(pull.HeadRepoID, pull.BaseRepoID, pull.HeadBranch, pull.BaseBranch) + if err != nil { + if !models.IsErrPullRequestNotExist(err) { + ctx.Handle(500, "GetUnmergedPullRequest", err) + return + } + } + } + + if pr != nil { + ctx.Flash.Info(ctx.Tr("repo.pulls.open_unmerged_pull_exists", pr.Index)) + } else { + issue.Repo = ctx.Repo.Repository + if err = issue.ChangeStatus(ctx.User, form.Status == "close"); err != nil { + log.Error(4, "ChangeStatus: %v", err) + } else { + log.Trace("Issue[%d] status changed: %v", issue.ID, !issue.IsClosed) + } + } + } + + // Redirect to comment hashtag if there is any actual content. + typeName := "issues" + if issue.IsPull { + typeName = "pulls" + } + if comment != nil { + ctx.Redirect(fmt.Sprintf("%s/%s/%d#%s", ctx.Repo.RepoLink, typeName, issue.Index, comment.HashTag())) + } else { + ctx.Redirect(fmt.Sprintf("%s/%s/%d", ctx.Repo.RepoLink, typeName, issue.Index)) + } + }() + // Fix #321: Allow empty comments, as long as we have attachments. if len(form.Content) == 0 && len(attachments) == 0 { - ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issue.Index)) return } - comment, err := models.CreateIssueComment(ctx.User, ctx.Repo.Repository, issue, form.Content, attachments) + comment, err = models.CreateIssueComment(ctx.User, ctx.Repo.Repository, issue, form.Content, attachments) if err != nil { ctx.Handle(500, "CreateIssueComment", err) return @@ -809,20 +852,6 @@ func NewComment(ctx *middleware.Context, form auth.CreateCommentForm) { } } log.Trace("Comment created: %d/%d/%d", ctx.Repo.Repository.ID, issue.ID, comment.ID) - - // Check if issue owner/poster changes the status of issue. - if (ctx.Repo.IsOwner() || (ctx.IsSigned && issue.IsPoster(ctx.User.Id))) && - (form.Status == "reopen" || form.Status == "close") && - !(issue.IsPull && issue.HasMerged) { - issue.Repo = ctx.Repo.Repository - if err = issue.ChangeStatus(ctx.User, form.Status == "close"); err != nil { - ctx.Handle(500, "ChangeStatus", err) - return - } - log.Trace("Issue[%d] status changed: %v", issue.ID, !issue.IsClosed) - } - - ctx.Redirect(fmt.Sprintf("%s/issues/%d#%s", ctx.Repo.RepoLink, issue.Index, comment.HashTag())) } func UpdateCommentContent(ctx *middleware.Context) { @@ -902,6 +931,7 @@ func UpdateLabel(ctx *middleware.Context, form auth.CreateLabelForm) { return } + fmt.Println(form.Title, form.Color) l.Name = form.Title l.Color = form.Color if err := models.UpdateLabel(l); err != nil { diff --git a/routers/repo/pull.go b/routers/repo/pull.go index c1eec7cc2..c8f00cc0f 100644 --- a/routers/repo/pull.go +++ b/routers/repo/pull.go @@ -128,7 +128,7 @@ func ForkPost(ctx *middleware.Context, form auth.CreateRepoForm) { } func checkPullInfo(ctx *middleware.Context) *models.Issue { - pull, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) + issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) if err != nil { if models.IsErrIssueNotExist(err) { ctx.Handle(404, "GetIssueByIndex", err) @@ -137,28 +137,28 @@ func checkPullInfo(ctx *middleware.Context) *models.Issue { } return nil } - ctx.Data["Title"] = pull.Name - ctx.Data["Issue"] = pull + ctx.Data["Title"] = issue.Name + ctx.Data["Issue"] = issue - if !pull.IsPull { + if !issue.IsPull { ctx.Handle(404, "ViewPullCommits", nil) return nil } - if err = pull.GetPoster(); err != nil { + if err = issue.GetPoster(); err != nil { ctx.Handle(500, "GetPoster", err) return nil } if ctx.IsSigned { // Update issue-user. - if err = pull.ReadBy(ctx.User.Id); err != nil { + if err = issue.ReadBy(ctx.User.Id); err != nil { ctx.Handle(500, "ReadBy", err) return nil } } - return pull + return issue } func PrepareMergedViewPullInfo(ctx *middleware.Context, pull *models.Issue) { @@ -166,7 +166,7 @@ func PrepareMergedViewPullInfo(ctx *middleware.Context, pull *models.Issue) { var err error - ctx.Data["HeadTarget"] = pull.HeadUserName + "/" + pull.HeadBarcnh + ctx.Data["HeadTarget"] = pull.HeadUserName + "/" + pull.HeadBranch ctx.Data["BaseTarget"] = ctx.Repo.Owner.Name + "/" + pull.BaseBranch ctx.Data["NumCommits"], err = ctx.Repo.GitRepo.CommitsCountBetween(pull.MergeBase, pull.MergedCommitID) @@ -184,22 +184,28 @@ func PrepareMergedViewPullInfo(ctx *middleware.Context, pull *models.Issue) { func PrepareViewPullInfo(ctx *middleware.Context, pull *models.Issue) *git.PullRequestInfo { repo := ctx.Repo.Repository - ctx.Data["HeadTarget"] = pull.HeadUserName + "/" + pull.HeadBarcnh + ctx.Data["HeadTarget"] = pull.HeadUserName + "/" + pull.HeadBranch ctx.Data["BaseTarget"] = ctx.Repo.Owner.Name + "/" + pull.BaseBranch - headRepoPath, err := pull.HeadRepo.RepoPath() - if err != nil { - ctx.Handle(500, "HeadRepo.RepoPath", err) - return nil - } + var ( + headGitRepo *git.Repository + err error + ) + if pull.HeadRepo != nil { + headRepoPath, err := pull.HeadRepo.RepoPath() + if err != nil { + ctx.Handle(500, "HeadRepo.RepoPath", err) + return nil + } - headGitRepo, err := git.OpenRepository(headRepoPath) - if err != nil { - ctx.Handle(500, "OpenRepository", err) - return nil + headGitRepo, err = git.OpenRepository(headRepoPath) + if err != nil { + ctx.Handle(500, "OpenRepository", err) + return nil + } } - if pull.HeadRepo == nil || !headGitRepo.IsBranchExist(pull.HeadBarcnh) { + if pull.HeadRepo == nil || !headGitRepo.IsBranchExist(pull.HeadBranch) { ctx.Data["IsPullReuqestBroken"] = true ctx.Data["HeadTarget"] = "deleted" ctx.Data["NumCommits"] = 0 @@ -208,7 +214,7 @@ func PrepareViewPullInfo(ctx *middleware.Context, pull *models.Issue) *git.PullR } prInfo, err := headGitRepo.GetPullRequestInfo(models.RepoPath(repo.Owner.Name, repo.Name), - pull.BaseBranch, pull.HeadBarcnh) + pull.BaseBranch, pull.HeadBranch) if err != nil { ctx.Handle(500, "GetPullRequestInfo", err) return nil @@ -310,7 +316,7 @@ func ViewPullFiles(ctx *middleware.Context) { return } - headCommitID, err := headGitRepo.GetCommitIdOfBranch(pull.HeadBarcnh) + headCommitID, err := headGitRepo.GetCommitIdOfBranch(pull.HeadBranch) if err != nil { ctx.Handle(500, "GetCommitIdOfBranch", err) return @@ -349,39 +355,39 @@ func ViewPullFiles(ctx *middleware.Context) { } func MergePullRequest(ctx *middleware.Context) { - pull := checkPullInfo(ctx) + issue := checkPullInfo(ctx) if ctx.Written() { return } - if pull.IsClosed { + if issue.IsClosed { ctx.Handle(404, "MergePullRequest", nil) return } - pr, err := models.GetPullRequestByPullID(pull.ID) + pr, err := models.GetPullRequestByIssueID(issue.ID) if err != nil { if models.IsErrPullRequestNotExist(err) { - ctx.Handle(404, "GetPullRequestByPullID", nil) + ctx.Handle(404, "GetPullRequestByIssueID", nil) } else { - ctx.Handle(500, "GetPullRequestByPullID", err) + ctx.Handle(500, "GetPullRequestByIssueID", err) } return } - if !pr.CanAutoMerge || pr.HasMerged { + if !pr.CanAutoMerge() || pr.HasMerged { ctx.Handle(404, "MergePullRequest", nil) return } - pr.Pull = pull - pr.Pull.Repo = ctx.Repo.Repository + pr.Issue = issue + pr.Issue.Repo = ctx.Repo.Repository if err = pr.Merge(ctx.User, ctx.Repo.GitRepo); err != nil { - ctx.Handle(500, "GetPullRequestByPullID", err) + ctx.Handle(500, "Merge", err) return } log.Trace("Pull request merged: %d", pr.ID) - ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(pr.PullIndex)) + ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(pr.Index)) } func ParseCompareInfo(ctx *middleware.Context) (*models.User, *models.Repository, *git.Repository, *git.PullRequestInfo, string, string) { @@ -575,7 +581,7 @@ func CompareAndPullRequestPost(ctx *middleware.Context, form auth.CreateIssueFor return } - patch, err := headGitRepo.GetPatch(models.RepoPath(repo.Owner.Name, repo.Name), baseBranch, headBranch) + patch, err := headGitRepo.GetPatch(prInfo.MergeBase, headBranch) if err != nil { ctx.Handle(500, "GetPatch", err) return @@ -610,7 +616,7 @@ func CompareAndPullRequestPost(ctx *middleware.Context, form auth.CreateIssueFor HeadRepoID: headRepo.ID, BaseRepoID: repo.ID, HeadUserName: headUser.Name, - HeadBarcnh: headBranch, + HeadBranch: headBranch, BaseBranch: baseBranch, MergeBase: prInfo.MergeBase, Type: models.PULL_REQUEST_GOGS, diff --git a/routers/repo/setting.go b/routers/repo/setting.go index 1d88a128e..a9930e784 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -244,7 +244,7 @@ func Webhooks(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("repo.settings.hooks") ctx.Data["PageIsSettingsHooks"] = true ctx.Data["BaseLink"] = ctx.Repo.RepoLink - ctx.Data["Description"] = ctx.Tr("repo.settings.hooks_desc", "http://gogs.io/docs/features/webhook.html") + ctx.Data["Description"] = ctx.Tr("repo.settings.hooks_desc", "https://github.com/gogits/go-gogs-client/wiki/Repositories---Webhooks") ws, err := models.GetWebhooksByRepoId(ctx.Repo.Repository.ID) if err != nil { diff --git a/routers/repo/stars.go b/routers/repo/stars.go new file mode 100644 index 000000000..93854886c --- /dev/null +++ b/routers/repo/stars.go @@ -0,0 +1,44 @@ +// 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 repo + +import ( + "github.com/Unknwon/paginater" + + "github.com/gogits/gogs/models" + "github.com/gogits/gogs/modules/base" + "github.com/gogits/gogs/modules/middleware" +) + +const ( + STARS base.TplName = "repo/stars" +) + +func Stars(ctx *middleware.Context) { + ctx.Data["Title"] = ctx.Tr("repos.stars") + + page := ctx.QueryInt("page") + if page <= 0 { + page = 1 + } + + ctx.Data["Page"] = paginater.New(ctx.Repo.Repository.NumStars, models.ItemsPerPage, page, 5) + + stars, err := ctx.Repo.Repository.GetStars(ctx.QueryInt("page")) + + if err != nil { + ctx.Handle(500, "GetStars", err) + return + } + + if (ctx.QueryInt("page")-1)*models.ItemsPerPage > ctx.Repo.Repository.NumStars { + ctx.Handle(404, "ctx.Repo.Repository.NumStars", nil) + return + } + + ctx.Data["Stars"] = stars + + ctx.HTML(200, STARS) +} diff --git a/routers/repo/watchers.go b/routers/repo/watchers.go new file mode 100644 index 000000000..8626fa237 --- /dev/null +++ b/routers/repo/watchers.go @@ -0,0 +1,44 @@ +// 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 repo + +import ( + "github.com/Unknwon/paginater" + + "github.com/gogits/gogs/models" + "github.com/gogits/gogs/modules/base" + "github.com/gogits/gogs/modules/middleware" +) + +const ( + WATCHERS base.TplName = "repo/watchers" +) + +func Watchers(ctx *middleware.Context) { + ctx.Data["Title"] = ctx.Tr("repos.watches") + + page := ctx.QueryInt("page") + if page <= 0 { + page = 1 + } + + ctx.Data["Page"] = paginater.New(ctx.Repo.Repository.NumWatches, models.ItemsPerPage, page, 5) + + watchers, err := ctx.Repo.Repository.GetWatchers(ctx.QueryInt("page")) + + if err != nil { + ctx.Handle(500, "GetWatchers", err) + return + } + + if (ctx.QueryInt("page")-1)*models.ItemsPerPage > ctx.Repo.Repository.NumWatches { + ctx.Handle(404, "ctx.Repo.Repository.NumWatches", nil) + return + } + + ctx.Data["Watchers"] = watchers + + ctx.HTML(200, WATCHERS) +} diff --git a/routers/user/auth.go b/routers/user/auth.go index 5c6bb26fb..54cbf4475 100644 --- a/routers/user/auth.go +++ b/routers/user/auth.go @@ -6,9 +6,8 @@ package user import ( "net/url" - "strings" - "github.com/macaron-contrib/captcha" + "github.com/go-macaron/captcha" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" @@ -30,17 +29,6 @@ const ( func SignIn(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("sign_in") - if _, ok := ctx.Session.Get("socialId").(int64); ok { - ctx.Data["IsSocialLogin"] = true - ctx.HTML(200, SIGNIN) - return - } - - if setting.OauthService != nil { - ctx.Data["OauthEnabled"] = true - ctx.Data["OauthService"] = setting.OauthService - } - // Check auto-login. isSucceed, err := middleware.AutoSignIn(ctx) if err != nil { @@ -63,14 +51,6 @@ func SignIn(ctx *middleware.Context) { func SignInPost(ctx *middleware.Context, form auth.SignInForm) { ctx.Data["Title"] = ctx.Tr("sign_in") - sid, isOauth := ctx.Session.Get("socialId").(int64) - if isOauth { - ctx.Data["IsSocialLogin"] = true - } else if setting.OauthService != nil { - ctx.Data["OauthEnabled"] = true - ctx.Data["OauthService"] = setting.OauthService - } - if ctx.HasError() { ctx.HTML(200, SIGNIN) return @@ -93,20 +73,6 @@ func SignInPost(ctx *middleware.Context, form auth.SignInForm) { setting.CookieRememberName, u.Name, days, setting.AppSubUrl) } - // Bind with social account. - if isOauth { - if err = models.BindUserOauth2(u.Id, sid); err != nil { - if err == models.ErrOauth2RecordNotExist { - ctx.Handle(404, "GetOauth2ById", err) - } else { - ctx.Handle(500, "GetOauth2ById", err) - } - return - } - ctx.Session.Delete("socialId") - log.Trace("%s OAuth binded: %s -> %d", ctx.Req.RequestURI, form.UserName, sid) - } - ctx.Session.Set("uid", u.Id) ctx.Session.Set("uname", u.Name) if redirectTo, _ := url.QueryUnescape(ctx.GetCookie("redirect_to")); len(redirectTo) > 0 { @@ -129,86 +95,42 @@ func SignOut(ctx *middleware.Context) { ctx.Redirect(setting.AppSubUrl + "/") } -func oauthSignUp(ctx *middleware.Context, sid int64) { - ctx.Data["Title"] = ctx.Tr("sign_up") - - if _, err := models.GetOauth2ById(sid); err != nil { - if err == models.ErrOauth2RecordNotExist { - ctx.Handle(404, "GetOauth2ById", err) - } else { - ctx.Handle(500, "GetOauth2ById", err) - } - return - } - - ctx.Data["IsSocialLogin"] = true - ctx.Data["uname"] = strings.Replace(ctx.Session.Get("socialName").(string), " ", "", -1) - ctx.Data["email"] = ctx.Session.Get("socialEmail") - log.Trace("social ID: %v", ctx.Session.Get("socialId")) - ctx.HTML(200, SIGNUP) -} - func SignUp(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("sign_up") + ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha + if setting.Service.DisableRegistration { ctx.Data["DisableRegistration"] = true ctx.HTML(200, SIGNUP) return } - if sid, ok := ctx.Session.Get("socialId").(int64); ok { - oauthSignUp(ctx, sid) - return - } - ctx.HTML(200, SIGNUP) } func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.RegisterForm) { ctx.Data["Title"] = ctx.Tr("sign_up") + ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha + if setting.Service.DisableRegistration { ctx.Error(403) return } - isOauth := false - sid, isOauth := ctx.Session.Get("socialId").(int64) - if isOauth { - ctx.Data["IsSocialLogin"] = true - } - - // May redirect from home page. - if ctx.Query("from") == "home" { - // Clear input error box. - ctx.Data["Err_UserName"] = false - ctx.Data["Err_Email"] = false - - // Make the best guess. - uname := ctx.Query("uname") - i := strings.Index(uname, "@") - if i > -1 { - ctx.Data["email"] = uname - ctx.Data["uname"] = uname[:i] - } else { - ctx.Data["uname"] = uname - } - ctx.Data["password"] = ctx.Query("password") - ctx.HTML(200, SIGNUP) - return - } - if ctx.HasError() { ctx.HTML(200, SIGNUP) return } - if !cpt.VerifyReq(ctx.Req) { + if setting.Service.EnableCaptcha && !cpt.VerifyReq(ctx.Req) { ctx.Data["Err_Captcha"] = true ctx.RenderWithErr(ctx.Tr("form.captcha_incorrect"), SIGNUP, &form) return - } else if form.Password != form.Retype { + } + + if form.Password != form.Retype { ctx.Data["Err_Password"] = true ctx.RenderWithErr(ctx.Tr("form.password_not_match"), SIGNUP, &form) return @@ -218,7 +140,7 @@ func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.Registe Name: form.UserName, Email: form.Email, Passwd: form.Password, - IsActive: !setting.Service.RegisterEmailConfirm || isOauth, + IsActive: !setting.Service.RegisterEmailConfirm, } if err := models.CreateUser(u); err != nil { switch { @@ -251,19 +173,9 @@ func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.Registe } } - // Bind social account. - if isOauth { - if err := models.BindUserOauth2(u.Id, sid); err != nil { - ctx.Handle(500, "BindUserOauth2", err) - return - } - ctx.Session.Delete("socialId") - log.Trace("%s OAuth binded: %s -> %d", ctx.Req.RequestURI, form.UserName, sid) - } - // Send confirmation e-mail, no need for social account. - if !isOauth && setting.Service.RegisterEmailConfirm && u.Id > 1 { - mailer.SendRegisterMail(ctx.Render, u) + if setting.Service.RegisterEmailConfirm && u.Id > 1 { + mailer.SendActivateAccountMail(ctx.Context, u) ctx.Data["IsSendRegisterMail"] = true ctx.Data["Email"] = u.Email ctx.Data["Hours"] = setting.Service.ActiveCodeLives / 60 @@ -292,7 +204,7 @@ func Activate(ctx *middleware.Context) { ctx.Data["ResendLimited"] = true } else { ctx.Data["Hours"] = setting.Service.ActiveCodeLives / 60 - mailer.SendActiveMail(ctx.Render, ctx.User) + mailer.SendActivateAccountMail(ctx.Context, ctx.User) if err := ctx.Cache.Put("MailResendLimit_"+ctx.User.LowerName, ctx.User.LowerName, 180); err != nil { log.Error(4, "Set cache(MailResendLimit) fail: %v", err) @@ -341,7 +253,7 @@ func ActivateEmail(ctx *middleware.Context) { } log.Trace("Email activated: %s", email.Email) - ctx.Flash.Success(ctx.Tr("settings.activate_email_success")) + ctx.Flash.Success(ctx.Tr("settings.add_email_successs")) } ctx.Redirect(setting.AppSubUrl + "/user/settings/email") @@ -365,12 +277,14 @@ func ForgotPasswdPost(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("auth.forgot_password") if setting.MailService == nil { - ctx.Handle(403, "user.ForgotPasswdPost", nil) + ctx.Handle(403, "ForgotPasswdPost", nil) return } ctx.Data["IsResetRequest"] = true email := ctx.Query("email") + ctx.Data["Email"] = email + u, err := models.GetUserByEmail(email) if err != nil { if models.IsErrUserNotExist(err) { @@ -388,12 +302,11 @@ func ForgotPasswdPost(ctx *middleware.Context) { return } - mailer.SendResetPasswdMail(ctx.Render, u) + mailer.SendResetPasswordMail(ctx.Context, u) if err = ctx.Cache.Put("MailResendLimit_"+u.LowerName, u.LowerName, 180); err != nil { log.Error(4, "Set cache(MailResendLimit) fail: %v", err) } - ctx.Data["Email"] = email ctx.Data["Hours"] = setting.Service.ActiveCodeLives / 60 ctx.Data["IsResetSent"] = true ctx.HTML(200, FORGOT_PASSWORD) diff --git a/routers/user/home.go b/routers/user/home.go index 8008889d4..581bb0633 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -299,7 +299,7 @@ func ShowSSHKeys(ctx *middleware.Context, uid int64) { buf.WriteString(keys[i].OmitEmail()) buf.WriteString("\n") } - ctx.RenderData(200, buf.Bytes()) + ctx.PlainText(200, buf.Bytes()) } func Profile(ctx *middleware.Context) { diff --git a/routers/user/setting.go b/routers/user/setting.go index c62a123d5..9be567a48 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -49,7 +49,7 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateProfileForm) { } // Check if user name has been changed. - if ctx.User.Name != form.Name { + if ctx.User.LowerName != strings.ToLower(form.Name) { if err := models.ChangeUserName(ctx.User, form.Name); err != nil { switch { case models.IsErrUserAlreadyExist(err): @@ -70,8 +70,10 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateProfileForm) { return } log.Trace("User name changed: %s -> %s", ctx.User.Name, form.Name) - ctx.User.Name = form.Name } + // In case it's just a case change. + ctx.User.Name = form.Name + ctx.User.LowerName = strings.ToLower(form.Name) ctx.User.FullName = form.FullName ctx.User.Email = form.Email @@ -132,21 +134,41 @@ func SettingsAvatar(ctx *middleware.Context, form auth.UploadAvatarForm) { ctx.Redirect(setting.AppSubUrl + "/user/settings") } -func SettingsEmails(ctx *middleware.Context) { +func SettingsPassword(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("settings") - ctx.Data["PageIsSettingsEmails"] = true + ctx.Data["PageIsSettingsPassword"] = true + ctx.HTML(200, SETTINGS_PASSWORD) +} - emails, err := models.GetEmailAddresses(ctx.User.Id) - if err != nil { - ctx.Handle(500, "GetEmailAddresses", err) +func SettingsPasswordPost(ctx *middleware.Context, form auth.ChangePasswordForm) { + ctx.Data["Title"] = ctx.Tr("settings") + ctx.Data["PageIsSettingsPassword"] = true + + if ctx.HasError() { + ctx.HTML(200, SETTINGS_PASSWORD) return } - ctx.Data["Emails"] = emails - ctx.HTML(200, SETTINGS_EMAILS) + if !ctx.User.ValidatePassword(form.OldPassword) { + ctx.Flash.Error(ctx.Tr("settings.password_incorrect")) + } else if form.Password != form.Retype { + ctx.Flash.Error(ctx.Tr("form.password_not_match")) + } else { + ctx.User.Passwd = form.Password + ctx.User.Salt = models.GetUserSalt() + ctx.User.EncodePasswd() + if err := models.UpdateUser(ctx.User); err != nil { + ctx.Handle(500, "UpdateUser", err) + return + } + log.Trace("User password updated: %s", ctx.User.Name) + ctx.Flash.Success(ctx.Tr("settings.change_password_success")) + } + + ctx.Redirect(setting.AppSubUrl + "/user/settings/password") } -func SettingsEmailPost(ctx *middleware.Context, form auth.AddEmailForm) { +func SettingsEmails(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("settings") ctx.Data["PageIsSettingsEmails"] = true @@ -157,51 +179,43 @@ func SettingsEmailPost(ctx *middleware.Context, form auth.AddEmailForm) { } ctx.Data["Emails"] = emails - // Delete E-mail address. - if ctx.Query("_method") == "DELETE" { - id := ctx.QueryInt64("id") - if id <= 0 { - return - } + ctx.HTML(200, SETTINGS_EMAILS) +} - if err = models.DeleteEmailAddress(&models.EmailAddress{Id: id}); err != nil { - ctx.Handle(500, "DeleteEmail", err) - } else { - log.Trace("Email address deleted: %s", ctx.User.Name) - ctx.Redirect(setting.AppSubUrl + "/user/settings/email") - } - return - } +func SettingsEmailPost(ctx *middleware.Context, form auth.AddEmailForm) { + ctx.Data["Title"] = ctx.Tr("settings") + ctx.Data["PageIsSettingsEmails"] = true // Make emailaddress primary. if ctx.Query("_method") == "PRIMARY" { - id := ctx.QueryInt64("id") - if id <= 0 { + if err := models.MakeEmailPrimary(&models.EmailAddress{ID: ctx.QueryInt64("id")}); err != nil { + ctx.Handle(500, "MakeEmailPrimary", err) return } - if err = models.MakeEmailPrimary(&models.EmailAddress{Id: id}); err != nil { - ctx.Handle(500, "MakeEmailPrimary", err) - } else { - log.Trace("Email made primary: %s", ctx.User.Name) - ctx.Redirect(setting.AppSubUrl + "/user/settings/email") - } + log.Trace("Email made primary: %s", ctx.User.Name) + ctx.Redirect(setting.AppSubUrl + "/user/settings/email") return } // Add Email address. + emails, err := models.GetEmailAddresses(ctx.User.Id) + if err != nil { + ctx.Handle(500, "GetEmailAddresses", err) + return + } + ctx.Data["Emails"] = emails + if ctx.HasError() { ctx.HTML(200, SETTINGS_EMAILS) return } - cleanEmail := strings.Replace(form.Email, "\n", "", -1) e := &models.EmailAddress{ - Uid: ctx.User.Id, - Email: cleanEmail, + UID: ctx.User.Id, + Email: strings.TrimSpace(form.Email), IsActivated: !setting.Service.RegisterEmailConfirm, } - if err := models.AddEmailAddress(e); err != nil { if models.IsErrEmailAlreadyUsed(err) { ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SETTINGS_EMAILS, &form) @@ -209,64 +223,35 @@ func SettingsEmailPost(ctx *middleware.Context, form auth.AddEmailForm) { } ctx.Handle(500, "AddEmailAddress", err) return - } else { - // Send confirmation e-mail - if setting.Service.RegisterEmailConfirm { - mailer.SendActivateEmail(ctx.Render, ctx.User, e) + } - if err := ctx.Cache.Put("MailResendLimit_"+ctx.User.LowerName, ctx.User.LowerName, 180); err != nil { - log.Error(4, "Set cache(MailResendLimit) fail: %v", err) - } - ctx.Flash.Info(ctx.Tr("settings.add_email_confirmation_sent", cleanEmail, setting.Service.ActiveCodeLives/60)) - } else { - ctx.Flash.Success(ctx.Tr("settings.add_email_success")) - } + // Send confirmation e-mail + if setting.Service.RegisterEmailConfirm { + mailer.SendActivateEmailMail(ctx.Context, ctx.User, e) - log.Trace("Email address added: %s", e.Email) - ctx.Redirect(setting.AppSubUrl + "/user/settings/email") - return + if err := ctx.Cache.Put("MailResendLimit_"+ctx.User.LowerName, ctx.User.LowerName, 180); err != nil { + log.Error(4, "Set cache(MailResendLimit) fail: %v", err) + } + ctx.Flash.Info(ctx.Tr("settings.add_email_confirmation_sent", e.Email, setting.Service.ActiveCodeLives/60)) + } else { + ctx.Flash.Success(ctx.Tr("settings.add_email_success")) } - ctx.HTML(200, SETTINGS_EMAILS) -} - -func SettingsPassword(ctx *middleware.Context) { - ctx.Data["Title"] = ctx.Tr("settings") - ctx.Data["PageIsSettingsPassword"] = true - ctx.HTML(200, SETTINGS_PASSWORD) + log.Trace("Email address added: %s", e.Email) + ctx.Redirect(setting.AppSubUrl + "/user/settings/email") } -func SettingsPasswordPost(ctx *middleware.Context, form auth.ChangePasswordForm) { - ctx.Data["Title"] = ctx.Tr("settings") - ctx.Data["PageIsSettingsPassword"] = true - - if ctx.HasError() { - ctx.HTML(200, SETTINGS_PASSWORD) +func DeleteEmail(ctx *middleware.Context) { + if err := models.DeleteEmailAddress(&models.EmailAddress{ID: ctx.QueryInt64("id")}); err != nil { + ctx.Handle(500, "DeleteEmail", err) return } + log.Trace("Email address deleted: %s", ctx.User.Name) - tmpUser := &models.User{ - Passwd: form.OldPassword, - Salt: ctx.User.Salt, - } - tmpUser.EncodePasswd() - if ctx.User.Passwd != tmpUser.Passwd { - ctx.Flash.Error(ctx.Tr("settings.password_incorrect")) - } else if form.Password != form.Retype { - ctx.Flash.Error(ctx.Tr("form.password_not_match")) - } else { - ctx.User.Passwd = form.Password - ctx.User.Salt = models.GetUserSalt() - ctx.User.EncodePasswd() - if err := models.UpdateUser(ctx.User); err != nil { - ctx.Handle(500, "UpdateUser", err) - return - } - log.Trace("User password updated: %s", ctx.User.Name) - ctx.Flash.Success(ctx.Tr("settings.change_password_success")) - } - - ctx.Redirect(setting.AppSubUrl + "/user/settings/password") + ctx.Flash.Success(ctx.Tr("settings.email_deletion_success")) + ctx.JSON(200, map[string]interface{}{ + "redirect": setting.AppSubUrl + "/user/settings/email", + }) } func SettingsSSHKeys(ctx *middleware.Context) { @@ -341,31 +326,6 @@ func DeleteSSHKey(ctx *middleware.Context) { }) } -func SettingsSocial(ctx *middleware.Context) { - ctx.Data["Title"] = ctx.Tr("settings") - ctx.Data["PageIsSettingsSocial"] = true - - // Unbind social account. - remove, _ := com.StrTo(ctx.Query("remove")).Int64() - if remove > 0 { - if err := models.DeleteOauth2ById(remove); err != nil { - ctx.Handle(500, "DeleteOauth2ById", err) - return - } - ctx.Flash.Success(ctx.Tr("settings.unbind_success")) - ctx.Redirect(setting.AppSubUrl + "/user/settings/social") - return - } - - socials, err := models.GetOauthByUserId(ctx.User.Id) - if err != nil { - ctx.Handle(500, "GetOauthByUserId", err) - return - } - ctx.Data["Socials"] = socials - ctx.HTML(200, SETTINGS_SOCIAL) -} - func SettingsApplications(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("settings") ctx.Data["PageIsSettingsApplications"] = true diff --git a/routers/user/social.go b/routers/user/social.go deleted file mode 100644 index 913fc094f..000000000 --- a/routers/user/social.go +++ /dev/null @@ -1,95 +0,0 @@ -// 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 user - -import ( - "encoding/json" - "errors" - "fmt" - // "strings" - "time" - - "github.com/macaron-contrib/oauth2" - - "github.com/gogits/gogs/models" - "github.com/gogits/gogs/modules/log" - "github.com/gogits/gogs/modules/middleware" - "github.com/gogits/gogs/modules/setting" - "github.com/gogits/gogs/modules/social" -) - -func SocialSignIn(ctx *middleware.Context) { - if setting.OauthService == nil { - ctx.Handle(404, "OAuth2 service not enabled", nil) - return - } - - next := setting.AppSubUrl + "/user/login" - info := ctx.Session.Get(oauth2.KEY_TOKEN) - if info == nil { - ctx.Redirect(next) - return - } - - name := ctx.Params(":name") - connect, ok := social.SocialMap[name] - if !ok { - ctx.Handle(404, "social login not enabled", errors.New(name)) - return - } - - tk := new(oauth2.Token) - if err := json.Unmarshal(info.([]byte), tk); err != nil { - ctx.Handle(500, "Unmarshal token", err) - return - } - - ui, err := connect.UserInfo(tk, ctx.Req.URL) - if err != nil { - ctx.Handle(500, fmt.Sprintf("UserInfo(%s)", name), err) - return - } - if len(ui.Identity) == 0 { - ctx.Handle(404, "no identity is presented", errors.New(name)) - return - } - log.Info("social.SocialSignIn(social login): %s", ui) - - oa, err := models.GetOauth2(ui.Identity) - switch err { - case nil: - ctx.Session.Set("uid", oa.User.Id) - ctx.Session.Set("uname", oa.User.Name) - case models.ErrOauth2RecordNotExist: - raw, _ := json.Marshal(tk) - oa = &models.Oauth2{ - Uid: -1, - Type: connect.Type(), - Identity: ui.Identity, - Token: string(raw), - } - log.Trace("social.SocialSignIn(oa): %v", oa) - if err = models.AddOauth2(oa); err != nil { - log.Error(4, "social.SocialSignIn(add oauth2): %v", err) // 501 - return - } - case models.ErrOauth2NotAssociated: - next = setting.AppSubUrl + "/user/sign_up" - default: - ctx.Handle(500, "social.SocialSignIn(GetOauth2)", err) - return - } - - oa.Updated = time.Now() - if err = models.UpdateOauth2(oa); err != nil { - log.Error(4, "UpdateOauth2: %v", err) - } - - ctx.Session.Set("socialId", oa.Id) - ctx.Session.Set("socialName", ui.Name) - ctx.Session.Set("socialEmail", ui.Email) - log.Trace("social.SocialSignIn(social ID): %v", oa.Id) - ctx.Redirect(next) -} diff --git a/scripts/init/debian/gogs b/scripts/init/debian/gogs index b0b52286f..187e23a96 100644 --- a/scripts/init/debian/gogs +++ b/scripts/init/debian/gogs @@ -48,11 +48,11 @@ do_start() # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started - sh -c "start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ + sh -c "USER=$USER start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ --test --chdir $WORKINGDIR --chuid $USER \\ --exec $DAEMON -- $DAEMON_ARGS > /dev/null \\ || return 1" - sh -c "start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ + sh -c "USER=$USER start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ --background --chdir $WORKINGDIR --chuid $USER \\ --exec $DAEMON -- $DAEMON_ARGS \\ || return 2" diff --git a/templates/.VERSION b/templates/.VERSION index 41e2b2e2d..df1adfbcb 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.6.9.0907 Beta \ No newline at end of file +0.6.16.1018 Beta \ No newline at end of file diff --git a/templates/admin/auth/edit.tmpl b/templates/admin/auth/edit.tmpl index 6da77f128..7423081bd 100644 --- a/templates/admin/auth/edit.tmpl +++ b/templates/admin/auth/edit.tmpl @@ -1,146 +1,160 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
- {{template "admin/nav" .}} -
-
- {{template "ng/base/alert" .}} -
-
-
- {{.i18n.Tr "admin.auths.edit"}} -
-
- {{.CsrfTokenHtml}} - - {{$type := .Source.Type}} -
- - - -
-
- - -
+{{template "base/head" .}} +
+
+
+ {{template "admin/navbar" .}} +
+ {{template "base/alert" .}} +

+ {{.i18n.Tr "admin.auths.edit"}} +

+
+ + {{.CsrfTokenHtml}} + +
+ + + {{.Source.TypeName}} +
+
+ + +
+ + + {{if or .Source.IsLDAP .Source.IsDLDAP}} + {{ $cfg:=.Source.LDAP }} +
+ + +
+
+ + +
+ {{if .Source.IsLDAP}} +
+ + +
+ +
+ + +

{{.i18n.Tr "admin.auths.bind_password_helper"}}

+
+
+ + +
+ {{end}} + {{if .Source.IsDLDAP}} +
+ + +
+ {{end}} +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ {{end}} - {{if eq $type 2}} -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
+ + {{if .Source.IsSMTP}} + {{ $cfg:=.Source.SMTP }} +
+ + +
+
+ + +
+
+ + +
+
+ + +

{{.i18n.Tr "admin.auths.allowed_domains_helper"}}

+
+ {{end}} - {{else if eq $type 3}} -
- - -
-
- - -
-
- - -
+ + {{if .Source.IsPAM}} + {{ $cfg:=.Source.PAM }} +
+ + +
+ {{end}} - {{else if eq $type 4}} -
- - -
- {{end}} +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
-
- {{if eq $type 3}} - - - {{.i18n.Tr "admin.auths.enable_tls"}} -
- - - {{.i18n.Tr "admin.auths.skip_tls_verify"}} -
- {{end}} - - - {{.i18n.Tr "admin.auths.enable_auto_register"}} -
- - - {{.i18n.Tr "admin.auths.activated"}} -
-
- - -       - -
-
-

{{.i18n.Tr "admin.auths.delete_auth_title"}}

-

{{.i18n.Tr "admin.auths.delete_auth_desc"}}

-
- - -
- -
-
-
+
+ +
{{.i18n.Tr "admin.auths.delete"}}
+
+
+
+
+ + -{{template "ng/base/footer" .}} +{{template "base/footer" .}} diff --git a/templates/admin/auth/list.tmpl b/templates/admin/auth/list.tmpl index dcd48353d..72e32c6f2 100644 --- a/templates/admin/auth/list.tmpl +++ b/templates/admin/auth/list.tmpl @@ -1,59 +1,46 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
- {{template "admin/nav" .}} -
-
- {{template "ng/base/alert" .}} -
-
-
- {{.i18n.Tr "admin.auths.auth_manage_panel"}} -
-
- {{.i18n.Tr "admin.auths.new"}} -
- - - - - - - - - - - - - - {{range .Sources}} - - - - - - - - - - {{end}} - -
Id{{.i18n.Tr "admin.auths.name"}}{{.i18n.Tr "admin.auths.type"}}{{.i18n.Tr "admin.auths.enabled"}}{{.i18n.Tr "admin.auths.updated"}}{{.i18n.Tr "admin.users.created"}}{{.i18n.Tr "admin.users.edit"}}
{{.ID}}{{.Name}}{{.TypeString}}{{DateFmtShort .Updated}}{{DateFmtShort .Created}}
- {{if or .LastPageNum .NextPageNum}} -
    - {{if .LastPageNum}}
  • « Prev.
  • {{end}} - {{if .NextPageNum}}
  • » Next
  • {{end}} -
- {{end}} -
-
-
-
-
-
-
+{{template "base/head" .}} +
+
+
+ {{template "admin/navbar" .}} +
+ {{template "base/alert" .}} +

+ {{.i18n.Tr "admin.auths.auth_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}}) + +

+
+ + + + + + + + + + + + + + {{range .Sources}} + + + + + + + + + + {{end}} + +
ID{{.i18n.Tr "admin.auths.name"}}{{.i18n.Tr "admin.auths.type"}}{{.i18n.Tr "admin.auths.enabled"}}{{.i18n.Tr "admin.auths.updated"}}{{.i18n.Tr "admin.users.created"}}{{.i18n.Tr "admin.users.edit"}}
{{.ID}}{{.Name}}{{.TypeName}}{{DateFmtShort .Updated}}{{DateFmtShort .Created}}
+
+
+
-{{template "ng/base/footer" .}} \ No newline at end of file +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/admin/auth/new.tmpl b/templates/admin/auth/new.tmpl index f16db0a51..d342b2df1 100644 --- a/templates/admin/auth/new.tmpl +++ b/templates/admin/auth/new.tmpl @@ -1,136 +1,155 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
- {{template "admin/nav" .}} -
-
- {{template "ng/base/alert" .}} -
-
-
- {{.i18n.Tr "admin.auths.new"}} -
-
- {{.CsrfTokenHtml}} -
- - -
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- - - - {{.i18n.Tr "admin.auths.enable_auto_register"}} -
-
- - -
-
-
-
-
-
- {{.i18n.Tr "admin.auths.tips"}} -
-
-
GMail Setting:
-

Host: smtp.gmail.com, Post: 587, Enable TLS Encryption: true

-
-
-
+{{template "base/head" .}} +
+
+
+ {{template "admin/navbar" .}} +
+ {{template "base/alert" .}} +

+ {{.i18n.Tr "admin.auths.new"}} +

+
+
+ {{.CsrfTokenHtml}} + +
+ +
+
+ + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +

{{.i18n.Tr "admin.auths.bind_password_helper"}}

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +

{{.i18n.Tr "admin.auths.allowed_domains_helper"}}

+
+
+ + +
+ + +
+ +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ +
+ +
+
+ +

+ {{.i18n.Tr "admin.auths.tips"}} +

+
+
GMail Setting:
+

Host: smtp.gmail.com, Post: 587, Enable TLS Encryption: true

+
+
+
-{{template "ng/base/footer" .}} +{{template "base/footer" .}} diff --git a/templates/admin/config.tmpl b/templates/admin/config.tmpl index e695e657e..e302efd04 100644 --- a/templates/admin/config.tmpl +++ b/templates/admin/config.tmpl @@ -82,10 +82,14 @@
{{.i18n.Tr "admin.config.require_sign_in_view"}}
-
{{.i18n.Tr "admin.config.mail_notify"}}
-
{{.i18n.Tr "admin.config.enable_cache_avatar"}}
+
{{.i18n.Tr "admin.config.mail_notify"}}
+
+
{{.i18n.Tr "admin.config.disable_key_size_check"}}
+
+
{{.i18n.Tr "admin.config.enable_captcha"}}
+

{{.i18n.Tr "admin.config.active_code_lives"}}
{{.Service.ActiveCodeLives}} {{.i18n.Tr "tool.raw_minutes"}}
@@ -131,27 +135,6 @@

-
-
- {{.i18n.Tr "admin.config.oauth_config"}} -
-
-
-
{{.i18n.Tr "admin.config.oauth_enabled"}}
-
- {{if .OauthEnabled}}
GitHub
-
-
Google
-
-
腾讯 QQ
-
-
新浪微博
-
- {{end}} -
-
-
-
{{.i18n.Tr "admin.config.cache_config"}} diff --git a/templates/admin/dashboard.tmpl b/templates/admin/dashboard.tmpl index 874be79b0..847f48809 100644 --- a/templates/admin/dashboard.tmpl +++ b/templates/admin/dashboard.tmpl @@ -26,29 +26,25 @@
- - - - - + - + - + - + - +
{{.i18n.Tr "admin.dashboard.clean_unbind_oauth"}} {{.i18n.Tr "admin.dashboard.operation_run"}}
{{.i18n.Tr "admin.dashboard.delete_inactivate_accounts"}} {{.i18n.Tr "admin.dashboard.operation_run"}} {{.i18n.Tr "admin.dashboard.operation_run"}}
{{.i18n.Tr "admin.dashboard.delete_repo_archives"}} {{.i18n.Tr "admin.dashboard.operation_run"}} {{.i18n.Tr "admin.dashboard.operation_run"}}
{{.i18n.Tr "admin.dashboard.git_gc_repos"}} {{.i18n.Tr "admin.dashboard.operation_run"}} {{.i18n.Tr "admin.dashboard.operation_run"}}
{{.i18n.Tr "admin.dashboard.resync_all_sshkeys"}} {{.i18n.Tr "admin.dashboard.operation_run"}} {{.i18n.Tr "admin.dashboard.operation_run"}}
{{.i18n.Tr "admin.dashboard.resync_all_update_hooks"}} {{.i18n.Tr "admin.dashboard.operation_run"}} {{.i18n.Tr "admin.dashboard.operation_run"}}
diff --git a/templates/admin/notice.tmpl b/templates/admin/notice.tmpl index a3ae2a10d..a7af39aff 100644 --- a/templates/admin/notice.tmpl +++ b/templates/admin/notice.tmpl @@ -1,54 +1,63 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
- {{template "admin/nav" .}} -
-
- {{template "ng/base/alert" .}} -
-
-
- {{.i18n.Tr "admin.notices.system_notice_list"}} -
-
-
- - - - - - - - - - - - {{range .Notices}} - - - - - - - - {{end}} - -
Id{{.i18n.Tr "admin.notices.type"}}{{.i18n.Tr "admin.notices.desc"}}{{.i18n.Tr "admin.users.created"}}{{.i18n.Tr "admin.notices.op"}}
{{.Id}}{{$.i18n.Tr .TrStr}}{{.Description}}{{.Created}}
- {{if or .LastPageNum .NextPageNum}} - - {{end}} -
-
-
-
-
-
+{{template "base/head" .}} +
+
+
+ {{template "admin/navbar" .}} +
+ {{template "base/alert" .}} +

+ {{.i18n.Tr "admin.notices.system_notice_list"}} ({{.i18n.Tr "admin.total" .Total}}) +

+
+ + + + + + + + + + + + {{range .Notices}} + + + + + + + + {{end}} + +
ID{{.i18n.Tr "admin.notices.type"}}{{.i18n.Tr "admin.notices.desc"}}{{.i18n.Tr "admin.users.created"}}{{.i18n.Tr "admin.notices.op"}}
{{.Id}}{{$.i18n.Tr .TrStr}}{{.Description}}{{.Created}}
+
+ + {{with .Page}} + {{if gt .TotalPages 1}} + + {{end}} + {{end}} +
+
-{{template "ng/base/footer" .}} \ No newline at end of file +{{template "base/footer" .}} diff --git a/templates/admin/org/list.tmpl b/templates/admin/org/list.tmpl index ce5083a0a..4070b46ec 100644 --- a/templates/admin/org/list.tmpl +++ b/templates/admin/org/list.tmpl @@ -1,58 +1,65 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
- {{template "admin/nav" .}} -
-
- {{template "ng/base/alert" .}} -
-
-
- {{.i18n.Tr "admin.orgs.org_manage_panel"}} -
-
-
- - - - - - - - - - - - - - {{range .Orgs}} - - - - - - - - - - {{end}} - -
Id{{.i18n.Tr "admin.orgs.name"}}{{.i18n.Tr "email"}}{{.i18n.Tr "admin.orgs.teams"}}{{.i18n.Tr "admin.orgs.members"}}{{.i18n.Tr "admin.users.repos"}}{{.i18n.Tr "admin.users.created"}}
{{.Id}}{{.Name}}{{.Email}}{{.NumTeams}}{{.NumMembers}}{{.NumRepos}}{{DateFmtShort .Created}}
- {{if or .LastPageNum .NextPageNum}} - - {{end}} -
-
-
-
-
-
-
+{{template "base/head" .}} +
+
+
+ {{template "admin/navbar" .}} +
+ {{template "base/alert" .}} +

+ {{.i18n.Tr "admin.orgs.org_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}}) +

+
+ + + + + + + + + + + + + {{range .Orgs}} + + + + + + + + + {{end}} + +
ID{{.i18n.Tr "admin.orgs.name"}}{{.i18n.Tr "admin.orgs.teams"}}{{.i18n.Tr "admin.orgs.members"}}{{.i18n.Tr "admin.users.repos"}}{{.i18n.Tr "admin.users.created"}}
{{.Id}}{{.Name}}{{.NumTeams}}{{.NumMembers}}{{.NumRepos}}{{DateFmtShort .Created}}
+
+ + {{with .Page}} + {{if gt .TotalPages 1}} + + {{end}} + {{end}} +
+
-{{template "ng/base/footer" .}} \ No newline at end of file +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/admin/repo/list.tmpl b/templates/admin/repo/list.tmpl index 5747ccecd..84046c4ed 100644 --- a/templates/admin/repo/list.tmpl +++ b/templates/admin/repo/list.tmpl @@ -1,60 +1,69 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
- {{template "admin/nav" .}} -
-
- {{template "ng/base/alert" .}} -
-
-
- {{.i18n.Tr "admin.repos.repo_manage_panel"}} -
-
-
- - - - - - - - - - - - - - - {{range .Repos}} - - - - - - - - - - - {{end}} - -
ID{{.i18n.Tr "admin.repos.owner"}}{{.i18n.Tr "admin.repos.name"}}{{.i18n.Tr "admin.repos.private"}}{{.i18n.Tr "admin.repos.watches"}}{{.i18n.Tr "admin.repos.stars"}}{{.i18n.Tr "admin.repos.issues"}}{{.i18n.Tr "admin.users.created"}}
{{.ID}}{{.Owner.Name}}{{.Name}}{{.NumWatches}}{{.NumStars}}{{.NumIssues}}{{DateFmtShort .Created}}
- {{if or .LastPageNum .NextPageNum}} -
    - {{if .LastPageNum}}
  • « Prev.
  • {{end}} - {{if .NextPageNum}}
  • » Next
  • {{end}} -
- {{end}} -
-
-
-
-
-
-
-
+{{template "base/head" .}} +
+
+
+ {{template "admin/navbar" .}} +
+ {{template "base/alert" .}} +

+ {{.i18n.Tr "admin.repos.repo_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}}) +

+
+ + + + + + + + + + + + + + + {{range .Repos}} + + + + + + + + + + + {{end}} + +
ID{{.i18n.Tr "admin.repos.owner"}}{{.i18n.Tr "admin.repos.name"}}{{.i18n.Tr "admin.repos.private"}}{{.i18n.Tr "admin.repos.watches"}}{{.i18n.Tr "admin.repos.stars"}}{{.i18n.Tr "admin.repos.issues"}}{{.i18n.Tr "admin.users.created"}}
{{.ID}}{{.Owner.Name}}{{.Name}}{{.NumWatches}}{{.NumStars}}{{.NumIssues}}{{DateFmtShort .Created}}
+
+ + {{with .Page}} + {{if gt .TotalPages 1}} + + {{end}} + {{end}} +
+
+
-{{template "ng/base/footer" .}} +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/admin/user/edit.tmpl b/templates/admin/user/edit.tmpl index e6591b80d..d4e83d6f9 100644 --- a/templates/admin/user/edit.tmpl +++ b/templates/admin/user/edit.tmpl @@ -1,93 +1,100 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
- {{template "admin/nav" .}} -
-
- {{template "ng/base/alert" .}} -
-
-
- {{.i18n.Tr "admin.users.edit_account"}} -
-
- {{.CsrfTokenHtml}} -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - - {{.i18n.Tr "admin.users.is_activated"}} -
- - - {{.i18n.Tr "admin.users.is_admin"}} -
- - - {{.i18n.Tr "admin.users.allow_git_hook"}} -
-
- - -      - -
-
-

{{.i18n.Tr "settings.delete_account_title"}}

-

{{.i18n.Tr "settings.delete_account_desc"}}

-
- - -
-
-
-
-
+{{template "base/head" .}} +
+
+
+ {{template "admin/navbar" .}} +
+ {{template "base/alert" .}} +

+ {{.i18n.Tr "admin.users.edit_account"}} +

+
+
+ {{.CsrfTokenHtml}} +
+ + {{.User.Name}} +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +

{{.i18n.Tr "admin.users.password_helper"}}

+
+
+ + +
+
+ + +
+ +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ +
+ +
{{.i18n.Tr "admin.users.delete_account"}}
+
+
+
-{{template "ng/base/footer" .}} + + +{{template "base/footer" .}} diff --git a/templates/admin/user/list.tmpl b/templates/admin/user/list.tmpl index 1dd5553eb..2e23c9ec6 100644 --- a/templates/admin/user/list.tmpl +++ b/templates/admin/user/list.tmpl @@ -1,61 +1,72 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
- {{template "admin/nav" .}} -
-
- {{template "ng/base/alert" .}} -
-
-
- {{.i18n.Tr "admin.users.user_manage_panel"}} -
-
- {{.i18n.Tr "admin.users.new_account"}} -
- - - - - - - - - - - - - - - {{range .Users}} - - - - - - - - - - - {{end}} - -
Id{{.i18n.Tr "admin.users.name"}}{{.i18n.Tr "email"}}{{.i18n.Tr "admin.users.activated"}}{{.i18n.Tr "admin.users.admin"}}{{.i18n.Tr "admin.users.repos"}}{{.i18n.Tr "admin.users.created"}}{{.i18n.Tr "admin.users.edit"}}
{{.Id}}{{.Name}}{{.Email}}{{.NumRepos}}{{DateFmtShort .Created }}
- {{if or .LastPageNum .NextPageNum}} - - {{end}} -
-
-
-
-
-
+{{template "base/head" .}} +
+
+
+ {{template "admin/navbar" .}} +
+ {{template "base/alert" .}} +

+ {{.i18n.Tr "admin.users.user_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}}) + +

+
+ + + + + + + + + + + + + + + {{range .Users}} + + + + + + + + + + + {{end}} + +
ID{{.i18n.Tr "admin.users.name"}}{{.i18n.Tr "email"}}{{.i18n.Tr "admin.users.activated"}}{{.i18n.Tr "admin.users.admin"}}{{.i18n.Tr "admin.users.repos"}}{{.i18n.Tr "admin.users.created"}}{{.i18n.Tr "admin.users.edit"}}
{{.Id}}{{.Name}}{{.NumRepos}}{{DateFmtShort .Created }}
+ + {{with .Page}} + {{if gt .TotalPages 1}} + + {{end}} + {{end}} +
+
-{{template "ng/base/footer" .}} \ No newline at end of file +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/admin/user/new.tmpl b/templates/admin/user/new.tmpl index 9b05eebf5..34630ecec 100644 --- a/templates/admin/user/new.tmpl +++ b/templates/admin/user/new.tmpl @@ -1,58 +1,66 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
- {{template "admin/nav" .}} -
-
- {{template "ng/base/alert" .}} -
-
-
- {{.i18n.Tr "admin.users.new_account"}} -
-
- {{.CsrfTokenHtml}} -
- - -
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
+{{template "base/head" .}} +
+
+
+ {{template "admin/navbar" .}} +
+ {{template "base/alert" .}} +

+ {{.i18n.Tr "admin.users.new_account"}} +

+
+
+ {{.CsrfTokenHtml}} + +
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ + + {{if .CanSendEmail}} +
+
+ + +
+
+ {{end}} + +
+ +
+
+
+
-{{template "ng/base/footer" .}} \ No newline at end of file +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/base/footer.tmpl b/templates/base/footer.tmpl index d4b1eb885..31941b757 100644 --- a/templates/base/footer.tmpl +++ b/templates/base/footer.tmpl @@ -44,5 +44,6 @@ {{end}} + \ No newline at end of file diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index 80f771ebc..323079f7c 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -20,7 +20,7 @@ - + @@ -125,11 +125,11 @@ diff --git a/templates/home.tmpl b/templates/home.tmpl index 18b430d1f..77dcebeec 100644 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -3,7 +3,7 @@
- +

@@ -12,7 +12,6 @@

{{.i18n.Tr "app_desc"}}

-
{{if eq .Lang "de-DE"}}
diff --git a/templates/install.tmpl b/templates/install.tmpl index 657247ce5..f291012dc 100644 --- a/templates/install.tmpl +++ b/templates/install.tmpl @@ -8,6 +8,8 @@
{{template "base/alert" .}} +

{{.i18n.Tr "install.docker_helper" "https://github.com/gogits/gogs/tree/master/docker" | Safe}}

+

{{.i18n.Tr "install.db_title"}}

@@ -152,7 +154,7 @@
-
+
{{.i18n.Tr "install.server_service_title"}}
@@ -170,11 +172,17 @@
-
+
+
+
+ + +
+
diff --git a/templates/mail/auth/activate.tmpl b/templates/mail/auth/activate.tmpl new file mode 100644 index 000000000..5822770e1 --- /dev/null +++ b/templates/mail/auth/activate.tmpl @@ -0,0 +1,15 @@ + + + + + {{.User.Name}}, please activate your account + + + +

Hi {{.User.Name}}, thanks for registering at {{.AppName}}!

+

Please click the following link to verify your e-mail address within {{.ActiveCodeLives}} hours:

+

{{.AppUrl}}user/activate?code={{.Code}}

+

Not working? Try copying and pasting it to your browser.

+

© 2015 Gogs: Go Git Service

+ + diff --git a/templates/mail/auth/activate_email.tmpl b/templates/mail/auth/activate_email.tmpl index 24bbf89d0..1a918fe22 100644 --- a/templates/mail/auth/activate_email.tmpl +++ b/templates/mail/auth/activate_email.tmpl @@ -1,30 +1,15 @@ - -{{.User.Name}}, please activate your e-mail address + + + + + {{.User.Name}}, please verify your e-mail address - -
-
-
-
-

{{.AppName}}

-
-
- Hi {{.User.Name}}, -
-
-

Please click the following link to verify your e-mail address within {{.ActiveCodeLives}} hours.

-

- {{.AppUrl}}user/activate_email?code={{.Code}}&email={{.Email}} -

-

Not working? Try copying and pasting it to your browser.

-
-
-
-
-
- © 2014 Gogs: Go Git Service -
-
-
+ + +

Hi {{.User.Name}},

+

Please click the following link to verify your e-mail address within {{.ActiveCodeLives}} hours:

+

{{.AppUrl}}user/activate_email?code={{.Code}}&email={{.Email}}

+

Not working? Try copying and pasting it to your browser.

+

© 2015 Gogs: Go Git Service

\ No newline at end of file diff --git a/templates/mail/auth/active.tmpl b/templates/mail/auth/active.tmpl deleted file mode 100644 index b9dacc757..000000000 --- a/templates/mail/auth/active.tmpl +++ /dev/null @@ -1,33 +0,0 @@ - - - - -{{.User.Name}}, please activate your account - - -
-
-
-
-

{{.AppName}}

-
-
- Hi {{.User.Name}}, -
-
-

Please click the following link to verify your e-mail address within {{.ActiveCodeLives}} hours.

-

- {{.AppUrl}}user/activate?code={{.Code}} -

-

Not working? Try copying and pasting it to your browser.

-
-
-
-
-
- © 2014 Gogs: Go Git Service -
-
-
- - diff --git a/templates/mail/auth/register_notify.tmpl b/templates/mail/auth/register_notify.tmpl new file mode 100644 index 000000000..ae9d76b72 --- /dev/null +++ b/templates/mail/auth/register_notify.tmpl @@ -0,0 +1,13 @@ + + + + + {{.User.Name}}, welcome to {{.AppName}} + + + +

Hi {{.User.Name}}, this is your registration confirmation email for {{.AppName}}!

+

You can now login via username: {{.User.Name}}.

+

© 2015 Gogs: Go Git Service

+ + diff --git a/templates/mail/auth/register_success.tmpl b/templates/mail/auth/register_success.tmpl deleted file mode 100644 index 5e4cb84ba..000000000 --- a/templates/mail/auth/register_success.tmpl +++ /dev/null @@ -1,33 +0,0 @@ - - - - -{{.User.Name}}, welcome to {{.AppName}} - - -
-
-
-
-

{{.AppName}}

-
-
- Hi {{.User.Name}}, this is your registration email for {{.AppName}}! -
-
-

Please click the following link to verify your e-mail address within {{.ActiveCodeLives}} hours.

-

- {{.AppUrl}}user/activate?code={{.Code}} -

-

Not working? Try copying and pasting it to your browser.

-
-
-
-
-
- © 2014 Gogs: Go Git Service -
-
-
- - diff --git a/templates/mail/auth/reset_passwd.tmpl b/templates/mail/auth/reset_passwd.tmpl index bf0b9cd3e..92ae9f328 100644 --- a/templates/mail/auth/reset_passwd.tmpl +++ b/templates/mail/auth/reset_passwd.tmpl @@ -1,33 +1,15 @@ - + - -{{.User.Name}}, please reset your password + + {{.User.Name}}, you have requested to reset your password - -
-
-
-
-

{{.AppName}}

-
-
- Hi {{.User.Name}}, -
-
-

Please click the following link to reset your password within {{.ActiveCodeLives}} hours.

-

- {{.AppUrl}}user/reset_password?code={{.Code}} -

-

Not working? Try copying and pasting it to your browser.

-
-
-
-
-
- © 2014 Gogs: Go Git Service -
-
-
+ + +

Hi {{.User.Name}},

+

Please click the following link to verify your e-mail address within {{.ActiveCodeLives}} hours:

+

{{.AppUrl}}user/reset_password?code={{.Code}}

+

Not working? Try copying and pasting it to your browser.

+

© 2015 Gogs: Go Git Service

- + \ No newline at end of file diff --git a/templates/mail/notify/collaborator.tmpl b/templates/mail/notify/collaborator.tmpl index 36a3149da..9b7e76edb 100644 --- a/templates/mail/notify/collaborator.tmpl +++ b/templates/mail/notify/collaborator.tmpl @@ -1,18 +1,16 @@ - - {{.Subject}} + + {{.Subject}} -

You can now push to this repository.

-

- --- -
- View it on Gogs: -
- {{.AppUrl}}{{.RepoLink}} -

+

You are now a collaborator of this repository.

+

+ --- +
+ View it on Gogs: {{.RepoLink}} +

diff --git a/templates/mail/notify/mention.tmpl b/templates/mail/notify/mention.tmpl index be022d0dd..6c6fba32c 100644 --- a/templates/mail/notify/mention.tmpl +++ b/templates/mail/notify/mention.tmpl @@ -1,16 +1,17 @@ - - {{.Subject}} + + {{.Subject}} -

{{.ActUserName}} mentioned you.

-

- --- -
- View it on Gogs. -

+

@{{.ActUserName}} mentioned you:

+

{{.Content | Str2html}}

+

+ --- +
+ View it on Gogs. +

diff --git a/templates/ng/base/social.tmpl b/templates/ng/base/social.tmpl deleted file mode 100644 index 277b54fcb..000000000 --- a/templates/ng/base/social.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -{{if .OauthService.GitHub}}GitHub{{end}} -{{if .OauthService.Google}}Google +{{end}} -{{if .OauthService.Weibo}}新浪微博{{end}} -{{if .OauthService.Tencent}}腾讯 QQ {{end}} \ No newline at end of file diff --git a/templates/repo/bare.tmpl b/templates/repo/bare.tmpl index 704baa757..e57420d8e 100644 --- a/templates/repo/bare.tmpl +++ b/templates/repo/bare.tmpl @@ -1,55 +1,61 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
- -
-
-
-
- {{.i18n.Tr "repo.settings"}} - {{.i18n.Tr "repo.quick_guide"}} -
-
-
-

{{.i18n.Tr "repo.clone_this_repo"}}

- {{if not $.DisableSSH}} - - {{end}} - - - -

{{.i18n.Tr "repo.clone_helper" "http://git-scm.com/book/en/Git-Basics-Getting-a-Git-Repository" | Str2html}}

-
-
-
-

{{.i18n.Tr "repo.create_new_repo_command"}}

-
touch README.md
+{{template "base/head" .}}
+
+ {{template "repo/header" .}} +
+
+
+ {{template "base/alert" .}} + {{if .IsRepositoryAdmin}} +

+ {{.i18n.Tr "repo.quick_guide"}} + +

+
+
+

{{.i18n.Tr "repo.clone_this_repo"}} {{.i18n.Tr "repo.clone_helper" "http://git-scm.com/book/en/Git-Basics-Getting-a-Git-Repository" | Str2html}}

+
+ {{if not $.DisableSSH}} + + {{end}} + + + +
+
+
+ +
+

{{.i18n.Tr "repo.create_new_repo_command"}}

+
+
touch README.md
 git init
 git add README.md
 git commit -m "first commit"
 git remote add origin {{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}
 git push -u origin master
-
-
-
-
-

{{.i18n.Tr "repo.push_exist_repo"}}

-
git remote add origin {{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}
+            
+
+
+ +
+

{{.i18n.Tr "repo.push_exist_repo"}}

+
+
git remote add origin {{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}
 git push -u origin master
-
-
-
+
+ {{end}}
+
+
-{{template "ng/base/footer" .}} +{{template "base/footer" .}} diff --git a/templates/repo/diff.tmpl b/templates/repo/diff.tmpl index a280c81e1..2e9bdd034 100644 --- a/templates/repo/diff.tmpl +++ b/templates/repo/diff.tmpl @@ -6,12 +6,12 @@ {{template "repo/commits_table" .}} {{else}}

- {{RenderCommitMessage .Commit.Message $.RepoLink}} + {{RenderCommitMessage .Commit.Message $.RepoLink}}

{{if .Author}} diff --git a/templates/repo/forks.tmpl b/templates/repo/forks.tmpl new file mode 100644 index 000000000..d1fd0320c --- /dev/null +++ b/templates/repo/forks.tmpl @@ -0,0 +1,27 @@ +{{template "ng/base/head" .}} +{{template "ng/base/header" .}} +
+ {{template "repo/header_old" .}} +
+
+
+

+ {{.i18n.Tr "repos.forks"}} +

+ +
    + {{range .Forks}} +

    + + {{.Owner.Name}} + / + {{.Name}} +

    + {{end}} +
+
+ + {{template "repo/sidebar" .}} +
+
+{{template "ng/base/footer" .}} diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl index 2f883cd70..b03e2eaad 100644 --- a/templates/repo/header.tmpl +++ b/templates/repo/header.tmpl @@ -1,48 +1,48 @@ {{with .Repository}}
{{end}} diff --git a/templates/repo/issue/list.tmpl b/templates/repo/issue/list.tmpl index 8199bb1d1..e0ae69776 100644 --- a/templates/repo/issue/list.tmpl +++ b/templates/repo/issue/list.tmpl @@ -139,7 +139,7 @@ {{end}} {{end}} - {{$.i18n.Tr "repo.issues.next"}} + {{$.i18n.Tr "repo.issues.next"}} 
diff --git a/templates/repo/issue/view_content.tmpl b/templates/repo/issue/view_content.tmpl index d258d3d0a..13729c95a 100644 --- a/templates/repo/issue/view_content.tmpl +++ b/templates/repo/issue/view_content.tmpl @@ -124,7 +124,7 @@
- {{.Content | Safe}} + {{.Content | Str2html}}
{{end}} diff --git a/templates/repo/pulls.tmpl b/templates/repo/pulls.tmpl deleted file mode 100644 index d5f3276a7..000000000 --- a/templates/repo/pulls.tmpl +++ /dev/null @@ -1,121 +0,0 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
- {{template "repo/header_old" .}} -
-
-
-

Fix: Repo Name can not be converted to lower in some cases #256

-
-    - -
-
-
- - - eryx 2 commits - gogits:master - - unknown repository - -
-
- -
- +12 - - - - -7 -
-
-
-
-
- -
-

eryx - 7 days ago - - owner - - - -

-
just like github.com, the RepoName can not be converted to lower in the case of backend data storage, or frontend clone link display.
-
-
-
- - - 8e259ba - Fix: Repo Name can not be converted to lower in the case of backend data storage, or frontend clone link display. or frontend clone link display or frontend clone link display. -
-
-
- -
-

- All is well ! -

-
-
This pull request can be automatically merged.
- You can also merge branches on the command line.
- -
-
-
-
- -
-
- -
-
- - -

-    - -

- -
- preview -
-
-
-
-
-
- 1-4 -
-
-
commit
-
file diff
-
-
- {{template "repo/sidebar_mini" .}} -
-
-
-
-{{template "ng/base/footer" .}} \ No newline at end of file diff --git a/templates/repo/pulls/compare.tmpl b/templates/repo/pulls/compare.tmpl index d176ac36a..c3851d805 100644 --- a/templates/repo/pulls/compare.tmpl +++ b/templates/repo/pulls/compare.tmpl @@ -52,7 +52,7 @@
{{else if .HasPullRequest}}
- {{.i18n.Tr "repo.pulls.has_pull_request" $.RepoLink $.RepoRelPath .PullRequest.PullIndex | Safe}} + {{.i18n.Tr "repo.pulls.has_pull_request" $.RepoLink $.RepoRelPath .PullRequest.Index | Safe}}
{{else}} {{template "repo/issue/new_form" .}} diff --git a/templates/repo/stars.tmpl b/templates/repo/stars.tmpl new file mode 100644 index 000000000..af3193dcf --- /dev/null +++ b/templates/repo/stars.tmpl @@ -0,0 +1,61 @@ +{{template "ng/base/head" .}} +{{template "ng/base/header" .}} +
+ {{template "repo/header_old" .}} +
+
+
+

+ {{.i18n.Tr "repos.stars"}} +

+ +
    + {{range .Stars}} +
  1. + + + +

    {{.Name}}

    +
    + +

    + {{if .Website}} + {{.Website}} + {{else if .Location}} + {{.Location}} + {{else}} + {{$.i18n.Tr "user.join_on"}} {{DateFmtShort .Created}} + {{end}} +

    +
  2. + {{end}} +
+ + {{with .Page}} + {{if gt .TotalPages 1}} + + {{end}} + {{end}} +
+
+ + {{template "repo/sidebar" .}} +
+
+{{template "ng/base/footer" .}} diff --git a/templates/repo/watchers.tmpl b/templates/repo/watchers.tmpl new file mode 100644 index 000000000..03aba0e9a --- /dev/null +++ b/templates/repo/watchers.tmpl @@ -0,0 +1,61 @@ +{{template "ng/base/head" .}} +{{template "ng/base/header" .}} +
+ {{template "repo/header_old" .}} +
+
+
+

+ {{.i18n.Tr "repos.watches"}} +

+ +
    + {{range .Watchers}} +
  1. + + + +

    {{.Name}}

    +
    + +

    + {{if .Website}} + {{.Website}} + {{else if .Location}} + {{.Location}} + {{else}} + {{$.i18n.Tr "user.join_on"}} {{DateFmtShort .Created}} + {{end}} +

    +
  2. + {{end}} +
+ + {{with .Page}} + {{if gt .TotalPages 1}} + + {{end}} + {{end}} +
+
+ + {{template "repo/sidebar" .}} +
+
+{{template "ng/base/footer" .}} diff --git a/templates/user/auth/activate.tmpl b/templates/user/auth/activate.tmpl index b4dbb2e20..caadc4f82 100644 --- a/templates/user/auth/activate.tmpl +++ b/templates/user/auth/activate.tmpl @@ -1,39 +1,46 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
+{{template "base/head" .}} +
+
+
+ {{.CsrfTokenHtml}} -
-

{{.i18n.Tr "auth.active_your_account"}}

-
-
- {{if .IsActivatePage}} +

+ {{.i18n.Tr "auth.active_your_account"}} +

+
+ {{template "base/alert" .}} + {{if .IsActivatePage}} {{if .ServiceNotEnabled}} -

{{.i18n.Tr "auth.disable_register_mail"}}

+

{{.i18n.Tr "auth.disable_register_mail"}}

{{else if .ResendLimited}} -

{{.i18n.Tr "auth.resent_limit_prompt"}}

+

{{.i18n.Tr "auth.resent_limit_prompt"}}

{{else}} -

{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .SignedUser.Email .Hours | Str2html}}

-
- - {{.i18n.Tr "auth.sign_in_email"}} +

{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .SignedUser.Email .Hours | Str2html}}

+
+ {{end}} - {{else}} + {{else}} {{if .IsSendRegisterMail}} -

{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .Email .Hours | Str2html}}

-
- - {{.i18n.Tr "auth.sign_in_email"}} +

{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .Email .Hours | Str2html}}

+
+ {{else if .IsActivateFailed}} -

{{.i18n.Tr "auth.invalid_code"}}

+

{{.i18n.Tr "auth.invalid_code"}}

{{else}} -

{{.i18n.Tr "auth.has_unconfirmed_mail" .SignedUser.Name .SignedUser.Email | Str2html}}

-
- - +

{{.i18n.Tr "auth.has_unconfirmed_mail" .SignedUser.Name .SignedUser.Email | Str2html}}

+
+
+ +
{{end}} - {{end}} + {{end}}
- + +
+
-{{template "ng/base/footer" .}} +{{template "base/footer" .}} diff --git a/templates/user/auth/forgot_passwd.tmpl b/templates/user/auth/forgot_passwd.tmpl index 6122dfceb..f8f23318c 100644 --- a/templates/user/auth/forgot_passwd.tmpl +++ b/templates/user/auth/forgot_passwd.tmpl @@ -1,32 +1,38 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
+{{template "base/head" .}} +
+
+
+ {{.CsrfTokenHtml}} -
-

{{.i18n.Tr "auth.forgot_password"}}

-
-
- {{template "ng/base/alert" .}} - {{if .IsResetSent}} +

+ {{.i18n.Tr "auth.forgot_password"}} +

+
+ {{template "base/alert" .}} + {{if .IsResetSent}}

{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .Email .Hours | Str2html}}

-
- - {{.i18n.Tr "auth.sign_in_email"}} - {{else if .IsResetRequest}} -
- - +
+ + {{else if .IsResetRequest}} +
+ + +
+
+
+ +
-
- - - {{else if .IsResetDisable}} -

{{.i18n.Tr "auth.disable_register_mail"}}

- {{else if .ResendLimited}} -

{{.i18n.Tr "auth.resent_limit_prompt"}}

- {{end}} + {{else if .IsResetDisable}} +

{{.i18n.Tr "auth.disable_register_mail"}}

+ {{else if .ResendLimited}} +

{{.i18n.Tr "auth.resent_limit_prompt"}}

+ {{end}}
- + +
+
-{{template "ng/base/footer" .}} +{{template "base/footer" .}} diff --git a/templates/user/auth/reset_passwd.tmpl b/templates/user/auth/reset_passwd.tmpl index d63d7a0f3..5f06bd649 100644 --- a/templates/user/auth/reset_passwd.tmpl +++ b/templates/user/auth/reset_passwd.tmpl @@ -1,25 +1,31 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
+{{template "base/head" .}} +
+
+
+ {{.CsrfTokenHtml}} -
-

{{.i18n.Tr "auth.reset_password"}}

-
-
- {{template "ng/base/alert" .}} - {{if .IsResetForm}} -
- - + +

+ {{.i18n.Tr "auth.reset_password"}} +

+
+ {{template "base/alert" .}} + {{if .IsResetForm}} +
+ + +
+
+
+ +
-
- - - {{else}} -

{{.i18n.Tr "auth.invalid_code"}}

- {{end}} + {{else}} +

{{.i18n.Tr "auth.invalid_code"}}

+ {{end}}
- + +
+
-{{template "ng/base/footer" .}} +{{template "base/footer" .}} diff --git a/templates/user/auth/signin.tmpl b/templates/user/auth/signin.tmpl index bc0b0f2d3..a1e30e95c 100644 --- a/templates/user/auth/signin.tmpl +++ b/templates/user/auth/signin.tmpl @@ -1,45 +1,44 @@ -{{template "ng/base/head" .}} -{{template "ng/base/header" .}} -
-
-
-

{{if .IsSocialLogin}}{{.i18n.Tr "social_sign_in" | Str2html}}{{else}}{{.i18n.Tr "sign_in"}}{{end}}

-
-
- {{template "ng/base/alert" .}} -
- - -
-
- - -
- {{if not .IsSocialLogin}} -
- -
- {{end}} -
- -      - {{if not .IsSocialLogin}}{{.i18n.Tr "auth.forget_password"}}{{end}} -
- {{if .ShowRegistrationButton}} - - {{end}} - {{if and (not .IsSocialLogin) .OauthEnabled}} -
-