From 32e56f4178700bdd0f5ec20e7574ffde1a47edac Mon Sep 17 00:00:00 2001 From: jiyong_sd Date: Thu, 21 Jul 2022 09:42:39 +0800 Subject: [PATCH] Adapt to the new framework Signed-off-by: jiyong_sd Change-Id: I79008790ddc1f01dc390fd246495192d2d26d625 --- .../imageColorspace/BUILD.gn | 6 +- .../imageColorspace/Test.json | 39 +- .../imageColorspace/src/main/config.json | 234 +- .../main/js/{default => MainAbility}/app.js | 46 +- .../{default => MainAbility}/i18n/en-US.json | 10 +- .../{default => MainAbility}/i18n/zh-CN.json | 10 +- .../js/MainAbility}/pages/index/index.css | 0 .../js/MainAbility}/pages/index/index.hml | 0 .../main/js/MainAbility/pages/index/index.js | 29 + .../src/main/js/TestAbility/app.js | 31 + .../src/main/js/TestAbility/i18n/en-US.json | 8 + .../src/main/js/TestAbility/i18n/zh-CN.json | 8 + .../main/js/TestAbility/pages/index/index.css | 30 + .../js/TestAbility}/pages/index/index.hml | 10 +- .../main/js/TestAbility/pages/index/index.js | 26 + .../js/TestRunner/OpenHarmonyTestRunner.js | 59 + .../src/main/js/default/pages/index/index.js | 41 - .../src/main/js/test/List.test.js | 37 +- .../src/main/js/test/colorspace.test.js | 780 ++--- .../src/main/js/test/testImg2.js | 2776 ++++++++--------- .../main/resources/base/element/string.json | 38 +- .../imagePixelMapFramework/BUILD.gn | 6 +- .../imagePixelMapFramework/Test.json | 40 +- .../src/main/config.json | 234 +- .../main/js/{default => MainAbility}/app.js | 46 +- .../src/main/js/MainAbility}/i18n/en-US.json | 0 .../src/main/js/MainAbility}/i18n/zh-CN.json | 0 .../pages/index/index.css | 92 +- .../main/js/MainAbility/pages/index/index.hml | 5 + .../main/js/MainAbility/pages/index/index.js | 29 + .../src/main/js/TestAbility/app.js | 31 + .../src/main/js/TestAbility/i18n/en-US.json | 8 + .../src/main/js/TestAbility/i18n/zh-CN.json | 8 + .../main/js/TestAbility/pages/index/index.css | 30 + .../main/js/TestAbility/pages/index/index.hml | 5 + .../main/js/TestAbility/pages/index/index.js | 26 + .../js/TestRunner/OpenHarmonyTestRunner.js | 59 + .../src/main/js/default/pages/index/index.js | 41 - .../src/main/js/test/List.test.js | 37 +- .../src/main/js/test/framework.test.js | 1881 +++++------ .../src/main/js/test/testImg2.js | 182 +- .../main/resources/base/element/string.json | 38 +- .../image_js_standard/imageReceiver/BUILD.gn | 4 +- .../image_js_standard/imageReceiver/Test.json | 35 +- .../imageReceiver/src/main/config.json | 218 +- .../main/js/{default => MainAbility}/app.js | 0 .../src/main/js/MainAbility}/i18n/en-US.json | 10 +- .../src/main/js/MainAbility}/i18n/zh-CN.json | 10 +- .../js/MainAbility}/pages/index/index.css | 90 +- .../js/MainAbility}/pages/index/index.hml | 8 +- .../main/js/MainAbility/pages/index/index.js | 29 + .../src/main/js/TestAbility/app.js | 31 + .../src/main/js/TestAbility/i18n/en-US.json | 8 + .../src/main/js/TestAbility/i18n/zh-CN.json | 8 + .../main/js/TestAbility/pages/index/index.css | 30 + .../main/js/TestAbility/pages/index/index.hml | 5 + .../main/js/TestAbility/pages/index/index.js | 26 + .../js/TestRunner/OpenHarmonyTestRunner.js | 59 + .../src/main/js/default/pages/index/index.js | 41 - .../src/main/js/test/List.test.js | 5 +- .../src/main/js/test/receiver.test.js | 4 +- .../main/resources/base/element/string.json | 18 +- .../recorderProfile/BUILD.gn | 6 +- .../recorderProfile/Test.json | 36 +- .../recorderProfile/src/main/config.json | 220 +- .../main/js/{default => MainAbility}/app.js | 46 +- .../{default => MainAbility}/i18n/en-US.json | 10 +- .../src/main/js/MainAbility}/i18n/zh-CN.json | 10 +- .../pages/index/index.css | 122 +- .../pages/index/index.hml | 40 +- .../main/js/MainAbility/pages/index/index.js | 29 + .../src/main/js/TestAbility/app.js | 31 + .../src/main/js/TestAbility/i18n/en-US.json | 8 + .../src/main/js/TestAbility/i18n/zh-CN.json | 8 + .../main/js/TestAbility/pages/index/index.css | 30 + .../main/js/TestAbility/pages/index/index.hml | 5 + .../main/js/TestAbility/pages/index/index.js | 26 + .../js/TestRunner/OpenHarmonyTestRunner.js | 59 + .../src/main/js/default/pages/index/index.js | 41 - .../src/main/js/test/List.test.js | 44 +- .../test/ProfileAbnormalTestCallback.test.js | 5 +- .../test/ProfileAbnormalTestPromise.test.js | 4 +- .../src/main/js/test/ProfileTestBase.js | 2 +- .../main/js/test/ProfileTestCallback.test.js | 5 +- .../main/js/test/ProfileTestPromise.test.js | 4 +- .../main/resources/base/element/string.json | 38 +- 86 files changed, 4654 insertions(+), 3830 deletions(-) rename multimedia/image/image_js_standard/imageColorspace/src/main/js/{default => MainAbility}/app.js (97%) rename multimedia/image/image_js_standard/imageColorspace/src/main/js/{default => MainAbility}/i18n/en-US.json (92%) rename multimedia/image/image_js_standard/imageColorspace/src/main/js/{default => MainAbility}/i18n/zh-CN.json (92%) rename multimedia/image/image_js_standard/{imageReceiver/src/main/js/default => imageColorspace/src/main/js/MainAbility}/pages/index/index.css (100%) rename multimedia/image/image_js_standard/{imageReceiver/src/main/js/default => imageColorspace/src/main/js/MainAbility}/pages/index/index.hml (100%) create mode 100644 multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/pages/index/index.js create mode 100644 multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/app.js create mode 100644 multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/i18n/en-US.json create mode 100644 multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/i18n/zh-CN.json create mode 100644 multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.css rename multimedia/image/image_js_standard/{imagePixelMapFramework/src/main/js/default => imageColorspace/src/main/js/TestAbility}/pages/index/index.hml (95%) create mode 100644 multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.js create mode 100644 multimedia/image/image_js_standard/imageColorspace/src/main/js/TestRunner/OpenHarmonyTestRunner.js delete mode 100644 multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.js rename multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/{default => MainAbility}/app.js (97%) rename multimedia/image/image_js_standard/{imageReceiver/src/main/js/default => imagePixelMapFramework/src/main/js/MainAbility}/i18n/en-US.json (100%) rename multimedia/image/image_js_standard/{imageReceiver/src/main/js/default => imagePixelMapFramework/src/main/js/MainAbility}/i18n/zh-CN.json (100%) rename multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/{default => MainAbility}/pages/index/index.css (94%) create mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.hml create mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.js create mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/app.js create mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/i18n/en-US.json create mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/i18n/zh-CN.json create mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.css create mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.hml create mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.js create mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestRunner/OpenHarmonyTestRunner.js delete mode 100644 multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.js rename multimedia/image/image_js_standard/imageReceiver/src/main/js/{default => MainAbility}/app.js (100%) rename multimedia/image/image_js_standard/{imagePixelMapFramework/src/main/js/default => imageReceiver/src/main/js/MainAbility}/i18n/en-US.json (91%) rename multimedia/{media/media_js_standard/recorderProfile/src/main/js/default => image/image_js_standard/imageReceiver/src/main/js/MainAbility}/i18n/zh-CN.json (91%) rename multimedia/image/image_js_standard/{imageColorspace/src/main/js/default => imageReceiver/src/main/js/MainAbility}/pages/index/index.css (94%) rename multimedia/image/image_js_standard/{imageColorspace/src/main/js/default => imageReceiver/src/main/js/MainAbility}/pages/index/index.hml (91%) create mode 100644 multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.js create mode 100644 multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/app.js create mode 100644 multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/i18n/en-US.json create mode 100644 multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/i18n/zh-CN.json create mode 100644 multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.css create mode 100644 multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.hml create mode 100644 multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.js create mode 100644 multimedia/image/image_js_standard/imageReceiver/src/main/js/TestRunner/OpenHarmonyTestRunner.js delete mode 100644 multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.js rename multimedia/media/media_js_standard/recorderProfile/src/main/js/{default => MainAbility}/app.js (97%) rename multimedia/media/media_js_standard/recorderProfile/src/main/js/{default => MainAbility}/i18n/en-US.json (91%) rename multimedia/{image/image_js_standard/imagePixelMapFramework/src/main/js/default => media/media_js_standard/recorderProfile/src/main/js/MainAbility}/i18n/zh-CN.json (91%) rename multimedia/media/media_js_standard/recorderProfile/src/main/js/{default => MainAbility}/pages/index/index.css (96%) rename multimedia/media/media_js_standard/recorderProfile/src/main/js/{default => MainAbility}/pages/index/index.hml (97%) create mode 100644 multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.js create mode 100644 multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/app.js create mode 100644 multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/i18n/en-US.json create mode 100644 multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/i18n/zh-CN.json create mode 100644 multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.css create mode 100644 multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.hml create mode 100644 multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.js create mode 100644 multimedia/media/media_js_standard/recorderProfile/src/main/js/TestRunner/OpenHarmonyTestRunner.js delete mode 100644 multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.js diff --git a/multimedia/image/image_js_standard/imageColorspace/BUILD.gn b/multimedia/image/image_js_standard/imageColorspace/BUILD.gn index 624126b88..32f2c374f 100644 --- a/multimedia/image/image_js_standard/imageColorspace/BUILD.gn +++ b/multimedia/image/image_js_standard/imageColorspace/BUILD.gn @@ -9,7 +9,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. import("//test/xts/tools/build/suite.gni") @@ -23,7 +23,9 @@ ohos_js_hap_suite("image_colorspace_js_hap") { hap_name = "ActsImageColorspaceJsTest" } ohos_js_assets("image_colorspace_js_assets") { - source_dir = "./src/main/js/default" + js2abc = true + hap_profile = "./src/main/config.json" + source_dir = "./src/main/js" } ohos_resources("image_colorspace_resources") { sources = [ "./src/main/resources" ] diff --git a/multimedia/image/image_js_standard/imageColorspace/Test.json b/multimedia/image/image_js_standard/imageColorspace/Test.json index c6b0b16b4..1538c13d1 100644 --- a/multimedia/image/image_js_standard/imageColorspace/Test.json +++ b/multimedia/image/image_js_standard/imageColorspace/Test.json @@ -1,19 +1,20 @@ -{ - "description": "Configuration for Image Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "300000", - "package": "ohos.acts.multimedia.image.Colorspace", - "shell-timeout": "120000" - }, - "kits": [ - { - "test-file-name": [ - "ActsImageColorspaceJsTest.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] - -} +{ + "description": "Configuration for Image Tests", + "driver": { + "type": "OHJSUnitTest", + "test-timeout": "300000", + "bundle-name": "ohos.acts.multimedia.image.Colorspace", + "package-name": "ohos.acts.multimedia.image.Colorspace", + "shell-timeout": "300000", + "testcase-timeout": 60000 + }, + "kits": [ + { + "test-file-name": [ + "ActsImageColorspaceJsTest.hap" + ], + "type": "AppInstallKit", + "cleanup-apps": true + } + ] +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/config.json b/multimedia/image/image_js_standard/imageColorspace/src/main/config.json index ed21f1b4e..e59a00392 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/config.json +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/config.json @@ -1,104 +1,132 @@ -{ - "app": { - "apiVersion": { - "compatible": 6, - "releaseType": "Beta1", - "target": 7 - }, - "vendor": "acts", - "bundleName": "ohos.acts.multimedia.image.Colorspace", - "version": { - "code": 1000000, - "name": "1.0.0" - } - }, - "deviceConfig": { - "default": { - "debug": true - } - }, - "module": { - "abilities": [ - { - "iconId": 16777218, - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "descriptionId": 16777217, - "visible": true, - "labelId": 16777216, - "icon": "$media:icon", - "name": "ohos.acts.multimedia.image.Colorspace.MainAbility", - "description": "$string:mainability_description", - "label": "$string:entry_MainAbility", - "type": "page", - "homeAbility": true, - "launchType": "standard" - } - ], - "deviceType": [ - "phone", - "tablet", - "tv", - "wearable" - ], - "mainAbility": "ohos.acts.multimedia.image.Colorspace.MainAbility", - "distro": { - "moduleType": "entry", - "installationFree": false, - "deliveryWithInstall": true, - "moduleName": "entry" - }, - "reqPermissions": [ - { - "name": "ohos.permission.GET_BUNDLE_INFO", - "reason": "use ohos.permission.GET_BUNDLE_INFO" - }, - { - "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", - "reason":"use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" - }, - { - "name" : "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", - "reason" : "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS" - }, - { - "name" : "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", - "reason" : "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS" - }, - { - "name": "ohos.permission.MEDIA_LOCATION", - "reason":"use ohos.permission.MEDIA_LOCATION" - }, - { - "name": "ohos.permission.READ_MEDIA", - "reason":"use ohos.permission.READ_MEDIA" - }, - { - "name": "ohos.permission.WRITE_MEDIA", - "reason":"use ohos.permission.WRITE_MEDIA" - } - ], - "package": "ohos.acts.multimedia.image.Colorspace", - "name": ".MyApplication", - "js": [ - { - "pages": [ - "pages/index/index" - ], - "name": "default", - "window": { - "designWidth": 720, - "autoDesignWidth": true - } - } - ] - } +{ + "app": { + "apiVersion": { + "compatible": 6, + "releaseType": "Beta1", + "target": 7 + }, + "vendor": "acts", + "bundleName": "ohos.acts.multimedia.image.Colorspace", + "version": { + "code": 1000000, + "name": "1.0.0" + } + }, + "deviceConfig": { + "default": { + "debug": true + } + }, + "module": { + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "orientation": "unspecified", + "formsEnabled": false, + "name": ".MainAbility", + "srcLanguage": "js", + "srcPath": "MainAbility", + "icon": "$media:icon", + "description": "$string:MainAbility_desc", + "label": "$string:MainAbility_label", + "type": "page", + "visible": true, + "launchType": "standard" + }, + { + "orientation": "unspecified", + "formsEnabled": false, + "name": ".TestAbility", + "srcLanguage": "js", + "srcPath": "TestAbility", + "icon": "$media:icon", + "description": "$string:TestAbility_desc", + "label": "$string:TestAbility_label", + "type": "page", + "visible": true, + "launchType": "standard" + } + ], + "deviceType": [ + "phone", + "tablet", + "tv", + "wearable" + ], + "mainAbility": ".MainAbility", + "distro": { + "moduleType": "entry", + "installationFree": false, + "deliveryWithInstall": true, + "moduleName": "entry" + }, + "reqPermissions": [ + { + "name": "ohos.permission.GET_BUNDLE_INFO", + "reason": "use ohos.permission.GET_BUNDLE_INFO" + }, + { + "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", + "reason": "use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" + }, + { + "name": "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", + "reason": "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS" + }, + { + "name": "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", + "reason": "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS" + }, + { + "name": "ohos.permission.MEDIA_LOCATION", + "reason": "use ohos.permission.MEDIA_LOCATION" + }, + { + "name": "ohos.permission.READ_MEDIA", + "reason": "use ohos.permission.READ_MEDIA" + }, + { + "name": "ohos.permission.WRITE_MEDIA", + "reason": "use ohos.permission.WRITE_MEDIA" + } + ], + "package": "ohos.acts.multimedia.image.Colorspace", + "name": ".entry", + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": true + } + }, + { + "pages": [ + "pages/index/index" + ], + "name": ".TestAbility", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ], + "testRunner": { + "name": "OpenHarmonyTestRunner", + "srcPath": "TestRunner" + }, + "srcPath": "" + } } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/app.js b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/app.js similarity index 97% rename from multimedia/image/image_js_standard/imageColorspace/src/main/js/default/app.js rename to multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/app.js index e423f4bce..363f2555b 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/app.js +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/app.js @@ -1,23 +1,23 @@ -/* - * Copyright (C) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export default { - onCreate() { - console.info('AceApplication onCreate'); - }, - onDestroy() { - console.info('AceApplication onDestroy'); - } -}; +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + onCreate() { + console.info('AceApplication onCreate'); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/i18n/en-US.json b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/i18n/en-US.json similarity index 92% rename from multimedia/image/image_js_standard/imageColorspace/src/main/js/default/i18n/en-US.json rename to multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/i18n/en-US.json index 4e812325b..0331845d4 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/i18n/en-US.json +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/i18n/en-US.json @@ -1,6 +1,6 @@ -{ - "strings": { - "hello": "Hello", - "world": "World" - } +{ + "strings": { + "hello": "Hello", + "world": "World" + } } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/i18n/zh-CN.json b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/i18n/zh-CN.json similarity index 92% rename from multimedia/image/image_js_standard/imageColorspace/src/main/js/default/i18n/zh-CN.json rename to multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/i18n/zh-CN.json index 38a8e8064..9106b0897 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/i18n/zh-CN.json +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/i18n/zh-CN.json @@ -1,6 +1,6 @@ -{ - "strings": { - "hello": "您好", - "world": "世界" - } +{ + "strings": { + "hello": "您好", + "world": "世界" + } } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.css b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/pages/index/index.css similarity index 100% rename from multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.css rename to multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/pages/index/index.css diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.hml b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/pages/index/index.hml similarity index 100% rename from multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.hml rename to multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/pages/index/index.hml diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/pages/index/index.js b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/pages/index/index.js new file mode 100644 index 000000000..6e13f0751 --- /dev/null +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/MainAbility/pages/index/index.js @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + }, + onShow() { + console.info('onShow finish') + }, + onReady() { + }, +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/app.js b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/app.js new file mode 100644 index 000000000..cdc31f3dc --- /dev/null +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/app.js @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' +import { Hypium } from '@ohos/hypium' +import testsuite from '../test/List.test' + +export default { + onCreate() { + console.info('TestApplication onCreate') + var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + console.info('start run testcase!!!') + Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite) + }, + onDestroy() { + console.info("TestApplication onDestroy"); + } +}; diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/i18n/en-US.json b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/i18n/en-US.json new file mode 100644 index 000000000..3cb24b374 --- /dev/null +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/i18n/en-US.json @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + }, + "Files": { + } +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/i18n/zh-CN.json b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/i18n/zh-CN.json new file mode 100644 index 000000000..c804e32c0 --- /dev/null +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/i18n/zh-CN.json @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + }, + "Files": { + } +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.css b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.css new file mode 100644 index 000000000..b1bcd4338 --- /dev/null +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.css @@ -0,0 +1,30 @@ +.container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + left: 0px; + top: 0px; + width: 100%; + height: 100%; +} + +.title { + font-size: 60px; + text-align: center; + width: 100%; + height: 40%; + margin: 10px; +} + +@media screen and (device-type: phone) and (orientation: landscape) { + .title { + font-size: 60px; + } +} + +@media screen and (device-type: tablet) and (orientation: landscape) { + .title { + font-size: 100px; + } +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.hml b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.hml similarity index 95% rename from multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.hml rename to multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.hml index f64b040a5..f629c71a9 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.hml +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.hml @@ -1,5 +1,5 @@ -
- - {{ $t('strings.hello') }} {{ title }} - -
+
+ + {{ $t('strings.hello') }} {{ title }} + +
diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.js b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.js new file mode 100644 index 000000000..88b083a7f --- /dev/null +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestAbility/pages/index/index.js @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + } +} + + + diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestRunner/OpenHarmonyTestRunner.js b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestRunner/OpenHarmonyTestRunner.js new file mode 100644 index 000000000..c5fa8620c --- /dev/null +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/TestRunner/OpenHarmonyTestRunner.js @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' + +function translateParamsToString(parameters) { + const keySet = new Set([ + '-s class', '-s notClass', '-s suite', '-s itName', + '-s level', '-s testType', '-s size', '-s timeout', + '-s package', '-s dryRun' + ]) + let targetParams = ''; + for (const key in parameters) { + if (keySet.has(key)) { + targetParams += ' ' + key + ' ' + parameters[key] + } + } + return targetParams.trim() +} + + export default { + onPrepare() { + console.info('OpenHarmonyTestRunner OnPrepare') + }, + onRun() { + console.log('OpenHarmonyTestRunner onRun run') + var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + + var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.TestAbility' + + var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName + cmd += ' ' + translateParamsToString(abilityDelegatorArguments.parameters) + var debug = abilityDelegatorArguments.parameters["-D"] + console.info('debug value : '+debug) + if (debug == 'true') + { + cmd += ' -D' + } + console.info('cmd : '+cmd) + abilityDelegator.executeShellCommand(cmd, (err, data) => { + console.info('executeShellCommand : err : ' + JSON.stringify(err)); + console.info('executeShellCommand : data : ' + data.stdResult); + console.info('executeShellCommand : data : ' + data.exitCode); + }) + } +}; diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.js b/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.js deleted file mode 100644 index a0719cee5..000000000 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {Core, ExpectExtend} from 'deccjsunit/index' - -export default { - data: { - title: "" - }, - onInit() { - this.title = this.$t('strings.world'); - }, - onShow() { - console.info('onShow finish') - const core = Core.getInstance() - const expectExtend = new ExpectExtend({ - 'id': 'extend' - }) - core.addService('expect', expectExtend) - core.init() - const configService = core.getDefaultService('config') - this.timeout = 60000 - configService.setConfig(this) - require('../../../test/List.test') - core.execute() - }, - onReady() { - }, -} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/List.test.js b/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/List.test.js index f02e2002d..8d62b4d6e 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/List.test.js +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/List.test.js @@ -1,17 +1,20 @@ -/* - * Copyright (C) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -require('./colorspace.test.js') \ No newline at end of file +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import Image_test from './colorspace.test.js' +export default function testsuite() { + Image_test() +} diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/colorspace.test.js b/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/colorspace.test.js index aa39c0c08..cefea1dc5 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/colorspace.test.js +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/colorspace.test.js @@ -1,389 +1,391 @@ -/* - * Copyright (C) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import image from '@ohos.multimedia.image' -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' -import { iccbuf } from './testImg2' - -describe('Image', function () { - beforeAll(async function () { - console.info('beforeAll case'); - }) - - beforeEach(function () { - console.info('beforeEach case'); - }) - - afterEach(async function () { - console.info('afterEach case'); - }) - - afterAll(async function () { - console.info('afterAll case'); - }) - - function genPicSource() { - var data = iccbuf.buffer; - return image.createImageSource(data); - } - - function loger(caseName) { - return { - myName: caseName, - log:function(msg) { - console.info(this.myName+ ' ' + msg); - } - } - } - - async function packingCbFail(done, testNum, args){ - let logger = loger(`${testNum}`) - try { - let imageSource = genPicSource(); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource == undefined) { - console.info(`${testNum} create image source failed`); - expect(false).assertTrue(); - done(); - }else{ - const imagePackerApi = image.createImagePacker(); - if (imagePackerApi == undefined) { - console.info(`${testNum} create image packer failed`); - expect(false).assertTrue(); - done(); - }else{ - imagePackerApi.packing(imageSource, args, (err, data) => { - expect(data == undefined).assertTrue(); - done(); - }) - } - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - } - - async function packingPromiseFail(done, testNum, args) { - let logger = loger(`testNum`) - try { - let imageSource = genPicSource(); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource == undefined) { - console.info(`${testNum} create image source failed`); - expect(false).assertTrue(); - done(); - }else{ - const imagePackerApi = image.createImagePacker(); - if (imagePackerApi == undefined) { - console.info(`${testNum} create image packer failed`); - expect(false).assertTrue(); - done(); - }else{ - imagePackerApi.packing(imageSource, args).then(data => { - expect(data == undefined).assertTrue(); - done(); - }).catch(error => { - console.log(` ${testNum} error: ` + error); - expect(true).assertTrue(); - done(); - }) - } - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - } - - /** - * @tc.number : decodeP3_001 - * @tc.name : Decode - * @tc.desc : 1.create imagesource - * 2.create pixelmap - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('decodeP3_001', 0, async function (done) { - let logger = loger('decodeP3_001') - try { - let imageSource = genPicSource(); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource != undefined) { - let pixelMap = await imageSource.createPixelMap(); - logger.log("PixelMap " + pixelMap); - logger.log("PixelMap " + (pixelMap != undefined)); - expect(pixelMap != undefined ).assertTrue(); - done(); - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - - }) - - /** - * @tc.number : decodeP3_002 - * @tc.name : Decode -callback - * @tc.desc : 1.create imagesource - * 2.create pixelmap - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('decodeP3_002', 0, async function (done) { - let logger = loger('decodeP3_002') - try { - let imageSource = genPicSource(); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource != undefined) { - imageSource.createPixelMap((err,pixelMap)=>{ - logger.log("PixelMap " + pixelMap); - logger.log("PixelMap " + (pixelMap != undefined)); - expect(pixelMap != undefined ).assertTrue(); - done(); - }) - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - }) - - /** - * @tc.number : encodeP3_001 - * @tc.name : Encode -callback - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_001', 0, async function (done) { - let logger = loger('encodeP3_001') - let testNum = 'encodeP3_001' - try { - let imageSource = genPicSource(); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource == undefined) { - console.info(`${testNum} create image source failed`); - expect(false).assertTrue(); - done(); - }else{ - const imagePackerApi = image.createImagePacker(); - if (imagePackerApi == undefined) { - console.info(`${testNum} create image packer failed`); - expect(false).assertTrue(); - done(); - }else{ - let packOpts = { format:["image/jpeg"], quality:90 } - imagePackerApi.packing(imageSource, packOpts, (err, data) => { - expect(data != undefined).assertTrue(); - var dataArr = new Uint8Array(data); - console.info(`${testNum} dataArr.length=` + dataArr.length); - for (var i = 0; i < dataArr.length; i++) { - console.info(`dataArr[` + i + `]=` + dataArr[i]); - } - done(); - }) - } - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - - }) - - /** - * @tc.number : encodeP3_002 - * @tc.name : Encode -promise - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_002', 0, async function (done) { - let logger = loger('encodeP3_002') - let testNum = 'encodeP3_002' - try { - let imageSource = genPicSource(); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource == undefined) { - console.info(`${testNum} create image source failed`); - expect(false).assertTrue(); - done(); - }else{ - const imagePackerApi = image.createImagePacker(); - if (imagePackerApi == undefined) { - console.info(`${testNum} create image packer failed`); - expect(false).assertTrue(); - done(); - }else{ - let packOpts = { format:["image/jpeg"], quality:90 } - imagePackerApi.packing(imageSource, packOpts).then(data => { - expect(data != undefined).assertTrue(); - var dataArr = new Uint8Array(data); - console.info(`${testNum} dataArr.length=` + dataArr.length); - for (var i = 0; i < dataArr.length; i++) { - console.info(`dataArr[` + i + `]=` + dataArr[i]); - } - - done(); - }).catch(error => { - console.log('encodeP3_002 error: ' + error); - expect(false).assertTrue(); - done(); - }) - } - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - }) - - /** - * @tc.number : encodeP3_003 - * @tc.name : Encode -callback- - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_003', 0, async function (done) { - let packOpts = { format:["image/gif"], quality:90 } - packingCbFail(done, 'encodeP3_003', packOpts) - }) - - /** - * @tc.number : encodeP3_004 - * @tc.name : Encode -callback-wrong format - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_004', 0, async function (done) { - let packOpts = { format:["image/jpeg"], quality:200 } - packingCbFail(done, 'encodeP3_004', packOpts) - }) - - /** - * @tc.number : encodeP3_005 - * @tc.name : Encode -callback-no quality - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_005', 0, async function (done) { - let packOpts = { format:["image/jpeg"] } - packingCbFail(done, 'encodeP3_005', packOpts) - }) - - /** - * @tc.number : encodeP3_006 - * @tc.name : Encode -callback-no format - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_006', 0, async function (done) { - let packOpts = { quality:50 } - packingCbFail(done, 'encodeP3_006', packOpts) - }) - - /** - * @tc.number : encodeP3_007 - * @tc.name : Encode -promise - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_007', 0, async function (done) { - let packOpts = { format:["image/gif"], quality:90 } - packingPromiseFail(done, 'encodeP3_007', packOpts) - }) - - /** - * @tc.number : encodeP3_008 - * @tc.name : Encode -promise - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_008', 0, async function (done) { - let packOpts = { format:["image/jpeg"], quality:101 } - packingPromiseFail(done, 'encodeP3_008', packOpts) - }) - - /** - * @tc.number : encodeP3_009 - * @tc.name : Encode -promise -no quality - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_009', 0, async function (done) { - let packOpts = { format:["image/jpeg"] } - packingPromiseFail(done, 'encodeP3_009', packOpts) - }) - - /** - * @tc.number : encodeP3_010 - * @tc.name : Encode -promise -no format - * @tc.desc : 1.create imagesource - * 2.createImagePacker - * 3.packing - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('encodeP3_010', 0, async function (done) { - let packOpts = { quality:100 } - packingPromiseFail(done, 'encodeP3_010', packOpts) - }) - -}) +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import image from '@ohos.multimedia.image' +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +import { iccbuf } from './testImg2' + +export default function Image_test() { +describe('Image_test', function () { + beforeAll(async function () { + console.info('beforeAll case'); + }) + + beforeEach(function () { + console.info('beforeEach case'); + }) + + afterEach(async function () { + console.info('afterEach case'); + }) + + afterAll(async function () { + console.info('afterAll case'); + }) + + function genPicSource() { + var data = iccbuf.buffer; + return image.createImageSource(data); + } + + function loger(caseName) { + return { + myName: caseName, + log:function(msg) { + console.info(this.myName+ ' ' + msg); + } + } + } + + async function packingCbFail(done, testNum, args){ + let logger = loger(`${testNum}`) + try { + let imageSource = genPicSource(); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource == undefined) { + console.info(`${testNum} create image source failed`); + expect(false).assertTrue(); + done(); + }else{ + const imagePackerApi = image.createImagePacker(); + if (imagePackerApi == undefined) { + console.info(`${testNum} create image packer failed`); + expect(false).assertTrue(); + done(); + }else{ + imagePackerApi.packing(imageSource, args, (err, data) => { + expect(data == undefined).assertTrue(); + done(); + }) + } + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + } + + async function packingPromiseFail(done, testNum, args) { + let logger = loger(`testNum`) + try { + let imageSource = genPicSource(); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource == undefined) { + console.info(`${testNum} create image source failed`); + expect(false).assertTrue(); + done(); + }else{ + const imagePackerApi = image.createImagePacker(); + if (imagePackerApi == undefined) { + console.info(`${testNum} create image packer failed`); + expect(false).assertTrue(); + done(); + }else{ + imagePackerApi.packing(imageSource, args).then(data => { + expect(data == undefined).assertTrue(); + done(); + }).catch(error => { + console.log(` ${testNum} error: ` + error); + expect(true).assertTrue(); + done(); + }) + } + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + } + + /** + * @tc.number : decodeP3_001 + * @tc.name : Decode + * @tc.desc : 1.create imagesource + * 2.create pixelmap + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('decodeP3_001', 0, async function (done) { + let logger = loger('decodeP3_001') + try { + let imageSource = genPicSource(); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource != undefined) { + let pixelMap = await imageSource.createPixelMap(); + logger.log("PixelMap " + pixelMap); + logger.log("PixelMap " + (pixelMap != undefined)); + expect(pixelMap != undefined ).assertTrue(); + done(); + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + + }) + + /** + * @tc.number : decodeP3_002 + * @tc.name : Decode -callback + * @tc.desc : 1.create imagesource + * 2.create pixelmap + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('decodeP3_002', 0, async function (done) { + let logger = loger('decodeP3_002') + try { + let imageSource = genPicSource(); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource != undefined) { + imageSource.createPixelMap((err,pixelMap)=>{ + logger.log("PixelMap " + pixelMap); + logger.log("PixelMap " + (pixelMap != undefined)); + expect(pixelMap != undefined ).assertTrue(); + done(); + }) + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + }) + + /** + * @tc.number : encodeP3_001 + * @tc.name : Encode -callback + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_001', 0, async function (done) { + let logger = loger('encodeP3_001') + let testNum = 'encodeP3_001' + try { + let imageSource = genPicSource(); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource == undefined) { + console.info(`${testNum} create image source failed`); + expect(false).assertTrue(); + done(); + }else{ + const imagePackerApi = image.createImagePacker(); + if (imagePackerApi == undefined) { + console.info(`${testNum} create image packer failed`); + expect(false).assertTrue(); + done(); + }else{ + let packOpts = { format:["image/jpeg"], quality:90 } + imagePackerApi.packing(imageSource, packOpts, (err, data) => { + expect(data != undefined).assertTrue(); + var dataArr = new Uint8Array(data); + console.info(`${testNum} dataArr.length=` + dataArr.length); + for (var i = 0; i < dataArr.length; i++) { + console.info(`dataArr[` + i + `]=` + dataArr[i]); + } + done(); + }) + } + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + + }) + + /** + * @tc.number : encodeP3_002 + * @tc.name : Encode -promise + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_002', 0, async function (done) { + let logger = loger('encodeP3_002') + let testNum = 'encodeP3_002' + try { + let imageSource = genPicSource(); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource == undefined) { + console.info(`${testNum} create image source failed`); + expect(false).assertTrue(); + done(); + }else{ + const imagePackerApi = image.createImagePacker(); + if (imagePackerApi == undefined) { + console.info(`${testNum} create image packer failed`); + expect(false).assertTrue(); + done(); + }else{ + let packOpts = { format:["image/jpeg"], quality:90 } + imagePackerApi.packing(imageSource, packOpts).then(data => { + expect(data != undefined).assertTrue(); + var dataArr = new Uint8Array(data); + console.info(`${testNum} dataArr.length=` + dataArr.length); + for (var i = 0; i < dataArr.length; i++) { + console.info(`dataArr[` + i + `]=` + dataArr[i]); + } + + done(); + }).catch(error => { + console.log('encodeP3_002 error: ' + error); + expect(false).assertTrue(); + done(); + }) + } + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + }) + + /** + * @tc.number : encodeP3_003 + * @tc.name : Encode -callback- + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_003', 0, async function (done) { + let packOpts = { format:["image/gif"], quality:90 } + packingCbFail(done, 'encodeP3_003', packOpts) + }) + + /** + * @tc.number : encodeP3_004 + * @tc.name : Encode -callback-wrong format + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_004', 0, async function (done) { + let packOpts = { format:["image/jpeg"], quality:200 } + packingCbFail(done, 'encodeP3_004', packOpts) + }) + + /** + * @tc.number : encodeP3_005 + * @tc.name : Encode -callback-no quality + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_005', 0, async function (done) { + let packOpts = { format:["image/jpeg"] } + packingCbFail(done, 'encodeP3_005', packOpts) + }) + + /** + * @tc.number : encodeP3_006 + * @tc.name : Encode -callback-no format + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_006', 0, async function (done) { + let packOpts = { quality:50 } + packingCbFail(done, 'encodeP3_006', packOpts) + }) + + /** + * @tc.number : encodeP3_007 + * @tc.name : Encode -promise + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_007', 0, async function (done) { + let packOpts = { format:["image/gif"], quality:90 } + packingPromiseFail(done, 'encodeP3_007', packOpts) + }) + + /** + * @tc.number : encodeP3_008 + * @tc.name : Encode -promise + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_008', 0, async function (done) { + let packOpts = { format:["image/jpeg"], quality:101 } + packingPromiseFail(done, 'encodeP3_008', packOpts) + }) + + /** + * @tc.number : encodeP3_009 + * @tc.name : Encode -promise -no quality + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_009', 0, async function (done) { + let packOpts = { format:["image/jpeg"] } + packingPromiseFail(done, 'encodeP3_009', packOpts) + }) + + /** + * @tc.number : encodeP3_010 + * @tc.name : Encode -promise -no format + * @tc.desc : 1.create imagesource + * 2.createImagePacker + * 3.packing + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('encodeP3_010', 0, async function (done) { + let packOpts = { quality:100 } + packingPromiseFail(done, 'encodeP3_010', packOpts) + }) + +}) +} diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/testImg2.js b/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/testImg2.js index 446fa12ec..b000b8b0f 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/testImg2.js +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/js/test/testImg2.js @@ -1,1388 +1,1388 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -let iccbuf = new Uint8Array([255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 2, 1, 0, 101, 0, 101, 0, 0, 255, 225, 32, 80, 69, 120, 105, 102, 0, 0, 77, 77, - 0, 42, 0, 0, 0, 8, 0, 8, 1, 18, 0, 3, 0, 0, 0, 1, 0, 1, 0, 0, 1, 26, 0, 5, 0, 0, 0, 1, 0, 0, 0, 110, - 1, 27, 0, 5, 0, 0, 0, 1, 0, 0, 0, 118, 1, 40, 0, 3, 0, 0, 0, 1, 0, 2, 0, 0, 1, 49, 0, 2, 0, 0, 0, 29, - 0, 0, 0, 126, 1, 50, 0, 2, 0, 0, 0, 20, 0, 0, 0, 155, 130, 152, 0, 2, 0, 0, 0, 15, 0, 0, 0, 175, 135, 105, 0, 4, - 0, 0, 0, 1, 0, 0, 0, 192, 0, 0, 0, 236, 0, 0, 0, 101, 0, 0, 0, 1, 0, 0, 0, 101, 0, 0, 0, 1, 65, 100, 111, 98, - 101, 32, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 67, 83, 32, 77, 97, 99, 105, 110, 116, 111, 115, 104, 0, 50, 48, 48, 51, 58, 49, 49, - 58, 49, 55, 32, 49, 55, 58, 50, 51, 58, 49, 49, 0, 49, 57, 57, 57, 32, 76, 97, 114, 115, 32, 66, 111, 114, 103, 0, 0, 0, 0, 3, - 160, 1, 0, 3, 0, 0, 0, 1, 255, 255, 0, 0, 160, 2, 0, 4, 0, 0, 0, 1, 0, 0, 1, 19, 160, 3, 0, 4, 0, 0, 0, 1, - 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 6, 1, 3, 0, 3, 0, 0, 0, 1, 0, 6, 0, 0, 1, 26, 0, 5, 0, 0, 0, 1, - 0, 0, 1, 58, 1, 27, 0, 5, 0, 0, 0, 1, 0, 0, 1, 66, 1, 40, 0, 3, 0, 0, 0, 1, 0, 2, 0, 0, 2, 1, 0, 4, - 0, 0, 0, 1, 0, 0, 1, 74, 2, 2, 0, 4, 0, 0, 0, 1, 0, 0, 30, 254, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 1, - 0, 0, 0, 72, 0, 0, 0, 1, 255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 2, 1, 0, 72, 0, 72, 0, 0, 255, 237, 0, 12, - 65, 100, 111, 98, 101, 95, 67, 77, 0, 1, 255, 238, 0, 14, 65, 100, 111, 98, 101, 0, 100, 128, 0, 0, 0, 1, 255, 219, 0, 132, 0, 12, - 8, 8, 8, 9, 8, 12, 9, 9, 12, 17, 11, 10, 11, 17, 21, 15, 12, 12, 15, 21, 24, 19, 19, 21, 19, 19, 24, 17, 12, 12, 12, 12, - 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, - 13, 11, 11, 13, 14, 13, 16, 14, 14, 16, 20, 14, 14, 14, 20, 20, 14, 14, 14, 14, 20, 17, 12, 12, 12, 12, 12, 17, 17, 12, 12, 12, - 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 255, 192, 0, 17, 8, 0, 120, 0, 160, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1, 255, 221, 0, 4, 0, 10, 255, 196, 1, 63, 0, 0, 1, - 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 1, 0, 1, 5, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 0, 1, 4, 1, 3, 2, 4, 2, - 5, 7, 6, 8, 5, 3, 12, 51, 1, 0, 2, 17, 3, 4, 33, 18, 49, 5, 65, 81, 97, 19, 34, 113, 129, 50, 6, 20, 145, 161, 177, 66, - 35, 36, 21, 82, 193, 98, 51, 52, 114, 130, 209, 67, 7, 37, 146, 83, 240, 225, 241, 99, 115, 53, 22, 162, 178, 131, 38, 68, 147, 84, 100, 69, - 194, 163, 116, 54, 23, 210, 85, 226, 101, 242, 179, 132, 195, 211, 117, 227, 243, 70, 39, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, 197, 213, - 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 17, 0, 2, 2, 1, 2, - 4, 4, 3, 4, 5, 6, 7, 7, 6, 5, 53, 1, 0, 2, 17, 3, 33, 49, 18, 4, 65, 81, 97, 113, 34, 19, 5, 50, 129, 145, 20, 161, - 177, 66, 35, 193, 82, 209, 240, 51, 36, 98, 225, 114, 130, 146, 67, 83, 21, 99, 115, 52, 241, 37, 6, 22, 162, 178, 131, 7, 38, 53, 194, 210, - 68, 147, 84, 163, 23, 100, 69, 85, 54, 116, 101, 226, 242, 179, 132, 195, 211, 117, 227, 243, 70, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, - 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 255, 218, 0, 12, 3, 1, - 0, 2, 17, 3, 17, 0, 63, 0, 217, 77, 181, 74, 18, 133, 191, 110, 51, 24, 74, 20, 245, 78, 7, 138, 86, 166, 0, 36, 167, 3, 193, 45, - 161, 11, 83, 8, 75, 106, 36, 4, 160, 37, 106, 213, 132, 37, 10, 123, 124, 210, 0, 37, 106, 97, 183, 239, 241, 66, 201, 177, 245, 179, 109, 100, - 11, 140, 22, 147, 35, 107, 103, 223, 102, 240, 215, 109, 126, 223, 162, 212, 249, 185, 47, 199, 173, 174, 170, 189, 246, 61, 193, 173, 27, 75, 128, 26, - 251, 220, 198, 185, 159, 69, 80, 162, 214, 100, 208, 204, 166, 207, 233, 216, 219, 61, 67, 0, 157, 6, 210, 227, 244, 182, 183, 232, 236, 84, 57, 222, - 112, 64, 75, 20, 62, 114, 42, 71, 247, 56, 191, 238, 157, 14, 75, 147, 51, 49, 203, 63, 144, 27, 143, 245, 140, 127, 238, 85, 109, 30, 173, 173, - 177, 214, 111, 218, 73, 110, 230, 57, 230, 98, 93, 238, 127, 181, 137, 220, 252, 79, 80, 55, 212, 253, 43, 125, 205, 175, 212, 99, 9, 145, 27, 54, - 185, 205, 246, 170, 214, 100, 57, 254, 165, 142, 109, 129, 140, 209, 156, 141, 206, 229, 174, 121, 63, 187, 249, 136, 89, 14, 13, 99, 235, 162, 199, 122, - 140, 126, 132, 234, 215, 188, 15, 118, 218, 157, 183, 243, 191, 50, 191, 73, 100, 29, 221, 126, 154, 58, 14, 174, 135, 141, 206, 30, 240, 75, 155, 54, - 25, 39, 200, 139, 118, 38, 127, 217, 88, 217, 113, 99, 100, 1, 30, 160, 108, 73, 111, 231, 122, 141, 119, 246, 154, 179, 105, 186, 202, 246, 191, 101, - 141, 115, 158, 230, 221, 89, 222, 30, 72, 50, 219, 54, 191, 107, 43, 245, 43, 219, 250, 61, 255, 0, 161, 175, 254, 49, 89, 178, 218, 174, 166, 189, - 149, 144, 224, 248, 120, 172, 135, 29, 209, 181, 174, 185, 164, 7, 108, 247, 33, 213, 61, 19, 58, 188, 0, 208, 251, 25, 71, 98, 192, 231, 2, 12, - 29, 205, 115, 93, 186, 214, 238, 221, 249, 234, 94, 181, 80, 108, 45, 174, 189, 209, 238, 221, 83, 131, 164, 254, 235, 94, 221, 187, 213, 81, 69, 212, - 185, 172, 99, 141, 45, 123, 90, 239, 66, 11, 94, 76, 143, 210, 52, 87, 27, 119, 60, 251, 223, 234, 123, 211, 127, 149, 157, 103, 185, 228, 215, 91, - 143, 175, 112, 99, 105, 0, 60, 251, 69, 52, 182, 188, 155, 183, 253, 47, 126, 203, 55, 215, 250, 91, 146, 58, 169, 185, 97, 198, 125, 79, 46, 13, - 110, 132, 151, 141, 128, 131, 252, 155, 24, 246, 89, 185, 190, 207, 210, 53, 65, 175, 174, 178, 219, 113, 216, 253, 167, 219, 237, 48, 76, 14, 91, 191, - 223, 183, 250, 202, 189, 53, 245, 2, 214, 155, 235, 15, 121, 1, 172, 164, 217, 93, 155, 72, 247, 253, 161, 238, 99, 107, 173, 149, 123, 90, 239, 240, - 150, 255, 0, 212, 32, 228, 228, 88, 41, 22, 23, 59, 115, 67, 134, 222, 1, 213, 219, 191, 55, 221, 238, 254, 66, 10, 167, 255, 208, 221, 227, 132, - 146, 37, 141, 115, 88, 231, 181, 175, 119, 12, 46, 0, 241, 60, 21, 61, 154, 193, 209, 110, 113, 14, 142, 57, 7, 179, 20, 161, 75, 103, 154, 65, - 169, 90, 24, 164, 166, 25, 170, 125, 130, 80, 180, 234, 141, 40, 42, 123, 18, 219, 199, 137, 236, 149, 169, 134, 169, 245, 136, 143, 135, 197, 51, 238, - 174, 179, 177, 210, 92, 4, 237, 110, 186, 127, 91, 232, 127, 210, 85, 178, 114, 89, 101, 110, 166, 61, 54, 88, 54, 216, 94, 230, 238, 45, 63, 152, - 221, 92, 198, 238, 111, 210, 80, 101, 230, 240, 227, 187, 144, 50, 31, 163, 29, 91, 24, 185, 60, 217, 42, 163, 81, 63, 165, 47, 72, 106, 245, 42, - 170, 204, 177, 133, 190, 163, 154, 33, 173, 177, 146, 25, 160, 119, 171, 183, 210, 115, 119, 238, 223, 179, 222, 168, 99, 226, 217, 91, 190, 200, 235, 75, - 170, 218, 95, 83, 109, 157, 210, 231, 61, 206, 216, 210, 215, 253, 13, 205, 217, 255, 0, 65, 94, 117, 245, 58, 24, 46, 99, 90, 200, 110, 214, 189, - 176, 60, 190, 142, 239, 163, 251, 170, 22, 125, 153, 196, 89, 182, 179, 107, 4, 122, 164, 146, 224, 127, 53, 219, 134, 223, 163, 43, 19, 36, 204, 231, - 41, 31, 211, 54, 237, 194, 30, 222, 56, 66, 59, 64, 0, 136, 99, 180, 189, 237, 180, 11, 92, 67, 28, 234, 225, 238, 113, 219, 59, 95, 177, 206, - 31, 154, 239, 164, 198, 34, 183, 166, 179, 113, 107, 158, 230, 130, 55, 59, 110, 225, 59, 101, 140, 123, 157, 181, 255, 0, 191, 249, 158, 154, 6, 62, - 127, 82, 23, 213, 131, 176, 94, 202, 198, 215, 90, 93, 5, 194, 116, 184, 49, 254, 237, 155, 63, 63, 223, 234, 41, 99, 245, 234, 236, 189, 212, 181, - 174, 107, 131, 160, 16, 233, 108, 127, 89, 140, 246, 255, 0, 41, 55, 134, 73, 247, 97, 177, 53, 209, 190, 41, 2, 182, 140, 134, 55, 46, 218, 79, - 232, 222, 230, 7, 193, 63, 164, 117, 88, 219, 163, 110, 237, 191, 206, 63, 103, 248, 61, 246, 126, 137, 82, 202, 232, 162, 234, 43, 198, 186, 235, 40, - 6, 201, 117, 140, 5, 182, 7, 17, 184, 184, 190, 145, 239, 109, 150, 59, 244, 109, 183, 244, 106, 224, 205, 13, 126, 227, 105, 15, 104, 135, 52, 184, - 159, 243, 101, 141, 114, 155, 51, 88, 210, 28, 215, 67, 132, 157, 9, 141, 127, 234, 191, 206, 74, 138, 237, 41, 167, 87, 72, 199, 162, 151, 211, 83, - 157, 104, 99, 182, 131, 104, 121, 45, 59, 154, 239, 81, 161, 239, 246, 221, 237, 250, 117, 254, 143, 210, 255, 0, 130, 86, 42, 101, 222, 163, 218, 46, - 99, 216, 214, 134, 138, 203, 119, 22, 236, 221, 171, 201, 103, 243, 110, 247, 253, 5, 100, 100, 181, 239, 46, 178, 194, 99, 66, 101, 206, 18, 62, 143, - 231, 55, 254, 169, 67, 35, 245, 140, 103, 215, 246, 162, 192, 246, 150, 111, 99, 70, 230, 255, 0, 197, 187, 212, 247, 127, 105, 42, 241, 65, 145, 29, - 11, 91, 210, 104, 168, 218, 5, 37, 238, 14, 221, 107, 26, 125, 250, 111, 104, 119, 239, 126, 99, 222, 179, 217, 83, 30, 49, 234, 3, 214, 107, 220, - 208, 224, 194, 1, 36, 157, 214, 56, 239, 245, 63, 71, 162, 191, 129, 134, 206, 158, 108, 140, 155, 44, 55, 22, 151, 2, 24, 193, 160, 45, 221, 182, - 178, 239, 119, 187, 223, 238, 71, 244, 170, 115, 183, 16, 29, 3, 218, 11, 90, 54, 196, 183, 115, 28, 209, 185, 158, 215, 109, 66, 149, 25, 18, 5, - 138, 250, 191, 255, 209, 194, 203, 234, 237, 47, 127, 81, 199, 187, 210, 46, 21, 89, 47, 155, 28, 198, 239, 119, 160, 253, 159, 225, 45, 125, 159, 224, - 217, 254, 7, 254, 9, 118, 253, 59, 34, 236, 172, 42, 175, 190, 191, 70, 215, 238, 15, 175, 79, 105, 107, 141, 126, 232, 46, 107, 93, 237, 250, 59, - 151, 13, 85, 7, 43, 26, 235, 113, 47, 169, 246, 91, 235, 27, 41, 180, 13, 43, 112, 247, 238, 119, 232, 159, 182, 171, 234, 103, 166, 234, 189, 55, - 255, 0, 55, 250, 55, 210, 175, 96, 253, 109, 24, 207, 126, 35, 31, 235, 84, 125, 26, 112, 220, 230, 150, 22, 176, 48, 82, 239, 70, 130, 109, 217, - 189, 219, 50, 125, 75, 223, 255, 0, 130, 43, 88, 39, 28, 49, 148, 231, 34, 125, 207, 80, 13, 44, 177, 227, 28, 49, 2, 226, 246, 111, 115, 107, - 169, 215, 62, 69, 108, 105, 123, 221, 28, 53, 163, 115, 138, 171, 71, 85, 233, 185, 17, 232, 228, 48, 203, 154, 200, 113, 218, 119, 56, 23, 177, 187, - 108, 219, 249, 141, 245, 63, 168, 185, 11, 242, 250, 149, 217, 182, 100, 63, 36, 61, 173, 99, 128, 173, 238, 151, 141, 199, 247, 11, 189, 55, 83, 118, - 239, 230, 220, 239, 77, 66, 187, 105, 108, 84, 217, 245, 157, 89, 134, 151, 29, 187, 78, 183, 61, 173, 5, 223, 71, 243, 127, 115, 249, 186, 211, 37, - 241, 35, 96, 198, 26, 120, 168, 114, 162, 181, 151, 216, 246, 199, 63, 167, 181, 197, 142, 201, 173, 174, 13, 15, 50, 237, 54, 184, 236, 111, 184, 123, - 55, 110, 252, 207, 166, 140, 199, 215, 99, 119, 86, 246, 189, 134, 70, 246, 157, 205, 208, 236, 119, 185, 179, 244, 95, 237, 92, 30, 251, 154, 235, 31, - 180, 56, 187, 123, 222, 55, 144, 208, 218, 218, 125, 49, 91, 54, 143, 206, 250, 123, 25, 234, 45, 46, 131, 245, 139, 33, 221, 57, 184, 237, 21, 186, - 242, 28, 234, 221, 238, 115, 154, 205, 222, 234, 246, 61, 173, 245, 110, 118, 239, 231, 126, 133, 41, 216, 254, 33, 100, 251, 145, 225, 21, 233, 225, 255, - 0, 162, 175, 186, 19, 66, 7, 212, 79, 233, 108, 244, 185, 89, 184, 216, 172, 121, 181, 224, 216, 193, 62, 139, 92, 55, 127, 111, 233, 108, 84, 174, - 234, 111, 179, 30, 210, 43, 110, 205, 90, 230, 13, 197, 238, 19, 251, 223, 163, 246, 254, 126, 239, 209, 170, 20, 11, 154, 193, 252, 219, 45, 219, 188, - 87, 33, 160, 126, 243, 173, 218, 219, 55, 191, 249, 127, 190, 140, 44, 183, 210, 34, 199, 180, 56, 128, 219, 6, 227, 27, 143, 210, 27, 142, 213, 91, - 47, 59, 146, 118, 1, 225, 143, 104, 186, 24, 121, 28, 112, 163, 164, 165, 251, 210, 215, 213, 253, 214, 108, 191, 17, 204, 107, 217, 75, 95, 89, 224, - 213, 83, 220, 223, 131, 96, 189, 51, 114, 113, 119, 185, 163, 16, 238, 111, 210, 154, 154, 193, 30, 44, 181, 231, 109, 143, 253, 202, 213, 122, 91, 179, - 212, 172, 123, 97, 218, 0, 64, 16, 230, 238, 46, 107, 182, 109, 119, 191, 223, 254, 17, 61, 56, 121, 68, 52, 61, 251, 3, 78, 226, 90, 67, 139, - 160, 183, 249, 207, 103, 185, 174, 102, 255, 0, 252, 237, 86, 45, 177, 109, 134, 245, 26, 11, 1, 251, 45, 174, 104, 128, 210, 69, 66, 1, 48, 214, - 251, 109, 114, 155, 51, 43, 176, 77, 88, 165, 193, 195, 83, 189, 128, 130, 97, 219, 70, 133, 187, 253, 202, 14, 192, 194, 112, 31, 161, 244, 137, 110, - 219, 54, 78, 167, 77, 190, 239, 167, 236, 219, 233, 251, 157, 244, 16, 168, 194, 186, 151, 29, 187, 3, 163, 247, 223, 186, 63, 53, 174, 209, 155, 255, - 0, 235, 169, 90, 168, 165, 25, 23, 213, 100, 179, 13, 140, 13, 16, 79, 175, 92, 237, 35, 232, 54, 182, 212, 239, 250, 180, 129, 174, 150, 187, 107, - 70, 219, 129, 45, 165, 197, 161, 187, 160, 23, 251, 189, 191, 246, 234, 13, 152, 111, 109, 161, 210, 210, 121, 14, 117, 142, 157, 206, 39, 232, 251, 91, - 251, 200, 246, 214, 91, 165, 158, 149, 167, 110, 193, 36, 152, 105, 252, 211, 191, 250, 175, 247, 181, 43, 61, 212, 113, 196, 238, 26, 88, 15, 234, 76, - 27, 111, 162, 203, 28, 64, 115, 65, 19, 13, 111, 179, 249, 221, 207, 171, 110, 159, 152, 237, 234, 198, 55, 83, 222, 29, 24, 54, 155, 42, 59, 109, - 99, 106, 221, 181, 208, 28, 61, 219, 191, 59, 114, 178, 44, 113, 22, 56, 70, 210, 240, 230, 203, 222, 68, 129, 198, 167, 103, 167, 237, 221, 177, 13, - 164, 180, 6, 53, 173, 112, 113, 157, 193, 209, 4, 247, 245, 63, 242, 95, 152, 149, 147, 186, 216, 195, 135, 105, 105, 216, 179, 61, 85, 236, 231, 166, - 228, 196, 0, 210, 69, 108, 4, 158, 222, 235, 80, 221, 215, 233, 130, 71, 78, 202, 112, 17, 185, 227, 208, 218, 9, 210, 28, 227, 122, 137, 171, 39, - 113, 12, 121, 144, 65, 219, 45, 32, 9, 247, 126, 99, 127, 237, 221, 233, 233, 197, 120, 165, 245, 228, 146, 250, 201, 131, 4, 73, 4, 238, 250, 59, - 79, 134, 196, 23, 238, 206, 206, 179, 85, 96, 54, 254, 155, 155, 80, 36, 68, 215, 81, 157, 194, 68, 53, 153, 27, 255, 0, 232, 161, 142, 175, 209, - 246, 239, 179, 31, 42, 176, 237, 125, 216, 214, 30, 251, 127, 192, 250, 159, 156, 137, 145, 91, 92, 40, 166, 134, 182, 166, 85, 102, 246, 203, 221, 160, - 253, 215, 250, 187, 175, 115, 119, 126, 251, 150, 125, 88, 22, 61, 155, 90, 205, 130, 214, 254, 149, 228, 86, 251, 93, 185, 206, 127, 181, 245, 250, 149, - 251, 90, 223, 207, 199, 183, 103, 252, 98, 86, 58, 168, 223, 79, 197, 255, 210, 227, 47, 205, 191, 5, 213, 102, 49, 246, 49, 247, 85, 83, 109, 171, - 105, 0, 200, 245, 31, 246, 135, 57, 155, 29, 235, 52, 191, 102, 199, 255, 0, 47, 216, 177, 168, 173, 151, 229, 210, 199, 3, 182, 215, 180, 16, 211, - 238, 32, 187, 111, 210, 113, 246, 185, 117, 76, 107, 50, 241, 205, 77, 50, 237, 128, 93, 234, 57, 246, 82, 11, 35, 212, 109, 85, 63, 243, 25, 109, - 62, 133, 119, 58, 207, 78, 175, 210, 250, 74, 205, 206, 161, 217, 6, 214, 210, 193, 147, 138, 198, 214, 44, 46, 14, 220, 54, 251, 152, 198, 215, 244, - 170, 118, 253, 244, 223, 103, 233, 233, 244, 190, 202, 155, 197, 0, 15, 171, 88, 254, 138, 193, 99, 166, 253, 89, 53, 134, 202, 42, 27, 154, 75, 67, - 36, 129, 32, 150, 29, 182, 178, 136, 107, 159, 250, 45, 187, 107, 247, 127, 57, 250, 71, 161, 227, 180, 253, 138, 151, 88, 247, 111, 176, 123, 237, 100, - 181, 207, 131, 191, 107, 221, 103, 187, 110, 239, 102, 199, 127, 194, 37, 145, 107, 183, 63, 209, 30, 161, 96, 45, 20, 51, 71, 57, 192, 178, 203, 93, - 251, 187, 42, 143, 250, 231, 243, 127, 225, 16, 232, 201, 13, 197, 107, 94, 230, 189, 215, 18, 235, 171, 210, 193, 99, 237, 115, 75, 170, 46, 112, 99, - 91, 236, 179, 247, 253, 138, 188, 79, 113, 186, 140, 116, 209, 85, 189, 142, 206, 125, 131, 30, 186, 108, 120, 13, 170, 199, 56, 50, 194, 226, 1, 221, - 64, 119, 230, 84, 221, 222, 167, 231, 220, 135, 78, 91, 70, 123, 42, 170, 166, 213, 104, 176, 254, 157, 144, 67, 125, 129, 172, 165, 186, 255, 0, 53, - 233, 125, 61, 254, 155, 61, 119, 171, 79, 186, 217, 109, 178, 8, 113, 5, 166, 201, 115, 75, 127, 54, 182, 86, 209, 234, 87, 91, 183, 108, 177, 255, - 0, 79, 254, 49, 84, 55, 177, 185, 30, 174, 56, 102, 70, 59, 170, 115, 155, 67, 245, 107, 3, 125, 150, 190, 170, 103, 237, 27, 254, 155, 127, 193, - 86, 164, 210, 85, 208, 82, 0, 111, 83, 212, 125, 92, 138, 137, 110, 221, 207, 123, 3, 88, 38, 199, 54, 15, 168, 224, 42, 250, 52, 251, 127, 224, - 214, 221, 231, 15, 30, 230, 91, 99, 247, 16, 206, 43, 14, 29, 254, 147, 203, 94, 230, 123, 255, 0, 194, 44, 92, 124, 93, 212, 53, 249, 35, 244, - 149, 139, 107, 99, 154, 65, 30, 155, 206, 234, 189, 213, 71, 169, 181, 159, 153, 252, 226, 119, 179, 244, 85, 177, 142, 23, 13, 240, 226, 227, 47, 96, - 0, 185, 150, 49, 231, 115, 61, 10, 255, 0, 63, 214, 254, 118, 212, 201, 71, 134, 235, 241, 100, 134, 89, 68, 16, 9, 212, 186, 248, 245, 87, 146, - 255, 0, 94, 151, 111, 197, 155, 26, 14, 235, 11, 203, 230, 11, 127, 72, 63, 65, 93, 81, 244, 24, 159, 50, 191, 74, 160, 43, 46, 109, 174, 112, - 99, 12, 23, 183, 118, 191, 79, 243, 189, 251, 125, 53, 75, 167, 94, 198, 178, 31, 121, 219, 97, 0, 75, 117, 99, 90, 226, 119, 110, 113, 102, 235, - 110, 115, 191, 71, 251, 140, 68, 183, 169, 90, 3, 106, 169, 238, 117, 187, 159, 88, 250, 33, 238, 13, 143, 210, 15, 115, 127, 205, 70, 58, 134, 126, - 48, 69, 153, 17, 47, 52, 217, 52, 92, 41, 99, 69, 206, 101, 132, 7, 189, 194, 183, 60, 52, 52, 111, 184, 55, 223, 183, 232, 255, 0, 164, 244, - 191, 237, 196, 204, 191, 27, 29, 184, 226, 204, 166, 187, 213, 108, 250, 142, 223, 160, 239, 99, 96, 251, 104, 119, 238, 88, 167, 86, 77, 22, 180, 85, - 144, 253, 207, 32, 61, 245, 130, 100, 72, 220, 221, 191, 191, 244, 189, 223, 200, 68, 200, 56, 152, 248, 239, 180, 181, 155, 168, 27, 152, 67, 68, 14, - 206, 107, 24, 246, 57, 181, 87, 244, 254, 130, 68, 119, 11, 197, 143, 80, 150, 137, 62, 205, 92, 146, 210, 210, 233, 221, 15, 123, 203, 34, 52, 112, - 223, 234, 109, 179, 243, 189, 69, 43, 49, 157, 101, 96, 239, 103, 169, 196, 18, 242, 0, 252, 232, 107, 99, 243, 62, 130, 6, 86, 79, 161, 67, 109, - 23, 250, 148, 92, 65, 22, 73, 145, 62, 230, 232, 127, 53, 234, 173, 157, 90, 230, 186, 170, 69, 192, 190, 243, 250, 35, 59, 154, 90, 79, 183, 134, - 165, 73, 57, 0, 220, 183, 235, 196, 34, 166, 178, 231, 203, 139, 164, 236, 121, 12, 31, 186, 89, 189, 142, 247, 55, 254, 219, 85, 114, 250, 111, 82, - 185, 246, 186, 177, 95, 162, 90, 26, 198, 177, 230, 93, 167, 187, 117, 123, 88, 198, 61, 174, 254, 90, 133, 89, 153, 86, 61, 237, 99, 128, 118, 226, - 223, 231, 96, 199, 248, 63, 100, 125, 53, 99, 237, 121, 213, 48, 220, 230, 215, 175, 243, 207, 14, 220, 118, 48, 75, 118, 214, 14, 247, 187, 126, 239, - 162, 196, 170, 188, 208, 72, 152, 212, 154, 9, 112, 49, 178, 43, 196, 107, 51, 203, 13, 173, 221, 46, 173, 197, 210, 63, 52, 125, 26, 255, 0, 53, - 72, 99, 216, 223, 79, 209, 37, 204, 4, 23, 54, 89, 237, 215, 254, 27, 211, 107, 246, 254, 103, 166, 239, 248, 196, 153, 152, 108, 118, 192, 230, 60, - 150, 135, 29, 174, 208, 207, 185, 167, 123, 253, 47, 106, 71, 43, 42, 96, 213, 187, 249, 65, 195, 108, 30, 93, 182, 119, 255, 0, 81, 10, 181, 195, - 74, 34, 90, 109, 224, 217, 244, 220, 231, 251, 133, 142, 7, 233, 62, 187, 107, 104, 108, 3, 180, 250, 59, 154, 246, 179, 221, 250, 86, 85, 191, 123, - 208, 233, 161, 226, 92, 247, 52, 57, 225, 141, 58, 23, 67, 90, 216, 250, 59, 78, 223, 210, 59, 220, 169, 89, 213, 41, 14, 12, 109, 86, 110, 146, - 117, 14, 246, 233, 184, 57, 251, 126, 139, 127, 150, 140, 220, 214, 18, 100, 75, 127, 120, 184, 152, 241, 75, 135, 197, 34, 96, 245, 127, 255, 211, 194, - 45, 102, 5, 23, 184, 58, 11, 11, 136, 104, 96, 231, 103, 167, 183, 99, 14, 223, 167, 239, 254, 218, 173, 131, 154, 247, 147, 45, 15, 181, 173, 96, - 55, 87, 46, 224, 54, 182, 111, 120, 99, 127, 70, 215, 254, 231, 243, 47, 68, 15, 173, 185, 53, 85, 33, 172, 172, 185, 161, 155, 139, 90, 216, 59, - 233, 127, 242, 61, 79, 161, 244, 189, 61, 255, 0, 240, 137, 195, 170, 171, 31, 117, 109, 27, 158, 217, 123, 222, 118, 142, 30, 250, 158, 255, 0, 167, - 250, 39, 59, 217, 234, 127, 35, 212, 177, 84, 243, 4, 222, 200, 220, 172, 40, 123, 175, 164, 88, 90, 225, 104, 115, 3, 4, 123, 160, 127, 35, 252, - 31, 208, 245, 63, 207, 66, 201, 201, 196, 46, 24, 182, 84, 203, 107, 111, 181, 231, 102, 205, 128, 131, 91, 109, 146, 95, 233, 86, 255, 0, 230, 253, - 223, 164, 254, 162, 123, 44, 216, 252, 81, 88, 44, 176, 215, 190, 28, 28, 210, 3, 203, 28, 250, 154, 226, 31, 233, 177, 206, 179, 221, 255, 0, 91, - 83, 247, 83, 153, 85, 21, 86, 69, 153, 14, 16, 67, 119, 182, 198, 250, 142, 107, 218, 198, 109, 218, 239, 117, 158, 167, 168, 157, 194, 73, 4, 14, - 251, 120, 33, 141, 182, 183, 38, 171, 141, 206, 125, 98, 219, 43, 24, 214, 216, 92, 32, 183, 109, 182, 182, 143, 163, 254, 16, 51, 101, 149, 255, 0, - 230, 106, 213, 77, 105, 165, 238, 173, 226, 187, 173, 18, 231, 237, 29, 128, 96, 183, 111, 168, 230, 223, 99, 171, 111, 253, 184, 179, 141, 29, 75, 37, - 216, 87, 88, 198, 218, 192, 94, 253, 239, 19, 45, 14, 221, 1, 191, 233, 63, 69, 107, 107, 175, 249, 207, 240, 107, 71, 13, 152, 215, 154, 110, 199, - 216, 30, 1, 103, 170, 53, 107, 195, 139, 131, 44, 107, 63, 192, 109, 177, 191, 164, 123, 154, 205, 254, 146, 117, 206, 58, 68, 15, 27, 71, 68, 248, - 238, 182, 150, 195, 114, 31, 113, 13, 214, 226, 214, 135, 134, 192, 250, 12, 135, 53, 174, 246, 191, 223, 98, 20, 22, 190, 219, 28, 231, 7, 88, 101, - 204, 212, 84, 27, 89, 221, 233, 178, 161, 237, 118, 255, 0, 230, 222, 228, 102, 26, 220, 214, 251, 90, 95, 104, 244, 236, 47, 33, 165, 251, 5, 78, - 174, 203, 125, 61, 159, 163, 219, 99, 254, 131, 85, 111, 85, 151, 7, 186, 189, 43, 22, 28, 119, 67, 137, 177, 214, 184, 254, 137, 163, 103, 230, 88, - 199, 57, 207, 254, 95, 232, 212, 114, 57, 72, 223, 136, 39, 68, 199, 212, 107, 189, 7, 63, 115, 156, 56, 48, 118, 141, 190, 148, 185, 199, 111, 231, - 59, 110, 246, 254, 122, 31, 163, 115, 137, 244, 239, 13, 15, 1, 181, 134, 48, 218, 101, 191, 161, 117, 118, 215, 187, 220, 247, 187, 223, 253, 69, 31, - 77, 149, 219, 185, 204, 107, 46, 123, 6, 214, 185, 196, 134, 1, 181, 207, 101, 113, 183, 243, 254, 151, 250, 91, 20, 48, 243, 172, 126, 93, 245, 223, - 83, 45, 44, 112, 115, 158, 230, 232, 199, 31, 97, 246, 55, 217, 103, 182, 180, 220, 82, 225, 36, 238, 43, 84, 246, 117, 250, 99, 92, 215, 26, 45, - 167, 210, 203, 21, 67, 172, 14, 221, 105, 219, 249, 143, 177, 223, 185, 187, 243, 61, 137, 179, 31, 142, 219, 62, 207, 115, 156, 5, 149, 155, 43, 97, - 113, 112, 223, 244, 218, 31, 180, 127, 163, 111, 208, 107, 144, 44, 178, 187, 45, 126, 69, 173, 110, 240, 8, 183, 105, 38, 27, 187, 107, 69, 109, 111, - 245, 127, 207, 68, 195, 205, 244, 219, 99, 88, 208, 67, 116, 175, 118, 177, 164, 216, 198, 79, 230, 251, 191, 123, 249, 197, 56, 151, 22, 163, 84, 241, - 116, 61, 58, 166, 233, 141, 55, 92, 202, 178, 154, 215, 189, 205, 220, 41, 115, 101, 178, 211, 237, 124, 59, 102, 239, 111, 179, 221, 86, 197, 99, 171, - 122, 225, 181, 187, 27, 107, 46, 14, 244, 198, 240, 214, 144, 8, 246, 129, 111, 167, 185, 158, 163, 142, 223, 75, 127, 189, 83, 102, 67, 219, 155, 102, - 75, 131, 141, 86, 211, 232, 90, 234, 135, 184, 128, 119, 125, 25, 117, 158, 231, 125, 59, 41, 217, 250, 63, 248, 37, 44, 203, 112, 178, 171, 47, 182, - 215, 215, 93, 85, 250, 150, 212, 201, 54, 180, 183, 232, 49, 141, 253, 239, 223, 123, 109, 246, 39, 24, 222, 169, 19, 244, 112, 143, 29, 88, 87, 93, - 24, 158, 171, 238, 218, 251, 228, 23, 185, 205, 13, 118, 224, 15, 182, 173, 199, 115, 182, 53, 223, 245, 197, 44, 172, 134, 219, 142, 241, 14, 112, 176, - 123, 43, 168, 31, 112, 34, 63, 69, 171, 55, 125, 27, 54, 36, 206, 164, 31, 72, 109, 99, 90, 224, 88, 247, 48, 58, 11, 182, 157, 154, 126, 125, - 109, 119, 231, 127, 198, 44, 219, 113, 223, 181, 245, 151, 218, 230, 135, 203, 97, 251, 157, 187, 159, 127, 169, 238, 244, 54, 255, 0, 56, 255, 0, 230, - 246, 126, 141, 9, 13, 191, 106, 195, 51, 176, 59, 167, 233, 93, 70, 183, 95, 86, 35, 47, 19, 180, 1, 88, 46, 12, 112, 97, 244, 171, 126, 205, - 172, 115, 220, 255, 0, 204, 217, 190, 181, 107, 43, 168, 19, 148, 220, 86, 53, 220, 187, 244, 142, 38, 6, 140, 151, 88, 90, 93, 249, 150, 239, 254, - 66, 173, 137, 145, 75, 61, 39, 62, 239, 88, 99, 3, 185, 224, 108, 115, 157, 183, 103, 168, 214, 67, 189, 54, 109, 115, 61, 63, 244, 106, 54, 58, - 202, 217, 101, 142, 213, 237, 111, 166, 242, 194, 36, 200, 104, 126, 75, 7, 210, 245, 182, 108, 246, 108, 245, 189, 68, 52, 236, 174, 50, 35, 86, 220, - 233, 246, 238, 202, 34, 154, 92, 95, 77, 111, 54, 189, 160, 184, 7, 75, 3, 27, 91, 172, 246, 190, 207, 223, 171, 243, 21, 156, 236, 215, 227, 48, - 87, 88, 244, 236, 47, 37, 213, 22, 195, 121, 159, 237, 54, 223, 223, 84, 113, 114, 14, 61, 204, 165, 182, 23, 86, 214, 126, 146, 230, 48, 84, 25, - 99, 116, 121, 216, 253, 187, 45, 127, 248, 84, 246, 215, 101, 238, 113, 109, 158, 237, 9, 14, 38, 55, 234, 211, 186, 195, 31, 213, 175, 98, 110, 210, - 243, 100, 142, 82, 49, 208, 15, 255, 212, 227, 250, 126, 43, 235, 205, 201, 55, 19, 107, 246, 181, 219, 157, 251, 214, 56, 134, 219, 232, 125, 47, 209, - 127, 45, 158, 197, 114, 230, 122, 181, 181, 183, 61, 204, 46, 104, 33, 192, 107, 13, 110, 231, 216, 24, 230, 251, 172, 127, 187, 111, 187, 211, 103, 166, - 181, 155, 87, 163, 72, 13, 124, 216, 43, 13, 115, 195, 79, 14, 1, 191, 165, 115, 27, 234, 63, 221, 255, 0, 169, 21, 107, 50, 93, 83, 153, 67, - 104, 177, 251, 216, 255, 0, 90, 210, 224, 72, 15, 7, 212, 253, 35, 93, 185, 150, 91, 254, 155, 247, 20, 70, 4, 238, 117, 209, 97, 46, 115, 44, - 48, 251, 26, 215, 186, 186, 216, 214, 182, 160, 230, 180, 57, 194, 199, 99, 154, 46, 124, 110, 174, 203, 55, 51, 249, 191, 248, 79, 77, 104, 116, 252, - 107, 26, 118, 91, 80, 222, 219, 69, 141, 174, 79, 166, 93, 244, 133, 180, 92, 225, 190, 167, 59, 255, 0, 3, 255, 0, 71, 250, 68, 245, 99, 86, - 204, 10, 241, 192, 4, 90, 73, 107, 160, 16, 75, 157, 188, 13, 251, 55, 217, 244, 191, 63, 243, 255, 0, 72, 196, 245, 89, 124, 209, 85, 45, 99, - 218, 230, 110, 244, 152, 211, 47, 0, 126, 102, 232, 117, 127, 164, 186, 191, 107, 148, 144, 28, 62, 104, 37, 14, 69, 54, 186, 220, 139, 88, 193, 117, - 128, 111, 103, 167, 237, 46, 107, 156, 246, 228, 110, 103, 233, 31, 86, 219, 89, 244, 61, 15, 231, 42, 255, 0, 139, 69, 197, 45, 171, 38, 203, 107, - 173, 166, 131, 233, 89, 142, 24, 210, 45, 101, 122, 210, 125, 55, 104, 223, 103, 190, 231, 213, 249, 149, 217, 254, 151, 244, 42, 118, 86, 250, 219, 109, - 148, 15, 74, 194, 90, 69, 130, 11, 139, 247, 134, 89, 237, 179, 233, 53, 158, 255, 0, 210, 253, 5, 110, 155, 92, 94, 47, 105, 13, 166, 125, 42, - 246, 196, 69, 110, 138, 253, 187, 133, 111, 99, 63, 53, 72, 100, 13, 87, 213, 0, 82, 27, 49, 125, 42, 236, 164, 109, 107, 242, 108, 169, 181, 214, - 1, 112, 129, 187, 123, 89, 177, 190, 179, 91, 107, 127, 70, 239, 77, 155, 63, 71, 250, 79, 77, 97, 101, 98, 87, 211, 177, 44, 176, 48, 88, 239, - 88, 151, 100, 98, 128, 106, 97, 219, 233, 250, 97, 150, 183, 222, 218, 127, 73, 233, 101, 255, 0, 52, 251, 45, 191, 236, 254, 175, 243, 203, 168, 99, - 169, 99, 11, 235, 111, 230, 185, 182, 22, 145, 238, 13, 63, 164, 168, 185, 222, 198, 183, 115, 191, 77, 90, 7, 166, 215, 58, 219, 111, 247, 11, 88, - 214, 0, 9, 116, 180, 73, 115, 173, 110, 214, 253, 23, 255, 0, 53, 183, 222, 155, 99, 160, 87, 215, 249, 7, 140, 202, 200, 173, 214, 227, 217, 68, - 214, 200, 151, 50, 178, 237, 225, 174, 33, 238, 225, 222, 155, 91, 254, 142, 170, 189, 53, 161, 211, 168, 176, 99, 222, 246, 88, 107, 125, 229, 141, 103, - 170, 237, 198, 0, 105, 157, 155, 127, 73, 127, 253, 115, 244, 95, 245, 167, 173, 11, 122, 54, 4, 87, 145, 85, 143, 204, 177, 164, 154, 203, 152, 61, - 55, 144, 55, 56, 53, 149, 250, 85, 254, 119, 231, 126, 143, 213, 255, 0, 9, 234, 44, 107, 58, 235, 171, 107, 233, 13, 101, 175, 115, 195, 131, 162, - 34, 61, 177, 104, 111, 183, 219, 254, 15, 209, 179, 216, 153, 56, 216, 208, 111, 166, 171, 135, 102, 254, 29, 246, 90, 243, 88, 181, 185, 69, 173, 107, - 158, 107, 220, 39, 118, 253, 187, 221, 95, 210, 123, 93, 254, 15, 249, 191, 85, 105, 186, 250, 234, 170, 186, 221, 181, 140, 45, 104, 134, 141, 178, 231, - 125, 43, 11, 90, 93, 239, 123, 255, 0, 63, 254, 219, 89, 221, 42, 174, 161, 102, 83, 243, 104, 123, 27, 83, 65, 99, 139, 189, 161, 194, 61, 198, - 154, 88, 11, 190, 147, 91, 250, 79, 251, 109, 235, 85, 184, 117, 178, 183, 123, 119, 136, 208, 22, 8, 2, 7, 208, 247, 250, 127, 71, 247, 189, 245, - 189, 65, 44, 100, 17, 194, 116, 251, 21, 125, 26, 222, 161, 107, 156, 26, 78, 251, 31, 18, 29, 233, 237, 115, 128, 219, 191, 244, 119, 239, 217, 89, - 250, 45, 250, 107, 95, 34, 252, 23, 180, 156, 112, 230, 214, 70, 192, 29, 96, 116, 199, 182, 219, 44, 246, 141, 237, 250, 74, 135, 217, 104, 99, 93, - 112, 250, 7, 115, 157, 67, 119, 6, 136, 216, 62, 139, 125, 223, 69, 191, 205, 86, 139, 83, 113, 235, 171, 115, 1, 115, 107, 144, 199, 19, 4, 134, - 253, 9, 120, 111, 239, 255, 0, 54, 164, 191, 78, 246, 129, 167, 68, 152, 214, 212, 110, 123, 26, 223, 66, 177, 96, 59, 217, 4, 109, 49, 190, 235, - 27, 183, 244, 191, 247, 245, 90, 230, 214, 203, 139, 113, 229, 237, 97, 150, 220, 201, 111, 168, 90, 67, 247, 217, 235, 127, 55, 141, 110, 237, 254, 255, - 0, 207, 82, 59, 152, 192, 242, 231, 219, 93, 178, 227, 164, 186, 55, 79, 169, 236, 134, 237, 244, 217, 183, 211, 254, 113, 5, 239, 202, 181, 142, 20, - 193, 15, 107, 54, 81, 32, 18, 3, 191, 73, 244, 246, 179, 220, 199, 213, 191, 249, 31, 190, 129, 40, 11, 181, 230, 203, 28, 246, 215, 181, 210, 6, - 214, 186, 79, 169, 205, 155, 156, 207, 119, 169, 95, 231, 239, 253, 29, 126, 159, 169, 234, 32, 185, 153, 1, 245, 222, 246, 182, 246, 135, 15, 84, 18, - 36, 60, 188, 75, 169, 134, 126, 142, 188, 95, 252, 25, 96, 140, 187, 141, 245, 51, 38, 227, 77, 54, 188, 89, 96, 231, 218, 225, 246, 119, 250, 77, - 111, 230, 212, 234, 238, 110, 221, 255, 0, 158, 183, 241, 141, 45, 104, 57, 32, 92, 251, 8, 13, 165, 174, 14, 15, 26, 250, 91, 163, 111, 211, 219, - 249, 191, 240, 169, 17, 73, 219, 84, 157, 34, 231, 55, 14, 250, 110, 216, 43, 5, 246, 155, 132, 246, 220, 255, 0, 231, 44, 253, 39, 243, 94, 237, - 136, 239, 251, 62, 57, 116, 48, 135, 62, 11, 199, 187, 97, 144, 25, 181, 147, 237, 103, 230, 39, 22, 212, 26, 199, 53, 190, 173, 150, 151, 2, 215, - 190, 34, 125, 214, 75, 89, 237, 218, 207, 209, 181, 205, 102, 253, 254, 162, 173, 126, 11, 178, 181, 177, 238, 52, 177, 238, 45, 219, 244, 131, 142, 194, - 198, 251, 139, 171, 245, 25, 178, 205, 244, 187, 212, 170, 175, 81, 54, 84, 144, 95, 255, 213, 174, 113, 173, 14, 216, 242, 250, 158, 203, 158, 207, 16, - 97, 167, 213, 178, 183, 159, 205, 222, 61, 158, 223, 248, 52, 22, 217, 73, 101, 119, 57, 192, 178, 214, 18, 215, 184, 130, 3, 121, 115, 216, 101, 158, - 165, 142, 218, 218, 253, 158, 167, 245, 24, 163, 126, 94, 30, 76, 101, 151, 6, 209, 234, 122, 68, 184, 157, 205, 175, 123, 247, 91, 164, 182, 151, 89, - 239, 183, 212, 103, 233, 63, 70, 158, 198, 95, 140, 220, 107, 50, 201, 111, 217, 218, 104, 97, 99, 125, 67, 186, 183, 228, 81, 145, 181, 167, 219, 250, - 95, 74, 155, 125, 159, 224, 212, 124, 75, 40, 133, 141, 174, 115, 253, 0, 205, 197, 155, 90, 28, 214, 180, 250, 110, 115, 102, 32, 123, 61, 70, 212, - 235, 61, 77, 255, 0, 205, 254, 122, 158, 54, 46, 61, 65, 198, 183, 22, 73, 37, 161, 206, 36, 7, 2, 243, 187, 251, 31, 159, 71, 254, 162, 75, - 19, 165, 218, 30, 43, 221, 53, 250, 141, 119, 162, 214, 128, 214, 52, 29, 185, 21, 232, 125, 251, 220, 255, 0, 165, 254, 13, 11, 37, 172, 144, 28, - 249, 0, 181, 146, 65, 96, 222, 92, 94, 246, 241, 99, 31, 189, 143, 244, 247, 127, 194, 255, 0, 219, 102, 194, 23, 188, 180, 135, 31, 70, 75, 182, - 251, 172, 246, 185, 192, 206, 202, 216, 94, 127, 71, 251, 251, 255, 0, 115, 212, 82, 175, 24, 9, 200, 134, 217, 96, 116, 82, 211, 186, 90, 91, 236, - 119, 169, 244, 183, 127, 219, 127, 230, 32, 102, 101, 50, 191, 68, 61, 204, 217, 121, 44, 216, 246, 200, 119, 31, 163, 221, 252, 213, 126, 167, 232, 189, - 246, 187, 101, 116, 239, 83, 176, 176, 80, 28, 106, 134, 104, 75, 125, 196, 135, 71, 181, 187, 207, 233, 61, 39, 109, 111, 183, 244, 136, 133, 48, 251, - 91, 173, 186, 230, 229, 180, 84, 107, 143, 74, 166, 145, 15, 102, 214, 238, 179, 212, 143, 222, 220, 231, 255, 0, 224, 106, 88, 249, 237, 33, 222, 155, - 183, 16, 69, 117, 147, 44, 126, 214, 207, 233, 92, 205, 140, 119, 171, 99, 253, 159, 163, 254, 186, 167, 85, 117, 154, 45, 161, 192, 155, 221, 181, 150, - 58, 224, 226, 223, 73, 147, 111, 218, 113, 216, 231, 87, 234, 217, 142, 255, 0, 78, 159, 165, 252, 239, 232, 253, 38, 40, 227, 208, 42, 234, 47, 201, - 55, 53, 207, 112, 97, 166, 186, 126, 155, 192, 223, 244, 45, 177, 214, 83, 91, 61, 22, 63, 243, 255, 0, 210, 127, 131, 173, 58, 213, 224, 232, 223, - 72, 190, 150, 226, 85, 160, 125, 101, 204, 21, 251, 67, 107, 118, 179, 187, 111, 208, 223, 187, 219, 251, 234, 7, 161, 99, 140, 80, 204, 179, 234, 64, - 145, 115, 15, 166, 240, 116, 117, 181, 215, 99, 71, 167, 91, 55, 255, 0, 164, 245, 108, 255, 0, 72, 134, 206, 161, 109, 54, 26, 203, 125, 7, 89, - 87, 169, 233, 220, 237, 78, 174, 99, 11, 30, 54, 59, 222, 198, 63, 213, 255, 0, 173, 127, 198, 169, 211, 214, 133, 142, 123, 158, 237, 143, 59, 102, - 153, 135, 123, 128, 110, 202, 222, 7, 165, 111, 233, 63, 59, 250, 66, 105, 50, 42, 86, 31, 78, 110, 43, 110, 59, 203, 238, 113, 37, 164, 31, 110, - 198, 112, 225, 188, 189, 173, 221, 191, 243, 125, 52, 178, 223, 146, 219, 43, 109, 116, 155, 220, 119, 3, 233, 63, 80, 237, 173, 14, 221, 92, 53, 190, - 150, 253, 159, 165, 223, 255, 0, 22, 173, 80, 236, 156, 138, 55, 189, 190, 155, 88, 34, 4, 253, 32, 116, 173, 187, 226, 207, 116, 254, 143, 217, 255, - 0, 129, 170, 57, 57, 247, 98, 228, 55, 123, 11, 220, 226, 26, 230, 208, 221, 207, 135, 53, 207, 107, 125, 87, 251, 93, 178, 55, 92, 196, 40, 119, - 72, 95, 38, 198, 12, 127, 179, 250, 130, 187, 1, 107, 224, 201, 120, 4, 153, 222, 239, 115, 119, 57, 219, 254, 130, 45, 91, 222, 64, 99, 118, 210, - 106, 105, 221, 27, 119, 61, 229, 207, 115, 182, 125, 38, 109, 179, 99, 212, 104, 201, 196, 180, 87, 148, 233, 34, 170, 193, 107, 247, 67, 6, 243, 238, - 120, 165, 187, 125, 223, 188, 247, 126, 138, 175, 77, 77, 215, 188, 228, 181, 187, 225, 128, 123, 136, 102, 227, 14, 27, 128, 175, 93, 191, 224, 183, 127, - 198, 38, 158, 193, 13, 91, 31, 113, 200, 177, 165, 190, 142, 247, 52, 88, 215, 57, 173, 1, 173, 107, 190, 208, 241, 254, 19, 223, 182, 191, 160, 229, - 159, 149, 149, 173, 110, 199, 172, 91, 77, 84, 110, 105, 113, 150, 86, 15, 183, 159, 117, 155, 54, 50, 214, 63, 127, 191, 212, 86, 114, 119, 87, 151, - 102, 67, 89, 191, 30, 231, 53, 129, 251, 182, 51, 220, 119, 110, 247, 59, 103, 231, 250, 108, 115, 63, 71, 236, 81, 115, 50, 172, 45, 194, 125, 47, - 162, 166, 110, 251, 67, 193, 141, 222, 163, 118, 251, 75, 125, 158, 163, 220, 207, 230, 63, 194, 123, 61, 95, 230, 208, 0, 117, 213, 90, 54, 113, 25, - 142, 214, 182, 218, 246, 2, 91, 234, 189, 173, 0, 182, 28, 208, 209, 107, 63, 226, 154, 239, 211, 110, 253, 31, 248, 79, 231, 214, 11, 186, 173, 204, - 203, 118, 69, 27, 155, 69, 142, 130, 65, 32, 185, 140, 135, 62, 169, 254, 115, 249, 123, 255, 0, 157, 247, 173, 59, 49, 133, 45, 169, 184, 172, 219, - 138, 214, 250, 153, 44, 113, 104, 32, 187, 219, 233, 183, 118, 237, 158, 214, 239, 253, 39, 248, 101, 94, 254, 137, 109, 143, 173, 182, 90, 69, 55, 7, - 89, 141, 91, 1, 221, 4, 111, 125, 215, 52, 111, 244, 154, 199, 191, 244, 159, 206, 39, 64, 3, 170, 172, 55, 46, 234, 15, 126, 45, 183, 80, 70, - 61, 205, 111, 180, 144, 99, 219, 182, 118, 110, 63, 206, 59, 217, 244, 63, 224, 255, 0, 70, 137, 211, 236, 244, 107, 15, 178, 199, 219, 99, 28, 67, - 183, 23, 183, 105, 177, 206, 185, 245, 109, 112, 171, 212, 183, 233, 251, 255, 0, 210, 170, 79, 233, 217, 181, 184, 212, 203, 11, 42, 180, 134, 250, 176, - 61, 190, 149, 127, 166, 46, 103, 185, 219, 236, 255, 0, 166, 137, 135, 211, 122, 141, 142, 140, 203, 37, 193, 190, 160, 170, 199, 186, 210, 215, 15, 209, - 236, 244, 220, 231, 86, 235, 54, 253, 61, 206, 255, 0, 11, 252, 218, 82, 136, 162, 84, 255, 0, 255, 214, 230, 113, 109, 207, 193, 125, 119, 53, 149, - 219, 64, 123, 108, 118, 62, 246, 233, 92, 182, 189, 219, 41, 221, 181, 205, 252, 251, 189, 159, 162, 80, 253, 167, 126, 53, 182, 177, 172, 180, 244, 250, - 110, 101, 152, 242, 14, 250, 218, 61, 245, 85, 188, 126, 237, 127, 162, 125, 142, 246, 61, 149, 174, 77, 37, 23, 216, 131, 227, 244, 125, 15, 15, 172, - 88, 220, 47, 69, 195, 78, 156, 42, 4, 134, 159, 87, 211, 118, 214, 227, 189, 158, 239, 211, 99, 89, 153, 178, 157, 237, 253, 46, 63, 173, 233, 127, - 131, 245, 22, 43, 114, 178, 206, 87, 163, 118, 234, 133, 39, 100, 177, 197, 195, 159, 91, 210, 126, 227, 255, 0, 7, 249, 255, 0, 224, 23, 44, 146, - 35, 115, 93, 150, 233, 111, 117, 139, 151, 54, 187, 208, 223, 107, 173, 46, 181, 225, 129, 190, 153, 96, 37, 158, 157, 173, 179, 252, 29, 21, 217, 250, - 54, 255, 0, 219, 106, 195, 238, 167, 38, 223, 211, 60, 92, 217, 105, 44, 222, 36, 29, 92, 217, 253, 39, 187, 119, 250, 47, 103, 232, 216, 188, 245, - 36, 226, 167, 190, 56, 216, 222, 133, 181, 186, 193, 235, 220, 231, 237, 44, 48, 91, 36, 212, 250, 157, 189, 173, 217, 94, 159, 224, 182, 89, 103, 233, - 63, 70, 178, 255, 0, 102, 229, 178, 227, 110, 51, 223, 134, 93, 3, 31, 30, 151, 62, 194, 94, 78, 231, 122, 175, 177, 222, 155, 241, 219, 249, 246, - 251, 217, 255, 0, 130, 174, 85, 36, 141, 222, 138, 30, 15, 73, 117, 87, 95, 148, 235, 173, 111, 235, 140, 99, 119, 55, 219, 91, 26, 233, 218, 95, - 115, 76, 238, 221, 252, 239, 173, 183, 210, 255, 0, 173, 34, 28, 12, 188, 59, 93, 150, 247, 110, 109, 208, 215, 109, 46, 45, 51, 252, 231, 187, 233, - 123, 182, 238, 251, 66, 229, 210, 78, 55, 67, 241, 87, 87, 209, 49, 222, 5, 34, 208, 230, 237, 33, 151, 29, 165, 187, 33, 163, 101, 155, 157, 187, - 211, 219, 187, 249, 175, 252, 9, 25, 183, 211, 101, 182, 53, 206, 107, 118, 24, 108, 65, 221, 3, 244, 198, 217, 219, 250, 74, 255, 0, 155, 219, 254, - 143, 211, 177, 121, 170, 73, 170, 125, 11, 55, 3, 1, 166, 183, 250, 77, 120, 32, 84, 230, 137, 12, 2, 70, 231, 57, 213, 254, 111, 179, 101, 91, - 255, 0, 70, 144, 201, 195, 109, 150, 181, 182, 109, 45, 181, 205, 176, 16, 15, 185, 197, 165, 173, 99, 79, 210, 103, 179, 217, 255, 0, 127, 94, 122, - 146, 97, 170, 210, 208, 41, 244, 10, 236, 160, 89, 107, 172, 27, 125, 90, 218, 45, 99, 9, 218, 26, 210, 61, 251, 108, 253, 27, 55, 59, 249, 198, - 57, 49, 35, 34, 203, 106, 118, 215, 177, 132, 125, 16, 67, 131, 92, 61, 39, 55, 108, 253, 23, 110, 221, 99, 255, 0, 225, 127, 155, 244, 182, 46, - 1, 36, 205, 58, 47, 28, 53, 175, 127, 240, 158, 225, 244, 101, 253, 177, 237, 96, 178, 173, 129, 181, 239, 115, 38, 191, 70, 175, 111, 168, 247, 251, - 107, 119, 181, 187, 27, 187, 212, 127, 252, 26, 181, 77, 172, 176, 6, 151, 108, 33, 135, 123, 137, 209, 219, 142, 205, 187, 93, 244, 91, 187, 114, 243, - 212, 147, 227, 117, 252, 22, 158, 30, 150, 250, 39, 173, 123, 109, 45, 12, 112, 46, 3, 101, 142, 27, 70, 208, 76, 185, 191, 202, 102, 223, 204, 254, - 115, 254, 182, 163, 83, 26, 11, 155, 141, 88, 139, 44, 47, 177, 206, 59, 108, 123, 143, 248, 71, 111, 220, 221, 223, 159, 255, 0, 162, 215, 158, 164, - 151, 167, 197, 15, 255, 217, 255, 237, 67, 52, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 51, 46, 48, 0, 56, 66, 73, 77, 4, 4, 0, 0, - 0, 0, 0, 26, 28, 2, 0, 0, 2, 0, 2, 28, 2, 116, 0, 14, 49, 57, 57, 57, 32, 76, 97, 114, 115, 32, 66, 111, 114, 103, 56, 66, - 73, 77, 4, 37, 0, 0, 0, 0, 0, 16, 12, 57, 75, 230, 12, 204, 39, 133, 114, 13, 136, 79, 104, 55, 206, 185, 56, 66, 73, 77, 3, 234, - 0, 0, 0, 0, 29, 173, 60, 63, 120, 109, 108, 32, 118, 101, 114, 115, 105, 111, 110, 61, 34, 49, 46, 48, 34, 32, 101, 110, 99, 111, 100, 105, - 110, 103, 61, 34, 85, 84, 70, 45, 56, 34, 63, 62, 10, 60, 33, 68, 79, 67, 84, 89, 80, 69, 32, 112, 108, 105, 115, 116, 32, 80, 85, 66, - 76, 73, 67, 32, 34, 45, 47, 47, 65, 112, 112, 108, 101, 32, 67, 111, 109, 112, 117, 116, 101, 114, 47, 47, 68, 84, 68, 32, 80, 76, 73, 83, - 84, 32, 49, 46, 48, 47, 47, 69, 78, 34, 32, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 97, 112, 112, 108, 101, 46, 99, 111, 109, - 47, 68, 84, 68, 115, 47, 80, 114, 111, 112, 101, 114, 116, 121, 76, 105, 115, 116, 45, 49, 46, 48, 46, 100, 116, 100, 34, 62, 10, 60, 112, 108, - 105, 115, 116, 32, 118, 101, 114, 115, 105, 111, 110, 61, 34, 49, 46, 48, 34, 62, 10, 60, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, - 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 72, 111, 114, - 105, 122, 111, 110, 116, 97, 108, 82, 101, 115, 60, 47, 107, 101, 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, - 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, - 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, - 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, - 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, - 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, - 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 72, 111, 114, 105, 122, 111, - 110, 116, 97, 108, 82, 101, 115, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 50, 60, 47, 114, 101, 97, 108, - 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, - 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, - 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, - 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, - 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, - 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, 47, - 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, - 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 79, 114, 105, - 101, 110, 116, 97, 116, 105, 111, 110, 60, 47, 107, 101, 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, - 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, - 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, - 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, - 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, - 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 79, 114, 105, 101, 110, 116, 97, 116, - 105, 111, 110, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 49, 60, 47, 105, 110, 116, 101, 103, 101, - 114, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, - 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, - 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, - 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, - 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, - 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, - 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, - 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, - 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, - 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 83, 99, - 97, 108, 105, 110, 103, 60, 47, 107, 101, 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, - 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, - 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, - 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 97, 114, - 114, 97, 121, 62, 10, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, - 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 83, 99, 97, 108, 105, 110, 103, 60, 47, 107, 101, - 121, 62, 10, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 49, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, - 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, - 121, 62, 10, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, - 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, - 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, - 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, - 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, - 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, - 114, 97, 121, 62, 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, - 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 86, 101, 114, 116, 105, 99, 97, 108, 82, 101, 115, 60, 47, 107, 101, - 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, - 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, - 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, - 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, - 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 60, - 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, - 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 86, 101, 114, 116, 105, 99, 97, 108, 82, 101, 115, 60, 47, 107, 101, 121, 62, 10, 9, 9, - 9, 9, 60, 114, 101, 97, 108, 62, 55, 50, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, - 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, - 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, - 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, - 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, - 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, - 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, - 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, - 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, - 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 86, 101, 114, 116, 105, 99, 97, 108, 83, 99, 97, 108, 105, 110, 103, 60, 47, 107, 101, - 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, - 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, - 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, - 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, - 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 60, - 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, - 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 86, 101, 114, 116, 105, 99, 97, 108, 83, 99, 97, 108, 105, 110, 103, 60, 47, 107, 101, 121, - 62, 10, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 49, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, - 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, - 62, 10, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, - 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, - 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, - 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, - 97, 116, 101, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, - 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, - 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, 114, - 97, 121, 62, 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, - 110, 116, 46, 115, 117, 98, 84, 105, 99, 107, 101, 116, 46, 112, 97, 112, 101, 114, 95, 105, 110, 102, 111, 95, 116, 105, 99, 107, 101, 116, 60, 47, - 107, 101, 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, - 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 65, 100, 106, 117, 115, 116, 101, 100, 80, 97, 103, 101, 82, 101, 99, - 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, - 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, - 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, - 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, - 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, - 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 65, 100, 106, 117, 115, 116, 101, 100, - 80, 97, 103, 101, 82, 101, 99, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, - 9, 9, 60, 114, 101, 97, 108, 62, 48, 46, 48, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 48, - 46, 48, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 51, 52, 60, 47, 114, 101, 97, 108, 62, - 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 53, 55, 54, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 60, 47, 97, - 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, - 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, - 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, - 110, 103, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, - 99, 107, 101, 116, 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, - 48, 51, 45, 49, 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, - 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, - 70, 108, 97, 103, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, - 103, 101, 114, 62, 10, 9, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, - 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, - 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 65, 100, 106, 117, 115, 116, 101, 100, 80, 97, 112, 101, 114, 82, 101, 99, 116, 60, 47, 107, 101, - 121, 62, 10, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, - 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, - 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, - 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, - 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, - 10, 9, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, - 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 65, 100, 106, 117, 115, 116, 101, 100, 80, 97, 112, 101, 114, - 82, 101, 99, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, - 101, 97, 108, 62, 45, 49, 56, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 45, 49, 56, 60, 47, - 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 55, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, - 9, 9, 9, 60, 114, 101, 97, 108, 62, 53, 57, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, - 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, - 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, - 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, - 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, - 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, - 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, - 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, - 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, - 10, 9, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, - 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, - 110, 102, 111, 46, 80, 77, 80, 97, 112, 101, 114, 78, 97, 109, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, - 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, - 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, - 46, 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, - 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, - 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 60, 100, 105, 99, - 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, - 101, 114, 73, 110, 102, 111, 46, 80, 77, 80, 97, 112, 101, 114, 78, 97, 109, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, - 116, 114, 105, 110, 103, 62, 110, 97, 45, 108, 101, 116, 116, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 9, 60, 107, - 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, - 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, - 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 9, - 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, - 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 48, 45, 48, 55, 45, 50, 56, 84, - 50, 50, 58, 53, 55, 58, 48, 52, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, - 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 49, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 9, - 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, - 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 46, 80, - 77, 85, 110, 97, 100, 106, 117, 115, 116, 101, 100, 80, 97, 103, 101, 82, 101, 99, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, 99, - 116, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, - 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, - 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, - 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, - 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, - 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 46, 80, 77, 85, 110, 97, 100, 106, 117, 115, 116, 101, 100, 80, 97, 103, 101, 82, 101, 99, 116, 60, - 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 48, - 46, 48, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 48, 46, 48, 60, 47, 114, 101, 97, 108, 62, - 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 51, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, - 101, 97, 108, 62, 53, 55, 54, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, - 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, - 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, - 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 9, - 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, - 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, 84, - 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, - 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, - 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 9, - 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, - 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 46, 80, - 77, 85, 110, 97, 100, 106, 117, 115, 116, 101, 100, 80, 97, 112, 101, 114, 82, 101, 99, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, - 99, 116, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, - 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, - 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, - 103, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, - 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, - 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, - 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 46, 80, 77, 85, 110, 97, 100, 106, 117, 115, 116, 101, 100, 80, 97, 112, 101, 114, 82, 101, 99, - 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, - 62, 45, 49, 56, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 45, 49, 56, 60, 47, 114, 101, 97, - 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 55, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, - 60, 114, 101, 97, 108, 62, 53, 57, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, - 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, - 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, - 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, - 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, - 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, - 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, - 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, - 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, - 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, - 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, - 46, 112, 112, 100, 46, 80, 77, 80, 97, 112, 101, 114, 78, 97, 109, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, 99, 116, 62, 10, - 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, - 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, - 101, 46, 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, - 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, - 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 60, 100, 105, - 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, - 112, 101, 114, 73, 110, 102, 111, 46, 112, 112, 100, 46, 80, 77, 80, 97, 112, 101, 114, 78, 97, 109, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, - 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 76, 101, 116, 116, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 9, - 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, - 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, - 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, - 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, - 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 48, 45, 48, 55, 45, 50, - 56, 84, 50, 50, 58, 53, 55, 58, 48, 52, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, - 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, - 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 49, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, - 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, - 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 65, 80, - 73, 86, 101, 114, 115, 105, 111, 110, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 48, 48, 46, 50, 48, 60, 47, - 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, - 105, 99, 107, 101, 116, 46, 112, 114, 105, 118, 97, 116, 101, 76, 111, 99, 107, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 102, 97, 108, 115, 101, - 47, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, - 46, 116, 121, 112, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, - 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 84, 105, 99, 107, 101, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, - 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, - 99, 107, 101, 116, 46, 65, 80, 73, 86, 101, 114, 115, 105, 111, 110, 60, 47, 107, 101, 121, 62, 10, 9, 60, 115, 116, 114, 105, 110, 103, 62, 48, - 48, 46, 50, 48, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, - 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 112, 114, 105, 118, 97, 116, 101, 76, 111, 99, 107, 60, 47, 107, 101, 121, 62, 10, 9, 60, 102, - 97, 108, 115, 101, 47, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, - 107, 101, 116, 46, 116, 121, 112, 101, 60, 47, 107, 101, 121, 62, 10, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, - 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 84, 105, 99, 107, 101, 116, 60, 47, 115, 116, 114, 105, 110, 103, - 62, 10, 60, 47, 100, 105, 99, 116, 62, 10, 60, 47, 112, 108, 105, 115, 116, 62, 10, 0, 56, 66, 73, 77, 3, 233, 0, 0, 0, 0, 0, 120, - 0, 3, 0, 0, 0, 72, 0, 72, 0, 0, 0, 0, 2, 222, 2, 64, 255, 238, 255, 238, 3, 6, 2, 82, 3, 103, 5, 40, 3, 252, 0, 2, - 0, 0, 0, 72, 0, 72, 0, 0, 0, 0, 2, 216, 2, 40, 0, 1, 0, 0, 0, 100, 0, 0, 0, 1, 0, 3, 3, 3, 0, 0, 0, 1, - 127, 255, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 8, 0, 25, 1, 144, 0, 0, 0, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 66, 73, 77, 3, 237, 0, 0, - 0, 0, 0, 16, 0, 101, 0, 0, 0, 1, 0, 1, 0, 101, 0, 0, 0, 1, 0, 1, 56, 66, 73, 77, 4, 38, 0, 0, 0, 0, 0, 14, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 128, 0, 0, 56, 66, 73, 77, 4, 13, 0, 0, 0, 0, 0, 4, 0, 0, 0, 30, 56, 66, - 73, 77, 4, 25, 0, 0, 0, 0, 0, 4, 0, 0, 0, 30, 56, 66, 73, 77, 3, 243, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 56, 66, 73, 77, 4, 10, 0, 0, 0, 0, 0, 1, 1, 0, 56, 66, 73, 77, 39, 16, 0, 0, 0, 0, 0, 10, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, 56, 66, 73, 77, 3, 245, 0, 0, 0, 0, 0, 72, 0, 47, 102, 102, 0, 1, 0, 108, 102, 102, 0, 6, - 0, 0, 0, 0, 0, 1, 0, 47, 102, 102, 0, 1, 0, 161, 153, 154, 0, 6, 0, 0, 0, 0, 0, 1, 0, 50, 0, 0, 0, 1, 0, 90, - 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 53, 0, 0, 0, 1, 0, 45, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 56, 66, 73, 77, - 3, 248, 0, 0, 0, 0, 0, 112, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 3, 232, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 3, 232, 0, 0, - 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 3, 232, 0, 0, 0, 0, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 3, 232, 0, 0, 56, 66, 73, 77, 4, 8, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 2, 64, 0, 0, 2, 64, 0, 0, 0, 0, 56, 66, 73, 77, 4, 30, 0, 0, 0, 0, 0, 4, - 0, 0, 0, 0, 56, 66, 73, 77, 4, 26, 0, 0, 0, 0, 3, 73, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, - 0, 0, 1, 19, 0, 0, 0, 10, 0, 76, 0, 111, 0, 119, 0, 101, 0, 114, 0, 95, 0, 76, 0, 101, 0, 102, 0, 116, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 19, - 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 110, 117, 108, 108, 0, 0, 0, 2, 0, 0, 0, 6, 98, - 111, 117, 110, 100, 115, 79, 98, 106, 99, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 82, 99, 116, 49, 0, 0, 0, 4, 0, 0, 0, 0, 84, - 111, 112, 32, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 76, 101, 102, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 116, 111, 109, 108, 111, 110, 103, 0, 0, 0, 207, 0, 0, 0, 0, 82, 103, 104, 116, 108, 111, 110, 103, 0, 0, 1, 19, 0, 0, 0, 6, 115, - 108, 105, 99, 101, 115, 86, 108, 76, 115, 0, 0, 0, 1, 79, 98, 106, 99, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5, 115, 108, 105, 99, 101, - 0, 0, 0, 18, 0, 0, 0, 7, 115, 108, 105, 99, 101, 73, 68, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 7, 103, 114, 111, 117, 112, - 73, 68, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 6, 111, 114, 105, 103, 105, 110, 101, 110, 117, 109, 0, 0, 0, 12, 69, 83, 108, 105, - 99, 101, 79, 114, 105, 103, 105, 110, 0, 0, 0, 13, 97, 117, 116, 111, 71, 101, 110, 101, 114, 97, 116, 101, 100, 0, 0, 0, 0, 84, 121, 112, - 101, 101, 110, 117, 109, 0, 0, 0, 10, 69, 83, 108, 105, 99, 101, 84, 121, 112, 101, 0, 0, 0, 0, 73, 109, 103, 32, 0, 0, 0, 6, 98, - 111, 117, 110, 100, 115, 79, 98, 106, 99, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 82, 99, 116, 49, 0, 0, 0, 4, 0, 0, 0, 0, 84, - 111, 112, 32, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 76, 101, 102, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 116, 111, 109, 108, 111, 110, 103, 0, 0, 0, 207, 0, 0, 0, 0, 82, 103, 104, 116, 108, 111, 110, 103, 0, 0, 1, 19, 0, 0, 0, 3, 117, - 114, 108, 84, 69, 88, 84, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 110, 117, 108, 108, 84, 69, 88, 84, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 77, 115, 103, 101, 84, 69, 88, 84, 0, 0, 0, 1, 0, 0, 0, 0, 0, 6, 97, 108, 116, 84, 97, 103, 84, 69, 88, 84, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 14, 99, 101, 108, 108, 84, 101, 120, 116, 73, 115, 72, 84, 77, 76, 98, 111, 111, 108, 1, 0, 0, 0, 8, 99, - 101, 108, 108, 84, 101, 120, 116, 84, 69, 88, 84, 0, 0, 0, 1, 0, 0, 0, 0, 0, 9, 104, 111, 114, 122, 65, 108, 105, 103, 110, 101, 110, - 117, 109, 0, 0, 0, 15, 69, 83, 108, 105, 99, 101, 72, 111, 114, 122, 65, 108, 105, 103, 110, 0, 0, 0, 7, 100, 101, 102, 97, 117, 108, 116, - 0, 0, 0, 9, 118, 101, 114, 116, 65, 108, 105, 103, 110, 101, 110, 117, 109, 0, 0, 0, 15, 69, 83, 108, 105, 99, 101, 86, 101, 114, 116, 65, - 108, 105, 103, 110, 0, 0, 0, 7, 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 11, 98, 103, 67, 111, 108, 111, 114, 84, 121, 112, 101, 101, 110, - 117, 109, 0, 0, 0, 17, 69, 83, 108, 105, 99, 101, 66, 71, 67, 111, 108, 111, 114, 84, 121, 112, 101, 0, 0, 0, 0, 78, 111, 110, 101, 0, - 0, 0, 9, 116, 111, 112, 79, 117, 116, 115, 101, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 10, 108, 101, 102, 116, 79, 117, 116, 115, - 101, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 12, 98, 111, 116, 116, 111, 109, 79, 117, 116, 115, 101, 116, 108, 111, 110, 103, 0, 0, - 0, 0, 0, 0, 0, 11, 114, 105, 103, 104, 116, 79, 117, 116, 115, 101, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 56, 66, 73, 77, 4, 40, - 0, 0, 0, 0, 0, 12, 0, 0, 0, 1, 63, 240, 0, 0, 0, 0, 0, 0, 56, 66, 73, 77, 4, 20, 0, 0, 0, 0, 0, 4, 0, 0, - 0, 1, 56, 66, 73, 77, 4, 12, 0, 0, 0, 0, 31, 26, 0, 0, 0, 1, 0, 0, 0, 160, 0, 0, 0, 120, 0, 0, 1, 224, 0, 0, - 225, 0, 0, 0, 30, 254, 0, 24, 0, 1, 255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 2, 1, 0, 72, 0, 72, 0, 0, 255, 237, - 0, 12, 65, 100, 111, 98, 101, 95, 67, 77, 0, 1, 255, 238, 0, 14, 65, 100, 111, 98, 101, 0, 100, 128, 0, 0, 0, 1, 255, 219, 0, 132, - 0, 12, 8, 8, 8, 9, 8, 12, 9, 9, 12, 17, 11, 10, 11, 17, 21, 15, 12, 12, 15, 21, 24, 19, 19, 21, 19, 19, 24, 17, 12, 12, - 12, 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 1, 13, 11, 11, 13, 14, 13, 16, 14, 14, 16, 20, 14, 14, 14, 20, 20, 14, 14, 14, 14, 20, 17, 12, 12, 12, 12, 12, 17, 17, 12, - 12, 12, 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 255, 192, 0, 17, 8, 0, 120, 0, 160, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1, 255, 221, 0, 4, 0, 10, 255, 196, 1, 63, 0, - 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 1, 0, 1, 5, - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 0, 1, 4, 1, 3, 2, - 4, 2, 5, 7, 6, 8, 5, 3, 12, 51, 1, 0, 2, 17, 3, 4, 33, 18, 49, 5, 65, 81, 97, 19, 34, 113, 129, 50, 6, 20, 145, 161, - 177, 66, 35, 36, 21, 82, 193, 98, 51, 52, 114, 130, 209, 67, 7, 37, 146, 83, 240, 225, 241, 99, 115, 53, 22, 162, 178, 131, 38, 68, 147, 84, - 100, 69, 194, 163, 116, 54, 23, 210, 85, 226, 101, 242, 179, 132, 195, 211, 117, 227, 243, 70, 39, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, - 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 17, 0, 2, 2, - 1, 2, 4, 4, 3, 4, 5, 6, 7, 7, 6, 5, 53, 1, 0, 2, 17, 3, 33, 49, 18, 4, 65, 81, 97, 113, 34, 19, 5, 50, 129, 145, - 20, 161, 177, 66, 35, 193, 82, 209, 240, 51, 36, 98, 225, 114, 130, 146, 67, 83, 21, 99, 115, 52, 241, 37, 6, 22, 162, 178, 131, 7, 38, 53, - 194, 210, 68, 147, 84, 163, 23, 100, 69, 85, 54, 116, 101, 226, 242, 179, 132, 195, 211, 117, 227, 243, 70, 148, 164, 133, 180, 149, 196, 212, 228, 244, - 165, 181, 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 255, 218, 0, 12, - 3, 1, 0, 2, 17, 3, 17, 0, 63, 0, 217, 77, 181, 74, 18, 133, 191, 110, 51, 24, 74, 20, 245, 78, 7, 138, 86, 166, 0, 36, 167, 3, - 193, 45, 161, 11, 83, 8, 75, 106, 36, 4, 160, 37, 106, 213, 132, 37, 10, 123, 124, 210, 0, 37, 106, 97, 183, 239, 241, 66, 201, 177, 245, 179, - 109, 100, 11, 140, 22, 147, 35, 107, 103, 223, 102, 240, 215, 109, 126, 223, 162, 212, 249, 185, 47, 199, 173, 174, 170, 189, 246, 61, 193, 173, 27, 75, - 128, 26, 251, 220, 198, 185, 159, 69, 80, 162, 214, 100, 208, 204, 166, 207, 233, 216, 219, 61, 67, 0, 157, 6, 210, 227, 244, 182, 183, 232, 236, 84, - 57, 222, 112, 64, 75, 20, 62, 114, 42, 71, 247, 56, 191, 238, 157, 14, 75, 147, 51, 49, 203, 63, 144, 27, 143, 245, 140, 127, 238, 85, 109, 30, - 173, 173, 177, 214, 111, 218, 73, 110, 230, 57, 230, 98, 93, 238, 127, 181, 137, 220, 252, 79, 80, 55, 212, 253, 43, 125, 205, 175, 212, 99, 9, 145, - 27, 54, 185, 205, 246, 170, 214, 100, 57, 254, 165, 142, 109, 129, 140, 209, 156, 141, 206, 229, 174, 121, 63, 187, 249, 136, 89, 14, 13, 99, 235, 162, - 199, 122, 140, 126, 132, 234, 215, 188, 15, 118, 218, 157, 183, 243, 191, 50, 191, 73, 100, 29, 221, 126, 154, 58, 14, 174, 135, 141, 206, 30, 240, 75, - 155, 54, 25, 39, 200, 139, 118, 38, 127, 217, 88, 217, 113, 99, 100, 1, 30, 160, 108, 73, 111, 231, 122, 141, 119, 246, 154, 179, 105, 186, 202, 246, - 191, 101, 141, 115, 158, 230, 221, 89, 222, 30, 72, 50, 219, 54, 191, 107, 43, 245, 43, 219, 250, 61, 255, 0, 161, 175, 254, 49, 89, 178, 218, 174, - 166, 189, 149, 144, 224, 248, 120, 172, 135, 29, 209, 181, 174, 185, 164, 7, 108, 247, 33, 213, 61, 19, 58, 188, 0, 208, 251, 25, 71, 98, 192, 231, - 2, 12, 29, 205, 115, 93, 186, 214, 238, 221, 249, 234, 94, 181, 80, 108, 45, 174, 189, 209, 238, 221, 83, 131, 164, 254, 235, 94, 221, 187, 213, 81, - 69, 212, 185, 172, 99, 141, 45, 123, 90, 239, 66, 11, 94, 76, 143, 210, 52, 87, 27, 119, 60, 251, 223, 234, 123, 211, 127, 149, 157, 103, 185, 228, - 215, 91, 143, 175, 112, 99, 105, 0, 60, 251, 69, 52, 182, 188, 155, 183, 253, 47, 126, 203, 55, 215, 250, 91, 146, 58, 169, 185, 97, 198, 125, 79, - 46, 13, 110, 132, 151, 141, 128, 131, 252, 155, 24, 246, 89, 185, 190, 207, 210, 53, 65, 175, 174, 178, 219, 113, 216, 253, 167, 219, 237, 48, 76, 14, - 91, 191, 223, 183, 250, 202, 189, 53, 245, 2, 214, 155, 235, 15, 121, 1, 172, 164, 217, 93, 155, 72, 247, 253, 161, 238, 99, 107, 173, 149, 123, 90, - 239, 240, 150, 255, 0, 212, 32, 228, 228, 88, 41, 22, 23, 59, 115, 67, 134, 222, 1, 213, 219, 191, 55, 221, 238, 254, 66, 10, 167, 255, 208, 221, - 227, 132, 146, 37, 141, 115, 88, 231, 181, 175, 119, 12, 46, 0, 241, 60, 21, 61, 154, 193, 209, 110, 113, 14, 142, 57, 7, 179, 20, 161, 75, 103, - 154, 65, 169, 90, 24, 164, 166, 25, 170, 125, 130, 80, 180, 234, 141, 40, 42, 123, 18, 219, 199, 137, 236, 149, 169, 134, 169, 245, 136, 143, 135, 197, - 51, 238, 174, 179, 177, 210, 92, 4, 237, 110, 186, 127, 91, 232, 127, 210, 85, 178, 114, 89, 101, 110, 166, 61, 54, 88, 54, 216, 94, 230, 238, 45, - 63, 152, 221, 92, 198, 238, 111, 210, 80, 101, 230, 240, 227, 187, 144, 50, 31, 163, 29, 91, 24, 185, 60, 217, 42, 163, 81, 63, 165, 47, 72, 106, - 245, 42, 170, 204, 177, 133, 190, 163, 154, 33, 173, 177, 146, 25, 160, 119, 171, 183, 210, 115, 119, 238, 223, 179, 222, 168, 99, 226, 217, 91, 190, 200, - 235, 75, 170, 218, 95, 83, 109, 157, 210, 231, 61, 206, 216, 210, 215, 253, 13, 205, 217, 255, 0, 65, 94, 117, 245, 58, 24, 46, 99, 90, 200, 110, - 214, 189, 176, 60, 190, 142, 239, 163, 251, 170, 22, 125, 153, 196, 89, 182, 179, 107, 4, 122, 164, 146, 224, 127, 53, 219, 134, 223, 163, 43, 19, 36, - 204, 231, 41, 31, 211, 54, 237, 194, 30, 222, 56, 66, 59, 64, 0, 136, 99, 180, 189, 237, 180, 11, 92, 67, 28, 234, 225, 238, 113, 219, 59, 95, - 177, 206, 31, 154, 239, 164, 198, 34, 183, 166, 179, 113, 107, 158, 230, 130, 55, 59, 110, 225, 59, 101, 140, 123, 157, 181, 255, 0, 191, 249, 158, 154, - 6, 62, 127, 82, 23, 213, 131, 176, 94, 202, 198, 215, 90, 93, 5, 194, 116, 184, 49, 254, 237, 155, 63, 63, 223, 234, 41, 99, 245, 234, 236, 189, - 212, 181, 174, 107, 131, 160, 16, 233, 108, 127, 89, 140, 246, 255, 0, 41, 55, 134, 73, 247, 97, 177, 53, 209, 190, 41, 2, 182, 140, 134, 55, 46, - 218, 79, 232, 222, 230, 7, 193, 63, 164, 117, 88, 219, 163, 110, 237, 191, 206, 63, 103, 248, 61, 246, 126, 137, 82, 202, 232, 162, 234, 43, 198, 186, - 235, 40, 6, 201, 117, 140, 5, 182, 7, 17, 184, 184, 190, 145, 239, 109, 150, 59, 244, 109, 183, 244, 106, 224, 205, 13, 126, 227, 105, 15, 104, 135, - 52, 184, 159, 243, 101, 141, 114, 155, 51, 88, 210, 28, 215, 67, 132, 157, 9, 141, 127, 234, 191, 206, 74, 138, 237, 41, 167, 87, 72, 199, 162, 151, - 211, 83, 157, 104, 99, 182, 131, 104, 121, 45, 59, 154, 239, 81, 161, 239, 246, 221, 237, 250, 117, 254, 143, 210, 255, 0, 130, 86, 42, 101, 222, 163, - 218, 46, 99, 216, 214, 134, 138, 203, 119, 22, 236, 221, 171, 201, 103, 243, 110, 247, 253, 5, 100, 100, 181, 239, 46, 178, 194, 99, 66, 101, 206, 18, - 62, 143, 231, 55, 254, 169, 67, 35, 245, 140, 103, 215, 246, 162, 192, 246, 150, 111, 99, 70, 230, 255, 0, 197, 187, 212, 247, 127, 105, 42, 241, 65, - 145, 29, 11, 91, 210, 104, 168, 218, 5, 37, 238, 14, 221, 107, 26, 125, 250, 111, 104, 119, 239, 126, 99, 222, 179, 217, 83, 30, 49, 234, 3, 214, - 107, 220, 208, 224, 194, 1, 36, 157, 214, 56, 239, 245, 63, 71, 162, 191, 129, 134, 206, 158, 108, 140, 155, 44, 55, 22, 151, 2, 24, 193, 160, 45, - 221, 182, 178, 239, 119, 187, 223, 238, 71, 244, 170, 115, 183, 16, 29, 3, 218, 11, 90, 54, 196, 183, 115, 28, 209, 185, 158, 215, 109, 66, 149, 25, - 18, 5, 138, 250, 191, 255, 209, 194, 203, 234, 237, 47, 127, 81, 199, 187, 210, 46, 21, 89, 47, 155, 28, 198, 239, 119, 160, 253, 159, 225, 45, 125, - 159, 224, 217, 254, 7, 254, 9, 118, 253, 59, 34, 236, 172, 42, 175, 190, 191, 70, 215, 238, 15, 175, 79, 105, 107, 141, 126, 232, 46, 107, 93, 237, - 250, 59, 151, 13, 85, 7, 43, 26, 235, 113, 47, 169, 246, 91, 235, 27, 41, 180, 13, 43, 112, 247, 238, 119, 232, 159, 182, 171, 234, 103, 166, 234, - 189, 55, 255, 0, 55, 250, 55, 210, 175, 96, 253, 109, 24, 207, 126, 35, 31, 235, 84, 125, 26, 112, 220, 230, 150, 22, 176, 48, 82, 239, 70, 130, - 109, 217, 189, 219, 50, 125, 75, 223, 255, 0, 130, 43, 88, 39, 28, 49, 148, 231, 34, 125, 207, 80, 13, 44, 177, 227, 28, 49, 2, 226, 246, 111, - 115, 107, 169, 215, 62, 69, 108, 105, 123, 221, 28, 53, 163, 115, 138, 171, 71, 85, 233, 185, 17, 232, 228, 48, 203, 154, 200, 113, 218, 119, 56, 23, - 177, 187, 108, 219, 249, 141, 245, 63, 168, 185, 11, 242, 250, 149, 217, 182, 100, 63, 36, 61, 173, 99, 128, 173, 238, 151, 141, 199, 247, 11, 189, 55, - 83, 118, 239, 230, 220, 239, 77, 66, 187, 105, 108, 84, 217, 245, 157, 89, 134, 151, 29, 187, 78, 183, 61, 173, 5, 223, 71, 243, 127, 115, 249, 186, - 211, 37, 241, 35, 96, 198, 26, 120, 168, 114, 162, 181, 151, 216, 246, 199, 63, 167, 181, 197, 142, 201, 173, 174, 13, 15, 50, 237, 54, 184, 236, 111, - 184, 123, 55, 110, 252, 207, 166, 140, 199, 215, 99, 119, 86, 246, 189, 134, 70, 246, 157, 205, 208, 236, 119, 185, 179, 244, 95, 237, 92, 30, 251, 154, - 235, 31, 180, 56, 187, 123, 222, 55, 144, 208, 218, 218, 125, 49, 91, 54, 143, 206, 250, 123, 25, 234, 45, 46, 131, 245, 139, 33, 221, 57, 184, 237, - 21, 186, 242, 28, 234, 221, 238, 115, 154, 205, 222, 234, 246, 61, 173, 245, 110, 118, 239, 231, 126, 133, 41, 216, 254, 33, 100, 251, 145, 225, 21, 233, - 225, 255, 0, 162, 175, 186, 19, 66, 7, 212, 79, 233, 108, 244, 185, 89, 184, 216, 172, 121, 181, 224, 216, 193, 62, 139, 92, 55, 127, 111, 233, 108, - 84, 174, 234, 111, 179, 30, 210, 43, 110, 205, 90, 230, 13, 197, 238, 19, 251, 223, 163, 246, 254, 126, 239, 209, 170, 20, 11, 154, 193, 252, 219, 45, - 219, 188, 87, 33, 160, 126, 243, 173, 218, 219, 55, 191, 249, 127, 190, 140, 44, 183, 210, 34, 199, 180, 56, 128, 219, 6, 227, 27, 143, 210, 27, 142, - 213, 91, 47, 59, 146, 118, 1, 225, 143, 104, 186, 24, 121, 28, 112, 163, 164, 165, 251, 210, 215, 213, 253, 214, 108, 191, 17, 204, 107, 217, 75, 95, - 89, 224, 213, 83, 220, 223, 131, 96, 189, 51, 114, 113, 119, 185, 163, 16, 238, 111, 210, 154, 154, 193, 30, 44, 181, 231, 109, 143, 253, 202, 213, 122, - 91, 179, 212, 172, 123, 97, 218, 0, 64, 16, 230, 238, 46, 107, 182, 109, 119, 191, 223, 254, 17, 61, 56, 121, 68, 52, 61, 251, 3, 78, 226, 90, - 67, 139, 160, 183, 249, 207, 103, 185, 174, 102, 255, 0, 252, 237, 86, 45, 177, 109, 134, 245, 26, 11, 1, 251, 45, 174, 104, 128, 210, 69, 66, 1, - 48, 214, 251, 109, 114, 155, 51, 43, 176, 77, 88, 165, 193, 195, 83, 189, 128, 130, 97, 219, 70, 133, 187, 253, 202, 14, 192, 194, 112, 31, 161, 244, - 137, 110, 219, 54, 78, 167, 77, 190, 239, 167, 236, 219, 233, 251, 157, 244, 16, 168, 194, 186, 151, 29, 187, 3, 163, 247, 223, 186, 63, 53, 174, 209, - 155, 255, 0, 235, 169, 90, 168, 165, 25, 23, 213, 100, 179, 13, 140, 13, 16, 79, 175, 92, 237, 35, 232, 54, 182, 212, 239, 250, 180, 129, 174, 150, - 187, 107, 70, 219, 129, 45, 165, 197, 161, 187, 160, 23, 251, 189, 191, 246, 234, 13, 152, 111, 109, 161, 210, 210, 121, 14, 117, 142, 157, 206, 39, 232, - 251, 91, 251, 200, 246, 214, 91, 165, 158, 149, 167, 110, 193, 36, 152, 105, 252, 211, 191, 250, 175, 247, 181, 43, 61, 212, 113, 196, 238, 26, 88, 15, - 234, 76, 27, 111, 162, 203, 28, 64, 115, 65, 19, 13, 111, 179, 249, 221, 207, 171, 110, 159, 152, 237, 234, 198, 55, 83, 222, 29, 24, 54, 155, 42, - 59, 109, 99, 106, 221, 181, 208, 28, 61, 219, 191, 59, 114, 178, 44, 113, 22, 56, 70, 210, 240, 230, 203, 222, 68, 129, 198, 167, 103, 167, 237, 221, - 177, 13, 164, 180, 6, 53, 173, 112, 113, 157, 193, 209, 4, 247, 245, 63, 242, 95, 152, 149, 147, 186, 216, 195, 135, 105, 105, 216, 179, 61, 85, 236, - 231, 166, 228, 196, 0, 210, 69, 108, 4, 158, 222, 235, 80, 221, 215, 233, 130, 71, 78, 202, 112, 17, 185, 227, 208, 218, 9, 210, 28, 227, 122, 137, - 171, 39, 113, 12, 121, 144, 65, 219, 45, 32, 9, 247, 126, 99, 127, 237, 221, 233, 233, 197, 120, 165, 245, 228, 146, 250, 201, 131, 4, 73, 4, 238, - 250, 59, 79, 134, 196, 23, 238, 206, 206, 179, 85, 96, 54, 254, 155, 155, 80, 36, 68, 215, 81, 157, 194, 68, 53, 153, 27, 255, 0, 232, 161, 142, - 175, 209, 246, 239, 179, 31, 42, 176, 237, 125, 216, 214, 30, 251, 127, 192, 250, 159, 156, 137, 145, 91, 92, 40, 166, 134, 182, 166, 85, 102, 246, 203, - 221, 160, 253, 215, 250, 187, 175, 115, 119, 126, 251, 150, 125, 88, 22, 61, 155, 90, 205, 130, 214, 254, 149, 228, 86, 251, 93, 185, 206, 127, 181, 245, - 250, 149, 251, 90, 223, 207, 199, 183, 103, 252, 98, 86, 58, 168, 223, 79, 197, 255, 210, 227, 47, 205, 191, 5, 213, 102, 49, 246, 49, 247, 85, 83, - 109, 171, 105, 0, 200, 245, 31, 246, 135, 57, 155, 29, 235, 52, 191, 102, 199, 255, 0, 47, 216, 177, 168, 173, 151, 229, 210, 199, 3, 182, 215, 180, - 16, 211, 238, 32, 187, 111, 210, 113, 246, 185, 117, 76, 107, 50, 241, 205, 77, 50, 237, 128, 93, 234, 57, 246, 82, 11, 35, 212, 109, 85, 63, 243, - 25, 109, 62, 133, 119, 58, 207, 78, 175, 210, 250, 74, 205, 206, 161, 217, 6, 214, 210, 193, 147, 138, 198, 214, 44, 46, 14, 220, 54, 251, 152, 198, - 215, 244, 170, 118, 253, 244, 223, 103, 233, 233, 244, 190, 202, 155, 197, 0, 15, 171, 88, 254, 138, 193, 99, 166, 253, 89, 53, 134, 202, 42, 27, 154, - 75, 67, 36, 129, 32, 150, 29, 182, 178, 136, 107, 159, 250, 45, 187, 107, 247, 127, 57, 250, 71, 161, 227, 180, 253, 138, 151, 88, 247, 111, 176, 123, - 237, 100, 181, 207, 131, 191, 107, 221, 103, 187, 110, 239, 102, 199, 127, 194, 37, 145, 107, 183, 63, 209, 30, 161, 96, 45, 20, 51, 71, 57, 192, 178, - 203, 93, 251, 187, 42, 143, 250, 231, 243, 127, 225, 16, 232, 201, 13, 197, 107, 94, 230, 189, 215, 18, 235, 171, 210, 193, 99, 237, 115, 75, 170, 46, - 112, 99, 91, 236, 179, 247, 253, 138, 188, 79, 113, 186, 140, 116, 209, 85, 189, 142, 206, 125, 131, 30, 186, 108, 120, 13, 170, 199, 56, 50, 194, 226, - 1, 221, 64, 119, 230, 84, 221, 222, 167, 231, 220, 135, 78, 91, 70, 123, 42, 170, 166, 213, 104, 176, 254, 157, 144, 67, 125, 129, 172, 165, 186, 255, - 0, 53, 233, 125, 61, 254, 155, 61, 119, 171, 79, 186, 217, 109, 178, 8, 113, 5, 166, 201, 115, 75, 127, 54, 182, 86, 209, 234, 87, 91, 183, 108, - 177, 255, 0, 79, 254, 49, 84, 55, 177, 185, 30, 174, 56, 102, 70, 59, 170, 115, 155, 67, 245, 107, 3, 125, 150, 190, 170, 103, 237, 27, 254, 155, - 127, 193, 86, 164, 210, 85, 208, 82, 0, 111, 83, 212, 125, 92, 138, 137, 110, 221, 207, 123, 3, 88, 38, 199, 54, 15, 168, 224, 42, 250, 52, 251, - 127, 224, 214, 221, 231, 15, 30, 230, 91, 99, 247, 16, 206, 43, 14, 29, 254, 147, 203, 94, 230, 123, 255, 0, 194, 44, 92, 124, 93, 212, 53, 249, - 35, 244, 149, 139, 107, 99, 154, 65, 30, 155, 206, 234, 189, 213, 71, 169, 181, 159, 153, 252, 226, 119, 179, 244, 85, 177, 142, 23, 13, 240, 226, 227, - 47, 96, 0, 185, 150, 49, 231, 115, 61, 10, 255, 0, 63, 214, 254, 118, 212, 201, 71, 134, 235, 241, 100, 134, 89, 68, 16, 9, 212, 186, 248, 245, - 87, 146, 255, 0, 94, 151, 111, 197, 155, 26, 14, 235, 11, 203, 230, 11, 127, 72, 63, 65, 93, 81, 244, 24, 159, 50, 191, 74, 160, 43, 46, 109, - 174, 112, 99, 12, 23, 183, 118, 191, 79, 243, 189, 251, 125, 53, 75, 167, 94, 198, 178, 31, 121, 219, 97, 0, 75, 117, 99, 90, 226, 119, 110, 113, - 102, 235, 110, 115, 191, 71, 251, 140, 68, 183, 169, 90, 3, 106, 169, 238, 117, 187, 159, 88, 250, 33, 238, 13, 143, 210, 15, 115, 127, 205, 70, 58, - 134, 126, 48, 69, 153, 17, 47, 52, 217, 52, 92, 41, 99, 69, 206, 101, 132, 7, 189, 194, 183, 60, 52, 52, 111, 184, 55, 223, 183, 232, 255, 0, - 164, 244, 191, 237, 196, 204, 191, 27, 29, 184, 226, 204, 166, 187, 213, 108, 250, 142, 223, 160, 239, 99, 96, 251, 104, 119, 238, 88, 167, 86, 77, 22, - 180, 85, 144, 253, 207, 32, 61, 245, 130, 100, 72, 220, 221, 191, 191, 244, 189, 223, 200, 68, 200, 56, 152, 248, 239, 180, 181, 155, 168, 27, 152, 67, - 68, 14, 206, 107, 24, 246, 57, 181, 87, 244, 254, 130, 68, 119, 11, 197, 143, 80, 150, 137, 62, 205, 92, 146, 210, 210, 233, 221, 15, 123, 203, 34, - 52, 112, 223, 234, 109, 179, 243, 189, 69, 43, 49, 157, 101, 96, 239, 103, 169, 196, 18, 242, 0, 252, 232, 107, 99, 243, 62, 130, 6, 86, 79, 161, - 67, 109, 23, 250, 148, 92, 65, 22, 73, 145, 62, 230, 232, 127, 53, 234, 173, 157, 90, 230, 186, 170, 69, 192, 190, 243, 250, 35, 59, 154, 90, 79, - 183, 134, 165, 73, 57, 0, 220, 183, 235, 196, 34, 166, 178, 231, 203, 139, 164, 236, 121, 12, 31, 186, 89, 189, 142, 247, 55, 254, 219, 85, 114, 250, - 111, 82, 185, 246, 186, 177, 95, 162, 90, 26, 198, 177, 230, 93, 167, 187, 117, 123, 88, 198, 61, 174, 254, 90, 133, 89, 153, 86, 61, 237, 99, 128, - 118, 226, 223, 231, 96, 199, 248, 63, 100, 125, 53, 99, 237, 121, 213, 48, 220, 230, 215, 175, 243, 207, 14, 220, 118, 48, 75, 118, 214, 14, 247, 187, - 126, 239, 162, 196, 170, 188, 208, 72, 152, 212, 154, 9, 112, 49, 178, 43, 196, 107, 51, 203, 13, 173, 221, 46, 173, 197, 210, 63, 52, 125, 26, 255, - 0, 53, 72, 99, 216, 223, 79, 209, 37, 204, 4, 23, 54, 89, 237, 215, 254, 27, 211, 107, 246, 254, 103, 166, 239, 248, 196, 153, 152, 108, 118, 192, - 230, 60, 150, 135, 29, 174, 208, 207, 185, 167, 123, 253, 47, 106, 71, 43, 42, 96, 213, 187, 249, 65, 195, 108, 30, 93, 182, 119, 255, 0, 81, 10, - 181, 195, 74, 34, 90, 109, 224, 217, 244, 220, 231, 251, 133, 142, 7, 233, 62, 187, 107, 104, 108, 3, 180, 250, 59, 154, 246, 179, 221, 250, 86, 85, - 191, 123, 208, 233, 161, 226, 92, 247, 52, 57, 225, 141, 58, 23, 67, 90, 216, 250, 59, 78, 223, 210, 59, 220, 169, 89, 213, 41, 14, 12, 109, 86, - 110, 146, 117, 14, 246, 233, 184, 57, 251, 126, 139, 127, 150, 140, 220, 214, 18, 100, 75, 127, 120, 184, 152, 241, 75, 135, 197, 34, 96, 245, 127, 255, - 211, 194, 45, 102, 5, 23, 184, 58, 11, 11, 136, 104, 96, 231, 103, 167, 183, 99, 14, 223, 167, 239, 254, 218, 173, 131, 154, 247, 147, 45, 15, 181, - 173, 96, 55, 87, 46, 224, 54, 182, 111, 120, 99, 127, 70, 215, 254, 231, 243, 47, 68, 15, 173, 185, 53, 85, 33, 172, 172, 185, 161, 155, 139, 90, - 216, 59, 233, 127, 242, 61, 79, 161, 244, 189, 61, 255, 0, 240, 137, 195, 170, 171, 31, 117, 109, 27, 158, 217, 123, 222, 118, 142, 30, 250, 158, 255, - 0, 167, 250, 39, 59, 217, 234, 127, 35, 212, 177, 84, 243, 4, 222, 200, 220, 172, 40, 123, 175, 164, 88, 90, 225, 104, 115, 3, 4, 123, 160, 127, - 35, 252, 31, 208, 245, 63, 207, 66, 201, 201, 196, 46, 24, 182, 84, 203, 107, 111, 181, 231, 102, 205, 128, 131, 91, 109, 146, 95, 233, 86, 255, 0, - 230, 253, 223, 164, 254, 162, 123, 44, 216, 252, 81, 88, 44, 176, 215, 190, 28, 28, 210, 3, 203, 28, 250, 154, 226, 31, 233, 177, 206, 179, 221, 255, - 0, 91, 83, 247, 83, 153, 85, 21, 86, 69, 153, 14, 16, 67, 119, 182, 198, 250, 142, 107, 218, 198, 109, 218, 239, 117, 158, 167, 168, 157, 194, 73, - 4, 14, 251, 120, 33, 141, 182, 183, 38, 171, 141, 206, 125, 98, 219, 43, 24, 214, 216, 92, 32, 183, 109, 182, 182, 143, 163, 254, 16, 51, 101, 149, - 255, 0, 230, 106, 213, 77, 105, 165, 238, 173, 226, 187, 173, 18, 231, 237, 29, 128, 96, 183, 111, 168, 230, 223, 99, 171, 111, 253, 184, 179, 141, 29, - 75, 37, 216, 87, 88, 198, 218, 192, 94, 253, 239, 19, 45, 14, 221, 1, 191, 233, 63, 69, 107, 107, 175, 249, 207, 240, 107, 71, 13, 152, 215, 154, - 110, 199, 216, 30, 1, 103, 170, 53, 107, 195, 139, 131, 44, 107, 63, 192, 109, 177, 191, 164, 123, 154, 205, 254, 146, 117, 206, 58, 68, 15, 27, 71, - 68, 248, 238, 182, 150, 195, 114, 31, 113, 13, 214, 226, 214, 135, 134, 192, 250, 12, 135, 53, 174, 246, 191, 223, 98, 20, 22, 190, 219, 28, 231, 7, - 88, 101, 204, 212, 84, 27, 89, 221, 233, 178, 161, 237, 118, 255, 0, 230, 222, 228, 102, 26, 220, 214, 251, 90, 95, 104, 244, 236, 47, 33, 165, 251, - 5, 78, 174, 203, 125, 61, 159, 163, 219, 99, 254, 131, 85, 111, 85, 151, 7, 186, 189, 43, 22, 28, 119, 67, 137, 177, 214, 184, 254, 137, 163, 103, - 230, 88, 199, 57, 207, 254, 95, 232, 212, 114, 57, 72, 223, 136, 39, 68, 199, 212, 107, 189, 7, 63, 115, 156, 56, 48, 118, 141, 190, 148, 185, 199, - 111, 231, 59, 110, 246, 254, 122, 31, 163, 115, 137, 244, 239, 13, 15, 1, 181, 134, 48, 218, 101, 191, 161, 117, 118, 215, 187, 220, 247, 187, 223, 253, - 69, 31, 77, 149, 219, 185, 204, 107, 46, 123, 6, 214, 185, 196, 134, 1, 181, 207, 101, 113, 183, 243, 254, 151, 250, 91, 20, 48, 243, 172, 126, 93, - 245, 223, 83, 45, 44, 112, 115, 158, 230, 232, 199, 31, 97, 246, 55, 217, 103, 182, 180, 220, 82, 225, 36, 238, 43, 84, 246, 117, 250, 99, 92, 215, - 26, 45, 167, 210, 203, 21, 67, 172, 14, 221, 105, 219, 249, 143, 177, 223, 185, 187, 243, 61, 137, 179, 31, 142, 219, 62, 207, 115, 156, 5, 149, 155, - 43, 97, 113, 112, 223, 244, 218, 31, 180, 127, 163, 111, 208, 107, 144, 44, 178, 187, 45, 126, 69, 173, 110, 240, 8, 183, 105, 38, 27, 187, 107, 69, - 109, 111, 245, 127, 207, 68, 195, 205, 244, 219, 99, 88, 208, 67, 116, 175, 118, 177, 164, 216, 198, 79, 230, 251, 191, 123, 249, 197, 56, 151, 22, 163, - 84, 241, 116, 61, 58, 166, 233, 141, 55, 92, 202, 178, 154, 215, 189, 205, 220, 41, 115, 101, 178, 211, 237, 124, 59, 102, 239, 111, 179, 221, 86, 197, - 99, 171, 122, 225, 181, 187, 27, 107, 46, 14, 244, 198, 240, 214, 144, 8, 246, 129, 111, 167, 185, 158, 163, 142, 223, 75, 127, 189, 83, 102, 67, 219, - 155, 102, 75, 131, 141, 86, 211, 232, 90, 234, 135, 184, 128, 119, 125, 25, 117, 158, 231, 125, 59, 41, 217, 250, 63, 248, 37, 44, 203, 112, 178, 171, - 47, 182, 215, 215, 93, 85, 250, 150, 212, 201, 54, 180, 183, 232, 49, 141, 253, 239, 223, 123, 109, 246, 39, 24, 222, 169, 19, 244, 112, 143, 29, 88, - 87, 93, 24, 158, 171, 238, 218, 251, 228, 23, 185, 205, 13, 118, 224, 15, 182, 173, 199, 115, 182, 53, 223, 245, 197, 44, 172, 134, 219, 142, 241, 14, - 112, 176, 123, 43, 168, 31, 112, 34, 63, 69, 171, 55, 125, 27, 54, 36, 206, 164, 31, 72, 109, 99, 90, 224, 88, 247, 48, 58, 11, 182, 157, 154, - 126, 125, 109, 119, 231, 127, 198, 44, 219, 113, 223, 181, 245, 151, 218, 230, 135, 203, 97, 251, 157, 187, 159, 127, 169, 238, 244, 54, 255, 0, 56, 255, - 0, 230, 246, 126, 141, 9, 13, 191, 106, 195, 51, 176, 59, 167, 233, 93, 70, 183, 95, 86, 35, 47, 19, 180, 1, 88, 46, 12, 112, 97, 244, 171, - 126, 205, 172, 115, 220, 255, 0, 204, 217, 190, 181, 107, 43, 168, 19, 148, 220, 86, 53, 220, 187, 244, 142, 38, 6, 140, 151, 88, 90, 93, 249, 150, - 239, 254, 66, 173, 137, 145, 75, 61, 39, 62, 239, 88, 99, 3, 185, 224, 108, 115, 157, 183, 103, 168, 214, 67, 189, 54, 109, 115, 61, 63, 244, 106, - 54, 58, 202, 217, 101, 142, 213, 237, 111, 166, 242, 194, 36, 200, 104, 126, 75, 7, 210, 245, 182, 108, 246, 108, 245, 189, 68, 52, 236, 174, 50, 35, - 86, 220, 233, 246, 238, 202, 34, 154, 92, 95, 77, 111, 54, 189, 160, 184, 7, 75, 3, 27, 91, 172, 246, 190, 207, 223, 171, 243, 21, 156, 236, 215, - 227, 48, 87, 88, 244, 236, 47, 37, 213, 22, 195, 121, 159, 237, 54, 223, 223, 84, 113, 114, 14, 61, 204, 165, 182, 23, 86, 214, 126, 146, 230, 48, - 84, 25, 99, 116, 121, 216, 253, 187, 45, 127, 248, 84, 246, 215, 101, 238, 113, 109, 158, 237, 9, 14, 38, 55, 234, 211, 186, 195, 31, 213, 175, 98, - 110, 210, 243, 100, 142, 82, 49, 208, 15, 255, 212, 227, 250, 126, 43, 235, 205, 201, 55, 19, 107, 246, 181, 219, 157, 251, 214, 56, 134, 219, 232, 125, - 47, 209, 127, 45, 158, 197, 114, 230, 122, 181, 181, 183, 61, 204, 46, 104, 33, 192, 107, 13, 110, 231, 216, 24, 230, 251, 172, 127, 187, 111, 187, 211, - 103, 166, 181, 155, 87, 163, 72, 13, 124, 216, 43, 13, 115, 195, 79, 14, 1, 191, 165, 115, 27, 234, 63, 221, 255, 0, 169, 21, 107, 50, 93, 83, - 153, 67, 104, 177, 251, 216, 255, 0, 90, 210, 224, 72, 15, 7, 212, 253, 35, 93, 185, 150, 91, 254, 155, 247, 20, 70, 4, 238, 117, 209, 97, 46, - 115, 44, 48, 251, 26, 215, 186, 186, 216, 214, 182, 160, 230, 180, 57, 194, 199, 99, 154, 46, 124, 110, 174, 203, 55, 51, 249, 191, 248, 79, 77, 104, - 116, 252, 107, 26, 118, 91, 80, 222, 219, 69, 141, 174, 79, 166, 93, 244, 133, 180, 92, 225, 190, 167, 59, 255, 0, 3, 255, 0, 71, 250, 68, 245, - 99, 86, 204, 10, 241, 192, 4, 90, 73, 107, 160, 16, 75, 157, 188, 13, 251, 55, 217, 244, 191, 63, 243, 255, 0, 72, 196, 245, 89, 124, 209, 85, - 45, 99, 218, 230, 110, 244, 152, 211, 47, 0, 126, 102, 232, 117, 127, 164, 186, 191, 107, 148, 144, 28, 62, 104, 37, 14, 69, 54, 186, 220, 139, 88, - 193, 117, 128, 111, 103, 167, 237, 46, 107, 156, 246, 228, 110, 103, 233, 31, 86, 219, 89, 244, 61, 15, 231, 42, 255, 0, 139, 69, 197, 45, 171, 38, - 203, 107, 173, 166, 131, 233, 89, 142, 24, 210, 45, 101, 122, 210, 125, 55, 104, 223, 103, 190, 231, 213, 249, 149, 217, 254, 151, 244, 42, 118, 86, 250, - 219, 109, 148, 15, 74, 194, 90, 69, 130, 11, 139, 247, 134, 89, 237, 179, 233, 53, 158, 255, 0, 210, 253, 5, 110, 155, 92, 94, 47, 105, 13, 166, - 125, 42, 246, 196, 69, 110, 138, 253, 187, 133, 111, 99, 63, 53, 72, 100, 13, 87, 213, 0, 82, 27, 49, 125, 42, 236, 164, 109, 107, 242, 108, 169, - 181, 214, 1, 112, 129, 187, 123, 89, 177, 190, 179, 91, 107, 127, 70, 239, 77, 155, 63, 71, 250, 79, 77, 97, 101, 98, 87, 211, 177, 44, 176, 48, - 88, 239, 88, 151, 100, 98, 128, 106, 97, 219, 233, 250, 97, 150, 183, 222, 218, 127, 73, 233, 101, 255, 0, 52, 251, 45, 191, 236, 254, 175, 243, 203, - 168, 99, 169, 99, 11, 235, 111, 230, 185, 182, 22, 145, 238, 13, 63, 164, 168, 185, 222, 198, 183, 115, 191, 77, 90, 7, 166, 215, 58, 219, 111, 247, - 11, 88, 214, 0, 9, 116, 180, 73, 115, 173, 110, 214, 253, 23, 255, 0, 53, 183, 222, 155, 99, 160, 87, 215, 249, 7, 140, 202, 200, 173, 214, 227, - 217, 68, 214, 200, 151, 50, 178, 237, 225, 174, 33, 238, 225, 222, 155, 91, 254, 142, 170, 189, 53, 161, 211, 168, 176, 99, 222, 246, 88, 107, 125, 229, - 141, 103, 170, 237, 198, 0, 105, 157, 155, 127, 73, 127, 253, 115, 244, 95, 245, 167, 173, 11, 122, 54, 4, 87, 145, 85, 143, 204, 177, 164, 154, 203, - 152, 61, 55, 144, 55, 56, 53, 149, 250, 85, 254, 119, 231, 126, 143, 213, 255, 0, 9, 234, 44, 107, 58, 235, 171, 107, 233, 13, 101, 175, 115, 195, - 131, 162, 34, 61, 177, 104, 111, 183, 219, 254, 15, 209, 179, 216, 153, 56, 216, 208, 111, 166, 171, 135, 102, 254, 29, 246, 90, 243, 88, 181, 185, 69, - 173, 107, 158, 107, 220, 39, 118, 253, 187, 221, 95, 210, 123, 93, 254, 15, 249, 191, 85, 105, 186, 250, 234, 170, 186, 221, 181, 140, 45, 104, 134, 141, - 178, 231, 125, 43, 11, 90, 93, 239, 123, 255, 0, 63, 254, 219, 89, 221, 42, 174, 161, 102, 83, 243, 104, 123, 27, 83, 65, 99, 139, 189, 161, 194, - 61, 198, 154, 88, 11, 190, 147, 91, 250, 79, 251, 109, 235, 85, 184, 117, 178, 183, 123, 119, 136, 208, 22, 8, 2, 7, 208, 247, 250, 127, 71, 247, - 189, 245, 189, 65, 44, 100, 17, 194, 116, 251, 21, 125, 26, 222, 161, 107, 156, 26, 78, 251, 31, 18, 29, 233, 237, 115, 128, 219, 191, 244, 119, 239, - 217, 89, 250, 45, 250, 107, 95, 34, 252, 23, 180, 156, 112, 230, 214, 70, 192, 29, 96, 116, 199, 182, 219, 44, 246, 141, 237, 250, 74, 135, 217, 104, - 99, 93, 112, 250, 7, 115, 157, 67, 119, 6, 136, 216, 62, 139, 125, 223, 69, 191, 205, 86, 139, 83, 113, 235, 171, 115, 1, 115, 107, 144, 199, 19, - 4, 134, 253, 9, 120, 111, 239, 255, 0, 54, 164, 191, 78, 246, 129, 167, 68, 152, 214, 212, 110, 123, 26, 223, 66, 177, 96, 59, 217, 4, 109, 49, - 190, 235, 27, 183, 244, 191, 247, 245, 90, 230, 214, 203, 139, 113, 229, 237, 97, 150, 220, 201, 111, 168, 90, 67, 247, 217, 235, 127, 55, 141, 110, 237, - 254, 255, 0, 207, 82, 59, 152, 192, 242, 231, 219, 93, 178, 227, 164, 186, 55, 79, 169, 236, 134, 237, 244, 217, 183, 211, 254, 113, 5, 239, 202, 181, - 142, 20, 193, 15, 107, 54, 81, 32, 18, 3, 191, 73, 244, 246, 179, 220, 199, 213, 191, 249, 31, 190, 129, 40, 11, 181, 230, 203, 28, 246, 215, 181, - 210, 6, 214, 186, 79, 169, 205, 155, 156, 207, 119, 169, 95, 231, 239, 253, 29, 126, 159, 169, 234, 32, 185, 153, 1, 245, 222, 246, 182, 246, 135, 15, - 84, 18, 36, 60, 188, 75, 169, 134, 126, 142, 188, 95, 252, 25, 96, 140, 187, 141, 245, 51, 38, 227, 77, 54, 188, 89, 96, 231, 218, 225, 246, 119, - 250, 77, 111, 230, 212, 234, 238, 110, 221, 255, 0, 158, 183, 241, 141, 45, 104, 57, 32, 92, 251, 8, 13, 165, 174, 14, 15, 26, 250, 91, 163, 111, - 211, 219, 249, 191, 240, 169, 17, 73, 219, 84, 157, 34, 231, 55, 14, 250, 110, 216, 43, 5, 246, 155, 132, 246, 220, 255, 0, 231, 44, 253, 39, 243, - 94, 237, 136, 239, 251, 62, 57, 116, 48, 135, 62, 11, 199, 187, 97, 144, 25, 181, 147, 237, 103, 230, 39, 22, 212, 26, 199, 53, 190, 173, 150, 151, - 2, 215, 190, 34, 125, 214, 75, 89, 237, 218, 207, 209, 181, 205, 102, 253, 254, 162, 173, 126, 11, 178, 181, 177, 238, 52, 177, 238, 45, 219, 244, 131, - 142, 194, 198, 251, 139, 171, 245, 25, 178, 205, 244, 187, 212, 170, 175, 81, 54, 84, 144, 95, 255, 213, 174, 113, 173, 14, 216, 242, 250, 158, 203, 158, - 207, 16, 97, 167, 213, 178, 183, 159, 205, 222, 61, 158, 223, 248, 52, 22, 217, 73, 101, 119, 57, 192, 178, 214, 18, 215, 184, 130, 3, 121, 115, 216, - 101, 158, 165, 142, 218, 218, 253, 158, 167, 245, 24, 163, 126, 94, 30, 76, 101, 151, 6, 209, 234, 122, 68, 184, 157, 205, 175, 123, 247, 91, 164, 182, - 151, 89, 239, 183, 212, 103, 233, 63, 70, 158, 198, 95, 140, 220, 107, 50, 201, 111, 217, 218, 104, 97, 99, 125, 67, 186, 183, 228, 81, 145, 181, 167, - 219, 250, 95, 74, 155, 125, 159, 224, 212, 124, 75, 40, 133, 141, 174, 115, 253, 0, 205, 197, 155, 90, 28, 214, 180, 250, 110, 115, 102, 32, 123, 61, - 70, 212, 235, 61, 77, 255, 0, 205, 254, 122, 158, 54, 46, 61, 65, 198, 183, 22, 73, 37, 161, 206, 36, 7, 2, 243, 187, 251, 31, 159, 71, 254, - 162, 75, 19, 165, 218, 30, 43, 221, 53, 250, 141, 119, 162, 214, 128, 214, 52, 29, 185, 21, 232, 125, 251, 220, 255, 0, 165, 254, 13, 11, 37, 172, - 144, 28, 249, 0, 181, 146, 65, 96, 222, 92, 94, 246, 241, 99, 31, 189, 143, 244, 247, 127, 194, 255, 0, 219, 102, 194, 23, 188, 180, 135, 31, 70, - 75, 182, 251, 172, 246, 185, 192, 206, 202, 216, 94, 127, 71, 251, 251, 255, 0, 115, 212, 82, 175, 24, 9, 200, 134, 217, 96, 116, 82, 211, 186, 90, - 91, 236, 119, 169, 244, 183, 127, 219, 127, 230, 32, 102, 101, 50, 191, 68, 61, 204, 217, 121, 44, 216, 246, 200, 119, 31, 163, 221, 252, 213, 126, 167, - 232, 189, 246, 187, 101, 116, 239, 83, 176, 176, 80, 28, 106, 134, 104, 75, 125, 196, 135, 71, 181, 187, 207, 233, 61, 39, 109, 111, 183, 244, 136, 133, - 48, 251, 91, 173, 186, 230, 229, 180, 84, 107, 143, 74, 166, 145, 15, 102, 214, 238, 179, 212, 143, 222, 220, 231, 255, 0, 224, 106, 88, 249, 237, 33, - 222, 155, 183, 16, 69, 117, 147, 44, 126, 214, 207, 233, 92, 205, 140, 119, 171, 99, 253, 159, 163, 254, 186, 167, 85, 117, 154, 45, 161, 192, 155, 221, - 181, 150, 58, 224, 226, 223, 73, 147, 111, 218, 113, 216, 231, 87, 234, 217, 142, 255, 0, 78, 159, 165, 252, 239, 232, 253, 38, 40, 227, 208, 42, 234, - 47, 201, 55, 53, 207, 112, 97, 166, 186, 126, 155, 192, 223, 244, 45, 177, 214, 83, 91, 61, 22, 63, 243, 255, 0, 210, 127, 131, 173, 58, 213, 224, - 232, 223, 72, 190, 150, 226, 85, 160, 125, 101, 204, 21, 251, 67, 107, 118, 179, 187, 111, 208, 223, 187, 219, 251, 234, 7, 161, 99, 140, 80, 204, 179, - 234, 64, 145, 115, 15, 166, 240, 116, 117, 181, 215, 99, 71, 167, 91, 55, 255, 0, 164, 245, 108, 255, 0, 72, 134, 206, 161, 109, 54, 26, 203, 125, - 7, 89, 87, 169, 233, 220, 237, 78, 174, 99, 11, 30, 54, 59, 222, 198, 63, 213, 255, 0, 173, 127, 198, 169, 211, 214, 133, 142, 123, 158, 237, 143, - 59, 102, 153, 135, 123, 128, 110, 202, 222, 7, 165, 111, 233, 63, 59, 250, 66, 105, 50, 42, 86, 31, 78, 110, 43, 110, 59, 203, 238, 113, 37, 164, - 31, 110, 198, 112, 225, 188, 189, 173, 221, 191, 243, 125, 52, 178, 223, 146, 219, 43, 109, 116, 155, 220, 119, 3, 233, 63, 80, 237, 173, 14, 221, 92, - 53, 190, 150, 253, 159, 165, 223, 255, 0, 22, 173, 80, 236, 156, 138, 55, 189, 190, 155, 88, 34, 4, 253, 32, 116, 173, 187, 226, 207, 116, 254, 143, - 217, 255, 0, 129, 170, 57, 57, 247, 98, 228, 55, 123, 11, 220, 226, 26, 230, 208, 221, 207, 135, 53, 207, 107, 125, 87, 251, 93, 178, 55, 92, 196, - 40, 119, 72, 95, 38, 198, 12, 127, 179, 250, 130, 187, 1, 107, 224, 201, 120, 4, 153, 222, 239, 115, 119, 57, 219, 254, 130, 45, 91, 222, 64, 99, - 118, 210, 106, 105, 221, 27, 119, 61, 229, 207, 115, 182, 125, 38, 109, 179, 99, 212, 104, 201, 196, 180, 87, 148, 233, 34, 170, 193, 107, 247, 67, 6, - 243, 238, 120, 165, 187, 125, 223, 188, 247, 126, 138, 175, 77, 77, 215, 188, 228, 181, 187, 225, 128, 123, 136, 102, 227, 14, 27, 128, 175, 93, 191, 224, - 183, 127, 198, 38, 158, 193, 13, 91, 31, 113, 200, 177, 165, 190, 142, 247, 52, 88, 215, 57, 173, 1, 173, 107, 190, 208, 241, 254, 19, 223, 182, 191, - 160, 229, 159, 149, 149, 173, 110, 199, 172, 91, 77, 84, 110, 105, 113, 150, 86, 15, 183, 159, 117, 155, 54, 50, 214, 63, 127, 191, 212, 86, 114, 119, - 87, 151, 102, 67, 89, 191, 30, 231, 53, 129, 251, 182, 51, 220, 119, 110, 247, 59, 103, 231, 250, 108, 115, 63, 71, 236, 81, 115, 50, 172, 45, 194, - 125, 47, 162, 166, 110, 251, 67, 193, 141, 222, 163, 118, 251, 75, 125, 158, 163, 220, 207, 230, 63, 194, 123, 61, 95, 230, 208, 0, 117, 213, 90, 54, - 113, 25, 142, 214, 182, 218, 246, 2, 91, 234, 189, 173, 0, 182, 28, 208, 209, 107, 63, 226, 154, 239, 211, 110, 253, 31, 248, 79, 231, 214, 11, 186, - 173, 204, 203, 118, 69, 27, 155, 69, 142, 130, 65, 32, 185, 140, 135, 62, 169, 254, 115, 249, 123, 255, 0, 157, 247, 173, 59, 49, 133, 45, 169, 184, - 172, 219, 138, 214, 250, 153, 44, 113, 104, 32, 187, 219, 233, 183, 118, 237, 158, 214, 239, 253, 39, 248, 101, 94, 254, 137, 109, 143, 173, 182, 90, 69, - 55, 7, 89, 141, 91, 1, 221, 4, 111, 125, 215, 52, 111, 244, 154, 199, 191, 244, 159, 206, 39, 64, 3, 170, 172, 55, 46, 234, 15, 126, 45, 183, - 80, 70, 61, 205, 111, 180, 144, 99, 219, 182, 118, 110, 63, 206, 59, 217, 244, 63, 224, 255, 0, 70, 137, 211, 236, 244, 107, 15, 178, 199, 219, 99, - 28, 67, 183, 23, 183, 105, 177, 206, 185, 245, 109, 112, 171, 212, 183, 233, 251, 255, 0, 210, 170, 79, 233, 217, 181, 184, 212, 203, 11, 42, 180, 134, - 250, 176, 61, 190, 149, 127, 166, 46, 103, 185, 219, 236, 255, 0, 166, 137, 135, 211, 122, 141, 142, 140, 203, 37, 193, 190, 160, 170, 199, 186, 210, 215, - 15, 209, 236, 244, 220, 231, 86, 235, 54, 253, 61, 206, 255, 0, 11, 252, 218, 82, 136, 162, 84, 255, 0, 255, 214, 230, 113, 109, 207, 193, 125, 119, - 53, 149, 219, 64, 123, 108, 118, 62, 246, 233, 92, 182, 189, 219, 41, 221, 181, 205, 252, 251, 189, 159, 162, 80, 253, 167, 126, 53, 182, 177, 172, 180, - 244, 250, 110, 101, 152, 242, 14, 250, 218, 61, 245, 85, 188, 126, 237, 127, 162, 125, 142, 246, 61, 149, 174, 77, 37, 23, 216, 131, 227, 244, 125, 15, - 15, 172, 88, 220, 47, 69, 195, 78, 156, 42, 4, 134, 159, 87, 211, 118, 214, 227, 189, 158, 239, 211, 99, 89, 153, 178, 157, 237, 253, 46, 63, 173, - 233, 127, 131, 245, 22, 43, 114, 178, 206, 87, 163, 118, 234, 133, 39, 100, 177, 197, 195, 159, 91, 210, 126, 227, 255, 0, 7, 249, 255, 0, 224, 23, - 44, 146, 35, 115, 93, 150, 233, 111, 117, 139, 151, 54, 187, 208, 223, 107, 173, 46, 181, 225, 129, 190, 153, 96, 37, 158, 157, 173, 179, 252, 29, 21, - 217, 250, 54, 255, 0, 219, 106, 195, 238, 167, 38, 223, 211, 60, 92, 217, 105, 44, 222, 36, 29, 92, 217, 253, 39, 187, 119, 250, 47, 103, 232, 216, - 188, 245, 36, 226, 167, 190, 56, 216, 222, 133, 181, 186, 193, 235, 220, 231, 237, 44, 48, 91, 36, 212, 250, 157, 189, 173, 217, 94, 159, 224, 182, 89, - 103, 233, 63, 70, 178, 255, 0, 102, 229, 178, 227, 110, 51, 223, 134, 93, 3, 31, 30, 151, 62, 194, 94, 78, 231, 122, 175, 177, 222, 155, 241, 219, - 249, 246, 251, 217, 255, 0, 130, 174, 85, 36, 141, 222, 138, 30, 15, 73, 117, 87, 95, 148, 235, 173, 111, 235, 140, 99, 119, 55, 219, 91, 26, 233, - 218, 95, 115, 76, 238, 221, 252, 239, 173, 183, 210, 255, 0, 173, 34, 28, 12, 188, 59, 93, 150, 247, 110, 109, 208, 215, 109, 46, 45, 51, 252, 231, - 187, 233, 123, 182, 238, 251, 66, 229, 210, 78, 55, 67, 241, 87, 87, 209, 49, 222, 5, 34, 208, 230, 237, 33, 151, 29, 165, 187, 33, 163, 101, 155, - 157, 187, 211, 219, 187, 249, 175, 252, 9, 25, 183, 211, 101, 182, 53, 206, 107, 118, 24, 108, 65, 221, 3, 244, 198, 217, 219, 250, 74, 255, 0, 155, - 219, 254, 143, 211, 177, 121, 170, 73, 170, 125, 11, 55, 3, 1, 166, 183, 250, 77, 120, 32, 84, 230, 137, 12, 2, 70, 231, 57, 213, 254, 111, 179, - 101, 91, 255, 0, 70, 144, 201, 195, 109, 150, 181, 182, 109, 45, 181, 205, 176, 16, 15, 185, 197, 165, 173, 99, 79, 210, 103, 179, 217, 255, 0, 127, - 94, 122, 146, 97, 170, 210, 208, 41, 244, 10, 236, 160, 89, 107, 172, 27, 125, 90, 218, 45, 99, 9, 218, 26, 210, 61, 251, 108, 253, 27, 55, 59, - 249, 198, 57, 49, 35, 34, 203, 106, 118, 215, 177, 132, 125, 16, 67, 131, 92, 61, 39, 55, 108, 253, 23, 110, 221, 99, 255, 0, 225, 127, 155, 244, - 182, 46, 1, 36, 205, 58, 47, 28, 53, 175, 127, 240, 158, 225, 244, 101, 253, 177, 237, 96, 178, 173, 129, 181, 239, 115, 38, 191, 70, 175, 111, 168, - 247, 251, 107, 119, 181, 187, 27, 187, 212, 127, 252, 26, 181, 77, 172, 176, 6, 151, 108, 33, 135, 123, 137, 209, 219, 142, 205, 187, 93, 244, 91, 187, - 114, 243, 212, 147, 227, 117, 252, 22, 158, 30, 150, 250, 39, 173, 123, 109, 45, 12, 112, 46, 3, 101, 142, 27, 70, 208, 76, 185, 191, 202, 102, 223, - 204, 254, 115, 254, 182, 163, 83, 26, 11, 155, 141, 88, 139, 44, 47, 177, 206, 59, 108, 123, 143, 248, 71, 111, 220, 221, 223, 159, 255, 0, 162, 215, - 158, 164, 151, 167, 197, 15, 255, 217, 56, 66, 73, 77, 4, 33, 0, 0, 0, 0, 0, 83, 0, 0, 0, 1, 1, 0, 0, 0, 15, 0, 65, 0, - 100, 0, 111, 0, 98, 0, 101, 0, 32, 0, 80, 0, 104, 0, 111, 0, 116, 0, 111, 0, 115, 0, 104, 0, 111, 0, 112, 0, 0, 0, 18, 0, - 65, 0, 100, 0, 111, 0, 98, 0, 101, 0, 32, 0, 80, 0, 104, 0, 111, 0, 116, 0, 111, 0, 115, 0, 104, 0, 111, 0, 112, 0, 32, 0, - 67, 0, 83, 0, 0, 0, 1, 0, 56, 66, 73, 77, 4, 6, 0, 0, 0, 0, 0, 7, 255, 255, 0, 0, 0, 1, 1, 0, 255, 225, 25, 58, - 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 0, 60, 63, 120, - 112, 97, 99, 107, 101, 116, 32, 98, 101, 103, 105, 110, 61, 39, 239, 187, 191, 39, 32, 105, 100, 61, 39, 87, 53, 77, 48, 77, 112, 67, 101, 104, - 105, 72, 122, 114, 101, 83, 122, 78, 84, 99, 122, 107, 99, 57, 100, 39, 63, 62, 10, 60, 120, 58, 120, 109, 112, 109, 101, 116, 97, 32, 120, 109, - 108, 110, 115, 58, 120, 61, 39, 97, 100, 111, 98, 101, 58, 110, 115, 58, 109, 101, 116, 97, 47, 39, 32, 120, 58, 120, 109, 112, 116, 107, 61, 39, - 88, 77, 80, 32, 116, 111, 111, 108, 107, 105, 116, 32, 51, 46, 48, 45, 50, 56, 44, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 32, 49, 46, - 54, 39, 62, 10, 60, 114, 100, 102, 58, 82, 68, 70, 32, 120, 109, 108, 110, 115, 58, 114, 100, 102, 61, 39, 104, 116, 116, 112, 58, 47, 47, 119, - 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 49, 57, 57, 57, 47, 48, 50, 47, 50, 50, 45, 114, 100, 102, 45, 115, 121, 110, 116, 97, 120, 45, - 110, 115, 35, 39, 32, 120, 109, 108, 110, 115, 58, 105, 88, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, - 111, 109, 47, 105, 88, 47, 49, 46, 48, 47, 39, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, - 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, - 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 101, 120, - 105, 102, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 101, 120, 105, 102, 47, 49, 46, 48, - 47, 39, 62, 10, 32, 32, 60, 101, 120, 105, 102, 58, 67, 111, 108, 111, 114, 83, 112, 97, 99, 101, 62, 52, 50, 57, 52, 57, 54, 55, 50, 57, - 53, 60, 47, 101, 120, 105, 102, 58, 67, 111, 108, 111, 114, 83, 112, 97, 99, 101, 62, 10, 32, 32, 60, 101, 120, 105, 102, 58, 80, 105, 120, 101, - 108, 88, 68, 105, 109, 101, 110, 115, 105, 111, 110, 62, 50, 55, 53, 60, 47, 101, 120, 105, 102, 58, 80, 105, 120, 101, 108, 88, 68, 105, 109, 101, - 110, 115, 105, 111, 110, 62, 10, 32, 32, 60, 101, 120, 105, 102, 58, 80, 105, 120, 101, 108, 89, 68, 105, 109, 101, 110, 115, 105, 111, 110, 62, 50, - 48, 55, 60, 47, 101, 120, 105, 102, 58, 80, 105, 120, 101, 108, 89, 68, 105, 109, 101, 110, 115, 105, 111, 110, 62, 10, 32, 60, 47, 114, 100, 102, - 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, - 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, - 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 112, - 100, 102, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 112, 100, 102, 47, 49, 46, 51, 47, - 39, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, - 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, - 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, - 32, 32, 120, 109, 108, 110, 115, 58, 112, 104, 111, 116, 111, 115, 104, 111, 112, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, - 98, 101, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 104, 111, 112, 47, 49, 46, 48, 47, 39, 62, 10, 32, 32, 60, 112, 104, 111, 116, 111, - 115, 104, 111, 112, 58, 72, 105, 115, 116, 111, 114, 121, 62, 60, 47, 112, 104, 111, 116, 111, 115, 104, 111, 112, 58, 72, 105, 115, 116, 111, 114, 121, - 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, - 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, - 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, - 32, 120, 109, 108, 110, 115, 58, 116, 105, 102, 102, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, - 47, 116, 105, 102, 102, 47, 49, 46, 48, 47, 39, 62, 10, 32, 32, 60, 116, 105, 102, 102, 58, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, - 62, 49, 60, 47, 116, 105, 102, 102, 58, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 62, 10, 32, 32, 60, 116, 105, 102, 102, 58, 88, 82, - 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 49, 48, 49, 47, 49, 60, 47, 116, 105, 102, 102, 58, 88, 82, 101, 115, 111, 108, 117, 116, 105, 111, - 110, 62, 10, 32, 32, 60, 116, 105, 102, 102, 58, 89, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 49, 48, 49, 47, 49, 60, 47, 116, 105, - 102, 102, 58, 89, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 10, 32, 32, 60, 116, 105, 102, 102, 58, 82, 101, 115, 111, 108, 117, 116, 105, - 111, 110, 85, 110, 105, 116, 62, 50, 60, 47, 116, 105, 102, 102, 58, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 85, 110, 105, 116, 62, 10, 32, - 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, - 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, - 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, - 108, 110, 115, 58, 120, 97, 112, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, - 47, 49, 46, 48, 47, 39, 62, 10, 32, 32, 60, 120, 97, 112, 58, 67, 114, 101, 97, 116, 101, 68, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, - 49, 45, 49, 55, 84, 49, 48, 58, 48, 52, 58, 48, 51, 45, 48, 56, 58, 48, 48, 60, 47, 120, 97, 112, 58, 67, 114, 101, 97, 116, 101, 68, - 97, 116, 101, 62, 10, 32, 32, 60, 120, 97, 112, 58, 77, 111, 100, 105, 102, 121, 68, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, - 55, 84, 49, 55, 58, 50, 51, 58, 49, 49, 45, 48, 56, 58, 48, 48, 60, 47, 120, 97, 112, 58, 77, 111, 100, 105, 102, 121, 68, 97, 116, 101, - 62, 10, 32, 32, 60, 120, 97, 112, 58, 77, 101, 116, 97, 100, 97, 116, 97, 68, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 55, - 84, 49, 55, 58, 50, 51, 58, 49, 49, 45, 48, 56, 58, 48, 48, 60, 47, 120, 97, 112, 58, 77, 101, 116, 97, 100, 97, 116, 97, 68, 97, 116, - 101, 62, 10, 32, 32, 60, 120, 97, 112, 58, 67, 114, 101, 97, 116, 111, 114, 84, 111, 111, 108, 62, 65, 100, 111, 98, 101, 32, 80, 104, 111, 116, - 111, 115, 104, 111, 112, 32, 67, 83, 32, 77, 97, 99, 105, 110, 116, 111, 115, 104, 60, 47, 120, 97, 112, 58, 67, 114, 101, 97, 116, 111, 114, 84, - 111, 111, 108, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, - 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, - 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, - 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 120, 97, 112, 77, 77, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, - 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 109, 109, 47, 39, 62, 10, 32, 32, 60, 120, 97, 112, 77, 77, 58, 68, 111, 99, 117, - 109, 101, 110, 116, 73, 68, 62, 97, 100, 111, 98, 101, 58, 100, 111, 99, 105, 100, 58, 112, 104, 111, 116, 111, 115, 104, 111, 112, 58, 56, 49, 100, - 54, 50, 54, 99, 101, 45, 49, 97, 98, 52, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, - 55, 60, 47, 120, 97, 112, 77, 77, 58, 68, 111, 99, 117, 109, 101, 110, 116, 73, 68, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, - 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, - 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, - 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 120, 97, 112, 82, 105, 103, - 104, 116, 115, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, - 47, 114, 105, 103, 104, 116, 115, 47, 39, 62, 10, 32, 32, 60, 120, 97, 112, 82, 105, 103, 104, 116, 115, 58, 77, 97, 114, 107, 101, 100, 62, 84, - 114, 117, 101, 60, 47, 120, 97, 112, 82, 105, 103, 104, 116, 115, 58, 77, 97, 114, 107, 101, 100, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, - 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, - 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, - 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 100, 99, 61, 39, - 104, 116, 116, 112, 58, 47, 47, 112, 117, 114, 108, 46, 111, 114, 103, 47, 100, 99, 47, 101, 108, 101, 109, 101, 110, 116, 115, 47, 49, 46, 49, 47, - 39, 62, 10, 32, 32, 60, 100, 99, 58, 102, 111, 114, 109, 97, 116, 62, 105, 109, 97, 103, 101, 47, 106, 112, 101, 103, 60, 47, 100, 99, 58, 102, - 111, 114, 109, 97, 116, 62, 10, 32, 32, 60, 100, 99, 58, 114, 105, 103, 104, 116, 115, 62, 10, 32, 32, 32, 60, 114, 100, 102, 58, 65, 108, 116, - 62, 10, 32, 32, 32, 32, 60, 114, 100, 102, 58, 108, 105, 32, 120, 109, 108, 58, 108, 97, 110, 103, 61, 39, 120, 45, 100, 101, 102, 97, 117, 108, - 116, 39, 62, 49, 57, 57, 57, 32, 76, 97, 114, 115, 32, 66, 111, 114, 103, 60, 47, 114, 100, 102, 58, 108, 105, 62, 10, 32, 32, 32, 60, 47, - 114, 100, 102, 58, 65, 108, 116, 62, 10, 32, 32, 60, 47, 100, 99, 58, 114, 105, 103, 104, 116, 115, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, - 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 60, 47, 114, 100, 102, 58, 82, 68, 70, 62, 10, 60, 47, 120, 58, 120, 109, 112, 109, - 101, 116, 97, 62, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 10, 60, 63, 120, 112, 97, 99, 107, 101, 116, 32, 101, 110, 100, 61, 39, 119, 39, 63, 62, 255, 226, 2, 36, 73, 67, 67, 95, - 80, 82, 79, 70, 73, 76, 69, 0, 1, 1, 0, 0, 2, 20, 65, 68, 66, 69, 2, 16, 0, 0, 109, 110, 116, 114, 82, 71, 66, 32, 88, 89, - 90, 32, 7, 207, 0, 4, 0, 5, 0, 15, 0, 8, 0, 5, 97, 99, 115, 112, 65, 80, 80, 76, 0, 0, 0, 0, 110, 111, 110, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 246, 214, 0, 1, 0, 0, 0, 0, 211, 45, 65, 68, 66, 69, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 99, 112, 114, 116, 0, 0, 0, 252, 0, 0, 0, 36, 100, 101, 115, 99, 0, 0, - 1, 32, 0, 0, 0, 95, 119, 116, 112, 116, 0, 0, 1, 128, 0, 0, 0, 20, 98, 107, 112, 116, 0, 0, 1, 148, 0, 0, 0, 20, 114, 84, - 82, 67, 0, 0, 1, 168, 0, 0, 0, 14, 103, 84, 82, 67, 0, 0, 1, 184, 0, 0, 0, 14, 98, 84, 82, 67, 0, 0, 1, 200, 0, 0, - 0, 14, 114, 88, 89, 90, 0, 0, 1, 216, 0, 0, 0, 20, 103, 88, 89, 90, 0, 0, 1, 236, 0, 0, 0, 20, 98, 88, 89, 90, 0, 0, - 2, 0, 0, 0, 0, 20, 116, 101, 120, 116, 0, 0, 0, 0, 40, 99, 41, 32, 49, 57, 57, 57, 32, 65, 100, 111, 98, 101, 32, 83, 121, 115, - 116, 101, 109, 115, 32, 73, 110, 99, 46, 0, 100, 101, 115, 99, 0, 0, 0, 0, 0, 0, 0, 4, 71, 66, 82, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 90, 32, 0, 0, 0, 0, 0, 0, 243, 81, 0, 1, 0, 0, 0, 1, 22, 204, 88, 89, - 90, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 117, 114, 118, 0, 0, 0, 0, 0, 0, 0, 1, 2, 51, - 0, 0, 99, 117, 114, 118, 0, 0, 0, 0, 0, 0, 0, 1, 2, 51, 0, 0, 99, 117, 114, 118, 0, 0, 0, 0, 0, 0, 0, 1, 2, 51, - 0, 0, 88, 89, 90, 32, 0, 0, 0, 0, 0, 0, 98, 151, 0, 0, 183, 135, 0, 0, 24, 217, 88, 89, 90, 32, 0, 0, 0, 0, 0, 0, - 36, 159, 0, 0, 15, 132, 0, 0, 182, 195, 88, 89, 90, 32, 0, 0, 0, 0, 0, 0, 111, 160, 0, 0, 56, 245, 0, 0, 3, 144, 255, 238, - 0, 14, 65, 100, 111, 98, 101, 0, 100, 128, 0, 0, 0, 1, 255, 219, 0, 132, 0, 18, 14, 14, 14, 16, 14, 21, 16, 16, 21, 30, 19, 17, - 19, 30, 35, 26, 21, 21, 26, 35, 34, 23, 23, 23, 23, 23, 34, 17, 12, 12, 12, 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 20, 19, 19, 22, 25, 22, 27, 23, 23, 27, 20, 14, - 14, 14, 20, 20, 14, 14, 14, 14, 20, 17, 12, 12, 12, 12, 12, 17, 17, 12, 12, 12, 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 192, 0, 17, 8, 0, 207, 1, 19, 3, 1, 34, - 0, 2, 17, 1, 3, 17, 1, 255, 221, 0, 4, 0, 18, 255, 196, 1, 63, 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 1, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 0, 1, 4, 1, 3, 2, 4, 2, 5, 7, 6, 8, 5, 3, 12, 51, 1, 0, 2, 17, - 3, 4, 33, 18, 49, 5, 65, 81, 97, 19, 34, 113, 129, 50, 6, 20, 145, 161, 177, 66, 35, 36, 21, 82, 193, 98, 51, 52, 114, 130, 209, 67, - 7, 37, 146, 83, 240, 225, 241, 99, 115, 53, 22, 162, 178, 131, 38, 68, 147, 84, 100, 69, 194, 163, 116, 54, 23, 210, 85, 226, 101, 242, 179, 132, - 195, 211, 117, 227, 243, 70, 39, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, - 246, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 17, 0, 2, 2, 1, 2, 4, 4, 3, 4, 5, 6, 7, 7, 6, 5, 53, 1, - 0, 2, 17, 3, 33, 49, 18, 4, 65, 81, 97, 113, 34, 19, 5, 50, 129, 145, 20, 161, 177, 66, 35, 193, 82, 209, 240, 51, 36, 98, 225, 114, - 130, 146, 67, 83, 21, 99, 115, 52, 241, 37, 6, 22, 162, 178, 131, 7, 38, 53, 194, 210, 68, 147, 84, 163, 23, 100, 69, 85, 54, 116, 101, 226, - 242, 179, 132, 195, 211, 117, 227, 243, 70, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, - 214, 230, 246, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 255, 218, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0, 233, 146, 73, 37, - 142, 212, 84, 36, 146, 80, 146, 148, 146, 80, 148, 36, 165, 36, 148, 36, 146, 148, 146, 73, 36, 165, 36, 157, 36, 149, 75, 36, 157, 36, 148, 178, - 73, 210, 73, 84, 178, 73, 210, 73, 84, 178, 73, 214, 126, 110, 112, 169, 194, 186, 207, 190, 36, 144, 55, 104, 164, 199, 142, 89, 36, 35, 16, 145, - 18, 77, 6, 174, 86, 125, 142, 181, 213, 212, 232, 107, 73, 16, 57, 144, 178, 236, 221, 105, 4, 131, 97, 28, 65, 49, 254, 122, 178, 28, 38, 90, - 0, 39, 82, 72, 13, 146, 127, 168, 153, 207, 116, 78, 224, 32, 201, 48, 78, 139, 111, 30, 56, 194, 34, 32, 13, 155, 32, 0, 0, 1, 139, 88, - 75, 116, 27, 79, 129, 50, 66, 94, 147, 195, 247, 7, 0, 210, 53, 228, 153, 73, 214, 237, 26, 23, 29, 220, 2, 67, 71, 253, 6, 40, 122, 134, - 54, 217, 83, 128, 61, 195, 231, 254, 254, 164, 181, 214, 152, 176, 146, 75, 156, 238, 34, 64, 67, 20, 6, 147, 5, 228, 30, 120, 31, 247, 197, 31, - 90, 150, 191, 104, 218, 215, 30, 26, 92, 102, 63, 207, 83, 37, 174, 0, 150, 131, 26, 242, 82, 10, 1, 127, 72, 72, 16, 224, 38, 121, 208, 166, - 52, 176, 159, 113, 123, 128, 50, 27, 58, 2, 145, 180, 0, 72, 173, 198, 53, 49, 237, 227, 251, 104, 39, 34, 182, 136, 125, 90, 18, 117, 4, 158, - 80, 61, 148, 82, 28, 90, 156, 8, 115, 92, 224, 76, 234, 237, 68, 34, 122, 44, 32, 0, 195, 237, 26, 16, 239, 113, 10, 5, 230, 61, 149, 181, - 195, 137, 34, 74, 128, 169, 142, 35, 126, 56, 7, 145, 19, 31, 244, 30, 138, 135, 130, 96, 194, 208, 26, 107, 113, 7, 147, 58, 165, 233, 177, 196, - 147, 92, 147, 161, 131, 169, 8, 36, 0, 64, 20, 128, 7, 36, 151, 54, 15, 249, 234, 67, 70, 201, 108, 52, 0, 64, 5, 226, 18, 74, 206, 165, - 165, 224, 73, 107, 15, 44, 32, 185, 164, 143, 250, 132, 131, 118, 62, 65, 4, 147, 50, 14, 221, 0, 254, 90, 137, 182, 194, 226, 24, 28, 208, 209, - 4, 146, 96, 73, 255, 0, 4, 157, 227, 216, 26, 78, 167, 177, 74, 181, 165, 54, 61, 75, 127, 124, 241, 63, 72, 36, 170, 108, 103, 239, 31, 14, - 233, 37, 167, 101, 63, 255, 208, 233, 210, 73, 58, 199, 106, 172, 146, 116, 146, 82, 201, 39, 73, 37, 44, 146, 116, 145, 165, 44, 146, 116, 146, 165, - 41, 36, 146, 74, 148, 164, 146, 73, 42, 82, 146, 73, 36, 169, 74, 73, 36, 43, 236, 244, 233, 115, 244, 150, 131, 19, 226, 140, 65, 36, 1, 250, - 69, 52, 118, 114, 250, 135, 85, 53, 185, 213, 84, 91, 160, 146, 73, 131, 10, 136, 126, 241, 50, 73, 48, 76, 121, 170, 57, 15, 15, 123, 201, 169, - 197, 229, 187, 88, 72, 6, 26, 127, 215, 122, 158, 45, 245, 250, 1, 179, 27, 9, 104, 17, 182, 118, 173, 204, 120, 161, 142, 32, 68, 13, 126, 102, - 196, 98, 6, 129, 178, 237, 173, 147, 192, 239, 58, 234, 130, 28, 219, 73, 46, 48, 209, 160, 3, 80, 117, 72, 188, 56, 128, 248, 131, 168, 0, 201, - 42, 0, 29, 150, 53, 181, 184, 61, 130, 64, 49, 7, 95, 250, 106, 90, 54, 186, 153, 109, 172, 181, 207, 120, 5, 147, 0, 16, 54, 232, 80, 174, - 108, 13, 236, 37, 165, 160, 114, 33, 160, 207, 231, 167, 44, 120, 97, 99, 129, 59, 8, 46, 13, 153, 33, 201, 137, 108, 180, 57, 194, 92, 28, 28, - 199, 13, 199, 67, 253, 180, 142, 197, 74, 173, 197, 198, 202, 192, 221, 107, 0, 36, 129, 184, 1, 251, 159, 235, 250, 85, 38, 90, 192, 8, 112, 4, - 128, 0, 28, 29, 17, 107, 198, 199, 112, 154, 164, 56, 0, 69, 109, 37, 173, 46, 113, 253, 30, 250, 212, 62, 199, 107, 24, 231, 218, 26, 0, 26, - 144, 75, 142, 135, 247, 246, 123, 63, 240, 68, 128, 219, 85, 82, 91, 29, 91, 170, 36, 180, 134, 157, 9, 18, 15, 249, 232, 108, 217, 35, 99, 129, - 16, 64, 211, 152, 80, 5, 205, 199, 54, 56, 130, 195, 50, 208, 4, 145, 62, 205, 149, 179, 247, 208, 41, 207, 168, 144, 27, 67, 159, 6, 72, 17, - 34, 74, 4, 234, 45, 71, 197, 48, 174, 192, 29, 34, 107, 116, 18, 92, 8, 4, 79, 245, 211, 59, 214, 97, 5, 214, 53, 180, 240, 42, 104, 218, - 76, 254, 127, 211, 68, 139, 94, 92, 246, 53, 208, 208, 11, 152, 224, 65, 26, 255, 0, 128, 244, 191, 245, 109, 72, 145, 75, 171, 115, 157, 13, 32, - 70, 134, 73, 252, 255, 0, 237, 163, 93, 148, 211, 169, 207, 176, 184, 1, 107, 152, 208, 72, 45, 1, 135, 79, 248, 84, 245, 60, 220, 7, 166, 219, - 8, 108, 238, 46, 144, 209, 31, 206, 126, 250, 212, 178, 182, 188, 55, 81, 13, 130, 208, 30, 0, 227, 255, 0, 5, 64, 123, 50, 9, 134, 180, 22, - 1, 4, 192, 46, 32, 164, 0, 234, 160, 16, 155, 131, 164, 50, 72, 28, 150, 153, 13, 36, 40, 90, 26, 70, 226, 100, 192, 242, 208, 35, 100, 105, - 81, 107, 90, 8, 28, 6, 144, 61, 206, 40, 79, 108, 1, 62, 216, 241, 145, 160, 68, 141, 84, 135, 212, 62, 7, 233, 109, 231, 186, 72, 59, 79, - 151, 27, 249, 73, 10, 42, 163, 217, 255, 209, 234, 19, 39, 73, 100, 53, 84, 146, 73, 36, 154, 82, 73, 36, 146, 148, 146, 73, 36, 165, 36, 146, - 73, 41, 73, 37, 9, 66, 84, 165, 36, 146, 73, 82, 148, 146, 116, 145, 165, 44, 179, 250, 149, 237, 109, 94, 148, 7, 57, 196, 72, 38, 32, 43, - 25, 89, 85, 211, 89, 18, 11, 200, 32, 52, 106, 101, 98, 7, 187, 87, 29, 206, 113, 212, 147, 202, 185, 202, 96, 50, 144, 156, 129, 224, 129, 100, - 132, 77, 217, 106, 144, 215, 184, 146, 211, 0, 13, 32, 242, 130, 234, 218, 215, 52, 180, 150, 0, 73, 50, 39, 233, 31, 229, 171, 133, 238, 39, 70, - 159, 153, 28, 40, 219, 73, 177, 162, 92, 90, 1, 224, 68, 106, 181, 13, 214, 129, 152, 82, 51, 80, 0, 13, 250, 158, 241, 201, 41, 154, 198, 2, - 232, 36, 206, 133, 178, 68, 71, 246, 210, 117, 159, 101, 13, 5, 192, 180, 146, 76, 137, 32, 35, 151, 210, 30, 52, 104, 121, 212, 17, 0, 194, 34, - 67, 170, 105, 128, 104, 120, 6, 92, 12, 128, 4, 107, 1, 78, 182, 86, 1, 218, 72, 18, 65, 48, 53, 83, 47, 129, 34, 76, 246, 128, 101, 73, - 175, 32, 68, 13, 79, 4, 13, 81, 232, 166, 13, 168, 84, 64, 18, 231, 153, 212, 128, 14, 210, 149, 128, 88, 75, 64, 222, 76, 49, 196, 17, 13, - 104, 247, 169, 185, 207, 2, 67, 68, 3, 200, 0, 65, 83, 101, 164, 130, 32, 2, 53, 51, 8, 15, 10, 83, 89, 244, 51, 99, 156, 65, 97, 48, - 6, 132, 56, 199, 252, 26, 118, 227, 225, 181, 133, 241, 46, 238, 248, 59, 193, 86, 32, 145, 184, 67, 164, 234, 70, 160, 169, 135, 53, 172, 218, 26, - 222, 53, 7, 141, 82, 53, 221, 13, 67, 83, 3, 14, 192, 64, 241, 31, 72, 194, 78, 165, 132, 10, 220, 226, 208, 225, 161, 49, 58, 43, 0, 18, - 54, 195, 91, 228, 70, 128, 39, 112, 171, 80, 224, 29, 34, 52, 4, 104, 80, 50, 27, 18, 150, 176, 173, 161, 155, 67, 162, 4, 146, 0, 4, 143, - 245, 253, 244, 171, 168, 52, 64, 120, 33, 209, 3, 83, 162, 89, 150, 57, 148, 237, 168, 110, 14, 59, 72, 30, 226, 52, 84, 177, 108, 191, 215, 27, - 90, 231, 49, 192, 7, 180, 130, 91, 180, 4, 211, 48, 13, 36, 1, 91, 132, 215, 49, 147, 88, 115, 135, 180, 247, 49, 221, 14, 227, 181, 174, 123, - 68, 128, 9, 130, 67, 164, 194, 190, 250, 216, 246, 128, 230, 196, 113, 7, 83, 5, 5, 212, 86, 247, 22, 195, 154, 116, 32, 141, 4, 79, 253, 253, - 62, 197, 245, 67, 8, 187, 253, 31, 248, 56, 250, 3, 252, 196, 149, 141, 143, 241, 30, 28, 158, 18, 71, 84, 104, 255, 0, 255, 210, 232, 174, 202, - 166, 136, 22, 58, 11, 166, 7, 125, 18, 199, 202, 167, 32, 126, 141, 192, 144, 36, 143, 9, 92, 143, 83, 180, 221, 104, 12, 121, 48, 237, 206, 32, - 152, 0, 251, 255, 0, 68, 137, 211, 122, 189, 148, 228, 29, 205, 46, 169, 196, 135, 248, 52, 181, 83, 251, 191, 162, 199, 206, 176, 225, 34, 32, 143, - 153, 236, 33, 58, 133, 86, 11, 107, 109, 141, 225, 194, 66, 154, 170, 65, 217, 137, 73, 147, 165, 9, 82, 148, 146, 73, 66, 74, 82, 73, 66, 73, - 41, 73, 36, 162, 247, 177, 141, 46, 123, 131, 64, 228, 157, 17, 0, 147, 64, 41, 146, 131, 236, 174, 177, 47, 112, 104, 60, 18, 97, 83, 183, 170, - 208, 223, 161, 47, 243, 136, 11, 59, 35, 48, 94, 240, 94, 210, 96, 104, 1, 0, 66, 181, 139, 148, 156, 136, 50, 30, 220, 63, 231, 174, 16, 39, - 118, 253, 253, 73, 141, 59, 106, 32, 136, 213, 196, 198, 170, 149, 153, 247, 56, 144, 109, 32, 68, 192, 134, 160, 13, 131, 252, 25, 31, 19, 194, 81, - 94, 158, 214, 143, 50, 68, 74, 191, 143, 151, 199, 1, 66, 35, 251, 210, 101, 16, 3, 163, 3, 123, 9, 36, 216, 76, 247, 6, 127, 234, 20, 77, - 140, 39, 64, 247, 18, 98, 64, 220, 2, 49, 53, 180, 2, 230, 181, 179, 0, 9, 157, 84, 128, 0, 199, 178, 12, 147, 169, 159, 250, 133, 61, 46, - 107, 139, 43, 39, 77, 206, 157, 6, 145, 255, 0, 86, 155, 123, 14, 128, 72, 239, 161, 86, 143, 166, 52, 36, 79, 153, 81, 46, 160, 9, 115, 155, - 28, 243, 162, 10, 106, 191, 97, 5, 164, 65, 58, 8, 246, 130, 85, 70, 227, 23, 88, 26, 92, 67, 198, 164, 70, 224, 33, 105, 186, 220, 120, 220, - 94, 208, 7, 144, 255, 0, 201, 161, 156, 204, 70, 157, 47, 102, 240, 70, 132, 128, 121, 77, 148, 73, 35, 205, 64, 181, 114, 129, 164, 53, 141, 46, - 4, 0, 4, 29, 38, 19, 212, 235, 180, 22, 52, 192, 26, 153, 42, 211, 223, 85, 192, 185, 142, 99, 156, 6, 134, 70, 137, 247, 141, 132, 188, 131, - 172, 204, 135, 64, 254, 66, 97, 132, 129, 187, 41, 99, 184, 182, 33, 174, 131, 193, 147, 170, 115, 104, 16, 64, 49, 226, 73, 84, 153, 144, 91, 100, - 0, 75, 3, 137, 128, 126, 139, 97, 92, 245, 152, 1, 46, 129, 17, 160, 41, 209, 152, 234, 130, 11, 47, 87, 65, 166, 158, 58, 169, 7, 136, 38, - 9, 129, 32, 14, 82, 109, 140, 35, 112, 0, 143, 25, 8, 130, 198, 76, 64, 0, 121, 167, 129, 226, 21, 75, 50, 215, 182, 8, 105, 248, 233, 42, - 66, 243, 60, 29, 121, 145, 160, 41, 54, 202, 76, 153, 2, 57, 213, 72, 62, 151, 9, 14, 105, 3, 205, 18, 7, 101, 49, 117, 220, 129, 19, 227, - 180, 38, 47, 60, 201, 49, 224, 33, 72, 190, 174, 206, 105, 249, 167, 6, 189, 96, 130, 15, 154, 28, 35, 162, 80, 239, 208, 235, 19, 226, 144, 120, - 48, 1, 7, 207, 197, 20, 181, 167, 195, 239, 77, 232, 179, 192, 125, 225, 26, 40, 71, 184, 120, 164, 167, 246, 122, 252, 7, 222, 146, 52, 167, 255, - 211, 198, 52, 220, 214, 10, 64, 27, 216, 101, 224, 25, 128, 7, 243, 95, 245, 213, 98, 188, 71, 12, 198, 140, 134, 145, 85, 141, 1, 149, 130, 26, - 78, 225, 250, 47, 161, 189, 19, 15, 24, 93, 113, 121, 115, 89, 188, 65, 15, 157, 179, 253, 132, 74, 169, 200, 165, 212, 151, 220, 218, 168, 97, 46, - 46, 45, 209, 165, 163, 233, 179, 127, 243, 170, 188, 230, 107, 134, 194, 217, 200, 209, 136, 33, 235, 169, 1, 172, 107, 36, 18, 192, 26, 67, 76, 129, - 1, 43, 110, 170, 166, 238, 177, 193, 163, 64, 100, 248, 174, 75, 31, 173, 28, 119, 93, 233, 144, 227, 108, 144, 247, 13, 187, 94, 14, 214, 127, 159, - 244, 213, 124, 220, 247, 229, 87, 234, 3, 46, 126, 130, 117, 146, 223, 250, 133, 20, 57, 121, 72, 130, 126, 84, 67, 9, 59, 250, 94, 153, 221, 103, - 16, 239, 99, 28, 119, 128, 118, 146, 52, 115, 128, 88, 35, 171, 229, 182, 194, 211, 100, 16, 65, 112, 118, 164, 49, 191, 158, 178, 234, 174, 234, 203, - 203, 136, 218, 9, 45, 61, 193, 68, 101, 155, 90, 75, 164, 207, 114, 35, 67, 255, 0, 147, 254, 90, 179, 28, 16, 141, 208, 191, 239, 51, 71, 20, - 69, 138, 183, 160, 111, 214, 7, 157, 207, 45, 105, 97, 16, 192, 15, 5, 6, 254, 191, 113, 181, 141, 97, 12, 32, 146, 71, 239, 128, 178, 28, 242, - 32, 48, 0, 208, 1, 0, 104, 57, 67, 4, 180, 88, 242, 1, 176, 201, 4, 29, 196, 199, 230, 127, 97, 31, 103, 24, 55, 194, 159, 110, 3, 90, - 122, 22, 117, 251, 156, 247, 2, 24, 36, 128, 192, 73, 3, 95, 229, 174, 129, 135, 115, 67, 188, 64, 63, 120, 94, 121, 109, 183, 87, 176, 181, 190, - 226, 1, 105, 38, 12, 143, 166, 183, 177, 250, 198, 64, 198, 20, 130, 11, 203, 64, 245, 1, 14, 12, 209, 69, 147, 151, 226, 32, 64, 8, 234, 197, - 147, 24, 176, 98, 29, 124, 238, 161, 246, 99, 177, 140, 223, 97, 18, 73, 32, 52, 44, 107, 242, 50, 50, 36, 62, 1, 58, 234, 3, 132, 42, 198, - 203, 173, 177, 210, 76, 136, 46, 36, 78, 228, 251, 94, 208, 67, 26, 221, 243, 36, 131, 19, 35, 233, 171, 152, 112, 70, 17, 170, 28, 127, 165, 37, - 70, 32, 4, 236, 36, 60, 184, 184, 18, 224, 9, 51, 201, 67, 200, 4, 56, 61, 167, 115, 199, 98, 120, 9, 152, 94, 89, 238, 13, 14, 36, 142, - 119, 104, 147, 193, 62, 210, 3, 128, 128, 1, 27, 148, 220, 2, 186, 174, 93, 142, 47, 96, 47, 46, 107, 136, 212, 16, 12, 38, 123, 91, 4, 27, - 28, 103, 137, 129, 31, 244, 20, 42, 3, 220, 8, 130, 76, 192, 35, 184, 74, 198, 56, 144, 230, 176, 147, 16, 72, 62, 73, 86, 154, 40, 169, 140, - 107, 1, 4, 185, 196, 232, 3, 157, 39, 84, 34, 202, 193, 36, 86, 92, 55, 17, 0, 189, 210, 127, 215, 247, 17, 13, 15, 126, 237, 224, 233, 4, - 9, 26, 17, 251, 138, 237, 110, 0, 16, 224, 12, 72, 4, 24, 209, 42, 209, 46, 123, 133, 32, 2, 26, 26, 8, 34, 72, 146, 96, 127, 45, 77, - 143, 172, 192, 112, 1, 164, 8, 33, 161, 194, 85, 131, 93, 123, 98, 1, 35, 80, 12, 29, 80, 69, 118, 131, 160, 108, 29, 32, 18, 64, 71, 132, - 218, 18, 197, 1, 165, 229, 172, 112, 2, 73, 13, 6, 16, 141, 181, 52, 152, 107, 121, 236, 209, 193, 83, 53, 189, 218, 56, 48, 136, 212, 3, 181, - 64, 214, 240, 232, 13, 108, 68, 76, 142, 17, 242, 74, 106, 224, 147, 180, 180, 30, 240, 0, 80, 46, 123, 183, 184, 55, 115, 27, 32, 136, 208, 194, - 147, 43, 184, 180, 144, 26, 9, 241, 42, 68, 188, 76, 68, 241, 167, 4, 4, 145, 209, 8, 197, 199, 32, 128, 69, 111, 116, 17, 6, 102, 63, 145, - 106, 155, 241, 232, 44, 32, 146, 231, 64, 46, 50, 68, 169, 151, 56, 189, 174, 1, 155, 135, 115, 27, 132, 255, 0, 97, 59, 203, 181, 30, 208, 79, - 61, 193, 77, 49, 137, 232, 155, 106, 81, 135, 37, 197, 229, 198, 178, 101, 132, 29, 186, 127, 81, 19, 236, 120, 231, 82, 94, 233, 236, 92, 81, 67, - 156, 205, 64, 0, 142, 39, 68, 158, 11, 199, 209, 32, 30, 224, 193, 148, 128, 3, 64, 130, 117, 64, 112, 113, 64, 246, 180, 146, 117, 50, 231, 24, - 148, 55, 225, 210, 94, 90, 24, 53, 3, 185, 7, 143, 235, 162, 154, 142, 217, 107, 92, 15, 114, 9, 46, 112, 77, 232, 188, 60, 58, 28, 103, 67, - 199, 96, 137, 10, 65, 102, 6, 45, 97, 164, 87, 32, 152, 36, 184, 152, 31, 191, 253, 133, 54, 96, 96, 217, 88, 182, 166, 23, 0, 4, 251, 139, - 65, 63, 249, 130, 188, 198, 48, 22, 151, 50, 11, 72, 34, 117, 7, 69, 55, 189, 196, 19, 183, 116, 131, 199, 98, 136, 3, 178, 92, 129, 139, 94, - 199, 56, 57, 224, 2, 7, 182, 199, 105, 170, 118, 84, 247, 16, 25, 117, 245, 8, 128, 226, 75, 129, 113, 70, 125, 101, 180, 157, 204, 37, 164, 143, - 107, 103, 124, 159, 230, 210, 37, 243, 12, 118, 192, 192, 52, 112, 59, 131, 130, 109, 30, 136, 107, 237, 201, 255, 0, 79, 127, 62, 1, 36, 127, 177, - 83, 251, 174, 227, 247, 255, 0, 59, 253, 47, 243, 159, 206, 164, 149, 120, 201, 79, 255, 212, 231, 197, 238, 197, 1, 245, 184, 181, 150, 144, 96, 24, - 37, 173, 86, 186, 143, 81, 110, 86, 32, 45, 37, 197, 164, 56, 130, 73, 38, 125, 187, 253, 234, 153, 13, 56, 245, 250, 173, 116, 146, 226, 208, 208, - 33, 202, 139, 238, 123, 139, 137, 48, 93, 18, 35, 176, 77, 225, 137, 32, 210, 227, 86, 37, 75, 89, 101, 146, 102, 32, 201, 129, 199, 185, 104, 225, - 88, 247, 214, 90, 253, 26, 4, 8, 17, 184, 149, 150, 230, 150, 144, 14, 164, 143, 184, 21, 173, 138, 0, 101, 79, 116, 13, 54, 177, 162, 79, 184, - 148, 225, 210, 151, 64, 158, 45, 211, 153, 99, 97, 182, 18, 73, 2, 12, 75, 64, 10, 45, 155, 183, 53, 132, 130, 36, 110, 113, 224, 162, 22, 181, - 245, 237, 123, 136, 50, 14, 144, 9, 77, 138, 198, 155, 44, 112, 4, 57, 196, 239, 145, 192, 31, 235, 189, 19, 181, 149, 199, 246, 177, 172, 177, 155, - 106, 96, 36, 146, 76, 159, 104, 116, 38, 125, 87, 155, 54, 176, 180, 0, 53, 121, 7, 73, 63, 205, 127, 45, 24, 72, 4, 129, 4, 147, 4, 232, - 116, 65, 127, 170, 235, 61, 196, 54, 160, 1, 3, 67, 185, 223, 219, 77, 39, 160, 68, 136, 216, 51, 200, 199, 22, 185, 173, 126, 150, 54, 36, 128, - 100, 53, 167, 243, 55, 161, 84, 199, 177, 245, 218, 96, 2, 237, 161, 144, 65, 13, 113, 255, 0, 160, 137, 112, 46, 27, 141, 128, 131, 160, 35, 136, - 105, 84, 197, 214, 185, 237, 34, 54, 2, 64, 13, 215, 219, 63, 77, 56, 29, 141, 148, 138, 175, 163, 176, 46, 110, 208, 88, 64, 4, 72, 0, 79, - 31, 245, 105, 169, 185, 237, 115, 171, 157, 196, 234, 0, 32, 152, 42, 149, 133, 204, 123, 107, 174, 0, 48, 0, 231, 216, 149, 86, 6, 223, 181, 128, - 190, 4, 186, 0, 137, 63, 203, 79, 19, 54, 9, 85, 10, 32, 58, 174, 245, 3, 67, 196, 153, 2, 26, 72, 104, 159, 235, 164, 209, 99, 129, 36, - 56, 16, 36, 128, 65, 105, 33, 77, 231, 28, 86, 28, 230, 182, 52, 39, 77, 193, 164, 160, 12, 230, 54, 1, 105, 0, 9, 32, 66, 144, 207, 93, - 150, 8, 157, 214, 220, 233, 221, 233, 186, 178, 226, 38, 64, 220, 241, 40, 227, 212, 224, 53, 199, 78, 99, 69, 26, 89, 85, 225, 183, 135, 57, 204, - 6, 64, 32, 114, 173, 18, 72, 147, 35, 180, 68, 36, 73, 232, 22, 145, 171, 93, 214, 22, 130, 72, 128, 57, 36, 112, 144, 184, 152, 128, 79, 152, - 19, 162, 108, 171, 0, 13, 107, 154, 11, 73, 130, 121, 215, 251, 31, 77, 42, 41, 99, 42, 33, 205, 220, 73, 39, 81, 181, 33, 41, 89, 186, 77, - 104, 24, 217, 146, 88, 64, 112, 0, 145, 160, 48, 217, 132, 236, 185, 239, 213, 161, 192, 143, 0, 11, 74, 19, 217, 73, 46, 177, 245, 58, 26, 118, - 153, 208, 52, 184, 127, 130, 69, 46, 199, 109, 45, 38, 67, 64, 134, 65, 33, 201, 9, 27, 55, 74, 35, 68, 166, 203, 35, 218, 215, 18, 57, 4, - 66, 17, 117, 206, 4, 109, 123, 9, 238, 91, 167, 254, 102, 150, 61, 148, 88, 216, 220, 224, 248, 19, 46, 32, 243, 249, 136, 241, 89, 110, 205, 198, - 1, 211, 220, 119, 79, 245, 211, 248, 187, 32, 177, 97, 123, 68, 18, 226, 65, 141, 26, 91, 170, 17, 54, 9, 141, 208, 6, 146, 53, 50, 140, 198, - 86, 29, 59, 220, 239, 18, 92, 165, 101, 52, 190, 1, 46, 32, 16, 76, 60, 130, 97, 35, 35, 123, 21, 53, 217, 99, 129, 215, 113, 28, 78, 216, - 72, 218, 242, 243, 169, 104, 113, 129, 161, 26, 148, 90, 234, 101, 100, 185, 174, 36, 187, 185, 51, 1, 16, 9, 144, 92, 117, 17, 18, 133, 233, 100, - 41, 166, 251, 139, 28, 90, 233, 61, 164, 4, 195, 48, 135, 22, 56, 232, 120, 17, 50, 226, 140, 236, 0, 235, 28, 241, 105, 45, 35, 70, 157, 64, - 64, 61, 49, 206, 112, 38, 194, 208, 32, 130, 52, 115, 136, 253, 245, 25, 50, 38, 235, 170, 237, 27, 96, 30, 64, 6, 123, 158, 202, 1, 228, 62, - 28, 208, 57, 128, 38, 96, 5, 98, 182, 6, 0, 210, 75, 160, 64, 241, 76, 90, 28, 8, 61, 248, 208, 18, 212, 254, 34, 13, 82, 0, 29, 208, - 54, 198, 61, 194, 75, 72, 3, 93, 103, 85, 55, 108, 15, 107, 26, 12, 56, 253, 38, 141, 205, 3, 252, 244, 133, 22, 54, 192, 71, 164, 88, 1, - 13, 4, 109, 112, 5, 16, 135, 128, 91, 91, 152, 1, 141, 8, 142, 19, 193, 7, 80, 164, 36, 238, 0, 109, 123, 65, 35, 82, 8, 26, 39, 97, - 37, 239, 4, 150, 181, 164, 1, 164, 130, 81, 30, 44, 115, 90, 45, 13, 222, 8, 32, 176, 238, 16, 19, 54, 182, 181, 133, 178, 226, 73, 147, 168, - 37, 37, 82, 160, 121, 115, 60, 31, 243, 210, 69, 134, 127, 43, 199, 251, 73, 37, 104, 127, 255, 213, 203, 97, 189, 212, 181, 213, 88, 28, 192, 8, - 97, 130, 11, 75, 127, 210, 255, 0, 158, 161, 143, 94, 21, 153, 131, 121, 146, 3, 67, 156, 3, 69, 37, 228, 251, 237, 255, 0, 206, 63, 194, 160, - 87, 105, 124, 48, 1, 178, 162, 26, 192, 79, 184, 152, 253, 37, 190, 245, 96, 109, 104, 104, 112, 144, 65, 18, 209, 31, 72, 251, 255, 0, 207, 67, - 219, 176, 65, 38, 50, 94, 33, 96, 128, 120, 82, 231, 96, 82, 110, 54, 0, 218, 159, 88, 151, 214, 33, 165, 239, 159, 240, 8, 68, 84, 72, 13, - 2, 27, 17, 19, 237, 33, 9, 182, 147, 107, 131, 139, 157, 96, 36, 130, 238, 67, 79, 254, 65, 59, 137, 101, 110, 112, 26, 184, 200, 28, 72, 37, - 58, 16, 225, 20, 77, 175, 132, 107, 117, 23, 151, 23, 237, 48, 0, 30, 243, 164, 71, 211, 74, 155, 55, 100, 110, 145, 181, 141, 32, 14, 228, 149, - 23, 22, 60, 26, 228, 53, 160, 2, 231, 247, 37, 14, 150, 180, 8, 0, 184, 185, 196, 57, 228, 70, 224, 156, 123, 20, 216, 234, 221, 245, 88, 242, - 3, 219, 176, 141, 65, 30, 13, 27, 255, 0, 182, 162, 247, 23, 146, 30, 0, 96, 144, 67, 163, 220, 8, 85, 62, 209, 47, 12, 39, 110, 217, 0, - 52, 16, 11, 191, 49, 159, 219, 86, 75, 3, 65, 115, 193, 147, 200, 3, 112, 223, 9, 180, 58, 4, 86, 228, 46, 195, 83, 217, 3, 216, 90, 64, - 0, 13, 163, 107, 80, 168, 112, 117, 193, 183, 180, 6, 52, 146, 30, 36, 2, 64, 250, 31, 153, 191, 255, 0, 74, 167, 54, 60, 110, 117, 96, 56, - 181, 193, 174, 32, 123, 163, 252, 34, 96, 198, 93, 96, 113, 105, 123, 64, 213, 196, 144, 193, 7, 243, 25, 236, 64, 210, 210, 69, 104, 157, 143, 168, - 90, 198, 176, 27, 43, 178, 90, 9, 16, 27, 35, 127, 250, 255, 0, 194, 164, 204, 98, 207, 84, 180, 144, 9, 26, 1, 38, 71, 230, 108, 74, 188, - 112, 93, 47, 4, 216, 199, 18, 215, 9, 35, 65, 191, 254, 254, 174, 57, 132, 253, 29, 76, 79, 151, 8, 3, 170, 129, 29, 218, 140, 245, 54, 184, - 88, 73, 99, 70, 231, 56, 15, 113, 213, 12, 130, 30, 92, 201, 112, 38, 64, 39, 232, 24, 86, 69, 161, 132, 72, 36, 8, 27, 103, 157, 21, 87, - 48, 48, 152, 30, 247, 18, 64, 2, 0, 31, 65, 60, 90, 240, 110, 219, 152, 118, 146, 253, 132, 67, 90, 216, 113, 19, 180, 25, 86, 133, 175, 208, - 193, 216, 73, 212, 207, 101, 69, 151, 57, 181, 134, 29, 26, 221, 92, 70, 146, 64, 68, 179, 36, 217, 94, 194, 76, 232, 32, 157, 116, 82, 9, 80, - 234, 178, 81, 55, 116, 218, 126, 64, 107, 140, 64, 129, 201, 158, 83, 54, 247, 60, 128, 8, 152, 227, 180, 170, 111, 176, 189, 237, 30, 226, 209, 180, - 23, 3, 201, 8, 149, 216, 42, 164, 185, 164, 184, 23, 16, 73, 229, 209, 255, 0, 80, 144, 152, 220, 252, 171, 8, 234, 217, 123, 13, 128, 146, 90, - 89, 0, 56, 2, 123, 126, 103, 208, 73, 148, 177, 205, 219, 35, 96, 213, 160, 17, 58, 255, 0, 228, 19, 87, 107, 222, 208, 246, 130, 7, 125, 36, - 16, 81, 11, 204, 151, 16, 12, 114, 99, 88, 9, 215, 26, 186, 10, 5, 27, 24, 43, 246, 214, 210, 8, 16, 9, 33, 210, 208, 136, 46, 120, 105, - 4, 251, 187, 66, 170, 50, 28, 51, 4, 0, 224, 225, 4, 145, 192, 69, 202, 123, 11, 3, 128, 146, 15, 99, 1, 33, 33, 209, 53, 173, 51, 25, - 22, 2, 36, 19, 62, 33, 39, 229, 150, 232, 71, 140, 248, 170, 152, 255, 0, 166, 110, 181, 204, 9, 153, 32, 19, 254, 122, 21, 94, 165, 153, 5, - 187, 75, 128, 50, 73, 4, 6, 237, 254, 90, 105, 152, 80, 27, 183, 205, 196, 146, 208, 96, 129, 61, 184, 79, 246, 167, 2, 36, 249, 16, 33, 82, - 176, 214, 203, 65, 112, 18, 116, 6, 73, 16, 127, 234, 17, 216, 220, 119, 2, 26, 216, 0, 193, 4, 158, 127, 207, 74, 50, 179, 186, 11, 96, 94, - 221, 198, 217, 59, 90, 32, 0, 61, 178, 74, 152, 200, 107, 204, 3, 51, 227, 230, 128, 105, 164, 176, 130, 215, 65, 212, 128, 226, 2, 11, 45, 172, - 93, 232, 150, 181, 205, 32, 108, 4, 238, 45, 48, 156, 102, 5, 90, 64, 111, 7, 180, 203, 68, 19, 196, 68, 164, 94, 1, 128, 8, 35, 67, 34, - 53, 8, 21, 18, 225, 185, 205, 33, 178, 71, 180, 248, 20, 239, 170, 183, 14, 8, 28, 8, 58, 148, 225, 43, 22, 142, 173, 130, 253, 0, 38, 9, - 225, 40, 34, 117, 136, 237, 19, 42, 161, 109, 109, 36, 135, 25, 142, 250, 144, 171, 62, 235, 1, 250, 64, 136, 38, 96, 255, 0, 175, 177, 52, 201, - 34, 37, 210, 14, 131, 180, 56, 73, 236, 66, 112, 65, 228, 129, 240, 84, 107, 22, 178, 176, 231, 144, 224, 4, 146, 12, 13, 81, 152, 215, 144, 28, - 27, 0, 137, 212, 165, 196, 138, 108, 233, 226, 146, 175, 47, 240, 239, 28, 132, 146, 226, 29, 210, 255, 0, 255, 214, 196, 101, 110, 101, 160, 146, 62, - 140, 67, 96, 52, 147, 252, 222, 197, 11, 158, 250, 131, 27, 48, 3, 129, 49, 36, 192, 40, 175, 184, 18, 95, 27, 36, 152, 96, 215, 146, 171, 88, - 36, 250, 141, 113, 5, 131, 73, 19, 41, 247, 163, 56, 219, 65, 209, 37, 118, 135, 75, 72, 62, 231, 29, 99, 196, 162, 130, 237, 224, 201, 19, 0, - 146, 100, 195, 144, 105, 168, 250, 132, 219, 46, 17, 169, 119, 112, 126, 130, 32, 124, 22, 176, 3, 182, 72, 215, 221, 2, 63, 125, 11, 52, 130, 73, - 20, 137, 163, 117, 144, 72, 0, 180, 128, 79, 48, 10, 48, 37, 128, 128, 214, 182, 96, 177, 160, 193, 41, 154, 119, 100, 23, 58, 69, 109, 246, 130, - 52, 152, 66, 202, 5, 206, 113, 110, 131, 105, 112, 113, 39, 243, 127, 113, 32, 122, 38, 198, 163, 86, 98, 202, 222, 96, 136, 45, 116, 145, 204, 17, - 249, 239, 82, 172, 176, 229, 0, 226, 92, 210, 221, 226, 73, 250, 67, 249, 8, 76, 198, 32, 7, 48, 128, 226, 1, 116, 130, 64, 63, 79, 122, 119, - 10, 233, 169, 214, 178, 92, 93, 160, 113, 50, 32, 20, 15, 146, 13, 164, 172, 108, 185, 215, 24, 105, 46, 36, 110, 39, 82, 15, 179, 244, 76, 250, - 106, 235, 26, 198, 176, 0, 26, 73, 18, 192, 210, 100, 18, 178, 234, 57, 5, 156, 25, 220, 4, 2, 15, 100, 70, 93, 107, 95, 180, 54, 4, 2, - 119, 105, 18, 151, 0, 59, 20, 12, 96, 234, 15, 86, 192, 102, 75, 73, 177, 214, 0, 9, 6, 36, 17, 161, 70, 25, 79, 0, 177, 142, 44, 105, - 35, 221, 0, 207, 246, 16, 29, 83, 225, 197, 190, 226, 4, 144, 15, 138, 113, 95, 232, 193, 32, 239, 116, 8, 215, 66, 227, 255, 0, 65, 17, 24, - 214, 169, 224, 141, 106, 181, 196, 223, 96, 115, 206, 214, 52, 233, 180, 65, 58, 40, 56, 201, 116, 75, 88, 232, 104, 35, 196, 40, 184, 2, 73, 0, - 207, 0, 142, 192, 166, 222, 26, 90, 7, 184, 130, 125, 163, 83, 48, 157, 194, 6, 203, 196, 64, 217, 158, 231, 180, 184, 147, 182, 79, 204, 71, 252, - 34, 152, 39, 113, 116, 9, 45, 0, 70, 168, 15, 121, 117, 173, 96, 19, 169, 222, 59, 141, 168, 178, 224, 205, 205, 33, 165, 132, 144, 32, 13, 63, - 113, 34, 1, 10, 32, 29, 25, 215, 94, 67, 152, 8, 0, 60, 2, 72, 39, 79, 248, 52, 76, 119, 53, 142, 112, 180, 23, 184, 195, 93, 168, 218, - 10, 118, 135, 216, 100, 52, 187, 112, 14, 124, 123, 116, 86, 46, 104, 174, 176, 67, 75, 9, 26, 129, 172, 146, 19, 40, 238, 24, 8, 212, 132, 227, - 99, 216, 28, 9, 0, 152, 2, 98, 0, 67, 176, 181, 176, 88, 72, 14, 32, 18, 6, 129, 168, 53, 222, 69, 48, 230, 151, 30, 53, 146, 2, 149, - 147, 146, 214, 128, 67, 75, 70, 173, 58, 104, 137, 32, 128, 124, 19, 93, 216, 100, 254, 133, 224, 176, 18, 12, 25, 26, 204, 132, 122, 65, 115, 253, - 225, 165, 164, 64, 4, 240, 82, 102, 51, 128, 110, 247, 146, 64, 141, 52, 80, 160, 57, 249, 166, 145, 13, 216, 9, 51, 51, 167, 253, 90, 17, 7, - 136, 104, 131, 181, 55, 201, 1, 163, 88, 28, 64, 16, 2, 205, 203, 178, 214, 88, 26, 92, 93, 2, 65, 32, 119, 254, 167, 238, 45, 18, 246, 60, - 57, 192, 17, 31, 156, 68, 72, 10, 142, 70, 64, 99, 218, 233, 48, 73, 46, 39, 81, 9, 242, 150, 132, 5, 4, 84, 178, 199, 22, 216, 248, 13, - 48, 64, 214, 74, 180, 251, 3, 76, 16, 9, 26, 196, 14, 20, 131, 5, 164, 61, 154, 14, 68, 147, 58, 133, 95, 33, 143, 104, 47, 123, 154, 3, - 72, 32, 141, 74, 101, 155, 176, 18, 42, 246, 102, 73, 36, 152, 2, 72, 32, 152, 142, 85, 55, 16, 203, 119, 176, 76, 75, 8, 110, 176, 33, 56, - 186, 183, 48, 150, 18, 116, 18, 53, 135, 18, 21, 112, 214, 92, 90, 90, 226, 208, 72, 222, 238, 239, 120, 246, 87, 179, 250, 233, 18, 122, 149, 212, - 41, 185, 73, 59, 200, 146, 79, 102, 25, 1, 159, 249, 61, 234, 205, 143, 12, 1, 198, 3, 136, 16, 36, 141, 74, 206, 165, 151, 87, 112, 38, 192, - 226, 233, 0, 16, 73, 100, 149, 115, 33, 193, 196, 22, 153, 13, 120, 14, 38, 52, 0, 126, 145, 17, 34, 1, 8, 32, 221, 144, 195, 214, 15, 46, - 13, 105, 50, 76, 137, 0, 2, 211, 233, 38, 123, 170, 21, 57, 219, 64, 34, 102, 116, 58, 127, 228, 16, 169, 99, 42, 173, 214, 13, 1, 144, 15, - 114, 215, 31, 160, 244, 254, 136, 182, 201, 180, 192, 16, 24, 1, 137, 104, 254, 113, 0, 77, 168, 121, 55, 217, 99, 64, 4, 144, 67, 132, 196, 16, - 76, 132, 246, 189, 205, 171, 115, 72, 36, 141, 8, 36, 198, 137, 201, 164, 75, 220, 11, 93, 17, 3, 77, 8, 84, 44, 123, 11, 97, 164, 134, 183, - 70, 131, 204, 125, 15, 237, 169, 165, 49, 90, 32, 68, 238, 203, 237, 79, 240, 28, 109, 224, 243, 251, 233, 33, 237, 30, 39, 195, 129, 207, 249, 137, - 40, 248, 252, 74, 159, 255, 215, 193, 124, 146, 246, 159, 112, 128, 90, 8, 157, 66, 66, 78, 57, 113, 130, 210, 11, 73, 110, 186, 53, 84, 125, 206, - 125, 164, 0, 118, 201, 128, 32, 19, 1, 91, 12, 2, 55, 232, 95, 7, 99, 76, 1, 5, 59, 139, 86, 97, 43, 38, 146, 61, 231, 97, 45, 0, - 144, 34, 12, 232, 7, 231, 189, 65, 135, 244, 164, 56, 141, 142, 105, 44, 143, 162, 64, 255, 0, 200, 39, 176, 144, 231, 0, 9, 112, 2, 96, 72, - 2, 80, 177, 220, 75, 220, 70, 154, 0, 226, 70, 154, 255, 0, 231, 164, 73, 232, 162, 118, 243, 92, 188, 62, 199, 29, 192, 237, 33, 192, 29, 72, - 218, 139, 96, 115, 37, 196, 2, 118, 131, 32, 105, 168, 255, 0, 190, 33, 213, 177, 238, 48, 215, 23, 60, 134, 147, 164, 207, 253, 243, 210, 86, 89, - 234, 53, 199, 116, 22, 16, 3, 230, 28, 90, 103, 103, 254, 10, 154, 101, 86, 86, 153, 81, 37, 172, 192, 219, 28, 231, 2, 101, 204, 60, 2, 64, - 45, 253, 196, 39, 209, 111, 217, 140, 3, 181, 209, 168, 17, 184, 1, 191, 255, 0, 51, 91, 56, 180, 177, 150, 151, 48, 2, 194, 29, 44, 34, 92, - 208, 228, 23, 72, 104, 166, 167, 0, 193, 37, 146, 55, 18, 201, 223, 255, 0, 152, 38, 25, 155, 217, 103, 17, 234, 231, 209, 91, 153, 13, 181, 224, - 60, 195, 128, 39, 201, 93, 123, 5, 155, 94, 225, 179, 108, 29, 72, 110, 224, 20, 93, 138, 220, 130, 214, 59, 70, 54, 28, 6, 163, 72, 255, 0, - 167, 253, 132, 108, 118, 178, 224, 231, 135, 1, 184, 131, 176, 128, 72, 3, 217, 177, 159, 184, 143, 30, 213, 123, 47, 227, 212, 85, 236, 196, 159, 74, - 201, 45, 146, 224, 9, 119, 7, 105, 42, 112, 241, 117, 141, 18, 9, 120, 135, 68, 183, 148, 249, 53, 25, 47, 104, 250, 64, 75, 102, 117, 111, 238, - 127, 93, 43, 42, 1, 149, 189, 132, 151, 222, 39, 194, 8, 254, 109, 30, 33, 74, 226, 21, 167, 102, 161, 59, 238, 125, 53, 136, 121, 144, 201, 152, - 37, 191, 230, 125, 53, 11, 9, 105, 218, 194, 28, 246, 192, 36, 198, 133, 197, 3, 29, 182, 158, 160, 26, 219, 11, 136, 5, 238, 34, 126, 131, 6, - 251, 25, 255, 0, 109, 49, 25, 175, 123, 9, 5, 209, 109, 164, 151, 6, 182, 90, 216, 255, 0, 2, 143, 30, 160, 39, 220, 215, 91, 86, 140, 113, - 208, 13, 199, 158, 75, 167, 255, 0, 38, 161, 110, 232, 220, 231, 18, 59, 145, 216, 16, 133, 144, 251, 107, 107, 75, 200, 144, 76, 182, 117, 58, 126, - 126, 197, 15, 90, 215, 176, 130, 210, 88, 90, 101, 218, 147, 181, 167, 249, 212, 227, 32, 65, 171, 92, 102, 53, 108, 98, 223, 110, 194, 208, 73, 100, - 128, 73, 38, 66, 188, 203, 157, 32, 188, 238, 100, 0, 9, 241, 149, 71, 28, 188, 227, 57, 206, 5, 160, 59, 87, 145, 50, 79, 231, 168, 182, 246, - 188, 18, 73, 0, 13, 167, 194, 1, 72, 16, 70, 165, 34, 136, 214, 157, 63, 84, 180, 13, 198, 100, 152, 17, 161, 41, 235, 176, 250, 128, 183, 82, - 4, 187, 180, 72, 84, 137, 46, 105, 34, 11, 24, 0, 46, 157, 78, 170, 211, 3, 24, 192, 73, 22, 27, 32, 136, 157, 2, 105, 29, 150, 152, 237, - 77, 129, 99, 230, 73, 32, 115, 32, 232, 10, 8, 14, 245, 189, 71, 52, 188, 114, 73, 50, 98, 82, 54, 8, 36, 232, 32, 153, 61, 160, 167, 165, - 246, 16, 0, 5, 238, 38, 97, 160, 157, 9, 77, 50, 54, 176, 222, 182, 27, 172, 201, 173, 238, 45, 4, 134, 64, 247, 159, 162, 65, 66, 44, 199, - 107, 93, 109, 176, 88, 15, 183, 111, 130, 122, 169, 125, 236, 115, 189, 50, 26, 211, 169, 32, 180, 72, 40, 102, 176, 24, 230, 237, 32, 25, 212, 234, - 136, 38, 182, 64, 5, 141, 89, 85, 181, 146, 208, 65, 120, 224, 126, 104, 148, 206, 112, 113, 45, 46, 38, 90, 72, 16, 35, 106, 77, 198, 12, 177, - 174, 36, 200, 108, 53, 135, 232, 159, 252, 154, 157, 132, 0, 78, 211, 34, 34, 52, 26, 161, 101, 112, 26, 181, 5, 100, 146, 72, 14, 96, 0, 56, - 136, 104, 104, 111, 191, 216, 134, 202, 233, 245, 5, 227, 217, 182, 118, 0, 39, 113, 39, 233, 163, 154, 222, 195, 46, 50, 117, 144, 116, 47, 132, 131, - 5, 181, 135, 17, 15, 227, 194, 0, 69, 44, 216, 90, 28, 44, 36, 22, 141, 64, 39, 129, 9, 158, 92, 92, 94, 208, 28, 199, 184, 200, 19, 237, - 32, 49, 9, 140, 2, 90, 53, 13, 246, 184, 187, 145, 30, 255, 0, 127, 245, 211, 190, 209, 45, 99, 90, 119, 14, 195, 243, 72, 9, 43, 85, 172, - 27, 33, 142, 31, 162, 211, 115, 200, 7, 83, 255, 0, 144, 79, 104, 170, 170, 152, 43, 118, 242, 194, 26, 1, 7, 112, 47, 59, 253, 234, 12, 37, - 224, 60, 59, 115, 4, 184, 136, 218, 55, 2, 167, 130, 89, 101, 142, 54, 184, 9, 36, 8, 212, 56, 183, 216, 144, 7, 117, 95, 84, 251, 131, 171, - 6, 33, 211, 4, 157, 52, 8, 91, 3, 222, 76, 204, 145, 182, 12, 237, 5, 78, 218, 206, 232, 105, 35, 72, 146, 116, 143, 252, 205, 66, 166, 218, - 208, 77, 131, 104, 38, 12, 232, 118, 39, 141, 169, 35, 102, 127, 103, 183, 207, 159, 62, 18, 74, 44, 241, 28, 199, 37, 36, 222, 19, 221, 84, 255, - 0, 255, 208, 230, 108, 170, 11, 120, 172, 23, 106, 15, 184, 9, 31, 234, 197, 116, 177, 238, 113, 27, 75, 134, 230, 150, 64, 220, 53, 86, 105, 175, - 244, 109, 46, 104, 115, 162, 100, 130, 55, 17, 251, 255, 0, 215, 83, 113, 121, 45, 96, 116, 17, 237, 4, 15, 104, 68, 157, 244, 100, 177, 169, 1, - 162, 230, 22, 9, 32, 193, 112, 36, 73, 33, 219, 138, 133, 143, 115, 94, 214, 67, 154, 198, 184, 8, 3, 223, 175, 239, 255, 0, 93, 105, 60, 87, - 91, 26, 29, 16, 4, 134, 145, 36, 149, 86, 234, 131, 242, 90, 242, 233, 46, 112, 59, 8, 128, 221, 61, 159, 65, 14, 37, 9, 104, 124, 144, 134, - 61, 180, 88, 11, 161, 155, 161, 132, 13, 67, 156, 81, 169, 198, 125, 101, 182, 50, 92, 68, 110, 19, 186, 74, 179, 115, 88, 43, 58, 52, 0, 55, - 16, 6, 225, 253, 116, 213, 217, 83, 26, 241, 4, 56, 16, 8, 32, 182, 72, 31, 203, 253, 244, 210, 79, 69, 164, 158, 201, 235, 110, 227, 36, 144, - 65, 208, 131, 4, 192, 255, 0, 191, 160, 150, 215, 234, 215, 99, 11, 91, 36, 180, 48, 234, 88, 71, 248, 36, 226, 224, 247, 58, 70, 194, 210, 4, - 29, 26, 52, 253, 255, 0, 207, 73, 140, 99, 31, 36, 201, 32, 144, 8, 32, 57, 52, 142, 171, 72, 210, 195, 16, 203, 169, 176, 234, 226, 203, 65, - 0, 146, 11, 27, 63, 240, 108, 250, 123, 19, 83, 72, 101, 150, 50, 182, 150, 25, 150, 16, 75, 189, 228, 127, 59, 106, 53, 86, 60, 90, 240, 230, - 130, 218, 72, 45, 60, 106, 225, 189, 59, 30, 93, 107, 136, 36, 23, 9, 118, 147, 202, 33, 64, 111, 97, 35, 107, 47, 168, 27, 32, 60, 52, 2, - 38, 27, 160, 80, 180, 54, 231, 215, 91, 107, 47, 96, 0, 123, 116, 101, 109, 104, 250, 119, 222, 142, 97, 206, 5, 195, 100, 1, 200, 7, 128, 147, - 33, 131, 96, 209, 130, 11, 164, 159, 119, 254, 112, 151, 9, 85, 26, 104, 154, 177, 217, 97, 20, 75, 28, 73, 38, 242, 97, 207, 46, 247, 250, 20, - 127, 162, 216, 178, 114, 110, 204, 101, 174, 23, 25, 36, 145, 63, 235, 244, 255, 0, 182, 182, 242, 63, 72, 26, 205, 194, 92, 96, 64, 254, 194, 108, - 172, 119, 185, 164, 180, 7, 91, 35, 158, 237, 141, 155, 47, 72, 86, 233, 0, 56, 57, 14, 107, 198, 162, 94, 116, 36, 73, 6, 63, 242, 31, 200, - 80, 169, 143, 115, 67, 12, 6, 0, 73, 35, 233, 58, 125, 172, 98, 209, 183, 167, 92, 250, 198, 242, 25, 3, 134, 146, 240, 209, 251, 159, 235, 250, - 91, 109, 76, 240, 40, 164, 53, 181, 150, 203, 64, 46, 116, 113, 63, 249, 159, 253, 186, 136, 39, 183, 85, 11, 241, 11, 31, 79, 209, 107, 95, 32, - 128, 32, 18, 98, 7, 230, 42, 214, 250, 45, 14, 134, 147, 99, 76, 0, 4, 54, 8, 255, 0, 166, 142, 252, 138, 197, 77, 34, 3, 65, 144, 211, - 207, 42, 15, 176, 185, 129, 204, 16, 100, 144, 92, 76, 153, 252, 244, 226, 64, 26, 82, 243, 32, 0, 170, 102, 202, 222, 224, 30, 1, 213, 162, 9, - 32, 136, 7, 243, 255, 0, 168, 142, 231, 183, 107, 75, 162, 35, 89, 252, 233, 10, 24, 183, 205, 70, 174, 103, 218, 28, 52, 36, 57, 77, 152, 239, - 36, 203, 92, 214, 68, 105, 200, 148, 225, 45, 23, 196, 130, 44, 176, 174, 205, 210, 221, 38, 64, 50, 64, 157, 17, 25, 97, 44, 150, 23, 52, 18, - 68, 52, 163, 138, 106, 4, 130, 216, 2, 64, 39, 151, 17, 239, 223, 255, 0, 157, 168, 87, 91, 218, 26, 11, 136, 97, 4, 238, 35, 220, 1, 77, - 145, 233, 75, 100, 110, 244, 108, 83, 146, 107, 169, 181, 53, 206, 135, 73, 50, 73, 159, 229, 167, 125, 187, 160, 7, 29, 160, 151, 16, 53, 151, 16, - 132, 41, 13, 118, 230, 159, 100, 65, 7, 67, 202, 159, 166, 1, 26, 134, 129, 36, 118, 41, 2, 128, 17, 189, 238, 54, 7, 2, 232, 2, 100, 127, - 175, 230, 43, 85, 92, 198, 73, 189, 134, 214, 184, 104, 222, 32, 254, 250, 168, 227, 104, 46, 121, 130, 0, 5, 161, 163, 220, 73, 82, 37, 167, 83, - 16, 0, 158, 250, 207, 231, 160, 60, 147, 75, 60, 184, 191, 120, 26, 135, 67, 64, 37, 195, 105, 63, 190, 133, 105, 115, 73, 123, 223, 0, 15, 115, - 70, 132, 126, 227, 216, 166, 111, 34, 224, 209, 196, 56, 152, 227, 116, 170, 55, 100, 18, 221, 0, 15, 115, 73, 158, 224, 3, 189, 21, 87, 86, 211, - 90, 67, 0, 4, 57, 206, 209, 156, 180, 234, 63, 61, 76, 48, 52, 150, 135, 186, 95, 220, 29, 208, 26, 63, 239, 235, 40, 229, 89, 250, 38, 76, - 150, 137, 48, 73, 37, 197, 92, 104, 32, 138, 94, 64, 48, 9, 215, 80, 195, 239, 73, 86, 204, 208, 43, 177, 174, 97, 33, 155, 72, 121, 253, 232, - 252, 245, 28, 122, 139, 94, 118, 2, 9, 33, 208, 116, 32, 74, 182, 202, 154, 96, 218, 56, 18, 4, 146, 9, 255, 0, 6, 166, 43, 36, 18, 226, - 4, 158, 52, 213, 43, 58, 40, 134, 118, 61, 133, 236, 26, 146, 224, 92, 12, 64, 246, 148, 11, 108, 112, 4, 22, 203, 78, 164, 147, 206, 213, 59, - 3, 8, 59, 73, 115, 128, 60, 1, 33, 160, 42, 118, 238, 185, 140, 97, 221, 14, 46, 5, 227, 187, 127, 215, 217, 255, 0, 10, 136, 233, 74, 29, - 23, 245, 143, 143, 111, 17, 254, 98, 72, 31, 100, 202, 240, 111, 209, 158, 15, 31, 250, 85, 36, 235, 240, 79, 209, 255, 209, 14, 231, 109, 128, 99, - 104, 146, 70, 156, 40, 22, 23, 105, 33, 204, 144, 72, 32, 234, 66, 85, 177, 166, 237, 133, 160, 62, 9, 116, 207, 184, 56, 123, 63, 204, 81, 21, - 181, 172, 151, 18, 224, 194, 64, 32, 199, 250, 236, 77, 43, 169, 173, 118, 62, 247, 180, 146, 90, 1, 13, 26, 204, 193, 255, 0, 191, 163, 83, 94, - 215, 134, 129, 2, 6, 167, 94, 251, 17, 73, 107, 8, 121, 58, 129, 220, 75, 73, 250, 126, 196, 159, 185, 166, 67, 136, 36, 73, 33, 176, 72, 35, - 253, 26, 52, 20, 194, 194, 69, 141, 107, 79, 210, 128, 39, 88, 130, 132, 45, 110, 226, 194, 100, 2, 75, 65, 208, 237, 37, 20, 91, 161, 27, 160, - 128, 0, 113, 141, 9, 72, 209, 81, 50, 68, 152, 128, 243, 226, 63, 125, 45, 45, 66, 186, 45, 77, 77, 115, 0, 180, 134, 144, 9, 32, 15, 104, - 255, 0, 95, 160, 157, 197, 173, 120, 245, 53, 121, 38, 1, 211, 104, 33, 31, 210, 0, 105, 201, 2, 93, 2, 92, 214, 255, 0, 57, 189, 12, 61, - 140, 119, 182, 9, 39, 77, 64, 36, 207, 238, 37, 162, 180, 64, 76, 155, 32, 123, 172, 32, 201, 150, 237, 13, 31, 247, 244, 103, 95, 72, 96, 0, - 130, 73, 58, 9, 29, 191, 49, 12, 59, 113, 33, 194, 94, 1, 37, 196, 109, 100, 202, 45, 85, 57, 172, 253, 36, 16, 126, 136, 19, 34, 63, 215, - 255, 0, 69, 33, 252, 80, 66, 82, 231, 141, 164, 54, 1, 16, 75, 187, 4, 55, 216, 200, 115, 65, 46, 131, 166, 217, 14, 33, 87, 200, 203, 177, - 149, 17, 180, 181, 206, 2, 72, 19, 182, 74, 33, 12, 13, 15, 121, 46, 7, 80, 28, 64, 119, 184, 123, 55, 254, 226, 67, 201, 64, 141, 147, 49, - 224, 0, 226, 4, 130, 32, 196, 65, 132, 214, 62, 202, 216, 94, 221, 75, 96, 193, 250, 68, 19, 249, 136, 32, 144, 69, 77, 151, 49, 186, 135, 72, - 112, 246, 253, 58, 190, 159, 177, 20, 220, 28, 249, 13, 32, 73, 0, 153, 152, 253, 244, 60, 149, 244, 92, 139, 13, 65, 229, 196, 57, 218, 130, 4, - 6, 130, 86, 86, 99, 65, 121, 244, 128, 117, 135, 233, 14, 1, 36, 255, 0, 163, 252, 255, 0, 252, 244, 181, 94, 97, 132, 17, 160, 153, 0, 153, - 1, 83, 24, 102, 203, 139, 165, 205, 97, 37, 198, 0, 220, 76, 108, 103, 233, 18, 22, 160, 14, 182, 226, 62, 156, 141, 231, 212, 26, 206, 177, 0, - 43, 53, 180, 29, 190, 177, 134, 0, 4, 76, 19, 11, 101, 216, 237, 178, 189, 150, 214, 35, 66, 68, 146, 247, 66, 168, 112, 171, 245, 90, 214, 128, - 42, 113, 59, 3, 129, 145, 175, 189, 59, 94, 203, 128, 45, 182, 10, 246, 128, 198, 236, 38, 12, 0, 1, 26, 41, 157, 173, 146, 73, 108, 1, 51, - 241, 80, 177, 173, 13, 1, 132, 145, 196, 14, 36, 168, 92, 247, 53, 132, 154, 203, 201, 108, 157, 56, 211, 243, 255, 0, 113, 36, 173, 99, 154, 12, - 130, 4, 1, 169, 158, 232, 161, 240, 214, 151, 17, 3, 152, 144, 32, 133, 82, 171, 106, 176, 134, 129, 172, 65, 6, 103, 119, 238, 43, 54, 23, 154, - 139, 126, 137, 35, 72, 18, 225, 255, 0, 156, 34, 79, 64, 21, 122, 80, 68, 199, 151, 22, 180, 144, 90, 226, 72, 128, 71, 62, 253, 143, 253, 244, - 107, 12, 180, 146, 65, 220, 96, 200, 227, 119, 243, 104, 24, 228, 176, 18, 227, 36, 9, 0, 158, 10, 106, 30, 95, 86, 225, 48, 224, 116, 143, 20, - 146, 1, 74, 30, 24, 28, 9, 45, 123, 134, 132, 112, 54, 148, 11, 136, 96, 46, 47, 45, 220, 64, 32, 233, 45, 114, 141, 214, 7, 22, 131, 32, - 177, 192, 152, 144, 227, 170, 136, 32, 186, 194, 70, 230, 52, 237, 27, 181, 147, 236, 73, 41, 95, 104, 172, 53, 206, 27, 134, 145, 2, 125, 165, 84, - 200, 109, 37, 205, 115, 26, 227, 14, 220, 242, 36, 157, 142, 62, 244, 178, 158, 24, 230, 152, 39, 80, 94, 32, 237, 13, 83, 166, 199, 189, 251, 64, - 48, 32, 176, 187, 218, 118, 127, 223, 210, 36, 32, 145, 179, 80, 81, 144, 126, 131, 67, 152, 92, 75, 29, 227, 42, 243, 30, 88, 119, 90, 216, 176, - 119, 144, 73, 130, 140, 214, 6, 144, 246, 31, 99, 65, 153, 208, 50, 63, 115, 250, 234, 150, 125, 128, 29, 160, 195, 196, 18, 64, 247, 56, 74, 72, - 216, 22, 219, 9, 187, 107, 156, 64, 173, 205, 7, 83, 203, 165, 24, 216, 234, 216, 64, 104, 150, 137, 104, 34, 92, 75, 150, 54, 62, 65, 23, 238, - 34, 90, 9, 45, 97, 226, 74, 211, 245, 133, 176, 33, 178, 209, 3, 88, 38, 80, 189, 84, 14, 161, 152, 219, 93, 100, 144, 26, 26, 1, 49, 161, - 116, 41, 7, 176, 193, 36, 7, 184, 2, 214, 142, 26, 10, 205, 184, 88, 251, 246, 200, 115, 28, 0, 0, 123, 126, 136, 87, 105, 173, 149, 181, 161, - 205, 220, 246, 180, 9, 4, 192, 115, 127, 49, 27, 29, 151, 95, 130, 111, 78, 191, 17, 196, 246, 73, 55, 172, 60, 43, 227, 199, 243, 255, 0, 113, - 36, 229, 95, 155, 255, 210, 30, 77, 128, 23, 88, 25, 47, 123, 182, 183, 94, 192, 127, 175, 254, 122, 85, 45, 181, 226, 189, 132, 134, 203, 136, 150, - 235, 181, 211, 239, 101, 170, 117, 228, 12, 135, 188, 200, 99, 65, 1, 160, 206, 178, 54, 51, 254, 173, 64, 48, 91, 93, 212, 176, 203, 203, 11, 152, - 63, 56, 186, 179, 255, 0, 124, 72, 142, 148, 200, 106, 235, 197, 158, 83, 139, 118, 138, 201, 4, 0, 94, 79, 96, 2, 133, 206, 177, 128, 185, 174, - 7, 120, 135, 191, 151, 6, 159, 204, 103, 245, 20, 236, 104, 32, 92, 226, 92, 45, 164, 106, 120, 27, 189, 63, 87, 252, 205, 233, 155, 233, 95, 59, - 91, 12, 4, 180, 198, 157, 191, 70, 255, 0, 237, 255, 0, 231, 212, 8, 42, 62, 76, 88, 43, 138, 195, 6, 242, 36, 131, 58, 110, 39, 249, 127, - 191, 244, 17, 181, 105, 113, 224, 6, 137, 0, 76, 144, 147, 49, 90, 27, 91, 3, 101, 149, 22, 145, 62, 226, 54, 187, 213, 223, 255, 0, 131, 165, - 120, 173, 187, 131, 129, 107, 220, 96, 22, 152, 130, 119, 164, 138, 61, 209, 27, 139, 137, 108, 136, 121, 17, 39, 144, 7, 189, 16, 134, 130, 8, 0, - 106, 0, 4, 204, 151, 127, 174, 244, 48, 65, 176, 52, 56, 23, 52, 16, 26, 6, 165, 167, 254, 15, 254, 9, 53, 207, 107, 105, 47, 50, 194, 208, - 96, 31, 164, 36, 254, 122, 74, 30, 11, 236, 120, 59, 72, 47, 97, 26, 144, 70, 240, 79, 243, 143, 252, 196, 71, 91, 97, 168, 19, 4, 196, 17, - 58, 238, 63, 212, 85, 104, 112, 13, 6, 147, 53, 180, 150, 238, 50, 65, 124, 254, 127, 248, 95, 210, 171, 15, 113, 30, 224, 73, 2, 59, 237, 13, - 41, 126, 40, 65, 117, 193, 219, 152, 90, 64, 219, 184, 13, 97, 173, 7, 233, 255, 0, 97, 64, 11, 134, 56, 177, 128, 144, 76, 60, 187, 134, 207, - 253, 90, 86, 188, 48, 250, 240, 95, 4, 0, 0, 211, 83, 249, 232, 175, 219, 113, 107, 193, 38, 150, 180, 151, 128, 118, 141, 199, 252, 23, 252, 106, - 23, 162, 5, 52, 158, 95, 75, 129, 99, 72, 115, 227, 223, 244, 64, 32, 253, 63, 166, 174, 214, 90, 230, 56, 189, 199, 112, 58, 65, 145, 19, 249, - 149, 170, 249, 24, 180, 146, 28, 231, 6, 52, 237, 135, 18, 79, 31, 184, 142, 109, 12, 14, 251, 59, 67, 152, 32, 18, 53, 115, 90, 223, 102, 198, - 127, 194, 164, 19, 90, 216, 76, 54, 91, 104, 47, 48, 90, 38, 36, 251, 244, 103, 191, 253, 127, 210, 43, 82, 26, 73, 7, 104, 16, 36, 232, 217, - 11, 44, 221, 103, 173, 91, 44, 150, 190, 55, 60, 129, 27, 135, 238, 127, 33, 59, 173, 177, 142, 58, 135, 49, 204, 131, 58, 232, 125, 255, 0, 248, - 18, 55, 221, 46, 137, 123, 29, 220, 179, 72, 4, 146, 103, 249, 108, 81, 104, 7, 151, 18, 64, 36, 19, 174, 144, 170, 87, 123, 61, 61, 204, 116, - 65, 0, 135, 79, 177, 59, 44, 178, 203, 11, 73, 39, 118, 187, 78, 128, 1, 255, 0, 9, 249, 233, 42, 251, 54, 100, 52, 6, 130, 71, 4, 153, - 220, 68, 148, 59, 24, 231, 130, 208, 71, 188, 128, 65, 242, 68, 44, 115, 107, 4, 72, 121, 152, 111, 114, 85, 59, 198, 195, 181, 206, 47, 47, 26, - 71, 2, 82, 70, 173, 128, 202, 67, 0, 172, 1, 51, 175, 128, 85, 173, 147, 118, 214, 23, 60, 184, 112, 4, 6, 15, 250, 239, 211, 64, 171, 55, - 112, 107, 94, 208, 208, 12, 7, 153, 236, 127, 239, 138, 235, 111, 123, 139, 140, 251, 100, 130, 68, 73, 33, 42, 72, 29, 216, 178, 138, 216, 73, 113, - 39, 64, 12, 159, 21, 49, 180, 72, 36, 67, 76, 207, 0, 181, 68, 216, 199, 51, 124, 18, 216, 6, 59, 144, 16, 234, 217, 191, 123, 137, 118, 224, - 73, 214, 65, 3, 254, 161, 21, 196, 162, 204, 119, 167, 100, 237, 3, 108, 75, 134, 160, 3, 251, 255, 0, 190, 163, 100, 186, 144, 11, 136, 6, 9, - 113, 28, 130, 17, 51, 24, 44, 112, 216, 8, 36, 18, 98, 118, 182, 16, 65, 185, 206, 123, 72, 130, 98, 64, 34, 100, 165, 104, 36, 233, 187, 47, - 73, 165, 130, 203, 9, 37, 130, 35, 145, 181, 199, 247, 255, 0, 61, 84, 47, 177, 185, 102, 202, 1, 216, 0, 36, 59, 77, 173, 35, 254, 130, 45, - 198, 235, 15, 162, 225, 169, 247, 0, 12, 237, 115, 85, 150, 0, 30, 214, 185, 187, 164, 67, 223, 196, 130, 119, 216, 196, 52, 181, 1, 230, 194, 187, - 118, 129, 168, 59, 128, 0, 19, 45, 16, 63, 73, 250, 53, 81, 236, 30, 191, 168, 243, 45, 213, 196, 232, 68, 78, 202, 209, 237, 170, 203, 111, 117, - 154, 114, 32, 78, 128, 52, 34, 156, 95, 181, 176, 145, 12, 112, 32, 18, 12, 135, 8, 222, 145, 42, 150, 238, 67, 220, 208, 226, 208, 12, 24, 35, - 137, 225, 94, 99, 152, 28, 3, 161, 161, 224, 22, 158, 11, 101, 25, 152, 180, 75, 171, 3, 73, 213, 228, 76, 184, 127, 212, 39, 126, 46, 215, 250, - 149, 52, 15, 76, 1, 0, 242, 228, 47, 170, 209, 224, 136, 217, 75, 172, 155, 73, 126, 133, 160, 54, 101, 191, 212, 78, 111, 168, 49, 204, 172, 56, - 185, 206, 4, 201, 221, 167, 208, 81, 24, 110, 117, 108, 115, 36, 218, 243, 60, 129, 45, 1, 30, 172, 50, 219, 67, 11, 200, 0, 3, 0, 237, 157, - 223, 206, 126, 145, 17, 186, 65, 54, 143, 125, 159, 189, 95, 19, 192, 225, 37, 107, 236, 163, 207, 152, 228, 164, 141, 5, 215, 228, 255, 0, 255, 211, - 231, 233, 184, 86, 240, 198, 141, 198, 53, 14, 225, 210, 21, 234, 91, 234, 215, 101, 212, 186, 110, 103, 233, 38, 0, 123, 156, 209, 250, 122, 191, 182, - 207, 252, 18, 181, 72, 215, 142, 43, 151, 189, 196, 192, 145, 160, 246, 159, 163, 244, 212, 169, 97, 174, 199, 28, 98, 92, 9, 16, 26, 119, 196, 15, - 119, 170, 137, 39, 101, 254, 84, 158, 172, 214, 93, 65, 169, 199, 104, 107, 72, 97, 60, 0, 239, 252, 225, 27, 30, 224, 219, 43, 54, 0, 230, 6, - 189, 214, 13, 97, 204, 221, 232, 178, 223, 236, 122, 95, 246, 210, 200, 99, 9, 115, 220, 28, 221, 9, 32, 72, 131, 252, 148, 122, 205, 229, 174, 4, - 150, 190, 37, 174, 32, 145, 19, 254, 15, 249, 9, 81, 235, 106, 36, 187, 215, 93, 91, 117, 169, 193, 197, 219, 92, 35, 190, 210, 179, 238, 202, 139, - 108, 151, 13, 119, 22, 30, 61, 205, 30, 197, 1, 101, 142, 198, 245, 154, 221, 185, 21, 146, 61, 56, 49, 109, 111, 27, 45, 126, 51, 63, 240, 79, - 248, 37, 67, 33, 129, 164, 123, 134, 242, 117, 131, 184, 111, 63, 75, 252, 199, 255, 0, 56, 133, 105, 162, 73, 208, 16, 221, 170, 211, 99, 218, 219, - 0, 32, 130, 28, 237, 4, 238, 69, 99, 139, 156, 227, 18, 193, 45, 12, 250, 77, 48, 127, 71, 189, 83, 164, 216, 221, 195, 87, 6, 184, 201, 104, - 146, 226, 141, 190, 247, 49, 190, 155, 92, 210, 28, 56, 152, 32, 253, 55, 161, 91, 45, 54, 221, 165, 149, 52, 7, 182, 176, 203, 75, 64, 32, 128, - 214, 182, 20, 30, 231, 91, 185, 172, 32, 16, 68, 16, 8, 111, 185, 71, 107, 171, 119, 185, 229, 206, 113, 4, 192, 46, 112, 62, 207, 245, 173, 32, - 237, 208, 72, 120, 1, 199, 104, 35, 79, 207, 255, 0, 61, 137, 42, 251, 150, 47, 22, 87, 179, 107, 137, 116, 206, 226, 97, 162, 10, 89, 20, 190, - 170, 220, 90, 9, 220, 62, 153, 118, 144, 239, 243, 54, 90, 140, 28, 198, 189, 155, 253, 206, 32, 135, 18, 14, 248, 253, 239, 77, 69, 246, 110, 104, - 5, 187, 89, 172, 8, 5, 165, 191, 215, 74, 181, 86, 150, 229, 222, 46, 199, 144, 235, 26, 119, 16, 64, 2, 65, 32, 127, 162, 127, 249, 136, 152, - 249, 229, 187, 89, 115, 1, 107, 166, 28, 209, 183, 233, 59, 244, 183, 191, 114, 39, 167, 140, 1, 220, 230, 185, 160, 79, 59, 95, 31, 154, 207, 229, - 211, 255, 0, 162, 147, 221, 81, 181, 174, 117, 175, 107, 26, 1, 53, 137, 13, 110, 135, 111, 208, 255, 0, 67, 255, 0, 159, 63, 157, 73, 85, 227, - 77, 92, 146, 251, 239, 6, 167, 23, 180, 106, 9, 17, 63, 212, 254, 186, 149, 142, 134, 22, 200, 36, 9, 38, 117, 39, 249, 8, 141, 14, 54, 6, - 201, 0, 72, 37, 191, 205, 148, 74, 43, 198, 14, 18, 65, 178, 70, 178, 3, 38, 127, 51, 222, 129, 223, 68, 117, 106, 227, 216, 12, 155, 0, 115, - 28, 71, 60, 192, 62, 146, 210, 99, 136, 96, 115, 156, 73, 14, 59, 200, 58, 76, 255, 0, 223, 21, 59, 107, 169, 173, 2, 183, 177, 196, 198, 164, - 130, 7, 242, 213, 172, 71, 52, 214, 96, 59, 108, 141, 186, 71, 233, 15, 250, 15, 207, 70, 146, 59, 91, 112, 185, 198, 210, 28, 120, 16, 32, 131, - 175, 242, 211, 58, 186, 201, 152, 5, 196, 109, 34, 70, 129, 202, 54, 72, 18, 226, 237, 218, 182, 26, 1, 254, 181, 174, 255, 0, 212, 138, 1, 228, - 100, 57, 193, 167, 120, 229, 162, 76, 178, 95, 252, 218, 74, 39, 77, 216, 219, 141, 91, 195, 90, 68, 22, 25, 2, 116, 5, 0, 227, 216, 46, 209, - 229, 178, 9, 36, 143, 163, 31, 205, 173, 16, 242, 4, 184, 30, 198, 34, 70, 239, 221, 66, 202, 151, 48, 134, 198, 132, 206, 239, 104, 39, 249, 73, - 90, 224, 69, 83, 93, 148, 150, 84, 221, 167, 113, 115, 139, 137, 29, 154, 79, 250, 189, 18, 90, 217, 17, 16, 64, 17, 19, 16, 161, 115, 222, 218, - 88, 107, 107, 156, 65, 48, 62, 31, 245, 105, 141, 207, 129, 13, 113, 39, 249, 36, 15, 234, 189, 16, 2, 133, 126, 44, 45, 102, 214, 131, 73, 0, - 18, 100, 29, 32, 34, 150, 13, 237, 183, 104, 14, 0, 18, 230, 152, 247, 32, 200, 108, 184, 0, 95, 225, 244, 135, 242, 191, 245, 34, 40, 115, 132, - 105, 45, 35, 136, 36, 15, 235, 187, 247, 17, 0, 93, 20, 146, 24, 238, 99, 203, 131, 92, 116, 150, 130, 6, 175, 42, 44, 102, 215, 11, 29, 238, - 171, 108, 16, 4, 2, 84, 88, 88, 111, 27, 135, 144, 35, 219, 253, 111, 77, 21, 236, 46, 161, 205, 46, 13, 58, 0, 227, 17, 19, 244, 145, 225, - 189, 66, 175, 109, 90, 172, 180, 212, 215, 7, 253, 2, 64, 212, 110, 145, 249, 234, 246, 57, 105, 4, 51, 218, 8, 131, 58, 29, 85, 74, 235, 178, - 72, 123, 152, 24, 210, 55, 16, 101, 206, 119, 252, 34, 44, 184, 185, 219, 68, 14, 229, 163, 221, 167, 245, 191, 125, 52, 196, 245, 65, 29, 211, 3, - 181, 142, 107, 91, 180, 19, 36, 142, 14, 191, 247, 244, 137, 5, 208, 52, 145, 238, 238, 72, 74, 167, 251, 27, 32, 235, 37, 192, 13, 57, 253, 228, - 214, 87, 111, 181, 219, 155, 184, 29, 1, 58, 159, 222, 220, 134, 202, 176, 23, 113, 128, 91, 88, 0, 145, 169, 208, 196, 132, 42, 106, 20, 212, 1, - 118, 242, 52, 105, 61, 165, 77, 128, 134, 254, 140, 201, 51, 39, 187, 71, 246, 83, 6, 214, 239, 166, 97, 209, 161, 6, 29, 3, 249, 40, 146, 21, - 99, 118, 127, 127, 17, 200, 250, 41, 39, 244, 104, 255, 0, 72, 56, 241, 236, 146, 86, 59, 149, 113, 15, 23, 255, 217,]) -export { iccbuf } - - +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +let iccbuf = new Uint8Array([255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 2, 1, 0, 101, 0, 101, 0, 0, 255, 225, 32, 80, 69, 120, 105, 102, 0, 0, 77, 77, + 0, 42, 0, 0, 0, 8, 0, 8, 1, 18, 0, 3, 0, 0, 0, 1, 0, 1, 0, 0, 1, 26, 0, 5, 0, 0, 0, 1, 0, 0, 0, 110, + 1, 27, 0, 5, 0, 0, 0, 1, 0, 0, 0, 118, 1, 40, 0, 3, 0, 0, 0, 1, 0, 2, 0, 0, 1, 49, 0, 2, 0, 0, 0, 29, + 0, 0, 0, 126, 1, 50, 0, 2, 0, 0, 0, 20, 0, 0, 0, 155, 130, 152, 0, 2, 0, 0, 0, 15, 0, 0, 0, 175, 135, 105, 0, 4, + 0, 0, 0, 1, 0, 0, 0, 192, 0, 0, 0, 236, 0, 0, 0, 101, 0, 0, 0, 1, 0, 0, 0, 101, 0, 0, 0, 1, 65, 100, 111, 98, + 101, 32, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 67, 83, 32, 77, 97, 99, 105, 110, 116, 111, 115, 104, 0, 50, 48, 48, 51, 58, 49, 49, + 58, 49, 55, 32, 49, 55, 58, 50, 51, 58, 49, 49, 0, 49, 57, 57, 57, 32, 76, 97, 114, 115, 32, 66, 111, 114, 103, 0, 0, 0, 0, 3, + 160, 1, 0, 3, 0, 0, 0, 1, 255, 255, 0, 0, 160, 2, 0, 4, 0, 0, 0, 1, 0, 0, 1, 19, 160, 3, 0, 4, 0, 0, 0, 1, + 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 6, 1, 3, 0, 3, 0, 0, 0, 1, 0, 6, 0, 0, 1, 26, 0, 5, 0, 0, 0, 1, + 0, 0, 1, 58, 1, 27, 0, 5, 0, 0, 0, 1, 0, 0, 1, 66, 1, 40, 0, 3, 0, 0, 0, 1, 0, 2, 0, 0, 2, 1, 0, 4, + 0, 0, 0, 1, 0, 0, 1, 74, 2, 2, 0, 4, 0, 0, 0, 1, 0, 0, 30, 254, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 1, + 0, 0, 0, 72, 0, 0, 0, 1, 255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 2, 1, 0, 72, 0, 72, 0, 0, 255, 237, 0, 12, + 65, 100, 111, 98, 101, 95, 67, 77, 0, 1, 255, 238, 0, 14, 65, 100, 111, 98, 101, 0, 100, 128, 0, 0, 0, 1, 255, 219, 0, 132, 0, 12, + 8, 8, 8, 9, 8, 12, 9, 9, 12, 17, 11, 10, 11, 17, 21, 15, 12, 12, 15, 21, 24, 19, 19, 21, 19, 19, 24, 17, 12, 12, 12, 12, + 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, + 13, 11, 11, 13, 14, 13, 16, 14, 14, 16, 20, 14, 14, 14, 20, 20, 14, 14, 14, 14, 20, 17, 12, 12, 12, 12, 12, 17, 17, 12, 12, 12, + 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 255, 192, 0, 17, 8, 0, 120, 0, 160, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1, 255, 221, 0, 4, 0, 10, 255, 196, 1, 63, 0, 0, 1, + 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 1, 0, 1, 5, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 0, 1, 4, 1, 3, 2, 4, 2, + 5, 7, 6, 8, 5, 3, 12, 51, 1, 0, 2, 17, 3, 4, 33, 18, 49, 5, 65, 81, 97, 19, 34, 113, 129, 50, 6, 20, 145, 161, 177, 66, + 35, 36, 21, 82, 193, 98, 51, 52, 114, 130, 209, 67, 7, 37, 146, 83, 240, 225, 241, 99, 115, 53, 22, 162, 178, 131, 38, 68, 147, 84, 100, 69, + 194, 163, 116, 54, 23, 210, 85, 226, 101, 242, 179, 132, 195, 211, 117, 227, 243, 70, 39, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, 197, 213, + 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 17, 0, 2, 2, 1, 2, + 4, 4, 3, 4, 5, 6, 7, 7, 6, 5, 53, 1, 0, 2, 17, 3, 33, 49, 18, 4, 65, 81, 97, 113, 34, 19, 5, 50, 129, 145, 20, 161, + 177, 66, 35, 193, 82, 209, 240, 51, 36, 98, 225, 114, 130, 146, 67, 83, 21, 99, 115, 52, 241, 37, 6, 22, 162, 178, 131, 7, 38, 53, 194, 210, + 68, 147, 84, 163, 23, 100, 69, 85, 54, 116, 101, 226, 242, 179, 132, 195, 211, 117, 227, 243, 70, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, + 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 255, 218, 0, 12, 3, 1, + 0, 2, 17, 3, 17, 0, 63, 0, 217, 77, 181, 74, 18, 133, 191, 110, 51, 24, 74, 20, 245, 78, 7, 138, 86, 166, 0, 36, 167, 3, 193, 45, + 161, 11, 83, 8, 75, 106, 36, 4, 160, 37, 106, 213, 132, 37, 10, 123, 124, 210, 0, 37, 106, 97, 183, 239, 241, 66, 201, 177, 245, 179, 109, 100, + 11, 140, 22, 147, 35, 107, 103, 223, 102, 240, 215, 109, 126, 223, 162, 212, 249, 185, 47, 199, 173, 174, 170, 189, 246, 61, 193, 173, 27, 75, 128, 26, + 251, 220, 198, 185, 159, 69, 80, 162, 214, 100, 208, 204, 166, 207, 233, 216, 219, 61, 67, 0, 157, 6, 210, 227, 244, 182, 183, 232, 236, 84, 57, 222, + 112, 64, 75, 20, 62, 114, 42, 71, 247, 56, 191, 238, 157, 14, 75, 147, 51, 49, 203, 63, 144, 27, 143, 245, 140, 127, 238, 85, 109, 30, 173, 173, + 177, 214, 111, 218, 73, 110, 230, 57, 230, 98, 93, 238, 127, 181, 137, 220, 252, 79, 80, 55, 212, 253, 43, 125, 205, 175, 212, 99, 9, 145, 27, 54, + 185, 205, 246, 170, 214, 100, 57, 254, 165, 142, 109, 129, 140, 209, 156, 141, 206, 229, 174, 121, 63, 187, 249, 136, 89, 14, 13, 99, 235, 162, 199, 122, + 140, 126, 132, 234, 215, 188, 15, 118, 218, 157, 183, 243, 191, 50, 191, 73, 100, 29, 221, 126, 154, 58, 14, 174, 135, 141, 206, 30, 240, 75, 155, 54, + 25, 39, 200, 139, 118, 38, 127, 217, 88, 217, 113, 99, 100, 1, 30, 160, 108, 73, 111, 231, 122, 141, 119, 246, 154, 179, 105, 186, 202, 246, 191, 101, + 141, 115, 158, 230, 221, 89, 222, 30, 72, 50, 219, 54, 191, 107, 43, 245, 43, 219, 250, 61, 255, 0, 161, 175, 254, 49, 89, 178, 218, 174, 166, 189, + 149, 144, 224, 248, 120, 172, 135, 29, 209, 181, 174, 185, 164, 7, 108, 247, 33, 213, 61, 19, 58, 188, 0, 208, 251, 25, 71, 98, 192, 231, 2, 12, + 29, 205, 115, 93, 186, 214, 238, 221, 249, 234, 94, 181, 80, 108, 45, 174, 189, 209, 238, 221, 83, 131, 164, 254, 235, 94, 221, 187, 213, 81, 69, 212, + 185, 172, 99, 141, 45, 123, 90, 239, 66, 11, 94, 76, 143, 210, 52, 87, 27, 119, 60, 251, 223, 234, 123, 211, 127, 149, 157, 103, 185, 228, 215, 91, + 143, 175, 112, 99, 105, 0, 60, 251, 69, 52, 182, 188, 155, 183, 253, 47, 126, 203, 55, 215, 250, 91, 146, 58, 169, 185, 97, 198, 125, 79, 46, 13, + 110, 132, 151, 141, 128, 131, 252, 155, 24, 246, 89, 185, 190, 207, 210, 53, 65, 175, 174, 178, 219, 113, 216, 253, 167, 219, 237, 48, 76, 14, 91, 191, + 223, 183, 250, 202, 189, 53, 245, 2, 214, 155, 235, 15, 121, 1, 172, 164, 217, 93, 155, 72, 247, 253, 161, 238, 99, 107, 173, 149, 123, 90, 239, 240, + 150, 255, 0, 212, 32, 228, 228, 88, 41, 22, 23, 59, 115, 67, 134, 222, 1, 213, 219, 191, 55, 221, 238, 254, 66, 10, 167, 255, 208, 221, 227, 132, + 146, 37, 141, 115, 88, 231, 181, 175, 119, 12, 46, 0, 241, 60, 21, 61, 154, 193, 209, 110, 113, 14, 142, 57, 7, 179, 20, 161, 75, 103, 154, 65, + 169, 90, 24, 164, 166, 25, 170, 125, 130, 80, 180, 234, 141, 40, 42, 123, 18, 219, 199, 137, 236, 149, 169, 134, 169, 245, 136, 143, 135, 197, 51, 238, + 174, 179, 177, 210, 92, 4, 237, 110, 186, 127, 91, 232, 127, 210, 85, 178, 114, 89, 101, 110, 166, 61, 54, 88, 54, 216, 94, 230, 238, 45, 63, 152, + 221, 92, 198, 238, 111, 210, 80, 101, 230, 240, 227, 187, 144, 50, 31, 163, 29, 91, 24, 185, 60, 217, 42, 163, 81, 63, 165, 47, 72, 106, 245, 42, + 170, 204, 177, 133, 190, 163, 154, 33, 173, 177, 146, 25, 160, 119, 171, 183, 210, 115, 119, 238, 223, 179, 222, 168, 99, 226, 217, 91, 190, 200, 235, 75, + 170, 218, 95, 83, 109, 157, 210, 231, 61, 206, 216, 210, 215, 253, 13, 205, 217, 255, 0, 65, 94, 117, 245, 58, 24, 46, 99, 90, 200, 110, 214, 189, + 176, 60, 190, 142, 239, 163, 251, 170, 22, 125, 153, 196, 89, 182, 179, 107, 4, 122, 164, 146, 224, 127, 53, 219, 134, 223, 163, 43, 19, 36, 204, 231, + 41, 31, 211, 54, 237, 194, 30, 222, 56, 66, 59, 64, 0, 136, 99, 180, 189, 237, 180, 11, 92, 67, 28, 234, 225, 238, 113, 219, 59, 95, 177, 206, + 31, 154, 239, 164, 198, 34, 183, 166, 179, 113, 107, 158, 230, 130, 55, 59, 110, 225, 59, 101, 140, 123, 157, 181, 255, 0, 191, 249, 158, 154, 6, 62, + 127, 82, 23, 213, 131, 176, 94, 202, 198, 215, 90, 93, 5, 194, 116, 184, 49, 254, 237, 155, 63, 63, 223, 234, 41, 99, 245, 234, 236, 189, 212, 181, + 174, 107, 131, 160, 16, 233, 108, 127, 89, 140, 246, 255, 0, 41, 55, 134, 73, 247, 97, 177, 53, 209, 190, 41, 2, 182, 140, 134, 55, 46, 218, 79, + 232, 222, 230, 7, 193, 63, 164, 117, 88, 219, 163, 110, 237, 191, 206, 63, 103, 248, 61, 246, 126, 137, 82, 202, 232, 162, 234, 43, 198, 186, 235, 40, + 6, 201, 117, 140, 5, 182, 7, 17, 184, 184, 190, 145, 239, 109, 150, 59, 244, 109, 183, 244, 106, 224, 205, 13, 126, 227, 105, 15, 104, 135, 52, 184, + 159, 243, 101, 141, 114, 155, 51, 88, 210, 28, 215, 67, 132, 157, 9, 141, 127, 234, 191, 206, 74, 138, 237, 41, 167, 87, 72, 199, 162, 151, 211, 83, + 157, 104, 99, 182, 131, 104, 121, 45, 59, 154, 239, 81, 161, 239, 246, 221, 237, 250, 117, 254, 143, 210, 255, 0, 130, 86, 42, 101, 222, 163, 218, 46, + 99, 216, 214, 134, 138, 203, 119, 22, 236, 221, 171, 201, 103, 243, 110, 247, 253, 5, 100, 100, 181, 239, 46, 178, 194, 99, 66, 101, 206, 18, 62, 143, + 231, 55, 254, 169, 67, 35, 245, 140, 103, 215, 246, 162, 192, 246, 150, 111, 99, 70, 230, 255, 0, 197, 187, 212, 247, 127, 105, 42, 241, 65, 145, 29, + 11, 91, 210, 104, 168, 218, 5, 37, 238, 14, 221, 107, 26, 125, 250, 111, 104, 119, 239, 126, 99, 222, 179, 217, 83, 30, 49, 234, 3, 214, 107, 220, + 208, 224, 194, 1, 36, 157, 214, 56, 239, 245, 63, 71, 162, 191, 129, 134, 206, 158, 108, 140, 155, 44, 55, 22, 151, 2, 24, 193, 160, 45, 221, 182, + 178, 239, 119, 187, 223, 238, 71, 244, 170, 115, 183, 16, 29, 3, 218, 11, 90, 54, 196, 183, 115, 28, 209, 185, 158, 215, 109, 66, 149, 25, 18, 5, + 138, 250, 191, 255, 209, 194, 203, 234, 237, 47, 127, 81, 199, 187, 210, 46, 21, 89, 47, 155, 28, 198, 239, 119, 160, 253, 159, 225, 45, 125, 159, 224, + 217, 254, 7, 254, 9, 118, 253, 59, 34, 236, 172, 42, 175, 190, 191, 70, 215, 238, 15, 175, 79, 105, 107, 141, 126, 232, 46, 107, 93, 237, 250, 59, + 151, 13, 85, 7, 43, 26, 235, 113, 47, 169, 246, 91, 235, 27, 41, 180, 13, 43, 112, 247, 238, 119, 232, 159, 182, 171, 234, 103, 166, 234, 189, 55, + 255, 0, 55, 250, 55, 210, 175, 96, 253, 109, 24, 207, 126, 35, 31, 235, 84, 125, 26, 112, 220, 230, 150, 22, 176, 48, 82, 239, 70, 130, 109, 217, + 189, 219, 50, 125, 75, 223, 255, 0, 130, 43, 88, 39, 28, 49, 148, 231, 34, 125, 207, 80, 13, 44, 177, 227, 28, 49, 2, 226, 246, 111, 115, 107, + 169, 215, 62, 69, 108, 105, 123, 221, 28, 53, 163, 115, 138, 171, 71, 85, 233, 185, 17, 232, 228, 48, 203, 154, 200, 113, 218, 119, 56, 23, 177, 187, + 108, 219, 249, 141, 245, 63, 168, 185, 11, 242, 250, 149, 217, 182, 100, 63, 36, 61, 173, 99, 128, 173, 238, 151, 141, 199, 247, 11, 189, 55, 83, 118, + 239, 230, 220, 239, 77, 66, 187, 105, 108, 84, 217, 245, 157, 89, 134, 151, 29, 187, 78, 183, 61, 173, 5, 223, 71, 243, 127, 115, 249, 186, 211, 37, + 241, 35, 96, 198, 26, 120, 168, 114, 162, 181, 151, 216, 246, 199, 63, 167, 181, 197, 142, 201, 173, 174, 13, 15, 50, 237, 54, 184, 236, 111, 184, 123, + 55, 110, 252, 207, 166, 140, 199, 215, 99, 119, 86, 246, 189, 134, 70, 246, 157, 205, 208, 236, 119, 185, 179, 244, 95, 237, 92, 30, 251, 154, 235, 31, + 180, 56, 187, 123, 222, 55, 144, 208, 218, 218, 125, 49, 91, 54, 143, 206, 250, 123, 25, 234, 45, 46, 131, 245, 139, 33, 221, 57, 184, 237, 21, 186, + 242, 28, 234, 221, 238, 115, 154, 205, 222, 234, 246, 61, 173, 245, 110, 118, 239, 231, 126, 133, 41, 216, 254, 33, 100, 251, 145, 225, 21, 233, 225, 255, + 0, 162, 175, 186, 19, 66, 7, 212, 79, 233, 108, 244, 185, 89, 184, 216, 172, 121, 181, 224, 216, 193, 62, 139, 92, 55, 127, 111, 233, 108, 84, 174, + 234, 111, 179, 30, 210, 43, 110, 205, 90, 230, 13, 197, 238, 19, 251, 223, 163, 246, 254, 126, 239, 209, 170, 20, 11, 154, 193, 252, 219, 45, 219, 188, + 87, 33, 160, 126, 243, 173, 218, 219, 55, 191, 249, 127, 190, 140, 44, 183, 210, 34, 199, 180, 56, 128, 219, 6, 227, 27, 143, 210, 27, 142, 213, 91, + 47, 59, 146, 118, 1, 225, 143, 104, 186, 24, 121, 28, 112, 163, 164, 165, 251, 210, 215, 213, 253, 214, 108, 191, 17, 204, 107, 217, 75, 95, 89, 224, + 213, 83, 220, 223, 131, 96, 189, 51, 114, 113, 119, 185, 163, 16, 238, 111, 210, 154, 154, 193, 30, 44, 181, 231, 109, 143, 253, 202, 213, 122, 91, 179, + 212, 172, 123, 97, 218, 0, 64, 16, 230, 238, 46, 107, 182, 109, 119, 191, 223, 254, 17, 61, 56, 121, 68, 52, 61, 251, 3, 78, 226, 90, 67, 139, + 160, 183, 249, 207, 103, 185, 174, 102, 255, 0, 252, 237, 86, 45, 177, 109, 134, 245, 26, 11, 1, 251, 45, 174, 104, 128, 210, 69, 66, 1, 48, 214, + 251, 109, 114, 155, 51, 43, 176, 77, 88, 165, 193, 195, 83, 189, 128, 130, 97, 219, 70, 133, 187, 253, 202, 14, 192, 194, 112, 31, 161, 244, 137, 110, + 219, 54, 78, 167, 77, 190, 239, 167, 236, 219, 233, 251, 157, 244, 16, 168, 194, 186, 151, 29, 187, 3, 163, 247, 223, 186, 63, 53, 174, 209, 155, 255, + 0, 235, 169, 90, 168, 165, 25, 23, 213, 100, 179, 13, 140, 13, 16, 79, 175, 92, 237, 35, 232, 54, 182, 212, 239, 250, 180, 129, 174, 150, 187, 107, + 70, 219, 129, 45, 165, 197, 161, 187, 160, 23, 251, 189, 191, 246, 234, 13, 152, 111, 109, 161, 210, 210, 121, 14, 117, 142, 157, 206, 39, 232, 251, 91, + 251, 200, 246, 214, 91, 165, 158, 149, 167, 110, 193, 36, 152, 105, 252, 211, 191, 250, 175, 247, 181, 43, 61, 212, 113, 196, 238, 26, 88, 15, 234, 76, + 27, 111, 162, 203, 28, 64, 115, 65, 19, 13, 111, 179, 249, 221, 207, 171, 110, 159, 152, 237, 234, 198, 55, 83, 222, 29, 24, 54, 155, 42, 59, 109, + 99, 106, 221, 181, 208, 28, 61, 219, 191, 59, 114, 178, 44, 113, 22, 56, 70, 210, 240, 230, 203, 222, 68, 129, 198, 167, 103, 167, 237, 221, 177, 13, + 164, 180, 6, 53, 173, 112, 113, 157, 193, 209, 4, 247, 245, 63, 242, 95, 152, 149, 147, 186, 216, 195, 135, 105, 105, 216, 179, 61, 85, 236, 231, 166, + 228, 196, 0, 210, 69, 108, 4, 158, 222, 235, 80, 221, 215, 233, 130, 71, 78, 202, 112, 17, 185, 227, 208, 218, 9, 210, 28, 227, 122, 137, 171, 39, + 113, 12, 121, 144, 65, 219, 45, 32, 9, 247, 126, 99, 127, 237, 221, 233, 233, 197, 120, 165, 245, 228, 146, 250, 201, 131, 4, 73, 4, 238, 250, 59, + 79, 134, 196, 23, 238, 206, 206, 179, 85, 96, 54, 254, 155, 155, 80, 36, 68, 215, 81, 157, 194, 68, 53, 153, 27, 255, 0, 232, 161, 142, 175, 209, + 246, 239, 179, 31, 42, 176, 237, 125, 216, 214, 30, 251, 127, 192, 250, 159, 156, 137, 145, 91, 92, 40, 166, 134, 182, 166, 85, 102, 246, 203, 221, 160, + 253, 215, 250, 187, 175, 115, 119, 126, 251, 150, 125, 88, 22, 61, 155, 90, 205, 130, 214, 254, 149, 228, 86, 251, 93, 185, 206, 127, 181, 245, 250, 149, + 251, 90, 223, 207, 199, 183, 103, 252, 98, 86, 58, 168, 223, 79, 197, 255, 210, 227, 47, 205, 191, 5, 213, 102, 49, 246, 49, 247, 85, 83, 109, 171, + 105, 0, 200, 245, 31, 246, 135, 57, 155, 29, 235, 52, 191, 102, 199, 255, 0, 47, 216, 177, 168, 173, 151, 229, 210, 199, 3, 182, 215, 180, 16, 211, + 238, 32, 187, 111, 210, 113, 246, 185, 117, 76, 107, 50, 241, 205, 77, 50, 237, 128, 93, 234, 57, 246, 82, 11, 35, 212, 109, 85, 63, 243, 25, 109, + 62, 133, 119, 58, 207, 78, 175, 210, 250, 74, 205, 206, 161, 217, 6, 214, 210, 193, 147, 138, 198, 214, 44, 46, 14, 220, 54, 251, 152, 198, 215, 244, + 170, 118, 253, 244, 223, 103, 233, 233, 244, 190, 202, 155, 197, 0, 15, 171, 88, 254, 138, 193, 99, 166, 253, 89, 53, 134, 202, 42, 27, 154, 75, 67, + 36, 129, 32, 150, 29, 182, 178, 136, 107, 159, 250, 45, 187, 107, 247, 127, 57, 250, 71, 161, 227, 180, 253, 138, 151, 88, 247, 111, 176, 123, 237, 100, + 181, 207, 131, 191, 107, 221, 103, 187, 110, 239, 102, 199, 127, 194, 37, 145, 107, 183, 63, 209, 30, 161, 96, 45, 20, 51, 71, 57, 192, 178, 203, 93, + 251, 187, 42, 143, 250, 231, 243, 127, 225, 16, 232, 201, 13, 197, 107, 94, 230, 189, 215, 18, 235, 171, 210, 193, 99, 237, 115, 75, 170, 46, 112, 99, + 91, 236, 179, 247, 253, 138, 188, 79, 113, 186, 140, 116, 209, 85, 189, 142, 206, 125, 131, 30, 186, 108, 120, 13, 170, 199, 56, 50, 194, 226, 1, 221, + 64, 119, 230, 84, 221, 222, 167, 231, 220, 135, 78, 91, 70, 123, 42, 170, 166, 213, 104, 176, 254, 157, 144, 67, 125, 129, 172, 165, 186, 255, 0, 53, + 233, 125, 61, 254, 155, 61, 119, 171, 79, 186, 217, 109, 178, 8, 113, 5, 166, 201, 115, 75, 127, 54, 182, 86, 209, 234, 87, 91, 183, 108, 177, 255, + 0, 79, 254, 49, 84, 55, 177, 185, 30, 174, 56, 102, 70, 59, 170, 115, 155, 67, 245, 107, 3, 125, 150, 190, 170, 103, 237, 27, 254, 155, 127, 193, + 86, 164, 210, 85, 208, 82, 0, 111, 83, 212, 125, 92, 138, 137, 110, 221, 207, 123, 3, 88, 38, 199, 54, 15, 168, 224, 42, 250, 52, 251, 127, 224, + 214, 221, 231, 15, 30, 230, 91, 99, 247, 16, 206, 43, 14, 29, 254, 147, 203, 94, 230, 123, 255, 0, 194, 44, 92, 124, 93, 212, 53, 249, 35, 244, + 149, 139, 107, 99, 154, 65, 30, 155, 206, 234, 189, 213, 71, 169, 181, 159, 153, 252, 226, 119, 179, 244, 85, 177, 142, 23, 13, 240, 226, 227, 47, 96, + 0, 185, 150, 49, 231, 115, 61, 10, 255, 0, 63, 214, 254, 118, 212, 201, 71, 134, 235, 241, 100, 134, 89, 68, 16, 9, 212, 186, 248, 245, 87, 146, + 255, 0, 94, 151, 111, 197, 155, 26, 14, 235, 11, 203, 230, 11, 127, 72, 63, 65, 93, 81, 244, 24, 159, 50, 191, 74, 160, 43, 46, 109, 174, 112, + 99, 12, 23, 183, 118, 191, 79, 243, 189, 251, 125, 53, 75, 167, 94, 198, 178, 31, 121, 219, 97, 0, 75, 117, 99, 90, 226, 119, 110, 113, 102, 235, + 110, 115, 191, 71, 251, 140, 68, 183, 169, 90, 3, 106, 169, 238, 117, 187, 159, 88, 250, 33, 238, 13, 143, 210, 15, 115, 127, 205, 70, 58, 134, 126, + 48, 69, 153, 17, 47, 52, 217, 52, 92, 41, 99, 69, 206, 101, 132, 7, 189, 194, 183, 60, 52, 52, 111, 184, 55, 223, 183, 232, 255, 0, 164, 244, + 191, 237, 196, 204, 191, 27, 29, 184, 226, 204, 166, 187, 213, 108, 250, 142, 223, 160, 239, 99, 96, 251, 104, 119, 238, 88, 167, 86, 77, 22, 180, 85, + 144, 253, 207, 32, 61, 245, 130, 100, 72, 220, 221, 191, 191, 244, 189, 223, 200, 68, 200, 56, 152, 248, 239, 180, 181, 155, 168, 27, 152, 67, 68, 14, + 206, 107, 24, 246, 57, 181, 87, 244, 254, 130, 68, 119, 11, 197, 143, 80, 150, 137, 62, 205, 92, 146, 210, 210, 233, 221, 15, 123, 203, 34, 52, 112, + 223, 234, 109, 179, 243, 189, 69, 43, 49, 157, 101, 96, 239, 103, 169, 196, 18, 242, 0, 252, 232, 107, 99, 243, 62, 130, 6, 86, 79, 161, 67, 109, + 23, 250, 148, 92, 65, 22, 73, 145, 62, 230, 232, 127, 53, 234, 173, 157, 90, 230, 186, 170, 69, 192, 190, 243, 250, 35, 59, 154, 90, 79, 183, 134, + 165, 73, 57, 0, 220, 183, 235, 196, 34, 166, 178, 231, 203, 139, 164, 236, 121, 12, 31, 186, 89, 189, 142, 247, 55, 254, 219, 85, 114, 250, 111, 82, + 185, 246, 186, 177, 95, 162, 90, 26, 198, 177, 230, 93, 167, 187, 117, 123, 88, 198, 61, 174, 254, 90, 133, 89, 153, 86, 61, 237, 99, 128, 118, 226, + 223, 231, 96, 199, 248, 63, 100, 125, 53, 99, 237, 121, 213, 48, 220, 230, 215, 175, 243, 207, 14, 220, 118, 48, 75, 118, 214, 14, 247, 187, 126, 239, + 162, 196, 170, 188, 208, 72, 152, 212, 154, 9, 112, 49, 178, 43, 196, 107, 51, 203, 13, 173, 221, 46, 173, 197, 210, 63, 52, 125, 26, 255, 0, 53, + 72, 99, 216, 223, 79, 209, 37, 204, 4, 23, 54, 89, 237, 215, 254, 27, 211, 107, 246, 254, 103, 166, 239, 248, 196, 153, 152, 108, 118, 192, 230, 60, + 150, 135, 29, 174, 208, 207, 185, 167, 123, 253, 47, 106, 71, 43, 42, 96, 213, 187, 249, 65, 195, 108, 30, 93, 182, 119, 255, 0, 81, 10, 181, 195, + 74, 34, 90, 109, 224, 217, 244, 220, 231, 251, 133, 142, 7, 233, 62, 187, 107, 104, 108, 3, 180, 250, 59, 154, 246, 179, 221, 250, 86, 85, 191, 123, + 208, 233, 161, 226, 92, 247, 52, 57, 225, 141, 58, 23, 67, 90, 216, 250, 59, 78, 223, 210, 59, 220, 169, 89, 213, 41, 14, 12, 109, 86, 110, 146, + 117, 14, 246, 233, 184, 57, 251, 126, 139, 127, 150, 140, 220, 214, 18, 100, 75, 127, 120, 184, 152, 241, 75, 135, 197, 34, 96, 245, 127, 255, 211, 194, + 45, 102, 5, 23, 184, 58, 11, 11, 136, 104, 96, 231, 103, 167, 183, 99, 14, 223, 167, 239, 254, 218, 173, 131, 154, 247, 147, 45, 15, 181, 173, 96, + 55, 87, 46, 224, 54, 182, 111, 120, 99, 127, 70, 215, 254, 231, 243, 47, 68, 15, 173, 185, 53, 85, 33, 172, 172, 185, 161, 155, 139, 90, 216, 59, + 233, 127, 242, 61, 79, 161, 244, 189, 61, 255, 0, 240, 137, 195, 170, 171, 31, 117, 109, 27, 158, 217, 123, 222, 118, 142, 30, 250, 158, 255, 0, 167, + 250, 39, 59, 217, 234, 127, 35, 212, 177, 84, 243, 4, 222, 200, 220, 172, 40, 123, 175, 164, 88, 90, 225, 104, 115, 3, 4, 123, 160, 127, 35, 252, + 31, 208, 245, 63, 207, 66, 201, 201, 196, 46, 24, 182, 84, 203, 107, 111, 181, 231, 102, 205, 128, 131, 91, 109, 146, 95, 233, 86, 255, 0, 230, 253, + 223, 164, 254, 162, 123, 44, 216, 252, 81, 88, 44, 176, 215, 190, 28, 28, 210, 3, 203, 28, 250, 154, 226, 31, 233, 177, 206, 179, 221, 255, 0, 91, + 83, 247, 83, 153, 85, 21, 86, 69, 153, 14, 16, 67, 119, 182, 198, 250, 142, 107, 218, 198, 109, 218, 239, 117, 158, 167, 168, 157, 194, 73, 4, 14, + 251, 120, 33, 141, 182, 183, 38, 171, 141, 206, 125, 98, 219, 43, 24, 214, 216, 92, 32, 183, 109, 182, 182, 143, 163, 254, 16, 51, 101, 149, 255, 0, + 230, 106, 213, 77, 105, 165, 238, 173, 226, 187, 173, 18, 231, 237, 29, 128, 96, 183, 111, 168, 230, 223, 99, 171, 111, 253, 184, 179, 141, 29, 75, 37, + 216, 87, 88, 198, 218, 192, 94, 253, 239, 19, 45, 14, 221, 1, 191, 233, 63, 69, 107, 107, 175, 249, 207, 240, 107, 71, 13, 152, 215, 154, 110, 199, + 216, 30, 1, 103, 170, 53, 107, 195, 139, 131, 44, 107, 63, 192, 109, 177, 191, 164, 123, 154, 205, 254, 146, 117, 206, 58, 68, 15, 27, 71, 68, 248, + 238, 182, 150, 195, 114, 31, 113, 13, 214, 226, 214, 135, 134, 192, 250, 12, 135, 53, 174, 246, 191, 223, 98, 20, 22, 190, 219, 28, 231, 7, 88, 101, + 204, 212, 84, 27, 89, 221, 233, 178, 161, 237, 118, 255, 0, 230, 222, 228, 102, 26, 220, 214, 251, 90, 95, 104, 244, 236, 47, 33, 165, 251, 5, 78, + 174, 203, 125, 61, 159, 163, 219, 99, 254, 131, 85, 111, 85, 151, 7, 186, 189, 43, 22, 28, 119, 67, 137, 177, 214, 184, 254, 137, 163, 103, 230, 88, + 199, 57, 207, 254, 95, 232, 212, 114, 57, 72, 223, 136, 39, 68, 199, 212, 107, 189, 7, 63, 115, 156, 56, 48, 118, 141, 190, 148, 185, 199, 111, 231, + 59, 110, 246, 254, 122, 31, 163, 115, 137, 244, 239, 13, 15, 1, 181, 134, 48, 218, 101, 191, 161, 117, 118, 215, 187, 220, 247, 187, 223, 253, 69, 31, + 77, 149, 219, 185, 204, 107, 46, 123, 6, 214, 185, 196, 134, 1, 181, 207, 101, 113, 183, 243, 254, 151, 250, 91, 20, 48, 243, 172, 126, 93, 245, 223, + 83, 45, 44, 112, 115, 158, 230, 232, 199, 31, 97, 246, 55, 217, 103, 182, 180, 220, 82, 225, 36, 238, 43, 84, 246, 117, 250, 99, 92, 215, 26, 45, + 167, 210, 203, 21, 67, 172, 14, 221, 105, 219, 249, 143, 177, 223, 185, 187, 243, 61, 137, 179, 31, 142, 219, 62, 207, 115, 156, 5, 149, 155, 43, 97, + 113, 112, 223, 244, 218, 31, 180, 127, 163, 111, 208, 107, 144, 44, 178, 187, 45, 126, 69, 173, 110, 240, 8, 183, 105, 38, 27, 187, 107, 69, 109, 111, + 245, 127, 207, 68, 195, 205, 244, 219, 99, 88, 208, 67, 116, 175, 118, 177, 164, 216, 198, 79, 230, 251, 191, 123, 249, 197, 56, 151, 22, 163, 84, 241, + 116, 61, 58, 166, 233, 141, 55, 92, 202, 178, 154, 215, 189, 205, 220, 41, 115, 101, 178, 211, 237, 124, 59, 102, 239, 111, 179, 221, 86, 197, 99, 171, + 122, 225, 181, 187, 27, 107, 46, 14, 244, 198, 240, 214, 144, 8, 246, 129, 111, 167, 185, 158, 163, 142, 223, 75, 127, 189, 83, 102, 67, 219, 155, 102, + 75, 131, 141, 86, 211, 232, 90, 234, 135, 184, 128, 119, 125, 25, 117, 158, 231, 125, 59, 41, 217, 250, 63, 248, 37, 44, 203, 112, 178, 171, 47, 182, + 215, 215, 93, 85, 250, 150, 212, 201, 54, 180, 183, 232, 49, 141, 253, 239, 223, 123, 109, 246, 39, 24, 222, 169, 19, 244, 112, 143, 29, 88, 87, 93, + 24, 158, 171, 238, 218, 251, 228, 23, 185, 205, 13, 118, 224, 15, 182, 173, 199, 115, 182, 53, 223, 245, 197, 44, 172, 134, 219, 142, 241, 14, 112, 176, + 123, 43, 168, 31, 112, 34, 63, 69, 171, 55, 125, 27, 54, 36, 206, 164, 31, 72, 109, 99, 90, 224, 88, 247, 48, 58, 11, 182, 157, 154, 126, 125, + 109, 119, 231, 127, 198, 44, 219, 113, 223, 181, 245, 151, 218, 230, 135, 203, 97, 251, 157, 187, 159, 127, 169, 238, 244, 54, 255, 0, 56, 255, 0, 230, + 246, 126, 141, 9, 13, 191, 106, 195, 51, 176, 59, 167, 233, 93, 70, 183, 95, 86, 35, 47, 19, 180, 1, 88, 46, 12, 112, 97, 244, 171, 126, 205, + 172, 115, 220, 255, 0, 204, 217, 190, 181, 107, 43, 168, 19, 148, 220, 86, 53, 220, 187, 244, 142, 38, 6, 140, 151, 88, 90, 93, 249, 150, 239, 254, + 66, 173, 137, 145, 75, 61, 39, 62, 239, 88, 99, 3, 185, 224, 108, 115, 157, 183, 103, 168, 214, 67, 189, 54, 109, 115, 61, 63, 244, 106, 54, 58, + 202, 217, 101, 142, 213, 237, 111, 166, 242, 194, 36, 200, 104, 126, 75, 7, 210, 245, 182, 108, 246, 108, 245, 189, 68, 52, 236, 174, 50, 35, 86, 220, + 233, 246, 238, 202, 34, 154, 92, 95, 77, 111, 54, 189, 160, 184, 7, 75, 3, 27, 91, 172, 246, 190, 207, 223, 171, 243, 21, 156, 236, 215, 227, 48, + 87, 88, 244, 236, 47, 37, 213, 22, 195, 121, 159, 237, 54, 223, 223, 84, 113, 114, 14, 61, 204, 165, 182, 23, 86, 214, 126, 146, 230, 48, 84, 25, + 99, 116, 121, 216, 253, 187, 45, 127, 248, 84, 246, 215, 101, 238, 113, 109, 158, 237, 9, 14, 38, 55, 234, 211, 186, 195, 31, 213, 175, 98, 110, 210, + 243, 100, 142, 82, 49, 208, 15, 255, 212, 227, 250, 126, 43, 235, 205, 201, 55, 19, 107, 246, 181, 219, 157, 251, 214, 56, 134, 219, 232, 125, 47, 209, + 127, 45, 158, 197, 114, 230, 122, 181, 181, 183, 61, 204, 46, 104, 33, 192, 107, 13, 110, 231, 216, 24, 230, 251, 172, 127, 187, 111, 187, 211, 103, 166, + 181, 155, 87, 163, 72, 13, 124, 216, 43, 13, 115, 195, 79, 14, 1, 191, 165, 115, 27, 234, 63, 221, 255, 0, 169, 21, 107, 50, 93, 83, 153, 67, + 104, 177, 251, 216, 255, 0, 90, 210, 224, 72, 15, 7, 212, 253, 35, 93, 185, 150, 91, 254, 155, 247, 20, 70, 4, 238, 117, 209, 97, 46, 115, 44, + 48, 251, 26, 215, 186, 186, 216, 214, 182, 160, 230, 180, 57, 194, 199, 99, 154, 46, 124, 110, 174, 203, 55, 51, 249, 191, 248, 79, 77, 104, 116, 252, + 107, 26, 118, 91, 80, 222, 219, 69, 141, 174, 79, 166, 93, 244, 133, 180, 92, 225, 190, 167, 59, 255, 0, 3, 255, 0, 71, 250, 68, 245, 99, 86, + 204, 10, 241, 192, 4, 90, 73, 107, 160, 16, 75, 157, 188, 13, 251, 55, 217, 244, 191, 63, 243, 255, 0, 72, 196, 245, 89, 124, 209, 85, 45, 99, + 218, 230, 110, 244, 152, 211, 47, 0, 126, 102, 232, 117, 127, 164, 186, 191, 107, 148, 144, 28, 62, 104, 37, 14, 69, 54, 186, 220, 139, 88, 193, 117, + 128, 111, 103, 167, 237, 46, 107, 156, 246, 228, 110, 103, 233, 31, 86, 219, 89, 244, 61, 15, 231, 42, 255, 0, 139, 69, 197, 45, 171, 38, 203, 107, + 173, 166, 131, 233, 89, 142, 24, 210, 45, 101, 122, 210, 125, 55, 104, 223, 103, 190, 231, 213, 249, 149, 217, 254, 151, 244, 42, 118, 86, 250, 219, 109, + 148, 15, 74, 194, 90, 69, 130, 11, 139, 247, 134, 89, 237, 179, 233, 53, 158, 255, 0, 210, 253, 5, 110, 155, 92, 94, 47, 105, 13, 166, 125, 42, + 246, 196, 69, 110, 138, 253, 187, 133, 111, 99, 63, 53, 72, 100, 13, 87, 213, 0, 82, 27, 49, 125, 42, 236, 164, 109, 107, 242, 108, 169, 181, 214, + 1, 112, 129, 187, 123, 89, 177, 190, 179, 91, 107, 127, 70, 239, 77, 155, 63, 71, 250, 79, 77, 97, 101, 98, 87, 211, 177, 44, 176, 48, 88, 239, + 88, 151, 100, 98, 128, 106, 97, 219, 233, 250, 97, 150, 183, 222, 218, 127, 73, 233, 101, 255, 0, 52, 251, 45, 191, 236, 254, 175, 243, 203, 168, 99, + 169, 99, 11, 235, 111, 230, 185, 182, 22, 145, 238, 13, 63, 164, 168, 185, 222, 198, 183, 115, 191, 77, 90, 7, 166, 215, 58, 219, 111, 247, 11, 88, + 214, 0, 9, 116, 180, 73, 115, 173, 110, 214, 253, 23, 255, 0, 53, 183, 222, 155, 99, 160, 87, 215, 249, 7, 140, 202, 200, 173, 214, 227, 217, 68, + 214, 200, 151, 50, 178, 237, 225, 174, 33, 238, 225, 222, 155, 91, 254, 142, 170, 189, 53, 161, 211, 168, 176, 99, 222, 246, 88, 107, 125, 229, 141, 103, + 170, 237, 198, 0, 105, 157, 155, 127, 73, 127, 253, 115, 244, 95, 245, 167, 173, 11, 122, 54, 4, 87, 145, 85, 143, 204, 177, 164, 154, 203, 152, 61, + 55, 144, 55, 56, 53, 149, 250, 85, 254, 119, 231, 126, 143, 213, 255, 0, 9, 234, 44, 107, 58, 235, 171, 107, 233, 13, 101, 175, 115, 195, 131, 162, + 34, 61, 177, 104, 111, 183, 219, 254, 15, 209, 179, 216, 153, 56, 216, 208, 111, 166, 171, 135, 102, 254, 29, 246, 90, 243, 88, 181, 185, 69, 173, 107, + 158, 107, 220, 39, 118, 253, 187, 221, 95, 210, 123, 93, 254, 15, 249, 191, 85, 105, 186, 250, 234, 170, 186, 221, 181, 140, 45, 104, 134, 141, 178, 231, + 125, 43, 11, 90, 93, 239, 123, 255, 0, 63, 254, 219, 89, 221, 42, 174, 161, 102, 83, 243, 104, 123, 27, 83, 65, 99, 139, 189, 161, 194, 61, 198, + 154, 88, 11, 190, 147, 91, 250, 79, 251, 109, 235, 85, 184, 117, 178, 183, 123, 119, 136, 208, 22, 8, 2, 7, 208, 247, 250, 127, 71, 247, 189, 245, + 189, 65, 44, 100, 17, 194, 116, 251, 21, 125, 26, 222, 161, 107, 156, 26, 78, 251, 31, 18, 29, 233, 237, 115, 128, 219, 191, 244, 119, 239, 217, 89, + 250, 45, 250, 107, 95, 34, 252, 23, 180, 156, 112, 230, 214, 70, 192, 29, 96, 116, 199, 182, 219, 44, 246, 141, 237, 250, 74, 135, 217, 104, 99, 93, + 112, 250, 7, 115, 157, 67, 119, 6, 136, 216, 62, 139, 125, 223, 69, 191, 205, 86, 139, 83, 113, 235, 171, 115, 1, 115, 107, 144, 199, 19, 4, 134, + 253, 9, 120, 111, 239, 255, 0, 54, 164, 191, 78, 246, 129, 167, 68, 152, 214, 212, 110, 123, 26, 223, 66, 177, 96, 59, 217, 4, 109, 49, 190, 235, + 27, 183, 244, 191, 247, 245, 90, 230, 214, 203, 139, 113, 229, 237, 97, 150, 220, 201, 111, 168, 90, 67, 247, 217, 235, 127, 55, 141, 110, 237, 254, 255, + 0, 207, 82, 59, 152, 192, 242, 231, 219, 93, 178, 227, 164, 186, 55, 79, 169, 236, 134, 237, 244, 217, 183, 211, 254, 113, 5, 239, 202, 181, 142, 20, + 193, 15, 107, 54, 81, 32, 18, 3, 191, 73, 244, 246, 179, 220, 199, 213, 191, 249, 31, 190, 129, 40, 11, 181, 230, 203, 28, 246, 215, 181, 210, 6, + 214, 186, 79, 169, 205, 155, 156, 207, 119, 169, 95, 231, 239, 253, 29, 126, 159, 169, 234, 32, 185, 153, 1, 245, 222, 246, 182, 246, 135, 15, 84, 18, + 36, 60, 188, 75, 169, 134, 126, 142, 188, 95, 252, 25, 96, 140, 187, 141, 245, 51, 38, 227, 77, 54, 188, 89, 96, 231, 218, 225, 246, 119, 250, 77, + 111, 230, 212, 234, 238, 110, 221, 255, 0, 158, 183, 241, 141, 45, 104, 57, 32, 92, 251, 8, 13, 165, 174, 14, 15, 26, 250, 91, 163, 111, 211, 219, + 249, 191, 240, 169, 17, 73, 219, 84, 157, 34, 231, 55, 14, 250, 110, 216, 43, 5, 246, 155, 132, 246, 220, 255, 0, 231, 44, 253, 39, 243, 94, 237, + 136, 239, 251, 62, 57, 116, 48, 135, 62, 11, 199, 187, 97, 144, 25, 181, 147, 237, 103, 230, 39, 22, 212, 26, 199, 53, 190, 173, 150, 151, 2, 215, + 190, 34, 125, 214, 75, 89, 237, 218, 207, 209, 181, 205, 102, 253, 254, 162, 173, 126, 11, 178, 181, 177, 238, 52, 177, 238, 45, 219, 244, 131, 142, 194, + 198, 251, 139, 171, 245, 25, 178, 205, 244, 187, 212, 170, 175, 81, 54, 84, 144, 95, 255, 213, 174, 113, 173, 14, 216, 242, 250, 158, 203, 158, 207, 16, + 97, 167, 213, 178, 183, 159, 205, 222, 61, 158, 223, 248, 52, 22, 217, 73, 101, 119, 57, 192, 178, 214, 18, 215, 184, 130, 3, 121, 115, 216, 101, 158, + 165, 142, 218, 218, 253, 158, 167, 245, 24, 163, 126, 94, 30, 76, 101, 151, 6, 209, 234, 122, 68, 184, 157, 205, 175, 123, 247, 91, 164, 182, 151, 89, + 239, 183, 212, 103, 233, 63, 70, 158, 198, 95, 140, 220, 107, 50, 201, 111, 217, 218, 104, 97, 99, 125, 67, 186, 183, 228, 81, 145, 181, 167, 219, 250, + 95, 74, 155, 125, 159, 224, 212, 124, 75, 40, 133, 141, 174, 115, 253, 0, 205, 197, 155, 90, 28, 214, 180, 250, 110, 115, 102, 32, 123, 61, 70, 212, + 235, 61, 77, 255, 0, 205, 254, 122, 158, 54, 46, 61, 65, 198, 183, 22, 73, 37, 161, 206, 36, 7, 2, 243, 187, 251, 31, 159, 71, 254, 162, 75, + 19, 165, 218, 30, 43, 221, 53, 250, 141, 119, 162, 214, 128, 214, 52, 29, 185, 21, 232, 125, 251, 220, 255, 0, 165, 254, 13, 11, 37, 172, 144, 28, + 249, 0, 181, 146, 65, 96, 222, 92, 94, 246, 241, 99, 31, 189, 143, 244, 247, 127, 194, 255, 0, 219, 102, 194, 23, 188, 180, 135, 31, 70, 75, 182, + 251, 172, 246, 185, 192, 206, 202, 216, 94, 127, 71, 251, 251, 255, 0, 115, 212, 82, 175, 24, 9, 200, 134, 217, 96, 116, 82, 211, 186, 90, 91, 236, + 119, 169, 244, 183, 127, 219, 127, 230, 32, 102, 101, 50, 191, 68, 61, 204, 217, 121, 44, 216, 246, 200, 119, 31, 163, 221, 252, 213, 126, 167, 232, 189, + 246, 187, 101, 116, 239, 83, 176, 176, 80, 28, 106, 134, 104, 75, 125, 196, 135, 71, 181, 187, 207, 233, 61, 39, 109, 111, 183, 244, 136, 133, 48, 251, + 91, 173, 186, 230, 229, 180, 84, 107, 143, 74, 166, 145, 15, 102, 214, 238, 179, 212, 143, 222, 220, 231, 255, 0, 224, 106, 88, 249, 237, 33, 222, 155, + 183, 16, 69, 117, 147, 44, 126, 214, 207, 233, 92, 205, 140, 119, 171, 99, 253, 159, 163, 254, 186, 167, 85, 117, 154, 45, 161, 192, 155, 221, 181, 150, + 58, 224, 226, 223, 73, 147, 111, 218, 113, 216, 231, 87, 234, 217, 142, 255, 0, 78, 159, 165, 252, 239, 232, 253, 38, 40, 227, 208, 42, 234, 47, 201, + 55, 53, 207, 112, 97, 166, 186, 126, 155, 192, 223, 244, 45, 177, 214, 83, 91, 61, 22, 63, 243, 255, 0, 210, 127, 131, 173, 58, 213, 224, 232, 223, + 72, 190, 150, 226, 85, 160, 125, 101, 204, 21, 251, 67, 107, 118, 179, 187, 111, 208, 223, 187, 219, 251, 234, 7, 161, 99, 140, 80, 204, 179, 234, 64, + 145, 115, 15, 166, 240, 116, 117, 181, 215, 99, 71, 167, 91, 55, 255, 0, 164, 245, 108, 255, 0, 72, 134, 206, 161, 109, 54, 26, 203, 125, 7, 89, + 87, 169, 233, 220, 237, 78, 174, 99, 11, 30, 54, 59, 222, 198, 63, 213, 255, 0, 173, 127, 198, 169, 211, 214, 133, 142, 123, 158, 237, 143, 59, 102, + 153, 135, 123, 128, 110, 202, 222, 7, 165, 111, 233, 63, 59, 250, 66, 105, 50, 42, 86, 31, 78, 110, 43, 110, 59, 203, 238, 113, 37, 164, 31, 110, + 198, 112, 225, 188, 189, 173, 221, 191, 243, 125, 52, 178, 223, 146, 219, 43, 109, 116, 155, 220, 119, 3, 233, 63, 80, 237, 173, 14, 221, 92, 53, 190, + 150, 253, 159, 165, 223, 255, 0, 22, 173, 80, 236, 156, 138, 55, 189, 190, 155, 88, 34, 4, 253, 32, 116, 173, 187, 226, 207, 116, 254, 143, 217, 255, + 0, 129, 170, 57, 57, 247, 98, 228, 55, 123, 11, 220, 226, 26, 230, 208, 221, 207, 135, 53, 207, 107, 125, 87, 251, 93, 178, 55, 92, 196, 40, 119, + 72, 95, 38, 198, 12, 127, 179, 250, 130, 187, 1, 107, 224, 201, 120, 4, 153, 222, 239, 115, 119, 57, 219, 254, 130, 45, 91, 222, 64, 99, 118, 210, + 106, 105, 221, 27, 119, 61, 229, 207, 115, 182, 125, 38, 109, 179, 99, 212, 104, 201, 196, 180, 87, 148, 233, 34, 170, 193, 107, 247, 67, 6, 243, 238, + 120, 165, 187, 125, 223, 188, 247, 126, 138, 175, 77, 77, 215, 188, 228, 181, 187, 225, 128, 123, 136, 102, 227, 14, 27, 128, 175, 93, 191, 224, 183, 127, + 198, 38, 158, 193, 13, 91, 31, 113, 200, 177, 165, 190, 142, 247, 52, 88, 215, 57, 173, 1, 173, 107, 190, 208, 241, 254, 19, 223, 182, 191, 160, 229, + 159, 149, 149, 173, 110, 199, 172, 91, 77, 84, 110, 105, 113, 150, 86, 15, 183, 159, 117, 155, 54, 50, 214, 63, 127, 191, 212, 86, 114, 119, 87, 151, + 102, 67, 89, 191, 30, 231, 53, 129, 251, 182, 51, 220, 119, 110, 247, 59, 103, 231, 250, 108, 115, 63, 71, 236, 81, 115, 50, 172, 45, 194, 125, 47, + 162, 166, 110, 251, 67, 193, 141, 222, 163, 118, 251, 75, 125, 158, 163, 220, 207, 230, 63, 194, 123, 61, 95, 230, 208, 0, 117, 213, 90, 54, 113, 25, + 142, 214, 182, 218, 246, 2, 91, 234, 189, 173, 0, 182, 28, 208, 209, 107, 63, 226, 154, 239, 211, 110, 253, 31, 248, 79, 231, 214, 11, 186, 173, 204, + 203, 118, 69, 27, 155, 69, 142, 130, 65, 32, 185, 140, 135, 62, 169, 254, 115, 249, 123, 255, 0, 157, 247, 173, 59, 49, 133, 45, 169, 184, 172, 219, + 138, 214, 250, 153, 44, 113, 104, 32, 187, 219, 233, 183, 118, 237, 158, 214, 239, 253, 39, 248, 101, 94, 254, 137, 109, 143, 173, 182, 90, 69, 55, 7, + 89, 141, 91, 1, 221, 4, 111, 125, 215, 52, 111, 244, 154, 199, 191, 244, 159, 206, 39, 64, 3, 170, 172, 55, 46, 234, 15, 126, 45, 183, 80, 70, + 61, 205, 111, 180, 144, 99, 219, 182, 118, 110, 63, 206, 59, 217, 244, 63, 224, 255, 0, 70, 137, 211, 236, 244, 107, 15, 178, 199, 219, 99, 28, 67, + 183, 23, 183, 105, 177, 206, 185, 245, 109, 112, 171, 212, 183, 233, 251, 255, 0, 210, 170, 79, 233, 217, 181, 184, 212, 203, 11, 42, 180, 134, 250, 176, + 61, 190, 149, 127, 166, 46, 103, 185, 219, 236, 255, 0, 166, 137, 135, 211, 122, 141, 142, 140, 203, 37, 193, 190, 160, 170, 199, 186, 210, 215, 15, 209, + 236, 244, 220, 231, 86, 235, 54, 253, 61, 206, 255, 0, 11, 252, 218, 82, 136, 162, 84, 255, 0, 255, 214, 230, 113, 109, 207, 193, 125, 119, 53, 149, + 219, 64, 123, 108, 118, 62, 246, 233, 92, 182, 189, 219, 41, 221, 181, 205, 252, 251, 189, 159, 162, 80, 253, 167, 126, 53, 182, 177, 172, 180, 244, 250, + 110, 101, 152, 242, 14, 250, 218, 61, 245, 85, 188, 126, 237, 127, 162, 125, 142, 246, 61, 149, 174, 77, 37, 23, 216, 131, 227, 244, 125, 15, 15, 172, + 88, 220, 47, 69, 195, 78, 156, 42, 4, 134, 159, 87, 211, 118, 214, 227, 189, 158, 239, 211, 99, 89, 153, 178, 157, 237, 253, 46, 63, 173, 233, 127, + 131, 245, 22, 43, 114, 178, 206, 87, 163, 118, 234, 133, 39, 100, 177, 197, 195, 159, 91, 210, 126, 227, 255, 0, 7, 249, 255, 0, 224, 23, 44, 146, + 35, 115, 93, 150, 233, 111, 117, 139, 151, 54, 187, 208, 223, 107, 173, 46, 181, 225, 129, 190, 153, 96, 37, 158, 157, 173, 179, 252, 29, 21, 217, 250, + 54, 255, 0, 219, 106, 195, 238, 167, 38, 223, 211, 60, 92, 217, 105, 44, 222, 36, 29, 92, 217, 253, 39, 187, 119, 250, 47, 103, 232, 216, 188, 245, + 36, 226, 167, 190, 56, 216, 222, 133, 181, 186, 193, 235, 220, 231, 237, 44, 48, 91, 36, 212, 250, 157, 189, 173, 217, 94, 159, 224, 182, 89, 103, 233, + 63, 70, 178, 255, 0, 102, 229, 178, 227, 110, 51, 223, 134, 93, 3, 31, 30, 151, 62, 194, 94, 78, 231, 122, 175, 177, 222, 155, 241, 219, 249, 246, + 251, 217, 255, 0, 130, 174, 85, 36, 141, 222, 138, 30, 15, 73, 117, 87, 95, 148, 235, 173, 111, 235, 140, 99, 119, 55, 219, 91, 26, 233, 218, 95, + 115, 76, 238, 221, 252, 239, 173, 183, 210, 255, 0, 173, 34, 28, 12, 188, 59, 93, 150, 247, 110, 109, 208, 215, 109, 46, 45, 51, 252, 231, 187, 233, + 123, 182, 238, 251, 66, 229, 210, 78, 55, 67, 241, 87, 87, 209, 49, 222, 5, 34, 208, 230, 237, 33, 151, 29, 165, 187, 33, 163, 101, 155, 157, 187, + 211, 219, 187, 249, 175, 252, 9, 25, 183, 211, 101, 182, 53, 206, 107, 118, 24, 108, 65, 221, 3, 244, 198, 217, 219, 250, 74, 255, 0, 155, 219, 254, + 143, 211, 177, 121, 170, 73, 170, 125, 11, 55, 3, 1, 166, 183, 250, 77, 120, 32, 84, 230, 137, 12, 2, 70, 231, 57, 213, 254, 111, 179, 101, 91, + 255, 0, 70, 144, 201, 195, 109, 150, 181, 182, 109, 45, 181, 205, 176, 16, 15, 185, 197, 165, 173, 99, 79, 210, 103, 179, 217, 255, 0, 127, 94, 122, + 146, 97, 170, 210, 208, 41, 244, 10, 236, 160, 89, 107, 172, 27, 125, 90, 218, 45, 99, 9, 218, 26, 210, 61, 251, 108, 253, 27, 55, 59, 249, 198, + 57, 49, 35, 34, 203, 106, 118, 215, 177, 132, 125, 16, 67, 131, 92, 61, 39, 55, 108, 253, 23, 110, 221, 99, 255, 0, 225, 127, 155, 244, 182, 46, + 1, 36, 205, 58, 47, 28, 53, 175, 127, 240, 158, 225, 244, 101, 253, 177, 237, 96, 178, 173, 129, 181, 239, 115, 38, 191, 70, 175, 111, 168, 247, 251, + 107, 119, 181, 187, 27, 187, 212, 127, 252, 26, 181, 77, 172, 176, 6, 151, 108, 33, 135, 123, 137, 209, 219, 142, 205, 187, 93, 244, 91, 187, 114, 243, + 212, 147, 227, 117, 252, 22, 158, 30, 150, 250, 39, 173, 123, 109, 45, 12, 112, 46, 3, 101, 142, 27, 70, 208, 76, 185, 191, 202, 102, 223, 204, 254, + 115, 254, 182, 163, 83, 26, 11, 155, 141, 88, 139, 44, 47, 177, 206, 59, 108, 123, 143, 248, 71, 111, 220, 221, 223, 159, 255, 0, 162, 215, 158, 164, + 151, 167, 197, 15, 255, 217, 255, 237, 67, 52, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 51, 46, 48, 0, 56, 66, 73, 77, 4, 4, 0, 0, + 0, 0, 0, 26, 28, 2, 0, 0, 2, 0, 2, 28, 2, 116, 0, 14, 49, 57, 57, 57, 32, 76, 97, 114, 115, 32, 66, 111, 114, 103, 56, 66, + 73, 77, 4, 37, 0, 0, 0, 0, 0, 16, 12, 57, 75, 230, 12, 204, 39, 133, 114, 13, 136, 79, 104, 55, 206, 185, 56, 66, 73, 77, 3, 234, + 0, 0, 0, 0, 29, 173, 60, 63, 120, 109, 108, 32, 118, 101, 114, 115, 105, 111, 110, 61, 34, 49, 46, 48, 34, 32, 101, 110, 99, 111, 100, 105, + 110, 103, 61, 34, 85, 84, 70, 45, 56, 34, 63, 62, 10, 60, 33, 68, 79, 67, 84, 89, 80, 69, 32, 112, 108, 105, 115, 116, 32, 80, 85, 66, + 76, 73, 67, 32, 34, 45, 47, 47, 65, 112, 112, 108, 101, 32, 67, 111, 109, 112, 117, 116, 101, 114, 47, 47, 68, 84, 68, 32, 80, 76, 73, 83, + 84, 32, 49, 46, 48, 47, 47, 69, 78, 34, 32, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 97, 112, 112, 108, 101, 46, 99, 111, 109, + 47, 68, 84, 68, 115, 47, 80, 114, 111, 112, 101, 114, 116, 121, 76, 105, 115, 116, 45, 49, 46, 48, 46, 100, 116, 100, 34, 62, 10, 60, 112, 108, + 105, 115, 116, 32, 118, 101, 114, 115, 105, 111, 110, 61, 34, 49, 46, 48, 34, 62, 10, 60, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, + 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 72, 111, 114, + 105, 122, 111, 110, 116, 97, 108, 82, 101, 115, 60, 47, 107, 101, 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, + 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, + 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, + 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, + 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, + 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, + 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 72, 111, 114, 105, 122, 111, + 110, 116, 97, 108, 82, 101, 115, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 50, 60, 47, 114, 101, 97, 108, + 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, + 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, + 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, + 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, + 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, + 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, 47, + 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, + 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 79, 114, 105, + 101, 110, 116, 97, 116, 105, 111, 110, 60, 47, 107, 101, 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, + 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, + 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, + 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, + 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, + 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 79, 114, 105, 101, 110, 116, 97, 116, + 105, 111, 110, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 49, 60, 47, 105, 110, 116, 101, 103, 101, + 114, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, + 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, + 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, + 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, + 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, + 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, + 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, + 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, + 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, + 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 83, 99, + 97, 108, 105, 110, 103, 60, 47, 107, 101, 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, + 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, + 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, + 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 97, 114, + 114, 97, 121, 62, 10, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, + 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 83, 99, 97, 108, 105, 110, 103, 60, 47, 107, 101, + 121, 62, 10, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 49, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, + 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, + 121, 62, 10, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, + 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, + 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, + 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, + 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, + 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, + 114, 97, 121, 62, 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, + 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 86, 101, 114, 116, 105, 99, 97, 108, 82, 101, 115, 60, 47, 107, 101, + 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, + 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, + 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, + 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, + 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 60, + 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, + 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 86, 101, 114, 116, 105, 99, 97, 108, 82, 101, 115, 60, 47, 107, 101, 121, 62, 10, 9, 9, + 9, 9, 60, 114, 101, 97, 108, 62, 55, 50, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, + 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, + 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, + 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, + 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, + 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, + 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, + 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, + 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, + 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 86, 101, 114, 116, 105, 99, 97, 108, 83, 99, 97, 108, 105, 110, 103, 60, 47, 107, 101, + 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, + 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, + 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, + 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, + 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 60, + 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, + 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 86, 101, 114, 116, 105, 99, 97, 108, 83, 99, 97, 108, 105, 110, 103, 60, 47, 107, 101, 121, + 62, 10, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 49, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, + 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, + 62, 10, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, + 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, + 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, + 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, + 97, 116, 101, 62, 10, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, + 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, + 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 47, 97, 114, 114, + 97, 121, 62, 10, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, + 110, 116, 46, 115, 117, 98, 84, 105, 99, 107, 101, 116, 46, 112, 97, 112, 101, 114, 95, 105, 110, 102, 111, 95, 116, 105, 99, 107, 101, 116, 60, 47, + 107, 101, 121, 62, 10, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, + 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 65, 100, 106, 117, 115, 116, 101, 100, 80, 97, 103, 101, 82, 101, 99, + 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, + 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, + 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, + 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, + 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, + 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 65, 100, 106, 117, 115, 116, 101, 100, + 80, 97, 103, 101, 82, 101, 99, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, + 9, 9, 60, 114, 101, 97, 108, 62, 48, 46, 48, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 48, + 46, 48, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 51, 52, 60, 47, 114, 101, 97, 108, 62, + 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 53, 55, 54, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 60, 47, 97, + 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, + 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, + 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, + 110, 103, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, + 99, 107, 101, 116, 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, + 48, 51, 45, 49, 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, + 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, + 70, 108, 97, 103, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, + 103, 101, 114, 62, 10, 9, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, + 47, 100, 105, 99, 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, + 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 65, 100, 106, 117, 115, 116, 101, 100, 80, 97, 112, 101, 114, 82, 101, 99, 116, 60, 47, 107, 101, + 121, 62, 10, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, + 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, + 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, + 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, + 105, 99, 107, 101, 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, + 10, 9, 9, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, + 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 46, 80, 77, 65, 100, 106, 117, 115, 116, 101, 100, 80, 97, 112, 101, 114, + 82, 101, 99, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, + 101, 97, 108, 62, 45, 49, 56, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 45, 49, 56, 60, 47, + 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 55, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, + 9, 9, 9, 60, 114, 101, 97, 108, 62, 53, 57, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, + 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, + 101, 116, 46, 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, + 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, + 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, + 46, 109, 111, 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, + 49, 45, 49, 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, + 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, + 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, + 10, 9, 9, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, + 116, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, + 110, 102, 111, 46, 80, 77, 80, 97, 112, 101, 114, 78, 97, 109, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, 99, 116, 62, 10, 9, + 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 114, + 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, + 46, 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, + 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, 101, + 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 60, 100, 105, 99, + 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, + 101, 114, 73, 110, 102, 111, 46, 80, 77, 80, 97, 112, 101, 114, 78, 97, 109, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, + 116, 114, 105, 110, 103, 62, 110, 97, 45, 108, 101, 116, 116, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 9, 60, 107, + 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, 110, 116, + 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, + 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 9, + 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, + 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 48, 45, 48, 55, 45, 50, 56, 84, + 50, 50, 58, 53, 55, 58, 48, 52, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, + 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 49, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 9, + 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, + 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 46, 80, + 77, 85, 110, 97, 100, 106, 117, 115, 116, 101, 100, 80, 97, 103, 101, 82, 101, 99, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, 99, + 116, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, + 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, + 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, + 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, + 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, + 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 46, 80, 77, 85, 110, 97, 100, 106, 117, 115, 116, 101, 100, 80, 97, 103, 101, 82, 101, 99, 116, 60, + 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 48, + 46, 48, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 48, 46, 48, 60, 47, 114, 101, 97, 108, 62, + 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 51, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, + 101, 97, 108, 62, 53, 55, 54, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, + 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, + 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, + 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 9, + 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, 100, 68, + 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 56, 84, + 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, + 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, 101, 121, + 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, 9, 9, + 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, + 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 46, 80, + 77, 85, 110, 97, 100, 106, 117, 115, 116, 101, 100, 80, 97, 112, 101, 114, 82, 101, 99, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, + 99, 116, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, + 101, 116, 46, 99, 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, + 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, + 103, 62, 10, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, + 116, 46, 105, 116, 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, + 9, 60, 100, 105, 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, + 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 46, 80, 77, 85, 110, 97, 100, 106, 117, 115, 116, 101, 100, 80, 97, 112, 101, 114, 82, 101, 99, + 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, + 62, 45, 49, 56, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 45, 49, 56, 60, 47, 114, 101, 97, + 108, 62, 10, 9, 9, 9, 9, 9, 9, 60, 114, 101, 97, 108, 62, 55, 55, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 9, + 60, 114, 101, 97, 108, 62, 53, 57, 52, 60, 47, 114, 101, 97, 108, 62, 10, 9, 9, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, + 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, + 99, 108, 105, 101, 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, + 112, 108, 101, 46, 112, 114, 105, 110, 116, 105, 110, 103, 109, 97, 110, 97, 103, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, + 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, + 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, + 56, 84, 48, 49, 58, 49, 57, 58, 49, 56, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, + 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, + 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 48, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, + 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, + 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, + 46, 112, 112, 100, 46, 80, 77, 80, 97, 112, 101, 114, 78, 97, 109, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 100, 105, 99, 116, 62, 10, + 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, + 114, 101, 97, 116, 111, 114, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, + 101, 46, 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, + 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 105, 116, + 101, 109, 65, 114, 114, 97, 121, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 60, 97, 114, 114, 97, 121, 62, 10, 9, 9, 9, 9, 60, 100, 105, + 99, 116, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, + 112, 101, 114, 73, 110, 102, 111, 46, 112, 112, 100, 46, 80, 77, 80, 97, 112, 101, 114, 78, 97, 109, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, + 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 76, 101, 116, 116, 101, 114, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, 9, 9, + 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 99, 108, 105, 101, + 110, 116, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, + 112, 114, 105, 110, 116, 46, 112, 109, 46, 80, 111, 115, 116, 83, 99, 114, 105, 112, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 9, + 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 109, 111, + 100, 68, 97, 116, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 100, 97, 116, 101, 62, 50, 48, 48, 48, 45, 48, 55, 45, 50, + 56, 84, 50, 50, 58, 53, 55, 58, 48, 52, 90, 60, 47, 100, 97, 116, 101, 62, 10, 9, 9, 9, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, + 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 115, 116, 97, 116, 101, 70, 108, 97, 103, 60, 47, 107, + 101, 121, 62, 10, 9, 9, 9, 9, 9, 60, 105, 110, 116, 101, 103, 101, 114, 62, 49, 60, 47, 105, 110, 116, 101, 103, 101, 114, 62, 10, 9, 9, + 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, 9, 9, 9, 60, 47, 97, 114, 114, 97, 121, 62, 10, 9, 9, 60, 47, 100, 105, 99, 116, 62, 10, + 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 65, 80, + 73, 86, 101, 114, 115, 105, 111, 110, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 48, 48, 46, 50, 48, 60, 47, + 115, 116, 114, 105, 110, 103, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, + 105, 99, 107, 101, 116, 46, 112, 114, 105, 118, 97, 116, 101, 76, 111, 99, 107, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 102, 97, 108, 115, 101, + 47, 62, 10, 9, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, + 46, 116, 121, 112, 101, 60, 47, 107, 101, 121, 62, 10, 9, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, + 112, 114, 105, 110, 116, 46, 80, 97, 112, 101, 114, 73, 110, 102, 111, 84, 105, 99, 107, 101, 116, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, + 60, 47, 100, 105, 99, 116, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, + 99, 107, 101, 116, 46, 65, 80, 73, 86, 101, 114, 115, 105, 111, 110, 60, 47, 107, 101, 121, 62, 10, 9, 60, 115, 116, 114, 105, 110, 103, 62, 48, + 48, 46, 50, 48, 60, 47, 115, 116, 114, 105, 110, 103, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, + 105, 110, 116, 46, 116, 105, 99, 107, 101, 116, 46, 112, 114, 105, 118, 97, 116, 101, 76, 111, 99, 107, 60, 47, 107, 101, 121, 62, 10, 9, 60, 102, + 97, 108, 115, 101, 47, 62, 10, 9, 60, 107, 101, 121, 62, 99, 111, 109, 46, 97, 112, 112, 108, 101, 46, 112, 114, 105, 110, 116, 46, 116, 105, 99, + 107, 101, 116, 46, 116, 121, 112, 101, 60, 47, 107, 101, 121, 62, 10, 9, 60, 115, 116, 114, 105, 110, 103, 62, 99, 111, 109, 46, 97, 112, 112, 108, + 101, 46, 112, 114, 105, 110, 116, 46, 80, 97, 103, 101, 70, 111, 114, 109, 97, 116, 84, 105, 99, 107, 101, 116, 60, 47, 115, 116, 114, 105, 110, 103, + 62, 10, 60, 47, 100, 105, 99, 116, 62, 10, 60, 47, 112, 108, 105, 115, 116, 62, 10, 0, 56, 66, 73, 77, 3, 233, 0, 0, 0, 0, 0, 120, + 0, 3, 0, 0, 0, 72, 0, 72, 0, 0, 0, 0, 2, 222, 2, 64, 255, 238, 255, 238, 3, 6, 2, 82, 3, 103, 5, 40, 3, 252, 0, 2, + 0, 0, 0, 72, 0, 72, 0, 0, 0, 0, 2, 216, 2, 40, 0, 1, 0, 0, 0, 100, 0, 0, 0, 1, 0, 3, 3, 3, 0, 0, 0, 1, + 127, 255, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 8, 0, 25, 1, 144, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 66, 73, 77, 3, 237, 0, 0, + 0, 0, 0, 16, 0, 101, 0, 0, 0, 1, 0, 1, 0, 101, 0, 0, 0, 1, 0, 1, 56, 66, 73, 77, 4, 38, 0, 0, 0, 0, 0, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 128, 0, 0, 56, 66, 73, 77, 4, 13, 0, 0, 0, 0, 0, 4, 0, 0, 0, 30, 56, 66, + 73, 77, 4, 25, 0, 0, 0, 0, 0, 4, 0, 0, 0, 30, 56, 66, 73, 77, 3, 243, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 56, 66, 73, 77, 4, 10, 0, 0, 0, 0, 0, 1, 1, 0, 56, 66, 73, 77, 39, 16, 0, 0, 0, 0, 0, 10, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 1, 56, 66, 73, 77, 3, 245, 0, 0, 0, 0, 0, 72, 0, 47, 102, 102, 0, 1, 0, 108, 102, 102, 0, 6, + 0, 0, 0, 0, 0, 1, 0, 47, 102, 102, 0, 1, 0, 161, 153, 154, 0, 6, 0, 0, 0, 0, 0, 1, 0, 50, 0, 0, 0, 1, 0, 90, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 53, 0, 0, 0, 1, 0, 45, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 56, 66, 73, 77, + 3, 248, 0, 0, 0, 0, 0, 112, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 3, 232, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 3, 232, 0, 0, + 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 3, 232, 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 3, 232, 0, 0, 56, 66, 73, 77, 4, 8, 0, 0, + 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 2, 64, 0, 0, 2, 64, 0, 0, 0, 0, 56, 66, 73, 77, 4, 30, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 56, 66, 73, 77, 4, 26, 0, 0, 0, 0, 3, 73, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, + 0, 0, 1, 19, 0, 0, 0, 10, 0, 76, 0, 111, 0, 119, 0, 101, 0, 114, 0, 95, 0, 76, 0, 101, 0, 102, 0, 116, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 19, + 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 110, 117, 108, 108, 0, 0, 0, 2, 0, 0, 0, 6, 98, + 111, 117, 110, 100, 115, 79, 98, 106, 99, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 82, 99, 116, 49, 0, 0, 0, 4, 0, 0, 0, 0, 84, + 111, 112, 32, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 76, 101, 102, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 116, 111, 109, 108, 111, 110, 103, 0, 0, 0, 207, 0, 0, 0, 0, 82, 103, 104, 116, 108, 111, 110, 103, 0, 0, 1, 19, 0, 0, 0, 6, 115, + 108, 105, 99, 101, 115, 86, 108, 76, 115, 0, 0, 0, 1, 79, 98, 106, 99, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5, 115, 108, 105, 99, 101, + 0, 0, 0, 18, 0, 0, 0, 7, 115, 108, 105, 99, 101, 73, 68, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 7, 103, 114, 111, 117, 112, + 73, 68, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 6, 111, 114, 105, 103, 105, 110, 101, 110, 117, 109, 0, 0, 0, 12, 69, 83, 108, 105, + 99, 101, 79, 114, 105, 103, 105, 110, 0, 0, 0, 13, 97, 117, 116, 111, 71, 101, 110, 101, 114, 97, 116, 101, 100, 0, 0, 0, 0, 84, 121, 112, + 101, 101, 110, 117, 109, 0, 0, 0, 10, 69, 83, 108, 105, 99, 101, 84, 121, 112, 101, 0, 0, 0, 0, 73, 109, 103, 32, 0, 0, 0, 6, 98, + 111, 117, 110, 100, 115, 79, 98, 106, 99, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 82, 99, 116, 49, 0, 0, 0, 4, 0, 0, 0, 0, 84, + 111, 112, 32, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 76, 101, 102, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 116, 111, 109, 108, 111, 110, 103, 0, 0, 0, 207, 0, 0, 0, 0, 82, 103, 104, 116, 108, 111, 110, 103, 0, 0, 1, 19, 0, 0, 0, 3, 117, + 114, 108, 84, 69, 88, 84, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 110, 117, 108, 108, 84, 69, 88, 84, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 77, 115, 103, 101, 84, 69, 88, 84, 0, 0, 0, 1, 0, 0, 0, 0, 0, 6, 97, 108, 116, 84, 97, 103, 84, 69, 88, 84, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 14, 99, 101, 108, 108, 84, 101, 120, 116, 73, 115, 72, 84, 77, 76, 98, 111, 111, 108, 1, 0, 0, 0, 8, 99, + 101, 108, 108, 84, 101, 120, 116, 84, 69, 88, 84, 0, 0, 0, 1, 0, 0, 0, 0, 0, 9, 104, 111, 114, 122, 65, 108, 105, 103, 110, 101, 110, + 117, 109, 0, 0, 0, 15, 69, 83, 108, 105, 99, 101, 72, 111, 114, 122, 65, 108, 105, 103, 110, 0, 0, 0, 7, 100, 101, 102, 97, 117, 108, 116, + 0, 0, 0, 9, 118, 101, 114, 116, 65, 108, 105, 103, 110, 101, 110, 117, 109, 0, 0, 0, 15, 69, 83, 108, 105, 99, 101, 86, 101, 114, 116, 65, + 108, 105, 103, 110, 0, 0, 0, 7, 100, 101, 102, 97, 117, 108, 116, 0, 0, 0, 11, 98, 103, 67, 111, 108, 111, 114, 84, 121, 112, 101, 101, 110, + 117, 109, 0, 0, 0, 17, 69, 83, 108, 105, 99, 101, 66, 71, 67, 111, 108, 111, 114, 84, 121, 112, 101, 0, 0, 0, 0, 78, 111, 110, 101, 0, + 0, 0, 9, 116, 111, 112, 79, 117, 116, 115, 101, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 10, 108, 101, 102, 116, 79, 117, 116, 115, + 101, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 0, 0, 12, 98, 111, 116, 116, 111, 109, 79, 117, 116, 115, 101, 116, 108, 111, 110, 103, 0, 0, + 0, 0, 0, 0, 0, 11, 114, 105, 103, 104, 116, 79, 117, 116, 115, 101, 116, 108, 111, 110, 103, 0, 0, 0, 0, 0, 56, 66, 73, 77, 4, 40, + 0, 0, 0, 0, 0, 12, 0, 0, 0, 1, 63, 240, 0, 0, 0, 0, 0, 0, 56, 66, 73, 77, 4, 20, 0, 0, 0, 0, 0, 4, 0, 0, + 0, 1, 56, 66, 73, 77, 4, 12, 0, 0, 0, 0, 31, 26, 0, 0, 0, 1, 0, 0, 0, 160, 0, 0, 0, 120, 0, 0, 1, 224, 0, 0, + 225, 0, 0, 0, 30, 254, 0, 24, 0, 1, 255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 2, 1, 0, 72, 0, 72, 0, 0, 255, 237, + 0, 12, 65, 100, 111, 98, 101, 95, 67, 77, 0, 1, 255, 238, 0, 14, 65, 100, 111, 98, 101, 0, 100, 128, 0, 0, 0, 1, 255, 219, 0, 132, + 0, 12, 8, 8, 8, 9, 8, 12, 9, 9, 12, 17, 11, 10, 11, 17, 21, 15, 12, 12, 15, 21, 24, 19, 19, 21, 19, 19, 24, 17, 12, 12, + 12, 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 1, 13, 11, 11, 13, 14, 13, 16, 14, 14, 16, 20, 14, 14, 14, 20, 20, 14, 14, 14, 14, 20, 17, 12, 12, 12, 12, 12, 17, 17, 12, + 12, 12, 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 255, 192, 0, 17, 8, 0, 120, 0, 160, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1, 255, 221, 0, 4, 0, 10, 255, 196, 1, 63, 0, + 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 1, 0, 1, 5, + 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 0, 1, 4, 1, 3, 2, + 4, 2, 5, 7, 6, 8, 5, 3, 12, 51, 1, 0, 2, 17, 3, 4, 33, 18, 49, 5, 65, 81, 97, 19, 34, 113, 129, 50, 6, 20, 145, 161, + 177, 66, 35, 36, 21, 82, 193, 98, 51, 52, 114, 130, 209, 67, 7, 37, 146, 83, 240, 225, 241, 99, 115, 53, 22, 162, 178, 131, 38, 68, 147, 84, + 100, 69, 194, 163, 116, 54, 23, 210, 85, 226, 101, 242, 179, 132, 195, 211, 117, 227, 243, 70, 39, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, + 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 17, 0, 2, 2, + 1, 2, 4, 4, 3, 4, 5, 6, 7, 7, 6, 5, 53, 1, 0, 2, 17, 3, 33, 49, 18, 4, 65, 81, 97, 113, 34, 19, 5, 50, 129, 145, + 20, 161, 177, 66, 35, 193, 82, 209, 240, 51, 36, 98, 225, 114, 130, 146, 67, 83, 21, 99, 115, 52, 241, 37, 6, 22, 162, 178, 131, 7, 38, 53, + 194, 210, 68, 147, 84, 163, 23, 100, 69, 85, 54, 116, 101, 226, 242, 179, 132, 195, 211, 117, 227, 243, 70, 148, 164, 133, 180, 149, 196, 212, 228, 244, + 165, 181, 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 255, 218, 0, 12, + 3, 1, 0, 2, 17, 3, 17, 0, 63, 0, 217, 77, 181, 74, 18, 133, 191, 110, 51, 24, 74, 20, 245, 78, 7, 138, 86, 166, 0, 36, 167, 3, + 193, 45, 161, 11, 83, 8, 75, 106, 36, 4, 160, 37, 106, 213, 132, 37, 10, 123, 124, 210, 0, 37, 106, 97, 183, 239, 241, 66, 201, 177, 245, 179, + 109, 100, 11, 140, 22, 147, 35, 107, 103, 223, 102, 240, 215, 109, 126, 223, 162, 212, 249, 185, 47, 199, 173, 174, 170, 189, 246, 61, 193, 173, 27, 75, + 128, 26, 251, 220, 198, 185, 159, 69, 80, 162, 214, 100, 208, 204, 166, 207, 233, 216, 219, 61, 67, 0, 157, 6, 210, 227, 244, 182, 183, 232, 236, 84, + 57, 222, 112, 64, 75, 20, 62, 114, 42, 71, 247, 56, 191, 238, 157, 14, 75, 147, 51, 49, 203, 63, 144, 27, 143, 245, 140, 127, 238, 85, 109, 30, + 173, 173, 177, 214, 111, 218, 73, 110, 230, 57, 230, 98, 93, 238, 127, 181, 137, 220, 252, 79, 80, 55, 212, 253, 43, 125, 205, 175, 212, 99, 9, 145, + 27, 54, 185, 205, 246, 170, 214, 100, 57, 254, 165, 142, 109, 129, 140, 209, 156, 141, 206, 229, 174, 121, 63, 187, 249, 136, 89, 14, 13, 99, 235, 162, + 199, 122, 140, 126, 132, 234, 215, 188, 15, 118, 218, 157, 183, 243, 191, 50, 191, 73, 100, 29, 221, 126, 154, 58, 14, 174, 135, 141, 206, 30, 240, 75, + 155, 54, 25, 39, 200, 139, 118, 38, 127, 217, 88, 217, 113, 99, 100, 1, 30, 160, 108, 73, 111, 231, 122, 141, 119, 246, 154, 179, 105, 186, 202, 246, + 191, 101, 141, 115, 158, 230, 221, 89, 222, 30, 72, 50, 219, 54, 191, 107, 43, 245, 43, 219, 250, 61, 255, 0, 161, 175, 254, 49, 89, 178, 218, 174, + 166, 189, 149, 144, 224, 248, 120, 172, 135, 29, 209, 181, 174, 185, 164, 7, 108, 247, 33, 213, 61, 19, 58, 188, 0, 208, 251, 25, 71, 98, 192, 231, + 2, 12, 29, 205, 115, 93, 186, 214, 238, 221, 249, 234, 94, 181, 80, 108, 45, 174, 189, 209, 238, 221, 83, 131, 164, 254, 235, 94, 221, 187, 213, 81, + 69, 212, 185, 172, 99, 141, 45, 123, 90, 239, 66, 11, 94, 76, 143, 210, 52, 87, 27, 119, 60, 251, 223, 234, 123, 211, 127, 149, 157, 103, 185, 228, + 215, 91, 143, 175, 112, 99, 105, 0, 60, 251, 69, 52, 182, 188, 155, 183, 253, 47, 126, 203, 55, 215, 250, 91, 146, 58, 169, 185, 97, 198, 125, 79, + 46, 13, 110, 132, 151, 141, 128, 131, 252, 155, 24, 246, 89, 185, 190, 207, 210, 53, 65, 175, 174, 178, 219, 113, 216, 253, 167, 219, 237, 48, 76, 14, + 91, 191, 223, 183, 250, 202, 189, 53, 245, 2, 214, 155, 235, 15, 121, 1, 172, 164, 217, 93, 155, 72, 247, 253, 161, 238, 99, 107, 173, 149, 123, 90, + 239, 240, 150, 255, 0, 212, 32, 228, 228, 88, 41, 22, 23, 59, 115, 67, 134, 222, 1, 213, 219, 191, 55, 221, 238, 254, 66, 10, 167, 255, 208, 221, + 227, 132, 146, 37, 141, 115, 88, 231, 181, 175, 119, 12, 46, 0, 241, 60, 21, 61, 154, 193, 209, 110, 113, 14, 142, 57, 7, 179, 20, 161, 75, 103, + 154, 65, 169, 90, 24, 164, 166, 25, 170, 125, 130, 80, 180, 234, 141, 40, 42, 123, 18, 219, 199, 137, 236, 149, 169, 134, 169, 245, 136, 143, 135, 197, + 51, 238, 174, 179, 177, 210, 92, 4, 237, 110, 186, 127, 91, 232, 127, 210, 85, 178, 114, 89, 101, 110, 166, 61, 54, 88, 54, 216, 94, 230, 238, 45, + 63, 152, 221, 92, 198, 238, 111, 210, 80, 101, 230, 240, 227, 187, 144, 50, 31, 163, 29, 91, 24, 185, 60, 217, 42, 163, 81, 63, 165, 47, 72, 106, + 245, 42, 170, 204, 177, 133, 190, 163, 154, 33, 173, 177, 146, 25, 160, 119, 171, 183, 210, 115, 119, 238, 223, 179, 222, 168, 99, 226, 217, 91, 190, 200, + 235, 75, 170, 218, 95, 83, 109, 157, 210, 231, 61, 206, 216, 210, 215, 253, 13, 205, 217, 255, 0, 65, 94, 117, 245, 58, 24, 46, 99, 90, 200, 110, + 214, 189, 176, 60, 190, 142, 239, 163, 251, 170, 22, 125, 153, 196, 89, 182, 179, 107, 4, 122, 164, 146, 224, 127, 53, 219, 134, 223, 163, 43, 19, 36, + 204, 231, 41, 31, 211, 54, 237, 194, 30, 222, 56, 66, 59, 64, 0, 136, 99, 180, 189, 237, 180, 11, 92, 67, 28, 234, 225, 238, 113, 219, 59, 95, + 177, 206, 31, 154, 239, 164, 198, 34, 183, 166, 179, 113, 107, 158, 230, 130, 55, 59, 110, 225, 59, 101, 140, 123, 157, 181, 255, 0, 191, 249, 158, 154, + 6, 62, 127, 82, 23, 213, 131, 176, 94, 202, 198, 215, 90, 93, 5, 194, 116, 184, 49, 254, 237, 155, 63, 63, 223, 234, 41, 99, 245, 234, 236, 189, + 212, 181, 174, 107, 131, 160, 16, 233, 108, 127, 89, 140, 246, 255, 0, 41, 55, 134, 73, 247, 97, 177, 53, 209, 190, 41, 2, 182, 140, 134, 55, 46, + 218, 79, 232, 222, 230, 7, 193, 63, 164, 117, 88, 219, 163, 110, 237, 191, 206, 63, 103, 248, 61, 246, 126, 137, 82, 202, 232, 162, 234, 43, 198, 186, + 235, 40, 6, 201, 117, 140, 5, 182, 7, 17, 184, 184, 190, 145, 239, 109, 150, 59, 244, 109, 183, 244, 106, 224, 205, 13, 126, 227, 105, 15, 104, 135, + 52, 184, 159, 243, 101, 141, 114, 155, 51, 88, 210, 28, 215, 67, 132, 157, 9, 141, 127, 234, 191, 206, 74, 138, 237, 41, 167, 87, 72, 199, 162, 151, + 211, 83, 157, 104, 99, 182, 131, 104, 121, 45, 59, 154, 239, 81, 161, 239, 246, 221, 237, 250, 117, 254, 143, 210, 255, 0, 130, 86, 42, 101, 222, 163, + 218, 46, 99, 216, 214, 134, 138, 203, 119, 22, 236, 221, 171, 201, 103, 243, 110, 247, 253, 5, 100, 100, 181, 239, 46, 178, 194, 99, 66, 101, 206, 18, + 62, 143, 231, 55, 254, 169, 67, 35, 245, 140, 103, 215, 246, 162, 192, 246, 150, 111, 99, 70, 230, 255, 0, 197, 187, 212, 247, 127, 105, 42, 241, 65, + 145, 29, 11, 91, 210, 104, 168, 218, 5, 37, 238, 14, 221, 107, 26, 125, 250, 111, 104, 119, 239, 126, 99, 222, 179, 217, 83, 30, 49, 234, 3, 214, + 107, 220, 208, 224, 194, 1, 36, 157, 214, 56, 239, 245, 63, 71, 162, 191, 129, 134, 206, 158, 108, 140, 155, 44, 55, 22, 151, 2, 24, 193, 160, 45, + 221, 182, 178, 239, 119, 187, 223, 238, 71, 244, 170, 115, 183, 16, 29, 3, 218, 11, 90, 54, 196, 183, 115, 28, 209, 185, 158, 215, 109, 66, 149, 25, + 18, 5, 138, 250, 191, 255, 209, 194, 203, 234, 237, 47, 127, 81, 199, 187, 210, 46, 21, 89, 47, 155, 28, 198, 239, 119, 160, 253, 159, 225, 45, 125, + 159, 224, 217, 254, 7, 254, 9, 118, 253, 59, 34, 236, 172, 42, 175, 190, 191, 70, 215, 238, 15, 175, 79, 105, 107, 141, 126, 232, 46, 107, 93, 237, + 250, 59, 151, 13, 85, 7, 43, 26, 235, 113, 47, 169, 246, 91, 235, 27, 41, 180, 13, 43, 112, 247, 238, 119, 232, 159, 182, 171, 234, 103, 166, 234, + 189, 55, 255, 0, 55, 250, 55, 210, 175, 96, 253, 109, 24, 207, 126, 35, 31, 235, 84, 125, 26, 112, 220, 230, 150, 22, 176, 48, 82, 239, 70, 130, + 109, 217, 189, 219, 50, 125, 75, 223, 255, 0, 130, 43, 88, 39, 28, 49, 148, 231, 34, 125, 207, 80, 13, 44, 177, 227, 28, 49, 2, 226, 246, 111, + 115, 107, 169, 215, 62, 69, 108, 105, 123, 221, 28, 53, 163, 115, 138, 171, 71, 85, 233, 185, 17, 232, 228, 48, 203, 154, 200, 113, 218, 119, 56, 23, + 177, 187, 108, 219, 249, 141, 245, 63, 168, 185, 11, 242, 250, 149, 217, 182, 100, 63, 36, 61, 173, 99, 128, 173, 238, 151, 141, 199, 247, 11, 189, 55, + 83, 118, 239, 230, 220, 239, 77, 66, 187, 105, 108, 84, 217, 245, 157, 89, 134, 151, 29, 187, 78, 183, 61, 173, 5, 223, 71, 243, 127, 115, 249, 186, + 211, 37, 241, 35, 96, 198, 26, 120, 168, 114, 162, 181, 151, 216, 246, 199, 63, 167, 181, 197, 142, 201, 173, 174, 13, 15, 50, 237, 54, 184, 236, 111, + 184, 123, 55, 110, 252, 207, 166, 140, 199, 215, 99, 119, 86, 246, 189, 134, 70, 246, 157, 205, 208, 236, 119, 185, 179, 244, 95, 237, 92, 30, 251, 154, + 235, 31, 180, 56, 187, 123, 222, 55, 144, 208, 218, 218, 125, 49, 91, 54, 143, 206, 250, 123, 25, 234, 45, 46, 131, 245, 139, 33, 221, 57, 184, 237, + 21, 186, 242, 28, 234, 221, 238, 115, 154, 205, 222, 234, 246, 61, 173, 245, 110, 118, 239, 231, 126, 133, 41, 216, 254, 33, 100, 251, 145, 225, 21, 233, + 225, 255, 0, 162, 175, 186, 19, 66, 7, 212, 79, 233, 108, 244, 185, 89, 184, 216, 172, 121, 181, 224, 216, 193, 62, 139, 92, 55, 127, 111, 233, 108, + 84, 174, 234, 111, 179, 30, 210, 43, 110, 205, 90, 230, 13, 197, 238, 19, 251, 223, 163, 246, 254, 126, 239, 209, 170, 20, 11, 154, 193, 252, 219, 45, + 219, 188, 87, 33, 160, 126, 243, 173, 218, 219, 55, 191, 249, 127, 190, 140, 44, 183, 210, 34, 199, 180, 56, 128, 219, 6, 227, 27, 143, 210, 27, 142, + 213, 91, 47, 59, 146, 118, 1, 225, 143, 104, 186, 24, 121, 28, 112, 163, 164, 165, 251, 210, 215, 213, 253, 214, 108, 191, 17, 204, 107, 217, 75, 95, + 89, 224, 213, 83, 220, 223, 131, 96, 189, 51, 114, 113, 119, 185, 163, 16, 238, 111, 210, 154, 154, 193, 30, 44, 181, 231, 109, 143, 253, 202, 213, 122, + 91, 179, 212, 172, 123, 97, 218, 0, 64, 16, 230, 238, 46, 107, 182, 109, 119, 191, 223, 254, 17, 61, 56, 121, 68, 52, 61, 251, 3, 78, 226, 90, + 67, 139, 160, 183, 249, 207, 103, 185, 174, 102, 255, 0, 252, 237, 86, 45, 177, 109, 134, 245, 26, 11, 1, 251, 45, 174, 104, 128, 210, 69, 66, 1, + 48, 214, 251, 109, 114, 155, 51, 43, 176, 77, 88, 165, 193, 195, 83, 189, 128, 130, 97, 219, 70, 133, 187, 253, 202, 14, 192, 194, 112, 31, 161, 244, + 137, 110, 219, 54, 78, 167, 77, 190, 239, 167, 236, 219, 233, 251, 157, 244, 16, 168, 194, 186, 151, 29, 187, 3, 163, 247, 223, 186, 63, 53, 174, 209, + 155, 255, 0, 235, 169, 90, 168, 165, 25, 23, 213, 100, 179, 13, 140, 13, 16, 79, 175, 92, 237, 35, 232, 54, 182, 212, 239, 250, 180, 129, 174, 150, + 187, 107, 70, 219, 129, 45, 165, 197, 161, 187, 160, 23, 251, 189, 191, 246, 234, 13, 152, 111, 109, 161, 210, 210, 121, 14, 117, 142, 157, 206, 39, 232, + 251, 91, 251, 200, 246, 214, 91, 165, 158, 149, 167, 110, 193, 36, 152, 105, 252, 211, 191, 250, 175, 247, 181, 43, 61, 212, 113, 196, 238, 26, 88, 15, + 234, 76, 27, 111, 162, 203, 28, 64, 115, 65, 19, 13, 111, 179, 249, 221, 207, 171, 110, 159, 152, 237, 234, 198, 55, 83, 222, 29, 24, 54, 155, 42, + 59, 109, 99, 106, 221, 181, 208, 28, 61, 219, 191, 59, 114, 178, 44, 113, 22, 56, 70, 210, 240, 230, 203, 222, 68, 129, 198, 167, 103, 167, 237, 221, + 177, 13, 164, 180, 6, 53, 173, 112, 113, 157, 193, 209, 4, 247, 245, 63, 242, 95, 152, 149, 147, 186, 216, 195, 135, 105, 105, 216, 179, 61, 85, 236, + 231, 166, 228, 196, 0, 210, 69, 108, 4, 158, 222, 235, 80, 221, 215, 233, 130, 71, 78, 202, 112, 17, 185, 227, 208, 218, 9, 210, 28, 227, 122, 137, + 171, 39, 113, 12, 121, 144, 65, 219, 45, 32, 9, 247, 126, 99, 127, 237, 221, 233, 233, 197, 120, 165, 245, 228, 146, 250, 201, 131, 4, 73, 4, 238, + 250, 59, 79, 134, 196, 23, 238, 206, 206, 179, 85, 96, 54, 254, 155, 155, 80, 36, 68, 215, 81, 157, 194, 68, 53, 153, 27, 255, 0, 232, 161, 142, + 175, 209, 246, 239, 179, 31, 42, 176, 237, 125, 216, 214, 30, 251, 127, 192, 250, 159, 156, 137, 145, 91, 92, 40, 166, 134, 182, 166, 85, 102, 246, 203, + 221, 160, 253, 215, 250, 187, 175, 115, 119, 126, 251, 150, 125, 88, 22, 61, 155, 90, 205, 130, 214, 254, 149, 228, 86, 251, 93, 185, 206, 127, 181, 245, + 250, 149, 251, 90, 223, 207, 199, 183, 103, 252, 98, 86, 58, 168, 223, 79, 197, 255, 210, 227, 47, 205, 191, 5, 213, 102, 49, 246, 49, 247, 85, 83, + 109, 171, 105, 0, 200, 245, 31, 246, 135, 57, 155, 29, 235, 52, 191, 102, 199, 255, 0, 47, 216, 177, 168, 173, 151, 229, 210, 199, 3, 182, 215, 180, + 16, 211, 238, 32, 187, 111, 210, 113, 246, 185, 117, 76, 107, 50, 241, 205, 77, 50, 237, 128, 93, 234, 57, 246, 82, 11, 35, 212, 109, 85, 63, 243, + 25, 109, 62, 133, 119, 58, 207, 78, 175, 210, 250, 74, 205, 206, 161, 217, 6, 214, 210, 193, 147, 138, 198, 214, 44, 46, 14, 220, 54, 251, 152, 198, + 215, 244, 170, 118, 253, 244, 223, 103, 233, 233, 244, 190, 202, 155, 197, 0, 15, 171, 88, 254, 138, 193, 99, 166, 253, 89, 53, 134, 202, 42, 27, 154, + 75, 67, 36, 129, 32, 150, 29, 182, 178, 136, 107, 159, 250, 45, 187, 107, 247, 127, 57, 250, 71, 161, 227, 180, 253, 138, 151, 88, 247, 111, 176, 123, + 237, 100, 181, 207, 131, 191, 107, 221, 103, 187, 110, 239, 102, 199, 127, 194, 37, 145, 107, 183, 63, 209, 30, 161, 96, 45, 20, 51, 71, 57, 192, 178, + 203, 93, 251, 187, 42, 143, 250, 231, 243, 127, 225, 16, 232, 201, 13, 197, 107, 94, 230, 189, 215, 18, 235, 171, 210, 193, 99, 237, 115, 75, 170, 46, + 112, 99, 91, 236, 179, 247, 253, 138, 188, 79, 113, 186, 140, 116, 209, 85, 189, 142, 206, 125, 131, 30, 186, 108, 120, 13, 170, 199, 56, 50, 194, 226, + 1, 221, 64, 119, 230, 84, 221, 222, 167, 231, 220, 135, 78, 91, 70, 123, 42, 170, 166, 213, 104, 176, 254, 157, 144, 67, 125, 129, 172, 165, 186, 255, + 0, 53, 233, 125, 61, 254, 155, 61, 119, 171, 79, 186, 217, 109, 178, 8, 113, 5, 166, 201, 115, 75, 127, 54, 182, 86, 209, 234, 87, 91, 183, 108, + 177, 255, 0, 79, 254, 49, 84, 55, 177, 185, 30, 174, 56, 102, 70, 59, 170, 115, 155, 67, 245, 107, 3, 125, 150, 190, 170, 103, 237, 27, 254, 155, + 127, 193, 86, 164, 210, 85, 208, 82, 0, 111, 83, 212, 125, 92, 138, 137, 110, 221, 207, 123, 3, 88, 38, 199, 54, 15, 168, 224, 42, 250, 52, 251, + 127, 224, 214, 221, 231, 15, 30, 230, 91, 99, 247, 16, 206, 43, 14, 29, 254, 147, 203, 94, 230, 123, 255, 0, 194, 44, 92, 124, 93, 212, 53, 249, + 35, 244, 149, 139, 107, 99, 154, 65, 30, 155, 206, 234, 189, 213, 71, 169, 181, 159, 153, 252, 226, 119, 179, 244, 85, 177, 142, 23, 13, 240, 226, 227, + 47, 96, 0, 185, 150, 49, 231, 115, 61, 10, 255, 0, 63, 214, 254, 118, 212, 201, 71, 134, 235, 241, 100, 134, 89, 68, 16, 9, 212, 186, 248, 245, + 87, 146, 255, 0, 94, 151, 111, 197, 155, 26, 14, 235, 11, 203, 230, 11, 127, 72, 63, 65, 93, 81, 244, 24, 159, 50, 191, 74, 160, 43, 46, 109, + 174, 112, 99, 12, 23, 183, 118, 191, 79, 243, 189, 251, 125, 53, 75, 167, 94, 198, 178, 31, 121, 219, 97, 0, 75, 117, 99, 90, 226, 119, 110, 113, + 102, 235, 110, 115, 191, 71, 251, 140, 68, 183, 169, 90, 3, 106, 169, 238, 117, 187, 159, 88, 250, 33, 238, 13, 143, 210, 15, 115, 127, 205, 70, 58, + 134, 126, 48, 69, 153, 17, 47, 52, 217, 52, 92, 41, 99, 69, 206, 101, 132, 7, 189, 194, 183, 60, 52, 52, 111, 184, 55, 223, 183, 232, 255, 0, + 164, 244, 191, 237, 196, 204, 191, 27, 29, 184, 226, 204, 166, 187, 213, 108, 250, 142, 223, 160, 239, 99, 96, 251, 104, 119, 238, 88, 167, 86, 77, 22, + 180, 85, 144, 253, 207, 32, 61, 245, 130, 100, 72, 220, 221, 191, 191, 244, 189, 223, 200, 68, 200, 56, 152, 248, 239, 180, 181, 155, 168, 27, 152, 67, + 68, 14, 206, 107, 24, 246, 57, 181, 87, 244, 254, 130, 68, 119, 11, 197, 143, 80, 150, 137, 62, 205, 92, 146, 210, 210, 233, 221, 15, 123, 203, 34, + 52, 112, 223, 234, 109, 179, 243, 189, 69, 43, 49, 157, 101, 96, 239, 103, 169, 196, 18, 242, 0, 252, 232, 107, 99, 243, 62, 130, 6, 86, 79, 161, + 67, 109, 23, 250, 148, 92, 65, 22, 73, 145, 62, 230, 232, 127, 53, 234, 173, 157, 90, 230, 186, 170, 69, 192, 190, 243, 250, 35, 59, 154, 90, 79, + 183, 134, 165, 73, 57, 0, 220, 183, 235, 196, 34, 166, 178, 231, 203, 139, 164, 236, 121, 12, 31, 186, 89, 189, 142, 247, 55, 254, 219, 85, 114, 250, + 111, 82, 185, 246, 186, 177, 95, 162, 90, 26, 198, 177, 230, 93, 167, 187, 117, 123, 88, 198, 61, 174, 254, 90, 133, 89, 153, 86, 61, 237, 99, 128, + 118, 226, 223, 231, 96, 199, 248, 63, 100, 125, 53, 99, 237, 121, 213, 48, 220, 230, 215, 175, 243, 207, 14, 220, 118, 48, 75, 118, 214, 14, 247, 187, + 126, 239, 162, 196, 170, 188, 208, 72, 152, 212, 154, 9, 112, 49, 178, 43, 196, 107, 51, 203, 13, 173, 221, 46, 173, 197, 210, 63, 52, 125, 26, 255, + 0, 53, 72, 99, 216, 223, 79, 209, 37, 204, 4, 23, 54, 89, 237, 215, 254, 27, 211, 107, 246, 254, 103, 166, 239, 248, 196, 153, 152, 108, 118, 192, + 230, 60, 150, 135, 29, 174, 208, 207, 185, 167, 123, 253, 47, 106, 71, 43, 42, 96, 213, 187, 249, 65, 195, 108, 30, 93, 182, 119, 255, 0, 81, 10, + 181, 195, 74, 34, 90, 109, 224, 217, 244, 220, 231, 251, 133, 142, 7, 233, 62, 187, 107, 104, 108, 3, 180, 250, 59, 154, 246, 179, 221, 250, 86, 85, + 191, 123, 208, 233, 161, 226, 92, 247, 52, 57, 225, 141, 58, 23, 67, 90, 216, 250, 59, 78, 223, 210, 59, 220, 169, 89, 213, 41, 14, 12, 109, 86, + 110, 146, 117, 14, 246, 233, 184, 57, 251, 126, 139, 127, 150, 140, 220, 214, 18, 100, 75, 127, 120, 184, 152, 241, 75, 135, 197, 34, 96, 245, 127, 255, + 211, 194, 45, 102, 5, 23, 184, 58, 11, 11, 136, 104, 96, 231, 103, 167, 183, 99, 14, 223, 167, 239, 254, 218, 173, 131, 154, 247, 147, 45, 15, 181, + 173, 96, 55, 87, 46, 224, 54, 182, 111, 120, 99, 127, 70, 215, 254, 231, 243, 47, 68, 15, 173, 185, 53, 85, 33, 172, 172, 185, 161, 155, 139, 90, + 216, 59, 233, 127, 242, 61, 79, 161, 244, 189, 61, 255, 0, 240, 137, 195, 170, 171, 31, 117, 109, 27, 158, 217, 123, 222, 118, 142, 30, 250, 158, 255, + 0, 167, 250, 39, 59, 217, 234, 127, 35, 212, 177, 84, 243, 4, 222, 200, 220, 172, 40, 123, 175, 164, 88, 90, 225, 104, 115, 3, 4, 123, 160, 127, + 35, 252, 31, 208, 245, 63, 207, 66, 201, 201, 196, 46, 24, 182, 84, 203, 107, 111, 181, 231, 102, 205, 128, 131, 91, 109, 146, 95, 233, 86, 255, 0, + 230, 253, 223, 164, 254, 162, 123, 44, 216, 252, 81, 88, 44, 176, 215, 190, 28, 28, 210, 3, 203, 28, 250, 154, 226, 31, 233, 177, 206, 179, 221, 255, + 0, 91, 83, 247, 83, 153, 85, 21, 86, 69, 153, 14, 16, 67, 119, 182, 198, 250, 142, 107, 218, 198, 109, 218, 239, 117, 158, 167, 168, 157, 194, 73, + 4, 14, 251, 120, 33, 141, 182, 183, 38, 171, 141, 206, 125, 98, 219, 43, 24, 214, 216, 92, 32, 183, 109, 182, 182, 143, 163, 254, 16, 51, 101, 149, + 255, 0, 230, 106, 213, 77, 105, 165, 238, 173, 226, 187, 173, 18, 231, 237, 29, 128, 96, 183, 111, 168, 230, 223, 99, 171, 111, 253, 184, 179, 141, 29, + 75, 37, 216, 87, 88, 198, 218, 192, 94, 253, 239, 19, 45, 14, 221, 1, 191, 233, 63, 69, 107, 107, 175, 249, 207, 240, 107, 71, 13, 152, 215, 154, + 110, 199, 216, 30, 1, 103, 170, 53, 107, 195, 139, 131, 44, 107, 63, 192, 109, 177, 191, 164, 123, 154, 205, 254, 146, 117, 206, 58, 68, 15, 27, 71, + 68, 248, 238, 182, 150, 195, 114, 31, 113, 13, 214, 226, 214, 135, 134, 192, 250, 12, 135, 53, 174, 246, 191, 223, 98, 20, 22, 190, 219, 28, 231, 7, + 88, 101, 204, 212, 84, 27, 89, 221, 233, 178, 161, 237, 118, 255, 0, 230, 222, 228, 102, 26, 220, 214, 251, 90, 95, 104, 244, 236, 47, 33, 165, 251, + 5, 78, 174, 203, 125, 61, 159, 163, 219, 99, 254, 131, 85, 111, 85, 151, 7, 186, 189, 43, 22, 28, 119, 67, 137, 177, 214, 184, 254, 137, 163, 103, + 230, 88, 199, 57, 207, 254, 95, 232, 212, 114, 57, 72, 223, 136, 39, 68, 199, 212, 107, 189, 7, 63, 115, 156, 56, 48, 118, 141, 190, 148, 185, 199, + 111, 231, 59, 110, 246, 254, 122, 31, 163, 115, 137, 244, 239, 13, 15, 1, 181, 134, 48, 218, 101, 191, 161, 117, 118, 215, 187, 220, 247, 187, 223, 253, + 69, 31, 77, 149, 219, 185, 204, 107, 46, 123, 6, 214, 185, 196, 134, 1, 181, 207, 101, 113, 183, 243, 254, 151, 250, 91, 20, 48, 243, 172, 126, 93, + 245, 223, 83, 45, 44, 112, 115, 158, 230, 232, 199, 31, 97, 246, 55, 217, 103, 182, 180, 220, 82, 225, 36, 238, 43, 84, 246, 117, 250, 99, 92, 215, + 26, 45, 167, 210, 203, 21, 67, 172, 14, 221, 105, 219, 249, 143, 177, 223, 185, 187, 243, 61, 137, 179, 31, 142, 219, 62, 207, 115, 156, 5, 149, 155, + 43, 97, 113, 112, 223, 244, 218, 31, 180, 127, 163, 111, 208, 107, 144, 44, 178, 187, 45, 126, 69, 173, 110, 240, 8, 183, 105, 38, 27, 187, 107, 69, + 109, 111, 245, 127, 207, 68, 195, 205, 244, 219, 99, 88, 208, 67, 116, 175, 118, 177, 164, 216, 198, 79, 230, 251, 191, 123, 249, 197, 56, 151, 22, 163, + 84, 241, 116, 61, 58, 166, 233, 141, 55, 92, 202, 178, 154, 215, 189, 205, 220, 41, 115, 101, 178, 211, 237, 124, 59, 102, 239, 111, 179, 221, 86, 197, + 99, 171, 122, 225, 181, 187, 27, 107, 46, 14, 244, 198, 240, 214, 144, 8, 246, 129, 111, 167, 185, 158, 163, 142, 223, 75, 127, 189, 83, 102, 67, 219, + 155, 102, 75, 131, 141, 86, 211, 232, 90, 234, 135, 184, 128, 119, 125, 25, 117, 158, 231, 125, 59, 41, 217, 250, 63, 248, 37, 44, 203, 112, 178, 171, + 47, 182, 215, 215, 93, 85, 250, 150, 212, 201, 54, 180, 183, 232, 49, 141, 253, 239, 223, 123, 109, 246, 39, 24, 222, 169, 19, 244, 112, 143, 29, 88, + 87, 93, 24, 158, 171, 238, 218, 251, 228, 23, 185, 205, 13, 118, 224, 15, 182, 173, 199, 115, 182, 53, 223, 245, 197, 44, 172, 134, 219, 142, 241, 14, + 112, 176, 123, 43, 168, 31, 112, 34, 63, 69, 171, 55, 125, 27, 54, 36, 206, 164, 31, 72, 109, 99, 90, 224, 88, 247, 48, 58, 11, 182, 157, 154, + 126, 125, 109, 119, 231, 127, 198, 44, 219, 113, 223, 181, 245, 151, 218, 230, 135, 203, 97, 251, 157, 187, 159, 127, 169, 238, 244, 54, 255, 0, 56, 255, + 0, 230, 246, 126, 141, 9, 13, 191, 106, 195, 51, 176, 59, 167, 233, 93, 70, 183, 95, 86, 35, 47, 19, 180, 1, 88, 46, 12, 112, 97, 244, 171, + 126, 205, 172, 115, 220, 255, 0, 204, 217, 190, 181, 107, 43, 168, 19, 148, 220, 86, 53, 220, 187, 244, 142, 38, 6, 140, 151, 88, 90, 93, 249, 150, + 239, 254, 66, 173, 137, 145, 75, 61, 39, 62, 239, 88, 99, 3, 185, 224, 108, 115, 157, 183, 103, 168, 214, 67, 189, 54, 109, 115, 61, 63, 244, 106, + 54, 58, 202, 217, 101, 142, 213, 237, 111, 166, 242, 194, 36, 200, 104, 126, 75, 7, 210, 245, 182, 108, 246, 108, 245, 189, 68, 52, 236, 174, 50, 35, + 86, 220, 233, 246, 238, 202, 34, 154, 92, 95, 77, 111, 54, 189, 160, 184, 7, 75, 3, 27, 91, 172, 246, 190, 207, 223, 171, 243, 21, 156, 236, 215, + 227, 48, 87, 88, 244, 236, 47, 37, 213, 22, 195, 121, 159, 237, 54, 223, 223, 84, 113, 114, 14, 61, 204, 165, 182, 23, 86, 214, 126, 146, 230, 48, + 84, 25, 99, 116, 121, 216, 253, 187, 45, 127, 248, 84, 246, 215, 101, 238, 113, 109, 158, 237, 9, 14, 38, 55, 234, 211, 186, 195, 31, 213, 175, 98, + 110, 210, 243, 100, 142, 82, 49, 208, 15, 255, 212, 227, 250, 126, 43, 235, 205, 201, 55, 19, 107, 246, 181, 219, 157, 251, 214, 56, 134, 219, 232, 125, + 47, 209, 127, 45, 158, 197, 114, 230, 122, 181, 181, 183, 61, 204, 46, 104, 33, 192, 107, 13, 110, 231, 216, 24, 230, 251, 172, 127, 187, 111, 187, 211, + 103, 166, 181, 155, 87, 163, 72, 13, 124, 216, 43, 13, 115, 195, 79, 14, 1, 191, 165, 115, 27, 234, 63, 221, 255, 0, 169, 21, 107, 50, 93, 83, + 153, 67, 104, 177, 251, 216, 255, 0, 90, 210, 224, 72, 15, 7, 212, 253, 35, 93, 185, 150, 91, 254, 155, 247, 20, 70, 4, 238, 117, 209, 97, 46, + 115, 44, 48, 251, 26, 215, 186, 186, 216, 214, 182, 160, 230, 180, 57, 194, 199, 99, 154, 46, 124, 110, 174, 203, 55, 51, 249, 191, 248, 79, 77, 104, + 116, 252, 107, 26, 118, 91, 80, 222, 219, 69, 141, 174, 79, 166, 93, 244, 133, 180, 92, 225, 190, 167, 59, 255, 0, 3, 255, 0, 71, 250, 68, 245, + 99, 86, 204, 10, 241, 192, 4, 90, 73, 107, 160, 16, 75, 157, 188, 13, 251, 55, 217, 244, 191, 63, 243, 255, 0, 72, 196, 245, 89, 124, 209, 85, + 45, 99, 218, 230, 110, 244, 152, 211, 47, 0, 126, 102, 232, 117, 127, 164, 186, 191, 107, 148, 144, 28, 62, 104, 37, 14, 69, 54, 186, 220, 139, 88, + 193, 117, 128, 111, 103, 167, 237, 46, 107, 156, 246, 228, 110, 103, 233, 31, 86, 219, 89, 244, 61, 15, 231, 42, 255, 0, 139, 69, 197, 45, 171, 38, + 203, 107, 173, 166, 131, 233, 89, 142, 24, 210, 45, 101, 122, 210, 125, 55, 104, 223, 103, 190, 231, 213, 249, 149, 217, 254, 151, 244, 42, 118, 86, 250, + 219, 109, 148, 15, 74, 194, 90, 69, 130, 11, 139, 247, 134, 89, 237, 179, 233, 53, 158, 255, 0, 210, 253, 5, 110, 155, 92, 94, 47, 105, 13, 166, + 125, 42, 246, 196, 69, 110, 138, 253, 187, 133, 111, 99, 63, 53, 72, 100, 13, 87, 213, 0, 82, 27, 49, 125, 42, 236, 164, 109, 107, 242, 108, 169, + 181, 214, 1, 112, 129, 187, 123, 89, 177, 190, 179, 91, 107, 127, 70, 239, 77, 155, 63, 71, 250, 79, 77, 97, 101, 98, 87, 211, 177, 44, 176, 48, + 88, 239, 88, 151, 100, 98, 128, 106, 97, 219, 233, 250, 97, 150, 183, 222, 218, 127, 73, 233, 101, 255, 0, 52, 251, 45, 191, 236, 254, 175, 243, 203, + 168, 99, 169, 99, 11, 235, 111, 230, 185, 182, 22, 145, 238, 13, 63, 164, 168, 185, 222, 198, 183, 115, 191, 77, 90, 7, 166, 215, 58, 219, 111, 247, + 11, 88, 214, 0, 9, 116, 180, 73, 115, 173, 110, 214, 253, 23, 255, 0, 53, 183, 222, 155, 99, 160, 87, 215, 249, 7, 140, 202, 200, 173, 214, 227, + 217, 68, 214, 200, 151, 50, 178, 237, 225, 174, 33, 238, 225, 222, 155, 91, 254, 142, 170, 189, 53, 161, 211, 168, 176, 99, 222, 246, 88, 107, 125, 229, + 141, 103, 170, 237, 198, 0, 105, 157, 155, 127, 73, 127, 253, 115, 244, 95, 245, 167, 173, 11, 122, 54, 4, 87, 145, 85, 143, 204, 177, 164, 154, 203, + 152, 61, 55, 144, 55, 56, 53, 149, 250, 85, 254, 119, 231, 126, 143, 213, 255, 0, 9, 234, 44, 107, 58, 235, 171, 107, 233, 13, 101, 175, 115, 195, + 131, 162, 34, 61, 177, 104, 111, 183, 219, 254, 15, 209, 179, 216, 153, 56, 216, 208, 111, 166, 171, 135, 102, 254, 29, 246, 90, 243, 88, 181, 185, 69, + 173, 107, 158, 107, 220, 39, 118, 253, 187, 221, 95, 210, 123, 93, 254, 15, 249, 191, 85, 105, 186, 250, 234, 170, 186, 221, 181, 140, 45, 104, 134, 141, + 178, 231, 125, 43, 11, 90, 93, 239, 123, 255, 0, 63, 254, 219, 89, 221, 42, 174, 161, 102, 83, 243, 104, 123, 27, 83, 65, 99, 139, 189, 161, 194, + 61, 198, 154, 88, 11, 190, 147, 91, 250, 79, 251, 109, 235, 85, 184, 117, 178, 183, 123, 119, 136, 208, 22, 8, 2, 7, 208, 247, 250, 127, 71, 247, + 189, 245, 189, 65, 44, 100, 17, 194, 116, 251, 21, 125, 26, 222, 161, 107, 156, 26, 78, 251, 31, 18, 29, 233, 237, 115, 128, 219, 191, 244, 119, 239, + 217, 89, 250, 45, 250, 107, 95, 34, 252, 23, 180, 156, 112, 230, 214, 70, 192, 29, 96, 116, 199, 182, 219, 44, 246, 141, 237, 250, 74, 135, 217, 104, + 99, 93, 112, 250, 7, 115, 157, 67, 119, 6, 136, 216, 62, 139, 125, 223, 69, 191, 205, 86, 139, 83, 113, 235, 171, 115, 1, 115, 107, 144, 199, 19, + 4, 134, 253, 9, 120, 111, 239, 255, 0, 54, 164, 191, 78, 246, 129, 167, 68, 152, 214, 212, 110, 123, 26, 223, 66, 177, 96, 59, 217, 4, 109, 49, + 190, 235, 27, 183, 244, 191, 247, 245, 90, 230, 214, 203, 139, 113, 229, 237, 97, 150, 220, 201, 111, 168, 90, 67, 247, 217, 235, 127, 55, 141, 110, 237, + 254, 255, 0, 207, 82, 59, 152, 192, 242, 231, 219, 93, 178, 227, 164, 186, 55, 79, 169, 236, 134, 237, 244, 217, 183, 211, 254, 113, 5, 239, 202, 181, + 142, 20, 193, 15, 107, 54, 81, 32, 18, 3, 191, 73, 244, 246, 179, 220, 199, 213, 191, 249, 31, 190, 129, 40, 11, 181, 230, 203, 28, 246, 215, 181, + 210, 6, 214, 186, 79, 169, 205, 155, 156, 207, 119, 169, 95, 231, 239, 253, 29, 126, 159, 169, 234, 32, 185, 153, 1, 245, 222, 246, 182, 246, 135, 15, + 84, 18, 36, 60, 188, 75, 169, 134, 126, 142, 188, 95, 252, 25, 96, 140, 187, 141, 245, 51, 38, 227, 77, 54, 188, 89, 96, 231, 218, 225, 246, 119, + 250, 77, 111, 230, 212, 234, 238, 110, 221, 255, 0, 158, 183, 241, 141, 45, 104, 57, 32, 92, 251, 8, 13, 165, 174, 14, 15, 26, 250, 91, 163, 111, + 211, 219, 249, 191, 240, 169, 17, 73, 219, 84, 157, 34, 231, 55, 14, 250, 110, 216, 43, 5, 246, 155, 132, 246, 220, 255, 0, 231, 44, 253, 39, 243, + 94, 237, 136, 239, 251, 62, 57, 116, 48, 135, 62, 11, 199, 187, 97, 144, 25, 181, 147, 237, 103, 230, 39, 22, 212, 26, 199, 53, 190, 173, 150, 151, + 2, 215, 190, 34, 125, 214, 75, 89, 237, 218, 207, 209, 181, 205, 102, 253, 254, 162, 173, 126, 11, 178, 181, 177, 238, 52, 177, 238, 45, 219, 244, 131, + 142, 194, 198, 251, 139, 171, 245, 25, 178, 205, 244, 187, 212, 170, 175, 81, 54, 84, 144, 95, 255, 213, 174, 113, 173, 14, 216, 242, 250, 158, 203, 158, + 207, 16, 97, 167, 213, 178, 183, 159, 205, 222, 61, 158, 223, 248, 52, 22, 217, 73, 101, 119, 57, 192, 178, 214, 18, 215, 184, 130, 3, 121, 115, 216, + 101, 158, 165, 142, 218, 218, 253, 158, 167, 245, 24, 163, 126, 94, 30, 76, 101, 151, 6, 209, 234, 122, 68, 184, 157, 205, 175, 123, 247, 91, 164, 182, + 151, 89, 239, 183, 212, 103, 233, 63, 70, 158, 198, 95, 140, 220, 107, 50, 201, 111, 217, 218, 104, 97, 99, 125, 67, 186, 183, 228, 81, 145, 181, 167, + 219, 250, 95, 74, 155, 125, 159, 224, 212, 124, 75, 40, 133, 141, 174, 115, 253, 0, 205, 197, 155, 90, 28, 214, 180, 250, 110, 115, 102, 32, 123, 61, + 70, 212, 235, 61, 77, 255, 0, 205, 254, 122, 158, 54, 46, 61, 65, 198, 183, 22, 73, 37, 161, 206, 36, 7, 2, 243, 187, 251, 31, 159, 71, 254, + 162, 75, 19, 165, 218, 30, 43, 221, 53, 250, 141, 119, 162, 214, 128, 214, 52, 29, 185, 21, 232, 125, 251, 220, 255, 0, 165, 254, 13, 11, 37, 172, + 144, 28, 249, 0, 181, 146, 65, 96, 222, 92, 94, 246, 241, 99, 31, 189, 143, 244, 247, 127, 194, 255, 0, 219, 102, 194, 23, 188, 180, 135, 31, 70, + 75, 182, 251, 172, 246, 185, 192, 206, 202, 216, 94, 127, 71, 251, 251, 255, 0, 115, 212, 82, 175, 24, 9, 200, 134, 217, 96, 116, 82, 211, 186, 90, + 91, 236, 119, 169, 244, 183, 127, 219, 127, 230, 32, 102, 101, 50, 191, 68, 61, 204, 217, 121, 44, 216, 246, 200, 119, 31, 163, 221, 252, 213, 126, 167, + 232, 189, 246, 187, 101, 116, 239, 83, 176, 176, 80, 28, 106, 134, 104, 75, 125, 196, 135, 71, 181, 187, 207, 233, 61, 39, 109, 111, 183, 244, 136, 133, + 48, 251, 91, 173, 186, 230, 229, 180, 84, 107, 143, 74, 166, 145, 15, 102, 214, 238, 179, 212, 143, 222, 220, 231, 255, 0, 224, 106, 88, 249, 237, 33, + 222, 155, 183, 16, 69, 117, 147, 44, 126, 214, 207, 233, 92, 205, 140, 119, 171, 99, 253, 159, 163, 254, 186, 167, 85, 117, 154, 45, 161, 192, 155, 221, + 181, 150, 58, 224, 226, 223, 73, 147, 111, 218, 113, 216, 231, 87, 234, 217, 142, 255, 0, 78, 159, 165, 252, 239, 232, 253, 38, 40, 227, 208, 42, 234, + 47, 201, 55, 53, 207, 112, 97, 166, 186, 126, 155, 192, 223, 244, 45, 177, 214, 83, 91, 61, 22, 63, 243, 255, 0, 210, 127, 131, 173, 58, 213, 224, + 232, 223, 72, 190, 150, 226, 85, 160, 125, 101, 204, 21, 251, 67, 107, 118, 179, 187, 111, 208, 223, 187, 219, 251, 234, 7, 161, 99, 140, 80, 204, 179, + 234, 64, 145, 115, 15, 166, 240, 116, 117, 181, 215, 99, 71, 167, 91, 55, 255, 0, 164, 245, 108, 255, 0, 72, 134, 206, 161, 109, 54, 26, 203, 125, + 7, 89, 87, 169, 233, 220, 237, 78, 174, 99, 11, 30, 54, 59, 222, 198, 63, 213, 255, 0, 173, 127, 198, 169, 211, 214, 133, 142, 123, 158, 237, 143, + 59, 102, 153, 135, 123, 128, 110, 202, 222, 7, 165, 111, 233, 63, 59, 250, 66, 105, 50, 42, 86, 31, 78, 110, 43, 110, 59, 203, 238, 113, 37, 164, + 31, 110, 198, 112, 225, 188, 189, 173, 221, 191, 243, 125, 52, 178, 223, 146, 219, 43, 109, 116, 155, 220, 119, 3, 233, 63, 80, 237, 173, 14, 221, 92, + 53, 190, 150, 253, 159, 165, 223, 255, 0, 22, 173, 80, 236, 156, 138, 55, 189, 190, 155, 88, 34, 4, 253, 32, 116, 173, 187, 226, 207, 116, 254, 143, + 217, 255, 0, 129, 170, 57, 57, 247, 98, 228, 55, 123, 11, 220, 226, 26, 230, 208, 221, 207, 135, 53, 207, 107, 125, 87, 251, 93, 178, 55, 92, 196, + 40, 119, 72, 95, 38, 198, 12, 127, 179, 250, 130, 187, 1, 107, 224, 201, 120, 4, 153, 222, 239, 115, 119, 57, 219, 254, 130, 45, 91, 222, 64, 99, + 118, 210, 106, 105, 221, 27, 119, 61, 229, 207, 115, 182, 125, 38, 109, 179, 99, 212, 104, 201, 196, 180, 87, 148, 233, 34, 170, 193, 107, 247, 67, 6, + 243, 238, 120, 165, 187, 125, 223, 188, 247, 126, 138, 175, 77, 77, 215, 188, 228, 181, 187, 225, 128, 123, 136, 102, 227, 14, 27, 128, 175, 93, 191, 224, + 183, 127, 198, 38, 158, 193, 13, 91, 31, 113, 200, 177, 165, 190, 142, 247, 52, 88, 215, 57, 173, 1, 173, 107, 190, 208, 241, 254, 19, 223, 182, 191, + 160, 229, 159, 149, 149, 173, 110, 199, 172, 91, 77, 84, 110, 105, 113, 150, 86, 15, 183, 159, 117, 155, 54, 50, 214, 63, 127, 191, 212, 86, 114, 119, + 87, 151, 102, 67, 89, 191, 30, 231, 53, 129, 251, 182, 51, 220, 119, 110, 247, 59, 103, 231, 250, 108, 115, 63, 71, 236, 81, 115, 50, 172, 45, 194, + 125, 47, 162, 166, 110, 251, 67, 193, 141, 222, 163, 118, 251, 75, 125, 158, 163, 220, 207, 230, 63, 194, 123, 61, 95, 230, 208, 0, 117, 213, 90, 54, + 113, 25, 142, 214, 182, 218, 246, 2, 91, 234, 189, 173, 0, 182, 28, 208, 209, 107, 63, 226, 154, 239, 211, 110, 253, 31, 248, 79, 231, 214, 11, 186, + 173, 204, 203, 118, 69, 27, 155, 69, 142, 130, 65, 32, 185, 140, 135, 62, 169, 254, 115, 249, 123, 255, 0, 157, 247, 173, 59, 49, 133, 45, 169, 184, + 172, 219, 138, 214, 250, 153, 44, 113, 104, 32, 187, 219, 233, 183, 118, 237, 158, 214, 239, 253, 39, 248, 101, 94, 254, 137, 109, 143, 173, 182, 90, 69, + 55, 7, 89, 141, 91, 1, 221, 4, 111, 125, 215, 52, 111, 244, 154, 199, 191, 244, 159, 206, 39, 64, 3, 170, 172, 55, 46, 234, 15, 126, 45, 183, + 80, 70, 61, 205, 111, 180, 144, 99, 219, 182, 118, 110, 63, 206, 59, 217, 244, 63, 224, 255, 0, 70, 137, 211, 236, 244, 107, 15, 178, 199, 219, 99, + 28, 67, 183, 23, 183, 105, 177, 206, 185, 245, 109, 112, 171, 212, 183, 233, 251, 255, 0, 210, 170, 79, 233, 217, 181, 184, 212, 203, 11, 42, 180, 134, + 250, 176, 61, 190, 149, 127, 166, 46, 103, 185, 219, 236, 255, 0, 166, 137, 135, 211, 122, 141, 142, 140, 203, 37, 193, 190, 160, 170, 199, 186, 210, 215, + 15, 209, 236, 244, 220, 231, 86, 235, 54, 253, 61, 206, 255, 0, 11, 252, 218, 82, 136, 162, 84, 255, 0, 255, 214, 230, 113, 109, 207, 193, 125, 119, + 53, 149, 219, 64, 123, 108, 118, 62, 246, 233, 92, 182, 189, 219, 41, 221, 181, 205, 252, 251, 189, 159, 162, 80, 253, 167, 126, 53, 182, 177, 172, 180, + 244, 250, 110, 101, 152, 242, 14, 250, 218, 61, 245, 85, 188, 126, 237, 127, 162, 125, 142, 246, 61, 149, 174, 77, 37, 23, 216, 131, 227, 244, 125, 15, + 15, 172, 88, 220, 47, 69, 195, 78, 156, 42, 4, 134, 159, 87, 211, 118, 214, 227, 189, 158, 239, 211, 99, 89, 153, 178, 157, 237, 253, 46, 63, 173, + 233, 127, 131, 245, 22, 43, 114, 178, 206, 87, 163, 118, 234, 133, 39, 100, 177, 197, 195, 159, 91, 210, 126, 227, 255, 0, 7, 249, 255, 0, 224, 23, + 44, 146, 35, 115, 93, 150, 233, 111, 117, 139, 151, 54, 187, 208, 223, 107, 173, 46, 181, 225, 129, 190, 153, 96, 37, 158, 157, 173, 179, 252, 29, 21, + 217, 250, 54, 255, 0, 219, 106, 195, 238, 167, 38, 223, 211, 60, 92, 217, 105, 44, 222, 36, 29, 92, 217, 253, 39, 187, 119, 250, 47, 103, 232, 216, + 188, 245, 36, 226, 167, 190, 56, 216, 222, 133, 181, 186, 193, 235, 220, 231, 237, 44, 48, 91, 36, 212, 250, 157, 189, 173, 217, 94, 159, 224, 182, 89, + 103, 233, 63, 70, 178, 255, 0, 102, 229, 178, 227, 110, 51, 223, 134, 93, 3, 31, 30, 151, 62, 194, 94, 78, 231, 122, 175, 177, 222, 155, 241, 219, + 249, 246, 251, 217, 255, 0, 130, 174, 85, 36, 141, 222, 138, 30, 15, 73, 117, 87, 95, 148, 235, 173, 111, 235, 140, 99, 119, 55, 219, 91, 26, 233, + 218, 95, 115, 76, 238, 221, 252, 239, 173, 183, 210, 255, 0, 173, 34, 28, 12, 188, 59, 93, 150, 247, 110, 109, 208, 215, 109, 46, 45, 51, 252, 231, + 187, 233, 123, 182, 238, 251, 66, 229, 210, 78, 55, 67, 241, 87, 87, 209, 49, 222, 5, 34, 208, 230, 237, 33, 151, 29, 165, 187, 33, 163, 101, 155, + 157, 187, 211, 219, 187, 249, 175, 252, 9, 25, 183, 211, 101, 182, 53, 206, 107, 118, 24, 108, 65, 221, 3, 244, 198, 217, 219, 250, 74, 255, 0, 155, + 219, 254, 143, 211, 177, 121, 170, 73, 170, 125, 11, 55, 3, 1, 166, 183, 250, 77, 120, 32, 84, 230, 137, 12, 2, 70, 231, 57, 213, 254, 111, 179, + 101, 91, 255, 0, 70, 144, 201, 195, 109, 150, 181, 182, 109, 45, 181, 205, 176, 16, 15, 185, 197, 165, 173, 99, 79, 210, 103, 179, 217, 255, 0, 127, + 94, 122, 146, 97, 170, 210, 208, 41, 244, 10, 236, 160, 89, 107, 172, 27, 125, 90, 218, 45, 99, 9, 218, 26, 210, 61, 251, 108, 253, 27, 55, 59, + 249, 198, 57, 49, 35, 34, 203, 106, 118, 215, 177, 132, 125, 16, 67, 131, 92, 61, 39, 55, 108, 253, 23, 110, 221, 99, 255, 0, 225, 127, 155, 244, + 182, 46, 1, 36, 205, 58, 47, 28, 53, 175, 127, 240, 158, 225, 244, 101, 253, 177, 237, 96, 178, 173, 129, 181, 239, 115, 38, 191, 70, 175, 111, 168, + 247, 251, 107, 119, 181, 187, 27, 187, 212, 127, 252, 26, 181, 77, 172, 176, 6, 151, 108, 33, 135, 123, 137, 209, 219, 142, 205, 187, 93, 244, 91, 187, + 114, 243, 212, 147, 227, 117, 252, 22, 158, 30, 150, 250, 39, 173, 123, 109, 45, 12, 112, 46, 3, 101, 142, 27, 70, 208, 76, 185, 191, 202, 102, 223, + 204, 254, 115, 254, 182, 163, 83, 26, 11, 155, 141, 88, 139, 44, 47, 177, 206, 59, 108, 123, 143, 248, 71, 111, 220, 221, 223, 159, 255, 0, 162, 215, + 158, 164, 151, 167, 197, 15, 255, 217, 56, 66, 73, 77, 4, 33, 0, 0, 0, 0, 0, 83, 0, 0, 0, 1, 1, 0, 0, 0, 15, 0, 65, 0, + 100, 0, 111, 0, 98, 0, 101, 0, 32, 0, 80, 0, 104, 0, 111, 0, 116, 0, 111, 0, 115, 0, 104, 0, 111, 0, 112, 0, 0, 0, 18, 0, + 65, 0, 100, 0, 111, 0, 98, 0, 101, 0, 32, 0, 80, 0, 104, 0, 111, 0, 116, 0, 111, 0, 115, 0, 104, 0, 111, 0, 112, 0, 32, 0, + 67, 0, 83, 0, 0, 0, 1, 0, 56, 66, 73, 77, 4, 6, 0, 0, 0, 0, 0, 7, 255, 255, 0, 0, 0, 1, 1, 0, 255, 225, 25, 58, + 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 0, 60, 63, 120, + 112, 97, 99, 107, 101, 116, 32, 98, 101, 103, 105, 110, 61, 39, 239, 187, 191, 39, 32, 105, 100, 61, 39, 87, 53, 77, 48, 77, 112, 67, 101, 104, + 105, 72, 122, 114, 101, 83, 122, 78, 84, 99, 122, 107, 99, 57, 100, 39, 63, 62, 10, 60, 120, 58, 120, 109, 112, 109, 101, 116, 97, 32, 120, 109, + 108, 110, 115, 58, 120, 61, 39, 97, 100, 111, 98, 101, 58, 110, 115, 58, 109, 101, 116, 97, 47, 39, 32, 120, 58, 120, 109, 112, 116, 107, 61, 39, + 88, 77, 80, 32, 116, 111, 111, 108, 107, 105, 116, 32, 51, 46, 48, 45, 50, 56, 44, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 32, 49, 46, + 54, 39, 62, 10, 60, 114, 100, 102, 58, 82, 68, 70, 32, 120, 109, 108, 110, 115, 58, 114, 100, 102, 61, 39, 104, 116, 116, 112, 58, 47, 47, 119, + 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 49, 57, 57, 57, 47, 48, 50, 47, 50, 50, 45, 114, 100, 102, 45, 115, 121, 110, 116, 97, 120, 45, + 110, 115, 35, 39, 32, 120, 109, 108, 110, 115, 58, 105, 88, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, + 111, 109, 47, 105, 88, 47, 49, 46, 48, 47, 39, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, + 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, + 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 101, 120, + 105, 102, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 101, 120, 105, 102, 47, 49, 46, 48, + 47, 39, 62, 10, 32, 32, 60, 101, 120, 105, 102, 58, 67, 111, 108, 111, 114, 83, 112, 97, 99, 101, 62, 52, 50, 57, 52, 57, 54, 55, 50, 57, + 53, 60, 47, 101, 120, 105, 102, 58, 67, 111, 108, 111, 114, 83, 112, 97, 99, 101, 62, 10, 32, 32, 60, 101, 120, 105, 102, 58, 80, 105, 120, 101, + 108, 88, 68, 105, 109, 101, 110, 115, 105, 111, 110, 62, 50, 55, 53, 60, 47, 101, 120, 105, 102, 58, 80, 105, 120, 101, 108, 88, 68, 105, 109, 101, + 110, 115, 105, 111, 110, 62, 10, 32, 32, 60, 101, 120, 105, 102, 58, 80, 105, 120, 101, 108, 89, 68, 105, 109, 101, 110, 115, 105, 111, 110, 62, 50, + 48, 55, 60, 47, 101, 120, 105, 102, 58, 80, 105, 120, 101, 108, 89, 68, 105, 109, 101, 110, 115, 105, 111, 110, 62, 10, 32, 60, 47, 114, 100, 102, + 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, + 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, + 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 112, + 100, 102, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 112, 100, 102, 47, 49, 46, 51, 47, + 39, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, + 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, + 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, + 32, 32, 120, 109, 108, 110, 115, 58, 112, 104, 111, 116, 111, 115, 104, 111, 112, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, + 98, 101, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 104, 111, 112, 47, 49, 46, 48, 47, 39, 62, 10, 32, 32, 60, 112, 104, 111, 116, 111, + 115, 104, 111, 112, 58, 72, 105, 115, 116, 111, 114, 121, 62, 60, 47, 112, 104, 111, 116, 111, 115, 104, 111, 112, 58, 72, 105, 115, 116, 111, 114, 121, + 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, + 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, + 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, + 32, 120, 109, 108, 110, 115, 58, 116, 105, 102, 102, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, + 47, 116, 105, 102, 102, 47, 49, 46, 48, 47, 39, 62, 10, 32, 32, 60, 116, 105, 102, 102, 58, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, + 62, 49, 60, 47, 116, 105, 102, 102, 58, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 62, 10, 32, 32, 60, 116, 105, 102, 102, 58, 88, 82, + 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 49, 48, 49, 47, 49, 60, 47, 116, 105, 102, 102, 58, 88, 82, 101, 115, 111, 108, 117, 116, 105, 111, + 110, 62, 10, 32, 32, 60, 116, 105, 102, 102, 58, 89, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 49, 48, 49, 47, 49, 60, 47, 116, 105, + 102, 102, 58, 89, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 10, 32, 32, 60, 116, 105, 102, 102, 58, 82, 101, 115, 111, 108, 117, 116, 105, + 111, 110, 85, 110, 105, 116, 62, 50, 60, 47, 116, 105, 102, 102, 58, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 85, 110, 105, 116, 62, 10, 32, + 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, + 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, + 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, + 108, 110, 115, 58, 120, 97, 112, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, + 47, 49, 46, 48, 47, 39, 62, 10, 32, 32, 60, 120, 97, 112, 58, 67, 114, 101, 97, 116, 101, 68, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, + 49, 45, 49, 55, 84, 49, 48, 58, 48, 52, 58, 48, 51, 45, 48, 56, 58, 48, 48, 60, 47, 120, 97, 112, 58, 67, 114, 101, 97, 116, 101, 68, + 97, 116, 101, 62, 10, 32, 32, 60, 120, 97, 112, 58, 77, 111, 100, 105, 102, 121, 68, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, + 55, 84, 49, 55, 58, 50, 51, 58, 49, 49, 45, 48, 56, 58, 48, 48, 60, 47, 120, 97, 112, 58, 77, 111, 100, 105, 102, 121, 68, 97, 116, 101, + 62, 10, 32, 32, 60, 120, 97, 112, 58, 77, 101, 116, 97, 100, 97, 116, 97, 68, 97, 116, 101, 62, 50, 48, 48, 51, 45, 49, 49, 45, 49, 55, + 84, 49, 55, 58, 50, 51, 58, 49, 49, 45, 48, 56, 58, 48, 48, 60, 47, 120, 97, 112, 58, 77, 101, 116, 97, 100, 97, 116, 97, 68, 97, 116, + 101, 62, 10, 32, 32, 60, 120, 97, 112, 58, 67, 114, 101, 97, 116, 111, 114, 84, 111, 111, 108, 62, 65, 100, 111, 98, 101, 32, 80, 104, 111, 116, + 111, 115, 104, 111, 112, 32, 67, 83, 32, 77, 97, 99, 105, 110, 116, 111, 115, 104, 60, 47, 120, 97, 112, 58, 67, 114, 101, 97, 116, 111, 114, 84, + 111, 111, 108, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, + 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, + 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, + 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 120, 97, 112, 77, 77, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, + 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, 47, 109, 109, 47, 39, 62, 10, 32, 32, 60, 120, 97, 112, 77, 77, 58, 68, 111, 99, 117, + 109, 101, 110, 116, 73, 68, 62, 97, 100, 111, 98, 101, 58, 100, 111, 99, 105, 100, 58, 112, 104, 111, 116, 111, 115, 104, 111, 112, 58, 56, 49, 100, + 54, 50, 54, 99, 101, 45, 49, 97, 98, 52, 45, 49, 49, 100, 56, 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, + 55, 60, 47, 120, 97, 112, 77, 77, 58, 68, 111, 99, 117, 109, 101, 110, 116, 73, 68, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, 115, 99, + 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, 102, 58, + 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, 45, 97, + 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 120, 97, 112, 82, 105, 103, + 104, 116, 115, 61, 39, 104, 116, 116, 112, 58, 47, 47, 110, 115, 46, 97, 100, 111, 98, 101, 46, 99, 111, 109, 47, 120, 97, 112, 47, 49, 46, 48, + 47, 114, 105, 103, 104, 116, 115, 47, 39, 62, 10, 32, 32, 60, 120, 97, 112, 82, 105, 103, 104, 116, 115, 58, 77, 97, 114, 107, 101, 100, 62, 84, + 114, 117, 101, 60, 47, 120, 97, 112, 82, 105, 103, 104, 116, 115, 58, 77, 97, 114, 107, 101, 100, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, 101, + 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 32, 60, 114, 100, 102, 58, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 114, 100, + 102, 58, 97, 98, 111, 117, 116, 61, 39, 117, 117, 105, 100, 58, 48, 48, 56, 49, 50, 97, 100, 57, 45, 49, 97, 98, 53, 45, 49, 49, 100, 56, + 45, 97, 50, 55, 98, 45, 100, 50, 97, 48, 48, 55, 48, 99, 50, 100, 102, 55, 39, 10, 32, 32, 120, 109, 108, 110, 115, 58, 100, 99, 61, 39, + 104, 116, 116, 112, 58, 47, 47, 112, 117, 114, 108, 46, 111, 114, 103, 47, 100, 99, 47, 101, 108, 101, 109, 101, 110, 116, 115, 47, 49, 46, 49, 47, + 39, 62, 10, 32, 32, 60, 100, 99, 58, 102, 111, 114, 109, 97, 116, 62, 105, 109, 97, 103, 101, 47, 106, 112, 101, 103, 60, 47, 100, 99, 58, 102, + 111, 114, 109, 97, 116, 62, 10, 32, 32, 60, 100, 99, 58, 114, 105, 103, 104, 116, 115, 62, 10, 32, 32, 32, 60, 114, 100, 102, 58, 65, 108, 116, + 62, 10, 32, 32, 32, 32, 60, 114, 100, 102, 58, 108, 105, 32, 120, 109, 108, 58, 108, 97, 110, 103, 61, 39, 120, 45, 100, 101, 102, 97, 117, 108, + 116, 39, 62, 49, 57, 57, 57, 32, 76, 97, 114, 115, 32, 66, 111, 114, 103, 60, 47, 114, 100, 102, 58, 108, 105, 62, 10, 32, 32, 32, 60, 47, + 114, 100, 102, 58, 65, 108, 116, 62, 10, 32, 32, 60, 47, 100, 99, 58, 114, 105, 103, 104, 116, 115, 62, 10, 32, 60, 47, 114, 100, 102, 58, 68, + 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 10, 10, 60, 47, 114, 100, 102, 58, 82, 68, 70, 62, 10, 60, 47, 120, 58, 120, 109, 112, 109, + 101, 116, 97, 62, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 10, 60, 63, 120, 112, 97, 99, 107, 101, 116, 32, 101, 110, 100, 61, 39, 119, 39, 63, 62, 255, 226, 2, 36, 73, 67, 67, 95, + 80, 82, 79, 70, 73, 76, 69, 0, 1, 1, 0, 0, 2, 20, 65, 68, 66, 69, 2, 16, 0, 0, 109, 110, 116, 114, 82, 71, 66, 32, 88, 89, + 90, 32, 7, 207, 0, 4, 0, 5, 0, 15, 0, 8, 0, 5, 97, 99, 115, 112, 65, 80, 80, 76, 0, 0, 0, 0, 110, 111, 110, 101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 246, 214, 0, 1, 0, 0, 0, 0, 211, 45, 65, 68, 66, 69, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 99, 112, 114, 116, 0, 0, 0, 252, 0, 0, 0, 36, 100, 101, 115, 99, 0, 0, + 1, 32, 0, 0, 0, 95, 119, 116, 112, 116, 0, 0, 1, 128, 0, 0, 0, 20, 98, 107, 112, 116, 0, 0, 1, 148, 0, 0, 0, 20, 114, 84, + 82, 67, 0, 0, 1, 168, 0, 0, 0, 14, 103, 84, 82, 67, 0, 0, 1, 184, 0, 0, 0, 14, 98, 84, 82, 67, 0, 0, 1, 200, 0, 0, + 0, 14, 114, 88, 89, 90, 0, 0, 1, 216, 0, 0, 0, 20, 103, 88, 89, 90, 0, 0, 1, 236, 0, 0, 0, 20, 98, 88, 89, 90, 0, 0, + 2, 0, 0, 0, 0, 20, 116, 101, 120, 116, 0, 0, 0, 0, 40, 99, 41, 32, 49, 57, 57, 57, 32, 65, 100, 111, 98, 101, 32, 83, 121, 115, + 116, 101, 109, 115, 32, 73, 110, 99, 46, 0, 100, 101, 115, 99, 0, 0, 0, 0, 0, 0, 0, 4, 71, 66, 82, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 90, 32, 0, 0, 0, 0, 0, 0, 243, 81, 0, 1, 0, 0, 0, 1, 22, 204, 88, 89, + 90, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 117, 114, 118, 0, 0, 0, 0, 0, 0, 0, 1, 2, 51, + 0, 0, 99, 117, 114, 118, 0, 0, 0, 0, 0, 0, 0, 1, 2, 51, 0, 0, 99, 117, 114, 118, 0, 0, 0, 0, 0, 0, 0, 1, 2, 51, + 0, 0, 88, 89, 90, 32, 0, 0, 0, 0, 0, 0, 98, 151, 0, 0, 183, 135, 0, 0, 24, 217, 88, 89, 90, 32, 0, 0, 0, 0, 0, 0, + 36, 159, 0, 0, 15, 132, 0, 0, 182, 195, 88, 89, 90, 32, 0, 0, 0, 0, 0, 0, 111, 160, 0, 0, 56, 245, 0, 0, 3, 144, 255, 238, + 0, 14, 65, 100, 111, 98, 101, 0, 100, 128, 0, 0, 0, 1, 255, 219, 0, 132, 0, 18, 14, 14, 14, 16, 14, 21, 16, 16, 21, 30, 19, 17, + 19, 30, 35, 26, 21, 21, 26, 35, 34, 23, 23, 23, 23, 23, 34, 17, 12, 12, 12, 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 20, 19, 19, 22, 25, 22, 27, 23, 23, 27, 20, 14, + 14, 14, 20, 20, 14, 14, 14, 14, 20, 17, 12, 12, 12, 12, 12, 17, 17, 12, 12, 12, 12, 12, 12, 17, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 192, 0, 17, 8, 0, 207, 1, 19, 3, 1, 34, + 0, 2, 17, 1, 3, 17, 1, 255, 221, 0, 4, 0, 18, 255, 196, 1, 63, 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 1, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 0, 1, 4, 1, 3, 2, 4, 2, 5, 7, 6, 8, 5, 3, 12, 51, 1, 0, 2, 17, + 3, 4, 33, 18, 49, 5, 65, 81, 97, 19, 34, 113, 129, 50, 6, 20, 145, 161, 177, 66, 35, 36, 21, 82, 193, 98, 51, 52, 114, 130, 209, 67, + 7, 37, 146, 83, 240, 225, 241, 99, 115, 53, 22, 162, 178, 131, 38, 68, 147, 84, 100, 69, 194, 163, 116, 54, 23, 210, 85, 226, 101, 242, 179, 132, + 195, 211, 117, 227, 243, 70, 39, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, + 246, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247, 17, 0, 2, 2, 1, 2, 4, 4, 3, 4, 5, 6, 7, 7, 6, 5, 53, 1, + 0, 2, 17, 3, 33, 49, 18, 4, 65, 81, 97, 113, 34, 19, 5, 50, 129, 145, 20, 161, 177, 66, 35, 193, 82, 209, 240, 51, 36, 98, 225, 114, + 130, 146, 67, 83, 21, 99, 115, 52, 241, 37, 6, 22, 162, 178, 131, 7, 38, 53, 194, 210, 68, 147, 84, 163, 23, 100, 69, 85, 54, 116, 101, 226, + 242, 179, 132, 195, 211, 117, 227, 243, 70, 148, 164, 133, 180, 149, 196, 212, 228, 244, 165, 181, 197, 213, 229, 245, 86, 102, 118, 134, 150, 166, 182, 198, + 214, 230, 246, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 255, 218, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0, 233, 146, 73, 37, + 142, 212, 84, 36, 146, 80, 146, 148, 146, 80, 148, 36, 165, 36, 148, 36, 146, 148, 146, 73, 36, 165, 36, 157, 36, 149, 75, 36, 157, 36, 148, 178, + 73, 210, 73, 84, 178, 73, 210, 73, 84, 178, 73, 214, 126, 110, 112, 169, 194, 186, 207, 190, 36, 144, 55, 104, 164, 199, 142, 89, 36, 35, 16, 145, + 18, 77, 6, 174, 86, 125, 142, 181, 213, 212, 232, 107, 73, 16, 57, 144, 178, 236, 221, 105, 4, 131, 97, 28, 65, 49, 254, 122, 178, 28, 38, 90, + 0, 39, 82, 72, 13, 146, 127, 168, 153, 207, 116, 78, 224, 32, 201, 48, 78, 139, 111, 30, 56, 194, 34, 32, 13, 155, 32, 0, 0, 1, 139, 88, + 75, 116, 27, 79, 129, 50, 66, 94, 147, 195, 247, 7, 0, 210, 53, 228, 153, 73, 214, 237, 26, 23, 29, 220, 2, 67, 71, 253, 6, 40, 122, 134, + 54, 217, 83, 128, 61, 195, 231, 254, 254, 164, 181, 214, 152, 176, 146, 75, 156, 238, 34, 64, 67, 20, 6, 147, 5, 228, 30, 120, 31, 247, 197, 31, + 90, 150, 191, 104, 218, 215, 30, 26, 92, 102, 63, 207, 83, 37, 174, 0, 150, 131, 26, 242, 82, 10, 1, 127, 72, 72, 16, 224, 38, 121, 208, 166, + 52, 176, 159, 113, 123, 128, 50, 27, 58, 2, 145, 180, 0, 72, 173, 198, 53, 49, 237, 227, 251, 104, 39, 34, 182, 136, 125, 90, 18, 117, 4, 158, + 80, 61, 148, 82, 28, 90, 156, 8, 115, 92, 224, 76, 234, 237, 68, 34, 122, 44, 32, 0, 195, 237, 26, 16, 239, 113, 10, 5, 230, 61, 149, 181, + 195, 137, 34, 74, 128, 169, 142, 35, 126, 56, 7, 145, 19, 31, 244, 30, 138, 135, 130, 96, 194, 208, 26, 107, 113, 7, 147, 58, 165, 233, 177, 196, + 147, 92, 147, 161, 131, 169, 8, 36, 0, 64, 20, 128, 7, 36, 151, 54, 15, 249, 234, 67, 70, 201, 108, 52, 0, 64, 5, 226, 18, 74, 206, 165, + 165, 224, 73, 107, 15, 44, 32, 185, 164, 143, 250, 132, 131, 118, 62, 65, 4, 147, 50, 14, 221, 0, 254, 90, 137, 182, 194, 226, 24, 28, 208, 209, + 4, 146, 96, 73, 255, 0, 4, 157, 227, 216, 26, 78, 167, 177, 74, 181, 165, 54, 61, 75, 127, 124, 241, 63, 72, 36, 170, 108, 103, 239, 31, 14, + 233, 37, 167, 101, 63, 255, 208, 233, 210, 73, 58, 199, 106, 172, 146, 116, 146, 82, 201, 39, 73, 37, 44, 146, 116, 145, 165, 44, 146, 116, 146, 165, + 41, 36, 146, 74, 148, 164, 146, 73, 42, 82, 146, 73, 36, 169, 74, 73, 36, 43, 236, 244, 233, 115, 244, 150, 131, 19, 226, 140, 65, 36, 1, 250, + 69, 52, 118, 114, 250, 135, 85, 53, 185, 213, 84, 91, 160, 146, 73, 131, 10, 136, 126, 241, 50, 73, 48, 76, 121, 170, 57, 15, 15, 123, 201, 169, + 197, 229, 187, 88, 72, 6, 26, 127, 215, 122, 158, 45, 245, 250, 1, 179, 27, 9, 104, 17, 182, 118, 173, 204, 120, 161, 142, 32, 68, 13, 126, 102, + 196, 98, 6, 129, 178, 237, 173, 147, 192, 239, 58, 234, 130, 28, 219, 73, 46, 48, 209, 160, 3, 80, 117, 72, 188, 56, 128, 248, 131, 168, 0, 201, + 42, 0, 29, 150, 53, 181, 184, 61, 130, 64, 49, 7, 95, 250, 106, 90, 54, 186, 153, 109, 172, 181, 207, 120, 5, 147, 0, 16, 54, 232, 80, 174, + 108, 13, 236, 37, 165, 160, 114, 33, 160, 207, 231, 167, 44, 120, 97, 99, 129, 59, 8, 46, 13, 153, 33, 201, 137, 108, 180, 57, 194, 92, 28, 28, + 199, 13, 199, 67, 253, 180, 142, 197, 74, 173, 197, 198, 202, 192, 221, 107, 0, 36, 129, 184, 1, 251, 159, 235, 250, 85, 38, 90, 192, 8, 112, 4, + 128, 0, 28, 29, 17, 107, 198, 199, 112, 154, 164, 56, 0, 69, 109, 37, 173, 46, 113, 253, 30, 250, 212, 62, 199, 107, 24, 231, 218, 26, 0, 26, + 144, 75, 142, 135, 247, 246, 123, 63, 240, 68, 128, 219, 85, 82, 91, 29, 91, 170, 36, 180, 134, 157, 9, 18, 15, 249, 232, 108, 217, 35, 99, 129, + 16, 64, 211, 152, 80, 5, 205, 199, 54, 56, 130, 195, 50, 208, 4, 145, 62, 205, 149, 179, 247, 208, 41, 207, 168, 144, 27, 67, 159, 6, 72, 17, + 34, 74, 4, 234, 45, 71, 197, 48, 174, 192, 29, 34, 107, 116, 18, 92, 8, 4, 79, 245, 211, 59, 214, 97, 5, 214, 53, 180, 240, 42, 104, 218, + 76, 254, 127, 211, 68, 139, 94, 92, 246, 53, 208, 208, 11, 152, 224, 65, 26, 255, 0, 128, 244, 191, 245, 109, 72, 145, 75, 171, 115, 157, 13, 32, + 70, 134, 73, 252, 255, 0, 237, 163, 93, 148, 211, 169, 207, 176, 184, 1, 107, 152, 208, 72, 45, 1, 135, 79, 248, 84, 245, 60, 220, 7, 166, 219, + 8, 108, 238, 46, 144, 209, 31, 206, 126, 250, 212, 178, 182, 188, 55, 81, 13, 130, 208, 30, 0, 227, 255, 0, 5, 64, 123, 50, 9, 134, 180, 22, + 1, 4, 192, 46, 32, 164, 0, 234, 160, 16, 155, 131, 164, 50, 72, 28, 150, 153, 13, 36, 40, 90, 26, 70, 226, 100, 192, 242, 208, 35, 100, 105, + 81, 107, 90, 8, 28, 6, 144, 61, 206, 40, 79, 108, 1, 62, 216, 241, 145, 160, 68, 141, 84, 135, 212, 62, 7, 233, 109, 231, 186, 72, 59, 79, + 151, 27, 249, 73, 10, 42, 163, 217, 255, 209, 234, 19, 39, 73, 100, 53, 84, 146, 73, 36, 154, 82, 73, 36, 146, 148, 146, 73, 36, 165, 36, 146, + 73, 41, 73, 37, 9, 66, 84, 165, 36, 146, 73, 82, 148, 146, 116, 145, 165, 44, 179, 250, 149, 237, 109, 94, 148, 7, 57, 196, 72, 38, 32, 43, + 25, 89, 85, 211, 89, 18, 11, 200, 32, 52, 106, 101, 98, 7, 187, 87, 29, 206, 113, 212, 147, 202, 185, 202, 96, 50, 144, 156, 129, 224, 129, 100, + 132, 77, 217, 106, 144, 215, 184, 146, 211, 0, 13, 32, 242, 130, 234, 218, 215, 52, 180, 150, 0, 73, 50, 39, 233, 31, 229, 171, 133, 238, 39, 70, + 159, 153, 28, 40, 219, 73, 177, 162, 92, 90, 1, 224, 68, 106, 181, 13, 214, 129, 152, 82, 51, 80, 0, 13, 250, 158, 241, 201, 41, 154, 198, 2, + 232, 36, 206, 133, 178, 68, 71, 246, 210, 117, 159, 101, 13, 5, 192, 180, 146, 76, 137, 32, 35, 151, 210, 30, 52, 104, 121, 212, 17, 0, 194, 34, + 67, 170, 105, 128, 104, 120, 6, 92, 12, 128, 4, 107, 1, 78, 182, 86, 1, 218, 72, 18, 65, 48, 53, 83, 47, 129, 34, 76, 246, 128, 101, 73, + 175, 32, 68, 13, 79, 4, 13, 81, 232, 166, 13, 168, 84, 64, 18, 231, 153, 212, 128, 14, 210, 149, 128, 88, 75, 64, 222, 76, 49, 196, 17, 13, + 104, 247, 169, 185, 207, 2, 67, 68, 3, 200, 0, 65, 83, 101, 164, 130, 32, 2, 53, 51, 8, 15, 10, 83, 89, 244, 51, 99, 156, 65, 97, 48, + 6, 132, 56, 199, 252, 26, 118, 227, 225, 181, 133, 241, 46, 238, 248, 59, 193, 86, 32, 145, 184, 67, 164, 234, 70, 160, 169, 135, 53, 172, 218, 26, + 222, 53, 7, 141, 82, 53, 221, 13, 67, 83, 3, 14, 192, 64, 241, 31, 72, 194, 78, 165, 132, 10, 220, 226, 208, 225, 161, 49, 58, 43, 0, 18, + 54, 195, 91, 228, 70, 128, 39, 112, 171, 80, 224, 29, 34, 52, 4, 104, 80, 50, 27, 18, 150, 176, 173, 161, 155, 67, 162, 4, 146, 0, 4, 143, + 245, 253, 244, 171, 168, 52, 64, 120, 33, 209, 3, 83, 162, 89, 150, 57, 148, 237, 168, 110, 14, 59, 72, 30, 226, 52, 84, 177, 108, 191, 215, 27, + 90, 231, 49, 192, 7, 180, 130, 91, 180, 4, 211, 48, 13, 36, 1, 91, 132, 215, 49, 147, 88, 115, 135, 180, 247, 49, 221, 14, 227, 181, 174, 123, + 68, 128, 9, 130, 67, 164, 194, 190, 250, 216, 246, 128, 230, 196, 113, 7, 83, 5, 5, 212, 86, 247, 22, 195, 154, 116, 32, 141, 4, 79, 253, 253, + 62, 197, 245, 67, 8, 187, 253, 31, 248, 56, 250, 3, 252, 196, 149, 141, 143, 241, 30, 28, 158, 18, 71, 84, 104, 255, 0, 255, 210, 232, 174, 202, + 166, 136, 22, 58, 11, 166, 7, 125, 18, 199, 202, 167, 32, 126, 141, 192, 144, 36, 143, 9, 92, 143, 83, 180, 221, 104, 12, 121, 48, 237, 206, 32, + 152, 0, 251, 255, 0, 68, 137, 211, 122, 189, 148, 228, 29, 205, 46, 169, 196, 135, 248, 52, 181, 83, 251, 191, 162, 199, 206, 176, 225, 34, 32, 143, + 153, 236, 33, 58, 133, 86, 11, 107, 109, 141, 225, 194, 66, 154, 170, 65, 217, 137, 73, 147, 165, 9, 82, 148, 146, 73, 66, 74, 82, 73, 66, 73, + 41, 73, 36, 162, 247, 177, 141, 46, 123, 131, 64, 228, 157, 17, 0, 147, 64, 41, 146, 131, 236, 174, 177, 47, 112, 104, 60, 18, 97, 83, 183, 170, + 208, 223, 161, 47, 243, 136, 11, 59, 35, 48, 94, 240, 94, 210, 96, 104, 1, 0, 66, 181, 139, 148, 156, 136, 50, 30, 220, 63, 231, 174, 16, 39, + 118, 253, 253, 73, 141, 59, 106, 32, 136, 213, 196, 198, 170, 149, 153, 247, 56, 144, 109, 32, 68, 192, 134, 160, 13, 131, 252, 25, 31, 19, 194, 81, + 94, 158, 214, 143, 50, 68, 74, 191, 143, 151, 199, 1, 66, 35, 251, 210, 101, 16, 3, 163, 3, 123, 9, 36, 216, 76, 247, 6, 127, 234, 20, 77, + 140, 39, 64, 247, 18, 98, 64, 220, 2, 49, 53, 180, 2, 230, 181, 179, 0, 9, 157, 84, 128, 0, 199, 178, 12, 147, 169, 159, 250, 133, 61, 46, + 107, 139, 43, 39, 77, 206, 157, 6, 145, 255, 0, 86, 155, 123, 14, 128, 72, 239, 161, 86, 143, 166, 52, 36, 79, 153, 81, 46, 160, 9, 115, 155, + 28, 243, 162, 10, 106, 191, 97, 5, 164, 65, 58, 8, 246, 130, 85, 70, 227, 23, 88, 26, 92, 67, 198, 164, 70, 224, 33, 105, 186, 220, 120, 220, + 94, 208, 7, 144, 255, 0, 201, 161, 156, 204, 70, 157, 47, 102, 240, 70, 132, 128, 121, 77, 148, 73, 35, 205, 64, 181, 114, 129, 164, 53, 141, 46, + 4, 0, 4, 29, 38, 19, 212, 235, 180, 22, 52, 192, 26, 153, 42, 211, 223, 85, 192, 185, 142, 99, 156, 6, 134, 70, 137, 247, 141, 132, 188, 131, + 172, 204, 135, 64, 254, 66, 97, 132, 129, 187, 41, 99, 184, 182, 33, 174, 131, 193, 147, 170, 115, 104, 16, 64, 49, 226, 73, 84, 153, 144, 91, 100, + 0, 75, 3, 137, 128, 126, 139, 97, 92, 245, 152, 1, 46, 129, 17, 160, 41, 209, 152, 234, 130, 11, 47, 87, 65, 166, 158, 58, 169, 7, 136, 38, + 9, 129, 32, 14, 82, 109, 140, 35, 112, 0, 143, 25, 8, 130, 198, 76, 64, 0, 121, 167, 129, 226, 21, 75, 50, 215, 182, 8, 105, 248, 233, 42, + 66, 243, 60, 29, 121, 145, 160, 41, 54, 202, 76, 153, 2, 57, 213, 72, 62, 151, 9, 14, 105, 3, 205, 18, 7, 101, 49, 117, 220, 129, 19, 227, + 180, 38, 47, 60, 201, 49, 224, 33, 72, 190, 174, 206, 105, 249, 167, 6, 189, 96, 130, 15, 154, 28, 35, 162, 80, 239, 208, 235, 19, 226, 144, 120, + 48, 1, 7, 207, 197, 20, 181, 167, 195, 239, 77, 232, 179, 192, 125, 225, 26, 40, 71, 184, 120, 164, 167, 246, 122, 252, 7, 222, 146, 52, 167, 255, + 211, 198, 52, 220, 214, 10, 64, 27, 216, 101, 224, 25, 128, 7, 243, 95, 245, 213, 98, 188, 71, 12, 198, 140, 134, 145, 85, 141, 1, 149, 130, 26, + 78, 225, 250, 47, 161, 189, 19, 15, 24, 93, 113, 121, 115, 89, 188, 65, 15, 157, 179, 253, 132, 74, 169, 200, 165, 212, 151, 220, 218, 168, 97, 46, + 46, 45, 209, 165, 163, 233, 179, 127, 243, 170, 188, 230, 107, 134, 194, 217, 200, 209, 136, 33, 235, 169, 1, 172, 107, 36, 18, 192, 26, 67, 76, 129, + 1, 43, 110, 170, 166, 238, 177, 193, 163, 64, 100, 248, 174, 75, 31, 173, 28, 119, 93, 233, 144, 227, 108, 144, 247, 13, 187, 94, 14, 214, 127, 159, + 244, 213, 124, 220, 247, 229, 87, 234, 3, 46, 126, 130, 117, 146, 223, 250, 133, 20, 57, 121, 72, 130, 126, 84, 67, 9, 59, 250, 94, 153, 221, 103, + 16, 239, 99, 28, 119, 128, 118, 146, 52, 115, 128, 88, 35, 171, 229, 182, 194, 211, 100, 16, 65, 112, 118, 164, 49, 191, 158, 178, 234, 174, 234, 203, + 203, 136, 218, 9, 45, 61, 193, 68, 101, 155, 90, 75, 164, 207, 114, 35, 67, 255, 0, 147, 254, 90, 179, 28, 16, 141, 208, 191, 239, 51, 71, 20, + 69, 138, 183, 160, 111, 214, 7, 157, 207, 45, 105, 97, 16, 192, 15, 5, 6, 254, 191, 113, 181, 141, 97, 12, 32, 146, 71, 239, 128, 178, 28, 242, + 32, 48, 0, 208, 1, 0, 104, 57, 67, 4, 180, 88, 242, 1, 176, 201, 4, 29, 196, 199, 230, 127, 97, 31, 103, 24, 55, 194, 159, 110, 3, 90, + 122, 22, 117, 251, 156, 247, 2, 24, 36, 128, 192, 73, 3, 95, 229, 174, 129, 135, 115, 67, 188, 64, 63, 120, 94, 121, 109, 183, 87, 176, 181, 190, + 226, 1, 105, 38, 12, 143, 166, 183, 177, 250, 198, 64, 198, 20, 130, 11, 203, 64, 245, 1, 14, 12, 209, 69, 147, 151, 226, 32, 64, 8, 234, 197, + 147, 24, 176, 98, 29, 124, 238, 161, 246, 99, 177, 140, 223, 97, 18, 73, 32, 52, 44, 107, 242, 50, 50, 36, 62, 1, 58, 234, 3, 132, 42, 198, + 203, 173, 177, 210, 76, 136, 46, 36, 78, 228, 251, 94, 208, 67, 26, 221, 243, 36, 131, 19, 35, 233, 171, 152, 112, 70, 17, 170, 28, 127, 165, 37, + 70, 32, 4, 236, 36, 60, 184, 184, 18, 224, 9, 51, 201, 67, 200, 4, 56, 61, 167, 115, 199, 98, 120, 9, 152, 94, 89, 238, 13, 14, 36, 142, + 119, 104, 147, 193, 62, 210, 3, 128, 128, 1, 27, 148, 220, 2, 186, 174, 93, 142, 47, 96, 47, 46, 107, 136, 212, 16, 12, 38, 123, 91, 4, 27, + 28, 103, 137, 129, 31, 244, 20, 42, 3, 220, 8, 130, 76, 192, 35, 184, 74, 198, 56, 144, 230, 176, 147, 16, 72, 62, 73, 86, 154, 40, 169, 140, + 107, 1, 4, 185, 196, 232, 3, 157, 39, 84, 34, 202, 193, 36, 86, 92, 55, 17, 0, 189, 210, 127, 215, 247, 17, 13, 15, 126, 237, 224, 233, 4, + 9, 26, 17, 251, 138, 237, 110, 0, 16, 224, 12, 72, 4, 24, 209, 42, 209, 46, 123, 133, 32, 2, 26, 26, 8, 34, 72, 146, 96, 127, 45, 77, + 143, 172, 192, 112, 1, 164, 8, 33, 161, 194, 85, 131, 93, 123, 98, 1, 35, 80, 12, 29, 80, 69, 118, 131, 160, 108, 29, 32, 18, 64, 71, 132, + 218, 18, 197, 1, 165, 229, 172, 112, 2, 73, 13, 6, 16, 141, 181, 52, 152, 107, 121, 236, 209, 193, 83, 53, 189, 218, 56, 48, 136, 212, 3, 181, + 64, 214, 240, 232, 13, 108, 68, 76, 142, 17, 242, 74, 106, 224, 147, 180, 180, 30, 240, 0, 80, 46, 123, 183, 184, 55, 115, 27, 32, 136, 208, 194, + 147, 43, 184, 180, 144, 26, 9, 241, 42, 68, 188, 76, 68, 241, 167, 4, 4, 145, 209, 8, 197, 199, 32, 128, 69, 111, 116, 17, 6, 102, 63, 145, + 106, 155, 241, 232, 44, 32, 146, 231, 64, 46, 50, 68, 169, 151, 56, 189, 174, 1, 155, 135, 115, 27, 132, 255, 0, 97, 59, 203, 181, 30, 208, 79, + 61, 193, 77, 49, 137, 232, 155, 106, 81, 135, 37, 197, 229, 198, 178, 101, 132, 29, 186, 127, 81, 19, 236, 120, 231, 82, 94, 233, 236, 92, 81, 67, + 156, 205, 64, 0, 142, 39, 68, 158, 11, 199, 209, 32, 30, 224, 193, 148, 128, 3, 64, 130, 117, 64, 112, 113, 64, 246, 180, 146, 117, 50, 231, 24, + 148, 55, 225, 210, 94, 90, 24, 53, 3, 185, 7, 143, 235, 162, 154, 142, 217, 107, 92, 15, 114, 9, 46, 112, 77, 232, 188, 60, 58, 28, 103, 67, + 199, 96, 137, 10, 65, 102, 6, 45, 97, 164, 87, 32, 152, 36, 184, 152, 31, 191, 253, 133, 54, 96, 96, 217, 88, 182, 166, 23, 0, 4, 251, 139, + 65, 63, 249, 130, 188, 198, 48, 22, 151, 50, 11, 72, 34, 117, 7, 69, 55, 189, 196, 19, 183, 116, 131, 199, 98, 136, 3, 178, 92, 129, 139, 94, + 199, 56, 57, 224, 2, 7, 182, 199, 105, 170, 118, 84, 247, 16, 25, 117, 245, 8, 128, 226, 75, 129, 113, 70, 125, 101, 180, 157, 204, 37, 164, 143, + 107, 103, 124, 159, 230, 210, 37, 243, 12, 118, 192, 192, 52, 112, 59, 131, 130, 109, 30, 136, 107, 237, 201, 255, 0, 79, 127, 62, 1, 36, 127, 177, + 83, 251, 174, 227, 247, 255, 0, 59, 253, 47, 243, 159, 206, 164, 149, 120, 201, 79, 255, 212, 231, 197, 238, 197, 1, 245, 184, 181, 150, 144, 96, 24, + 37, 173, 86, 186, 143, 81, 110, 86, 32, 45, 37, 197, 164, 56, 130, 73, 38, 125, 187, 253, 234, 153, 13, 56, 245, 250, 173, 116, 146, 226, 208, 208, + 33, 202, 139, 238, 123, 139, 137, 48, 93, 18, 35, 176, 77, 225, 137, 32, 210, 227, 86, 37, 75, 89, 101, 146, 102, 32, 201, 129, 199, 185, 104, 225, + 88, 247, 214, 90, 253, 26, 4, 8, 17, 184, 149, 150, 230, 150, 144, 14, 164, 143, 184, 21, 173, 138, 0, 101, 79, 116, 13, 54, 177, 162, 79, 184, + 148, 225, 210, 151, 64, 158, 45, 211, 153, 99, 97, 182, 18, 73, 2, 12, 75, 64, 10, 45, 155, 183, 53, 132, 130, 36, 110, 113, 224, 162, 22, 181, + 245, 237, 123, 136, 50, 14, 144, 9, 77, 138, 198, 155, 44, 112, 4, 57, 196, 239, 145, 192, 31, 235, 189, 19, 181, 149, 199, 246, 177, 172, 177, 155, + 106, 96, 36, 146, 76, 159, 104, 116, 38, 125, 87, 155, 54, 176, 180, 0, 53, 121, 7, 73, 63, 205, 127, 45, 24, 72, 4, 129, 4, 147, 4, 232, + 116, 65, 127, 170, 235, 61, 196, 54, 160, 1, 3, 67, 185, 223, 219, 77, 39, 160, 68, 136, 216, 51, 200, 199, 22, 185, 173, 126, 150, 54, 36, 128, + 100, 53, 167, 243, 55, 161, 84, 199, 177, 245, 218, 96, 2, 237, 161, 144, 65, 13, 113, 255, 0, 160, 137, 112, 46, 27, 141, 128, 131, 160, 35, 136, + 105, 84, 197, 214, 185, 237, 34, 54, 2, 64, 13, 215, 219, 63, 77, 56, 29, 141, 148, 138, 175, 163, 176, 46, 110, 208, 88, 64, 4, 72, 0, 79, + 31, 245, 105, 169, 185, 237, 115, 171, 157, 196, 234, 0, 32, 152, 42, 149, 133, 204, 123, 107, 174, 0, 48, 0, 231, 216, 149, 86, 6, 223, 181, 128, + 190, 4, 186, 0, 137, 63, 203, 79, 19, 54, 9, 85, 10, 32, 58, 174, 245, 3, 67, 196, 153, 2, 26, 72, 104, 159, 235, 164, 209, 99, 129, 36, + 56, 16, 36, 128, 65, 105, 33, 77, 231, 28, 86, 28, 230, 182, 52, 39, 77, 193, 164, 160, 12, 230, 54, 1, 105, 0, 9, 32, 66, 144, 207, 93, + 150, 8, 157, 214, 220, 233, 221, 233, 186, 178, 226, 38, 64, 220, 241, 40, 227, 212, 224, 53, 199, 78, 99, 69, 26, 89, 85, 225, 183, 135, 57, 204, + 6, 64, 32, 114, 173, 18, 72, 147, 35, 180, 68, 36, 73, 232, 22, 145, 171, 93, 214, 22, 130, 72, 128, 57, 36, 112, 144, 184, 152, 128, 79, 152, + 19, 162, 108, 171, 0, 13, 107, 154, 11, 73, 130, 121, 215, 251, 31, 77, 42, 41, 99, 42, 33, 205, 220, 73, 39, 81, 181, 33, 41, 89, 186, 77, + 104, 24, 217, 146, 88, 64, 112, 0, 145, 160, 48, 217, 132, 236, 185, 239, 213, 161, 192, 143, 0, 11, 74, 19, 217, 73, 46, 177, 245, 58, 26, 118, + 153, 208, 52, 184, 127, 130, 69, 46, 199, 109, 45, 38, 67, 64, 134, 65, 33, 201, 9, 27, 55, 74, 35, 68, 166, 203, 35, 218, 215, 18, 57, 4, + 66, 17, 117, 206, 4, 109, 123, 9, 238, 91, 167, 254, 102, 150, 61, 148, 88, 216, 220, 224, 248, 19, 46, 32, 243, 249, 136, 241, 89, 110, 205, 198, + 1, 211, 220, 119, 79, 245, 211, 248, 187, 32, 177, 97, 123, 68, 18, 226, 65, 141, 26, 91, 170, 17, 54, 9, 141, 208, 6, 146, 53, 50, 140, 198, + 86, 29, 59, 220, 239, 18, 92, 165, 101, 52, 190, 1, 46, 32, 16, 76, 60, 130, 97, 35, 35, 123, 21, 53, 217, 99, 129, 215, 113, 28, 78, 216, + 72, 218, 242, 243, 169, 104, 113, 129, 161, 26, 148, 90, 234, 101, 100, 185, 174, 36, 187, 185, 51, 1, 16, 9, 144, 92, 117, 17, 18, 133, 233, 100, + 41, 166, 251, 139, 28, 90, 233, 61, 164, 4, 195, 48, 135, 22, 56, 232, 120, 17, 50, 226, 140, 236, 0, 235, 28, 241, 105, 45, 35, 70, 157, 64, + 64, 61, 49, 206, 112, 38, 194, 208, 32, 130, 52, 115, 136, 253, 245, 25, 50, 38, 235, 170, 237, 27, 96, 30, 64, 6, 123, 158, 202, 1, 228, 62, + 28, 208, 57, 128, 38, 96, 5, 98, 182, 6, 0, 210, 75, 160, 64, 241, 76, 90, 28, 8, 61, 248, 208, 18, 212, 254, 34, 13, 82, 0, 29, 208, + 54, 198, 61, 194, 75, 72, 3, 93, 103, 85, 55, 108, 15, 107, 26, 12, 56, 253, 38, 141, 205, 3, 252, 244, 133, 22, 54, 192, 71, 164, 88, 1, + 13, 4, 109, 112, 5, 16, 135, 128, 91, 91, 152, 1, 141, 8, 142, 19, 193, 7, 80, 164, 36, 238, 0, 109, 123, 65, 35, 82, 8, 26, 39, 97, + 37, 239, 4, 150, 181, 164, 1, 164, 130, 81, 30, 44, 115, 90, 45, 13, 222, 8, 32, 176, 238, 16, 19, 54, 182, 181, 133, 178, 226, 73, 147, 168, + 37, 37, 82, 160, 121, 115, 60, 31, 243, 210, 69, 134, 127, 43, 199, 251, 73, 37, 104, 127, 255, 213, 203, 97, 189, 212, 181, 213, 88, 28, 192, 8, + 97, 130, 11, 75, 127, 210, 255, 0, 158, 161, 143, 94, 21, 153, 131, 121, 146, 3, 67, 156, 3, 69, 37, 228, 251, 237, 255, 0, 206, 63, 194, 160, + 87, 105, 124, 48, 1, 178, 162, 26, 192, 79, 184, 152, 253, 37, 190, 245, 96, 109, 104, 104, 112, 144, 65, 18, 209, 31, 72, 251, 255, 0, 207, 67, + 219, 176, 65, 38, 50, 94, 33, 96, 128, 120, 82, 231, 96, 82, 110, 54, 0, 218, 159, 88, 151, 214, 33, 165, 239, 159, 240, 8, 68, 84, 72, 13, + 2, 27, 17, 19, 237, 33, 9, 182, 147, 107, 131, 139, 157, 96, 36, 130, 238, 67, 79, 254, 65, 59, 137, 101, 110, 112, 26, 184, 200, 28, 72, 37, + 58, 16, 225, 20, 77, 175, 132, 107, 117, 23, 151, 23, 237, 48, 0, 30, 243, 164, 71, 211, 74, 155, 55, 100, 110, 145, 181, 141, 32, 14, 228, 149, + 23, 22, 60, 26, 228, 53, 160, 2, 231, 247, 37, 14, 150, 180, 8, 0, 184, 185, 196, 57, 228, 70, 224, 156, 123, 20, 216, 234, 221, 245, 88, 242, + 3, 219, 176, 141, 65, 30, 13, 27, 255, 0, 182, 162, 247, 23, 146, 30, 0, 96, 144, 67, 163, 220, 8, 85, 62, 209, 47, 12, 39, 110, 217, 0, + 52, 16, 11, 191, 49, 159, 219, 86, 75, 3, 65, 115, 193, 147, 200, 3, 112, 223, 9, 180, 58, 4, 86, 228, 46, 195, 83, 217, 3, 216, 90, 64, + 0, 13, 163, 107, 80, 168, 112, 117, 193, 183, 180, 6, 52, 146, 30, 36, 2, 64, 250, 31, 153, 191, 255, 0, 74, 167, 54, 60, 110, 117, 96, 56, + 181, 193, 174, 32, 123, 163, 252, 34, 96, 198, 93, 96, 113, 105, 123, 64, 213, 196, 144, 193, 7, 243, 25, 236, 64, 210, 210, 69, 104, 157, 143, 168, + 90, 198, 176, 27, 43, 178, 90, 9, 16, 27, 35, 127, 250, 255, 0, 194, 164, 204, 98, 207, 84, 180, 144, 9, 26, 1, 38, 71, 230, 108, 74, 188, + 112, 93, 47, 4, 216, 199, 18, 215, 9, 35, 65, 191, 254, 254, 174, 57, 132, 253, 29, 76, 79, 151, 8, 3, 170, 129, 29, 218, 140, 245, 54, 184, + 88, 73, 99, 70, 231, 56, 15, 113, 213, 12, 130, 30, 92, 201, 112, 38, 64, 39, 232, 24, 86, 69, 161, 132, 72, 36, 8, 27, 103, 157, 21, 87, + 48, 48, 152, 30, 247, 18, 64, 2, 0, 31, 65, 60, 90, 240, 110, 219, 152, 118, 146, 253, 132, 67, 90, 216, 113, 19, 180, 25, 86, 133, 175, 208, + 193, 216, 73, 212, 207, 101, 69, 151, 57, 181, 134, 29, 26, 221, 92, 70, 146, 64, 68, 179, 36, 217, 94, 194, 76, 232, 32, 157, 116, 82, 9, 80, + 234, 178, 81, 55, 116, 218, 126, 64, 107, 140, 64, 129, 201, 158, 83, 54, 247, 60, 128, 8, 152, 227, 180, 170, 111, 176, 189, 237, 30, 226, 209, 180, + 23, 3, 201, 8, 149, 216, 42, 164, 185, 164, 184, 23, 16, 73, 229, 209, 255, 0, 80, 144, 152, 220, 252, 171, 8, 234, 217, 123, 13, 128, 146, 90, + 89, 0, 56, 2, 123, 126, 103, 208, 73, 148, 177, 205, 219, 35, 96, 213, 160, 17, 58, 255, 0, 228, 19, 87, 107, 222, 208, 246, 130, 7, 125, 36, + 16, 81, 11, 204, 151, 16, 12, 114, 99, 88, 9, 215, 26, 186, 10, 5, 27, 24, 43, 246, 214, 210, 8, 16, 9, 33, 210, 208, 136, 46, 120, 105, + 4, 251, 187, 66, 170, 50, 28, 51, 4, 0, 224, 225, 4, 145, 192, 69, 202, 123, 11, 3, 128, 146, 15, 99, 1, 33, 33, 209, 53, 173, 51, 25, + 22, 2, 36, 19, 62, 33, 39, 229, 150, 232, 71, 140, 248, 170, 152, 255, 0, 166, 110, 181, 204, 9, 153, 32, 19, 254, 122, 21, 94, 165, 153, 5, + 187, 75, 128, 50, 73, 4, 6, 237, 254, 90, 105, 152, 80, 27, 183, 205, 196, 146, 208, 96, 129, 61, 184, 79, 246, 167, 2, 36, 249, 16, 33, 82, + 176, 214, 203, 65, 112, 18, 116, 6, 73, 16, 127, 234, 17, 216, 220, 119, 2, 26, 216, 0, 193, 4, 158, 127, 207, 74, 50, 179, 186, 11, 96, 94, + 221, 198, 217, 59, 90, 32, 0, 61, 178, 74, 152, 200, 107, 204, 3, 51, 227, 230, 128, 105, 164, 176, 130, 215, 65, 212, 128, 226, 2, 11, 45, 172, + 93, 232, 150, 181, 205, 32, 108, 4, 238, 45, 48, 156, 102, 5, 90, 64, 111, 7, 180, 203, 68, 19, 196, 68, 164, 94, 1, 128, 8, 35, 67, 34, + 53, 8, 21, 18, 225, 185, 205, 33, 178, 71, 180, 248, 20, 239, 170, 183, 14, 8, 28, 8, 58, 148, 225, 43, 22, 142, 173, 130, 253, 0, 38, 9, + 225, 40, 34, 117, 136, 237, 19, 42, 161, 109, 109, 36, 135, 25, 142, 250, 144, 171, 62, 235, 1, 250, 64, 136, 38, 96, 255, 0, 175, 177, 52, 201, + 34, 37, 210, 14, 131, 180, 56, 73, 236, 66, 112, 65, 228, 129, 240, 84, 107, 22, 178, 176, 231, 144, 224, 4, 146, 12, 13, 81, 152, 215, 144, 28, + 27, 0, 137, 212, 165, 196, 138, 108, 233, 226, 146, 175, 47, 240, 239, 28, 132, 146, 226, 29, 210, 255, 0, 255, 214, 196, 101, 110, 101, 160, 146, 62, + 140, 67, 96, 52, 147, 252, 222, 197, 11, 158, 250, 131, 27, 48, 3, 129, 49, 36, 192, 40, 175, 184, 18, 95, 27, 36, 152, 96, 215, 146, 171, 88, + 36, 250, 141, 113, 5, 131, 73, 19, 41, 247, 163, 56, 219, 65, 209, 37, 118, 135, 75, 72, 62, 231, 29, 99, 196, 162, 130, 237, 224, 201, 19, 0, + 146, 100, 195, 144, 105, 168, 250, 132, 219, 46, 17, 169, 119, 112, 126, 130, 32, 124, 22, 176, 3, 182, 72, 215, 221, 2, 63, 125, 11, 52, 130, 73, + 20, 137, 163, 117, 144, 72, 0, 180, 128, 79, 48, 10, 48, 37, 128, 128, 214, 182, 96, 177, 160, 193, 41, 154, 119, 100, 23, 58, 69, 109, 246, 130, + 52, 152, 66, 202, 5, 206, 113, 110, 131, 105, 112, 113, 39, 243, 127, 113, 32, 122, 38, 198, 163, 86, 98, 202, 222, 96, 136, 45, 116, 145, 204, 17, + 249, 239, 82, 172, 176, 229, 0, 226, 92, 210, 221, 226, 73, 250, 67, 249, 8, 76, 198, 32, 7, 48, 128, 226, 1, 116, 130, 64, 63, 79, 122, 119, + 10, 233, 169, 214, 178, 92, 93, 160, 113, 50, 32, 20, 15, 146, 13, 164, 172, 108, 185, 215, 24, 105, 46, 36, 110, 39, 82, 15, 179, 244, 76, 250, + 106, 235, 26, 198, 176, 0, 26, 73, 18, 192, 210, 100, 18, 178, 234, 57, 5, 156, 25, 220, 4, 2, 15, 100, 70, 93, 107, 95, 180, 54, 4, 2, + 119, 105, 18, 151, 0, 59, 20, 12, 96, 234, 15, 86, 192, 102, 75, 73, 177, 214, 0, 9, 6, 36, 17, 161, 70, 25, 79, 0, 177, 142, 44, 105, + 35, 221, 0, 207, 246, 16, 29, 83, 225, 197, 190, 226, 4, 144, 15, 138, 113, 95, 232, 193, 32, 239, 116, 8, 215, 66, 227, 255, 0, 65, 17, 24, + 214, 169, 224, 141, 106, 181, 196, 223, 96, 115, 206, 214, 52, 233, 180, 65, 58, 40, 56, 201, 116, 75, 88, 232, 104, 35, 196, 40, 184, 2, 73, 0, + 207, 0, 142, 192, 166, 222, 26, 90, 7, 184, 130, 125, 163, 83, 48, 157, 194, 6, 203, 196, 64, 217, 158, 231, 180, 184, 147, 182, 79, 204, 71, 252, + 34, 152, 39, 113, 116, 9, 45, 0, 70, 168, 15, 121, 117, 173, 96, 19, 169, 222, 59, 141, 168, 178, 224, 205, 205, 33, 165, 132, 144, 32, 13, 63, + 113, 34, 1, 10, 32, 29, 25, 215, 94, 67, 152, 8, 0, 60, 2, 72, 39, 79, 248, 52, 76, 119, 53, 142, 112, 180, 23, 184, 195, 93, 168, 218, + 10, 118, 135, 216, 100, 52, 187, 112, 14, 124, 123, 116, 86, 46, 104, 174, 176, 67, 75, 9, 26, 129, 172, 146, 19, 40, 238, 24, 8, 212, 132, 227, + 99, 216, 28, 9, 0, 152, 2, 98, 0, 67, 176, 181, 176, 88, 72, 14, 32, 18, 6, 129, 168, 53, 222, 69, 48, 230, 151, 30, 53, 146, 2, 149, + 147, 146, 214, 128, 67, 75, 70, 173, 58, 104, 137, 32, 128, 124, 19, 93, 216, 100, 254, 133, 224, 176, 18, 12, 25, 26, 204, 132, 122, 65, 115, 253, + 225, 165, 164, 64, 4, 240, 82, 102, 51, 128, 110, 247, 146, 64, 141, 52, 80, 160, 57, 249, 166, 145, 13, 216, 9, 51, 51, 167, 253, 90, 17, 7, + 136, 104, 131, 181, 55, 201, 1, 163, 88, 28, 64, 16, 2, 205, 203, 178, 214, 88, 26, 92, 93, 2, 65, 32, 119, 254, 167, 238, 45, 18, 246, 60, + 57, 192, 17, 31, 156, 68, 72, 10, 142, 70, 64, 99, 218, 233, 48, 73, 46, 39, 81, 9, 242, 150, 132, 5, 4, 84, 178, 199, 22, 216, 248, 13, + 48, 64, 214, 74, 180, 251, 3, 76, 16, 9, 26, 196, 14, 20, 131, 5, 164, 61, 154, 14, 68, 147, 58, 133, 95, 33, 143, 104, 47, 123, 154, 3, + 72, 32, 141, 74, 101, 155, 176, 18, 42, 246, 102, 73, 36, 152, 2, 72, 32, 152, 142, 85, 55, 16, 203, 119, 176, 76, 75, 8, 110, 176, 33, 56, + 186, 183, 48, 150, 18, 116, 18, 53, 135, 18, 21, 112, 214, 92, 90, 90, 226, 208, 72, 222, 238, 239, 120, 246, 87, 179, 250, 233, 18, 122, 149, 212, + 41, 185, 73, 59, 200, 146, 79, 102, 25, 1, 159, 249, 61, 234, 205, 143, 12, 1, 198, 3, 136, 16, 36, 141, 74, 206, 165, 151, 87, 112, 38, 192, + 226, 233, 0, 16, 73, 100, 149, 115, 33, 193, 196, 22, 153, 13, 120, 14, 38, 52, 0, 126, 145, 17, 34, 1, 8, 32, 221, 144, 195, 214, 15, 46, + 13, 105, 50, 76, 137, 0, 2, 211, 233, 38, 123, 170, 21, 57, 219, 64, 34, 102, 116, 58, 127, 228, 16, 169, 99, 42, 173, 214, 13, 1, 144, 15, + 114, 215, 31, 160, 244, 254, 136, 182, 201, 180, 192, 16, 24, 1, 137, 104, 254, 113, 0, 77, 168, 121, 55, 217, 99, 64, 4, 144, 67, 132, 196, 16, + 76, 132, 246, 189, 205, 171, 115, 72, 36, 141, 8, 36, 198, 137, 201, 164, 75, 220, 11, 93, 17, 3, 77, 8, 84, 44, 123, 11, 97, 164, 134, 183, + 70, 131, 204, 125, 15, 237, 169, 165, 49, 90, 32, 68, 238, 203, 237, 79, 240, 28, 109, 224, 243, 251, 233, 33, 237, 30, 39, 195, 129, 207, 249, 137, + 40, 248, 252, 74, 159, 255, 215, 193, 124, 146, 246, 159, 112, 128, 90, 8, 157, 66, 66, 78, 57, 113, 130, 210, 11, 73, 110, 186, 53, 84, 125, 206, + 125, 164, 0, 118, 201, 128, 32, 19, 1, 91, 12, 2, 55, 232, 95, 7, 99, 76, 1, 5, 59, 139, 86, 97, 43, 38, 146, 61, 231, 97, 45, 0, + 144, 34, 12, 232, 7, 231, 189, 65, 135, 244, 164, 56, 141, 142, 105, 44, 143, 162, 64, 255, 0, 200, 39, 176, 144, 231, 0, 9, 112, 2, 96, 72, + 2, 80, 177, 220, 75, 220, 70, 154, 0, 226, 70, 154, 255, 0, 231, 164, 73, 232, 162, 118, 243, 92, 188, 62, 199, 29, 192, 237, 33, 192, 29, 72, + 218, 139, 96, 115, 37, 196, 2, 118, 131, 32, 105, 168, 255, 0, 190, 33, 213, 177, 238, 48, 215, 23, 60, 134, 147, 164, 207, 253, 243, 210, 86, 89, + 234, 53, 199, 116, 22, 16, 3, 230, 28, 90, 103, 103, 254, 10, 154, 101, 86, 86, 153, 81, 37, 172, 192, 219, 28, 231, 2, 101, 204, 60, 2, 64, + 45, 253, 196, 39, 209, 111, 217, 140, 3, 181, 209, 168, 17, 184, 1, 191, 255, 0, 51, 91, 56, 180, 177, 150, 151, 48, 2, 194, 29, 44, 34, 92, + 208, 228, 23, 72, 104, 166, 167, 0, 193, 37, 146, 55, 18, 201, 223, 255, 0, 152, 38, 25, 155, 217, 103, 17, 234, 231, 209, 91, 153, 13, 181, 224, + 60, 195, 128, 39, 201, 93, 123, 5, 155, 94, 225, 179, 108, 29, 72, 110, 224, 20, 93, 138, 220, 130, 214, 59, 70, 54, 28, 6, 163, 72, 255, 0, + 167, 253, 132, 108, 118, 178, 224, 231, 135, 1, 184, 131, 176, 128, 72, 3, 217, 177, 159, 184, 143, 30, 213, 123, 47, 227, 212, 85, 236, 196, 159, 74, + 201, 45, 146, 224, 9, 119, 7, 105, 42, 112, 241, 117, 141, 18, 9, 120, 135, 68, 183, 148, 249, 53, 25, 47, 104, 250, 64, 75, 102, 117, 111, 238, + 127, 93, 43, 42, 1, 149, 189, 132, 151, 222, 39, 194, 8, 254, 109, 30, 33, 74, 226, 21, 167, 102, 161, 59, 238, 125, 53, 136, 121, 144, 201, 152, + 37, 191, 230, 125, 53, 11, 9, 105, 218, 194, 28, 246, 192, 36, 198, 133, 197, 3, 29, 182, 158, 160, 26, 219, 11, 136, 5, 238, 34, 126, 131, 6, + 251, 25, 255, 0, 109, 49, 25, 175, 123, 9, 5, 209, 109, 164, 151, 6, 182, 90, 216, 255, 0, 2, 143, 30, 160, 39, 220, 215, 91, 86, 140, 113, + 208, 13, 199, 158, 75, 167, 255, 0, 38, 161, 110, 232, 220, 231, 18, 59, 145, 216, 16, 133, 144, 251, 107, 107, 75, 200, 144, 76, 182, 117, 58, 126, + 126, 197, 15, 90, 215, 176, 130, 210, 88, 90, 101, 218, 147, 181, 167, 249, 212, 227, 32, 65, 171, 92, 102, 53, 108, 98, 223, 110, 194, 208, 73, 100, + 128, 73, 38, 66, 188, 203, 157, 32, 188, 238, 100, 0, 9, 241, 149, 71, 28, 188, 227, 57, 206, 5, 160, 59, 87, 145, 50, 79, 231, 168, 182, 246, + 188, 18, 73, 0, 13, 167, 194, 1, 72, 16, 70, 165, 34, 136, 214, 157, 63, 84, 180, 13, 198, 100, 152, 17, 161, 41, 235, 176, 250, 128, 183, 82, + 4, 187, 180, 72, 84, 137, 46, 105, 34, 11, 24, 0, 46, 157, 78, 170, 211, 3, 24, 192, 73, 22, 27, 32, 136, 157, 2, 105, 29, 150, 152, 237, + 77, 129, 99, 230, 73, 32, 115, 32, 232, 10, 8, 14, 245, 189, 71, 52, 188, 114, 73, 50, 98, 82, 54, 8, 36, 232, 32, 153, 61, 160, 167, 165, + 246, 16, 0, 5, 238, 38, 97, 160, 157, 9, 77, 50, 54, 176, 222, 182, 27, 172, 201, 173, 238, 45, 4, 134, 64, 247, 159, 162, 65, 66, 44, 199, + 107, 93, 109, 176, 88, 15, 183, 111, 130, 122, 169, 125, 236, 115, 189, 50, 26, 211, 169, 32, 180, 72, 40, 102, 176, 24, 230, 237, 32, 25, 212, 234, + 136, 38, 182, 64, 5, 141, 89, 85, 181, 146, 208, 65, 120, 224, 126, 104, 148, 206, 112, 113, 45, 46, 38, 90, 72, 16, 35, 106, 77, 198, 12, 177, + 174, 36, 200, 108, 53, 135, 232, 159, 252, 154, 157, 132, 0, 78, 211, 34, 34, 52, 26, 161, 101, 112, 26, 181, 5, 100, 146, 72, 14, 96, 0, 56, + 136, 104, 104, 111, 191, 216, 134, 202, 233, 245, 5, 227, 217, 182, 118, 0, 39, 113, 39, 233, 163, 154, 222, 195, 46, 50, 117, 144, 116, 47, 132, 131, + 5, 181, 135, 17, 15, 227, 194, 0, 69, 44, 216, 90, 28, 44, 36, 22, 141, 64, 39, 129, 9, 158, 92, 92, 94, 208, 28, 199, 184, 200, 19, 237, + 32, 49, 9, 140, 2, 90, 53, 13, 246, 184, 187, 145, 30, 255, 0, 127, 245, 211, 190, 209, 45, 99, 90, 119, 14, 195, 243, 72, 9, 43, 85, 172, + 27, 33, 142, 31, 162, 211, 115, 200, 7, 83, 255, 0, 144, 79, 104, 170, 170, 152, 43, 118, 242, 194, 26, 1, 7, 112, 47, 59, 253, 234, 12, 37, + 224, 60, 59, 115, 4, 184, 136, 218, 55, 2, 167, 130, 89, 101, 142, 54, 184, 9, 36, 8, 212, 56, 183, 216, 144, 7, 117, 95, 84, 251, 131, 171, + 6, 33, 211, 4, 157, 52, 8, 91, 3, 222, 76, 204, 145, 182, 12, 237, 5, 78, 218, 206, 232, 105, 35, 72, 146, 116, 143, 252, 205, 66, 166, 218, + 208, 77, 131, 104, 38, 12, 232, 118, 39, 141, 169, 35, 102, 127, 103, 183, 207, 159, 62, 18, 74, 44, 241, 28, 199, 37, 36, 222, 19, 221, 84, 255, + 0, 255, 208, 230, 108, 170, 11, 120, 172, 23, 106, 15, 184, 9, 31, 234, 197, 116, 177, 238, 113, 27, 75, 134, 230, 150, 64, 220, 53, 86, 105, 175, + 244, 109, 46, 104, 115, 162, 100, 130, 55, 17, 251, 255, 0, 215, 83, 113, 121, 45, 96, 116, 17, 237, 4, 15, 104, 68, 157, 244, 100, 177, 169, 1, + 162, 230, 22, 9, 32, 193, 112, 36, 73, 33, 219, 138, 133, 143, 115, 94, 214, 67, 154, 198, 184, 8, 3, 223, 175, 239, 255, 0, 93, 105, 60, 87, + 91, 26, 29, 16, 4, 134, 145, 36, 149, 86, 234, 131, 242, 90, 242, 233, 46, 112, 59, 8, 128, 221, 61, 159, 65, 14, 37, 9, 104, 124, 144, 134, + 61, 180, 88, 11, 161, 155, 161, 132, 13, 67, 156, 81, 169, 198, 125, 101, 182, 50, 92, 68, 110, 19, 186, 74, 179, 115, 88, 43, 58, 52, 0, 55, + 16, 6, 225, 253, 116, 213, 217, 83, 26, 241, 4, 56, 16, 8, 32, 182, 72, 31, 203, 253, 244, 210, 79, 69, 164, 158, 201, 235, 110, 227, 36, 144, + 65, 208, 131, 4, 192, 255, 0, 191, 160, 150, 215, 234, 215, 99, 11, 91, 36, 180, 48, 234, 88, 71, 248, 36, 226, 224, 247, 58, 70, 194, 210, 4, + 29, 26, 52, 253, 255, 0, 207, 73, 140, 99, 31, 36, 201, 32, 144, 8, 32, 57, 52, 142, 171, 72, 210, 195, 16, 203, 169, 176, 234, 226, 203, 65, + 0, 146, 11, 27, 63, 240, 108, 250, 123, 19, 83, 72, 101, 150, 50, 182, 150, 25, 150, 16, 75, 189, 228, 127, 59, 106, 53, 86, 60, 90, 240, 230, + 130, 218, 72, 45, 60, 106, 225, 189, 59, 30, 93, 107, 136, 36, 23, 9, 118, 147, 202, 33, 64, 111, 97, 35, 107, 47, 168, 27, 32, 60, 52, 2, + 38, 27, 160, 80, 180, 54, 231, 215, 91, 107, 47, 96, 0, 123, 116, 101, 109, 104, 250, 119, 222, 142, 97, 206, 5, 195, 100, 1, 200, 7, 128, 147, + 33, 131, 96, 209, 130, 11, 164, 159, 119, 254, 112, 151, 9, 85, 26, 104, 154, 177, 217, 97, 20, 75, 28, 73, 38, 242, 97, 207, 46, 247, 250, 20, + 127, 162, 216, 178, 114, 110, 204, 101, 174, 23, 25, 36, 145, 63, 235, 244, 255, 0, 182, 182, 242, 63, 72, 26, 205, 194, 92, 96, 64, 254, 194, 108, + 172, 119, 185, 164, 180, 7, 91, 35, 158, 237, 141, 155, 47, 72, 86, 233, 0, 56, 57, 14, 107, 198, 162, 94, 116, 36, 73, 6, 63, 242, 31, 200, + 80, 169, 143, 115, 67, 12, 6, 0, 73, 35, 233, 58, 125, 172, 98, 209, 183, 167, 92, 250, 198, 242, 25, 3, 134, 146, 240, 209, 251, 159, 235, 250, + 91, 109, 76, 240, 40, 164, 53, 181, 150, 203, 64, 46, 116, 113, 63, 249, 159, 253, 186, 136, 39, 183, 85, 11, 241, 11, 31, 79, 209, 107, 95, 32, + 128, 32, 18, 98, 7, 230, 42, 214, 250, 45, 14, 134, 147, 99, 76, 0, 4, 54, 8, 255, 0, 166, 142, 252, 138, 197, 77, 34, 3, 65, 144, 211, + 207, 42, 15, 176, 185, 129, 204, 16, 100, 144, 92, 76, 153, 252, 244, 226, 64, 26, 82, 243, 32, 0, 170, 102, 202, 222, 224, 30, 1, 213, 162, 9, + 32, 136, 7, 243, 255, 0, 168, 142, 231, 183, 107, 75, 162, 35, 89, 252, 233, 10, 24, 183, 205, 70, 174, 103, 218, 28, 52, 36, 57, 77, 152, 239, + 36, 203, 92, 214, 68, 105, 200, 148, 225, 45, 23, 196, 130, 44, 176, 174, 205, 210, 221, 38, 64, 50, 64, 157, 17, 25, 97, 44, 150, 23, 52, 18, + 68, 52, 163, 138, 106, 4, 130, 216, 2, 64, 39, 151, 17, 239, 223, 255, 0, 157, 168, 87, 91, 218, 26, 11, 136, 97, 4, 238, 35, 220, 1, 77, + 145, 233, 75, 100, 110, 244, 108, 83, 146, 107, 169, 181, 53, 206, 135, 73, 50, 73, 159, 229, 167, 125, 187, 160, 7, 29, 160, 151, 16, 53, 151, 16, + 132, 41, 13, 118, 230, 159, 100, 65, 7, 67, 202, 159, 166, 1, 26, 134, 129, 36, 118, 41, 2, 128, 17, 189, 238, 54, 7, 2, 232, 2, 100, 127, + 175, 230, 43, 85, 92, 198, 73, 189, 134, 214, 184, 104, 222, 32, 254, 250, 168, 227, 104, 46, 121, 130, 0, 5, 161, 163, 220, 73, 82, 37, 167, 83, + 16, 0, 158, 250, 207, 231, 160, 60, 147, 75, 60, 184, 191, 120, 26, 135, 67, 64, 37, 195, 105, 63, 190, 133, 105, 115, 73, 123, 223, 0, 15, 115, + 70, 132, 126, 227, 216, 166, 111, 34, 224, 209, 196, 56, 152, 227, 116, 170, 55, 100, 18, 221, 0, 15, 115, 73, 158, 224, 3, 189, 21, 87, 86, 211, + 90, 67, 0, 4, 57, 206, 209, 156, 180, 234, 63, 61, 76, 48, 52, 150, 135, 186, 95, 220, 29, 208, 26, 63, 239, 235, 40, 229, 89, 250, 38, 76, + 150, 137, 48, 73, 37, 197, 92, 104, 32, 138, 94, 64, 48, 9, 215, 80, 195, 239, 73, 86, 204, 208, 43, 177, 174, 97, 33, 155, 72, 121, 253, 232, + 252, 245, 28, 122, 139, 94, 118, 2, 9, 33, 208, 116, 32, 74, 182, 202, 154, 96, 218, 56, 18, 4, 146, 9, 255, 0, 6, 166, 43, 36, 18, 226, + 4, 158, 52, 213, 43, 58, 40, 134, 118, 61, 133, 236, 26, 146, 224, 92, 12, 64, 246, 148, 11, 108, 112, 4, 22, 203, 78, 164, 147, 206, 213, 59, + 3, 8, 59, 73, 115, 128, 60, 1, 33, 160, 42, 118, 238, 185, 140, 97, 221, 14, 46, 5, 227, 187, 127, 215, 217, 255, 0, 10, 136, 233, 74, 29, + 23, 245, 143, 143, 111, 17, 254, 98, 72, 31, 100, 202, 240, 111, 209, 158, 15, 31, 250, 85, 36, 235, 240, 79, 209, 255, 209, 14, 231, 109, 128, 99, + 104, 146, 70, 156, 40, 22, 23, 105, 33, 204, 144, 72, 32, 234, 66, 85, 177, 166, 237, 133, 160, 62, 9, 116, 207, 184, 56, 123, 63, 204, 81, 21, + 181, 172, 151, 18, 224, 194, 64, 32, 199, 250, 236, 77, 43, 169, 173, 118, 62, 247, 180, 146, 90, 1, 13, 26, 204, 193, 255, 0, 191, 163, 83, 94, + 215, 134, 129, 2, 6, 167, 94, 251, 17, 73, 107, 8, 121, 58, 129, 220, 75, 73, 250, 126, 196, 159, 185, 166, 67, 136, 36, 73, 33, 176, 72, 35, + 253, 26, 52, 20, 194, 194, 69, 141, 107, 79, 210, 128, 39, 88, 130, 132, 45, 110, 226, 194, 100, 2, 75, 65, 208, 237, 37, 20, 91, 161, 27, 160, + 128, 0, 113, 141, 9, 72, 209, 81, 50, 68, 152, 128, 243, 226, 63, 125, 45, 45, 66, 186, 45, 77, 77, 115, 0, 180, 134, 144, 9, 32, 15, 104, + 255, 0, 95, 160, 157, 197, 173, 120, 245, 53, 121, 38, 1, 211, 104, 33, 31, 210, 0, 105, 201, 2, 93, 2, 92, 214, 255, 0, 57, 189, 12, 61, + 140, 119, 182, 9, 39, 77, 64, 36, 207, 238, 37, 162, 180, 64, 76, 155, 32, 123, 172, 32, 201, 150, 237, 13, 31, 247, 244, 103, 95, 72, 96, 0, + 130, 73, 58, 9, 29, 191, 49, 12, 59, 113, 33, 194, 94, 1, 37, 196, 109, 100, 202, 45, 85, 57, 172, 253, 36, 16, 126, 136, 19, 34, 63, 215, + 255, 0, 69, 33, 252, 80, 66, 82, 231, 141, 164, 54, 1, 16, 75, 187, 4, 55, 216, 200, 115, 65, 46, 131, 166, 217, 14, 33, 87, 200, 203, 177, + 149, 17, 180, 181, 206, 2, 72, 19, 182, 74, 33, 12, 13, 15, 121, 46, 7, 80, 28, 64, 119, 184, 123, 55, 254, 226, 67, 201, 64, 141, 147, 49, + 224, 0, 226, 4, 130, 32, 196, 65, 132, 214, 62, 202, 216, 94, 221, 75, 96, 193, 250, 68, 19, 249, 136, 32, 144, 69, 77, 151, 49, 186, 135, 72, + 112, 246, 253, 58, 190, 159, 177, 20, 220, 28, 249, 13, 32, 73, 0, 153, 152, 253, 244, 60, 149, 244, 92, 139, 13, 65, 229, 196, 57, 218, 130, 4, + 6, 130, 86, 86, 99, 65, 121, 244, 128, 117, 135, 233, 14, 1, 36, 255, 0, 163, 252, 255, 0, 252, 244, 181, 94, 97, 132, 17, 160, 153, 0, 153, + 1, 83, 24, 102, 203, 139, 165, 205, 97, 37, 198, 0, 220, 76, 108, 103, 233, 18, 22, 160, 14, 182, 226, 62, 156, 141, 231, 212, 26, 206, 177, 0, + 43, 53, 180, 29, 190, 177, 134, 0, 4, 76, 19, 11, 101, 216, 237, 178, 189, 150, 214, 35, 66, 68, 146, 247, 66, 168, 112, 171, 245, 90, 214, 128, + 42, 113, 59, 3, 129, 145, 175, 189, 59, 94, 203, 128, 45, 182, 10, 246, 128, 198, 236, 38, 12, 0, 1, 26, 41, 157, 173, 146, 73, 108, 1, 51, + 241, 80, 177, 173, 13, 1, 132, 145, 196, 14, 36, 168, 92, 247, 53, 132, 154, 203, 201, 108, 157, 56, 211, 243, 255, 0, 113, 36, 173, 99, 154, 12, + 130, 4, 1, 169, 158, 232, 161, 240, 214, 151, 17, 3, 152, 144, 32, 133, 82, 171, 106, 176, 134, 129, 172, 65, 6, 103, 119, 238, 43, 54, 23, 154, + 139, 126, 137, 35, 72, 18, 225, 255, 0, 156, 34, 79, 64, 21, 122, 80, 68, 199, 151, 22, 180, 144, 90, 226, 72, 128, 71, 62, 253, 143, 253, 244, + 107, 12, 180, 146, 65, 220, 96, 200, 227, 119, 243, 104, 24, 228, 176, 18, 227, 36, 9, 0, 158, 10, 106, 30, 95, 86, 225, 48, 224, 116, 143, 20, + 146, 1, 74, 30, 24, 28, 9, 45, 123, 134, 132, 112, 54, 148, 11, 136, 96, 46, 47, 45, 220, 64, 32, 233, 45, 114, 141, 214, 7, 22, 131, 32, + 177, 192, 152, 144, 227, 170, 136, 32, 186, 194, 70, 230, 52, 237, 27, 181, 147, 236, 73, 41, 95, 104, 172, 53, 206, 27, 134, 145, 2, 125, 165, 84, + 200, 109, 37, 205, 115, 26, 227, 14, 220, 242, 36, 157, 142, 62, 244, 178, 158, 24, 230, 152, 39, 80, 94, 32, 237, 13, 83, 166, 199, 189, 251, 64, + 48, 32, 176, 187, 218, 118, 127, 223, 210, 36, 32, 145, 179, 80, 81, 144, 126, 131, 67, 152, 92, 75, 29, 227, 42, 243, 30, 88, 119, 90, 216, 176, + 119, 144, 73, 130, 140, 214, 6, 144, 246, 31, 99, 65, 153, 208, 50, 63, 115, 250, 234, 150, 125, 128, 29, 160, 195, 196, 18, 64, 247, 56, 74, 72, + 216, 22, 219, 9, 187, 107, 156, 64, 173, 205, 7, 83, 203, 165, 24, 216, 234, 216, 64, 104, 150, 137, 104, 34, 92, 75, 150, 54, 62, 65, 23, 238, + 34, 90, 9, 45, 97, 226, 74, 211, 245, 133, 176, 33, 178, 209, 3, 88, 38, 80, 189, 84, 14, 161, 152, 219, 93, 100, 144, 26, 26, 1, 49, 161, + 116, 41, 7, 176, 193, 36, 7, 184, 2, 214, 142, 26, 10, 205, 184, 88, 251, 246, 200, 115, 28, 0, 0, 123, 126, 136, 87, 105, 173, 149, 181, 161, + 205, 220, 246, 180, 9, 4, 192, 115, 127, 49, 27, 29, 151, 95, 130, 111, 78, 191, 17, 196, 246, 73, 55, 172, 60, 43, 227, 199, 243, 255, 0, 113, + 36, 229, 95, 155, 255, 210, 30, 77, 128, 23, 88, 25, 47, 123, 182, 183, 94, 192, 127, 175, 254, 122, 85, 45, 181, 226, 189, 132, 134, 203, 136, 150, + 235, 181, 211, 239, 101, 170, 117, 228, 12, 135, 188, 200, 99, 65, 1, 160, 206, 178, 54, 51, 254, 173, 64, 48, 91, 93, 212, 176, 203, 203, 11, 152, + 63, 56, 186, 179, 255, 0, 124, 72, 142, 148, 200, 106, 235, 197, 158, 83, 139, 118, 138, 201, 4, 0, 94, 79, 96, 2, 133, 206, 177, 128, 185, 174, + 7, 120, 135, 191, 151, 6, 159, 204, 103, 245, 20, 236, 104, 32, 92, 226, 92, 45, 164, 106, 120, 27, 189, 63, 87, 252, 205, 233, 155, 233, 95, 59, + 91, 12, 4, 180, 198, 157, 191, 70, 255, 0, 237, 255, 0, 231, 212, 8, 42, 62, 76, 88, 43, 138, 195, 6, 242, 36, 131, 58, 110, 39, 249, 127, + 191, 244, 17, 181, 105, 113, 224, 6, 137, 0, 76, 144, 147, 49, 90, 27, 91, 3, 101, 149, 22, 145, 62, 226, 54, 187, 213, 223, 255, 0, 131, 165, + 120, 173, 187, 131, 129, 107, 220, 96, 22, 152, 130, 119, 164, 138, 61, 209, 27, 139, 137, 108, 136, 121, 17, 39, 144, 7, 189, 16, 134, 130, 8, 0, + 106, 0, 4, 204, 151, 127, 174, 244, 48, 65, 176, 52, 56, 23, 52, 16, 26, 6, 165, 167, 254, 15, 254, 9, 53, 207, 107, 105, 47, 50, 194, 208, + 96, 31, 164, 36, 254, 122, 74, 30, 11, 236, 120, 59, 72, 47, 97, 26, 144, 70, 240, 79, 243, 143, 252, 196, 71, 91, 97, 168, 19, 4, 196, 17, + 58, 238, 63, 212, 85, 104, 112, 13, 6, 147, 53, 180, 150, 238, 50, 65, 124, 254, 127, 248, 95, 210, 171, 15, 113, 30, 224, 73, 2, 59, 237, 13, + 41, 126, 40, 65, 117, 193, 219, 152, 90, 64, 219, 184, 13, 97, 173, 7, 233, 255, 0, 97, 64, 11, 134, 56, 177, 128, 144, 76, 60, 187, 134, 207, + 253, 90, 86, 188, 48, 250, 240, 95, 4, 0, 0, 211, 83, 249, 232, 175, 219, 113, 107, 193, 38, 150, 180, 151, 128, 118, 141, 199, 252, 23, 252, 106, + 23, 162, 5, 52, 158, 95, 75, 129, 99, 72, 115, 227, 223, 244, 64, 32, 253, 63, 166, 174, 214, 90, 230, 56, 189, 199, 112, 58, 65, 145, 19, 249, + 149, 170, 249, 24, 180, 146, 28, 231, 6, 52, 237, 135, 18, 79, 31, 184, 142, 109, 12, 14, 251, 59, 67, 152, 32, 18, 53, 115, 90, 223, 102, 198, + 127, 194, 164, 19, 90, 216, 76, 54, 91, 104, 47, 48, 90, 38, 36, 251, 244, 103, 191, 253, 127, 210, 43, 82, 26, 73, 7, 104, 16, 36, 232, 217, + 11, 44, 221, 103, 173, 91, 44, 150, 190, 55, 60, 129, 27, 135, 238, 127, 33, 59, 173, 177, 142, 58, 135, 49, 204, 131, 58, 232, 125, 255, 0, 248, + 18, 55, 221, 46, 137, 123, 29, 220, 179, 72, 4, 146, 103, 249, 108, 81, 104, 7, 151, 18, 64, 36, 19, 174, 144, 170, 87, 123, 61, 61, 204, 116, + 65, 0, 135, 79, 177, 59, 44, 178, 203, 11, 73, 39, 118, 187, 78, 128, 1, 255, 0, 9, 249, 233, 42, 251, 54, 100, 52, 6, 130, 71, 4, 153, + 220, 68, 148, 59, 24, 231, 130, 208, 71, 188, 128, 65, 242, 68, 44, 115, 107, 4, 72, 121, 152, 111, 114, 85, 59, 198, 195, 181, 206, 47, 47, 26, + 71, 2, 82, 70, 173, 128, 202, 67, 0, 172, 1, 51, 175, 128, 85, 173, 147, 118, 214, 23, 60, 184, 112, 4, 6, 15, 250, 239, 211, 64, 171, 55, + 112, 107, 94, 208, 208, 12, 7, 153, 236, 127, 239, 138, 235, 111, 123, 139, 140, 251, 100, 130, 68, 73, 33, 42, 72, 29, 216, 178, 138, 216, 73, 113, + 39, 64, 12, 159, 21, 49, 180, 72, 36, 67, 76, 207, 0, 181, 68, 216, 199, 51, 124, 18, 216, 6, 59, 144, 16, 234, 217, 191, 123, 137, 118, 224, + 73, 214, 65, 3, 254, 161, 21, 196, 162, 204, 119, 167, 100, 237, 3, 108, 75, 134, 160, 3, 251, 255, 0, 190, 163, 100, 186, 144, 11, 136, 6, 9, + 113, 28, 130, 17, 51, 24, 44, 112, 216, 8, 36, 18, 98, 118, 182, 16, 65, 185, 206, 123, 72, 130, 98, 64, 34, 100, 165, 104, 36, 233, 187, 47, + 73, 165, 130, 203, 9, 37, 130, 35, 145, 181, 199, 247, 255, 0, 61, 84, 47, 177, 185, 102, 202, 1, 216, 0, 36, 59, 77, 173, 35, 254, 130, 45, + 198, 235, 15, 162, 225, 169, 247, 0, 12, 237, 115, 85, 150, 0, 30, 214, 185, 187, 164, 67, 223, 196, 130, 119, 216, 196, 52, 181, 1, 230, 194, 187, + 118, 129, 168, 59, 128, 0, 19, 45, 16, 63, 73, 250, 53, 81, 236, 30, 191, 168, 243, 45, 213, 196, 232, 68, 78, 202, 209, 237, 170, 203, 111, 117, + 154, 114, 32, 78, 128, 52, 34, 156, 95, 181, 176, 145, 12, 112, 32, 18, 12, 135, 8, 222, 145, 42, 150, 238, 67, 220, 208, 226, 208, 12, 24, 35, + 137, 225, 94, 99, 152, 28, 3, 161, 161, 224, 22, 158, 11, 101, 25, 152, 180, 75, 171, 3, 73, 213, 228, 76, 184, 127, 212, 39, 126, 46, 215, 250, + 149, 52, 15, 76, 1, 0, 242, 228, 47, 170, 209, 224, 136, 217, 75, 172, 155, 73, 126, 133, 160, 54, 101, 191, 212, 78, 111, 168, 49, 204, 172, 56, + 185, 206, 4, 201, 221, 167, 208, 81, 24, 110, 117, 108, 115, 36, 218, 243, 60, 129, 45, 1, 30, 172, 50, 219, 67, 11, 200, 0, 3, 0, 237, 157, + 223, 206, 126, 145, 17, 186, 65, 54, 143, 125, 159, 189, 95, 19, 192, 225, 37, 107, 236, 163, 207, 152, 228, 164, 141, 5, 215, 228, 255, 0, 255, 211, + 231, 233, 184, 86, 240, 198, 141, 198, 53, 14, 225, 210, 21, 234, 91, 234, 215, 101, 212, 186, 110, 103, 233, 38, 0, 123, 156, 209, 250, 122, 191, 182, + 207, 252, 18, 181, 72, 215, 142, 43, 151, 189, 196, 192, 145, 160, 246, 159, 163, 244, 212, 169, 97, 174, 199, 28, 98, 92, 9, 16, 26, 119, 196, 15, + 119, 170, 137, 39, 101, 254, 84, 158, 172, 214, 93, 65, 169, 199, 104, 107, 72, 97, 60, 0, 239, 252, 225, 27, 30, 224, 219, 43, 54, 0, 230, 6, + 189, 214, 13, 97, 204, 221, 232, 178, 223, 236, 122, 95, 246, 210, 200, 99, 9, 115, 220, 28, 221, 9, 32, 72, 131, 252, 148, 122, 205, 229, 174, 4, + 150, 190, 37, 174, 32, 145, 19, 254, 15, 249, 9, 81, 235, 106, 36, 187, 215, 93, 91, 117, 169, 193, 197, 219, 92, 35, 190, 210, 179, 238, 202, 139, + 108, 151, 13, 119, 22, 30, 61, 205, 30, 197, 1, 101, 142, 198, 245, 154, 221, 185, 21, 146, 61, 56, 49, 109, 111, 27, 45, 126, 51, 63, 240, 79, + 248, 37, 67, 33, 129, 164, 123, 134, 242, 117, 131, 184, 111, 63, 75, 252, 199, 255, 0, 56, 133, 105, 162, 73, 208, 16, 221, 170, 211, 99, 218, 219, + 0, 32, 130, 28, 237, 4, 238, 69, 99, 139, 156, 227, 18, 193, 45, 12, 250, 77, 48, 127, 71, 189, 83, 164, 216, 221, 195, 87, 6, 184, 201, 104, + 146, 226, 141, 190, 247, 49, 190, 155, 92, 210, 28, 56, 152, 32, 253, 55, 161, 91, 45, 54, 221, 165, 149, 52, 7, 182, 176, 203, 75, 64, 32, 128, + 214, 182, 20, 30, 231, 91, 185, 172, 32, 16, 68, 16, 8, 111, 185, 71, 107, 171, 119, 185, 229, 206, 113, 4, 192, 46, 112, 62, 207, 245, 173, 32, + 237, 208, 72, 120, 1, 199, 104, 35, 79, 207, 255, 0, 61, 137, 42, 251, 150, 47, 22, 87, 179, 107, 137, 116, 206, 226, 97, 162, 10, 89, 20, 190, + 170, 220, 90, 9, 220, 62, 153, 118, 144, 239, 243, 54, 90, 140, 28, 198, 189, 155, 253, 206, 32, 135, 18, 14, 248, 253, 239, 77, 69, 246, 110, 104, + 5, 187, 89, 172, 8, 5, 165, 191, 215, 74, 181, 86, 150, 229, 222, 46, 199, 144, 235, 26, 119, 16, 64, 2, 65, 32, 127, 162, 127, 249, 136, 152, + 249, 229, 187, 89, 115, 1, 107, 166, 28, 209, 183, 233, 59, 244, 183, 191, 114, 39, 167, 140, 1, 220, 230, 185, 160, 79, 59, 95, 31, 154, 207, 229, + 211, 255, 0, 162, 147, 221, 81, 181, 174, 117, 175, 107, 26, 1, 53, 137, 13, 110, 135, 111, 208, 255, 0, 67, 255, 0, 159, 63, 157, 73, 85, 227, + 77, 92, 146, 251, 239, 6, 167, 23, 180, 106, 9, 17, 63, 212, 254, 186, 149, 142, 134, 22, 200, 36, 9, 38, 117, 39, 249, 8, 141, 14, 54, 6, + 201, 0, 72, 37, 191, 205, 148, 74, 43, 198, 14, 18, 65, 178, 70, 178, 3, 38, 127, 51, 222, 129, 223, 68, 117, 106, 227, 216, 12, 155, 0, 115, + 28, 71, 60, 192, 62, 146, 210, 99, 136, 96, 115, 156, 73, 14, 59, 200, 58, 76, 255, 0, 223, 21, 59, 107, 169, 173, 2, 183, 177, 196, 198, 164, + 130, 7, 242, 213, 172, 71, 52, 214, 96, 59, 108, 141, 186, 71, 233, 15, 250, 15, 207, 70, 146, 59, 91, 112, 185, 198, 210, 28, 120, 16, 32, 131, + 175, 242, 211, 58, 186, 201, 152, 5, 196, 109, 34, 70, 129, 202, 54, 72, 18, 226, 237, 218, 182, 26, 1, 254, 181, 174, 255, 0, 212, 138, 1, 228, + 100, 57, 193, 167, 120, 229, 162, 76, 178, 95, 252, 218, 74, 39, 77, 216, 219, 141, 91, 195, 90, 68, 22, 25, 2, 116, 5, 0, 227, 216, 46, 209, + 229, 178, 9, 36, 143, 163, 31, 205, 173, 16, 242, 4, 184, 30, 198, 34, 70, 239, 221, 66, 202, 151, 48, 134, 198, 132, 206, 239, 104, 39, 249, 73, + 90, 224, 69, 83, 93, 148, 150, 84, 221, 167, 113, 115, 139, 137, 29, 154, 79, 250, 189, 18, 90, 217, 17, 16, 64, 17, 19, 16, 161, 115, 222, 218, + 88, 107, 107, 156, 65, 48, 62, 31, 245, 105, 141, 207, 129, 13, 113, 39, 249, 36, 15, 234, 189, 16, 2, 133, 126, 44, 45, 102, 214, 131, 73, 0, + 18, 100, 29, 32, 34, 150, 13, 237, 183, 104, 14, 0, 18, 230, 152, 247, 32, 200, 108, 184, 0, 95, 225, 244, 135, 242, 191, 245, 34, 40, 115, 132, + 105, 45, 35, 136, 36, 15, 235, 187, 247, 17, 0, 93, 20, 146, 24, 238, 99, 203, 131, 92, 116, 150, 130, 6, 175, 42, 44, 102, 215, 11, 29, 238, + 171, 108, 16, 4, 2, 84, 88, 88, 111, 27, 135, 144, 35, 219, 253, 111, 77, 21, 236, 46, 161, 205, 46, 13, 58, 0, 227, 17, 19, 244, 145, 225, + 189, 66, 175, 109, 90, 172, 180, 212, 215, 7, 253, 2, 64, 212, 110, 145, 249, 234, 246, 57, 105, 4, 51, 218, 8, 131, 58, 29, 85, 74, 235, 178, + 72, 123, 152, 24, 210, 55, 16, 101, 206, 119, 252, 34, 44, 184, 185, 219, 68, 14, 229, 163, 221, 167, 245, 191, 125, 52, 196, 245, 65, 29, 211, 3, + 181, 142, 107, 91, 180, 19, 36, 142, 14, 191, 247, 244, 137, 5, 208, 52, 145, 238, 238, 72, 74, 167, 251, 27, 32, 235, 37, 192, 13, 57, 253, 228, + 214, 87, 111, 181, 219, 155, 184, 29, 1, 58, 159, 222, 220, 134, 202, 176, 23, 113, 128, 91, 88, 0, 145, 169, 208, 196, 132, 42, 106, 20, 212, 1, + 118, 242, 52, 105, 61, 165, 77, 128, 134, 254, 140, 201, 51, 39, 187, 71, 246, 83, 6, 214, 239, 166, 97, 209, 161, 6, 29, 3, 249, 40, 146, 21, + 99, 118, 127, 127, 17, 200, 250, 41, 39, 244, 104, 255, 0, 72, 56, 241, 236, 146, 86, 59, 149, 113, 15, 23, 255, 217,]) +export { iccbuf } + + diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/resources/base/element/string.json b/multimedia/image/image_js_standard/imageColorspace/src/main/resources/base/element/string.json index ab33d2408..d53ef806f 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/resources/base/element/string.json +++ b/multimedia/image/image_js_standard/imageColorspace/src/main/resources/base/element/string.json @@ -1,12 +1,28 @@ -{ - "string": [ - { - "name": "entry_MainAbility", - "value": "ImageTwoJSTestMain" - }, - { - "name": "mainability_description", - "value": "ImageTwoJSTestMain Ability" - } - ] +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "ImageTwoJSTestMain" + }, + { + "name": "mainability_description", + "value": "ImageTwoJSTestMain Ability" + }, + { + "name": "MainAbility_desc", + "value": "description" + }, + { + "name": "MainAbility_label", + "value": "label" + }, + { + "name": "TestAbility_desc", + "value": "description" + }, + { + "name": "TestAbility_label", + "value": "label" + } + ] } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/BUILD.gn b/multimedia/image/image_js_standard/imagePixelMapFramework/BUILD.gn index a326e0277..bb8dc697e 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/BUILD.gn +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/BUILD.gn @@ -9,7 +9,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. import("//test/xts/tools/build/suite.gni") @@ -23,7 +23,9 @@ ohos_js_hap_suite("image_pixelmapframework_js_hap") { hap_name = "ActsImagePixelMapFrameworkJsTest" } ohos_js_assets("image_pixelmapframework_js_assets") { - source_dir = "./src/main/js/default" + js2abc = true + hap_profile = "./src/main/config.json" + source_dir = "./src/main/js" } ohos_resources("image_pixelmapframework_resources") { sources = [ "./src/main/resources" ] diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/Test.json b/multimedia/image/image_js_standard/imagePixelMapFramework/Test.json index d5e659aba..7d4fa125c 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/Test.json +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/Test.json @@ -1,20 +1,20 @@ -{ - "description": "Configuration for Image Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "300000", - "package": "ohos.acts.multimedia.image.PixelMapFramework", - "shell-timeout": "120000" - }, - "kits": [ - { - "test-file-name": [ - "ActsImagePixelMapFrameworkJsTest.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - - ] - -} +{ + "description": "Configuration for Image Tests", + "driver": { + "type": "OHJSUnitTest", + "test-timeout": "300000", + "shell-timeout": "300000", + "testcase-timeout": 60000, + "bundle-name": "ohos.acts.multimedia.image.PixelMapFramework", + "package-name": "ohos.acts.multimedia.image.PixelMapFramework" + }, + "kits": [ + { + "test-file-name": [ + "ActsImagePixelMapFrameworkJsTest.hap" + ], + "type": "AppInstallKit", + "cleanup-apps": true + } + ] +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/config.json b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/config.json index 6c6c9ba45..d2432a200 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/config.json +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/config.json @@ -1,104 +1,132 @@ -{ - "app": { - "apiVersion": { - "compatible": 6, - "releaseType": "Beta1", - "target": 7 - }, - "vendor": "acts", - "bundleName": "ohos.acts.multimedia.image.PixelMapFramework", - "version": { - "code": 1000000, - "name": "1.0.0" - } - }, - "deviceConfig": { - "default": { - "debug": true - } - }, - "module": { - "abilities": [ - { - "iconId": 16777218, - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "descriptionId": 16777217, - "visible": true, - "labelId": 16777216, - "icon": "$media:icon", - "name": "ohos.acts.multimedia.image.PixelMapFramework.MainAbility", - "description": "$string:mainability_description", - "label": "$string:entry_MainAbility", - "type": "page", - "homeAbility": true, - "launchType": "standard" - } - ], - "deviceType": [ - "phone", - "tablet", - "tv", - "wearable" - ], - "mainAbility": "ohos.acts.multimedia.image.PixelMapFramework.MainAbility", - "distro": { - "moduleType": "entry", - "installationFree": false, - "deliveryWithInstall": true, - "moduleName": "entry" - }, - "reqPermissions": [ - { - "name": "ohos.permission.GET_BUNDLE_INFO", - "reason": "use ohos.permission.GET_BUNDLE_INFO" - }, - { - "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", - "reason":"use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" - }, - { - "name" : "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", - "reason" : "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS" - }, - { - "name" : "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", - "reason" : "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS" - }, - { - "name": "ohos.permission.MEDIA_LOCATION", - "reason":"use ohos.permission.MEDIA_LOCATION" - }, - { - "name": "ohos.permission.READ_MEDIA", - "reason":"use ohos.permission.READ_MEDIA" - }, - { - "name": "ohos.permission.WRITE_MEDIA", - "reason":"use ohos.permission.WRITE_MEDIA" - } - ], - "package": "ohos.acts.multimedia.image.PixelMapFramework", - "name": ".MyApplication", - "js": [ - { - "pages": [ - "pages/index/index" - ], - "name": "default", - "window": { - "designWidth": 720, - "autoDesignWidth": true - } - } - ] - } +{ + "app": { + "apiVersion": { + "compatible": 6, + "releaseType": "Beta1", + "target": 7 + }, + "vendor": "acts", + "bundleName": "ohos.acts.multimedia.image.PixelMapFramework", + "version": { + "code": 1000000, + "name": "1.0.0" + } + }, + "deviceConfig": { + "default": { + "debug": true + } + }, + "module": { + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "orientation": "unspecified", + "formsEnabled": false, + "name": ".MainAbility", + "srcLanguage": "js", + "srcPath": "MainAbility", + "icon": "$media:icon", + "description": "$string:MainAbility_desc", + "label": "$string:MainAbility_label", + "type": "page", + "visible": true, + "launchType": "standard" + }, + { + "orientation": "unspecified", + "formsEnabled": false, + "name": ".TestAbility", + "srcLanguage": "js", + "srcPath": "TestAbility", + "icon": "$media:icon", + "description": "$string:TestAbility_desc", + "label": "$string:TestAbility_label", + "type": "page", + "visible": true, + "launchType": "standard" + } + ], + "deviceType": [ + "phone", + "tablet", + "tv", + "wearable" + ], + "mainAbility": ".MainAbility", + "distro": { + "moduleType": "entry", + "installationFree": false, + "deliveryWithInstall": true, + "moduleName": "entry" + }, + "reqPermissions": [ + { + "name": "ohos.permission.GET_BUNDLE_INFO", + "reason": "use ohos.permission.GET_BUNDLE_INFO" + }, + { + "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", + "reason": "use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" + }, + { + "name": "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", + "reason": "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS" + }, + { + "name": "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", + "reason": "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS" + }, + { + "name": "ohos.permission.MEDIA_LOCATION", + "reason": "use ohos.permission.MEDIA_LOCATION" + }, + { + "name": "ohos.permission.READ_MEDIA", + "reason": "use ohos.permission.READ_MEDIA" + }, + { + "name": "ohos.permission.WRITE_MEDIA", + "reason": "use ohos.permission.WRITE_MEDIA" + } + ], + "package": "ohos.acts.multimedia.image.PixelMapFramework", + "name": ".entry", + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": true + } + }, + { + "pages": [ + "pages/index/index" + ], + "name": ".TestAbility", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ], + "testRunner": { + "name": "OpenHarmonyTestRunner", + "srcPath": "TestRunner" + }, + "srcPath": "" + } } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/app.js b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/app.js similarity index 97% rename from multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/app.js rename to multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/app.js index e423f4bce..363f2555b 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/app.js +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/app.js @@ -1,23 +1,23 @@ -/* - * Copyright (C) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export default { - onCreate() { - console.info('AceApplication onCreate'); - }, - onDestroy() { - console.info('AceApplication onDestroy'); - } -}; +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + onCreate() { + console.info('AceApplication onCreate'); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/en-US.json b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/i18n/en-US.json similarity index 100% rename from multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/en-US.json rename to multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/i18n/en-US.json diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/zh-CN.json b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/i18n/zh-CN.json similarity index 100% rename from multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/zh-CN.json rename to multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/i18n/zh-CN.json diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.css b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.css similarity index 94% rename from multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.css rename to multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.css index 5bd756702..c537ef67c 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.css +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.css @@ -1,46 +1,46 @@ -.container { - flex-direction: column; - justify-content: center; - align-items: center; - width: 100%; - height: 100%; -} - -.title { - font-size: 40px; - color: #000000; - opacity: 0.9; -} - -@media screen and (device-type: tablet) and (orientation: landscape) { - .title { - font-size: 100px; - } -} - -@media screen and (device-type: wearable) { - .title { - font-size: 28px; - color: #FFFFFF; - } -} - -@media screen and (device-type: tv) { - .container { - background-image: url("/common/images/Wallpaper.png"); - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - - .title { - font-size: 100px; - color: #FFFFFF; - } -} - -@media screen and (device-type: phone) and (orientation: landscape) { - .title { - font-size: 60px; - } -} +.container { + flex-direction: column; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} + +.title { + font-size: 40px; + color: #000000; + opacity: 0.9; +} + +@media screen and (device-type: tablet) and (orientation: landscape) { + .title { + font-size: 100px; + } +} + +@media screen and (device-type: wearable) { + .title { + font-size: 28px; + color: #FFFFFF; + } +} + +@media screen and (device-type: tv) { + .container { + background-image: url("/common/images/Wallpaper.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + } + + .title { + font-size: 100px; + color: #FFFFFF; + } +} + +@media screen and (device-type: phone) and (orientation: landscape) { + .title { + font-size: 60px; + } +} diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.hml b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.hml new file mode 100644 index 000000000..f629c71a9 --- /dev/null +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.hml @@ -0,0 +1,5 @@ +
+ + {{ $t('strings.hello') }} {{ title }} + +
diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.js b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.js new file mode 100644 index 000000000..6e13f0751 --- /dev/null +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/MainAbility/pages/index/index.js @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + }, + onShow() { + console.info('onShow finish') + }, + onReady() { + }, +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/app.js b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/app.js new file mode 100644 index 000000000..cdc31f3dc --- /dev/null +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/app.js @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' +import { Hypium } from '@ohos/hypium' +import testsuite from '../test/List.test' + +export default { + onCreate() { + console.info('TestApplication onCreate') + var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + console.info('start run testcase!!!') + Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite) + }, + onDestroy() { + console.info("TestApplication onDestroy"); + } +}; diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/i18n/en-US.json b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/i18n/en-US.json new file mode 100644 index 000000000..3cb24b374 --- /dev/null +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/i18n/en-US.json @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + }, + "Files": { + } +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/i18n/zh-CN.json b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/i18n/zh-CN.json new file mode 100644 index 000000000..c804e32c0 --- /dev/null +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/i18n/zh-CN.json @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + }, + "Files": { + } +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.css b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.css new file mode 100644 index 000000000..b1bcd4338 --- /dev/null +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.css @@ -0,0 +1,30 @@ +.container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + left: 0px; + top: 0px; + width: 100%; + height: 100%; +} + +.title { + font-size: 60px; + text-align: center; + width: 100%; + height: 40%; + margin: 10px; +} + +@media screen and (device-type: phone) and (orientation: landscape) { + .title { + font-size: 60px; + } +} + +@media screen and (device-type: tablet) and (orientation: landscape) { + .title { + font-size: 100px; + } +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.hml b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.hml new file mode 100644 index 000000000..f629c71a9 --- /dev/null +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.hml @@ -0,0 +1,5 @@ +
+ + {{ $t('strings.hello') }} {{ title }} + +
diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.js b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.js new file mode 100644 index 000000000..88b083a7f --- /dev/null +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestAbility/pages/index/index.js @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + } +} + + + diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestRunner/OpenHarmonyTestRunner.js b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestRunner/OpenHarmonyTestRunner.js new file mode 100644 index 000000000..c5fa8620c --- /dev/null +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/TestRunner/OpenHarmonyTestRunner.js @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' + +function translateParamsToString(parameters) { + const keySet = new Set([ + '-s class', '-s notClass', '-s suite', '-s itName', + '-s level', '-s testType', '-s size', '-s timeout', + '-s package', '-s dryRun' + ]) + let targetParams = ''; + for (const key in parameters) { + if (keySet.has(key)) { + targetParams += ' ' + key + ' ' + parameters[key] + } + } + return targetParams.trim() +} + + export default { + onPrepare() { + console.info('OpenHarmonyTestRunner OnPrepare') + }, + onRun() { + console.log('OpenHarmonyTestRunner onRun run') + var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + + var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.TestAbility' + + var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName + cmd += ' ' + translateParamsToString(abilityDelegatorArguments.parameters) + var debug = abilityDelegatorArguments.parameters["-D"] + console.info('debug value : '+debug) + if (debug == 'true') + { + cmd += ' -D' + } + console.info('cmd : '+cmd) + abilityDelegator.executeShellCommand(cmd, (err, data) => { + console.info('executeShellCommand : err : ' + JSON.stringify(err)); + console.info('executeShellCommand : data : ' + data.stdResult); + console.info('executeShellCommand : data : ' + data.exitCode); + }) + } +}; diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.js b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.js deleted file mode 100644 index a0719cee5..000000000 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {Core, ExpectExtend} from 'deccjsunit/index' - -export default { - data: { - title: "" - }, - onInit() { - this.title = this.$t('strings.world'); - }, - onShow() { - console.info('onShow finish') - const core = Core.getInstance() - const expectExtend = new ExpectExtend({ - 'id': 'extend' - }) - core.addService('expect', expectExtend) - core.init() - const configService = core.getDefaultService('config') - this.timeout = 60000 - configService.setConfig(this) - require('../../../test/List.test') - core.execute() - }, - onReady() { - }, -} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/List.test.js b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/List.test.js index d12a035f2..cb649cd5a 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/List.test.js +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/List.test.js @@ -1,17 +1,20 @@ -/* - * Copyright (C) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -require('./framework.test.js') +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import Image_test from './framework.test.js' +export default function testsuite() { + Image_test() +} diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/framework.test.js b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/framework.test.js index bf4fd5dcf..73a38861f 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/framework.test.js +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/framework.test.js @@ -1,940 +1,941 @@ -/* - * Copyright (C) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import image from '@ohos.multimedia.image' -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' -import { base64Image, scale2x1, translate3x1, rotate90, flipH, testBmp, testGif, crop3x3, scale1x4, setAlpha8, translate1x3 } from './testImg2' -import { testPng, testJpg} from '../../../../../image/src/main/js/test/testImg' -describe('Image', function () { - beforeAll(async function () { - console.info('beforeAll case'); - }) - - beforeEach(function () { - console.info('beforeEach case'); - }) - - afterEach(async function () { - console.info('afterEach case'); - }) - - afterAll(async function () { - console.info('afterAll case'); - }) - - function genPicSource() { - var data = testPng.buffer; - return image.createImageSource(data); - } - - async function genPixelMap() { - var color = new ArrayBuffer(96); - var bufferArr = new Uint8Array(color); - for (var i = 0; i < bufferArr.length; i++) { - bufferArr[i] = i + 1; - } - - let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } - return image.createPixelMap(color, opts); - } - - function loger(caseName) { - return { - myName: caseName, - log: function (msg) { - console.info(this.myName + ' ' + msg); - } - } - } - function fNumber(num) { - if (num > 99) { - return "" + num; - } - if (num > 9) { - return "" + num; - } - return " " + num; - } - function dumpArray(logger, arr, row) { - var tmpS = '' - for (var i = 0; i < arr.length; i++) { - tmpS = tmpS + fNumber(arr[i]) + ", " - if (i % row == (row - 1)) { - logger.log(tmpS); - tmpS = ''; - } - } - } - - async function checkPixelMapInterface(done, logger, pixelMap, orgInfo, sizeCheck, data) { - var newInfo = await pixelMap.getImageInfo() - sizeCheck(done, logger, orgInfo, newInfo) - var pixelSize = pixelMap.getPixelBytesNumber(); - logger.log(`new pixel size ${pixelSize}`); - var readBuffer = new ArrayBuffer(pixelSize); - await pixelMap.readPixelsToBuffer(readBuffer); - var bufferArr2 = new Uint8Array(readBuffer); - for (var i = 0; i < bufferArr2.length; i++) { - if (bufferArr2[i] != data[i]) { - logger.log(`pixel[${i}] current[${bufferArr2[i]}] target[${data[i]}]`); - expect(false).assertTrue(); - done(); - break; - } - } - expect(true).assertTrue(); - done(); - } - - async function pixelMapModifySizeTest(done, testNum, type, pixelMapInterface, sizeCheck, data, ...params) { - let logger = loger(testNum) - try { - var pixelMap = await genPixelMap() - logger.log("pixelMap " + (pixelMap != undefined)); - if (pixelMap != undefined) { - var orgInfo = await pixelMap.getImageInfo() - - if (type == 'callback') { - pixelMap[pixelMapInterface](...params, async () => { - await checkPixelMapInterface(done, logger, pixelMap, orgInfo, sizeCheck, data) - }) - } else { - await pixelMap[pixelMapInterface](...params); - await checkPixelMapInterface(done, logger, pixelMap, orgInfo, sizeCheck, data) - } - } else { - logger.log('create pixelMap fail '); - expect(false).assertTrue(); - done(); - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - } - - - async function checkAlphaPixelmap(done, logger, alphaPixelMap) { - logger.log("AlphaPixelMap " + alphaPixelMap); - if (alphaPixelMap != undefined) { - var imageInfo = await alphaPixelMap.getImageInfo(); - logger.log("AlphaPixelMap pixelformat " + imageInfo.pixelFormat); - expect(imageInfo.pixelFormat == 6).assertTrue(); - done(); - } else { - logger.log('creat alphaPixelMap failed'); - expect(false).assertTrue(); - done(); - } - } - async function createAlphaPixelmapTest(done, testNum, type, imageData) { - let logger = loger(testNum) - try { - let imageSource = image.createImageSource(imageData); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource != undefined) { - let pixelMap = await imageSource.createPixelMap(); - logger.log("PixelMap " + pixelMap); - if (pixelMap != undefined) { - if (type == 'callback') { - pixelMap.createAlphaPixelmap(async (err, alphaPixelMap) => { - await checkAlphaPixelmap(done, logger, alphaPixelMap) - }) - } else { - var alphaPixelMap = await pixelMap.createAlphaPixelmap(); - await checkAlphaPixelmap(done, logger, alphaPixelMap) - } - } else { - logger.log('creat pixelMap failed'); - expect(false).assertTrue(); - done(); - } - } else { - logger.log('creat ImageSource failed'); - expect(false).assertTrue(); - done(); - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - } - async function getDensityTest(done, testNum, imageData, decodingOptions) { - let logger = loger(testNum) - try { - var sourceOptions = { sourceDensity: 120 }; - let imageSource = image.createImageSource(imageData, sourceOptions); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource != undefined) { - let pixelMap = await imageSource.createPixelMap(decodingOptions); - logger.log("PixelMap " + pixelMap); - if (pixelMap != undefined) { - var density = pixelMap.getDensity(); - logger.log("Density " + density); - expect(decodingOptions ? (density == 240) : (density == 120)).assertTrue(); - done(); - } else { - logger.log('creat pixelMap failed '); - expect(false).assertTrue(); - done(); - } - } else { - logger.log('creat imageSource failed '); - expect(false).assertTrue(); - done(); - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - } - - async function setDensityTest(done, testNum, imageData) { - let logger = loger(testNum) - try { - var sourceOptions = { sourceDensity: 120 }; - let imageSource = image.createImageSource(imageData, sourceOptions); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource != undefined) { - let pixelMap = await imageSource.createPixelMap(); - logger.log("PixelMap " + pixelMap); - if (pixelMap != undefined) { - var density = pixelMap.getDensity(); - logger.log("Density1 " + density); - pixelMap.setDensity(360); - density = pixelMap.getDensity(); - logger.log("Density2 " + density); - expect(density == 360).assertTrue(); - done(); - } else { - logger.log('creat pixelMap failed '); - expect(false).assertTrue(); - done(); - } - } else { - logger.log('creat imageSource failed '); - expect(false).assertTrue(); - done(); - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - } - - async function dumpPixelmap(logger, pixelmap) { - var imageInfo = await pixelmap.getImageInfo(); - var pixelSize = pixelmap.getPixelBytesNumber(); - var readBuffer = new ArrayBuffer(pixelSize); - await pixelmap.readPixelsToBuffer(readBuffer); - var bufferArr = new Uint8Array(readBuffer); - dumpArray(logger, bufferArr, imageInfo.size.width * 4); - } - - /** - * @tc.number : frmwk_001 - * @tc.name : BASE64 Image - * @tc.desc : 1.create imagesource with base64Image - * : 2.create pixelmap - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_001', 0, async function (done) { - let logger = loger('frmwk_001') - try { - const imageSource = image.createImageSource(base64Image) - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource != undefined) { - let pixelMap = await imageSource.createPixelMap(); - logger.log("PixelMap " + (pixelMap != undefined)); - expect(pixelMap != undefined).assertTrue(); - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - done(); - }) - - /** - * @tc.number : frmwk_002 - * @tc.name : Pixelmap Scale-promise - * @tc.desc : 1.create pixelmap - * : 2.call scale - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_002', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.width != orgInfo.size.width * 2) { - logger.log(`org width ${orgInfo.size.width}, new width ${newInfo.size.width} `); - expect(false).assertTrue(); - done() - } - } - await pixelMapModifySizeTest(done, 'frmwk_002', 'promise', 'scale', sizeCheck, scale2x1, 2.0, 1.0) - }) - - /** - * @tc.number : frmwk_003 - * @tc.name : Pixelmap Scale-promise - * @tc.desc : 1.create pixelmap - * : 2.call scale - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_003', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.height != orgInfo.size.height * 4) { - logger.log(`org height ${orgInfo.size.height}, new height ${newInfo.size.height} `); - expect(false).assertTrue(); - done() - } - } - await pixelMapModifySizeTest(done, 'frmwk_003', 'promise', 'scale', sizeCheck, scale1x4, 1.0, 4.0) - }) - - /** - * @tc.number : frmwk_004 - * @tc.name : Pixelmap Scale-callback - * @tc.desc : 1.create pixelmap - * : 2.call scale - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_004', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.height != orgInfo.size.height * 4) { - logger.log(`org height ${orgInfo.size.height}, new height ${newInfo.size.height} `); - expect(false).assertTrue(); - done() - } - } - await pixelMapModifySizeTest(done, 'frmwk_004', 'callback', 'scale', sizeCheck, scale1x4, 1.0, 4.0) - }) - - /** - * @tc.number : frmwk_005 - * @tc.name : Pixelmap Translate -promise - * @tc.desc : 1.create pixelmap - * : 2.call translate - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_005', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.width != orgInfo.size.width + 3) { - logger.log(`org width ${orgInfo.size.width}, new width ${newInfo.size.width} `); - expect(false).assertTrue(); - done(); - } - } - await pixelMapModifySizeTest(done, 'frmwk_005', 'promise', 'translate', sizeCheck, translate3x1, 3.0, 1.0) - }) - - /** - * @tc.number : frmwk_006 - * @tc.name : Pixelmap Translate-promise - * @tc.desc : 1.create pixelmap - * : 2.call translate - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_006', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.height != orgInfo.size.height + 3) { - logger.log(`org height ${orgInfo.size.height}, new height ${newInfo.size.height} `); - expect(false).assertTrue(); - done(); - } - } - await pixelMapModifySizeTest(done, 'frmwk_006', 'promise', 'translate', sizeCheck, translate1x3, 1.0, 3.0) - }) - - /** - * @tc.number : frmwk_01_007 - * @tc.name : Pixelmap Translate-callback - * @tc.desc : 1.create pixelmap - * : 2.call translate - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_007', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.height != orgInfo.size.height + 3) { - logger.log(`org height ${orgInfo.size.height}, new height ${newInfo.size.height} `); - expect(false).assertTrue(); - done(); - } - } - await pixelMapModifySizeTest(done, 'frmwk_007', 'callback', 'translate', sizeCheck, translate1x3, 1.0, 3.0) - }) - - /** - * @tc.number : frmwk_008 - * @tc.name : Pixelmap Rotate-promise - * @tc.desc : 1.create pixelmap - * : 2.call rotate - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_008', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.width != orgInfo.size.height) { - logger.log(`org height ${orgInfo.size.height}, new width ${newInfo.size.width} `); - expect(false).assertTrue(); - done(); - } - } - await pixelMapModifySizeTest(done, 'frmwk_008', 'promise', 'rotate', sizeCheck, rotate90, 90.0) - }) - - /** - * @tc.number : frmwk_009 - * @tc.name : Pixelmap Rotate-callback - * @tc.desc : 1.create pixelmap - * : 2.call rotate - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_009', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.width != orgInfo.size.height) { - logger.log(`org height ${orgInfo.size.height}, new width ${newInfo.size.width} `); - expect(false).assertTrue(); - done(); - } - } - await pixelMapModifySizeTest(done, 'frmwk_009', 'callback', 'rotate', sizeCheck, rotate90, 90.0) - }) - - /** - * @tc.number : frmwk_010 - * @tc.name : Pixelmap Flip-promise - * @tc.desc : 1.create pixelmap - * : 2.call flip - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_010', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.width != orgInfo.size.width) { - logger.log(`org width ${orgInfo.size.width}, new width ${newInfo.size.width} `); - expect(false).assertTrue(); - done(); - } - } - await pixelMapModifySizeTest(done, 'frmwk_010', 'promise', 'flip', sizeCheck, flipH, false, true) - }) - - /** - * @tc.number : frmwk_011 - * @tc.name : Pixelmap Flip-callback - * @tc.desc : 1.create pixelmap - * : 2.call flip - * : 3.get pixelbytesnumber - * : 4.read pixels to buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_011', 0, async function (done) { - function sizeCheck(done, logger, orgInfo, newInfo) { - if (newInfo.size.width != orgInfo.size.width) { - logger.log(`org width ${orgInfo.size.width}, new width ${newInfo.size.width} `); - expect(false).assertTrue(); - done(); - } - } - await pixelMapModifySizeTest(done, 'frmwk_011', 'callback', 'flip', sizeCheck, flipH, false, true) - }) - - /** - * @tc.number : frmwk_012 - * @tc.name : isSupportAlpha SetSupportAlpha - * @tc.desc : 1.create imagesource - * : 2.create pixelmap - * : 3.call setAlphaAble - * : 4.call isSupportAlpha - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_012', 0, async function (done) { - let logger = loger('frmwk_012') - try { - let imageSource = genPicSource(); - logger.log("ImageSource " + (imageSource != undefined)); - if (imageSource != undefined) { - let pixelMap = await imageSource.createPixelMap(); - logger.log("PixelMap " + pixelMap); - if (pixelMap != undefined) { - var supportAlpha = pixelMap.isSupportAlpha(); - logger.log("isSupportAlpha before " + supportAlpha); - pixelMap.setAlphaAble(false); - var supportAlpha1 = pixelMap.isSupportAlpha(); - logger.log("isSupportAlpha after " + supportAlpha1); - expect(supportAlpha1 == false).assertTrue(); - done(); - } - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - done(); - }) - /** - * @tc.number : frmwk_013 - * @tc.name : createAlphaPixelmap-promise - * @tc.desc : 1.create imagesource - * : 2.create pixelmap - * : 3.create AlphaPixelmap - * : 4.call getImageInfo - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_013', 0, async function (done) { - var imageData = testPng.buffer; - await createAlphaPixelmapTest(done, 'frmwk_013', 'promise', imageData); - }) - - /** - * @tc.number : frmwk_014 - * @tc.name : createAlphaPixelmap-callback - * @tc.desc : 1.create imagesource - * : 2.create pixelmap - * : 3.create AlphaPixelmap - * : 4.call getImageInfo - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_014', 0, async function (done) { - var imageData = testPng.buffer; - await createAlphaPixelmapTest(done, 'frmwk_014', 'callback', imageData); - }) - - /** - * @tc.number : frmwk_015 - * @tc.name : createAlphaPixelmap-Jpg - * @tc.desc : 1.create imagesource - * : 2.create pixelmap - * : 3.create AlphaPixelmap - * : 4.call getImageInfo - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_015', 0, async function (done) { - var imageData = testJpg.buffer; - await createAlphaPixelmapTest(done, 'frmwk_015', 'promise', imageData); - }) - - /** - * @tc.number : frmwk_016 - * @tc.name : createAlphaPixelmap - * @tc.desc : 1.create imagesource - * : 2.create pixelmap - * : 3.create AlphaPixelmap - * : 4.call getImageInfo - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_016', 0, async function (done) { - var imageData = testBmp.buffer; - await createAlphaPixelmapTest(done, 'frmwk_016', 'promise', imageData); - }) - - /** - * @tc.number : frmwk_017 - * @tc.name : createAlphaPixelmap - * @tc.desc : 1.create imagesource - * : 2.create pixelmap - * : 3.create AlphaPixelmap - * : 4.call getImageInfo - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_017', 0, async function (done) { - var imageData = testGif.buffer; - await createAlphaPixelmapTest(done, 'frmwk_017', 'promise', imageData); - }) - - /** - * @tc.number : frmwk_018 - * @tc.name : setAlpha-promise - * @tc.desc : 1.create pixelmap - * : 2.setAlpha - * : 3.get PixelBytesNumber - * : 4.read Pixels To Buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_018', 0, async function (done) { - let logger = loger('frmwk_018') - try { - var pixelMap = await genPixelMap() - logger.log("pixelMap " + (pixelMap != undefined)); - if (pixelMap != undefined) { - await pixelMap.setAlpha(0.8) - var pixelSize = pixelMap.getPixelBytesNumber(); - logger.log(`new pixel size ${pixelSize}`); - var readBuffer = new ArrayBuffer(pixelSize); - await pixelMap.readPixelsToBuffer(readBuffer); - var bufferArr2 = new Uint8Array(readBuffer); - for (var i = 0; i < bufferArr2.length; i++) { - if (bufferArr2[i] != setAlpha8[i]) { - logger.log(`pixel[${i}] current[${bufferArr2[i]}] target[${setAlpha8[i]}]`); - expect(false).assertTrue(); - break; - } - } - expect(true).assertTrue(); - done(); - } else { - logger.log('creat pixelMap failed '); - expect(false).assertTrue(); - done(); - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - }) - - /** - * @tc.number : frmwk_019 - * @tc.name : setAlpha -callback - * @tc.desc : 1.create pixelmap - * : 2.setAlpha - * : 3.get PixelBytesNumber - * : 4.read Pixels To Buffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_019', 0, async function (done) { - let logger = loger('frmwk_019') - try { - var pixelMap = await genPixelMap() - logger.log("pixelMap " + (pixelMap != undefined)); - if (pixelMap != undefined) { - pixelMap.setAlpha(0.8, async (err) => { - var pixelSize = pixelMap.getPixelBytesNumber(); - logger.log(`new pixel size ${pixelSize}`); - var readBuffer = new ArrayBuffer(pixelSize); - await pixelMap.readPixelsToBuffer(readBuffer); - var bufferArr2 = new Uint8Array(readBuffer); - for (var i = 0; i < bufferArr2.length; i++) { - if (bufferArr2[i] != setAlpha8[i]) { - logger.log(`pixel[${i}] current[${bufferArr2[i]}] target[${setAlpha8[i]}]`); - expect(false).assertTrue(); - break; - } - } - expect(true).assertTrue(); - done(); - }) - } else { - logger.log('creat pixelMap failed '); - expect(false).assertTrue(); - done(); - } - } catch (error) { - logger.log('failed ' + error); - expect(false).assertTrue(); - done(); - } - }) - - /** - * @tc.number : frmwk_020 - * @tc.name : SourceOptions getDensity fitDensity - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap - * : 3.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_020', 0, async function (done) { - var imageData = testPng.buffer; - await getDensityTest(done, 'frmwk_020', imageData) - }) - - /** - * @tc.number : frmwk_021 - * @tc.name : fitDensity - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap with fitDensity - * : 3.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_021', 0, async function (done) { - var imageData = testPng.buffer; - let decodingOptions = { fitDensity: 240 }; - await getDensityTest(done, 'frmwk_021', imageData, decodingOptions) - }) - - /** - * @tc.number : frmwk_022 - * @tc.name : setDensity - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap - * : 3.set Density - * : 4.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_022', 0, async function (done) { - var imageData = testPng.buffer; - await setDensityTest(done, 'frmwk_022', imageData) - }) - - /** - * @tc.number : frmwk_023 - * @tc.name : SourceOptions getDensity fitDensity - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap - * : 3.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_023', 0, async function (done) { - var imageData = testJpg.buffer; - await getDensityTest(done, 'frmwk_023', imageData) - }) - - /** - * @tc.number : frmwk_024 - * @tc.name : SourceOptions getDensity fitDensity - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap - * : 3.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_024', 0, async function (done) { - var imageData = testBmp.buffer; - await getDensityTest(done, 'frmwk_024', imageData) - }) - - /** - * @tc.number : frmwk_025 - * @tc.name : SourceOptions getDensity fitDensity - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap - * : 3.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_025', 0, async function (done) { - var imageData = testGif.buffer; - await getDensityTest(done, 'frmwk_025', imageData) - }) - - /** - * @tc.number : frmwk_026 - * @tc.name : fitDensity-JPG - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap with fitDensity - * : 3.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_026', 0, async function (done) { - var imageData = testJpg.buffer; - let decodingOptions = { fitDensity: 240 }; - await getDensityTest(done, 'frmwk_026', imageData, decodingOptions) - }) - - /** - * @tc.number : frmwk_027 - * @tc.name : fitDensity-bmp - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap with fitDensity - * : 3.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_027', 0, async function (done) { - var imageData = testBmp.buffer; - let decodingOptions = { fitDensity: 240 }; - await getDensityTest(done, 'frmwk_027', imageData, decodingOptions) - }) - - /** - * @tc.number : frmwk_028 - * @tc.name : fitDensity-gif - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap with fitDensity - * : 3.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_028', 0, async function (done) { - var imageData = testGif.buffer; - let decodingOptions = { fitDensity: 240 }; - await getDensityTest(done, 'frmwk_028', imageData, decodingOptions) - }) - - /** - * @tc.number : frmwk_029 - * @tc.name : setDensity-Jpg - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap - * : 3.set Density - * : 4.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_029', 0, async function (done) { - var imageData = testJpg.buffer; - await setDensityTest(done, 'frmwk_029', imageData) - }) - - /** - * @tc.number : frmwk_030 - * @tc.name : setDensity-bmp - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap - * : 3.set Density - * : 4.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_030', 0, async function (done) { - var imageData = testBmp.buffer; - await setDensityTest(done, 'frmwk_030', imageData) - }) - - /** - * @tc.number : frmwk_031 - * @tc.name : setDensity-gif - * @tc.desc : 1.create ImageSource - * : 2.create PixelMap - * : 3.set Density - * : 4.getDensity - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_031', 0, async function (done) { - var imageData = testGif.buffer; - await setDensityTest(done, 'frmwk_031', imageData) - }) - - /** - * @tc.number : frmwk_032 - * @tc.name : crop-promise - * @tc.desc : 1.create PixelMap - * : 2.crop - * : 3.getImageInfo - * : 4.getPixelBytesNumber - * : 5.readPixelsToBuffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_032', 0, async function (done) { - var region = { size: { height: 3, width: 3 }, x: 1, y: 1 }; - function sizeCheck(done, logger, orgInfo, newInfo) { - orgInfo = region; - if (newInfo.size.width != orgInfo.size.width) { - logger.log(`orgInfo width ${orgInfo.size.width}, new width ${newInfo.size.width} `); - expect(false).assertTrue(); - done(); - } - } - await pixelMapModifySizeTest(done, 'frmwk_032', 'promise', 'crop', sizeCheck, crop3x3, region) - }) - - /** - * @tc.number : frmwk_033 - * @tc.name : crop -callback - * @tc.desc : 1.create PixelMap - * : 2.crop - * : 3.getImageInfo - * : 4.getPixelBytesNumber - * : 5.readPixelsToBuffer - * @tc.size : MEDIUM - * @tc.type : Functional - * @tc.level : Level 1 - */ - it('frmwk_033', 0, async function (done) { - var region = { size: { height: 3, width: 3 }, x: 1, y: 1 }; - function sizeCheck(done, logger, orgInfo, newInfo) { - orgInfo = region; - if (newInfo.size.width != orgInfo.size.width) { - logger.log(`orgInfo width ${orgInfo.size.width}, new width ${newInfo.size.width} `); - expect(false).assertTrue(); - done(); - } - } - await pixelMapModifySizeTest(done, 'frmwk_033', 'callback', 'crop', sizeCheck, crop3x3, region) - }) - -}) \ No newline at end of file +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import image from '@ohos.multimedia.image' +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +import { base64Image, scale2x1, translate3x1, rotate90, flipH, testBmp, testGif, crop3x3, scale1x4, setAlpha8, translate1x3 } from './testImg2' +import { testPng, testJpg} from '../../../../../image/src/main/js/test/testImg' +export default function Image_test() { +describe('Image_test', function () { + beforeAll(async function () { + console.info('beforeAll case'); + }) + + beforeEach(function () { + console.info('beforeEach case'); + }) + + afterEach(async function () { + console.info('afterEach case'); + }) + + afterAll(async function () { + console.info('afterAll case'); + }) + + function genPicSource() { + var data = testPng.buffer; + return image.createImageSource(data); + } + + async function genPixelMap() { + var color = new ArrayBuffer(96); + var bufferArr = new Uint8Array(color); + for (var i = 0; i < bufferArr.length; i++) { + bufferArr[i] = i + 1; + } + + let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } + return image.createPixelMap(color, opts); + } + + function loger(caseName) { + return { + myName: caseName, + log: function (msg) { + console.info(this.myName + ' ' + msg); + } + } + } + function fNumber(num) { + if (num > 99) { + return "" + num; + } + if (num > 9) { + return "" + num; + } + return " " + num; + } + function dumpArray(logger, arr, row) { + var tmpS = '' + for (var i = 0; i < arr.length; i++) { + tmpS = tmpS + fNumber(arr[i]) + ", " + if (i % row == (row - 1)) { + logger.log(tmpS); + tmpS = ''; + } + } + } + + async function checkPixelMapInterface(done, logger, pixelMap, orgInfo, sizeCheck, data) { + var newInfo = await pixelMap.getImageInfo() + sizeCheck(done, logger, orgInfo, newInfo) + var pixelSize = pixelMap.getPixelBytesNumber(); + logger.log(`new pixel size ${pixelSize}`); + var readBuffer = new ArrayBuffer(pixelSize); + await pixelMap.readPixelsToBuffer(readBuffer); + var bufferArr2 = new Uint8Array(readBuffer); + for (var i = 0; i < bufferArr2.length; i++) { + if (bufferArr2[i] != data[i]) { + logger.log(`pixel[${i}] current[${bufferArr2[i]}] target[${data[i]}]`); + expect(false).assertTrue(); + done(); + break; + } + } + expect(true).assertTrue(); + done(); + } + + async function pixelMapModifySizeTest(done, testNum, type, pixelMapInterface, sizeCheck, data, ...params) { + let logger = loger(testNum) + try { + var pixelMap = await genPixelMap() + logger.log("pixelMap " + (pixelMap != undefined)); + if (pixelMap != undefined) { + var orgInfo = await pixelMap.getImageInfo() + + if (type == 'callback') { + pixelMap[pixelMapInterface](...params, async () => { + await checkPixelMapInterface(done, logger, pixelMap, orgInfo, sizeCheck, data) + }) + } else { + await pixelMap[pixelMapInterface](...params); + await checkPixelMapInterface(done, logger, pixelMap, orgInfo, sizeCheck, data) + } + } else { + logger.log('create pixelMap fail '); + expect(false).assertTrue(); + done(); + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + } + + + async function checkAlphaPixelmap(done, logger, alphaPixelMap) { + logger.log("AlphaPixelMap " + alphaPixelMap); + if (alphaPixelMap != undefined) { + var imageInfo = await alphaPixelMap.getImageInfo(); + logger.log("AlphaPixelMap pixelformat " + imageInfo.pixelFormat); + expect(imageInfo.pixelFormat == 6).assertTrue(); + done(); + } else { + logger.log('creat alphaPixelMap failed'); + expect(false).assertTrue(); + done(); + } + } + async function createAlphaPixelmapTest(done, testNum, type, imageData) { + let logger = loger(testNum) + try { + let imageSource = image.createImageSource(imageData); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource != undefined) { + let pixelMap = await imageSource.createPixelMap(); + logger.log("PixelMap " + pixelMap); + if (pixelMap != undefined) { + if (type == 'callback') { + pixelMap.createAlphaPixelmap(async (err, alphaPixelMap) => { + await checkAlphaPixelmap(done, logger, alphaPixelMap) + }) + } else { + var alphaPixelMap = await pixelMap.createAlphaPixelmap(); + await checkAlphaPixelmap(done, logger, alphaPixelMap) + } + } else { + logger.log('creat pixelMap failed'); + expect(false).assertTrue(); + done(); + } + } else { + logger.log('creat ImageSource failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + } + async function getDensityTest(done, testNum, imageData, decodingOptions) { + let logger = loger(testNum) + try { + var sourceOptions = { sourceDensity: 120 }; + let imageSource = image.createImageSource(imageData, sourceOptions); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource != undefined) { + let pixelMap = await imageSource.createPixelMap(decodingOptions); + logger.log("PixelMap " + pixelMap); + if (pixelMap != undefined) { + var density = pixelMap.getDensity(); + logger.log("Density " + density); + expect(decodingOptions ? (density == 240) : (density == 120)).assertTrue(); + done(); + } else { + logger.log('creat pixelMap failed '); + expect(false).assertTrue(); + done(); + } + } else { + logger.log('creat imageSource failed '); + expect(false).assertTrue(); + done(); + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + } + + async function setDensityTest(done, testNum, imageData) { + let logger = loger(testNum) + try { + var sourceOptions = { sourceDensity: 120 }; + let imageSource = image.createImageSource(imageData, sourceOptions); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource != undefined) { + let pixelMap = await imageSource.createPixelMap(); + logger.log("PixelMap " + pixelMap); + if (pixelMap != undefined) { + var density = pixelMap.getDensity(); + logger.log("Density1 " + density); + pixelMap.setDensity(360); + density = pixelMap.getDensity(); + logger.log("Density2 " + density); + expect(density == 360).assertTrue(); + done(); + } else { + logger.log('creat pixelMap failed '); + expect(false).assertTrue(); + done(); + } + } else { + logger.log('creat imageSource failed '); + expect(false).assertTrue(); + done(); + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + } + + async function dumpPixelmap(logger, pixelmap) { + var imageInfo = await pixelmap.getImageInfo(); + var pixelSize = pixelmap.getPixelBytesNumber(); + var readBuffer = new ArrayBuffer(pixelSize); + await pixelmap.readPixelsToBuffer(readBuffer); + var bufferArr = new Uint8Array(readBuffer); + dumpArray(logger, bufferArr, imageInfo.size.width * 4); + } + + /** + * @tc.number : frmwk_001 + * @tc.name : BASE64 Image + * @tc.desc : 1.create imagesource with base64Image + * : 2.create pixelmap + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_001', 0, async function (done) { + let logger = loger('frmwk_001') + try { + const imageSource = image.createImageSource(base64Image) + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource != undefined) { + let pixelMap = await imageSource.createPixelMap(); + logger.log("PixelMap " + (pixelMap != undefined)); + expect(pixelMap != undefined).assertTrue(); + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + done(); + }) + + /** + * @tc.number : frmwk_002 + * @tc.name : Pixelmap Scale-promise + * @tc.desc : 1.create pixelmap + * : 2.call scale + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_002', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.width != orgInfo.size.width * 2) { + logger.log(`org width ${orgInfo.size.width}, new width ${newInfo.size.width} `); + expect(false).assertTrue(); + done() + } + } + await pixelMapModifySizeTest(done, 'frmwk_002', 'promise', 'scale', sizeCheck, scale2x1, 2.0, 1.0) + }) + + /** + * @tc.number : frmwk_003 + * @tc.name : Pixelmap Scale-promise + * @tc.desc : 1.create pixelmap + * : 2.call scale + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_003', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.height != orgInfo.size.height * 4) { + logger.log(`org height ${orgInfo.size.height}, new height ${newInfo.size.height} `); + expect(false).assertTrue(); + done() + } + } + await pixelMapModifySizeTest(done, 'frmwk_003', 'promise', 'scale', sizeCheck, scale1x4, 1.0, 4.0) + }) + + /** + * @tc.number : frmwk_004 + * @tc.name : Pixelmap Scale-callback + * @tc.desc : 1.create pixelmap + * : 2.call scale + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_004', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.height != orgInfo.size.height * 4) { + logger.log(`org height ${orgInfo.size.height}, new height ${newInfo.size.height} `); + expect(false).assertTrue(); + done() + } + } + await pixelMapModifySizeTest(done, 'frmwk_004', 'callback', 'scale', sizeCheck, scale1x4, 1.0, 4.0) + }) + + /** + * @tc.number : frmwk_005 + * @tc.name : Pixelmap Translate -promise + * @tc.desc : 1.create pixelmap + * : 2.call translate + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_005', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.width != orgInfo.size.width + 3) { + logger.log(`org width ${orgInfo.size.width}, new width ${newInfo.size.width} `); + expect(false).assertTrue(); + done(); + } + } + await pixelMapModifySizeTest(done, 'frmwk_005', 'promise', 'translate', sizeCheck, translate3x1, 3.0, 1.0) + }) + + /** + * @tc.number : frmwk_006 + * @tc.name : Pixelmap Translate-promise + * @tc.desc : 1.create pixelmap + * : 2.call translate + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_006', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.height != orgInfo.size.height + 3) { + logger.log(`org height ${orgInfo.size.height}, new height ${newInfo.size.height} `); + expect(false).assertTrue(); + done(); + } + } + await pixelMapModifySizeTest(done, 'frmwk_006', 'promise', 'translate', sizeCheck, translate1x3, 1.0, 3.0) + }) + + /** + * @tc.number : frmwk_01_007 + * @tc.name : Pixelmap Translate-callback + * @tc.desc : 1.create pixelmap + * : 2.call translate + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_007', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.height != orgInfo.size.height + 3) { + logger.log(`org height ${orgInfo.size.height}, new height ${newInfo.size.height} `); + expect(false).assertTrue(); + done(); + } + } + await pixelMapModifySizeTest(done, 'frmwk_007', 'callback', 'translate', sizeCheck, translate1x3, 1.0, 3.0) + }) + + /** + * @tc.number : frmwk_008 + * @tc.name : Pixelmap Rotate-promise + * @tc.desc : 1.create pixelmap + * : 2.call rotate + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_008', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.width != orgInfo.size.height) { + logger.log(`org height ${orgInfo.size.height}, new width ${newInfo.size.width} `); + expect(false).assertTrue(); + done(); + } + } + await pixelMapModifySizeTest(done, 'frmwk_008', 'promise', 'rotate', sizeCheck, rotate90, 90.0) + }) + + /** + * @tc.number : frmwk_009 + * @tc.name : Pixelmap Rotate-callback + * @tc.desc : 1.create pixelmap + * : 2.call rotate + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_009', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.width != orgInfo.size.height) { + logger.log(`org height ${orgInfo.size.height}, new width ${newInfo.size.width} `); + expect(false).assertTrue(); + done(); + } + } + await pixelMapModifySizeTest(done, 'frmwk_009', 'callback', 'rotate', sizeCheck, rotate90, 90.0) + }) + + /** + * @tc.number : frmwk_010 + * @tc.name : Pixelmap Flip-promise + * @tc.desc : 1.create pixelmap + * : 2.call flip + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_010', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.width != orgInfo.size.width) { + logger.log(`org width ${orgInfo.size.width}, new width ${newInfo.size.width} `); + expect(false).assertTrue(); + done(); + } + } + await pixelMapModifySizeTest(done, 'frmwk_010', 'promise', 'flip', sizeCheck, flipH, false, true) + }) + + /** + * @tc.number : frmwk_011 + * @tc.name : Pixelmap Flip-callback + * @tc.desc : 1.create pixelmap + * : 2.call flip + * : 3.get pixelbytesnumber + * : 4.read pixels to buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_011', 0, async function (done) { + function sizeCheck(done, logger, orgInfo, newInfo) { + if (newInfo.size.width != orgInfo.size.width) { + logger.log(`org width ${orgInfo.size.width}, new width ${newInfo.size.width} `); + expect(false).assertTrue(); + done(); + } + } + await pixelMapModifySizeTest(done, 'frmwk_011', 'callback', 'flip', sizeCheck, flipH, false, true) + }) + + /** + * @tc.number : frmwk_012 + * @tc.name : isSupportAlpha SetSupportAlpha + * @tc.desc : 1.create imagesource + * : 2.create pixelmap + * : 3.call setAlphaAble + * : 4.call isSupportAlpha + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_012', 0, async function (done) { + let logger = loger('frmwk_012') + try { + let imageSource = genPicSource(); + logger.log("ImageSource " + (imageSource != undefined)); + if (imageSource != undefined) { + let pixelMap = await imageSource.createPixelMap(); + logger.log("PixelMap " + pixelMap); + if (pixelMap != undefined) { + var supportAlpha = pixelMap.isSupportAlpha(); + logger.log("isSupportAlpha before " + supportAlpha); + pixelMap.setAlphaAble(false); + var supportAlpha1 = pixelMap.isSupportAlpha(); + logger.log("isSupportAlpha after " + supportAlpha1); + expect(supportAlpha1 == false).assertTrue(); + done(); + } + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + done(); + }) + /** + * @tc.number : frmwk_013 + * @tc.name : createAlphaPixelmap-promise + * @tc.desc : 1.create imagesource + * : 2.create pixelmap + * : 3.create AlphaPixelmap + * : 4.call getImageInfo + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_013', 0, async function (done) { + var imageData = testPng.buffer; + await createAlphaPixelmapTest(done, 'frmwk_013', 'promise', imageData); + }) + + /** + * @tc.number : frmwk_014 + * @tc.name : createAlphaPixelmap-callback + * @tc.desc : 1.create imagesource + * : 2.create pixelmap + * : 3.create AlphaPixelmap + * : 4.call getImageInfo + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_014', 0, async function (done) { + var imageData = testPng.buffer; + await createAlphaPixelmapTest(done, 'frmwk_014', 'callback', imageData); + }) + + /** + * @tc.number : frmwk_015 + * @tc.name : createAlphaPixelmap-Jpg + * @tc.desc : 1.create imagesource + * : 2.create pixelmap + * : 3.create AlphaPixelmap + * : 4.call getImageInfo + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_015', 0, async function (done) { + var imageData = testJpg.buffer; + await createAlphaPixelmapTest(done, 'frmwk_015', 'promise', imageData); + }) + + /** + * @tc.number : frmwk_016 + * @tc.name : createAlphaPixelmap + * @tc.desc : 1.create imagesource + * : 2.create pixelmap + * : 3.create AlphaPixelmap + * : 4.call getImageInfo + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_016', 0, async function (done) { + var imageData = testBmp.buffer; + await createAlphaPixelmapTest(done, 'frmwk_016', 'promise', imageData); + }) + + /** + * @tc.number : frmwk_017 + * @tc.name : createAlphaPixelmap + * @tc.desc : 1.create imagesource + * : 2.create pixelmap + * : 3.create AlphaPixelmap + * : 4.call getImageInfo + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_017', 0, async function (done) { + var imageData = testGif.buffer; + await createAlphaPixelmapTest(done, 'frmwk_017', 'promise', imageData); + }) + + /** + * @tc.number : frmwk_018 + * @tc.name : setAlpha-promise + * @tc.desc : 1.create pixelmap + * : 2.setAlpha + * : 3.get PixelBytesNumber + * : 4.read Pixels To Buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_018', 0, async function (done) { + let logger = loger('frmwk_018') + try { + var pixelMap = await genPixelMap() + logger.log("pixelMap " + (pixelMap != undefined)); + if (pixelMap != undefined) { + await pixelMap.setAlpha(0.8) + var pixelSize = pixelMap.getPixelBytesNumber(); + logger.log(`new pixel size ${pixelSize}`); + var readBuffer = new ArrayBuffer(pixelSize); + await pixelMap.readPixelsToBuffer(readBuffer); + var bufferArr2 = new Uint8Array(readBuffer); + for (var i = 0; i < bufferArr2.length; i++) { + if (bufferArr2[i] != setAlpha8[i]) { + logger.log(`pixel[${i}] current[${bufferArr2[i]}] target[${setAlpha8[i]}]`); + expect(false).assertTrue(); + break; + } + } + expect(true).assertTrue(); + done(); + } else { + logger.log('creat pixelMap failed '); + expect(false).assertTrue(); + done(); + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + }) + + /** + * @tc.number : frmwk_019 + * @tc.name : setAlpha -callback + * @tc.desc : 1.create pixelmap + * : 2.setAlpha + * : 3.get PixelBytesNumber + * : 4.read Pixels To Buffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_019', 0, async function (done) { + let logger = loger('frmwk_019') + try { + var pixelMap = await genPixelMap() + logger.log("pixelMap " + (pixelMap != undefined)); + if (pixelMap != undefined) { + pixelMap.setAlpha(0.8, async (err) => { + var pixelSize = pixelMap.getPixelBytesNumber(); + logger.log(`new pixel size ${pixelSize}`); + var readBuffer = new ArrayBuffer(pixelSize); + await pixelMap.readPixelsToBuffer(readBuffer); + var bufferArr2 = new Uint8Array(readBuffer); + for (var i = 0; i < bufferArr2.length; i++) { + if (bufferArr2[i] != setAlpha8[i]) { + logger.log(`pixel[${i}] current[${bufferArr2[i]}] target[${setAlpha8[i]}]`); + expect(false).assertTrue(); + break; + } + } + expect(true).assertTrue(); + done(); + }) + } else { + logger.log('creat pixelMap failed '); + expect(false).assertTrue(); + done(); + } + } catch (error) { + logger.log('failed ' + error); + expect(false).assertTrue(); + done(); + } + }) + + /** + * @tc.number : frmwk_020 + * @tc.name : SourceOptions getDensity fitDensity + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap + * : 3.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_020', 0, async function (done) { + var imageData = testPng.buffer; + await getDensityTest(done, 'frmwk_020', imageData) + }) + + /** + * @tc.number : frmwk_021 + * @tc.name : fitDensity + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap with fitDensity + * : 3.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_021', 0, async function (done) { + var imageData = testPng.buffer; + let decodingOptions = { fitDensity: 240 }; + await getDensityTest(done, 'frmwk_021', imageData, decodingOptions) + }) + + /** + * @tc.number : frmwk_022 + * @tc.name : setDensity + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap + * : 3.set Density + * : 4.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_022', 0, async function (done) { + var imageData = testPng.buffer; + await setDensityTest(done, 'frmwk_022', imageData) + }) + + /** + * @tc.number : frmwk_023 + * @tc.name : SourceOptions getDensity fitDensity + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap + * : 3.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_023', 0, async function (done) { + var imageData = testJpg.buffer; + await getDensityTest(done, 'frmwk_023', imageData) + }) + + /** + * @tc.number : frmwk_024 + * @tc.name : SourceOptions getDensity fitDensity + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap + * : 3.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_024', 0, async function (done) { + var imageData = testBmp.buffer; + await getDensityTest(done, 'frmwk_024', imageData) + }) + + /** + * @tc.number : frmwk_025 + * @tc.name : SourceOptions getDensity fitDensity + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap + * : 3.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_025', 0, async function (done) { + var imageData = testGif.buffer; + await getDensityTest(done, 'frmwk_025', imageData) + }) + + /** + * @tc.number : frmwk_026 + * @tc.name : fitDensity-JPG + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap with fitDensity + * : 3.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_026', 0, async function (done) { + var imageData = testJpg.buffer; + let decodingOptions = { fitDensity: 240 }; + await getDensityTest(done, 'frmwk_026', imageData, decodingOptions) + }) + + /** + * @tc.number : frmwk_027 + * @tc.name : fitDensity-bmp + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap with fitDensity + * : 3.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_027', 0, async function (done) { + var imageData = testBmp.buffer; + let decodingOptions = { fitDensity: 240 }; + await getDensityTest(done, 'frmwk_027', imageData, decodingOptions) + }) + + /** + * @tc.number : frmwk_028 + * @tc.name : fitDensity-gif + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap with fitDensity + * : 3.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_028', 0, async function (done) { + var imageData = testGif.buffer; + let decodingOptions = { fitDensity: 240 }; + await getDensityTest(done, 'frmwk_028', imageData, decodingOptions) + }) + + /** + * @tc.number : frmwk_029 + * @tc.name : setDensity-Jpg + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap + * : 3.set Density + * : 4.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_029', 0, async function (done) { + var imageData = testJpg.buffer; + await setDensityTest(done, 'frmwk_029', imageData) + }) + + /** + * @tc.number : frmwk_030 + * @tc.name : setDensity-bmp + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap + * : 3.set Density + * : 4.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_030', 0, async function (done) { + var imageData = testBmp.buffer; + await setDensityTest(done, 'frmwk_030', imageData) + }) + + /** + * @tc.number : frmwk_031 + * @tc.name : setDensity-gif + * @tc.desc : 1.create ImageSource + * : 2.create PixelMap + * : 3.set Density + * : 4.getDensity + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_031', 0, async function (done) { + var imageData = testGif.buffer; + await setDensityTest(done, 'frmwk_031', imageData) + }) + + /** + * @tc.number : frmwk_032 + * @tc.name : crop-promise + * @tc.desc : 1.create PixelMap + * : 2.crop + * : 3.getImageInfo + * : 4.getPixelBytesNumber + * : 5.readPixelsToBuffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_032', 0, async function (done) { + var region = { size: { height: 3, width: 3 }, x: 1, y: 1 }; + function sizeCheck(done, logger, orgInfo, newInfo) { + orgInfo = region; + if (newInfo.size.width != orgInfo.size.width) { + logger.log(`orgInfo width ${orgInfo.size.width}, new width ${newInfo.size.width} `); + expect(false).assertTrue(); + done(); + } + } + await pixelMapModifySizeTest(done, 'frmwk_032', 'promise', 'crop', sizeCheck, crop3x3, region) + }) + + /** + * @tc.number : frmwk_033 + * @tc.name : crop -callback + * @tc.desc : 1.create PixelMap + * : 2.crop + * : 3.getImageInfo + * : 4.getPixelBytesNumber + * : 5.readPixelsToBuffer + * @tc.size : MEDIUM + * @tc.type : Functional + * @tc.level : Level 1 + */ + it('frmwk_033', 0, async function (done) { + var region = { size: { height: 3, width: 3 }, x: 1, y: 1 }; + function sizeCheck(done, logger, orgInfo, newInfo) { + orgInfo = region; + if (newInfo.size.width != orgInfo.size.width) { + logger.log(`orgInfo width ${orgInfo.size.width}, new width ${newInfo.size.width} `); + expect(false).assertTrue(); + done(); + } + } + await pixelMapModifySizeTest(done, 'frmwk_033', 'callback', 'crop', sizeCheck, crop3x3, region) + }) + +})} diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/testImg2.js b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/testImg2.js index 254b42c48..dcdab964b 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/testImg2.js +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/test/testImg2.js @@ -1,91 +1,91 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -let base64Image = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCADiAdgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9EKKKK/xjP6oCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//2Q==' -let scale2x1 = new Uint8Array([ - 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, 11, 1, 0, 0, 13, 1, 0, 0, 15, 1, 1, 1, 17, - 1, 1, 1, 19, 1, 1, 1, 21, 1, 1, 1, 23, 2, 2, 2, 24, 3, 3, 3, 28, 3, 3, 3, 29, 3, 3, 3, 31, 4, 4, 4, 33, - 4, 4, 4, 35, 5, 5, 5, 37, 5, 5, 5, 39, 6, 6, 6, 41, 6, 6, 6, 43, 7, 7, 7, 45, 8, 8, 7, 47, 9, 9, 8, 48, - 10, 10, 10, 52, 10, 10, 10, 53, 11, 11, 11, 55, 12, 12, 12, 57, 13, 13, 12, 59, 14, 14, 13, 61, 15, 15, 14, 63, 16, 16, 15, 65, - 17, 17, 16, 67, 18, 18, 17, 69, 19, 19, 18, 71, 20, 20, 19, 72, 22, 22, 22, 76, 22, 22, 22, 77, 24, 23, 23, 79, 25, 24, 24, 81, - 26, 26, 26, 83, 27, 27, 27, 85, 29, 29, 28, 87, 30, 30, 29, 89, 32, 31, 31, 91, 33, 32, 32, 93, 35, 34, 34, 95, 36, 35, 35, 96 -]) -let scale1x4 = new Uint8Array([ -0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, -0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, -0, 0, 0, 7, 0, 0, 0, 11, 1, 0, 0, 15, 1, 1, 1, 19, 1, 1, 1, 23, 2, 2, 2, 27, -1, 1, 1, 13, 1, 1, 1, 17, 2, 1, 1, 21, 2, 2, 2, 25, 3, 3, 3, 29, 4, 4, 4, 33, -1, 1, 1, 19, 2, 2, 2, 23, 3, 3, 3, 27, 4, 4, 4, 31, 4, 4, 4, 35, 6, 6, 5, 39, -2, 2, 2, 25, 3, 3, 3, 29, 4, 4, 4, 33, 5, 5, 5, 37, 6, 6, 6, 41, 8, 8, 7, 45, -3, 3, 3, 31, 5, 5, 5, 35, 6, 6, 6, 39, 7, 7, 7, 43, 8, 8, 8, 47, 10, 10, 9, 51, -5, 5, 5, 37, 7, 7, 7, 41, 8, 8, 8, 45, 9, 9, 9, 49, 11, 11, 10, 53, 13, 13, 12, 57, -7, 7, 7, 43, 9, 9, 9, 47, 10, 10, 10, 51, 12, 12, 11, 55, 13, 13, 13, 59, 15, 15, 14, 63, -9, 9, 9, 49, 11, 11, 11, 53, 12, 12, 12, 57, 14, 14, 13, 61, 16, 16, 15, 65, 18, 18, 17, 69, -11, 11, 11, 55, 13, 13, 13, 59, 15, 15, 14, 63, 17, 17, 16, 67, 19, 19, 18, 71, 22, 21, 21, 75, -14, 14, 14, 61, 16, 16, 16, 65, 18, 18, 18, 69, 21, 21, 20, 73, 23, 23, 22, 77, 26, 25, 25, 81, -17, 17, 17, 67, 20, 19, 19, 71, 22, 22, 21, 75, 24, 24, 23, 79, 27, 26, 26, 83, 30, 29, 29, 87, -20, 20, 20, 73, 23, 22, 22, 77, 25, 25, 25, 81, 28, 28, 27, 85, 31, 30, 30, 89, 34, 33, 33, 93, -22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, -22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, -]) -let translate3x1 = new Uint8Array([ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 28, 4, 4, 4, 32, 5, 5, 5, 36, 6, 6, 6, 40, 7, 7, 7, 44, 9, 9, 8, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 52, 12, 12, 12, 56, 14, 14, 13, 60, 16, 16, 15, 64, 18, 18, 17, 68, 20, 20, 19, 72, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, -]) -let translate1x3 = new Uint8Array([ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, -0, 0, 0, 0, 3, 3, 3, 28, 4, 4, 4, 32, 5, 5, 5, 36, 6, 6, 6, 40, 7, 7, 7, 44, 9, 9, 8, 48, -0, 0, 0, 0, 10, 10, 10, 52, 12, 12, 12, 56, 14, 14, 13, 60, 16, 16, 15, 64, 18, 18, 17, 68, 20, 20, 19, 72, -0, 0, 0, 0, 22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, -]) -let rotate90 = new Uint8Array([ - 22, 22, 22, 76, 10, 10, 10, 52, 3, 3, 3, 28, 0, 0, 0, 4, - 25, 24, 24, 80, 12, 12, 12, 56, 4, 4, 4, 32, 0, 0, 0, 8, - 27, 27, 27, 84, 14, 14, 13, 60, 5, 5, 5, 36, 1, 0, 0, 12, - 30, 30, 29, 88, 16, 16, 15, 64, 6, 6, 6, 40, 1, 1, 1, 16, - 33, 32, 32, 92, 18, 18, 17, 68, 7, 7, 7, 44, 1, 1, 1, 20, - 36, 35, 35, 96, 20, 20, 19, 72, 9, 9, 8, 48, 2, 2, 2, 24, -]) -let flipH = new Uint8Array([ - 22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, - 10, 10, 10, 52, 12, 12, 12, 56, 14, 14, 13, 60, 16, 16, 15, 64, 18, 18, 17, 68, 20, 20, 19, 72, - 3, 3, 3, 28, 4, 4, 4, 32, 5, 5, 5, 36, 6, 6, 6, 40, 7, 7, 7, 44, 9, 9, 8, 48, - 0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, -]) -let crop3x3 = new Uint8Array([ - 4, 4, 4, 32, 5, 5, 5, 36, 6, 6, 6, 40, - 12, 12, 12, 56, 14, 14, 13, 60, 16, 16, 15, 64, - 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, -]) -let setAlpha8 = new Uint8Array([ - 0, 0, 0, 204, 0, 0, 0, 204, 17, 0, 0, 204, 13, 13, 13, 204, 10, 10, 10, 204, 17, 17, 17, 204, - 22, 22, 22, 204, 26, 26, 26, 204, 28, 28, 28, 204, 31, 31, 31, 204, 32, 32, 32, 204, 38, 38, 34, 204, - 39, 39, 39, 204, 44, 44, 44, 204, 48, 48, 44, 204, 51, 51, 48, 204, 54, 54, 51, 204, 57, 57, 54, 204, - 59, 59, 59, 204, 64, 61, 61, 204, 66, 66, 66, 204, 70, 70, 67, 204, 73, 71, 71, 204, 77, 74, 74, 204, -]) -let testGif = new Uint8Array([71, 73, 70, 56, 57, 97, 198, 0, 202, 0, 247, 0, 0, 19, 217, 244, 244, 63, 19, 84, 19, 244, 102, 244, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 255, 11, 78, 69, 84, 83, 67, 65, 80, 69, 50, 46, 48, 3, 1, 0, 0, 0, 33, 249, 4, 4, 7, 0, 0, 0, 44, 0, 0, 0, 0, 198, 0, 202, 0, 0, 8, 254, 0, 9, 8, 28, 72, 176, 160, 193, 131, 8, 19, 42, 92, 200, 176, 161, 195, 135, 16, 35, 74, 156, 136, 48, 128, 197, 139, 24, 51, 106, 220, 200, 177, 163, 199, 143, 32, 67, 118, 28, 64, 178, 164, 201, 147, 40, 83, 170, 92, 201, 178, 165, 203, 151, 41, 69, 202, 156, 73, 179, 166, 205, 0, 48, 115, 234, 220, 201, 147, 231, 205, 159, 64, 131, 138, 236, 73, 180, 168, 81, 157, 66, 147, 42, 77, 122, 180, 169, 211, 167, 75, 163, 74, 157, 249, 180, 170, 213, 157, 83, 179, 106, 221, 120, 181, 171, 87, 149, 91, 195, 110, 253, 74, 150, 172, 216, 179, 82, 203, 170, 189, 138, 182, 45, 211, 181, 112, 155, 186, 157, 251, 51, 174, 221, 162, 116, 243, 210, 188, 203, 23, 171, 222, 191, 32, 251, 10, 126, 9, 184, 240, 200, 193, 136, 193, 26, 94, 140, 49, 177, 227, 147, 140, 35, 227, 124, 76, 89, 50, 99, 202, 149, 45, 27, 198, 252, 88, 243, 102, 206, 137, 61, 23, 6, 29, 90, 244, 95, 210, 136, 77, 159, 70, 45, 88, 181, 94, 214, 173, 93, 211, 133, 221, 87, 246, 108, 218, 119, 109, 207, 197, 157, 91, 119, 91, 222, 118, 125, 255, 6, 14, 87, 56, 90, 226, 197, 141, 139, 69, 190, 86, 249, 114, 230, 101, 157, 135, 133, 30, 93, 186, 86, 234, 102, 173, 103, 197, 254, 85, 251, 118, 238, 93, 189, 254, 79, 5, 31, 94, 124, 84, 242, 108, 205, 47, 69, 111, 85, 253, 122, 246, 80, 221, 191, 133, 47, 87, 190, 80, 250, 78, 237, 223, 199, 127, 84, 127, 80, 254, 253, 249, 87, 23, 128, 120, 9, 120, 19, 129, 5, 26, 88, 19, 130, 68, 41, 104, 19, 131, 61, 57, 184, 32, 132, 126, 73, 40, 19, 133, 21, 90, 24, 18, 134, 72, 105, 56, 20, 135, 48, 121, 248, 33, 136, 46, 137, 184, 33, 137, 37, 154, 248, 17, 138, 41, 170, 120, 24, 139, 43, 185, 232, 17, 140, 44, 201, 248, 34, 141, 40, 217, 200, 17, 142, 138, 233, 152, 17, 143, 49, 249, 248, 35, 144, 144, 9, 217, 24, 145, 38, 25, 121, 36, 146, 36, 41, 121, 17, 147, 37, 57, 105, 17, 148, 77, 74, 73, 229, 0, 82, 78, 6, 101, 150, 87, 114, 73, 165, 151, 91, 90, 249, 165, 152, 97, 58, 217, 37, 153, 76, 130, 153, 38, 154, 72, 170, 217, 38, 155, 68, 186, 25, 39, 156, 64, 202, 89, 39, 157, 60, 218, 153, 39, 158, 56, 234, 217, 39, 159, 52, 250, 25, 40, 160, 48, 10, 90, 40, 161, 44, 26, 154, 40, 162, 40, 42, 218, 40, 163, 36, 58, 26, 41, 164, 32, 74, 90, 41, 165, 28, 90, 154, 41, 166, 24, 106, 218, 41, 167, 20, 82, 36, 234, 168, 164, 58, 36, 192, 169, 168, 166, 170, 234, 170, 172, 182, 234, 234, 171, 254, 176, 198, 42, 43, 171, 0, 212, 106, 235, 173, 184, 230, 170, 235, 174, 188, 246, 234, 235, 175, 192, 242, 58, 235, 176, 196, 22, 107, 172, 177, 193, 38, 171, 236, 178, 204, 54, 11, 192, 177, 208, 70, 43, 45, 177, 206, 86, 107, 237, 181, 193, 78, 171, 237, 182, 220, 98, 235, 237, 183, 222, 114, 43, 238, 184, 197, 130, 107, 238, 185, 202, 146, 171, 238, 186, 173, 162, 235, 238, 187, 186, 178, 43, 175, 188, 240, 214, 11, 239, 188, 248, 146, 107, 239, 190, 231, 230, 235, 239, 182, 252, 6, 28, 238, 191, 4, 67, 43, 240, 193, 213, 22, 172, 112, 185, 8, 55, 156, 238, 194, 16, 199, 234, 240, 196, 192, 70, 108, 177, 171, 20, 103, 44, 236, 197, 28, 167, 170, 241, 199, 184, 118, 44, 178, 0, 32, 151, 252, 236, 200, 28, 155, 12, 50, 202, 41, 171, 172, 49, 203, 23, 187, 252, 50, 204, 17, 203, 156, 49, 205, 53, 219, 60, 49, 206, 16, 235, 188, 51, 207, 10, 251, 236, 48, 208, 65, 11, 141, 48, 209, 5, 27, 125, 52, 210, 255, 42, 125, 48, 211, 77, 59, 29, 48, 212, 254, 74, 61, 53, 213, 248, 90, 205, 47, 214, 89, 107, 109, 47, 215, 243, 122, 253, 53, 216, 236, 138, 93, 47, 217, 101, 155, 253, 46, 218, 235, 170, 189, 54, 219, 250, 186, 141, 46, 220, 113, 203, 109, 46, 221, 227, 218, 221, 47, 242, 222, 221, 234, 13, 46, 223, 125, 251, 61, 48, 224, 211, 10, 254, 45, 225, 218, 26, 62, 56, 226, 6, 43, 126, 45, 227, 210, 58, 254, 56, 228, 141, 75, 238, 44, 229, 149, 91, 206, 44, 230, 199, 106, 126, 57, 231, 12, 123, 190, 44, 232, 161, 139, 158, 44, 233, 212, 154, 254, 48, 234, 178, 170, 190, 58, 235, 176, 186, 126, 58, 236, 18, 203, 94, 49, 237, 177, 219, 254, 43, 238, 185, 235, 222, 43, 239, 175, 250, 238, 43, 240, 24, 11, 191, 49, 241, 171, 26, 127, 60, 242, 30, 43, 31, 47, 243, 170, 58, 255, 60, 244, 168, 74, 159, 43, 245, 205, 91, 111, 43, 246, 213, 107, 191, 61, 247, 36, 123, 95, 43, 248, 225, 139, 79, 190, 248, 227, 131, 143, 254, 201, 220, 175, 127, 62, 250, 239, 155, 175, 62, 252, 243, 203, 223, 62, 253, 247, 219, 143, 189, 251, 245, 123, 31, 191, 255, 253, 211, 222, 255, 4, 24, 64, 235, 13, 208, 128, 5, 148, 222, 1, 21, 152, 64, 231, 45, 208, 129, 13, 84, 222, 3, 37, 24, 65, 227, 77, 208, 130, 21, 20, 222, 5, 53, 152, 65, 223, 109, 208, 131, 29, 212, 221, 7, 69, 24, 66, 219, 141, 208, 132, 37, 148, 221, 9, 85, 152, 66, 215, 173, 208, 133, 45, 84, 93, 169, 102, 72, 67, 82, 5, 4, 0, 33, 254, 21, 77, 97, 100, 101, 32, 119, 105, 116, 104, 32, 83, 99, 114, 101, 101, 110, 84, 111, 71, 105, 102, 0, 59]) - -let testBmp = new Uint8Array([66, 77, 128, 142, 0, 0, 0, 0, 0, 0, 54, 4, 0, 0, 40, 0, 0, 0, 216, 1, 0, 0, 75, 0, 0, 0, 1, 0, 8, 0, 0, 0, 0, 0, 74, 138, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 2, 2, 0, 3, 3, 3, 0, 4, 4, 4, 0, 5, 5, 5, 0, 6, 6, 6, 0, 7, 7, 7, 0, 8, 8, 8, 0, 9, 9, 9, 0, 10, 10, 10, 0, 11, 11, 11, 0, 12, 12, 12, 0, 13, 13, 13, 0, 14, 14, 14, 0, 15, 15, 15, 0, 16, 16, 16, 0, 17, 17, 17, 0, 18, 18, 18, 0, 19, 19, 19, 0, 20, 20, 20, 0, 21, 21, 21, 0, 22, 22, 22, 0, 23, 23, 23, 0, 24, 24, 24, 0, 25, 25, 25, 0, 26, 26, 26, 0, 27, 27, 27, 0, 28, 28, 28, 0, 29, 29, 29, 0, 30, 30, 30, 0, 31, 31, 31, 0, 32, 32, 32, 0, 33, 33, 33, 0, 34, 34, 34, 0, 35, 35, 35, 0, 36, 36, 36, 0, 37, 37, 37, 0, 38, 38, 38, 0, 39, 39, 39, 0, 40, 40, 40, 0, 41, 41, 41, 0, 42, 42, 42, 0, 43, 43, 43, 0, 44, 44, 44, 0, 45, 45, 45, 0, 46, 46, 46, 0, 47, 47, 47, 0, 48, 48, 48, 0, 49, 49, 49, 0, 50, 50, 50, 0, 51, 51, 51, 0, 52, 52, 52, 0, 53, 53, 53, 0, 54, 54, 54, 0, 55, 55, 55, 0, 56, 56, 56, 0, 57, 57, 57, 0, 58, 58, 58, 0, 59, 59, 59, 0, 60, 60, 60, 0, 61, 61, 61, 0, 62, 62, 62, 0, 63, 63, 63, 0, 64, 64, 64, 0, 65, 65, 65, 0, 66, 66, 66, 0, 67, 67, 67, 0, 68, 68, 68, 0, 69, 69, 69, 0, 70, 70, 70, 0, 71, 71, 71, 0, 72, 72, 72, 0, 73, 73, 73, 0, 74, 74, 74, 0, 75, 75, 75, 0, 76, 76, 76, 0, 77, 77, 77, 0, 78, 78, 78, 0, 79, 79, 79, 0, 80, 80, 80, 0, 81, 81, 81, 0, 82, 82, 82, 0, 83, 83, 83, 0, 84, 84, 84, 0, 85, 85, 85, 0, 86, 86, 86, 0, 87, 87, 87, 0, 88, 88, 88, 0, 89, 89, 89, 0, 90, 90, 90, 0, 91, 91, 91, 0, 92, 92, 92, 0, 93, 93, 93, 0, 94, 94, 94, 0, 95, 95, 95, 0, 96, 96, 96, 0, 97, 97, 97, 0, 98, 98, 98, 0, 99, 99, 99, 0, 100, 100, 100, 0, 101, 101, 101, 0, 102, 102, 102, 0, 103, 103, 103, 0, 104, 104, 104, 0, 105, 105, 105, 0, 106, 106, 106, 0, 107, 107, 107, 0, 108, 108, 108, 0, 109, 109, 109, 0, 110, 110, 110, 0, 111, 111, 111, 0, 112, 112, 112, 0, 113, 113, 113, 0, 114, 114, 114, 0, 115, 115, 115, 0, 116, 116, 116, 0, 117, 117, 117, 0, 118, 118, 118, 0, 119, 119, 119, 0, 120, 120, 120, 0, 121, 121, 121, 0, 122, 122, 122, 0, 123, 123, 123, 0, 124, 124, 124, 0, 125, 125, 125, 0, 126, 126, 126, 0, 127, 127, 127, 0, 128, 128, 128, 0, 129, 129, 129, 0, 130, 130, 130, 0, 131, 131, 131, 0, 132, 132, 132, 0, 133, 133, 133, 0, 134, 134, 134, 0, 135, 135, 135, 0, 136, 136, 136, 0, 137, 137, 137, 0, 138, 138, 138, 0, 139, 139, 139, 0, 140, 140, 140, 0, 141, 141, 141, 0, 142, 142, 142, 0, 143, 143, 143, 0, 144, 144, 144, 0, 145, 145, 145, 0, 146, 146, 146, 0, 147, 147, 147, 0, 148, 148, 148, 0, 149, 149, 149, 0, 150, 150, 150, 0, 151, 151, 151, 0, 152, 152, 152, 0, 153, 153, 153, 0, 154, 154, 154, 0, 155, 155, 155, 0, 156, 156, 156, 0, 157, 157, 157, 0, 158, 158, 158, 0, 159, 159, 159, 0, 160, 160, 160, 0, 161, 161, 161, 0, 162, 162, 162, 0, 163, 163, 163, 0, 164, 164, 164, 0, 165, 165, 165, 0, 166, 166, 166, 0, 167, 167, 167, 0, 168, 168, 168, 0, 169, 169, 169, 0, 170, 170, 170, 0, 171, 171, 171, 0, 172, 172, 172, 0, 173, 173, 173, 0, 174, 174, 174, 0, 175, 175, 175, 0, 176, 176, 176, 0, 177, 177, 177, 0, 178, 178, 178, 0, 179, 179, 179, 0, 180, 180, 180, 0, 181, 181, 181, 0, 182, 182, 182, 0, 183, 183, 183, 0, 184, 184, 184, 0, 185, 185, 185, 0, 186, 186, 186, 0, 187, 187, 187, 0, 188, 188, 188, 0, 189, 189, 189, 0, 190, 190, 190, 0, 191, 191, 191, 0, 192, 192, 192, 0, 193, 193, 193, 0, 194, 194, 194, 0, 195, 195, 195, 0, 196, 196, 196, 0, 197, 197, 197, 0, 198, 198, 198, 0, 199, 199, 199, 0, 200, 200, 200, 0, 201, 201, 201, 0, 202, 202, 202, 0, 203, 203, 203, 0, 204, 204, 204, 0, 205, 205, 205, 0, 206, 206, 206, 0, 207, 207, 207, 0, 208, 208, 208, 0, 209, 209, 209, 0, 210, 210, 210, 0, 211, 211, 211, 0, 212, 212, 212, 0, 213, 213, 213, 0, 214, 214, 214, 0, 215, 215, 215, 0, 216, 216, 216, 0, 217, 217, 217, 0, 218, 218, 218, 0, 219, 219, 219, 0, 220, 220, 220, 0, 221, 221, 221, 0, 222, 222, 222, 0, 223, 223, 223, 0, 224, 224, 224, 0, 225, 225, 225, 0, 226, 226, 226, 0, 227, 227, 227, 0, 228, 228, 228, 0, 229, 229, 229, 0, 230, 230, 230, 0, 231, 231, 231, 0, 232, 232, 232, 0, 233, 233, 233, 0, 234, 234, 234, 0, 235, 235, 235, 0, 236, 236, 236, 0, 237, 237, 237, 0, 238, 238, 238, 0, 239, 239, 239, 0, 240, 240, 240, 0, 241, 241, 241, 0, 242, 242, 242, 0, 243, 243, 243, 0, 244, 244, 244, 0, 245, 245, 245, 0, 246, 246, 246, 0, 247, 247, 247, 0, 248, 248, 248, 0, 249, 249, 249, 0, 250, 250, 250, 0, 251, 251, 251, 0, 252, 252, 252, 0, 253, 253, 253, 0, 254, 254, 254, 0, 255, 255, 255, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 253, 252, 252, 253, 252, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 254, 253, 254, 254, 253, 254, 254, 254, 254, 254, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 252, 250, 248, 247, 245, 244, 245, 245, 245, 245, 246, 245, 245, 246, 244, 247, 245, 244, 245, 245, 245, 245, 245, 246, 245, 245, 246, 246, 248, 248, 247, 247, 248, 249, 248, 250, 250, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 253, 252, 253, 253, 252, 253, 252, 253, 253, 253, 254, 253, 254, 254, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 252, 251, 249, 247, 245, 247, 247, 248, 249, 250, 251, 251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 251, 248, 244, 241, 237, 233, 232, 229, 229, 228, 227, 227, 229, 229, 227, 227, 229, 227, 229, 230, 226, 229, 230, 228, 229, 231, 230, 228, 231, 231, 232, 232, 234, 234, 235, 235, 234, 238, 239, 239, 240, 243, 240, 241, 243, 241, 242, 242, 244, 243, 245, 246, 245, 244, 246, 245, 246, 245, 245, 246, 247, 247, 247, 248, 249, 249, 250, 250, 249, 249, 250, 250, 250, 250, 251, 251, 252, 252, 253, 253, 252, 252, 252, 252, 252, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 254, 253, 254, 254, 253, 254, 254, 253, 254, 254, 253, 254, 254, 254, 254, 254, 254, 253, 254, 254, 253, 254, 254, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 250, 247, 242, 238, 235, 233, 232, 231, 233, 237, 239, 242, 245, 247, 249, 250, 251, 251, 250, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 246, 239, 232, 225, 216, 210, 206, 201, 198, 199, 199, 195, 198, 198, 197, 198, 199, 196, 197, 199, 198, 200, 200, 200, 199, 200, 200, 199, 201, 204, 202, 203, 208, 207, 209, 209, 209, 214, 214, 215, 218, 218, 219, 219, 220, 221, 221, 222, 224, 223, 225, 226, 226, 226, 228, 228, 229, 229, 232, 230, 232, 233, 234, 234, 235, 236, 236, 239, 237, 237, 240, 239, 240, 240, 241, 241, 241, 243, 243, 242, 244, 243, 243, 245, 244, 245, 245, 245, 245, 246, 246, 246, 246, 246, 245, 246, 246, 244, 245, 246, 245, 245, 246, 246, 248, 246, 246, 245, 246, 245, 244, 245, 245, 245, 245, 246, 246, 246, 246, 247, 246, 246, 247, 247, 246, 247, 248, 246, 247, 248, 247, 247, 248, 246, 246, 247, 247, 247, 248, 249, 249, 250, 251, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 248, 244, 237, 226, 217, 212, 206, 203, 205, 208, 211, 216, 222, 228, 231, 234, 238, 240, 243, 245, 247, 248, 249, 250, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 237, 226, 212, 198, 183, 172, 166, 160, 157, 156, 155, 154, 153, 156, 155, 153, 154, 153, 153, 156, 154, 156, 155, 154, 154, 156, 158, 158, 159, 161, 162, 164, 166, 166, 169, 171, 172, 173, 175, 178, 179, 181, 183, 185, 185, 188, 187, 188, 191, 190, 190, 194, 195, 195, 197, 199, 198, 200, 200, 203, 203, 206, 204, 208, 210, 209, 210, 211, 214, 214, 217, 216, 216, 217, 220, 220, 221, 221, 221, 222, 224, 224, 227, 225, 227, 227, 227, 228, 228, 228, 230, 228, 229, 228, 229, 228, 229, 229, 229, 227, 229, 227, 229, 230, 227, 229, 228, 229, 227, 229, 230, 229, 229, 229, 228, 228, 230, 230, 230, 232, 231, 230, 231, 230, 230, 231, 230, 231, 231, 231, 231, 232, 231, 230, 231, 231, 233, 235, 233, 235, 236, 237, 241, 239, 240, 243, 243, 243, 244, 243, 245, 247, 246, 247, 249, 249, 251, 252, 252, 252, 252, 253, 252, 253, 254, 254, 255, 255, 255, 255, 255, 255, 253, 249, 243, 232, 217, 202, 187, 176, 166, 163, 164, 168, 174, 180, 187, 195, 203, 209, 213, 218, 225, 229, 233, 235, 238, 244, 245, 246, 248, 249, 250, 251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 237, 224, 203, 181, 160, 139, 126, 116, 110, 104, 104, 103, 102, 102, 102, 102, 103, 103, 101, 101, 103, 102, 103, 101, 103, 103, 103, 104, 105, 106, 108, 109, 112, 113, 114, 116, 118, 121, 122, 126, 127, 128, 131, 134, 134, 136, 140, 140, 139, 142, 143, 145, 146, 150, 150, 153, 155, 156, 157, 160, 160, 161, 163, 164, 164, 167, 171, 172, 172, 176, 177, 179, 180, 180, 180, 184, 181, 184, 186, 188, 189, 189, 194, 192, 193, 196, 194, 196, 196, 197, 195, 199, 199, 198, 200, 200, 197, 199, 199, 198, 198, 201, 198, 198, 200, 198, 200, 200, 201, 198, 199, 201, 201, 199, 200, 199, 200, 200, 199, 200, 199, 201, 200, 201, 203, 202, 202, 203, 203, 201, 203, 202, 204, 204, 205, 204, 206, 205, 204, 207, 210, 212, 213, 216, 215, 218, 219, 223, 223, 225, 227, 228, 229, 232, 231, 234, 239, 239, 239, 243, 242, 244, 245, 246, 247, 248, 249, 250, 251, 253, 253, 254, 253, 249, 245, 233, 215, 193, 169, 146, 126, 116, 112, 113, 117, 123, 133, 139, 149, 159, 167, 174, 183, 193, 199, 206, 212, 217, 222, 224, 230, 234, 237, 239, 244, 246, 248, 249, 251, 251, 250, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 253, 254, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 226, 206, 178, 146, 116, 91, 77, 69, 61, 57, 56, 56, 54, 54, 55, 54, 56, 56, 55, 57, 57, 54, 54, 55, 54, 55, 56, 57, 57, 58, 61, 62, 62, 66, 66, 66, 70, 69, 72, 73, 75, 78, 77, 82, 82, 83, 86, 86, 89, 88, 91, 92, 95, 96, 97, 101, 102, 102, 105, 108, 109, 109, 110, 112, 113, 118, 119, 119, 123, 123, 127, 128, 130, 130, 131, 134, 136, 135, 138, 140, 141, 144, 145, 144, 148, 151, 149, 151, 153, 153, 154, 155, 157, 155, 155, 156, 156, 156, 158, 155, 155, 155, 154, 153, 156, 157, 154, 156, 155, 154, 156, 158, 155, 156, 156, 154, 154, 156, 158, 156, 155, 157, 158, 158, 159, 158, 158, 160, 158, 158, 162, 160, 160, 162, 161, 161, 163, 165, 165, 165, 170, 171, 172, 178, 182, 180, 184, 187, 190, 193, 195, 197, 199, 202, 203, 208, 212, 213, 216, 219, 221, 224, 229, 230, 231, 234, 237, 237, 241, 243, 244, 246, 247, 243, 234, 218, 195, 164, 130, 97, 75, 67, 63, 64, 67, 73, 80, 90, 97, 107, 117, 125, 136, 149, 153, 165, 174, 181, 188, 197, 203, 210, 213, 220, 225, 227, 233, 237, 239, 242, 244, 248, 248, 249, 250, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 251, 251, 250, 249, 248, 248, 248, 247, 246, 247, 246, 245, 245, 244, 245, 245, 245, 245, 246, 246, 246, 247, 246, 246, 245, 245, 244, 245, 245, 245, 245, 246, 246, 247, 246, 246, 245, 245, 246, 244, 246, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 248, 250, 251, 253, 254, 255, 255, 255, 255, 216, 189, 150, 111, 75, 49, 37, 32, 27, 25, 24, 24, 23, 23, 23, 22, 23, 23, 23, 24, 23, 23, 24, 24, 22, 23, 23, 25, 24, 25, 27, 27, 28, 30, 29, 30, 32, 32, 34, 34, 36, 36, 38, 40, 42, 41, 43, 44, 45, 46, 45, 47, 48, 51, 52, 54, 56, 56, 58, 60, 59, 60, 62, 64, 65, 65, 69, 71, 70, 74, 74, 77, 77, 80, 80, 82, 83, 82, 84, 87, 89, 90, 93, 94, 97, 97, 98, 99, 100, 100, 103, 102, 104, 102, 102, 103, 104, 105, 104, 104, 104, 104, 103, 103, 102, 103, 103, 101, 104, 103, 105, 105, 105, 104, 103, 104, 103, 104, 104, 104, 105, 106, 105, 106, 107, 108, 107, 106, 105, 105, 106, 108, 108, 108, 110, 110, 112, 113, 114, 116, 120, 119, 121, 125, 131, 131, 136, 137, 144, 144, 149, 152, 154, 160, 163, 164, 172, 176, 179, 183, 189, 191, 196, 201, 204, 207, 212, 215, 219, 226, 226, 230, 231, 227, 217, 199, 169, 133, 90, 56, 35, 28, 26, 27, 30, 34, 39, 44, 51, 59, 66, 76, 84, 94, 104, 115, 124, 133, 142, 152, 161, 169, 178, 185, 193, 201, 206, 213, 216, 222, 228, 233, 235, 238, 244, 244, 246, 248, 249, 250, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 253, 252, 252, 251, 249, 248, 247, 245, 242, 240, 239, 238, 235, 233, 233, 232, 230, 230, 230, 229, 229, 228, 228, 228, 229, 228, 229, 230, 227, 228, 229, 228, 228, 229, 229, 228, 229, 229, 227, 228, 230, 227, 228, 228, 228, 228, 228, 229, 227, 228, 229, 227, 229, 230, 228, 228, 230, 230, 232, 235, 238, 239, 243, 246, 249, 252, 254, 255, 255, 208, 173, 127, 81, 43, 22, 14, 13, 8, 7, 8, 8, 6, 6, 9, 8, 8, 8, 9, 6, 7, 8, 7, 9, 7, 6, 7, 8, 7, 9, 11, 10, 10, 11, 11, 10, 10, 10, 11, 12, 13, 13, 13, 14, 15, 15, 16, 17, 16, 17, 18, 18, 18, 20, 21, 21, 23, 24, 24, 26, 26, 26, 27, 28, 29, 30, 32, 32, 33, 34, 34, 36, 38, 37, 39, 39, 40, 40, 41, 44, 45, 45, 47, 48, 50, 50, 51, 52, 53, 55, 55, 55, 56, 57, 55, 57, 57, 57, 56, 56, 56, 57, 56, 56, 57, 57, 56, 57, 57, 56, 56, 57, 57, 57, 57, 57, 56, 57, 57, 57, 56, 57, 58, 59, 59, 58, 58, 58, 58, 58, 59, 60, 60, 60, 60, 61, 63, 62, 64, 65, 67, 69, 71, 74, 78, 80, 83, 86, 90, 93, 95, 99, 104, 108, 110, 113, 121, 125, 129, 135, 140, 145, 150, 157, 160, 167, 173, 176, 183, 188, 194, 199, 203, 201, 194, 173, 144, 104, 63, 28, 10, 7, 9, 9, 10, 13, 15, 17, 22, 26, 30, 36, 43, 48, 58, 64, 74, 81, 90, 100, 109, 118, 129, 138, 145, 155, 164, 172, 182, 190, 198, 206, 209, 215, 222, 225, 230, 235, 237, 239, 243, 245, 248, 250, 252, 251, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 252, 251, 250, 249, 248, 246, 246, 241, 239, 239, 234, 229, 229, 224, 220, 216, 213, 207, 206, 206, 203, 199, 201, 201, 199, 200, 200, 200, 197, 199, 197, 199, 199, 199, 199, 198, 199, 197, 199, 199, 198, 198, 199, 198, 199, 199, 198, 199, 199, 200, 198, 201, 200, 199, 198, 199, 197, 198, 200, 198, 200, 201, 204, 206, 211, 215, 219, 226, 232, 238, 245, 250, 253, 254, 203, 165, 115, 66, 26, 6, 4, 5, 3, 3, 3, 2, 1, 3, 3, 2, 2, 4, 1, 2, 4, 1, 2, 3, 2, 2, 3, 3, 2, 2, 5, 3, 3, 4, 3, 2, 4, 4, 2, 3, 4, 3, 3, 5, 4, 4, 5, 5, 4, 5, 5, 5, 7, 7, 6, 7, 9, 9, 8, 9, 9, 8, 9, 9, 9, 10, 11, 10, 12, 11, 12, 12, 15, 14, 13, 15, 14, 15, 14, 17, 16, 18, 19, 19, 20, 22, 20, 22, 24, 21, 23, 23, 23, 23, 24, 24, 24, 24, 25, 24, 25, 24, 24, 23, 24, 24, 23, 25, 24, 24, 25, 24, 24, 22, 25, 24, 23, 24, 24, 24, 25, 25, 25, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 29, 29, 28, 29, 30, 31, 32, 36, 37, 38, 39, 43, 45, 48, 48, 52, 55, 58, 62, 65, 69, 73, 77, 83, 88, 93, 99, 104, 108, 114, 123, 129, 133, 144, 150, 155, 161, 162, 157, 144, 120, 85, 45, 17, 3, 2, 3, 3, 3, 5, 5, 4, 7, 8, 10, 13, 17, 20, 24, 29, 33, 41, 45, 53, 60, 70, 78, 87, 94, 105, 112, 123, 134, 145, 153, 162, 172, 179, 186, 195, 201, 208, 215, 219, 224, 227, 234, 237, 240, 243, 244, 247, 248, 249, 250, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 252, 249, 248, 246, 245, 242, 240, 238, 235, 230, 229, 228, 223, 217, 214, 210, 202, 197, 194, 185, 178, 176, 169, 166, 163, 161, 157, 156, 157, 156, 157, 156, 155, 155, 157, 155, 154, 155, 156, 154, 156, 157, 155, 157, 156, 156, 155, 157, 153, 155, 155, 156, 154, 155, 156, 154, 155, 156, 155, 154, 156, 154, 156, 156, 156, 155, 157, 161, 164, 170, 177, 187, 196, 209, 219, 230, 239, 248, 251, 202, 164, 116, 65, 26, 8, 4, 6, 3, 1, 3, 3, 1, 2, 3, 1, 3, 4, 2, 2, 4, 2, 2, 3, 3, 1, 2, 3, 1, 3, 4, 2, 1, 3, 2, 2, 3, 2, 1, 2, 2, 1, 2, 3, 2, 1, 3, 2, 1, 3, 2, 0, 3, 3, 1, 2, 2, 2, 2, 4, 3, 2, 3, 3, 3, 3, 4, 2, 4, 5, 3, 4, 3, 4, 4, 5, 4, 3, 4, 6, 4, 5, 6, 6, 5, 6, 7, 6, 8, 7, 6, 9, 8, 7, 8, 8, 7, 8, 8, 8, 7, 9, 7, 7, 9, 7, 7, 6, 8, 8, 8, 8, 9, 7, 8, 7, 7, 8, 7, 7, 8, 9, 7, 7, 9, 8, 8, 8, 8, 7, 8, 8, 9, 10, 9, 9, 9, 10, 11, 10, 11, 11, 11, 12, 14, 14, 15, 16, 17, 19, 20, 22, 23, 25, 27, 28, 32, 35, 37, 41, 44, 47, 50, 56, 61, 65, 71, 76, 82, 90, 96, 104, 110, 114, 112, 109, 91, 68, 40, 18, 6, 4, 4, 2, 2, 3, 2, 0, 3, 3, 2, 4, 5, 6, 7, 9, 12, 14, 18, 23, 25, 33, 39, 43, 51, 58, 65, 73, 83, 92, 101, 112, 123, 131, 140, 148, 159, 168, 176, 183, 190, 199, 207, 212, 219, 225, 228, 231, 235, 239, 242, 244, 246, 248, 249, 250, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 251, 249, 247, 244, 241, 238, 236, 229, 226, 224, 217, 213, 211, 204, 199, 194, 188, 181, 178, 170, 160, 153, 146, 137, 130, 125, 119, 114, 112, 110, 106, 105, 106, 104, 105, 104, 104, 104, 105, 102, 103, 103, 103, 103, 105, 104, 104, 105, 105, 105, 103, 104, 102, 103, 103, 103, 102, 103, 104, 103, 105, 105, 105, 104, 103, 102, 104, 104, 104, 105, 106, 108, 112, 118, 127, 142, 155, 172, 192, 210, 224, 237, 246, 207, 173, 128, 81, 42, 22, 15, 13, 10, 8, 9, 8, 7, 7, 8, 7, 7, 9, 7, 7, 9, 8, 7, 8, 7, 6, 8, 7, 8, 7, 7, 6, 7, 8, 6, 5, 5, 4, 3, 5, 4, 3, 3, 5, 2, 4, 5, 3, 2, 4, 3, 1, 2, 3, 1, 3, 2, 3, 2, 3, 3, 1, 3, 2, 1, 2, 2, 1, 2, 3, 2, 1, 3, 1, 0, 2, 2, 0, 1, 3, 1, 3, 3, 2, 2, 3, 3, 2, 4, 3, 1, 3, 3, 2, 2, 5, 2, 2, 4, 2, 2, 3, 3, 1, 2, 3, 1, 3, 3, 2, 2, 4, 2, 1, 3, 2, 2, 3, 3, 1, 3, 4, 2, 2, 3, 3, 3, 3, 2, 1, 2, 4, 2, 4, 4, 2, 3, 4, 3, 3, 4, 3, 2, 4, 5, 3, 5, 6, 5, 5, 7, 7, 7, 9, 10, 10, 11, 12, 13, 15, 17, 19, 20, 24, 26, 28, 33, 37, 40, 47, 51, 58, 62, 67, 68, 70, 63, 52, 37, 23, 13, 9, 7, 5, 4, 4, 2, 2, 2, 2, 0, 2, 2, 1, 3, 4, 3, 3, 6, 7, 9, 11, 13, 16, 22, 25, 29, 34, 41, 47, 54, 64, 72, 80, 89, 97, 106, 117, 128, 136, 144, 154, 165, 171, 181, 190, 197, 203, 210, 217, 221, 226, 232, 234, 237, 240, 243, 245, 248, 249, 252, 251, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 252, 252, 250, 248, 246, 243, 240, 237, 233, 227, 223, 217, 210, 203, 198, 190, 180, 174, 170, 162, 155, 148, 142, 134, 126, 117, 111, 100, 93, 85, 78, 75, 70, 64, 61, 60, 58, 58, 57, 56, 57, 57, 57, 57, 57, 56, 56, 55, 56, 55, 55, 56, 56, 57, 56, 56, 57, 55, 56, 56, 54, 57, 55, 56, 55, 56, 58, 55, 56, 57, 57, 57, 56, 55, 57, 57, 58, 59, 62, 68, 76, 90, 106, 127, 151, 178, 202, 222, 237, 217, 188, 151, 112, 76, 50, 38, 31, 27, 26, 25, 26, 23, 23, 24, 24, 25, 25, 25, 25, 25, 24, 25, 26, 24, 23, 23, 22, 24, 21, 21, 21, 22, 20, 19, 18, 18, 15, 16, 16, 14, 14, 13, 14, 13, 12, 12, 11, 10, 11, 10, 10, 9, 10, 9, 9, 9, 8, 9, 8, 8, 7, 7, 7, 4, 6, 6, 5, 5, 6, 4, 4, 5, 3, 2, 5, 2, 2, 4, 3, 2, 3, 4, 3, 4, 4, 3, 2, 4, 3, 1, 3, 4, 2, 3, 3, 2, 3, 4, 3, 1, 3, 3, 1, 2, 3, 1, 3, 2, 2, 1, 4, 2, 1, 3, 2, 2, 4, 3, 2, 3, 3, 3, 2, 5, 2, 2, 4, 3, 1, 3, 3, 0, 3, 3, 3, 2, 4, 2, 1, 3, 2, 1, 2, 1, 1, 1, 2, 2, 1, 3, 2, 2, 3, 3, 2, 3, 4, 2, 4, 6, 5, 7, 8, 9, 9, 12, 14, 14, 17, 21, 23, 28, 32, 34, 36, 36, 33, 28, 22, 17, 13, 11, 9, 8, 7, 6, 4, 5, 3, 2, 3, 3, 1, 1, 1, 1, 1, 2, 2, 3, 4, 4, 4, 7, 9, 9, 13, 16, 20, 24, 28, 33, 38, 46, 53, 60, 68, 76, 84, 94, 103, 114, 122, 131, 142, 154, 163, 171, 178, 187, 194, 199, 207, 213, 218, 224, 226, 232, 237, 241, 242, 244, 247, 248, 249, 250, 251, 251, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 250, 247, 244, 241, 238, 233, 230, 224, 219, 212, 207, 198, 187, 183, 173, 162, 152, 143, 133, 124, 116, 110, 103, 96, 91, 82, 77, 68, 61, 54, 48, 42, 38, 35, 30, 29, 26, 25, 24, 25, 25, 24, 23, 24, 25, 23, 24, 24, 23, 23, 24, 23, 23, 25, 24, 24, 25, 24, 23, 24, 23, 23, 24, 25, 23, 24, 23, 24, 23, 24, 24, 23, 23, 23, 24, 23, 23, 24, 23, 24, 27, 30, 37, 47, 60, 79, 108, 140, 171, 201, 224, 227, 207, 179, 148, 116, 93, 78, 68, 62, 59, 58, 56, 56, 57, 57, 58, 59, 58, 59, 58, 57, 56, 58, 57, 57, 56, 55, 54, 55, 55, 53, 52, 51, 50, 47, 46, 45, 43, 43, 41, 39, 39, 39, 37, 36, 35, 35, 33, 33, 32, 30, 29, 29, 28, 26, 27, 25, 23, 23, 23, 23, 21, 19, 19, 19, 19, 18, 17, 18, 17, 16, 15, 15, 14, 14, 14, 13, 11, 12, 11, 10, 11, 10, 11, 10, 11, 9, 9, 8, 7, 6, 8, 8, 8, 9, 9, 8, 7, 9, 8, 8, 9, 8, 7, 7, 8, 7, 8, 8, 8, 7, 10, 8, 7, 9, 7, 7, 8, 9, 7, 9, 9, 7, 8, 8, 7, 7, 8, 7, 6, 7, 7, 6, 7, 8, 6, 7, 7, 5, 6, 6, 5, 3, 4, 5, 3, 3, 4, 3, 3, 4, 3, 2, 3, 2, 2, 2, 3, 1, 2, 3, 3, 2, 4, 3, 3, 5, 4, 3, 5, 6, 8, 9, 12, 13, 15, 16, 16, 15, 15, 13, 13, 11, 11, 10, 10, 9, 9, 8, 7, 6, 5, 5, 4, 4, 3, 2, 2, 3, 1, 1, 2, 2, 1, 2, 3, 3, 3, 5, 7, 8, 11, 13, 14, 18, 22, 25, 30, 37, 43, 51, 55, 64, 73, 81, 91, 100, 110, 120, 129, 138, 148, 157, 164, 175, 182, 188, 197, 205, 210, 216, 221, 227, 231, 233, 239, 240, 244, 246, 247, 249, 249, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 253, 254, 253, 253, 253, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 247, 245, 242, 238, 235, 225, 221, 218, 208, 200, 192, 183, 175, 165, 156, 144, 131, 124, 109, 100, 89, 81, 73, 67, 61, 54, 50, 46, 41, 37, 32, 28, 23, 18, 16, 13, 12, 9, 8, 9, 9, 8, 7, 9, 7, 7, 9, 8, 8, 8, 7, 6, 7, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 7, 6, 8, 8, 8, 7, 7, 7, 8, 9, 9, 7, 9, 8, 7, 8, 8, 7, 8, 9, 9, 9, 14, 18, 26, 41, 67, 100, 138, 177, 207, 237, 224, 204, 183, 159, 142, 127, 118, 112, 108, 105, 103, 104, 104, 106, 106, 107, 105, 105, 106, 105, 105, 105, 105, 103, 103, 102, 101, 103, 100, 99, 98, 97, 94, 93, 92, 89, 87, 87, 85, 82, 84, 80, 79, 78, 77, 74, 72, 72, 68, 67, 67, 64, 63, 62, 62, 59, 58, 56, 56, 54, 53, 49, 48, 49, 47, 46, 45, 44, 43, 42, 41, 39, 38, 36, 37, 35, 33, 32, 32, 31, 32, 30, 28, 29, 29, 27, 26, 26, 24, 24, 23, 23, 24, 25, 24, 24, 25, 26, 24, 22, 24, 24, 23, 23, 24, 23, 25, 23, 24, 24, 24, 24, 23, 24, 23, 22, 24, 24, 23, 23, 23, 23, 24, 23, 23, 23, 23, 22, 22, 22, 23, 22, 22, 23, 21, 21, 21, 20, 19, 20, 16, 14, 15, 13, 12, 11, 11, 9, 8, 8, 6, 6, 7, 5, 5, 5, 4, 4, 4, 3, 3, 3, 4, 2, 3, 3, 3, 1, 3, 2, 2, 3, 4, 3, 4, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, 7, 6, 5, 6, 5, 4, 3, 4, 2, 1, 2, 1, 0, 2, 2, 1, 3, 4, 4, 4, 7, 7, 9, 11, 14, 15, 21, 24, 28, 34, 39, 47, 54, 60, 69, 79, 87, 96, 106, 115, 126, 134, 142, 153, 160, 169, 181, 189, 196, 202, 208, 215, 222, 225, 230, 233, 237, 238, 242, 245, 247, 249, 251, 251, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 254, 254, 253, 252, 252, 251, 251, 250, 250, 249, 249, 248, 248, 248, 248, 246, 248, 246, 245, 247, 246, 245, 246, 246, 245, 246, 246, 246, 246, 246, 245, 245, 245, 245, 246, 245, 246, 245, 249, 248, 248, 248, 249, 249, 250, 250, 251, 251, 251, 252, 252, 253, 253, 253, 253, 253, 253, 253, 254, 253, 254, 254, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 248, 244, 241, 235, 230, 221, 216, 209, 196, 190, 180, 167, 158, 145, 136, 124, 114, 102, 93, 83, 72, 62, 54, 46, 38, 34, 29, 26, 23, 21, 18, 16, 13, 12, 9, 8, 7, 4, 3, 2, 3, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 2, 4, 3, 1, 3, 4, 2, 2, 4, 2, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 3, 4, 2, 2, 4, 2, 2, 3, 3, 1, 3, 3, 2, 3, 3, 3, 3, 4, 6, 9, 18, 37, 67, 107, 150, 190, 245, 237, 224, 212, 196, 184, 174, 167, 162, 157, 158, 155, 156, 155, 159, 158, 157, 156, 156, 157, 159, 158, 157, 157, 156, 153, 155, 153, 152, 153, 154, 151, 150, 147, 145, 143, 142, 140, 138, 136, 137, 135, 133, 133, 131, 128, 127, 124, 122, 121, 118, 117, 113, 113, 112, 108, 107, 107, 105, 102, 101, 99, 97, 95, 94, 92, 90, 90, 89, 87, 85, 84, 83, 82, 81, 76, 76, 75, 72, 71, 71, 67, 66, 67, 65, 62, 63, 62, 59, 58, 57, 56, 57, 57, 58, 56, 57, 58, 58, 57, 57, 56, 57, 57, 56, 56, 57, 57, 57, 58, 58, 57, 57, 58, 57, 56, 55, 56, 56, 56, 57, 55, 56, 56, 55, 55, 55, 53, 54, 54, 54, 54, 53, 52, 51, 50, 52, 50, 48, 44, 43, 41, 37, 35, 33, 29, 27, 23, 21, 18, 17, 15, 14, 13, 11, 12, 11, 11, 11, 12, 10, 9, 9, 8, 6, 5, 6, 4, 2, 2, 2, 2, 2, 3, 1, 2, 3, 2, 2, 3, 3, 2, 3, 4, 3, 5, 5, 5, 6, 7, 7, 8, 8, 8, 9, 8, 8, 8, 8, 7, 7, 6, 5, 5, 4, 4, 2, 3, 2, 2, 2, 2, 2, 1, 3, 3, 2, 4, 4, 5, 7, 8, 8, 13, 15, 16, 21, 27, 31, 36, 43, 50, 58, 65, 73, 83, 90, 100, 110, 120, 128, 138, 147, 159, 168, 176, 183, 191, 198, 202, 210, 214, 220, 224, 226, 232, 236, 239, 243, 244, 246, 247, 247, 249, 248, 249, 252, 251, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 252, 251, 251, 250, 250, 250, 249, 248, 248, 248, 247, 246, 245, 242, 243, 241, 239, 239, 240, 238, 234, 236, 233, 233, 230, 233, 229, 229, 229, 231, 229, 229, 229, 228, 228, 231, 228, 228, 229, 227, 229, 230, 229, 227, 231, 232, 230, 232, 234, 233, 234, 236, 236, 237, 239, 240, 240, 242, 243, 242, 244, 246, 246, 246, 247, 245, 246, 246, 246, 247, 248, 248, 248, 249, 250, 251, 252, 252, 252, 252, 252, 251, 250, 247, 245, 240, 236, 230, 219, 215, 204, 190, 179, 168, 153, 142, 129, 117, 105, 94, 84, 74, 66, 57, 49, 41, 33, 28, 23, 17, 14, 12, 10, 10, 7, 7, 6, 5, 4, 4, 3, 3, 3, 2, 1, 2, 2, 1, 3, 3, 0, 2, 3, 2, 2, 4, 3, 2, 3, 3, 1, 2, 4, 1, 4, 3, 1, 2, 4, 2, 2, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 3, 2, 1, 2, 3, 2, 2, 4, 2, 2, 2, 1, 2, 7, 19, 42, 80, 127, 174, 249, 246, 239, 233, 224, 216, 210, 205, 203, 202, 199, 199, 199, 199, 199, 200, 201, 201, 200, 200, 201, 199, 201, 200, 201, 199, 201, 200, 199, 197, 197, 195, 194, 192, 191, 189, 191, 189, 185, 186, 187, 183, 182, 182, 181, 178, 177, 175, 172, 171, 169, 167, 167, 164, 163, 160, 159, 157, 157, 156, 152, 151, 151, 146, 147, 144, 144, 141, 142, 139, 138, 137, 136, 132, 131, 131, 128, 125, 123, 123, 120, 120, 117, 115, 115, 114, 111, 109, 108, 107, 106, 105, 106, 105, 105, 104, 107, 106, 106, 108, 105, 105, 104, 104, 104, 105, 106, 106, 105, 107, 105, 106, 105, 104, 104, 104, 104, 105, 103, 106, 105, 104, 105, 105, 103, 102, 103, 100, 100, 100, 99, 99, 98, 96, 96, 95, 92, 90, 83, 80, 74, 72, 66, 59, 52, 48, 43, 37, 33, 28, 25, 22, 20, 19, 19, 20, 22, 25, 27, 28, 29, 29, 26, 24, 21, 19, 16, 13, 9, 10, 9, 7, 7, 6, 3, 5, 3, 2, 3, 3, 2, 0, 2, 2, 1, 2, 2, 2, 2, 4, 4, 4, 5, 5, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 6, 7, 6, 4, 4, 5, 3, 4, 2, 2, 1, 3, 2, 1, 3, 3, 2, 2, 5, 6, 7, 8, 10, 13, 17, 21, 24, 28, 32, 39, 46, 53, 60, 67, 76, 86, 94, 103, 112, 123, 130, 143, 150, 158, 167, 174, 184, 189, 195, 200, 208, 212, 221, 223, 226, 229, 232, 233, 236, 237, 238, 239, 241, 243, 243, 245, 247, 246, 246, 246, 245, 245, 245, 244, 246, 245, 246, 245, 246, 247, 245, 244, 244, 243, 243, 241, 240, 239, 239, 237, 236, 234, 232, 229, 229, 227, 224, 222, 221, 220, 216, 214, 213, 209, 208, 206, 204, 202, 203, 204, 201, 201, 200, 199, 202, 201, 198, 200, 201, 199, 197, 198, 200, 199, 199, 200, 201, 199, 200, 201, 202, 205, 207, 207, 208, 210, 216, 217, 219, 219, 222, 224, 223, 228, 227, 227, 231, 231, 230, 229, 232, 232, 230, 234, 234, 235, 238, 239, 238, 239, 242, 242, 242, 243, 240, 236, 235, 228, 219, 210, 201, 189, 174, 162, 148, 132, 117, 104, 92, 79, 67, 58, 50, 42, 35, 30, 24, 19, 17, 14, 9, 7, 6, 4, 3, 4, 3, 2, 3, 3, 2, 1, 3, 2, 2, 4, 4, 2, 4, 6, 6, 7, 8, 7, 7, 8, 7, 8, 9, 8, 7, 9, 8, 6, 8, 9, 7, 8, 9, 7, 7, 8, 9, 7, 9, 8, 7, 8, 9, 7, 7, 9, 8, 9, 9, 8, 8, 9, 8, 6, 9, 8, 7, 7, 8, 6, 5, 5, 2, 2, 4, 9, 26, 62, 111, 160, 253, 251, 249, 245, 241, 237, 234, 232, 230, 231, 229, 229, 232, 229, 231, 230, 230, 229, 230, 230, 228, 230, 229, 229, 230, 229, 227, 229, 227, 228, 226, 228, 224, 224, 224, 225, 223, 222, 221, 221, 221, 219, 219, 218, 216, 216, 216, 214, 211, 211, 208, 210, 206, 207, 205, 203, 203, 201, 201, 201, 197, 195, 196, 194, 193, 192, 191, 187, 188, 187, 185, 186, 185, 183, 180, 180, 178, 176, 176, 173, 172, 170, 170, 165, 166, 165, 162, 161, 161, 158, 158, 159, 159, 157, 158, 158, 158, 157, 158, 158, 157, 158, 157, 155, 157, 159, 157, 158, 157, 158, 158, 158, 158, 157, 157, 156, 156, 157, 157, 157, 157, 157, 155, 157, 155, 155, 150, 151, 150, 148, 147, 146, 141, 139, 136, 131, 126, 122, 113, 105, 97, 90, 81, 71, 63, 55, 47, 39, 32, 27, 23, 20, 19, 18, 19, 23, 30, 39, 50, 57, 59, 62, 58, 56, 51, 48, 42, 36, 33, 30, 25, 22, 19, 15, 13, 13, 10, 7, 7, 6, 5, 3, 3, 3, 1, 2, 2, 1, 1, 2, 1, 2, 3, 2, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 8, 9, 9, 10, 9, 9, 9, 8, 7, 7, 7, 5, 5, 3, 3, 1, 2, 2, 1, 2, 2, 1, 1, 3, 2, 3, 5, 6, 7, 10, 11, 14, 17, 20, 24, 30, 35, 39, 46, 54, 61, 68, 78, 86, 93, 102, 111, 117, 128, 137, 145, 152, 158, 168, 172, 181, 186, 191, 197, 200, 205, 209, 211, 214, 215, 220, 220, 223, 225, 223, 224, 226, 226, 226, 227, 228, 228, 227, 227, 227, 227, 229, 226, 226, 225, 223, 222, 223, 220, 216, 214, 212, 209, 207, 207, 201, 196, 197, 193, 190, 188, 185, 179, 175, 174, 170, 166, 165, 163, 162, 159, 162, 157, 158, 159, 157, 156, 157, 156, 155, 158, 154, 154, 155, 158, 156, 156, 159, 156, 157, 160, 159, 159, 164, 165, 165, 170, 173, 176, 179, 183, 184, 188, 190, 191, 192, 195, 196, 196, 198, 201, 201, 201, 204, 203, 205, 208, 208, 213, 216, 215, 218, 221, 221, 221, 220, 217, 210, 206, 199, 185, 172, 159, 143, 126, 112, 96, 82, 70, 57, 47, 38, 32, 25, 21, 17, 13, 11, 9, 5, 4, 5, 3, 2, 3, 2, 1, 3, 3, 0, 3, 4, 3, 4, 6, 7, 7, 11, 13, 13, 15, 18, 18, 20, 22, 23, 24, 24, 23, 25, 23, 23, 24, 24, 24, 23, 24, 23, 24, 25, 25, 23, 24, 24, 24, 24, 23, 23, 23, 23, 24, 23, 24, 25, 23, 25, 24, 24, 24, 23, 24, 23, 24, 24, 22, 22, 21, 18, 14, 10, 6, 4, 3, 5, 19, 54, 104, 154, 255, 253, 253, 251, 249, 248, 247, 246, 244, 245, 245, 246, 246, 246, 246, 245, 245, 245, 246, 245, 246, 245, 246, 246, 246, 246, 245, 244, 245, 244, 244, 243, 243, 243, 242, 243, 242, 243, 242, 242, 241, 241, 239, 240, 239, 237, 237, 237, 236, 235, 233, 234, 233, 233, 233, 230, 230, 230, 228, 229, 228, 226, 227, 226, 226, 223, 224, 221, 222, 221, 220, 218, 220, 219, 218, 216, 216, 216, 214, 213, 210, 211, 210, 208, 207, 205, 204, 203, 205, 201, 201, 203, 201, 201, 200, 203, 201, 203, 201, 202, 200, 200, 201, 201, 200, 202, 202, 201, 202, 201, 202, 201, 201, 200, 201, 201, 200, 200, 200, 199, 199, 199, 198, 196, 194, 192, 189, 188, 184, 180, 177, 172, 165, 159, 155, 142, 136, 125, 114, 103, 91, 83, 70, 60, 52, 43, 33, 27, 21, 18, 14, 11, 11, 10, 11, 15, 27, 47, 69, 88, 101, 106, 107, 103, 99, 93, 84, 78, 72, 65, 59, 53, 48, 42, 37, 33, 28, 26, 22, 19, 15, 12, 12, 8, 7, 7, 5, 3, 4, 4, 2, 2, 2, 1, 1, 2, 2, 1, 3, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 12, 12, 11, 11, 9, 9, 7, 6, 5, 4, 2, 4, 3, 2, 1, 2, 1, 1, 2, 1, 1, 2, 3, 4, 5, 5, 7, 8, 11, 13, 17, 21, 24, 29, 33, 39, 45, 52, 57, 63, 69, 78, 85, 92, 100, 107, 114, 124, 133, 135, 144, 152, 155, 156, 165, 169, 173, 176, 179, 182, 188, 188, 189, 191, 195, 193, 194, 195, 195, 195, 196, 193, 195, 197, 195, 193, 192, 191, 188, 187, 187, 179, 178, 176, 171, 167, 164, 158, 154, 152, 148, 143, 139, 136, 130, 126, 121, 118, 115, 112, 112, 108, 110, 108, 107, 107, 105, 105, 104, 103, 104, 102, 102, 103, 102, 104, 103, 103, 105, 104, 105, 106, 105, 107, 108, 110, 112, 115, 119, 122, 125, 130, 135, 135, 140, 143, 145, 146, 148, 152, 153, 155, 158, 156, 158, 161, 161, 164, 166, 169, 172, 176, 180, 182, 185, 186, 185, 184, 181, 173, 162, 153, 138, 124, 108, 93, 79, 66, 51, 41, 31, 25, 20, 15, 11, 7, 7, 5, 2, 3, 4, 2, 2, 3, 2, 3, 4, 4, 5, 4, 7, 8, 8, 11, 11, 14, 17, 20, 24, 28, 32, 37, 41, 44, 47, 51, 52, 53, 55, 55, 58, 57, 57, 56, 56, 56, 56, 55, 55, 56, 56, 57, 56, 57, 56, 56, 56, 56, 57, 56, 56, 55, 56, 56, 56, 56, 58, 57, 56, 57, 56, 55, 57, 56, 55, 54, 54, 52, 47, 41, 32, 24, 16, 9, 5, 6, 23, 59, 109, 160, 255, 255, 255, 254, 253, 253, 253, 253, 253, 254, 253, 253, 253, 254, 253, 253, 254, 253, 253, 254, 253, 253, 254, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 251, 252, 251, 250, 250, 250, 249, 249, 249, 248, 248, 248, 248, 247, 248, 247, 247, 245, 245, 244, 244, 244, 245, 243, 244, 244, 243, 243, 240, 241, 240, 239, 239, 239, 239, 239, 238, 238, 237, 238, 236, 234, 235, 234, 233, 231, 230, 232, 232, 232, 231, 230, 230, 231, 230, 231, 232, 230, 231, 230, 232, 230, 230, 231, 230, 231, 232, 229, 232, 232, 230, 231, 231, 230, 229, 229, 230, 227, 227, 225, 223, 223, 217, 216, 214, 209, 205, 198, 193, 183, 175, 166, 157, 148, 138, 126, 113, 101, 88, 77, 65, 56, 44, 36, 28, 22, 17, 13, 9, 8, 5, 4, 5, 5, 4, 7, 22, 50, 85, 117, 137, 151, 155, 155, 149, 143, 137, 131, 123, 114, 107, 100, 91, 86, 78, 71, 65, 59, 53, 47, 41, 37, 32, 26, 23, 19, 15, 14, 12, 10, 7, 7, 6, 3, 4, 3, 2, 1, 2, 1, 1, 1, 3, 1, 2, 4, 4, 5, 6, 9, 9, 10, 12, 13, 14, 14, 14, 13, 12, 11, 9, 8, 7, 6, 5, 4, 4, 3, 1, 3, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 4, 3, 4, 6, 6, 8, 10, 13, 15, 18, 20, 24, 28, 33, 37, 41, 47, 53, 58, 64, 71, 76, 83, 89, 93, 101, 105, 111, 114, 119, 124, 125, 131, 135, 135, 140, 142, 145, 146, 147, 147, 147, 148, 147, 149, 149, 147, 146, 147, 146, 142, 140, 137, 133, 129, 126, 118, 115, 110, 106, 101, 97, 95, 90, 86, 83, 77, 75, 73, 67, 65, 63, 62, 60, 60, 59, 57, 59, 57, 57, 57, 56, 55, 56, 54, 56, 55, 56, 57, 56, 57, 58, 57, 58, 57, 58, 59, 61, 61, 65, 67, 69, 74, 77, 81, 84, 88, 89, 92, 94, 97, 97, 99, 103, 103, 104, 107, 109, 110, 113, 115, 118, 121, 125, 130, 133, 138, 140, 138, 137, 131, 122, 113, 101, 90, 75, 61, 51, 39, 29, 22, 16, 13, 8, 5, 5, 4, 1, 3, 3, 1, 2, 3, 3, 4, 5, 5, 7, 9, 12, 15, 17, 21, 21, 24, 30, 33, 37, 43, 48, 56, 62, 70, 76, 83, 86, 92, 95, 99, 102, 103, 103, 104, 104, 105, 105, 105, 104, 104, 104, 103, 102, 105, 104, 104, 106, 105, 103, 104, 103, 103, 104, 104, 103, 102, 105, 104, 104, 104, 104, 106, 104, 104, 105, 104, 104, 103, 102, 101, 95, 88, 79, 66, 51, 37, 26, 20, 24, 43, 80, 126, 171, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 254, 253, 253, 254, 254, 253, 254, 254, 253, 253, 253, 252, 252, 252, 252, 252, 253, 253, 252, 253, 252, 251, 251, 251, 250, 250, 250, 250, 249, 250, 250, 249, 249, 247, 247, 247, 247, 246, 247, 246, 246, 246, 246, 247, 248, 246, 246, 246, 246, 245, 245, 247, 245, 246, 246, 246, 247, 247, 247, 247, 246, 245, 245, 244, 243, 243, 242, 241, 239, 237, 235, 232, 227, 224, 219, 213, 205, 198, 189, 180, 168, 158, 148, 134, 123, 109, 97, 88, 73, 63, 52, 43, 34, 27, 21, 16, 12, 8, 6, 5, 2, 3, 3, 1, 3, 4, 3, 5, 23, 58, 100, 139, 170, 187, 193, 196, 195, 192, 186, 178, 173, 168, 159, 151, 144, 137, 130, 122, 115, 108, 99, 91, 82, 76, 67, 61, 54, 48, 43, 38, 33, 28, 24, 21, 16, 12, 10, 8, 8, 6, 5, 4, 1, 3, 3, 0, 1, 2, 1, 1, 4, 3, 4, 6, 8, 9, 10, 11, 12, 13, 13, 12, 11, 11, 10, 9, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 9, 11, 13, 15, 18, 20, 24, 27, 30, 34, 38, 41, 46, 50, 53, 56, 61, 65, 69, 71, 75, 77, 81, 84, 86, 89, 88, 91, 93, 92, 92, 92, 93, 93, 94, 91, 90, 87, 86, 82, 78, 77, 72, 68, 65, 61, 59, 55, 53, 48, 45, 43, 40, 36, 35, 33, 30, 28, 28, 26, 26, 26, 27, 24, 25, 25, 24, 24, 24, 24, 24, 24, 23, 23, 24, 24, 23, 24, 25, 24, 25, 26, 26, 25, 27, 27, 28, 30, 33, 34, 37, 40, 42, 44, 47, 48, 49, 49, 52, 54, 54, 56, 58, 59, 61, 62, 63, 64, 67, 69, 73, 76, 81, 84, 85, 85, 83, 78, 74, 65, 56, 45, 38, 29, 21, 15, 11, 7, 4, 5, 3, 0, 3, 2, 2, 3, 4, 4, 4, 8, 10, 11, 15, 18, 22, 27, 34, 38, 43, 50, 55, 60, 63, 72, 79, 85, 95, 103, 111, 119, 127, 134, 138, 145, 149, 153, 153, 155, 157, 156, 157, 156, 156, 155, 156, 154, 156, 156, 158, 156, 156, 156, 156, 157, 157, 156, 155, 155, 153, 156, 155, 157, 156, 157, 156, 155, 158, 157, 156, 156, 157, 155, 157, 156, 154, 152, 146, 139, 126, 110, 92, 75, 61, 54, 60, 80, 112, 152, 189, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 254, 254, 253, 254, 254, 253, 253, 254, 253, 253, 254, 253, 253, 254, 254, 253, 254, 254, 253, 253, 254, 253, 253, 254, 253, 253, 254, 254, 253, 254, 254, 252, 251, 251, 247, 247, 245, 241, 241, 236, 230, 226, 221, 211, 204, 196, 185, 176, 162, 150, 138, 125, 115, 101, 88, 78, 65, 56, 46, 36, 30, 24, 17, 14, 9, 7, 6, 3, 2, 3, 2, 1, 2, 3, 2, 4, 8, 10, 17, 38, 75, 120, 161, 193, 212, 220, 223, 225, 224, 221, 216, 212, 209, 202, 197, 191, 186, 178, 174, 168, 157, 150, 145, 137, 128, 118, 109, 100, 93, 85, 79, 71, 65, 56, 50, 43, 39, 33, 27, 22, 18, 16, 12, 9, 7, 6, 4, 4, 3, 1, 2, 2, 2, 2, 3, 3, 4, 5, 6, 6, 8, 8, 8, 9, 9, 8, 7, 8, 7, 7, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 4, 5, 5, 6, 8, 9, 11, 12, 13, 16, 17, 19, 21, 23, 25, 28, 30, 32, 34, 36, 37, 39, 41, 43, 43, 44, 45, 45, 46, 46, 46, 45, 44, 42, 41, 40, 38, 35, 32, 31, 29, 28, 25, 23, 22, 20, 18, 16, 16, 13, 12, 12, 10, 9, 10, 9, 9, 7, 9, 8, 9, 8, 8, 8, 8, 8, 6, 8, 8, 7, 8, 9, 7, 7, 9, 7, 9, 8, 8, 8, 10, 9, 9, 10, 12, 12, 13, 15, 15, 17, 18, 19, 21, 22, 22, 21, 23, 25, 25, 25, 26, 27, 28, 29, 31, 31, 35, 36, 40, 43, 44, 43, 40, 40, 35, 31, 25, 19, 15, 11, 6, 5, 5, 2, 1, 2, 3, 1, 4, 6, 6, 8, 11, 12, 17, 22, 26, 32, 39, 46, 54, 62, 71, 80, 88, 93, 101, 110, 116, 123, 129, 139, 146, 153, 162, 169, 175, 181, 187, 191, 195, 197, 197, 197, 200, 200, 199, 201, 199, 201, 199, 199, 200, 199, 201, 198, 198, 201, 200, 199, 200, 200, 199, 200, 198, 199, 199, 200, 198, 199, 201, 198, 199, 201, 200, 199, 199, 200, 199, 200, 199, 196, 193, 185, 171, 157, 141, 122, 109, 104, 109, 125, 152, 182, 208, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 252, 251, 250, 248, 247, 244, 240, 237, 234, 227, 222, 214, 206, 199, 189, 178, 165, 151, 140, 126, 114, 102, 89, 77, 67, 56, 47, 37, 32, 23, 19, 15, 12, 7, 6, 6, 3, 3, 3, 2, 1, 3, 4, 4, 6, 9, 11, 15, 21, 29, 42, 68, 103, 146, 184, 211, 229, 238, 241, 242, 243, 240, 238, 236, 233, 232, 229, 223, 219, 216, 211, 206, 201, 197, 190, 184, 177, 171, 161, 154, 146, 138, 130, 121, 113, 105, 96, 87, 79, 71, 62, 54, 47, 41, 33, 27, 25, 18, 15, 12, 9, 5, 6, 4, 3, 3, 3, 2, 1, 2, 2, 1, 4, 4, 3, 4, 4, 4, 4, 5, 4, 4, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 14, 14, 14, 15, 15, 15, 16, 17, 15, 16, 15, 14, 15, 16, 12, 13, 11, 10, 9, 10, 8, 6, 7, 7, 6, 5, 5, 4, 2, 3, 3, 2, 3, 4, 2, 4, 4, 2, 2, 4, 2, 1, 4, 3, 1, 3, 2, 2, 3, 3, 2, 3, 3, 3, 2, 4, 3, 2, 3, 4, 1, 3, 4, 3, 5, 5, 5, 5, 6, 7, 6, 7, 8, 6, 7, 9, 8, 8, 9, 9, 10, 11, 11, 11, 11, 13, 15, 17, 18, 17, 17, 15, 13, 11, 8, 6, 4, 4, 2, 1, 3, 3, 2, 4, 7, 8, 11, 16, 19, 25, 29, 37, 44, 52, 59, 69, 79, 88, 100, 111, 120, 130, 139, 147, 154, 159, 166, 173, 180, 187, 193, 198, 205, 211, 215, 217, 221, 224, 227, 227, 228, 229, 229, 227, 228, 227, 229, 229, 229, 227, 231, 230, 227, 229, 228, 228, 227, 228, 227, 229, 229, 231, 228, 229, 229, 228, 229, 228, 229, 227, 229, 227, 227, 231, 230, 228, 230, 229, 229, 226, 223, 218, 208, 197, 183, 169, 160, 157, 160, 171, 188, 208, 224, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 253, 252, 251, 249, 248, 247, 244, 240, 235, 231, 224, 219, 213, 204, 197, 188, 176, 166, 154, 141, 127, 113, 103, 88, 77, 66, 56, 46, 37, 31, 25, 20, 14, 12, 9, 5, 5, 5, 2, 3, 2, 2, 1, 3, 5, 4, 8, 11, 15, 18, 25, 31, 38, 48, 62, 81, 108, 139, 174, 204, 225, 239, 247, 249, 251, 251, 251, 249, 251, 248, 245, 245, 241, 241, 237, 235, 232, 228, 225, 223, 219, 215, 210, 204, 199, 193, 185, 179, 173, 164, 157, 149, 139, 132, 121, 111, 102, 93, 82, 75, 65, 54, 47, 40, 31, 26, 20, 17, 13, 8, 7, 6, 4, 2, 3, 1, 1, 3, 2, 1, 2, 2, 1, 2, 3, 2, 2, 3, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 3, 4, 4, 4, 4, 5, 4, 4, 4, 3, 2, 3, 3, 2, 3, 3, 2, 3, 3, 1, 2, 3, 2, 0, 3, 2, 1, 3, 2, 1, 2, 3, 3, 2, 4, 3, 2, 3, 3, 2, 3, 2, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3, 1, 4, 2, 1, 1, 3, 1, 1, 2, 1, 2, 4, 2, 2, 3, 3, 1, 3, 4, 2, 3, 4, 3, 3, 3, 3, 2, 4, 4, 3, 4, 5, 4, 5, 5, 3, 4, 4, 2, 2, 3, 2, 2, 5, 6, 8, 14, 18, 24, 31, 39, 48, 56, 66, 77, 87, 96, 107, 119, 129, 140, 151, 162, 172, 180, 186, 191, 199, 201, 208, 212, 217, 221, 225, 230, 231, 233, 238, 240, 240, 243, 245, 244, 246, 244, 245, 246, 245, 244, 245, 245, 245, 244, 246, 245, 244, 246, 244, 246, 245, 247, 244, 245, 245, 245, 244, 246, 245, 246, 246, 244, 245, 245, 246, 244, 245, 245, 245, 244, 246, 246, 244, 246, 243, 239, 233, 225, 216, 208, 201, 197, 200, 207, 217, 228, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 252, 250, 248, 249, 245, 243, 242, 239, 233, 230, 224, 218, 212, 202, 192, 184, 173, 161, 152, 140, 128, 116, 103, 90, 79, 66, 56, 46, 37, 31, 24, 19, 13, 10, 9, 6, 4, 3, 4, 2, 1, 3, 2, 2, 4, 6, 7, 9, 15, 17, 22, 29, 37, 45, 56, 66, 78, 90, 108, 128, 150, 176, 202, 222, 235, 246, 251, 254, 255, 255, 254, 254, 254, 253, 251, 252, 251, 250, 249, 250, 247, 245, 244, 241, 239, 239, 234, 234, 230, 226, 221, 216, 211, 207, 201, 194, 188, 177, 172, 163, 152, 146, 134, 124, 115, 103, 90, 81, 69, 58, 50, 42, 33, 26, 21, 15, 11, 9, 7, 5, 3, 4, 2, 2, 3, 3, 2, 2, 2, 2, 2, 3, 1, 1, 2, 1, 0, 2, 1, 1, 1, 2, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 3, 2, 3, 4, 4, 3, 4, 3, 4, 5, 6, 6, 7, 7, 6, 7, 8, 8, 7, 8, 7, 7, 8, 8, 6, 8, 8, 8, 8, 8, 7, 8, 9, 8, 8, 8, 8, 6, 7, 8, 5, 5, 6, 3, 5, 5, 3, 3, 4, 3, 2, 3, 4, 2, 3, 3, 2, 2, 3, 2, 2, 3, 3, 1, 2, 3, 1, 1, 3, 1, 2, 3, 1, 0, 4, 3, 2, 5, 8, 10, 14, 20, 27, 35, 46, 57, 67, 77, 89, 103, 116, 126, 138, 149, 157, 169, 177, 188, 196, 204, 209, 217, 221, 225, 228, 229, 235, 236, 239, 241, 244, 247, 247, 248, 250, 250, 252, 253, 253, 252, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 252, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 252, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 252, 253, 251, 249, 245, 242, 237, 231, 229, 226, 227, 231, 235, 242, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 252, 253, 253, 252, 250, 249, 250, 247, 244, 245, 239, 236, 237, 231, 227, 221, 215, 207, 201, 190, 181, 171, 161, 147, 138, 125, 112, 100, 88, 78, 67, 56, 46, 38, 31, 24, 18, 15, 11, 8, 6, 5, 2, 3, 3, 1, 1, 3, 2, 3, 4, 8, 8, 12, 17, 21, 28, 35, 45, 53, 65, 77, 90, 101, 115, 129, 140, 156, 173, 189, 207, 222, 237, 245, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 252, 252, 252, 250, 250, 250, 247, 248, 244, 242, 238, 236, 234, 229, 224, 221, 215, 208, 205, 198, 192, 183, 172, 164, 155, 143, 131, 118, 108, 95, 81, 71, 59, 49, 41, 33, 27, 23, 18, 15, 13, 11, 9, 9, 8, 7, 7, 6, 5, 4, 5, 4, 2, 2, 2, 1, 3, 1, 1, 3, 1, 1, 1, 2, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 3, 3, 3, 5, 5, 5, 6, 7, 9, 10, 12, 12, 14, 15, 17, 17, 20, 20, 21, 21, 22, 23, 24, 24, 24, 25, 24, 23, 23, 23, 23, 23, 23, 25, 24, 24, 24, 24, 24, 23, 22, 21, 21, 20, 18, 19, 18, 15, 15, 14, 13, 12, 10, 11, 9, 10, 8, 8, 8, 9, 8, 8, 8, 7, 7, 6, 6, 5, 5, 5, 1, 3, 4, 3, 3, 4, 3, 4, 6, 9, 10, 15, 21, 29, 37, 50, 61, 73, 87, 102, 115, 128, 142, 153, 164, 176, 186, 193, 202, 209, 215, 220, 227, 230, 235, 237, 242, 243, 246, 246, 248, 249, 249, 250, 251, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 251, 248, 245, 243, 242, 242, 244, 246, 249, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 252, 251, 251, 251, 249, 248, 248, 246, 244, 244, 241, 240, 238, 235, 233, 229, 225, 220, 216, 210, 203, 194, 185, 174, 167, 157, 143, 133, 120, 108, 97, 85, 73, 66, 55, 45, 38, 31, 24, 19, 14, 12, 9, 5, 5, 3, 1, 3, 2, 0, 2, 4, 3, 4, 7, 10, 12, 16, 20, 26, 34, 42, 51, 62, 73, 86, 101, 113, 129, 141, 152, 164, 176, 186, 197, 208, 219, 229, 237, 245, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 251, 251, 249, 248, 244, 243, 241, 237, 235, 230, 226, 222, 217, 211, 208, 199, 190, 178, 168, 157, 146, 132, 119, 106, 93, 82, 71, 62, 54, 47, 42, 35, 31, 29, 26, 24, 21, 20, 21, 18, 16, 16, 14, 13, 12, 11, 10, 9, 8, 7, 8, 7, 7, 5, 6, 5, 5, 5, 4, 3, 4, 3, 2, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 7, 8, 10, 11, 12, 14, 18, 20, 23, 26, 29, 31, 34, 38, 40, 43, 44, 46, 47, 50, 51, 53, 53, 56, 55, 54, 55, 55, 56, 54, 55, 56, 56, 56, 56, 57, 56, 55, 54, 53, 53, 51, 49, 49, 46, 44, 40, 39, 37, 34, 33, 32, 30, 27, 27, 26, 25, 25, 24, 24, 24, 22, 22, 21, 21, 18, 16, 14, 14, 11, 11, 11, 11, 12, 12, 13, 16, 20, 26, 31, 37, 50, 62, 76, 92, 107, 124, 137, 153, 166, 177, 189, 200, 206, 213, 220, 226, 228, 235, 237, 242, 244, 246, 248, 251, 252, 253, 254, 254, 253, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 252, 251, 250, 250, 251, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 253, 252, 251, 253, 251, 251, 251, 249, 248, 246, 245, 243, 240, 241, 239, 236, 235, 234, 228, 226, 222, 219, 213, 210, 204, 199, 193, 185, 176, 170, 160, 149, 138, 127, 117, 104, 93, 81, 69, 61, 51, 43, 35, 29, 23, 18, 13, 11, 8, 6, 4, 5, 3, 1, 2, 3, 1, 2, 4, 4, 6, 10, 11, 16, 20, 26, 33, 39, 48, 60, 71, 83, 97, 109, 122, 138, 151, 162, 175, 185, 197, 206, 213, 221, 226, 233, 238, 243, 247, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 250, 249, 248, 246, 243, 241, 239, 237, 232, 228, 224, 215, 209, 198, 190, 180, 169, 156, 144, 133, 123, 110, 101, 92, 84, 76, 69, 66, 61, 58, 55, 54, 51, 48, 45, 43, 41, 36, 35, 33, 30, 28, 27, 26, 25, 24, 22, 22, 21, 18, 19, 18, 17, 16, 16, 14, 14, 13, 13, 11, 11, 10, 9, 7, 7, 6, 5, 5, 4, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 19, 22, 26, 31, 35, 40, 45, 51, 57, 59, 66, 70, 73, 77, 80, 82, 86, 88, 91, 93, 94, 96, 97, 97, 97, 98, 100, 100, 100, 103, 103, 101, 101, 102, 100, 100, 99, 96, 94, 93, 89, 87, 85, 81, 78, 75, 71, 68, 66, 64, 62, 60, 59, 59, 57, 57, 55, 54, 52, 51, 48, 45, 43, 40, 37, 34, 33, 31, 32, 33, 35, 40, 43, 49, 58, 68, 80, 93, 109, 126, 141, 155, 171, 183, 196, 208, 216, 224, 229, 233, 237, 240, 242, 246, 247, 249, 250, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 253, 251, 250, 247, 245, 246, 243, 241, 242, 242, 240, 240, 238, 235, 233, 231, 228, 223, 219, 217, 213, 209, 202, 197, 194, 186, 179, 176, 169, 162, 156, 148, 139, 127, 118, 108, 97, 87, 76, 66, 56, 48, 41, 33, 27, 21, 18, 13, 10, 8, 6, 3, 2, 3, 2, 1, 2, 3, 1, 4, 5, 5, 8, 13, 16, 20, 26, 33, 39, 49, 58, 70, 79, 94, 107, 118, 132, 147, 160, 170, 183, 195, 205, 214, 220, 228, 234, 237, 240, 242, 244, 249, 251, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 251, 251, 251, 251, 249, 248, 246, 243, 238, 232, 228, 223, 215, 207, 199, 191, 181, 170, 164, 154, 145, 138, 128, 120, 116, 110, 106, 104, 101, 97, 93, 90, 87, 84, 79, 76, 73, 69, 66, 64, 62, 61, 58, 58, 55, 56, 54, 51, 49, 49, 47, 46, 43, 43, 41, 40, 38, 36, 34, 32, 29, 27, 25, 23, 21, 19, 18, 15, 13, 12, 11, 9, 7, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 2, 2, 3, 3, 5, 6, 8, 9, 12, 14, 17, 21, 25, 30, 35, 41, 46, 54, 61, 66, 74, 81, 84, 91, 99, 101, 107, 111, 117, 120, 123, 125, 127, 133, 133, 136, 136, 141, 141, 144, 146, 148, 147, 147, 147, 146, 144, 143, 141, 140, 138, 136, 133, 132, 130, 126, 123, 120, 117, 114, 111, 108, 110, 107, 105, 104, 103, 100, 99, 97, 95, 90, 88, 81, 79, 75, 73, 71, 71, 73, 76, 81, 88, 95, 105, 118, 132, 145, 161, 173, 186, 200, 211, 217, 226, 232, 238, 243, 245, 248, 250, 251, 252, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 249, 244, 241, 238, 233, 229, 228, 225, 222, 220, 218, 215, 211, 208, 204, 200, 196, 191, 185, 179, 171, 166, 161, 154, 147, 140, 134, 124, 116, 112, 102, 94, 87, 78, 68, 61, 52, 45, 36, 30, 26, 20, 15, 13, 9, 7, 6, 4, 2, 2, 2, 2, 1, 3, 4, 2, 5, 7, 8, 12, 15, 19, 25, 32, 40, 48, 59, 70, 82, 93, 106, 119, 130, 144, 157, 169, 179, 190, 202, 211, 218, 226, 233, 236, 240, 244, 247, 248, 249, 251, 251, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 250, 251, 248, 245, 241, 236, 234, 229, 224, 216, 210, 202, 197, 190, 184, 176, 170, 165, 162, 160, 155, 152, 150, 146, 143, 141, 135, 131, 129, 126, 122, 117, 116, 115, 111, 110, 109, 108, 105, 104, 101, 100, 97, 98, 94, 92, 93, 90, 89, 85, 83, 82, 78, 74, 71, 68, 64, 60, 56, 53, 49, 45, 42, 37, 34, 31, 27, 23, 19, 17, 15, 13, 10, 9, 7, 6, 6, 4, 3, 3, 2, 1, 2, 1, 1, 1, 1, 0, 0, 1, 1, 2, 3, 3, 4, 5, 7, 8, 10, 13, 14, 19, 23, 28, 33, 39, 45, 50, 57, 65, 73, 79, 87, 93, 98, 107, 111, 117, 121, 129, 132, 138, 143, 148, 152, 157, 162, 163, 166, 169, 172, 173, 174, 175, 174, 174, 173, 174, 172, 176, 175, 173, 176, 175, 172, 171, 168, 166, 164, 162, 159, 158, 160, 156, 155, 156, 152, 149, 147, 142, 140, 135, 130, 128, 125, 123, 123, 124, 129, 131, 141, 149, 158, 168, 178, 190, 201, 210, 219, 226, 232, 240, 244, 248, 249, 251, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 247, 240, 232, 223, 215, 208, 202, 198, 191, 188, 184, 179, 177, 172, 164, 161, 154, 150, 142, 136, 130, 124, 113, 108, 102, 93, 87, 81, 74, 67, 62, 57, 49, 44, 38, 33, 26, 22, 18, 13, 10, 9, 6, 3, 4, 4, 1, 1, 3, 1, 1, 4, 4, 3, 8, 10, 11, 15, 20, 26, 32, 40, 48, 58, 69, 81, 94, 104, 122, 134, 142, 156, 169, 181, 189, 199, 208, 216, 222, 229, 235, 241, 244, 247, 249, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 251, 249, 248, 243, 242, 239, 235, 229, 226, 224, 218, 213, 210, 208, 205, 203, 200, 197, 194, 192, 190, 189, 184, 179, 179, 175, 171, 169, 169, 165, 165, 163, 160, 162, 159, 157, 157, 157, 154, 151, 153, 150, 149, 148, 149, 143, 142, 142, 136, 132, 129, 125, 123, 118, 115, 110, 104, 100, 93, 88, 82, 76, 70, 63, 58, 52, 45, 41, 37, 32, 28, 24, 20, 18, 16, 13, 9, 8, 7, 4, 4, 4, 3, 1, 2, 2, 1, 2, 3, 1, 1, 2, 2, 3, 4, 5, 6, 7, 11, 11, 15, 20, 23, 27, 33, 39, 46, 51, 57, 62, 69, 75, 81, 87, 93, 101, 106, 115, 123, 126, 135, 142, 145, 150, 156, 160, 164, 168, 169, 170, 172, 174, 177, 180, 182, 187, 194, 197, 202, 205, 208, 208, 208, 207, 204, 204, 203, 202, 201, 198, 199, 198, 196, 194, 193, 189, 185, 183, 181, 177, 173, 174, 172, 176, 180, 183, 186, 194, 200, 208, 214, 221, 229, 233, 240, 244, 248, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 245, 237, 226, 211, 196, 182, 171, 160, 153, 147, 140, 134, 131, 126, 119, 113, 108, 102, 96, 91, 85, 78, 71, 65, 60, 54, 48, 43, 39, 34, 31, 27, 24, 19, 16, 15, 12, 9, 7, 6, 4, 2, 3, 3, 1, 2, 3, 2, 4, 6, 6, 7, 9, 13, 16, 21, 26, 32, 40, 49, 57, 68, 79, 91, 106, 116, 134, 146, 157, 169, 180, 190, 198, 208, 215, 222, 228, 233, 238, 241, 243, 249, 249, 251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 249, 247, 246, 244, 240, 240, 238, 235, 234, 231, 230, 228, 227, 227, 224, 223, 222, 219, 218, 215, 215, 212, 210, 208, 205, 205, 206, 203, 204, 202, 202, 200, 200, 198, 201, 200, 198, 196, 197, 196, 194, 192, 192, 190, 186, 186, 182, 178, 176, 172, 165, 165, 160, 151, 148, 144, 135, 129, 121, 115, 105, 99, 95, 84, 77, 72, 63, 56, 50, 44, 38, 33, 29, 24, 20, 16, 15, 11, 8, 8, 6, 4, 4, 4, 3, 3, 3, 1, 1, 2, 2, 1, 4, 4, 3, 6, 8, 9, 10, 14, 16, 19, 23, 28, 31, 36, 38, 45, 49, 55, 61, 65, 73, 81, 86, 95, 101, 107, 112, 118, 122, 129, 133, 136, 138, 140, 147, 150, 157, 163, 175, 185, 200, 209, 220, 228, 230, 231, 233, 231, 232, 230, 230, 231, 230, 228, 227, 225, 227, 227, 222, 222, 219, 218, 212, 212, 213, 212, 213, 215, 217, 220, 224, 229, 234, 237, 240, 245, 248, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 246, 238, 222, 203, 183, 157, 138, 123, 109, 101, 94, 87, 82, 78, 73, 70, 65, 59, 56, 51, 47, 42, 37, 33, 30, 25, 22, 19, 16, 14, 13, 10, 9, 8, 6, 5, 4, 4, 3, 2, 3, 2, 0, 1, 2, 3, 4, 7, 7, 11, 15, 18, 22, 27, 34, 41, 49, 59, 71, 81, 91, 106, 118, 131, 145, 154, 166, 179, 191, 202, 208, 216, 223, 229, 233, 238, 241, 242, 246, 249, 250, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 251, 250, 250, 250, 248, 249, 248, 245, 246, 245, 245, 243, 242, 241, 240, 239, 239, 236, 237, 235, 235, 234, 232, 232, 231, 229, 230, 230, 228, 229, 228, 230, 229, 230, 228, 226, 228, 225, 226, 224, 224, 226, 224, 221, 220, 218, 214, 213, 210, 207, 202, 198, 196, 188, 185, 178, 171, 168, 159, 148, 140, 134, 128, 118, 109, 101, 92, 84, 76, 67, 61, 53, 46, 39, 34, 30, 24, 20, 16, 15, 13, 9, 8, 7, 6, 2, 5, 3, 2, 3, 3, 0, 2, 3, 1, 4, 5, 4, 7, 9, 10, 11, 14, 16, 19, 22, 24, 27, 30, 37, 41, 45, 51, 56, 63, 67, 73, 77, 81, 85, 90, 91, 95, 99, 104, 112, 123, 137, 156, 179, 200, 217, 231, 240, 244, 246, 248, 247, 247, 246, 245, 245, 245, 244, 243, 243, 243, 242, 242, 240, 240, 239, 236, 236, 236, 236, 236, 239, 240, 242, 245, 247, 248, 250, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 248, 241, 227, 206, 178, 145, 115, 90, 72, 62, 53, 50, 43, 42, 37, 34, 31, 28, 26, 25, 22, 19, 17, 13, 11, 12, 9, 7, 7, 5, 4, 4, 4, 3, 3, 3, 2, 1, 2, 2, 2, 4, 5, 4, 6, 9, 10, 15, 19, 23, 28, 36, 42, 53, 61, 71, 82, 95, 107, 119, 132, 142, 157, 167, 178, 190, 197, 208, 215, 221, 228, 233, 237, 242, 244, 246, 249, 251, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 252, 253, 252, 252, 252, 252, 251, 251, 251, 251, 249, 249, 249, 248, 248, 247, 247, 246, 246, 245, 245, 245, 245, 245, 247, 246, 244, 246, 244, 245, 246, 245, 244, 245, 245, 244, 244, 244, 244, 239, 241, 236, 235, 234, 232, 228, 227, 223, 220, 214, 211, 206, 199, 194, 190, 181, 172, 166, 157, 148, 139, 130, 121, 111, 101, 93, 85, 75, 67, 58, 53, 47, 39, 32, 29, 23, 19, 16, 13, 11, 8, 5, 7, 4, 3, 3, 3, 2, 2, 3, 2, 1, 3, 3, 2, 5, 4, 5, 7, 9, 9, 11, 14, 16, 18, 22, 24, 27, 30, 34, 36, 40, 44, 45, 48, 50, 53, 58, 64, 74, 90, 116, 147, 178, 205, 226, 240, 246, 251, 253, 253, 254, 253, 252, 252, 252, 252, 252, 252, 252, 251, 252, 252, 250, 251, 249, 248, 248, 248, 248, 250, 251, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 246, 236, 217, 189, 151, 110, 72, 50, 35, 29, 23, 17, 17, 14, 13, 12, 12, 10, 9, 9, 6, 6, 5, 4, 2, 4, 3, 2, 3, 1, 0, 2, 3, 2, 3, 4, 3, 4, 7, 7, 8, 10, 14, 15, 19, 24, 30, 38, 46, 54, 64, 74, 86, 97, 108, 122, 134, 145, 155, 170, 180, 189, 201, 209, 216, 222, 229, 234, 239, 242, 244, 246, 248, 250, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 253, 254, 254, 253, 253, 254, 253, 253, 253, 252, 252, 253, 253, 252, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 252, 253, 251, 250, 249, 248, 246, 246, 243, 241, 240, 237, 236, 230, 228, 224, 218, 215, 209, 202, 195, 188, 183, 174, 166, 159, 147, 137, 127, 119, 107, 101, 92, 81, 74, 65, 56, 49, 42, 38, 32, 26, 22, 19, 14, 12, 10, 8, 5, 6, 5, 3, 2, 3, 3, 1, 2, 2, 1, 3, 3, 1, 4, 4, 5, 6, 7, 8, 8, 11, 13, 14, 14, 17, 17, 20, 21, 21, 24, 30, 37, 49, 74, 110, 150, 189, 216, 236, 246, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 254, 253, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 250, 244, 232, 206, 173, 129, 80, 42, 21, 14, 10, 8, 6, 7, 4, 3, 3, 3, 2, 2, 3, 2, 1, 3, 2, 1, 3, 2, 2, 3, 4, 3, 5, 5, 6, 7, 9, 11, 13, 16, 20, 23, 27, 34, 41, 48, 56, 67, 79, 88, 102, 114, 124, 135, 148, 159, 169, 180, 191, 200, 208, 216, 223, 229, 235, 238, 242, 244, 247, 249, 251, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 252, 252, 251, 249, 248, 245, 243, 242, 239, 235, 232, 229, 224, 220, 213, 208, 200, 193, 186, 179, 171, 161, 151, 145, 133, 123, 115, 105, 95, 86, 77, 68, 58, 52, 44, 38, 32, 28, 24, 19, 17, 13, 11, 8, 8, 5, 4, 5, 3, 2, 3, 2, 1, 2, 3, 1, 2, 3, 2, 3, 4, 3, 3, 5, 5, 5, 6, 7, 7, 9, 11, 14, 21, 42, 81, 129, 173, 207, 231, 244, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 243, 228, 201, 163, 114, 65, 27, 8, 4, 5, 2, 2, 3, 2, 0, 2, 3, 1, 2, 4, 3, 4, 5, 4, 4, 6, 7, 7, 10, 12, 12, 14, 18, 19, 23, 27, 32, 36, 40, 48, 55, 63, 72, 83, 94, 105, 117, 128, 139, 152, 163, 174, 182, 194, 201, 211, 218, 224, 230, 234, 238, 242, 246, 247, 249, 250, 252, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 250, 250, 250, 247, 246, 243, 240, 237, 233, 229, 225, 220, 216, 211, 203, 197, 189, 180, 175, 164, 153, 146, 137, 128, 117, 107, 97, 88, 79, 71, 63, 55, 48, 41, 35, 31, 27, 24, 19, 16, 15, 11, 11, 9, 8, 5, 5, 5, 3, 2, 3, 3, 2, 3, 2, 1, 2, 3, 1, 1, 3, 2, 3, 5, 4, 8, 26, 65, 115, 164, 201, 227, 243, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 243, 228, 203, 164, 117, 65, 26, 8, 5, 5, 2, 2, 4, 3, 2, 4, 5, 6, 6, 8, 10, 10, 12, 13, 15, 19, 21, 23, 28, 31, 34, 39, 44, 47, 55, 62, 68, 76, 83, 93, 104, 113, 123, 134, 146, 155, 166, 177, 188, 196, 204, 213, 220, 225, 231, 234, 238, 243, 247, 248, 249, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 250, 250, 248, 246, 245, 240, 238, 234, 230, 228, 221, 219, 213, 204, 199, 193, 185, 176, 169, 159, 150, 141, 131, 123, 111, 101, 93, 83, 76, 67, 60, 54, 48, 42, 37, 33, 29, 25, 22, 19, 16, 13, 12, 10, 9, 7, 7, 6, 4, 3, 4, 3, 1, 3, 4, 3, 4, 5, 5, 7, 26, 66, 115, 164, 201, 227, 243, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 251, 244, 232, 208, 173, 128, 81, 43, 20, 15, 13, 11, 10, 11, 13, 13, 15, 16, 18, 21, 25, 27, 29, 33, 37, 41, 46, 51, 57, 60, 69, 74, 81, 86, 94, 103, 109, 118, 127, 135, 144, 154, 162, 174, 182, 192, 199, 207, 214, 221, 225, 231, 236, 239, 241, 245, 248, 249, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 251, 250, 249, 246, 243, 241, 240, 235, 230, 229, 225, 220, 215, 208, 201, 195, 187, 181, 171, 162, 154, 145, 136, 126, 119, 109, 101, 94, 87, 79, 71, 65, 59, 52, 46, 43, 37, 34, 30, 26, 23, 20, 17, 14, 13, 13, 10, 9, 9, 10, 10, 11, 13, 14, 20, 43, 80, 128, 172, 207, 230, 244, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 246, 236, 218, 190, 152, 111, 76, 51, 39, 34, 32, 32, 33, 35, 37, 40, 45, 47, 52, 56, 62, 68, 72, 78, 85, 90, 96, 105, 112, 117, 127, 134, 139, 146, 155, 162, 169, 175, 183, 190, 196, 207, 213, 219, 223, 230, 232, 238, 241, 244, 245, 247, 249, 250, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 250, 250, 249, 247, 246, 242, 239, 238, 233, 233, 225, 223, 217, 210, 205, 199, 190, 183, 176, 169, 160, 153, 145, 138, 128, 123, 115, 107, 99, 93, 86, 78, 73, 67, 62, 54, 51, 46, 41, 38, 35, 32, 31, 30, 29, 28, 28, 33, 39, 51, 74, 110, 151, 189, 217, 235, 246, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 249, 242, 228, 207, 180, 147, 118, 95, 81, 73, 68, 69, 71, 74, 77, 83, 87, 93, 100, 103, 110, 119, 123, 130, 137, 143, 148, 156, 160, 168, 174, 180, 188, 190, 199, 205, 208, 213, 218, 223, 226, 231, 236, 239, 242, 246, 248, 250, 251, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 250, 250, 248, 246, 247, 241, 239, 236, 231, 228, 223, 219, 213, 208, 201, 198, 193, 187, 178, 171, 166, 158, 152, 146, 137, 129, 122, 118, 109, 103, 95, 90, 84, 79, 75, 70, 69, 65, 62, 64, 66, 71, 79, 94, 116, 146, 179, 207, 227, 241, 249, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 246, 237, 223, 205, 182, 160, 143, 132, 123, 120, 120, 123, 125, 131, 136, 140, 146, 151, 156, 164, 169, 173, 178, 185, 190, 195, 201, 206, 209, 214, 217, 223, 226, 227, 231, 233, 236, 239, 243, 244, 245, 249, 249, 252, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 251, 250, 249, 247, 244, 242, 239, 237, 232, 232, 228, 223, 222, 216, 211, 205, 203, 197, 190, 184, 179, 173, 165, 160, 155, 149, 143, 139, 132, 128, 121, 121, 116, 114, 114, 116, 120, 128, 142, 160, 182, 204, 224, 237, 246, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 245, 236, 225, 213, 198, 186, 178, 172, 170, 169, 172, 174, 180, 183, 189, 190, 196, 202, 204, 209, 212, 214, 219, 222, 225, 229, 233, 236, 239, 239, 242, 242, 243, 246, 248, 247, 249, 251, 251, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 251, 250, 249, 247, 246, 245, 242, 242, 236, 237, 233, 232, 230, 224, 218, 216, 210, 208, 204, 199, 193, 192, 187, 179, 176, 175, 172, 164, 164, 165, 165, 170, 176, 187, 198, 212, 226, 237, 245, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 250, 245, 240, 233, 226, 218, 212, 209, 207, 209, 210, 212, 215, 219, 223, 225, 228, 229, 233, 234, 236, 238, 239, 242, 245, 245, 247, 249, 250, 250, 250, 251, 251, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 251, 251, 250, 248, 248, 246, 245, 244, 239, 240, 235, 234, 233, 229, 227, 223, 221, 216, 215, 211, 208, 207, 207, 205, 205, 208, 213, 217, 225, 232, 240, 246, 250, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 248, 245, 242, 237, 235, 233, 232, 233, 234, 237, 239, 242, 244, 243, 243, 245, 247, 247, 248, 250, 251, 251, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 252, 251, 250, 249, 248, 245, 243, 243, 242, 240, 240, 237, 238, 235, 232, 232, 230, 231, 233, 234, 236, 241, 245, 247, 251, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 250, 249, 248, 246, 247, 246, 246, 250, 250, 250, 251, 251, 252, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 251, 251, 251, 251, 251, 249, 249, 248, 247, 247, 246, 245, 246, 248, 249, 249, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 253, 253, 252, 253, 253, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 253, 254, 254, 253, 253, 253, 253, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0]) - - -export { testGif, testBmp, base64Image, scale2x1, translate3x1, rotate90, flipH, crop3x3, scale1x4, setAlpha8, translate1x3 } - - +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +let base64Image = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCADiAdgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9EKKKK/xjP6oCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//2Q==' +let scale2x1 = new Uint8Array([ + 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, 11, 1, 0, 0, 13, 1, 0, 0, 15, 1, 1, 1, 17, + 1, 1, 1, 19, 1, 1, 1, 21, 1, 1, 1, 23, 2, 2, 2, 24, 3, 3, 3, 28, 3, 3, 3, 29, 3, 3, 3, 31, 4, 4, 4, 33, + 4, 4, 4, 35, 5, 5, 5, 37, 5, 5, 5, 39, 6, 6, 6, 41, 6, 6, 6, 43, 7, 7, 7, 45, 8, 8, 7, 47, 9, 9, 8, 48, + 10, 10, 10, 52, 10, 10, 10, 53, 11, 11, 11, 55, 12, 12, 12, 57, 13, 13, 12, 59, 14, 14, 13, 61, 15, 15, 14, 63, 16, 16, 15, 65, + 17, 17, 16, 67, 18, 18, 17, 69, 19, 19, 18, 71, 20, 20, 19, 72, 22, 22, 22, 76, 22, 22, 22, 77, 24, 23, 23, 79, 25, 24, 24, 81, + 26, 26, 26, 83, 27, 27, 27, 85, 29, 29, 28, 87, 30, 30, 29, 89, 32, 31, 31, 91, 33, 32, 32, 93, 35, 34, 34, 95, 36, 35, 35, 96 +]) +let scale1x4 = new Uint8Array([ +0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, +0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, +0, 0, 0, 7, 0, 0, 0, 11, 1, 0, 0, 15, 1, 1, 1, 19, 1, 1, 1, 23, 2, 2, 2, 27, +1, 1, 1, 13, 1, 1, 1, 17, 2, 1, 1, 21, 2, 2, 2, 25, 3, 3, 3, 29, 4, 4, 4, 33, +1, 1, 1, 19, 2, 2, 2, 23, 3, 3, 3, 27, 4, 4, 4, 31, 4, 4, 4, 35, 6, 6, 5, 39, +2, 2, 2, 25, 3, 3, 3, 29, 4, 4, 4, 33, 5, 5, 5, 37, 6, 6, 6, 41, 8, 8, 7, 45, +3, 3, 3, 31, 5, 5, 5, 35, 6, 6, 6, 39, 7, 7, 7, 43, 8, 8, 8, 47, 10, 10, 9, 51, +5, 5, 5, 37, 7, 7, 7, 41, 8, 8, 8, 45, 9, 9, 9, 49, 11, 11, 10, 53, 13, 13, 12, 57, +7, 7, 7, 43, 9, 9, 9, 47, 10, 10, 10, 51, 12, 12, 11, 55, 13, 13, 13, 59, 15, 15, 14, 63, +9, 9, 9, 49, 11, 11, 11, 53, 12, 12, 12, 57, 14, 14, 13, 61, 16, 16, 15, 65, 18, 18, 17, 69, +11, 11, 11, 55, 13, 13, 13, 59, 15, 15, 14, 63, 17, 17, 16, 67, 19, 19, 18, 71, 22, 21, 21, 75, +14, 14, 14, 61, 16, 16, 16, 65, 18, 18, 18, 69, 21, 21, 20, 73, 23, 23, 22, 77, 26, 25, 25, 81, +17, 17, 17, 67, 20, 19, 19, 71, 22, 22, 21, 75, 24, 24, 23, 79, 27, 26, 26, 83, 30, 29, 29, 87, +20, 20, 20, 73, 23, 22, 22, 77, 25, 25, 25, 81, 28, 28, 27, 85, 31, 30, 30, 89, 34, 33, 33, 93, +22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, +22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, +]) +let translate3x1 = new Uint8Array([ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 28, 4, 4, 4, 32, 5, 5, 5, 36, 6, 6, 6, 40, 7, 7, 7, 44, 9, 9, 8, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 52, 12, 12, 12, 56, 14, 14, 13, 60, 16, 16, 15, 64, 18, 18, 17, 68, 20, 20, 19, 72, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, +]) +let translate1x3 = new Uint8Array([ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, +0, 0, 0, 0, 3, 3, 3, 28, 4, 4, 4, 32, 5, 5, 5, 36, 6, 6, 6, 40, 7, 7, 7, 44, 9, 9, 8, 48, +0, 0, 0, 0, 10, 10, 10, 52, 12, 12, 12, 56, 14, 14, 13, 60, 16, 16, 15, 64, 18, 18, 17, 68, 20, 20, 19, 72, +0, 0, 0, 0, 22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, +]) +let rotate90 = new Uint8Array([ + 22, 22, 22, 76, 10, 10, 10, 52, 3, 3, 3, 28, 0, 0, 0, 4, + 25, 24, 24, 80, 12, 12, 12, 56, 4, 4, 4, 32, 0, 0, 0, 8, + 27, 27, 27, 84, 14, 14, 13, 60, 5, 5, 5, 36, 1, 0, 0, 12, + 30, 30, 29, 88, 16, 16, 15, 64, 6, 6, 6, 40, 1, 1, 1, 16, + 33, 32, 32, 92, 18, 18, 17, 68, 7, 7, 7, 44, 1, 1, 1, 20, + 36, 35, 35, 96, 20, 20, 19, 72, 9, 9, 8, 48, 2, 2, 2, 24, +]) +let flipH = new Uint8Array([ + 22, 22, 22, 76, 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, 33, 32, 32, 92, 36, 35, 35, 96, + 10, 10, 10, 52, 12, 12, 12, 56, 14, 14, 13, 60, 16, 16, 15, 64, 18, 18, 17, 68, 20, 20, 19, 72, + 3, 3, 3, 28, 4, 4, 4, 32, 5, 5, 5, 36, 6, 6, 6, 40, 7, 7, 7, 44, 9, 9, 8, 48, + 0, 0, 0, 4, 0, 0, 0, 8, 1, 0, 0, 12, 1, 1, 1, 16, 1, 1, 1, 20, 2, 2, 2, 24, +]) +let crop3x3 = new Uint8Array([ + 4, 4, 4, 32, 5, 5, 5, 36, 6, 6, 6, 40, + 12, 12, 12, 56, 14, 14, 13, 60, 16, 16, 15, 64, + 25, 24, 24, 80, 27, 27, 27, 84, 30, 30, 29, 88, +]) +let setAlpha8 = new Uint8Array([ + 0, 0, 0, 204, 0, 0, 0, 204, 17, 0, 0, 204, 13, 13, 13, 204, 10, 10, 10, 204, 17, 17, 17, 204, + 22, 22, 22, 204, 26, 26, 26, 204, 28, 28, 28, 204, 31, 31, 31, 204, 32, 32, 32, 204, 38, 38, 34, 204, + 39, 39, 39, 204, 44, 44, 44, 204, 48, 48, 44, 204, 51, 51, 48, 204, 54, 54, 51, 204, 57, 57, 54, 204, + 59, 59, 59, 204, 64, 61, 61, 204, 66, 66, 66, 204, 70, 70, 67, 204, 73, 71, 71, 204, 77, 74, 74, 204, +]) +let testGif = new Uint8Array([71, 73, 70, 56, 57, 97, 198, 0, 202, 0, 247, 0, 0, 19, 217, 244, 244, 63, 19, 84, 19, 244, 102, 244, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 255, 11, 78, 69, 84, 83, 67, 65, 80, 69, 50, 46, 48, 3, 1, 0, 0, 0, 33, 249, 4, 4, 7, 0, 0, 0, 44, 0, 0, 0, 0, 198, 0, 202, 0, 0, 8, 254, 0, 9, 8, 28, 72, 176, 160, 193, 131, 8, 19, 42, 92, 200, 176, 161, 195, 135, 16, 35, 74, 156, 136, 48, 128, 197, 139, 24, 51, 106, 220, 200, 177, 163, 199, 143, 32, 67, 118, 28, 64, 178, 164, 201, 147, 40, 83, 170, 92, 201, 178, 165, 203, 151, 41, 69, 202, 156, 73, 179, 166, 205, 0, 48, 115, 234, 220, 201, 147, 231, 205, 159, 64, 131, 138, 236, 73, 180, 168, 81, 157, 66, 147, 42, 77, 122, 180, 169, 211, 167, 75, 163, 74, 157, 249, 180, 170, 213, 157, 83, 179, 106, 221, 120, 181, 171, 87, 149, 91, 195, 110, 253, 74, 150, 172, 216, 179, 82, 203, 170, 189, 138, 182, 45, 211, 181, 112, 155, 186, 157, 251, 51, 174, 221, 162, 116, 243, 210, 188, 203, 23, 171, 222, 191, 32, 251, 10, 126, 9, 184, 240, 200, 193, 136, 193, 26, 94, 140, 49, 177, 227, 147, 140, 35, 227, 124, 76, 89, 50, 99, 202, 149, 45, 27, 198, 252, 88, 243, 102, 206, 137, 61, 23, 6, 29, 90, 244, 95, 210, 136, 77, 159, 70, 45, 88, 181, 94, 214, 173, 93, 211, 133, 221, 87, 246, 108, 218, 119, 109, 207, 197, 157, 91, 119, 91, 222, 118, 125, 255, 6, 14, 87, 56, 90, 226, 197, 141, 139, 69, 190, 86, 249, 114, 230, 101, 157, 135, 133, 30, 93, 186, 86, 234, 102, 173, 103, 197, 254, 85, 251, 118, 238, 93, 189, 254, 79, 5, 31, 94, 124, 84, 242, 108, 205, 47, 69, 111, 85, 253, 122, 246, 80, 221, 191, 133, 47, 87, 190, 80, 250, 78, 237, 223, 199, 127, 84, 127, 80, 254, 253, 249, 87, 23, 128, 120, 9, 120, 19, 129, 5, 26, 88, 19, 130, 68, 41, 104, 19, 131, 61, 57, 184, 32, 132, 126, 73, 40, 19, 133, 21, 90, 24, 18, 134, 72, 105, 56, 20, 135, 48, 121, 248, 33, 136, 46, 137, 184, 33, 137, 37, 154, 248, 17, 138, 41, 170, 120, 24, 139, 43, 185, 232, 17, 140, 44, 201, 248, 34, 141, 40, 217, 200, 17, 142, 138, 233, 152, 17, 143, 49, 249, 248, 35, 144, 144, 9, 217, 24, 145, 38, 25, 121, 36, 146, 36, 41, 121, 17, 147, 37, 57, 105, 17, 148, 77, 74, 73, 229, 0, 82, 78, 6, 101, 150, 87, 114, 73, 165, 151, 91, 90, 249, 165, 152, 97, 58, 217, 37, 153, 76, 130, 153, 38, 154, 72, 170, 217, 38, 155, 68, 186, 25, 39, 156, 64, 202, 89, 39, 157, 60, 218, 153, 39, 158, 56, 234, 217, 39, 159, 52, 250, 25, 40, 160, 48, 10, 90, 40, 161, 44, 26, 154, 40, 162, 40, 42, 218, 40, 163, 36, 58, 26, 41, 164, 32, 74, 90, 41, 165, 28, 90, 154, 41, 166, 24, 106, 218, 41, 167, 20, 82, 36, 234, 168, 164, 58, 36, 192, 169, 168, 166, 170, 234, 170, 172, 182, 234, 234, 171, 254, 176, 198, 42, 43, 171, 0, 212, 106, 235, 173, 184, 230, 170, 235, 174, 188, 246, 234, 235, 175, 192, 242, 58, 235, 176, 196, 22, 107, 172, 177, 193, 38, 171, 236, 178, 204, 54, 11, 192, 177, 208, 70, 43, 45, 177, 206, 86, 107, 237, 181, 193, 78, 171, 237, 182, 220, 98, 235, 237, 183, 222, 114, 43, 238, 184, 197, 130, 107, 238, 185, 202, 146, 171, 238, 186, 173, 162, 235, 238, 187, 186, 178, 43, 175, 188, 240, 214, 11, 239, 188, 248, 146, 107, 239, 190, 231, 230, 235, 239, 182, 252, 6, 28, 238, 191, 4, 67, 43, 240, 193, 213, 22, 172, 112, 185, 8, 55, 156, 238, 194, 16, 199, 234, 240, 196, 192, 70, 108, 177, 171, 20, 103, 44, 236, 197, 28, 167, 170, 241, 199, 184, 118, 44, 178, 0, 32, 151, 252, 236, 200, 28, 155, 12, 50, 202, 41, 171, 172, 49, 203, 23, 187, 252, 50, 204, 17, 203, 156, 49, 205, 53, 219, 60, 49, 206, 16, 235, 188, 51, 207, 10, 251, 236, 48, 208, 65, 11, 141, 48, 209, 5, 27, 125, 52, 210, 255, 42, 125, 48, 211, 77, 59, 29, 48, 212, 254, 74, 61, 53, 213, 248, 90, 205, 47, 214, 89, 107, 109, 47, 215, 243, 122, 253, 53, 216, 236, 138, 93, 47, 217, 101, 155, 253, 46, 218, 235, 170, 189, 54, 219, 250, 186, 141, 46, 220, 113, 203, 109, 46, 221, 227, 218, 221, 47, 242, 222, 221, 234, 13, 46, 223, 125, 251, 61, 48, 224, 211, 10, 254, 45, 225, 218, 26, 62, 56, 226, 6, 43, 126, 45, 227, 210, 58, 254, 56, 228, 141, 75, 238, 44, 229, 149, 91, 206, 44, 230, 199, 106, 126, 57, 231, 12, 123, 190, 44, 232, 161, 139, 158, 44, 233, 212, 154, 254, 48, 234, 178, 170, 190, 58, 235, 176, 186, 126, 58, 236, 18, 203, 94, 49, 237, 177, 219, 254, 43, 238, 185, 235, 222, 43, 239, 175, 250, 238, 43, 240, 24, 11, 191, 49, 241, 171, 26, 127, 60, 242, 30, 43, 31, 47, 243, 170, 58, 255, 60, 244, 168, 74, 159, 43, 245, 205, 91, 111, 43, 246, 213, 107, 191, 61, 247, 36, 123, 95, 43, 248, 225, 139, 79, 190, 248, 227, 131, 143, 254, 201, 220, 175, 127, 62, 250, 239, 155, 175, 62, 252, 243, 203, 223, 62, 253, 247, 219, 143, 189, 251, 245, 123, 31, 191, 255, 253, 211, 222, 255, 4, 24, 64, 235, 13, 208, 128, 5, 148, 222, 1, 21, 152, 64, 231, 45, 208, 129, 13, 84, 222, 3, 37, 24, 65, 227, 77, 208, 130, 21, 20, 222, 5, 53, 152, 65, 223, 109, 208, 131, 29, 212, 221, 7, 69, 24, 66, 219, 141, 208, 132, 37, 148, 221, 9, 85, 152, 66, 215, 173, 208, 133, 45, 84, 93, 169, 102, 72, 67, 82, 5, 4, 0, 33, 254, 21, 77, 97, 100, 101, 32, 119, 105, 116, 104, 32, 83, 99, 114, 101, 101, 110, 84, 111, 71, 105, 102, 0, 59]) + +let testBmp = new Uint8Array([66, 77, 128, 142, 0, 0, 0, 0, 0, 0, 54, 4, 0, 0, 40, 0, 0, 0, 216, 1, 0, 0, 75, 0, 0, 0, 1, 0, 8, 0, 0, 0, 0, 0, 74, 138, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 2, 2, 2, 0, 3, 3, 3, 0, 4, 4, 4, 0, 5, 5, 5, 0, 6, 6, 6, 0, 7, 7, 7, 0, 8, 8, 8, 0, 9, 9, 9, 0, 10, 10, 10, 0, 11, 11, 11, 0, 12, 12, 12, 0, 13, 13, 13, 0, 14, 14, 14, 0, 15, 15, 15, 0, 16, 16, 16, 0, 17, 17, 17, 0, 18, 18, 18, 0, 19, 19, 19, 0, 20, 20, 20, 0, 21, 21, 21, 0, 22, 22, 22, 0, 23, 23, 23, 0, 24, 24, 24, 0, 25, 25, 25, 0, 26, 26, 26, 0, 27, 27, 27, 0, 28, 28, 28, 0, 29, 29, 29, 0, 30, 30, 30, 0, 31, 31, 31, 0, 32, 32, 32, 0, 33, 33, 33, 0, 34, 34, 34, 0, 35, 35, 35, 0, 36, 36, 36, 0, 37, 37, 37, 0, 38, 38, 38, 0, 39, 39, 39, 0, 40, 40, 40, 0, 41, 41, 41, 0, 42, 42, 42, 0, 43, 43, 43, 0, 44, 44, 44, 0, 45, 45, 45, 0, 46, 46, 46, 0, 47, 47, 47, 0, 48, 48, 48, 0, 49, 49, 49, 0, 50, 50, 50, 0, 51, 51, 51, 0, 52, 52, 52, 0, 53, 53, 53, 0, 54, 54, 54, 0, 55, 55, 55, 0, 56, 56, 56, 0, 57, 57, 57, 0, 58, 58, 58, 0, 59, 59, 59, 0, 60, 60, 60, 0, 61, 61, 61, 0, 62, 62, 62, 0, 63, 63, 63, 0, 64, 64, 64, 0, 65, 65, 65, 0, 66, 66, 66, 0, 67, 67, 67, 0, 68, 68, 68, 0, 69, 69, 69, 0, 70, 70, 70, 0, 71, 71, 71, 0, 72, 72, 72, 0, 73, 73, 73, 0, 74, 74, 74, 0, 75, 75, 75, 0, 76, 76, 76, 0, 77, 77, 77, 0, 78, 78, 78, 0, 79, 79, 79, 0, 80, 80, 80, 0, 81, 81, 81, 0, 82, 82, 82, 0, 83, 83, 83, 0, 84, 84, 84, 0, 85, 85, 85, 0, 86, 86, 86, 0, 87, 87, 87, 0, 88, 88, 88, 0, 89, 89, 89, 0, 90, 90, 90, 0, 91, 91, 91, 0, 92, 92, 92, 0, 93, 93, 93, 0, 94, 94, 94, 0, 95, 95, 95, 0, 96, 96, 96, 0, 97, 97, 97, 0, 98, 98, 98, 0, 99, 99, 99, 0, 100, 100, 100, 0, 101, 101, 101, 0, 102, 102, 102, 0, 103, 103, 103, 0, 104, 104, 104, 0, 105, 105, 105, 0, 106, 106, 106, 0, 107, 107, 107, 0, 108, 108, 108, 0, 109, 109, 109, 0, 110, 110, 110, 0, 111, 111, 111, 0, 112, 112, 112, 0, 113, 113, 113, 0, 114, 114, 114, 0, 115, 115, 115, 0, 116, 116, 116, 0, 117, 117, 117, 0, 118, 118, 118, 0, 119, 119, 119, 0, 120, 120, 120, 0, 121, 121, 121, 0, 122, 122, 122, 0, 123, 123, 123, 0, 124, 124, 124, 0, 125, 125, 125, 0, 126, 126, 126, 0, 127, 127, 127, 0, 128, 128, 128, 0, 129, 129, 129, 0, 130, 130, 130, 0, 131, 131, 131, 0, 132, 132, 132, 0, 133, 133, 133, 0, 134, 134, 134, 0, 135, 135, 135, 0, 136, 136, 136, 0, 137, 137, 137, 0, 138, 138, 138, 0, 139, 139, 139, 0, 140, 140, 140, 0, 141, 141, 141, 0, 142, 142, 142, 0, 143, 143, 143, 0, 144, 144, 144, 0, 145, 145, 145, 0, 146, 146, 146, 0, 147, 147, 147, 0, 148, 148, 148, 0, 149, 149, 149, 0, 150, 150, 150, 0, 151, 151, 151, 0, 152, 152, 152, 0, 153, 153, 153, 0, 154, 154, 154, 0, 155, 155, 155, 0, 156, 156, 156, 0, 157, 157, 157, 0, 158, 158, 158, 0, 159, 159, 159, 0, 160, 160, 160, 0, 161, 161, 161, 0, 162, 162, 162, 0, 163, 163, 163, 0, 164, 164, 164, 0, 165, 165, 165, 0, 166, 166, 166, 0, 167, 167, 167, 0, 168, 168, 168, 0, 169, 169, 169, 0, 170, 170, 170, 0, 171, 171, 171, 0, 172, 172, 172, 0, 173, 173, 173, 0, 174, 174, 174, 0, 175, 175, 175, 0, 176, 176, 176, 0, 177, 177, 177, 0, 178, 178, 178, 0, 179, 179, 179, 0, 180, 180, 180, 0, 181, 181, 181, 0, 182, 182, 182, 0, 183, 183, 183, 0, 184, 184, 184, 0, 185, 185, 185, 0, 186, 186, 186, 0, 187, 187, 187, 0, 188, 188, 188, 0, 189, 189, 189, 0, 190, 190, 190, 0, 191, 191, 191, 0, 192, 192, 192, 0, 193, 193, 193, 0, 194, 194, 194, 0, 195, 195, 195, 0, 196, 196, 196, 0, 197, 197, 197, 0, 198, 198, 198, 0, 199, 199, 199, 0, 200, 200, 200, 0, 201, 201, 201, 0, 202, 202, 202, 0, 203, 203, 203, 0, 204, 204, 204, 0, 205, 205, 205, 0, 206, 206, 206, 0, 207, 207, 207, 0, 208, 208, 208, 0, 209, 209, 209, 0, 210, 210, 210, 0, 211, 211, 211, 0, 212, 212, 212, 0, 213, 213, 213, 0, 214, 214, 214, 0, 215, 215, 215, 0, 216, 216, 216, 0, 217, 217, 217, 0, 218, 218, 218, 0, 219, 219, 219, 0, 220, 220, 220, 0, 221, 221, 221, 0, 222, 222, 222, 0, 223, 223, 223, 0, 224, 224, 224, 0, 225, 225, 225, 0, 226, 226, 226, 0, 227, 227, 227, 0, 228, 228, 228, 0, 229, 229, 229, 0, 230, 230, 230, 0, 231, 231, 231, 0, 232, 232, 232, 0, 233, 233, 233, 0, 234, 234, 234, 0, 235, 235, 235, 0, 236, 236, 236, 0, 237, 237, 237, 0, 238, 238, 238, 0, 239, 239, 239, 0, 240, 240, 240, 0, 241, 241, 241, 0, 242, 242, 242, 0, 243, 243, 243, 0, 244, 244, 244, 0, 245, 245, 245, 0, 246, 246, 246, 0, 247, 247, 247, 0, 248, 248, 248, 0, 249, 249, 249, 0, 250, 250, 250, 0, 251, 251, 251, 0, 252, 252, 252, 0, 253, 253, 253, 0, 254, 254, 254, 0, 255, 255, 255, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 253, 252, 252, 253, 252, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 254, 253, 254, 254, 253, 254, 254, 254, 254, 254, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 252, 250, 248, 247, 245, 244, 245, 245, 245, 245, 246, 245, 245, 246, 244, 247, 245, 244, 245, 245, 245, 245, 245, 246, 245, 245, 246, 246, 248, 248, 247, 247, 248, 249, 248, 250, 250, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 253, 252, 253, 253, 252, 253, 252, 253, 253, 253, 254, 253, 254, 254, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 252, 251, 249, 247, 245, 247, 247, 248, 249, 250, 251, 251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 251, 248, 244, 241, 237, 233, 232, 229, 229, 228, 227, 227, 229, 229, 227, 227, 229, 227, 229, 230, 226, 229, 230, 228, 229, 231, 230, 228, 231, 231, 232, 232, 234, 234, 235, 235, 234, 238, 239, 239, 240, 243, 240, 241, 243, 241, 242, 242, 244, 243, 245, 246, 245, 244, 246, 245, 246, 245, 245, 246, 247, 247, 247, 248, 249, 249, 250, 250, 249, 249, 250, 250, 250, 250, 251, 251, 252, 252, 253, 253, 252, 252, 252, 252, 252, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 254, 253, 254, 254, 253, 254, 254, 253, 254, 254, 253, 254, 254, 254, 254, 254, 254, 253, 254, 254, 253, 254, 254, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 250, 247, 242, 238, 235, 233, 232, 231, 233, 237, 239, 242, 245, 247, 249, 250, 251, 251, 250, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 246, 239, 232, 225, 216, 210, 206, 201, 198, 199, 199, 195, 198, 198, 197, 198, 199, 196, 197, 199, 198, 200, 200, 200, 199, 200, 200, 199, 201, 204, 202, 203, 208, 207, 209, 209, 209, 214, 214, 215, 218, 218, 219, 219, 220, 221, 221, 222, 224, 223, 225, 226, 226, 226, 228, 228, 229, 229, 232, 230, 232, 233, 234, 234, 235, 236, 236, 239, 237, 237, 240, 239, 240, 240, 241, 241, 241, 243, 243, 242, 244, 243, 243, 245, 244, 245, 245, 245, 245, 246, 246, 246, 246, 246, 245, 246, 246, 244, 245, 246, 245, 245, 246, 246, 248, 246, 246, 245, 246, 245, 244, 245, 245, 245, 245, 246, 246, 246, 246, 247, 246, 246, 247, 247, 246, 247, 248, 246, 247, 248, 247, 247, 248, 246, 246, 247, 247, 247, 248, 249, 249, 250, 251, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 248, 244, 237, 226, 217, 212, 206, 203, 205, 208, 211, 216, 222, 228, 231, 234, 238, 240, 243, 245, 247, 248, 249, 250, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 237, 226, 212, 198, 183, 172, 166, 160, 157, 156, 155, 154, 153, 156, 155, 153, 154, 153, 153, 156, 154, 156, 155, 154, 154, 156, 158, 158, 159, 161, 162, 164, 166, 166, 169, 171, 172, 173, 175, 178, 179, 181, 183, 185, 185, 188, 187, 188, 191, 190, 190, 194, 195, 195, 197, 199, 198, 200, 200, 203, 203, 206, 204, 208, 210, 209, 210, 211, 214, 214, 217, 216, 216, 217, 220, 220, 221, 221, 221, 222, 224, 224, 227, 225, 227, 227, 227, 228, 228, 228, 230, 228, 229, 228, 229, 228, 229, 229, 229, 227, 229, 227, 229, 230, 227, 229, 228, 229, 227, 229, 230, 229, 229, 229, 228, 228, 230, 230, 230, 232, 231, 230, 231, 230, 230, 231, 230, 231, 231, 231, 231, 232, 231, 230, 231, 231, 233, 235, 233, 235, 236, 237, 241, 239, 240, 243, 243, 243, 244, 243, 245, 247, 246, 247, 249, 249, 251, 252, 252, 252, 252, 253, 252, 253, 254, 254, 255, 255, 255, 255, 255, 255, 253, 249, 243, 232, 217, 202, 187, 176, 166, 163, 164, 168, 174, 180, 187, 195, 203, 209, 213, 218, 225, 229, 233, 235, 238, 244, 245, 246, 248, 249, 250, 251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 237, 224, 203, 181, 160, 139, 126, 116, 110, 104, 104, 103, 102, 102, 102, 102, 103, 103, 101, 101, 103, 102, 103, 101, 103, 103, 103, 104, 105, 106, 108, 109, 112, 113, 114, 116, 118, 121, 122, 126, 127, 128, 131, 134, 134, 136, 140, 140, 139, 142, 143, 145, 146, 150, 150, 153, 155, 156, 157, 160, 160, 161, 163, 164, 164, 167, 171, 172, 172, 176, 177, 179, 180, 180, 180, 184, 181, 184, 186, 188, 189, 189, 194, 192, 193, 196, 194, 196, 196, 197, 195, 199, 199, 198, 200, 200, 197, 199, 199, 198, 198, 201, 198, 198, 200, 198, 200, 200, 201, 198, 199, 201, 201, 199, 200, 199, 200, 200, 199, 200, 199, 201, 200, 201, 203, 202, 202, 203, 203, 201, 203, 202, 204, 204, 205, 204, 206, 205, 204, 207, 210, 212, 213, 216, 215, 218, 219, 223, 223, 225, 227, 228, 229, 232, 231, 234, 239, 239, 239, 243, 242, 244, 245, 246, 247, 248, 249, 250, 251, 253, 253, 254, 253, 249, 245, 233, 215, 193, 169, 146, 126, 116, 112, 113, 117, 123, 133, 139, 149, 159, 167, 174, 183, 193, 199, 206, 212, 217, 222, 224, 230, 234, 237, 239, 244, 246, 248, 249, 251, 251, 250, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 253, 254, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 226, 206, 178, 146, 116, 91, 77, 69, 61, 57, 56, 56, 54, 54, 55, 54, 56, 56, 55, 57, 57, 54, 54, 55, 54, 55, 56, 57, 57, 58, 61, 62, 62, 66, 66, 66, 70, 69, 72, 73, 75, 78, 77, 82, 82, 83, 86, 86, 89, 88, 91, 92, 95, 96, 97, 101, 102, 102, 105, 108, 109, 109, 110, 112, 113, 118, 119, 119, 123, 123, 127, 128, 130, 130, 131, 134, 136, 135, 138, 140, 141, 144, 145, 144, 148, 151, 149, 151, 153, 153, 154, 155, 157, 155, 155, 156, 156, 156, 158, 155, 155, 155, 154, 153, 156, 157, 154, 156, 155, 154, 156, 158, 155, 156, 156, 154, 154, 156, 158, 156, 155, 157, 158, 158, 159, 158, 158, 160, 158, 158, 162, 160, 160, 162, 161, 161, 163, 165, 165, 165, 170, 171, 172, 178, 182, 180, 184, 187, 190, 193, 195, 197, 199, 202, 203, 208, 212, 213, 216, 219, 221, 224, 229, 230, 231, 234, 237, 237, 241, 243, 244, 246, 247, 243, 234, 218, 195, 164, 130, 97, 75, 67, 63, 64, 67, 73, 80, 90, 97, 107, 117, 125, 136, 149, 153, 165, 174, 181, 188, 197, 203, 210, 213, 220, 225, 227, 233, 237, 239, 242, 244, 248, 248, 249, 250, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 251, 251, 250, 249, 248, 248, 248, 247, 246, 247, 246, 245, 245, 244, 245, 245, 245, 245, 246, 246, 246, 247, 246, 246, 245, 245, 244, 245, 245, 245, 245, 246, 246, 247, 246, 246, 245, 245, 246, 244, 246, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 248, 250, 251, 253, 254, 255, 255, 255, 255, 216, 189, 150, 111, 75, 49, 37, 32, 27, 25, 24, 24, 23, 23, 23, 22, 23, 23, 23, 24, 23, 23, 24, 24, 22, 23, 23, 25, 24, 25, 27, 27, 28, 30, 29, 30, 32, 32, 34, 34, 36, 36, 38, 40, 42, 41, 43, 44, 45, 46, 45, 47, 48, 51, 52, 54, 56, 56, 58, 60, 59, 60, 62, 64, 65, 65, 69, 71, 70, 74, 74, 77, 77, 80, 80, 82, 83, 82, 84, 87, 89, 90, 93, 94, 97, 97, 98, 99, 100, 100, 103, 102, 104, 102, 102, 103, 104, 105, 104, 104, 104, 104, 103, 103, 102, 103, 103, 101, 104, 103, 105, 105, 105, 104, 103, 104, 103, 104, 104, 104, 105, 106, 105, 106, 107, 108, 107, 106, 105, 105, 106, 108, 108, 108, 110, 110, 112, 113, 114, 116, 120, 119, 121, 125, 131, 131, 136, 137, 144, 144, 149, 152, 154, 160, 163, 164, 172, 176, 179, 183, 189, 191, 196, 201, 204, 207, 212, 215, 219, 226, 226, 230, 231, 227, 217, 199, 169, 133, 90, 56, 35, 28, 26, 27, 30, 34, 39, 44, 51, 59, 66, 76, 84, 94, 104, 115, 124, 133, 142, 152, 161, 169, 178, 185, 193, 201, 206, 213, 216, 222, 228, 233, 235, 238, 244, 244, 246, 248, 249, 250, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 253, 252, 252, 251, 249, 248, 247, 245, 242, 240, 239, 238, 235, 233, 233, 232, 230, 230, 230, 229, 229, 228, 228, 228, 229, 228, 229, 230, 227, 228, 229, 228, 228, 229, 229, 228, 229, 229, 227, 228, 230, 227, 228, 228, 228, 228, 228, 229, 227, 228, 229, 227, 229, 230, 228, 228, 230, 230, 232, 235, 238, 239, 243, 246, 249, 252, 254, 255, 255, 208, 173, 127, 81, 43, 22, 14, 13, 8, 7, 8, 8, 6, 6, 9, 8, 8, 8, 9, 6, 7, 8, 7, 9, 7, 6, 7, 8, 7, 9, 11, 10, 10, 11, 11, 10, 10, 10, 11, 12, 13, 13, 13, 14, 15, 15, 16, 17, 16, 17, 18, 18, 18, 20, 21, 21, 23, 24, 24, 26, 26, 26, 27, 28, 29, 30, 32, 32, 33, 34, 34, 36, 38, 37, 39, 39, 40, 40, 41, 44, 45, 45, 47, 48, 50, 50, 51, 52, 53, 55, 55, 55, 56, 57, 55, 57, 57, 57, 56, 56, 56, 57, 56, 56, 57, 57, 56, 57, 57, 56, 56, 57, 57, 57, 57, 57, 56, 57, 57, 57, 56, 57, 58, 59, 59, 58, 58, 58, 58, 58, 59, 60, 60, 60, 60, 61, 63, 62, 64, 65, 67, 69, 71, 74, 78, 80, 83, 86, 90, 93, 95, 99, 104, 108, 110, 113, 121, 125, 129, 135, 140, 145, 150, 157, 160, 167, 173, 176, 183, 188, 194, 199, 203, 201, 194, 173, 144, 104, 63, 28, 10, 7, 9, 9, 10, 13, 15, 17, 22, 26, 30, 36, 43, 48, 58, 64, 74, 81, 90, 100, 109, 118, 129, 138, 145, 155, 164, 172, 182, 190, 198, 206, 209, 215, 222, 225, 230, 235, 237, 239, 243, 245, 248, 250, 252, 251, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 252, 251, 250, 249, 248, 246, 246, 241, 239, 239, 234, 229, 229, 224, 220, 216, 213, 207, 206, 206, 203, 199, 201, 201, 199, 200, 200, 200, 197, 199, 197, 199, 199, 199, 199, 198, 199, 197, 199, 199, 198, 198, 199, 198, 199, 199, 198, 199, 199, 200, 198, 201, 200, 199, 198, 199, 197, 198, 200, 198, 200, 201, 204, 206, 211, 215, 219, 226, 232, 238, 245, 250, 253, 254, 203, 165, 115, 66, 26, 6, 4, 5, 3, 3, 3, 2, 1, 3, 3, 2, 2, 4, 1, 2, 4, 1, 2, 3, 2, 2, 3, 3, 2, 2, 5, 3, 3, 4, 3, 2, 4, 4, 2, 3, 4, 3, 3, 5, 4, 4, 5, 5, 4, 5, 5, 5, 7, 7, 6, 7, 9, 9, 8, 9, 9, 8, 9, 9, 9, 10, 11, 10, 12, 11, 12, 12, 15, 14, 13, 15, 14, 15, 14, 17, 16, 18, 19, 19, 20, 22, 20, 22, 24, 21, 23, 23, 23, 23, 24, 24, 24, 24, 25, 24, 25, 24, 24, 23, 24, 24, 23, 25, 24, 24, 25, 24, 24, 22, 25, 24, 23, 24, 24, 24, 25, 25, 25, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 29, 29, 28, 29, 30, 31, 32, 36, 37, 38, 39, 43, 45, 48, 48, 52, 55, 58, 62, 65, 69, 73, 77, 83, 88, 93, 99, 104, 108, 114, 123, 129, 133, 144, 150, 155, 161, 162, 157, 144, 120, 85, 45, 17, 3, 2, 3, 3, 3, 5, 5, 4, 7, 8, 10, 13, 17, 20, 24, 29, 33, 41, 45, 53, 60, 70, 78, 87, 94, 105, 112, 123, 134, 145, 153, 162, 172, 179, 186, 195, 201, 208, 215, 219, 224, 227, 234, 237, 240, 243, 244, 247, 248, 249, 250, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 252, 249, 248, 246, 245, 242, 240, 238, 235, 230, 229, 228, 223, 217, 214, 210, 202, 197, 194, 185, 178, 176, 169, 166, 163, 161, 157, 156, 157, 156, 157, 156, 155, 155, 157, 155, 154, 155, 156, 154, 156, 157, 155, 157, 156, 156, 155, 157, 153, 155, 155, 156, 154, 155, 156, 154, 155, 156, 155, 154, 156, 154, 156, 156, 156, 155, 157, 161, 164, 170, 177, 187, 196, 209, 219, 230, 239, 248, 251, 202, 164, 116, 65, 26, 8, 4, 6, 3, 1, 3, 3, 1, 2, 3, 1, 3, 4, 2, 2, 4, 2, 2, 3, 3, 1, 2, 3, 1, 3, 4, 2, 1, 3, 2, 2, 3, 2, 1, 2, 2, 1, 2, 3, 2, 1, 3, 2, 1, 3, 2, 0, 3, 3, 1, 2, 2, 2, 2, 4, 3, 2, 3, 3, 3, 3, 4, 2, 4, 5, 3, 4, 3, 4, 4, 5, 4, 3, 4, 6, 4, 5, 6, 6, 5, 6, 7, 6, 8, 7, 6, 9, 8, 7, 8, 8, 7, 8, 8, 8, 7, 9, 7, 7, 9, 7, 7, 6, 8, 8, 8, 8, 9, 7, 8, 7, 7, 8, 7, 7, 8, 9, 7, 7, 9, 8, 8, 8, 8, 7, 8, 8, 9, 10, 9, 9, 9, 10, 11, 10, 11, 11, 11, 12, 14, 14, 15, 16, 17, 19, 20, 22, 23, 25, 27, 28, 32, 35, 37, 41, 44, 47, 50, 56, 61, 65, 71, 76, 82, 90, 96, 104, 110, 114, 112, 109, 91, 68, 40, 18, 6, 4, 4, 2, 2, 3, 2, 0, 3, 3, 2, 4, 5, 6, 7, 9, 12, 14, 18, 23, 25, 33, 39, 43, 51, 58, 65, 73, 83, 92, 101, 112, 123, 131, 140, 148, 159, 168, 176, 183, 190, 199, 207, 212, 219, 225, 228, 231, 235, 239, 242, 244, 246, 248, 249, 250, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 251, 249, 247, 244, 241, 238, 236, 229, 226, 224, 217, 213, 211, 204, 199, 194, 188, 181, 178, 170, 160, 153, 146, 137, 130, 125, 119, 114, 112, 110, 106, 105, 106, 104, 105, 104, 104, 104, 105, 102, 103, 103, 103, 103, 105, 104, 104, 105, 105, 105, 103, 104, 102, 103, 103, 103, 102, 103, 104, 103, 105, 105, 105, 104, 103, 102, 104, 104, 104, 105, 106, 108, 112, 118, 127, 142, 155, 172, 192, 210, 224, 237, 246, 207, 173, 128, 81, 42, 22, 15, 13, 10, 8, 9, 8, 7, 7, 8, 7, 7, 9, 7, 7, 9, 8, 7, 8, 7, 6, 8, 7, 8, 7, 7, 6, 7, 8, 6, 5, 5, 4, 3, 5, 4, 3, 3, 5, 2, 4, 5, 3, 2, 4, 3, 1, 2, 3, 1, 3, 2, 3, 2, 3, 3, 1, 3, 2, 1, 2, 2, 1, 2, 3, 2, 1, 3, 1, 0, 2, 2, 0, 1, 3, 1, 3, 3, 2, 2, 3, 3, 2, 4, 3, 1, 3, 3, 2, 2, 5, 2, 2, 4, 2, 2, 3, 3, 1, 2, 3, 1, 3, 3, 2, 2, 4, 2, 1, 3, 2, 2, 3, 3, 1, 3, 4, 2, 2, 3, 3, 3, 3, 2, 1, 2, 4, 2, 4, 4, 2, 3, 4, 3, 3, 4, 3, 2, 4, 5, 3, 5, 6, 5, 5, 7, 7, 7, 9, 10, 10, 11, 12, 13, 15, 17, 19, 20, 24, 26, 28, 33, 37, 40, 47, 51, 58, 62, 67, 68, 70, 63, 52, 37, 23, 13, 9, 7, 5, 4, 4, 2, 2, 2, 2, 0, 2, 2, 1, 3, 4, 3, 3, 6, 7, 9, 11, 13, 16, 22, 25, 29, 34, 41, 47, 54, 64, 72, 80, 89, 97, 106, 117, 128, 136, 144, 154, 165, 171, 181, 190, 197, 203, 210, 217, 221, 226, 232, 234, 237, 240, 243, 245, 248, 249, 252, 251, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 252, 252, 250, 248, 246, 243, 240, 237, 233, 227, 223, 217, 210, 203, 198, 190, 180, 174, 170, 162, 155, 148, 142, 134, 126, 117, 111, 100, 93, 85, 78, 75, 70, 64, 61, 60, 58, 58, 57, 56, 57, 57, 57, 57, 57, 56, 56, 55, 56, 55, 55, 56, 56, 57, 56, 56, 57, 55, 56, 56, 54, 57, 55, 56, 55, 56, 58, 55, 56, 57, 57, 57, 56, 55, 57, 57, 58, 59, 62, 68, 76, 90, 106, 127, 151, 178, 202, 222, 237, 217, 188, 151, 112, 76, 50, 38, 31, 27, 26, 25, 26, 23, 23, 24, 24, 25, 25, 25, 25, 25, 24, 25, 26, 24, 23, 23, 22, 24, 21, 21, 21, 22, 20, 19, 18, 18, 15, 16, 16, 14, 14, 13, 14, 13, 12, 12, 11, 10, 11, 10, 10, 9, 10, 9, 9, 9, 8, 9, 8, 8, 7, 7, 7, 4, 6, 6, 5, 5, 6, 4, 4, 5, 3, 2, 5, 2, 2, 4, 3, 2, 3, 4, 3, 4, 4, 3, 2, 4, 3, 1, 3, 4, 2, 3, 3, 2, 3, 4, 3, 1, 3, 3, 1, 2, 3, 1, 3, 2, 2, 1, 4, 2, 1, 3, 2, 2, 4, 3, 2, 3, 3, 3, 2, 5, 2, 2, 4, 3, 1, 3, 3, 0, 3, 3, 3, 2, 4, 2, 1, 3, 2, 1, 2, 1, 1, 1, 2, 2, 1, 3, 2, 2, 3, 3, 2, 3, 4, 2, 4, 6, 5, 7, 8, 9, 9, 12, 14, 14, 17, 21, 23, 28, 32, 34, 36, 36, 33, 28, 22, 17, 13, 11, 9, 8, 7, 6, 4, 5, 3, 2, 3, 3, 1, 1, 1, 1, 1, 2, 2, 3, 4, 4, 4, 7, 9, 9, 13, 16, 20, 24, 28, 33, 38, 46, 53, 60, 68, 76, 84, 94, 103, 114, 122, 131, 142, 154, 163, 171, 178, 187, 194, 199, 207, 213, 218, 224, 226, 232, 237, 241, 242, 244, 247, 248, 249, 250, 251, 251, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 250, 247, 244, 241, 238, 233, 230, 224, 219, 212, 207, 198, 187, 183, 173, 162, 152, 143, 133, 124, 116, 110, 103, 96, 91, 82, 77, 68, 61, 54, 48, 42, 38, 35, 30, 29, 26, 25, 24, 25, 25, 24, 23, 24, 25, 23, 24, 24, 23, 23, 24, 23, 23, 25, 24, 24, 25, 24, 23, 24, 23, 23, 24, 25, 23, 24, 23, 24, 23, 24, 24, 23, 23, 23, 24, 23, 23, 24, 23, 24, 27, 30, 37, 47, 60, 79, 108, 140, 171, 201, 224, 227, 207, 179, 148, 116, 93, 78, 68, 62, 59, 58, 56, 56, 57, 57, 58, 59, 58, 59, 58, 57, 56, 58, 57, 57, 56, 55, 54, 55, 55, 53, 52, 51, 50, 47, 46, 45, 43, 43, 41, 39, 39, 39, 37, 36, 35, 35, 33, 33, 32, 30, 29, 29, 28, 26, 27, 25, 23, 23, 23, 23, 21, 19, 19, 19, 19, 18, 17, 18, 17, 16, 15, 15, 14, 14, 14, 13, 11, 12, 11, 10, 11, 10, 11, 10, 11, 9, 9, 8, 7, 6, 8, 8, 8, 9, 9, 8, 7, 9, 8, 8, 9, 8, 7, 7, 8, 7, 8, 8, 8, 7, 10, 8, 7, 9, 7, 7, 8, 9, 7, 9, 9, 7, 8, 8, 7, 7, 8, 7, 6, 7, 7, 6, 7, 8, 6, 7, 7, 5, 6, 6, 5, 3, 4, 5, 3, 3, 4, 3, 3, 4, 3, 2, 3, 2, 2, 2, 3, 1, 2, 3, 3, 2, 4, 3, 3, 5, 4, 3, 5, 6, 8, 9, 12, 13, 15, 16, 16, 15, 15, 13, 13, 11, 11, 10, 10, 9, 9, 8, 7, 6, 5, 5, 4, 4, 3, 2, 2, 3, 1, 1, 2, 2, 1, 2, 3, 3, 3, 5, 7, 8, 11, 13, 14, 18, 22, 25, 30, 37, 43, 51, 55, 64, 73, 81, 91, 100, 110, 120, 129, 138, 148, 157, 164, 175, 182, 188, 197, 205, 210, 216, 221, 227, 231, 233, 239, 240, 244, 246, 247, 249, 249, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 253, 254, 253, 253, 253, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 247, 245, 242, 238, 235, 225, 221, 218, 208, 200, 192, 183, 175, 165, 156, 144, 131, 124, 109, 100, 89, 81, 73, 67, 61, 54, 50, 46, 41, 37, 32, 28, 23, 18, 16, 13, 12, 9, 8, 9, 9, 8, 7, 9, 7, 7, 9, 8, 8, 8, 7, 6, 7, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 7, 6, 8, 8, 8, 7, 7, 7, 8, 9, 9, 7, 9, 8, 7, 8, 8, 7, 8, 9, 9, 9, 14, 18, 26, 41, 67, 100, 138, 177, 207, 237, 224, 204, 183, 159, 142, 127, 118, 112, 108, 105, 103, 104, 104, 106, 106, 107, 105, 105, 106, 105, 105, 105, 105, 103, 103, 102, 101, 103, 100, 99, 98, 97, 94, 93, 92, 89, 87, 87, 85, 82, 84, 80, 79, 78, 77, 74, 72, 72, 68, 67, 67, 64, 63, 62, 62, 59, 58, 56, 56, 54, 53, 49, 48, 49, 47, 46, 45, 44, 43, 42, 41, 39, 38, 36, 37, 35, 33, 32, 32, 31, 32, 30, 28, 29, 29, 27, 26, 26, 24, 24, 23, 23, 24, 25, 24, 24, 25, 26, 24, 22, 24, 24, 23, 23, 24, 23, 25, 23, 24, 24, 24, 24, 23, 24, 23, 22, 24, 24, 23, 23, 23, 23, 24, 23, 23, 23, 23, 22, 22, 22, 23, 22, 22, 23, 21, 21, 21, 20, 19, 20, 16, 14, 15, 13, 12, 11, 11, 9, 8, 8, 6, 6, 7, 5, 5, 5, 4, 4, 4, 3, 3, 3, 4, 2, 3, 3, 3, 1, 3, 2, 2, 3, 4, 3, 4, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, 7, 6, 5, 6, 5, 4, 3, 4, 2, 1, 2, 1, 0, 2, 2, 1, 3, 4, 4, 4, 7, 7, 9, 11, 14, 15, 21, 24, 28, 34, 39, 47, 54, 60, 69, 79, 87, 96, 106, 115, 126, 134, 142, 153, 160, 169, 181, 189, 196, 202, 208, 215, 222, 225, 230, 233, 237, 238, 242, 245, 247, 249, 251, 251, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 254, 254, 253, 252, 252, 251, 251, 250, 250, 249, 249, 248, 248, 248, 248, 246, 248, 246, 245, 247, 246, 245, 246, 246, 245, 246, 246, 246, 246, 246, 245, 245, 245, 245, 246, 245, 246, 245, 249, 248, 248, 248, 249, 249, 250, 250, 251, 251, 251, 252, 252, 253, 253, 253, 253, 253, 253, 253, 254, 253, 254, 254, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 248, 244, 241, 235, 230, 221, 216, 209, 196, 190, 180, 167, 158, 145, 136, 124, 114, 102, 93, 83, 72, 62, 54, 46, 38, 34, 29, 26, 23, 21, 18, 16, 13, 12, 9, 8, 7, 4, 3, 2, 3, 2, 3, 3, 2, 2, 3, 2, 2, 3, 2, 2, 4, 3, 1, 3, 4, 2, 2, 4, 2, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 3, 4, 2, 2, 4, 2, 2, 3, 3, 1, 3, 3, 2, 3, 3, 3, 3, 4, 6, 9, 18, 37, 67, 107, 150, 190, 245, 237, 224, 212, 196, 184, 174, 167, 162, 157, 158, 155, 156, 155, 159, 158, 157, 156, 156, 157, 159, 158, 157, 157, 156, 153, 155, 153, 152, 153, 154, 151, 150, 147, 145, 143, 142, 140, 138, 136, 137, 135, 133, 133, 131, 128, 127, 124, 122, 121, 118, 117, 113, 113, 112, 108, 107, 107, 105, 102, 101, 99, 97, 95, 94, 92, 90, 90, 89, 87, 85, 84, 83, 82, 81, 76, 76, 75, 72, 71, 71, 67, 66, 67, 65, 62, 63, 62, 59, 58, 57, 56, 57, 57, 58, 56, 57, 58, 58, 57, 57, 56, 57, 57, 56, 56, 57, 57, 57, 58, 58, 57, 57, 58, 57, 56, 55, 56, 56, 56, 57, 55, 56, 56, 55, 55, 55, 53, 54, 54, 54, 54, 53, 52, 51, 50, 52, 50, 48, 44, 43, 41, 37, 35, 33, 29, 27, 23, 21, 18, 17, 15, 14, 13, 11, 12, 11, 11, 11, 12, 10, 9, 9, 8, 6, 5, 6, 4, 2, 2, 2, 2, 2, 3, 1, 2, 3, 2, 2, 3, 3, 2, 3, 4, 3, 5, 5, 5, 6, 7, 7, 8, 8, 8, 9, 8, 8, 8, 8, 7, 7, 6, 5, 5, 4, 4, 2, 3, 2, 2, 2, 2, 2, 1, 3, 3, 2, 4, 4, 5, 7, 8, 8, 13, 15, 16, 21, 27, 31, 36, 43, 50, 58, 65, 73, 83, 90, 100, 110, 120, 128, 138, 147, 159, 168, 176, 183, 191, 198, 202, 210, 214, 220, 224, 226, 232, 236, 239, 243, 244, 246, 247, 247, 249, 248, 249, 252, 251, 252, 253, 252, 253, 253, 253, 253, 252, 253, 252, 252, 253, 252, 252, 253, 252, 253, 253, 253, 253, 252, 252, 251, 251, 250, 250, 250, 249, 248, 248, 248, 247, 246, 245, 242, 243, 241, 239, 239, 240, 238, 234, 236, 233, 233, 230, 233, 229, 229, 229, 231, 229, 229, 229, 228, 228, 231, 228, 228, 229, 227, 229, 230, 229, 227, 231, 232, 230, 232, 234, 233, 234, 236, 236, 237, 239, 240, 240, 242, 243, 242, 244, 246, 246, 246, 247, 245, 246, 246, 246, 247, 248, 248, 248, 249, 250, 251, 252, 252, 252, 252, 252, 251, 250, 247, 245, 240, 236, 230, 219, 215, 204, 190, 179, 168, 153, 142, 129, 117, 105, 94, 84, 74, 66, 57, 49, 41, 33, 28, 23, 17, 14, 12, 10, 10, 7, 7, 6, 5, 4, 4, 3, 3, 3, 2, 1, 2, 2, 1, 3, 3, 0, 2, 3, 2, 2, 4, 3, 2, 3, 3, 1, 2, 4, 1, 4, 3, 1, 2, 4, 2, 2, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 3, 2, 1, 2, 3, 2, 2, 4, 2, 2, 2, 1, 2, 7, 19, 42, 80, 127, 174, 249, 246, 239, 233, 224, 216, 210, 205, 203, 202, 199, 199, 199, 199, 199, 200, 201, 201, 200, 200, 201, 199, 201, 200, 201, 199, 201, 200, 199, 197, 197, 195, 194, 192, 191, 189, 191, 189, 185, 186, 187, 183, 182, 182, 181, 178, 177, 175, 172, 171, 169, 167, 167, 164, 163, 160, 159, 157, 157, 156, 152, 151, 151, 146, 147, 144, 144, 141, 142, 139, 138, 137, 136, 132, 131, 131, 128, 125, 123, 123, 120, 120, 117, 115, 115, 114, 111, 109, 108, 107, 106, 105, 106, 105, 105, 104, 107, 106, 106, 108, 105, 105, 104, 104, 104, 105, 106, 106, 105, 107, 105, 106, 105, 104, 104, 104, 104, 105, 103, 106, 105, 104, 105, 105, 103, 102, 103, 100, 100, 100, 99, 99, 98, 96, 96, 95, 92, 90, 83, 80, 74, 72, 66, 59, 52, 48, 43, 37, 33, 28, 25, 22, 20, 19, 19, 20, 22, 25, 27, 28, 29, 29, 26, 24, 21, 19, 16, 13, 9, 10, 9, 7, 7, 6, 3, 5, 3, 2, 3, 3, 2, 0, 2, 2, 1, 2, 2, 2, 2, 4, 4, 4, 5, 5, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 6, 7, 6, 4, 4, 5, 3, 4, 2, 2, 1, 3, 2, 1, 3, 3, 2, 2, 5, 6, 7, 8, 10, 13, 17, 21, 24, 28, 32, 39, 46, 53, 60, 67, 76, 86, 94, 103, 112, 123, 130, 143, 150, 158, 167, 174, 184, 189, 195, 200, 208, 212, 221, 223, 226, 229, 232, 233, 236, 237, 238, 239, 241, 243, 243, 245, 247, 246, 246, 246, 245, 245, 245, 244, 246, 245, 246, 245, 246, 247, 245, 244, 244, 243, 243, 241, 240, 239, 239, 237, 236, 234, 232, 229, 229, 227, 224, 222, 221, 220, 216, 214, 213, 209, 208, 206, 204, 202, 203, 204, 201, 201, 200, 199, 202, 201, 198, 200, 201, 199, 197, 198, 200, 199, 199, 200, 201, 199, 200, 201, 202, 205, 207, 207, 208, 210, 216, 217, 219, 219, 222, 224, 223, 228, 227, 227, 231, 231, 230, 229, 232, 232, 230, 234, 234, 235, 238, 239, 238, 239, 242, 242, 242, 243, 240, 236, 235, 228, 219, 210, 201, 189, 174, 162, 148, 132, 117, 104, 92, 79, 67, 58, 50, 42, 35, 30, 24, 19, 17, 14, 9, 7, 6, 4, 3, 4, 3, 2, 3, 3, 2, 1, 3, 2, 2, 4, 4, 2, 4, 6, 6, 7, 8, 7, 7, 8, 7, 8, 9, 8, 7, 9, 8, 6, 8, 9, 7, 8, 9, 7, 7, 8, 9, 7, 9, 8, 7, 8, 9, 7, 7, 9, 8, 9, 9, 8, 8, 9, 8, 6, 9, 8, 7, 7, 8, 6, 5, 5, 2, 2, 4, 9, 26, 62, 111, 160, 253, 251, 249, 245, 241, 237, 234, 232, 230, 231, 229, 229, 232, 229, 231, 230, 230, 229, 230, 230, 228, 230, 229, 229, 230, 229, 227, 229, 227, 228, 226, 228, 224, 224, 224, 225, 223, 222, 221, 221, 221, 219, 219, 218, 216, 216, 216, 214, 211, 211, 208, 210, 206, 207, 205, 203, 203, 201, 201, 201, 197, 195, 196, 194, 193, 192, 191, 187, 188, 187, 185, 186, 185, 183, 180, 180, 178, 176, 176, 173, 172, 170, 170, 165, 166, 165, 162, 161, 161, 158, 158, 159, 159, 157, 158, 158, 158, 157, 158, 158, 157, 158, 157, 155, 157, 159, 157, 158, 157, 158, 158, 158, 158, 157, 157, 156, 156, 157, 157, 157, 157, 157, 155, 157, 155, 155, 150, 151, 150, 148, 147, 146, 141, 139, 136, 131, 126, 122, 113, 105, 97, 90, 81, 71, 63, 55, 47, 39, 32, 27, 23, 20, 19, 18, 19, 23, 30, 39, 50, 57, 59, 62, 58, 56, 51, 48, 42, 36, 33, 30, 25, 22, 19, 15, 13, 13, 10, 7, 7, 6, 5, 3, 3, 3, 1, 2, 2, 1, 1, 2, 1, 2, 3, 2, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 8, 9, 9, 10, 9, 9, 9, 8, 7, 7, 7, 5, 5, 3, 3, 1, 2, 2, 1, 2, 2, 1, 1, 3, 2, 3, 5, 6, 7, 10, 11, 14, 17, 20, 24, 30, 35, 39, 46, 54, 61, 68, 78, 86, 93, 102, 111, 117, 128, 137, 145, 152, 158, 168, 172, 181, 186, 191, 197, 200, 205, 209, 211, 214, 215, 220, 220, 223, 225, 223, 224, 226, 226, 226, 227, 228, 228, 227, 227, 227, 227, 229, 226, 226, 225, 223, 222, 223, 220, 216, 214, 212, 209, 207, 207, 201, 196, 197, 193, 190, 188, 185, 179, 175, 174, 170, 166, 165, 163, 162, 159, 162, 157, 158, 159, 157, 156, 157, 156, 155, 158, 154, 154, 155, 158, 156, 156, 159, 156, 157, 160, 159, 159, 164, 165, 165, 170, 173, 176, 179, 183, 184, 188, 190, 191, 192, 195, 196, 196, 198, 201, 201, 201, 204, 203, 205, 208, 208, 213, 216, 215, 218, 221, 221, 221, 220, 217, 210, 206, 199, 185, 172, 159, 143, 126, 112, 96, 82, 70, 57, 47, 38, 32, 25, 21, 17, 13, 11, 9, 5, 4, 5, 3, 2, 3, 2, 1, 3, 3, 0, 3, 4, 3, 4, 6, 7, 7, 11, 13, 13, 15, 18, 18, 20, 22, 23, 24, 24, 23, 25, 23, 23, 24, 24, 24, 23, 24, 23, 24, 25, 25, 23, 24, 24, 24, 24, 23, 23, 23, 23, 24, 23, 24, 25, 23, 25, 24, 24, 24, 23, 24, 23, 24, 24, 22, 22, 21, 18, 14, 10, 6, 4, 3, 5, 19, 54, 104, 154, 255, 253, 253, 251, 249, 248, 247, 246, 244, 245, 245, 246, 246, 246, 246, 245, 245, 245, 246, 245, 246, 245, 246, 246, 246, 246, 245, 244, 245, 244, 244, 243, 243, 243, 242, 243, 242, 243, 242, 242, 241, 241, 239, 240, 239, 237, 237, 237, 236, 235, 233, 234, 233, 233, 233, 230, 230, 230, 228, 229, 228, 226, 227, 226, 226, 223, 224, 221, 222, 221, 220, 218, 220, 219, 218, 216, 216, 216, 214, 213, 210, 211, 210, 208, 207, 205, 204, 203, 205, 201, 201, 203, 201, 201, 200, 203, 201, 203, 201, 202, 200, 200, 201, 201, 200, 202, 202, 201, 202, 201, 202, 201, 201, 200, 201, 201, 200, 200, 200, 199, 199, 199, 198, 196, 194, 192, 189, 188, 184, 180, 177, 172, 165, 159, 155, 142, 136, 125, 114, 103, 91, 83, 70, 60, 52, 43, 33, 27, 21, 18, 14, 11, 11, 10, 11, 15, 27, 47, 69, 88, 101, 106, 107, 103, 99, 93, 84, 78, 72, 65, 59, 53, 48, 42, 37, 33, 28, 26, 22, 19, 15, 12, 12, 8, 7, 7, 5, 3, 4, 4, 2, 2, 2, 1, 1, 2, 2, 1, 3, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12, 12, 12, 11, 11, 9, 9, 7, 6, 5, 4, 2, 4, 3, 2, 1, 2, 1, 1, 2, 1, 1, 2, 3, 4, 5, 5, 7, 8, 11, 13, 17, 21, 24, 29, 33, 39, 45, 52, 57, 63, 69, 78, 85, 92, 100, 107, 114, 124, 133, 135, 144, 152, 155, 156, 165, 169, 173, 176, 179, 182, 188, 188, 189, 191, 195, 193, 194, 195, 195, 195, 196, 193, 195, 197, 195, 193, 192, 191, 188, 187, 187, 179, 178, 176, 171, 167, 164, 158, 154, 152, 148, 143, 139, 136, 130, 126, 121, 118, 115, 112, 112, 108, 110, 108, 107, 107, 105, 105, 104, 103, 104, 102, 102, 103, 102, 104, 103, 103, 105, 104, 105, 106, 105, 107, 108, 110, 112, 115, 119, 122, 125, 130, 135, 135, 140, 143, 145, 146, 148, 152, 153, 155, 158, 156, 158, 161, 161, 164, 166, 169, 172, 176, 180, 182, 185, 186, 185, 184, 181, 173, 162, 153, 138, 124, 108, 93, 79, 66, 51, 41, 31, 25, 20, 15, 11, 7, 7, 5, 2, 3, 4, 2, 2, 3, 2, 3, 4, 4, 5, 4, 7, 8, 8, 11, 11, 14, 17, 20, 24, 28, 32, 37, 41, 44, 47, 51, 52, 53, 55, 55, 58, 57, 57, 56, 56, 56, 56, 55, 55, 56, 56, 57, 56, 57, 56, 56, 56, 56, 57, 56, 56, 55, 56, 56, 56, 56, 58, 57, 56, 57, 56, 55, 57, 56, 55, 54, 54, 52, 47, 41, 32, 24, 16, 9, 5, 6, 23, 59, 109, 160, 255, 255, 255, 254, 253, 253, 253, 253, 253, 254, 253, 253, 253, 254, 253, 253, 254, 253, 253, 254, 253, 253, 254, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 251, 252, 251, 250, 250, 250, 249, 249, 249, 248, 248, 248, 248, 247, 248, 247, 247, 245, 245, 244, 244, 244, 245, 243, 244, 244, 243, 243, 240, 241, 240, 239, 239, 239, 239, 239, 238, 238, 237, 238, 236, 234, 235, 234, 233, 231, 230, 232, 232, 232, 231, 230, 230, 231, 230, 231, 232, 230, 231, 230, 232, 230, 230, 231, 230, 231, 232, 229, 232, 232, 230, 231, 231, 230, 229, 229, 230, 227, 227, 225, 223, 223, 217, 216, 214, 209, 205, 198, 193, 183, 175, 166, 157, 148, 138, 126, 113, 101, 88, 77, 65, 56, 44, 36, 28, 22, 17, 13, 9, 8, 5, 4, 5, 5, 4, 7, 22, 50, 85, 117, 137, 151, 155, 155, 149, 143, 137, 131, 123, 114, 107, 100, 91, 86, 78, 71, 65, 59, 53, 47, 41, 37, 32, 26, 23, 19, 15, 14, 12, 10, 7, 7, 6, 3, 4, 3, 2, 1, 2, 1, 1, 1, 3, 1, 2, 4, 4, 5, 6, 9, 9, 10, 12, 13, 14, 14, 14, 13, 12, 11, 9, 8, 7, 6, 5, 4, 4, 3, 1, 3, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 4, 3, 4, 6, 6, 8, 10, 13, 15, 18, 20, 24, 28, 33, 37, 41, 47, 53, 58, 64, 71, 76, 83, 89, 93, 101, 105, 111, 114, 119, 124, 125, 131, 135, 135, 140, 142, 145, 146, 147, 147, 147, 148, 147, 149, 149, 147, 146, 147, 146, 142, 140, 137, 133, 129, 126, 118, 115, 110, 106, 101, 97, 95, 90, 86, 83, 77, 75, 73, 67, 65, 63, 62, 60, 60, 59, 57, 59, 57, 57, 57, 56, 55, 56, 54, 56, 55, 56, 57, 56, 57, 58, 57, 58, 57, 58, 59, 61, 61, 65, 67, 69, 74, 77, 81, 84, 88, 89, 92, 94, 97, 97, 99, 103, 103, 104, 107, 109, 110, 113, 115, 118, 121, 125, 130, 133, 138, 140, 138, 137, 131, 122, 113, 101, 90, 75, 61, 51, 39, 29, 22, 16, 13, 8, 5, 5, 4, 1, 3, 3, 1, 2, 3, 3, 4, 5, 5, 7, 9, 12, 15, 17, 21, 21, 24, 30, 33, 37, 43, 48, 56, 62, 70, 76, 83, 86, 92, 95, 99, 102, 103, 103, 104, 104, 105, 105, 105, 104, 104, 104, 103, 102, 105, 104, 104, 106, 105, 103, 104, 103, 103, 104, 104, 103, 102, 105, 104, 104, 104, 104, 106, 104, 104, 105, 104, 104, 103, 102, 101, 95, 88, 79, 66, 51, 37, 26, 20, 24, 43, 80, 126, 171, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 254, 253, 253, 254, 254, 253, 254, 254, 253, 253, 253, 252, 252, 252, 252, 252, 253, 253, 252, 253, 252, 251, 251, 251, 250, 250, 250, 250, 249, 250, 250, 249, 249, 247, 247, 247, 247, 246, 247, 246, 246, 246, 246, 247, 248, 246, 246, 246, 246, 245, 245, 247, 245, 246, 246, 246, 247, 247, 247, 247, 246, 245, 245, 244, 243, 243, 242, 241, 239, 237, 235, 232, 227, 224, 219, 213, 205, 198, 189, 180, 168, 158, 148, 134, 123, 109, 97, 88, 73, 63, 52, 43, 34, 27, 21, 16, 12, 8, 6, 5, 2, 3, 3, 1, 3, 4, 3, 5, 23, 58, 100, 139, 170, 187, 193, 196, 195, 192, 186, 178, 173, 168, 159, 151, 144, 137, 130, 122, 115, 108, 99, 91, 82, 76, 67, 61, 54, 48, 43, 38, 33, 28, 24, 21, 16, 12, 10, 8, 8, 6, 5, 4, 1, 3, 3, 0, 1, 2, 1, 1, 4, 3, 4, 6, 8, 9, 10, 11, 12, 13, 13, 12, 11, 11, 10, 9, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 9, 11, 13, 15, 18, 20, 24, 27, 30, 34, 38, 41, 46, 50, 53, 56, 61, 65, 69, 71, 75, 77, 81, 84, 86, 89, 88, 91, 93, 92, 92, 92, 93, 93, 94, 91, 90, 87, 86, 82, 78, 77, 72, 68, 65, 61, 59, 55, 53, 48, 45, 43, 40, 36, 35, 33, 30, 28, 28, 26, 26, 26, 27, 24, 25, 25, 24, 24, 24, 24, 24, 24, 23, 23, 24, 24, 23, 24, 25, 24, 25, 26, 26, 25, 27, 27, 28, 30, 33, 34, 37, 40, 42, 44, 47, 48, 49, 49, 52, 54, 54, 56, 58, 59, 61, 62, 63, 64, 67, 69, 73, 76, 81, 84, 85, 85, 83, 78, 74, 65, 56, 45, 38, 29, 21, 15, 11, 7, 4, 5, 3, 0, 3, 2, 2, 3, 4, 4, 4, 8, 10, 11, 15, 18, 22, 27, 34, 38, 43, 50, 55, 60, 63, 72, 79, 85, 95, 103, 111, 119, 127, 134, 138, 145, 149, 153, 153, 155, 157, 156, 157, 156, 156, 155, 156, 154, 156, 156, 158, 156, 156, 156, 156, 157, 157, 156, 155, 155, 153, 156, 155, 157, 156, 157, 156, 155, 158, 157, 156, 156, 157, 155, 157, 156, 154, 152, 146, 139, 126, 110, 92, 75, 61, 54, 60, 80, 112, 152, 189, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 254, 254, 253, 254, 254, 253, 253, 254, 253, 253, 254, 253, 253, 254, 254, 253, 254, 254, 253, 253, 254, 253, 253, 254, 253, 253, 254, 254, 253, 254, 254, 252, 251, 251, 247, 247, 245, 241, 241, 236, 230, 226, 221, 211, 204, 196, 185, 176, 162, 150, 138, 125, 115, 101, 88, 78, 65, 56, 46, 36, 30, 24, 17, 14, 9, 7, 6, 3, 2, 3, 2, 1, 2, 3, 2, 4, 8, 10, 17, 38, 75, 120, 161, 193, 212, 220, 223, 225, 224, 221, 216, 212, 209, 202, 197, 191, 186, 178, 174, 168, 157, 150, 145, 137, 128, 118, 109, 100, 93, 85, 79, 71, 65, 56, 50, 43, 39, 33, 27, 22, 18, 16, 12, 9, 7, 6, 4, 4, 3, 1, 2, 2, 2, 2, 3, 3, 4, 5, 6, 6, 8, 8, 8, 9, 9, 8, 7, 8, 7, 7, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 4, 5, 5, 6, 8, 9, 11, 12, 13, 16, 17, 19, 21, 23, 25, 28, 30, 32, 34, 36, 37, 39, 41, 43, 43, 44, 45, 45, 46, 46, 46, 45, 44, 42, 41, 40, 38, 35, 32, 31, 29, 28, 25, 23, 22, 20, 18, 16, 16, 13, 12, 12, 10, 9, 10, 9, 9, 7, 9, 8, 9, 8, 8, 8, 8, 8, 6, 8, 8, 7, 8, 9, 7, 7, 9, 7, 9, 8, 8, 8, 10, 9, 9, 10, 12, 12, 13, 15, 15, 17, 18, 19, 21, 22, 22, 21, 23, 25, 25, 25, 26, 27, 28, 29, 31, 31, 35, 36, 40, 43, 44, 43, 40, 40, 35, 31, 25, 19, 15, 11, 6, 5, 5, 2, 1, 2, 3, 1, 4, 6, 6, 8, 11, 12, 17, 22, 26, 32, 39, 46, 54, 62, 71, 80, 88, 93, 101, 110, 116, 123, 129, 139, 146, 153, 162, 169, 175, 181, 187, 191, 195, 197, 197, 197, 200, 200, 199, 201, 199, 201, 199, 199, 200, 199, 201, 198, 198, 201, 200, 199, 200, 200, 199, 200, 198, 199, 199, 200, 198, 199, 201, 198, 199, 201, 200, 199, 199, 200, 199, 200, 199, 196, 193, 185, 171, 157, 141, 122, 109, 104, 109, 125, 152, 182, 208, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 252, 251, 250, 248, 247, 244, 240, 237, 234, 227, 222, 214, 206, 199, 189, 178, 165, 151, 140, 126, 114, 102, 89, 77, 67, 56, 47, 37, 32, 23, 19, 15, 12, 7, 6, 6, 3, 3, 3, 2, 1, 3, 4, 4, 6, 9, 11, 15, 21, 29, 42, 68, 103, 146, 184, 211, 229, 238, 241, 242, 243, 240, 238, 236, 233, 232, 229, 223, 219, 216, 211, 206, 201, 197, 190, 184, 177, 171, 161, 154, 146, 138, 130, 121, 113, 105, 96, 87, 79, 71, 62, 54, 47, 41, 33, 27, 25, 18, 15, 12, 9, 5, 6, 4, 3, 3, 3, 2, 1, 2, 2, 1, 4, 4, 3, 4, 4, 4, 4, 5, 4, 4, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 14, 14, 14, 15, 15, 15, 16, 17, 15, 16, 15, 14, 15, 16, 12, 13, 11, 10, 9, 10, 8, 6, 7, 7, 6, 5, 5, 4, 2, 3, 3, 2, 3, 4, 2, 4, 4, 2, 2, 4, 2, 1, 4, 3, 1, 3, 2, 2, 3, 3, 2, 3, 3, 3, 2, 4, 3, 2, 3, 4, 1, 3, 4, 3, 5, 5, 5, 5, 6, 7, 6, 7, 8, 6, 7, 9, 8, 8, 9, 9, 10, 11, 11, 11, 11, 13, 15, 17, 18, 17, 17, 15, 13, 11, 8, 6, 4, 4, 2, 1, 3, 3, 2, 4, 7, 8, 11, 16, 19, 25, 29, 37, 44, 52, 59, 69, 79, 88, 100, 111, 120, 130, 139, 147, 154, 159, 166, 173, 180, 187, 193, 198, 205, 211, 215, 217, 221, 224, 227, 227, 228, 229, 229, 227, 228, 227, 229, 229, 229, 227, 231, 230, 227, 229, 228, 228, 227, 228, 227, 229, 229, 231, 228, 229, 229, 228, 229, 228, 229, 227, 229, 227, 227, 231, 230, 228, 230, 229, 229, 226, 223, 218, 208, 197, 183, 169, 160, 157, 160, 171, 188, 208, 224, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 253, 252, 251, 249, 248, 247, 244, 240, 235, 231, 224, 219, 213, 204, 197, 188, 176, 166, 154, 141, 127, 113, 103, 88, 77, 66, 56, 46, 37, 31, 25, 20, 14, 12, 9, 5, 5, 5, 2, 3, 2, 2, 1, 3, 5, 4, 8, 11, 15, 18, 25, 31, 38, 48, 62, 81, 108, 139, 174, 204, 225, 239, 247, 249, 251, 251, 251, 249, 251, 248, 245, 245, 241, 241, 237, 235, 232, 228, 225, 223, 219, 215, 210, 204, 199, 193, 185, 179, 173, 164, 157, 149, 139, 132, 121, 111, 102, 93, 82, 75, 65, 54, 47, 40, 31, 26, 20, 17, 13, 8, 7, 6, 4, 2, 3, 1, 1, 3, 2, 1, 2, 2, 1, 2, 3, 2, 2, 3, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 3, 4, 4, 4, 4, 5, 4, 4, 4, 3, 2, 3, 3, 2, 3, 3, 2, 3, 3, 1, 2, 3, 2, 0, 3, 2, 1, 3, 2, 1, 2, 3, 3, 2, 4, 3, 2, 3, 3, 2, 3, 2, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3, 1, 4, 2, 1, 1, 3, 1, 1, 2, 1, 2, 4, 2, 2, 3, 3, 1, 3, 4, 2, 3, 4, 3, 3, 3, 3, 2, 4, 4, 3, 4, 5, 4, 5, 5, 3, 4, 4, 2, 2, 3, 2, 2, 5, 6, 8, 14, 18, 24, 31, 39, 48, 56, 66, 77, 87, 96, 107, 119, 129, 140, 151, 162, 172, 180, 186, 191, 199, 201, 208, 212, 217, 221, 225, 230, 231, 233, 238, 240, 240, 243, 245, 244, 246, 244, 245, 246, 245, 244, 245, 245, 245, 244, 246, 245, 244, 246, 244, 246, 245, 247, 244, 245, 245, 245, 244, 246, 245, 246, 246, 244, 245, 245, 246, 244, 245, 245, 245, 244, 246, 246, 244, 246, 243, 239, 233, 225, 216, 208, 201, 197, 200, 207, 217, 228, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 252, 250, 248, 249, 245, 243, 242, 239, 233, 230, 224, 218, 212, 202, 192, 184, 173, 161, 152, 140, 128, 116, 103, 90, 79, 66, 56, 46, 37, 31, 24, 19, 13, 10, 9, 6, 4, 3, 4, 2, 1, 3, 2, 2, 4, 6, 7, 9, 15, 17, 22, 29, 37, 45, 56, 66, 78, 90, 108, 128, 150, 176, 202, 222, 235, 246, 251, 254, 255, 255, 254, 254, 254, 253, 251, 252, 251, 250, 249, 250, 247, 245, 244, 241, 239, 239, 234, 234, 230, 226, 221, 216, 211, 207, 201, 194, 188, 177, 172, 163, 152, 146, 134, 124, 115, 103, 90, 81, 69, 58, 50, 42, 33, 26, 21, 15, 11, 9, 7, 5, 3, 4, 2, 2, 3, 3, 2, 2, 2, 2, 2, 3, 1, 1, 2, 1, 0, 2, 1, 1, 1, 2, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 3, 2, 3, 4, 4, 3, 4, 3, 4, 5, 6, 6, 7, 7, 6, 7, 8, 8, 7, 8, 7, 7, 8, 8, 6, 8, 8, 8, 8, 8, 7, 8, 9, 8, 8, 8, 8, 6, 7, 8, 5, 5, 6, 3, 5, 5, 3, 3, 4, 3, 2, 3, 4, 2, 3, 3, 2, 2, 3, 2, 2, 3, 3, 1, 2, 3, 1, 1, 3, 1, 2, 3, 1, 0, 4, 3, 2, 5, 8, 10, 14, 20, 27, 35, 46, 57, 67, 77, 89, 103, 116, 126, 138, 149, 157, 169, 177, 188, 196, 204, 209, 217, 221, 225, 228, 229, 235, 236, 239, 241, 244, 247, 247, 248, 250, 250, 252, 253, 253, 252, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 252, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 252, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 252, 253, 251, 249, 245, 242, 237, 231, 229, 226, 227, 231, 235, 242, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 252, 253, 253, 252, 250, 249, 250, 247, 244, 245, 239, 236, 237, 231, 227, 221, 215, 207, 201, 190, 181, 171, 161, 147, 138, 125, 112, 100, 88, 78, 67, 56, 46, 38, 31, 24, 18, 15, 11, 8, 6, 5, 2, 3, 3, 1, 1, 3, 2, 3, 4, 8, 8, 12, 17, 21, 28, 35, 45, 53, 65, 77, 90, 101, 115, 129, 140, 156, 173, 189, 207, 222, 237, 245, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 252, 252, 252, 250, 250, 250, 247, 248, 244, 242, 238, 236, 234, 229, 224, 221, 215, 208, 205, 198, 192, 183, 172, 164, 155, 143, 131, 118, 108, 95, 81, 71, 59, 49, 41, 33, 27, 23, 18, 15, 13, 11, 9, 9, 8, 7, 7, 6, 5, 4, 5, 4, 2, 2, 2, 1, 3, 1, 1, 3, 1, 1, 1, 2, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 3, 3, 3, 5, 5, 5, 6, 7, 9, 10, 12, 12, 14, 15, 17, 17, 20, 20, 21, 21, 22, 23, 24, 24, 24, 25, 24, 23, 23, 23, 23, 23, 23, 25, 24, 24, 24, 24, 24, 23, 22, 21, 21, 20, 18, 19, 18, 15, 15, 14, 13, 12, 10, 11, 9, 10, 8, 8, 8, 9, 8, 8, 8, 7, 7, 6, 6, 5, 5, 5, 1, 3, 4, 3, 3, 4, 3, 4, 6, 9, 10, 15, 21, 29, 37, 50, 61, 73, 87, 102, 115, 128, 142, 153, 164, 176, 186, 193, 202, 209, 215, 220, 227, 230, 235, 237, 242, 243, 246, 246, 248, 249, 249, 250, 251, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 251, 248, 245, 243, 242, 242, 244, 246, 249, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 252, 251, 251, 251, 249, 248, 248, 246, 244, 244, 241, 240, 238, 235, 233, 229, 225, 220, 216, 210, 203, 194, 185, 174, 167, 157, 143, 133, 120, 108, 97, 85, 73, 66, 55, 45, 38, 31, 24, 19, 14, 12, 9, 5, 5, 3, 1, 3, 2, 0, 2, 4, 3, 4, 7, 10, 12, 16, 20, 26, 34, 42, 51, 62, 73, 86, 101, 113, 129, 141, 152, 164, 176, 186, 197, 208, 219, 229, 237, 245, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 251, 251, 249, 248, 244, 243, 241, 237, 235, 230, 226, 222, 217, 211, 208, 199, 190, 178, 168, 157, 146, 132, 119, 106, 93, 82, 71, 62, 54, 47, 42, 35, 31, 29, 26, 24, 21, 20, 21, 18, 16, 16, 14, 13, 12, 11, 10, 9, 8, 7, 8, 7, 7, 5, 6, 5, 5, 5, 4, 3, 4, 3, 2, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 7, 8, 10, 11, 12, 14, 18, 20, 23, 26, 29, 31, 34, 38, 40, 43, 44, 46, 47, 50, 51, 53, 53, 56, 55, 54, 55, 55, 56, 54, 55, 56, 56, 56, 56, 57, 56, 55, 54, 53, 53, 51, 49, 49, 46, 44, 40, 39, 37, 34, 33, 32, 30, 27, 27, 26, 25, 25, 24, 24, 24, 22, 22, 21, 21, 18, 16, 14, 14, 11, 11, 11, 11, 12, 12, 13, 16, 20, 26, 31, 37, 50, 62, 76, 92, 107, 124, 137, 153, 166, 177, 189, 200, 206, 213, 220, 226, 228, 235, 237, 242, 244, 246, 248, 251, 252, 253, 254, 254, 253, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 252, 251, 250, 250, 251, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 253, 252, 251, 253, 251, 251, 251, 249, 248, 246, 245, 243, 240, 241, 239, 236, 235, 234, 228, 226, 222, 219, 213, 210, 204, 199, 193, 185, 176, 170, 160, 149, 138, 127, 117, 104, 93, 81, 69, 61, 51, 43, 35, 29, 23, 18, 13, 11, 8, 6, 4, 5, 3, 1, 2, 3, 1, 2, 4, 4, 6, 10, 11, 16, 20, 26, 33, 39, 48, 60, 71, 83, 97, 109, 122, 138, 151, 162, 175, 185, 197, 206, 213, 221, 226, 233, 238, 243, 247, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 250, 249, 248, 246, 243, 241, 239, 237, 232, 228, 224, 215, 209, 198, 190, 180, 169, 156, 144, 133, 123, 110, 101, 92, 84, 76, 69, 66, 61, 58, 55, 54, 51, 48, 45, 43, 41, 36, 35, 33, 30, 28, 27, 26, 25, 24, 22, 22, 21, 18, 19, 18, 17, 16, 16, 14, 14, 13, 13, 11, 11, 10, 9, 7, 7, 6, 5, 5, 4, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 5, 6, 7, 9, 11, 13, 16, 19, 22, 26, 31, 35, 40, 45, 51, 57, 59, 66, 70, 73, 77, 80, 82, 86, 88, 91, 93, 94, 96, 97, 97, 97, 98, 100, 100, 100, 103, 103, 101, 101, 102, 100, 100, 99, 96, 94, 93, 89, 87, 85, 81, 78, 75, 71, 68, 66, 64, 62, 60, 59, 59, 57, 57, 55, 54, 52, 51, 48, 45, 43, 40, 37, 34, 33, 31, 32, 33, 35, 40, 43, 49, 58, 68, 80, 93, 109, 126, 141, 155, 171, 183, 196, 208, 216, 224, 229, 233, 237, 240, 242, 246, 247, 249, 250, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 253, 251, 250, 247, 245, 246, 243, 241, 242, 242, 240, 240, 238, 235, 233, 231, 228, 223, 219, 217, 213, 209, 202, 197, 194, 186, 179, 176, 169, 162, 156, 148, 139, 127, 118, 108, 97, 87, 76, 66, 56, 48, 41, 33, 27, 21, 18, 13, 10, 8, 6, 3, 2, 3, 2, 1, 2, 3, 1, 4, 5, 5, 8, 13, 16, 20, 26, 33, 39, 49, 58, 70, 79, 94, 107, 118, 132, 147, 160, 170, 183, 195, 205, 214, 220, 228, 234, 237, 240, 242, 244, 249, 251, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 251, 251, 251, 251, 249, 248, 246, 243, 238, 232, 228, 223, 215, 207, 199, 191, 181, 170, 164, 154, 145, 138, 128, 120, 116, 110, 106, 104, 101, 97, 93, 90, 87, 84, 79, 76, 73, 69, 66, 64, 62, 61, 58, 58, 55, 56, 54, 51, 49, 49, 47, 46, 43, 43, 41, 40, 38, 36, 34, 32, 29, 27, 25, 23, 21, 19, 18, 15, 13, 12, 11, 9, 7, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 2, 2, 3, 3, 5, 6, 8, 9, 12, 14, 17, 21, 25, 30, 35, 41, 46, 54, 61, 66, 74, 81, 84, 91, 99, 101, 107, 111, 117, 120, 123, 125, 127, 133, 133, 136, 136, 141, 141, 144, 146, 148, 147, 147, 147, 146, 144, 143, 141, 140, 138, 136, 133, 132, 130, 126, 123, 120, 117, 114, 111, 108, 110, 107, 105, 104, 103, 100, 99, 97, 95, 90, 88, 81, 79, 75, 73, 71, 71, 73, 76, 81, 88, 95, 105, 118, 132, 145, 161, 173, 186, 200, 211, 217, 226, 232, 238, 243, 245, 248, 250, 251, 252, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 249, 244, 241, 238, 233, 229, 228, 225, 222, 220, 218, 215, 211, 208, 204, 200, 196, 191, 185, 179, 171, 166, 161, 154, 147, 140, 134, 124, 116, 112, 102, 94, 87, 78, 68, 61, 52, 45, 36, 30, 26, 20, 15, 13, 9, 7, 6, 4, 2, 2, 2, 2, 1, 3, 4, 2, 5, 7, 8, 12, 15, 19, 25, 32, 40, 48, 59, 70, 82, 93, 106, 119, 130, 144, 157, 169, 179, 190, 202, 211, 218, 226, 233, 236, 240, 244, 247, 248, 249, 251, 251, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 250, 251, 248, 245, 241, 236, 234, 229, 224, 216, 210, 202, 197, 190, 184, 176, 170, 165, 162, 160, 155, 152, 150, 146, 143, 141, 135, 131, 129, 126, 122, 117, 116, 115, 111, 110, 109, 108, 105, 104, 101, 100, 97, 98, 94, 92, 93, 90, 89, 85, 83, 82, 78, 74, 71, 68, 64, 60, 56, 53, 49, 45, 42, 37, 34, 31, 27, 23, 19, 17, 15, 13, 10, 9, 7, 6, 6, 4, 3, 3, 2, 1, 2, 1, 1, 1, 1, 0, 0, 1, 1, 2, 3, 3, 4, 5, 7, 8, 10, 13, 14, 19, 23, 28, 33, 39, 45, 50, 57, 65, 73, 79, 87, 93, 98, 107, 111, 117, 121, 129, 132, 138, 143, 148, 152, 157, 162, 163, 166, 169, 172, 173, 174, 175, 174, 174, 173, 174, 172, 176, 175, 173, 176, 175, 172, 171, 168, 166, 164, 162, 159, 158, 160, 156, 155, 156, 152, 149, 147, 142, 140, 135, 130, 128, 125, 123, 123, 124, 129, 131, 141, 149, 158, 168, 178, 190, 201, 210, 219, 226, 232, 240, 244, 248, 249, 251, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 247, 240, 232, 223, 215, 208, 202, 198, 191, 188, 184, 179, 177, 172, 164, 161, 154, 150, 142, 136, 130, 124, 113, 108, 102, 93, 87, 81, 74, 67, 62, 57, 49, 44, 38, 33, 26, 22, 18, 13, 10, 9, 6, 3, 4, 4, 1, 1, 3, 1, 1, 4, 4, 3, 8, 10, 11, 15, 20, 26, 32, 40, 48, 58, 69, 81, 94, 104, 122, 134, 142, 156, 169, 181, 189, 199, 208, 216, 222, 229, 235, 241, 244, 247, 249, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 251, 249, 248, 243, 242, 239, 235, 229, 226, 224, 218, 213, 210, 208, 205, 203, 200, 197, 194, 192, 190, 189, 184, 179, 179, 175, 171, 169, 169, 165, 165, 163, 160, 162, 159, 157, 157, 157, 154, 151, 153, 150, 149, 148, 149, 143, 142, 142, 136, 132, 129, 125, 123, 118, 115, 110, 104, 100, 93, 88, 82, 76, 70, 63, 58, 52, 45, 41, 37, 32, 28, 24, 20, 18, 16, 13, 9, 8, 7, 4, 4, 4, 3, 1, 2, 2, 1, 2, 3, 1, 1, 2, 2, 3, 4, 5, 6, 7, 11, 11, 15, 20, 23, 27, 33, 39, 46, 51, 57, 62, 69, 75, 81, 87, 93, 101, 106, 115, 123, 126, 135, 142, 145, 150, 156, 160, 164, 168, 169, 170, 172, 174, 177, 180, 182, 187, 194, 197, 202, 205, 208, 208, 208, 207, 204, 204, 203, 202, 201, 198, 199, 198, 196, 194, 193, 189, 185, 183, 181, 177, 173, 174, 172, 176, 180, 183, 186, 194, 200, 208, 214, 221, 229, 233, 240, 244, 248, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 245, 237, 226, 211, 196, 182, 171, 160, 153, 147, 140, 134, 131, 126, 119, 113, 108, 102, 96, 91, 85, 78, 71, 65, 60, 54, 48, 43, 39, 34, 31, 27, 24, 19, 16, 15, 12, 9, 7, 6, 4, 2, 3, 3, 1, 2, 3, 2, 4, 6, 6, 7, 9, 13, 16, 21, 26, 32, 40, 49, 57, 68, 79, 91, 106, 116, 134, 146, 157, 169, 180, 190, 198, 208, 215, 222, 228, 233, 238, 241, 243, 249, 249, 251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 252, 249, 247, 246, 244, 240, 240, 238, 235, 234, 231, 230, 228, 227, 227, 224, 223, 222, 219, 218, 215, 215, 212, 210, 208, 205, 205, 206, 203, 204, 202, 202, 200, 200, 198, 201, 200, 198, 196, 197, 196, 194, 192, 192, 190, 186, 186, 182, 178, 176, 172, 165, 165, 160, 151, 148, 144, 135, 129, 121, 115, 105, 99, 95, 84, 77, 72, 63, 56, 50, 44, 38, 33, 29, 24, 20, 16, 15, 11, 8, 8, 6, 4, 4, 4, 3, 3, 3, 1, 1, 2, 2, 1, 4, 4, 3, 6, 8, 9, 10, 14, 16, 19, 23, 28, 31, 36, 38, 45, 49, 55, 61, 65, 73, 81, 86, 95, 101, 107, 112, 118, 122, 129, 133, 136, 138, 140, 147, 150, 157, 163, 175, 185, 200, 209, 220, 228, 230, 231, 233, 231, 232, 230, 230, 231, 230, 228, 227, 225, 227, 227, 222, 222, 219, 218, 212, 212, 213, 212, 213, 215, 217, 220, 224, 229, 234, 237, 240, 245, 248, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 246, 238, 222, 203, 183, 157, 138, 123, 109, 101, 94, 87, 82, 78, 73, 70, 65, 59, 56, 51, 47, 42, 37, 33, 30, 25, 22, 19, 16, 14, 13, 10, 9, 8, 6, 5, 4, 4, 3, 2, 3, 2, 0, 1, 2, 3, 4, 7, 7, 11, 15, 18, 22, 27, 34, 41, 49, 59, 71, 81, 91, 106, 118, 131, 145, 154, 166, 179, 191, 202, 208, 216, 223, 229, 233, 238, 241, 242, 246, 249, 250, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 251, 250, 250, 250, 248, 249, 248, 245, 246, 245, 245, 243, 242, 241, 240, 239, 239, 236, 237, 235, 235, 234, 232, 232, 231, 229, 230, 230, 228, 229, 228, 230, 229, 230, 228, 226, 228, 225, 226, 224, 224, 226, 224, 221, 220, 218, 214, 213, 210, 207, 202, 198, 196, 188, 185, 178, 171, 168, 159, 148, 140, 134, 128, 118, 109, 101, 92, 84, 76, 67, 61, 53, 46, 39, 34, 30, 24, 20, 16, 15, 13, 9, 8, 7, 6, 2, 5, 3, 2, 3, 3, 0, 2, 3, 1, 4, 5, 4, 7, 9, 10, 11, 14, 16, 19, 22, 24, 27, 30, 37, 41, 45, 51, 56, 63, 67, 73, 77, 81, 85, 90, 91, 95, 99, 104, 112, 123, 137, 156, 179, 200, 217, 231, 240, 244, 246, 248, 247, 247, 246, 245, 245, 245, 244, 243, 243, 243, 242, 242, 240, 240, 239, 236, 236, 236, 236, 236, 239, 240, 242, 245, 247, 248, 250, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 248, 241, 227, 206, 178, 145, 115, 90, 72, 62, 53, 50, 43, 42, 37, 34, 31, 28, 26, 25, 22, 19, 17, 13, 11, 12, 9, 7, 7, 5, 4, 4, 4, 3, 3, 3, 2, 1, 2, 2, 2, 4, 5, 4, 6, 9, 10, 15, 19, 23, 28, 36, 42, 53, 61, 71, 82, 95, 107, 119, 132, 142, 157, 167, 178, 190, 197, 208, 215, 221, 228, 233, 237, 242, 244, 246, 249, 251, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 252, 253, 252, 252, 252, 252, 251, 251, 251, 251, 249, 249, 249, 248, 248, 247, 247, 246, 246, 245, 245, 245, 245, 245, 247, 246, 244, 246, 244, 245, 246, 245, 244, 245, 245, 244, 244, 244, 244, 239, 241, 236, 235, 234, 232, 228, 227, 223, 220, 214, 211, 206, 199, 194, 190, 181, 172, 166, 157, 148, 139, 130, 121, 111, 101, 93, 85, 75, 67, 58, 53, 47, 39, 32, 29, 23, 19, 16, 13, 11, 8, 5, 7, 4, 3, 3, 3, 2, 2, 3, 2, 1, 3, 3, 2, 5, 4, 5, 7, 9, 9, 11, 14, 16, 18, 22, 24, 27, 30, 34, 36, 40, 44, 45, 48, 50, 53, 58, 64, 74, 90, 116, 147, 178, 205, 226, 240, 246, 251, 253, 253, 254, 253, 252, 252, 252, 252, 252, 252, 252, 251, 252, 252, 250, 251, 249, 248, 248, 248, 248, 250, 251, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 246, 236, 217, 189, 151, 110, 72, 50, 35, 29, 23, 17, 17, 14, 13, 12, 12, 10, 9, 9, 6, 6, 5, 4, 2, 4, 3, 2, 3, 1, 0, 2, 3, 2, 3, 4, 3, 4, 7, 7, 8, 10, 14, 15, 19, 24, 30, 38, 46, 54, 64, 74, 86, 97, 108, 122, 134, 145, 155, 170, 180, 189, 201, 209, 216, 222, 229, 234, 239, 242, 244, 246, 248, 250, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 253, 254, 254, 253, 253, 254, 253, 253, 253, 252, 252, 253, 253, 252, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 252, 253, 251, 250, 249, 248, 246, 246, 243, 241, 240, 237, 236, 230, 228, 224, 218, 215, 209, 202, 195, 188, 183, 174, 166, 159, 147, 137, 127, 119, 107, 101, 92, 81, 74, 65, 56, 49, 42, 38, 32, 26, 22, 19, 14, 12, 10, 8, 5, 6, 5, 3, 2, 3, 3, 1, 2, 2, 1, 3, 3, 1, 4, 4, 5, 6, 7, 8, 8, 11, 13, 14, 14, 17, 17, 20, 21, 21, 24, 30, 37, 49, 74, 110, 150, 189, 216, 236, 246, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 254, 253, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 250, 244, 232, 206, 173, 129, 80, 42, 21, 14, 10, 8, 6, 7, 4, 3, 3, 3, 2, 2, 3, 2, 1, 3, 2, 1, 3, 2, 2, 3, 4, 3, 5, 5, 6, 7, 9, 11, 13, 16, 20, 23, 27, 34, 41, 48, 56, 67, 79, 88, 102, 114, 124, 135, 148, 159, 169, 180, 191, 200, 208, 216, 223, 229, 235, 238, 242, 244, 247, 249, 251, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 252, 252, 251, 249, 248, 245, 243, 242, 239, 235, 232, 229, 224, 220, 213, 208, 200, 193, 186, 179, 171, 161, 151, 145, 133, 123, 115, 105, 95, 86, 77, 68, 58, 52, 44, 38, 32, 28, 24, 19, 17, 13, 11, 8, 8, 5, 4, 5, 3, 2, 3, 2, 1, 2, 3, 1, 2, 3, 2, 3, 4, 3, 3, 5, 5, 5, 6, 7, 7, 9, 11, 14, 21, 42, 81, 129, 173, 207, 231, 244, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 243, 228, 201, 163, 114, 65, 27, 8, 4, 5, 2, 2, 3, 2, 0, 2, 3, 1, 2, 4, 3, 4, 5, 4, 4, 6, 7, 7, 10, 12, 12, 14, 18, 19, 23, 27, 32, 36, 40, 48, 55, 63, 72, 83, 94, 105, 117, 128, 139, 152, 163, 174, 182, 194, 201, 211, 218, 224, 230, 234, 238, 242, 246, 247, 249, 250, 252, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 250, 250, 250, 247, 246, 243, 240, 237, 233, 229, 225, 220, 216, 211, 203, 197, 189, 180, 175, 164, 153, 146, 137, 128, 117, 107, 97, 88, 79, 71, 63, 55, 48, 41, 35, 31, 27, 24, 19, 16, 15, 11, 11, 9, 8, 5, 5, 5, 3, 2, 3, 3, 2, 3, 2, 1, 2, 3, 1, 1, 3, 2, 3, 5, 4, 8, 26, 65, 115, 164, 201, 227, 243, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 243, 228, 203, 164, 117, 65, 26, 8, 5, 5, 2, 2, 4, 3, 2, 4, 5, 6, 6, 8, 10, 10, 12, 13, 15, 19, 21, 23, 28, 31, 34, 39, 44, 47, 55, 62, 68, 76, 83, 93, 104, 113, 123, 134, 146, 155, 166, 177, 188, 196, 204, 213, 220, 225, 231, 234, 238, 243, 247, 248, 249, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 250, 250, 248, 246, 245, 240, 238, 234, 230, 228, 221, 219, 213, 204, 199, 193, 185, 176, 169, 159, 150, 141, 131, 123, 111, 101, 93, 83, 76, 67, 60, 54, 48, 42, 37, 33, 29, 25, 22, 19, 16, 13, 12, 10, 9, 7, 7, 6, 4, 3, 4, 3, 1, 3, 4, 3, 4, 5, 5, 7, 26, 66, 115, 164, 201, 227, 243, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 251, 244, 232, 208, 173, 128, 81, 43, 20, 15, 13, 11, 10, 11, 13, 13, 15, 16, 18, 21, 25, 27, 29, 33, 37, 41, 46, 51, 57, 60, 69, 74, 81, 86, 94, 103, 109, 118, 127, 135, 144, 154, 162, 174, 182, 192, 199, 207, 214, 221, 225, 231, 236, 239, 241, 245, 248, 249, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 251, 250, 249, 246, 243, 241, 240, 235, 230, 229, 225, 220, 215, 208, 201, 195, 187, 181, 171, 162, 154, 145, 136, 126, 119, 109, 101, 94, 87, 79, 71, 65, 59, 52, 46, 43, 37, 34, 30, 26, 23, 20, 17, 14, 13, 13, 10, 9, 9, 10, 10, 11, 13, 14, 20, 43, 80, 128, 172, 207, 230, 244, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 246, 236, 218, 190, 152, 111, 76, 51, 39, 34, 32, 32, 33, 35, 37, 40, 45, 47, 52, 56, 62, 68, 72, 78, 85, 90, 96, 105, 112, 117, 127, 134, 139, 146, 155, 162, 169, 175, 183, 190, 196, 207, 213, 219, 223, 230, 232, 238, 241, 244, 245, 247, 249, 250, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 250, 250, 249, 247, 246, 242, 239, 238, 233, 233, 225, 223, 217, 210, 205, 199, 190, 183, 176, 169, 160, 153, 145, 138, 128, 123, 115, 107, 99, 93, 86, 78, 73, 67, 62, 54, 51, 46, 41, 38, 35, 32, 31, 30, 29, 28, 28, 33, 39, 51, 74, 110, 151, 189, 217, 235, 246, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 249, 242, 228, 207, 180, 147, 118, 95, 81, 73, 68, 69, 71, 74, 77, 83, 87, 93, 100, 103, 110, 119, 123, 130, 137, 143, 148, 156, 160, 168, 174, 180, 188, 190, 199, 205, 208, 213, 218, 223, 226, 231, 236, 239, 242, 246, 248, 250, 251, 252, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 250, 250, 248, 246, 247, 241, 239, 236, 231, 228, 223, 219, 213, 208, 201, 198, 193, 187, 178, 171, 166, 158, 152, 146, 137, 129, 122, 118, 109, 103, 95, 90, 84, 79, 75, 70, 69, 65, 62, 64, 66, 71, 79, 94, 116, 146, 179, 207, 227, 241, 249, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 246, 237, 223, 205, 182, 160, 143, 132, 123, 120, 120, 123, 125, 131, 136, 140, 146, 151, 156, 164, 169, 173, 178, 185, 190, 195, 201, 206, 209, 214, 217, 223, 226, 227, 231, 233, 236, 239, 243, 244, 245, 249, 249, 252, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 252, 251, 250, 249, 247, 244, 242, 239, 237, 232, 232, 228, 223, 222, 216, 211, 205, 203, 197, 190, 184, 179, 173, 165, 160, 155, 149, 143, 139, 132, 128, 121, 121, 116, 114, 114, 116, 120, 128, 142, 160, 182, 204, 224, 237, 246, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 250, 245, 236, 225, 213, 198, 186, 178, 172, 170, 169, 172, 174, 180, 183, 189, 190, 196, 202, 204, 209, 212, 214, 219, 222, 225, 229, 233, 236, 239, 239, 242, 242, 243, 246, 248, 247, 249, 251, 251, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 251, 250, 249, 247, 246, 245, 242, 242, 236, 237, 233, 232, 230, 224, 218, 216, 210, 208, 204, 199, 193, 192, 187, 179, 176, 175, 172, 164, 164, 165, 165, 170, 176, 187, 198, 212, 226, 237, 245, 250, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 250, 245, 240, 233, 226, 218, 212, 209, 207, 209, 210, 212, 215, 219, 223, 225, 228, 229, 233, 234, 236, 238, 239, 242, 245, 245, 247, 249, 250, 250, 250, 251, 251, 251, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 251, 251, 250, 248, 248, 246, 245, 244, 239, 240, 235, 234, 233, 229, 227, 223, 221, 216, 215, 211, 208, 207, 207, 205, 205, 208, 213, 217, 225, 232, 240, 246, 250, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 248, 245, 242, 237, 235, 233, 232, 233, 234, 237, 239, 242, 244, 243, 243, 245, 247, 247, 248, 250, 251, 251, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 253, 252, 251, 250, 249, 248, 245, 243, 243, 242, 240, 240, 237, 238, 235, 232, 232, 230, 231, 233, 234, 236, 241, 245, 247, 251, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 251, 250, 249, 248, 246, 247, 246, 246, 250, 250, 250, 251, 251, 252, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 251, 251, 251, 251, 251, 249, 249, 248, 247, 247, 246, 245, 246, 248, 249, 249, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 253, 253, 253, 252, 253, 253, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 253, 254, 254, 253, 253, 253, 253, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0]) + + +export { testGif, testBmp, base64Image, scale2x1, translate3x1, rotate90, flipH, crop3x3, scale1x4, setAlpha8, translate1x3 } + + diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/resources/base/element/string.json b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/resources/base/element/string.json index 22af6ba2c..4522e38f2 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/resources/base/element/string.json +++ b/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/resources/base/element/string.json @@ -1,12 +1,28 @@ -{ - "string": [ - { - "name": "entry_MainAbility", - "value": "ImageJSTestMain" - }, - { - "name": "mainability_description", - "value": "ImageJSTestMain Ability" - } - ] +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "ImageJSTestMain" + }, + { + "name": "mainability_description", + "value": "ImageJSTestMain Ability" + }, + { + "name": "MainAbility_desc", + "value": "description" + }, + { + "name": "MainAbility_label", + "value": "label" + }, + { + "name": "TestAbility_desc", + "value": "description" + }, + { + "name": "TestAbility_label", + "value": "label" + } + ] } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/BUILD.gn b/multimedia/image/image_js_standard/imageReceiver/BUILD.gn index 70bcc01b0..87b35f550 100644 --- a/multimedia/image/image_js_standard/imageReceiver/BUILD.gn +++ b/multimedia/image/image_js_standard/imageReceiver/BUILD.gn @@ -23,7 +23,9 @@ ohos_js_hap_suite("image_receiver_js_hap") { hap_name = "ActsImageReceiverJsTest" } ohos_js_assets("image_receiver_js_assets") { - source_dir = "./src/main/js/default" + js2abc = true + hap_profile = "./src/main/config.json" + source_dir = "./src/main/js" } ohos_resources("image_receiver_resources") { sources = [ "./src/main/resources" ] diff --git a/multimedia/image/image_js_standard/imageReceiver/Test.json b/multimedia/image/image_js_standard/imageReceiver/Test.json index 24b652ffd..9cf188bfc 100644 --- a/multimedia/image/image_js_standard/imageReceiver/Test.json +++ b/multimedia/image/image_js_standard/imageReceiver/Test.json @@ -1,42 +1,34 @@ { "description": "Configuration for Image Tests", "driver": { - "type": "JSUnitTest", + "type": "OHJSUnitTest", "test-timeout": "1200000", - "package": "ohos.acts.multimedia.image.Receiver", - "shell-timeout": "120000" + "shell-timeout": "120000", + "testcase-timeout": 60000, + "bundle-name": "ohos.acts.multimedia.image.Receiver", + "package-name": "ohos.acts.multimedia.image.Receiver" }, "kits": [ { "type": "ShellKit", - "run-command": [ - - ], - "teardown-command":[ - - ] + "run-command": [], + "teardown-command": [] }, - { + { "type": "PushKit", - "pre-push": [ - ], - "push": [ - ] + "pre-push": [], + "push": [] }, - - { + { "type": "ShellKit", "run-command": [ "hilog -Q pidoff", "hilog -b D", - "killall com.ohos.medialibrary.MediaScannerAbilityA", + "killall com.ohos.medialibrary.MediaScannerAbilityA", "aa start -a MediaScannerAbility -b com.ohos.medialibrary.MediaScannerAbilityA" ], - "teardown-command":[ - - ] + "teardown-command": [] }, - { "test-file-name": [ "ActsImageReceiverJsTest.hap" @@ -45,5 +37,4 @@ "cleanup-apps": true } ] - } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/config.json b/multimedia/image/image_js_standard/imageReceiver/src/main/config.json index a3f0c3626..e903d15b2 100644 --- a/multimedia/image/image_js_standard/imageReceiver/src/main/config.json +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/config.json @@ -1,104 +1,132 @@ { "app": { - "apiVersion": { - "compatible": 6, - "releaseType": "Beta1", - "target": 7 - }, - "vendor": "acts", - "bundleName": "ohos.acts.multimedia.image.Receiver", - "version": { - "code": 1000000, - "name": "1.0.0" - } + "apiVersion": { + "compatible": 6, + "releaseType": "Beta1", + "target": 7 + }, + "vendor": "acts", + "bundleName": "ohos.acts.multimedia.image.Receiver", + "version": { + "code": 1000000, + "name": "1.0.0" + } }, "deviceConfig": { - "default": { - "debug": true - } + "default": { + "debug": true + } }, "module": { - "abilities": [ - { - "iconId": 16777218, - "skills": [ + "abilities": [ { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "orientation": "unspecified", + "formsEnabled": false, + "name": ".MainAbility", + "srcLanguage": "js", + "srcPath": "MainAbility", + "icon": "$media:icon", + "description": "$string:MainAbility_desc", + "label": "$string:MainAbility_label", + "type": "page", + "visible": true, + "launchType": "standard" + }, + { + "orientation": "unspecified", + "formsEnabled": false, + "name": ".TestAbility", + "srcLanguage": "js", + "srcPath": "TestAbility", + "icon": "$media:icon", + "description": "$string:TestAbility_desc", + "label": "$string:TestAbility_label", + "type": "page", + "visible": true, + "launchType": "standard" } - ], - "descriptionId": 16777217, - "visible": true, - "labelId": 16777216, - "icon": "$media:icon", - "name": "ohos.acts.multimedia.image.Receiver.MainAbility", - "description": "$string:mainability_description", - "label": "$string:entry_MainAbility", - "type": "page", - "homeAbility": true, - "launchType": "standard" - } - ], - "deviceType": [ - "phone", - "tablet", - "tv", - "wearable" - ], - "mainAbility": "ohos.acts.multimedia.image.Receiver.MainAbility", - "distro": { - "moduleType": "entry", - "installationFree": false, - "deliveryWithInstall": true, - "moduleName": "entry" - }, - "reqPermissions": [ - { - "name": "ohos.permission.GET_BUNDLE_INFO", - "reason": "use ohos.permission.GET_BUNDLE_INFO" - }, - { - "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", - "reason":"use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" - }, - { - "name" : "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", - "reason" : "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS" - }, - { - "name" : "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", - "reason" : "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS" - }, - { - "name": "ohos.permission.MEDIA_LOCATION", - "reason":"use ohos.permission.MEDIA_LOCATION" - }, - { - "name": "ohos.permission.READ_MEDIA", - "reason":"use ohos.permission.READ_MEDIA" - }, - { - "name": "ohos.permission.WRITE_MEDIA", - "reason":"use ohos.permission.WRITE_MEDIA" - } - ], - "package": "ohos.acts.multimedia.image.Receiver", - "name": ".MyApplication", - "js": [ - { - "pages": [ - "pages/index/index" - ], - "name": "default", - "window": { - "designWidth": 720, - "autoDesignWidth": true - } - } - ] + ], + "deviceType": [ + "phone", + "tablet", + "tv", + "wearable" + ], + "mainAbility": ".MainAbility", + "distro": { + "moduleType": "entry", + "installationFree": false, + "deliveryWithInstall": true, + "moduleName": "entry" + }, + "reqPermissions": [ + { + "name": "ohos.permission.GET_BUNDLE_INFO", + "reason": "use ohos.permission.GET_BUNDLE_INFO" + }, + { + "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", + "reason": "use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" + }, + { + "name": "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", + "reason": "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS" + }, + { + "name": "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", + "reason": "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS" + }, + { + "name": "ohos.permission.MEDIA_LOCATION", + "reason": "use ohos.permission.MEDIA_LOCATION" + }, + { + "name": "ohos.permission.READ_MEDIA", + "reason": "use ohos.permission.READ_MEDIA" + }, + { + "name": "ohos.permission.WRITE_MEDIA", + "reason": "use ohos.permission.WRITE_MEDIA" + } + ], + "package": "ohos.acts.multimedia.image.Receiver", + "name": ".entry", + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": true + } + }, + { + "pages": [ + "pages/index/index" + ], + "name": ".TestAbility", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ], + "testRunner": { + "name": "OpenHarmonyTestRunner", + "srcPath": "TestRunner" + }, + "srcPath": "" } - } \ No newline at end of file +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/app.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/app.js similarity index 100% rename from multimedia/image/image_js_standard/imageReceiver/src/main/js/default/app.js rename to multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/app.js diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/i18n/en-US.json b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/i18n/en-US.json similarity index 91% rename from multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/i18n/en-US.json rename to multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/i18n/en-US.json index e63c70d97..a4c13dcbd 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/i18n/en-US.json +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/i18n/en-US.json @@ -1,6 +1,6 @@ -{ - "strings": { - "hello": "Hello", - "world": "World" - } +{ + "strings": { + "hello": "Hello", + "world": "World" + } } \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/i18n/zh-CN.json b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/i18n/zh-CN.json similarity index 91% rename from multimedia/media/media_js_standard/recorderProfile/src/main/js/default/i18n/zh-CN.json rename to multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/i18n/zh-CN.json index de6ee5748..b1c02368f 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/i18n/zh-CN.json +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/i18n/zh-CN.json @@ -1,6 +1,6 @@ -{ - "strings": { - "hello": "您好", - "world": "世界" - } +{ + "strings": { + "hello": "您好", + "world": "世界" + } } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.css b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.css similarity index 94% rename from multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.css rename to multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.css index 666fa1ae2..53b12aeee 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.css +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.css @@ -1,46 +1,46 @@ -.container { - flex-direction: column; - justify-content: center; - align-items: center; - width: 100%; - height: 100%; -} - -.title { - font-size: 40px; - color: #000000; - opacity: 0.9; -} - -@media screen and (device-type: tablet) and (orientation: landscape) { - .title { - font-size: 100px; - } -} - -@media screen and (device-type: wearable) { - .title { - font-size: 28px; - color: #FFFFFF; - } -} - -@media screen and (device-type: tv) { - .container { - background-image: url("/common/images/Wallpaper.png"); - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - - .title { - font-size: 100px; - color: #FFFFFF; - } -} - -@media screen and (device-type: phone) and (orientation: landscape) { - .title { - font-size: 60px; - } +.container { + flex-direction: column; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} + +.title { + font-size: 40px; + color: #000000; + opacity: 0.9; +} + +@media screen and (device-type: tablet) and (orientation: landscape) { + .title { + font-size: 100px; + } +} + +@media screen and (device-type: wearable) { + .title { + font-size: 28px; + color: #FFFFFF; + } +} + +@media screen and (device-type: tv) { + .container { + background-image: url("/common/images/Wallpaper.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + } + + .title { + font-size: 100px; + color: #FFFFFF; + } +} + +@media screen and (device-type: phone) and (orientation: landscape) { + .title { + font-size: 60px; + } } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.hml b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.hml similarity index 91% rename from multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.hml rename to multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.hml index abb8b6d88..e7b706af9 100644 --- a/multimedia/image/image_js_standard/imageColorspace/src/main/js/default/pages/index/index.hml +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.hml @@ -1,5 +1,5 @@ -
- - {{ $t('strings.hello') }} {{ title }} - +
+ + {{ $t('strings.hello') }} {{ title }} +
\ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.js new file mode 100644 index 000000000..6e13f0751 --- /dev/null +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/MainAbility/pages/index/index.js @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + }, + onShow() { + console.info('onShow finish') + }, + onReady() { + }, +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/app.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/app.js new file mode 100644 index 000000000..cdc31f3dc --- /dev/null +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/app.js @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' +import { Hypium } from '@ohos/hypium' +import testsuite from '../test/List.test' + +export default { + onCreate() { + console.info('TestApplication onCreate') + var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + console.info('start run testcase!!!') + Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite) + }, + onDestroy() { + console.info("TestApplication onDestroy"); + } +}; diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/i18n/en-US.json b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/i18n/en-US.json new file mode 100644 index 000000000..3cb24b374 --- /dev/null +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/i18n/en-US.json @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + }, + "Files": { + } +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/i18n/zh-CN.json b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/i18n/zh-CN.json new file mode 100644 index 000000000..c804e32c0 --- /dev/null +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/i18n/zh-CN.json @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + }, + "Files": { + } +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.css b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.css new file mode 100644 index 000000000..b1bcd4338 --- /dev/null +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.css @@ -0,0 +1,30 @@ +.container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + left: 0px; + top: 0px; + width: 100%; + height: 100%; +} + +.title { + font-size: 60px; + text-align: center; + width: 100%; + height: 40%; + margin: 10px; +} + +@media screen and (device-type: phone) and (orientation: landscape) { + .title { + font-size: 60px; + } +} + +@media screen and (device-type: tablet) and (orientation: landscape) { + .title { + font-size: 100px; + } +} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.hml b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.hml new file mode 100644 index 000000000..f629c71a9 --- /dev/null +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.hml @@ -0,0 +1,5 @@ +
+ + {{ $t('strings.hello') }} {{ title }} + +
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.js new file mode 100644 index 000000000..88b083a7f --- /dev/null +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestAbility/pages/index/index.js @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + } +} + + + diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestRunner/OpenHarmonyTestRunner.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestRunner/OpenHarmonyTestRunner.js new file mode 100644 index 000000000..c5fa8620c --- /dev/null +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/TestRunner/OpenHarmonyTestRunner.js @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' + +function translateParamsToString(parameters) { + const keySet = new Set([ + '-s class', '-s notClass', '-s suite', '-s itName', + '-s level', '-s testType', '-s size', '-s timeout', + '-s package', '-s dryRun' + ]) + let targetParams = ''; + for (const key in parameters) { + if (keySet.has(key)) { + targetParams += ' ' + key + ' ' + parameters[key] + } + } + return targetParams.trim() +} + + export default { + onPrepare() { + console.info('OpenHarmonyTestRunner OnPrepare') + }, + onRun() { + console.log('OpenHarmonyTestRunner onRun run') + var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + + var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.TestAbility' + + var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName + cmd += ' ' + translateParamsToString(abilityDelegatorArguments.parameters) + var debug = abilityDelegatorArguments.parameters["-D"] + console.info('debug value : '+debug) + if (debug == 'true') + { + cmd += ' -D' + } + console.info('cmd : '+cmd) + abilityDelegator.executeShellCommand(cmd, (err, data) => { + console.info('executeShellCommand : err : ' + JSON.stringify(err)); + console.info('executeShellCommand : data : ' + data.stdResult); + console.info('executeShellCommand : data : ' + data.exitCode); + }) + } +}; diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.js deleted file mode 100644 index a2a05dae0..000000000 --- a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {Core, ExpectExtend} from 'deccjsunit/index' - -export default { - data: { - title: "" - }, - onInit() { - this.title = this.$t('strings.world'); - }, - onShow() { - console.info('onShow finish') - const core = Core.getInstance() - const expectExtend = new ExpectExtend({ - 'id': 'extend' - }) - core.addService('expect', expectExtend) - core.init() - const configService = core.getDefaultService('config') - this.timeout = 60000 - configService.setConfig(this) - require('../../../test/List.test') - core.execute() - }, - onReady() { - }, -} \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/List.test.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/List.test.js index b55a321b5..df0f9156b 100644 --- a/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/List.test.js +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/List.test.js @@ -14,4 +14,7 @@ */ -require('./receiver.test.js') \ No newline at end of file +import ImageReceiver from './receiver.test.js' +export default function testsuite() { +ImageReceiver() +} diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/receiver.test.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/receiver.test.js index dee1c4a86..8a4b4a9cb 100644 --- a/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/receiver.test.js +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/receiver.test.js @@ -13,8 +13,9 @@ * limitations under the License. */ import image from '@ohos.multimedia.image' -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +export default function ImageReceiver() { describe('ImageReceiver', function () { const YUV_Y = 1; @@ -1115,3 +1116,4 @@ describe('ImageReceiver', function () { onErr(done, 'Receiver_025', 'a') }) }) +} diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/element/string.json b/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/element/string.json index eed70c652..4522e38f2 100644 --- a/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/element/string.json +++ b/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/element/string.json @@ -7,6 +7,22 @@ { "name": "mainability_description", "value": "ImageJSTestMain Ability" - } + }, + { + "name": "MainAbility_desc", + "value": "description" + }, + { + "name": "MainAbility_label", + "value": "label" + }, + { + "name": "TestAbility_desc", + "value": "description" + }, + { + "name": "TestAbility_label", + "value": "label" + } ] } \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/BUILD.gn b/multimedia/media/media_js_standard/recorderProfile/BUILD.gn index 8583743ca..0b92b0e26 100644 --- a/multimedia/media/media_js_standard/recorderProfile/BUILD.gn +++ b/multimedia/media/media_js_standard/recorderProfile/BUILD.gn @@ -9,7 +9,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. import("//test/xts/tools/build/suite.gni") @@ -24,7 +24,9 @@ ohos_js_hap_suite("recorder_profile_js_hap") { hap_name = "ActsRecorderProfileJsTest" } ohos_js_assets("profile_js_assets") { - source_dir = "./src/main/js/default" + js2abc = true + hap_profile = "./src/main/config.json" + source_dir = "./src/main/js" } ohos_resources("profile_resources") { sources = [ "./src/main/resources" ] diff --git a/multimedia/media/media_js_standard/recorderProfile/Test.json b/multimedia/media/media_js_standard/recorderProfile/Test.json index 6624ef255..d36404479 100644 --- a/multimedia/media/media_js_standard/recorderProfile/Test.json +++ b/multimedia/media/media_js_standard/recorderProfile/Test.json @@ -1,18 +1,20 @@ -{ - "description": "Configuration for profile Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "2000000", - "package": "ohos.acts.multimedia.recorder.profile", - "shell-timeout": "60000" - }, - "kits": [ - { - "test-file-name": [ - "ActsRecorderProfileJsTest.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] +{ + "description": "Configuration for profile Tests", + "driver": { + "type": "OHJSUnitTest", + "test-timeout": "2000000", + "shell-timeout": "2000000", + "testcase-timeout": 60000, + "bundle-name": "ohos.acts.multimedia.recorder.profile", + "package-name": "ohos.acts.multimedia.recorder.profile" + }, + "kits": [ + { + "test-file-name": [ + "ActsRecorderProfileJsTest.hap" + ], + "type": "AppInstallKit", + "cleanup-apps": true + } + ] } \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/config.json b/multimedia/media/media_js_standard/recorderProfile/src/main/config.json index 9762efe9a..0c8c8f09d 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/config.json +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/config.json @@ -1,96 +1,124 @@ -{ - "app": { - "apiVersion": { - "compatible": 6, - "releaseType": "Beta1", - "target": 7 - }, - "vendor": "acts", - "bundleName": "ohos.acts.multimedia.recorder.profile", - "version": { - "code": 1000000, - "name": "1.0.0" - } - }, - "deviceConfig": { - "default": { - "debug": true - } - }, - "module": { - "abilities": [ - { - "iconId": 16777218, - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "descriptionId": 16777217, - "visible": true, - "labelId": 16777216, - "icon": "$media:icon", - "name": "ohos.acts.multimedia.recorder.profile.MainAbility", - "description": "$string:mainability_description", - "label": "$string:entry_MainAbility", - "type": "page", - "homeAbility": true, - "launchType": "standard" - } - ], - "deviceType": [ - "phone", - "tablet", - "tv", - "wearable" - ], - "reqPermissions": [ - { - "name" : "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", - "reason" : "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS" - }, - { - "name" : "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", - "reason" : "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS" - }, - { - "name" : "ohos.permission.MEDIA_LOCATION", - "reason" : "use ohos.permission.MEDIA_LOCATION" - }, - { - "name" : "ohos.permission.READ_MEDIA", - "reason" : "use ohos.permission.READ_MEDIA" - }, - { - "name" : "ohos.permission.WRITE_MEDIA", - "reason" : "use ohos.permission.WRITE_MEDIA" - } - ], - "mainAbility": "ohos.acts.multimedia.recorder.profile.MainAbility", - "distro": { - "moduleType": "entry", - "installationFree": false, - "deliveryWithInstall": true, - "moduleName": "entry" - }, - "package": "ohos.acts.multimedia.recorder.profile", - "name": ".MyApplication", - "js": [ - { - "pages": [ - "pages/index/index" - ], - "name": "default", - "window": { - "designWidth": 720, - "autoDesignWidth": true - } - } - ] - } -} +{ + "app": { + "apiVersion": { + "compatible": 6, + "releaseType": "Beta1", + "target": 7 + }, + "vendor": "acts", + "bundleName": "ohos.acts.multimedia.recorder.profile", + "version": { + "code": 1000000, + "name": "1.0.0" + } + }, + "deviceConfig": { + "default": { + "debug": true + } + }, + "module": { + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "orientation": "unspecified", + "formsEnabled": false, + "name": ".MainAbility", + "srcLanguage": "js", + "srcPath": "MainAbility", + "icon": "$media:icon", + "description": "$string:MainAbility_desc", + "label": "$string:MainAbility_label", + "type": "page", + "visible": true, + "launchType": "standard" + }, + { + "orientation": "unspecified", + "formsEnabled": false, + "name": ".TestAbility", + "srcLanguage": "js", + "srcPath": "TestAbility", + "icon": "$media:icon", + "description": "$string:TestAbility_desc", + "label": "$string:TestAbility_label", + "type": "page", + "visible": true, + "launchType": "standard" + } + ], + "deviceType": [ + "phone", + "tablet", + "tv", + "wearable" + ], + "reqPermissions": [ + { + "name": "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", + "reason": "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS" + }, + { + "name": "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", + "reason": "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS" + }, + { + "name": "ohos.permission.MEDIA_LOCATION", + "reason": "use ohos.permission.MEDIA_LOCATION" + }, + { + "name": "ohos.permission.READ_MEDIA", + "reason": "use ohos.permission.READ_MEDIA" + }, + { + "name": "ohos.permission.WRITE_MEDIA", + "reason": "use ohos.permission.WRITE_MEDIA" + } + ], + "mainAbility": ".MainAbility", + "distro": { + "moduleType": "entry", + "installationFree": false, + "deliveryWithInstall": true, + "moduleName": "entry" + }, + "package": "ohos.acts.multimedia.recorder.profile", + "name": ".entry", + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": true + } + }, + { + "pages": [ + "pages/index/index" + ], + "name": ".TestAbility", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ], + "testRunner": { + "name": "OpenHarmonyTestRunner", + "srcPath": "TestRunner" + }, + "srcPath": "" + } +} \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/app.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/app.js similarity index 97% rename from multimedia/media/media_js_standard/recorderProfile/src/main/js/default/app.js rename to multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/app.js index 830070d19..8fe0b77dc 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/app.js +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/app.js @@ -1,23 +1,23 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export default { - onCreate() { - console.info('AceApplication onCreate'); - }, - onDestroy() { - console.info('AceApplication onDestroy'); - } -}; +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + onCreate() { + console.info('AceApplication onCreate'); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/i18n/en-US.json b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/i18n/en-US.json similarity index 91% rename from multimedia/media/media_js_standard/recorderProfile/src/main/js/default/i18n/en-US.json rename to multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/i18n/en-US.json index e63c70d97..a4c13dcbd 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/i18n/en-US.json +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/i18n/en-US.json @@ -1,6 +1,6 @@ -{ - "strings": { - "hello": "Hello", - "world": "World" - } +{ + "strings": { + "hello": "Hello", + "world": "World" + } } \ No newline at end of file diff --git a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/i18n/zh-CN.json b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/i18n/zh-CN.json similarity index 91% rename from multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/i18n/zh-CN.json rename to multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/i18n/zh-CN.json index de6ee5748..b1c02368f 100644 --- a/multimedia/image/image_js_standard/imagePixelMapFramework/src/main/js/default/i18n/zh-CN.json +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/i18n/zh-CN.json @@ -1,6 +1,6 @@ -{ - "strings": { - "hello": "您好", - "world": "世界" - } +{ + "strings": { + "hello": "您好", + "world": "世界" + } } \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.css b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.css similarity index 96% rename from multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.css rename to multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.css index c9195944a..a80eb6e2b 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.css +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.css @@ -1,61 +1,61 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -.container { - flex-direction: column; - justify-content: center; - align-items: center; - width: 100%; - height: 100%; -} - -.title { - font-size: 40px; - color: #000000; - opacity: 0.9; -} - -@media screen and (device-type: tablet) and (orientation: landscape) { - .title { - font-size: 100px; - } -} - -@media screen and (device-type: wearable) { - .title { - font-size: 28px; - color: #FFFFFF; - } -} - -@media screen and (device-type: tv) { - .container { - background-image: url("/common/images/Wallpaper.png"); - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - - .title { - font-size: 100px; - color: #FFFFFF; - } -} - -@media screen and (device-type: phone) and (orientation: landscape) { - .title { - font-size: 60px; - } -} +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.container { + flex-direction: column; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} + +.title { + font-size: 40px; + color: #000000; + opacity: 0.9; +} + +@media screen and (device-type: tablet) and (orientation: landscape) { + .title { + font-size: 100px; + } +} + +@media screen and (device-type: wearable) { + .title { + font-size: 28px; + color: #FFFFFF; + } +} + +@media screen and (device-type: tv) { + .container { + background-image: url("/common/images/Wallpaper.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + } + + .title { + font-size: 100px; + color: #FFFFFF; + } +} + +@media screen and (device-type: phone) and (orientation: landscape) { + .title { + font-size: 60px; + } +} diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.hml b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.hml similarity index 97% rename from multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.hml rename to multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.hml index 8d0e2061b..992653a1e 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.hml +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.hml @@ -1,20 +1,20 @@ - - -
- - {{ $t('strings.hello') }} {{ title }} - -
+ + +
+ + {{ $t('strings.hello') }} {{ title }} + +
diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.js new file mode 100644 index 000000000..9f776a29e --- /dev/null +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/MainAbility/pages/index/index.js @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + }, + onShow() { + console.info('onShow finish') + }, + onReady() { + }, +} \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/app.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/app.js new file mode 100644 index 000000000..cdc31f3dc --- /dev/null +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/app.js @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' +import { Hypium } from '@ohos/hypium' +import testsuite from '../test/List.test' + +export default { + onCreate() { + console.info('TestApplication onCreate') + var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + console.info('start run testcase!!!') + Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite) + }, + onDestroy() { + console.info("TestApplication onDestroy"); + } +}; diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/i18n/en-US.json b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/i18n/en-US.json new file mode 100644 index 000000000..3cb24b374 --- /dev/null +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/i18n/en-US.json @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + }, + "Files": { + } +} \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/i18n/zh-CN.json b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/i18n/zh-CN.json new file mode 100644 index 000000000..c804e32c0 --- /dev/null +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/i18n/zh-CN.json @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + }, + "Files": { + } +} \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.css b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.css new file mode 100644 index 000000000..b1bcd4338 --- /dev/null +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.css @@ -0,0 +1,30 @@ +.container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + left: 0px; + top: 0px; + width: 100%; + height: 100%; +} + +.title { + font-size: 60px; + text-align: center; + width: 100%; + height: 40%; + margin: 10px; +} + +@media screen and (device-type: phone) and (orientation: landscape) { + .title { + font-size: 60px; + } +} + +@media screen and (device-type: tablet) and (orientation: landscape) { + .title { + font-size: 100px; + } +} \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.hml b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.hml new file mode 100644 index 000000000..f629c71a9 --- /dev/null +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.hml @@ -0,0 +1,5 @@ +
+ + {{ $t('strings.hello') }} {{ title }} + +
diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.js new file mode 100644 index 000000000..88b083a7f --- /dev/null +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestAbility/pages/index/index.js @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + } +} + + + diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestRunner/OpenHarmonyTestRunner.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestRunner/OpenHarmonyTestRunner.js new file mode 100644 index 000000000..c5fa8620c --- /dev/null +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/TestRunner/OpenHarmonyTestRunner.js @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' + +function translateParamsToString(parameters) { + const keySet = new Set([ + '-s class', '-s notClass', '-s suite', '-s itName', + '-s level', '-s testType', '-s size', '-s timeout', + '-s package', '-s dryRun' + ]) + let targetParams = ''; + for (const key in parameters) { + if (keySet.has(key)) { + targetParams += ' ' + key + ' ' + parameters[key] + } + } + return targetParams.trim() +} + + export default { + onPrepare() { + console.info('OpenHarmonyTestRunner OnPrepare') + }, + onRun() { + console.log('OpenHarmonyTestRunner onRun run') + var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + + var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.TestAbility' + + var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName + cmd += ' ' + translateParamsToString(abilityDelegatorArguments.parameters) + var debug = abilityDelegatorArguments.parameters["-D"] + console.info('debug value : '+debug) + if (debug == 'true') + { + cmd += ' -D' + } + console.info('cmd : '+cmd) + abilityDelegator.executeShellCommand(cmd, (err, data) => { + console.info('executeShellCommand : err : ' + JSON.stringify(err)); + console.info('executeShellCommand : data : ' + data.stdResult); + console.info('executeShellCommand : data : ' + data.exitCode); + }) + } +}; diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.js deleted file mode 100644 index 67f8b8567..000000000 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {Core, ExpectExtend} from 'deccjsunit/index' - -export default { - data: { - title: "" - }, - onInit() { - this.title = this.$t('strings.world'); - }, - onShow() { - console.info('onShow finish') - const core = Core.getInstance() - const expectExtend = new ExpectExtend({ - 'id': 'extend' - }) - core.addService('expect', expectExtend) - core.init() - const configService = core.getDefaultService('config') - this.timeout = 60000 - configService.setConfig(this) - require('../../../test/List.test') - core.execute() - }, - onReady() { - }, -} \ No newline at end of file diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/List.test.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/List.test.js index 6492bb6b7..a49b12678 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/List.test.js +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/List.test.js @@ -1,19 +1,25 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -require('./ProfileTestCallback.test.js') -require('./ProfileTestPromise.test.js') -require('./ProfileAbnormalTestCallback.test.js') -require('./ProfileAbnormalTestPromise.test.js') \ No newline at end of file +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import ProfileAbnormalTestCallback from './ProfileAbnormalTestCallback.test.js' +import ProfileAbnormalTestPromise from './ProfileAbnormalTestPromise.test.js' +import ProfileTestCallback from './ProfileTestCallback.test.js' +import ProfileTestPromise from './ProfileTestPromise.test.js' +export default function testsuite() { +ProfileAbnormalTestCallback() +ProfileAbnormalTestPromise() +ProfileTestCallback() +ProfileTestPromise() +} diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileAbnormalTestCallback.test.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileAbnormalTestCallback.test.js index f6773a65f..4fcdd705d 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileAbnormalTestCallback.test.js +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileAbnormalTestCallback.test.js @@ -15,8 +15,9 @@ import media from '@ohos.multimedia.media' import * as base from './ProfileTestBase.js'; -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +export default function ProfileAbnormalTestCallback() { describe('ProfileAbnormalTestCallback', function () { beforeAll(function () { console.info('beforeAll case'); @@ -341,4 +342,4 @@ describe('ProfileAbnormalTestCallback', function () { console.info("test getVideoRecorderProfile"); callbackAbnormalGetVideoProfile(0, 65536, done); }) -}) \ No newline at end of file +})} diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileAbnormalTestPromise.test.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileAbnormalTestPromise.test.js index af8173dfd..62c26ecd6 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileAbnormalTestPromise.test.js +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileAbnormalTestPromise.test.js @@ -15,8 +15,9 @@ import media from '@ohos.multimedia.media' import * as base from './ProfileTestBase.js'; -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +export default function ProfileAbnormalTestPromise() { describe('ProfileAbnormalTestPromise', function () { beforeAll(function () { console.info('beforeAll case'); @@ -351,3 +352,4 @@ describe('ProfileAbnormalTestPromise', function () { promiseAbnormalGetVideoProfile(0, 65536, done); }) }) +} diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestBase.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestBase.js index 497819610..33d23654f 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestBase.js +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestBase.js @@ -14,7 +14,7 @@ */ import media from '@ohos.multimedia.media' -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' const audioRecorderCaps = { outputFormat: media.ContainerFormatType.CFT_MPEG_4A, diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestCallback.test.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestCallback.test.js index 1389817d4..9f12a13ee 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestCallback.test.js +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestCallback.test.js @@ -15,8 +15,9 @@ import media from '@ohos.multimedia.media' import * as base from './ProfileTestBase.js'; -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +export default function ProfileTestCallback() { describe('ProfileTestCallback', function () { beforeAll(function () { console.info('beforeAll case'); @@ -338,4 +339,4 @@ describe('ProfileTestCallback', function () { callbackHasVideoProfile(0, media.VideoRecorderQualityLevel.RECORDER_QUALITY_LOW, done); }) -}) \ No newline at end of file +})} diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestPromise.test.js b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestPromise.test.js index d36acf2c3..1aec66fd7 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestPromise.test.js +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/js/test/ProfileTestPromise.test.js @@ -15,8 +15,9 @@ import media from '@ohos.multimedia.media' import * as base from './ProfileTestBase.js'; -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +export default function ProfileTestPromise() { describe('ProfileTestPromise', function () { beforeAll(function () { console.info('beforeAll case'); @@ -359,3 +360,4 @@ describe('ProfileTestPromise', function () { }) }) +} diff --git a/multimedia/media/media_js_standard/recorderProfile/src/main/resources/base/element/string.json b/multimedia/media/media_js_standard/recorderProfile/src/main/resources/base/element/string.json index 0bae6bd40..8afb12da3 100644 --- a/multimedia/media/media_js_standard/recorderProfile/src/main/resources/base/element/string.json +++ b/multimedia/media/media_js_standard/recorderProfile/src/main/resources/base/element/string.json @@ -1,12 +1,28 @@ -{ - "string": [ - { - "name": "entry_MainAbility", - "value": "entry_MainAbility" - }, - { - "name": "mainability_description", - "value": "JS_Empty Ability" - } - ] +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "entry_MainAbility" + }, + { + "name": "mainability_description", + "value": "JS_Empty Ability" + }, + { + "name": "MainAbility_desc", + "value": "description" + }, + { + "name": "MainAbility_label", + "value": "label" + }, + { + "name": "TestAbility_desc", + "value": "description" + }, + { + "name": "TestAbility_label", + "value": "label" + } + ] } \ No newline at end of file -- GitLab