From 9b55262f567d92fe44f127fc3fe5a986fa65946f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quirin=20Zie=C3=9Fler?= Date: Mon, 12 Feb 2024 14:21:21 +0100 Subject: [PATCH 01/61] :tada: update for snyk parser: added epss score import --- dojo/tools/snyk/parser.py | 4 + .../scans/snyk/snykcontainer_issue_epss.json | 1451 +++++++++++++++++ unittests/tools/test_snyk_parser.py | 13 + 3 files changed, 1468 insertions(+) create mode 100644 unittests/scans/snyk/snykcontainer_issue_epss.json diff --git a/dojo/tools/snyk/parser.py b/dojo/tools/snyk/parser.py index b5ee592cabe..c6a2c634e9d 100755 --- a/dojo/tools/snyk/parser.py +++ b/dojo/tools/snyk/parser.py @@ -144,6 +144,10 @@ def get_item(self, vulnerability, test, target_file=None, upgrades=None): if vulnerability.get("CVSSv3"): finding.cvssv3 = CVSS3(vulnerability["CVSSv3"]).clean_vector() + if vulnerability.get("epssDetails") is not None: + finding.epss_score = vulnerability["epssDetails"]["probability"] + finding.epss_percentile = vulnerability["epssDetails"]["percentile"] + # manage CVE and CWE with idnitifiers cwe_references = "" if "identifiers" in vulnerability: diff --git a/unittests/scans/snyk/snykcontainer_issue_epss.json b/unittests/scans/snyk/snykcontainer_issue_epss.json new file mode 100644 index 00000000000..c20f85443ba --- /dev/null +++ b/unittests/scans/snyk/snykcontainer_issue_epss.json @@ -0,0 +1,1451 @@ +{ + "vulnerabilities": [ + { + "id": "SNYK-DEBIAN11-GCC10-5901313", + "cpes": [], + "title": "CVE-2023-4039", + "CVSSv3": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N", + "credit": [ + "" + ], + "semver": { + "vulnerable": [ + "*" + ] + }, + "exploit": "Not Defined", + "fixedIn": [], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "linux", + "severity": "low", + "cvssScore": 4.8, + "malicious": false, + "isDisputed": false, + "references": [ + { + "url": "https://security-tracker.debian.org/tracker/CVE-2023-4039", + "title": "https://security-tracker.debian.org/tracker/CVE-2023-4039" + }, + { + "url": "https://developer.arm.com/Arm%20Security%20Center/GCC%20Stack%20Protector%20Vulnerability%20AArch64", + "title": "https://developer.arm.com/Arm%20Security%20Center/GCC%20Stack%20Protector%20Vulnerability%20AArch64" + }, + { + "url": "https://github.com/metaredteam/external-disclosures/security/advisories/GHSA-x7ch-h5rf-w2mf", + "title": "https://github.com/metaredteam/external-disclosures/security/advisories/GHSA-x7ch-h5rf-w2mf" + } + ], + "cvssDetails": [ + { + "assigner": "SUSE", + "severity": "high", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", + "cvssV3BaseScore": 8.1, + "modificationTime": "2023-09-20T11:09:16.812999Z" + }, + { + "assigner": "NVD", + "severity": "medium", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N", + "cvssV3BaseScore": 4.8, + "modificationTime": "2023-09-15T01:10:52.576715Z" + }, + { + "assigner": "Red Hat", + "severity": "medium", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N", + "cvssV3BaseScore": 4.8, + "modificationTime": "2023-11-08T09:43:38.403520Z" + } + ], + "description": "## NVD Description\n**_Note:_** _Versions mentioned in the description apply only to the upstream `gcc-10` package and not the `gcc-10` package as distributed by `Debian`._\n_See `How to fix?` for `Debian:11` relevant fixed versions and status._\n\n\n\nA failure in the -fstack-protector feature in GCC-based toolchains \nthat target AArch64 allows an attacker to exploit an existing buffer \noverflow in dynamically-sized local variables in your application \nwithout this being detected. This stack-protector failure only applies \nto C99-style dynamically-sized local variables or those created using \nalloca(). The stack-protector operates as intended for statically-sized \nlocal variables.\n\nThe default behavior when the stack-protector \ndetects an overflow is to terminate your application, resulting in \ncontrolled loss of availability. An attacker who can exploit a buffer \noverflow without triggering the stack-protector might be able to change \nprogram flow control to cause an uncontrolled loss of availability or to\n go further and affect confidentiality or integrity.\n\n\n\n\n\n\n## Remediation\nThere is no fixed version for `Debian:11` `gcc-10`.\n## References\n- [ADVISORY](https://security-tracker.debian.org/tracker/CVE-2023-4039)\n- [arm-security@arm.com](https://developer.arm.com/Arm%20Security%20Center/GCC%20Stack%20Protector%20Vulnerability%20AArch64)\n- [arm-security@arm.com](https://github.com/metaredteam/external-disclosures/security/advisories/GHSA-x7ch-h5rf-w2mf)\n", + "epssDetails": { + "percentile": "0.14414", + "probability": "0.00046", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2023-4039" + ], + "CWE": [], + "ALTERNATIVE": [] + }, + "nvdSeverity": "medium", + "packageName": "gcc-10", + "creationTime": "2023-09-14T00:55:43.720861Z", + "disclosureTime": "2023-09-13T09:15:15.690000Z", + "packageManager": "debian:11", + "publicationTime": "2023-09-14T00:54:21.518198Z", + "modificationTime": "2023-11-08T09:43:38.403520Z", + "socialTrendAlert": false, + "relativeImportance": "minor issue", + "severityWithCritical": "low", + "from": [ + "docker-image|sarim04/juiceshop@latest", + "gcc-10/libgcc-s1@10.2.1-6" + ], + "upgradePath": [], + "isUpgradable": false, + "isPatchable": false, + "name": "gcc-10/libgcc-s1", + "version": "10.2.1-6" + } + ], + "ok": false, + "dependencyCount": 9, + "org": "sarim04", + "policy": "# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.\nversion: v1.25.1\nignore: {}\npatch: {}\n", + "isPrivate": true, + "licensesPolicy": { + "severities": {}, + "orgLicenseRules": { + "AGPL-1.0": { + "licenseType": "AGPL-1.0", + "severity": "high", + "instructions": "" + }, + "AGPL-3.0": { + "licenseType": "AGPL-3.0", + "severity": "high", + "instructions": "" + }, + "Artistic-1.0": { + "licenseType": "Artistic-1.0", + "severity": "medium", + "instructions": "" + }, + "Artistic-2.0": { + "licenseType": "Artistic-2.0", + "severity": "medium", + "instructions": "" + }, + "CDDL-1.0": { + "licenseType": "CDDL-1.0", + "severity": "medium", + "instructions": "" + }, + "CPOL-1.02": { + "licenseType": "CPOL-1.02", + "severity": "high", + "instructions": "" + }, + "EPL-1.0": { + "licenseType": "EPL-1.0", + "severity": "medium", + "instructions": "" + }, + "GPL-2.0": { + "licenseType": "GPL-2.0", + "severity": "high", + "instructions": "" + }, + "GPL-3.0": { + "licenseType": "GPL-3.0", + "severity": "high", + "instructions": "" + }, + "LGPL-2.0": { + "licenseType": "LGPL-2.0", + "severity": "medium", + "instructions": "" + }, + "LGPL-2.1": { + "licenseType": "LGPL-2.1", + "severity": "medium", + "instructions": "" + }, + "LGPL-3.0": { + "licenseType": "LGPL-3.0", + "severity": "medium", + "instructions": "" + }, + "MPL-1.1": { + "licenseType": "MPL-1.1", + "severity": "medium", + "instructions": "" + }, + "MPL-2.0": { + "licenseType": "MPL-2.0", + "severity": "medium", + "instructions": "" + }, + "MS-RL": { + "licenseType": "MS-RL", + "severity": "medium", + "instructions": "" + }, + "SimPL-2.0": { + "licenseType": "SimPL-2.0", + "severity": "high", + "instructions": "" + } + } + }, + "packageManager": "deb", + "ignoreSettings": { + "adminOnly": false, + "reasonRequired": false, + "disregardFilesystemIgnores": false + }, + "docker": { + "binariesVulns": { + "issuesData": {}, + "affectedPkgs": {} + } + }, + "summary": "67 vulnerable dependency paths", + "filesystemPolicy": false, + "filtered": { + "ignore": [], + "patch": [] + }, + "uniqueCount": 13, + "projectName": "docker-image|sarim04/juiceshop", + "platform": "linux/amd64", + "hasUnknownVersions": false, + "path": "sarim04/juiceshop:latest/juiceshop", + "applications": [ + { + "vulnerabilities": [ + { + "id": "SNYK-JS-EXPRESSJWT-575022", + "title": "Authorization Bypass", + "CVSSv3": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N", + "credit": [ + "IST Group" + ], + "semver": { + "vulnerable": [ + "<6.0.0" + ] + }, + "exploit": "Not Defined", + "fixedIn": [ + "6.0.0" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "high", + "cvssScore": 7.4, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "express-jwt", + "references": [ + { + "url": "https://github.com/auth0/express-jwt/commit/7ecab5f8f0cab5297c2b863596566eb0c019cdef", + "title": "GitHub Commit" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "critical", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N", + "cvssV3BaseScore": 9.1, + "modificationTime": "2022-10-22T01:10:30.246806Z" + } + ], + "description": "## Overview\n[express-jwt](https://www.npmjs.com/package/express-jwt) is a JWT authentication middleware.\n\nAffected versions of this package are vulnerable to Authorization Bypass. The `algorithms` entry to be specified in the configuration is not being enforced. When `algorithms` is not specified in the configuration, with the combination of `jwks-rsa`, it may lead to authorization bypass.\n## Remediation\nUpgrade `express-jwt` to version 6.0.0 or higher.\n## References\n- [GitHub Commit](https://github.com/auth0/express-jwt/commit/7ecab5f8f0cab5297c2b863596566eb0c019cdef)\n", + "epssDetails": { + "percentile": "0.57214", + "probability": "0.00197", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2020-15084" + ], + "CWE": [ + "CWE-285" + ], + "GHSA": [ + "GHSA-6g6m-m6h5-w9gf" + ] + }, + "packageName": "express-jwt", + "proprietary": false, + "creationTime": "2020-07-01T09:33:11.790635Z", + "functions_new": [], + "alternativeIds": [], + "disclosureTime": "2020-07-01T09:30:03Z", + "packageManager": "npm", + "publicationTime": "2020-07-01T15:32:36Z", + "modificationTime": "2022-10-22T01:10:30.246806Z", + "socialTrendAlert": false, + "severityWithCritical": "high", + "from": [ + "juice-shop@15.3.0", + "express-jwt@0.1.3" + ], + "upgradePath": [ + false, + "express-jwt@6.0.0" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "express-jwt", + "version": "0.1.3" + }, + { + "id": "SNYK-JS-JSONWEBTOKEN-3180022", + "title": "Improper Authentication", + "CVSSv3": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L", + "credit": [ + "Unknown" + ], + "semver": { + "vulnerable": [ + "<9.0.0" + ] + }, + "exploit": "Not Defined", + "fixedIn": [ + "9.0.0" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "medium", + "cvssScore": 6.4, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "jsonwebtoken", + "references": [ + { + "url": "https://github.com/auth0/node-jsonwebtoken/commit/e1fa9dcc12054a8681db4e6373da1b30cf7016e3", + "title": "GitHub Commit" + }, + { + "url": "https://github.com/auth0/node-jsonwebtoken/releases/tag/v9.0.0", + "title": "GitHub Release" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "high", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L", + "cvssV3BaseScore": 7.6, + "modificationTime": "2023-02-28T01:10:17.504751Z" + } + ], + "description": "## Overview\n[jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) is a JSON Web Token implementation (symmetric and asymmetric)\n\nAffected versions of this package are vulnerable to Improper Authentication such that the lack of algorithm definition in the `jwt.verify()` function can lead to signature validation bypass due to defaulting to the `none` algorithm for signature verification. \r\n\r\n## Exploitability\r\nUsers are affected only if all of the following conditions are true for the `jwt.verify()` function:\r\n\r\n1) A token with no signature is received.\r\n\r\n2) No algorithms are specified.\r\n\r\n3) A falsy (e.g., `null`, `false`, `undefined`) secret or key is passed.\n## Remediation\nUpgrade `jsonwebtoken` to version 9.0.0 or higher.\n## References\n- [GitHub Commit](https://github.com/auth0/node-jsonwebtoken/commit/e1fa9dcc12054a8681db4e6373da1b30cf7016e3)\n- [GitHub Release](https://github.com/auth0/node-jsonwebtoken/releases/tag/v9.0.0)\n", + "epssDetails": { + "percentile": "0.13102", + "probability": "0.00046", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2022-23540" + ], + "CWE": [ + "CWE-287" + ], + "GHSA": [ + "GHSA-qwph-4952-7xr6" + ] + }, + "packageName": "jsonwebtoken", + "proprietary": false, + "creationTime": "2022-12-22T09:09:36.072853Z", + "functions_new": [], + "alternativeIds": [], + "disclosureTime": "2022-12-22T03:32:59Z", + "packageManager": "npm", + "publicationTime": "2022-12-22T09:13:25.290846Z", + "modificationTime": "2023-02-28T01:10:17.504751Z", + "socialTrendAlert": false, + "severityWithCritical": "medium", + "from": [ + "juice-shop@15.3.0", + "jsonwebtoken@0.4.0" + ], + "upgradePath": [ + false, + "jsonwebtoken@9.0.0" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "jsonwebtoken", + "version": "0.4.0" + }, + { + "id": "SNYK-JS-JSONWEBTOKEN-3180024", + "title": "Improper Restriction of Security Token Assignment", + "CVSSv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", + "credit": [ + "Unknown" + ], + "semver": { + "vulnerable": [ + "<9.0.0" + ] + }, + "exploit": "Not Defined", + "fixedIn": [ + "9.0.0" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "medium", + "cvssScore": 6.5, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "jsonwebtoken", + "references": [ + { + "url": "https://github.com/auth0/node-jsonwebtoken/commit/e1fa9dcc12054a8681db4e6373da1b30cf7016e3", + "title": "GitHub Commit" + }, + { + "url": "https://github.com/auth0/node-jsonwebtoken/releases/tag/v9.0.0", + "title": "GitHub Release" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "medium", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L", + "cvssV3BaseScore": 6.3, + "modificationTime": "2023-02-28T01:10:17.572355Z" + } + ], + "description": "## Overview\n[jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) is a JSON Web Token implementation (symmetric and asymmetric)\n\nAffected versions of this package are vulnerable to Improper Restriction of Security Token Assignment via the `secretOrPublicKey ` argument due to misconfigurations of the key retrieval function `jwt.verify()`. Exploiting this vulnerability might result in incorrect verification of forged tokens when tokens signed with an asymmetric public key could be verified with a symmetric HS256 algorithm.\r\n\r\n**Note:**\r\nThis vulnerability affects your application if it supports the usage of both symmetric and asymmetric keys in `jwt.verify()` implementation with the same key retrieval function.\n## Remediation\nUpgrade `jsonwebtoken` to version 9.0.0 or higher.\n## References\n- [GitHub Commit](https://github.com/auth0/node-jsonwebtoken/commit/e1fa9dcc12054a8681db4e6373da1b30cf7016e3)\n- [GitHub Release](https://github.com/auth0/node-jsonwebtoken/releases/tag/v9.0.0)\n", + "epssDetails": { + "percentile": "0.19014", + "probability": "0.00053", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2022-23541" + ], + "CWE": [ + "CWE-1259" + ], + "GHSA": [ + "GHSA-hjrf-2m68-5959" + ] + }, + "packageName": "jsonwebtoken", + "proprietary": false, + "creationTime": "2022-12-22T09:14:27.155728Z", + "functions_new": [], + "alternativeIds": [], + "disclosureTime": "2022-12-22T03:33:19Z", + "packageManager": "npm", + "publicationTime": "2022-12-22T09:16:03.621406Z", + "modificationTime": "2023-02-28T01:10:17.572355Z", + "socialTrendAlert": false, + "severityWithCritical": "medium", + "from": [ + "juice-shop@15.3.0", + "jsonwebtoken@0.4.0" + ], + "upgradePath": [ + false, + "jsonwebtoken@9.0.0" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "jsonwebtoken", + "version": "0.4.0" + }, + { + "id": "SNYK-JS-JSONWEBTOKEN-3180026", + "title": "Use of a Broken or Risky Cryptographic Algorithm", + "CVSSv3": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N", + "credit": [ + "Unknown" + ], + "semver": { + "vulnerable": [ + "<9.0.0" + ] + }, + "exploit": "Not Defined", + "fixedIn": [ + "9.0.0" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "medium", + "cvssScore": 6.8, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "jsonwebtoken", + "references": [ + { + "url": "https://github.com/auth0/node-jsonwebtoken/commit/e1fa9dcc12054a8681db4e6373da1b30cf7016e3", + "title": "GitHub Commit" + }, + { + "url": "https://github.com/auth0/node-jsonwebtoken/releases/tag/v9.0.0", + "title": "GitHub Release" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "high", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N", + "cvssV3BaseScore": 8.1, + "modificationTime": "2022-12-31T01:11:45.823807Z" + } + ], + "description": "## Overview\n[jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) is a JSON Web Token implementation (symmetric and asymmetric)\n\nAffected versions of this package are vulnerable to Use of a Broken or Risky Cryptographic Algorithm such that the library can be misconfigured to use legacy, insecure key types for signature verification. For example, DSA keys could be used with the RS256 algorithm. \r\n\r\n## Exploitability\r\n\r\nUsers are affected when using an algorithm and a key type _other_ than the combinations mentioned below:\r\n\r\nEC: ES256, ES384, ES512\r\n \r\nRSA: RS256, RS384, RS512, PS256, PS384, PS512 \r\n\r\nRSA-PSS: PS256, PS384, PS512 \r\n\r\nAnd for Elliptic Curve algorithms:\r\n\r\nES256: prime256v1\r\n\r\nES384: secp384r1\r\n\r\nES512: secp521r1 \r\n\r\n## Workaround \r\n\r\nUsers who are unable to upgrade to the fixed version can use the `allowInvalidAsymmetricKeyTypes` option to `true` in the `sign()` and `verify()` functions to continue usage of invalid key type/algorithm combination in 9.0.0 for legacy compatibility.\n## Remediation\nUpgrade `jsonwebtoken` to version 9.0.0 or higher.\n## References\n- [GitHub Commit](https://github.com/auth0/node-jsonwebtoken/commit/e1fa9dcc12054a8681db4e6373da1b30cf7016e3)\n- [GitHub Release](https://github.com/auth0/node-jsonwebtoken/releases/tag/v9.0.0)\n", + "epssDetails": { + "percentile": "0.17011", + "probability": "0.00050", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2022-23539" + ], + "CWE": [ + "CWE-327" + ], + "GHSA": [ + "GHSA-8cf7-32gw-wr33" + ] + }, + "packageName": "jsonwebtoken", + "proprietary": false, + "creationTime": "2022-12-22T09:19:03.430735Z", + "functions_new": [], + "alternativeIds": [], + "disclosureTime": "2022-12-22T03:32:22Z", + "packageManager": "npm", + "publicationTime": "2022-12-22T10:32:50.173080Z", + "modificationTime": "2023-01-01T13:30:43.098324Z", + "socialTrendAlert": false, + "severityWithCritical": "medium", + "from": [ + "juice-shop@15.3.0", + "jsonwebtoken@0.4.0" + ], + "upgradePath": [ + false, + "jsonwebtoken@9.0.0" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "jsonwebtoken", + "version": "0.4.0" + }, + { + "id": "npm:jsonwebtoken:20150331", + "title": "Authentication Bypass", + "CVSSv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N/E:P", + "credit": [ + "Tim McLean" + ], + "semver": { + "vulnerable": [ + "<4.2.2" + ] + }, + "exploit": "Proof of Concept", + "fixedIn": [ + "4.2.2" + ], + "patches": [ + { + "id": "patch:npm:jsonwebtoken:20150331:0", + "urls": [ + "https://snyk-patches.s3.amazonaws.com/npm/jsonwebtoken/20150331/jsonwebtoken_20150331_0_0_1bb584bc382295eeb7ee8c4452a673a77a68b687_snyk.patch" + ], + "version": "=4.0.0 || =4.1.0 || =4.2.1", + "comments": [], + "modificationTime": "2019-12-03T11:40:45.753281Z" + } + ], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "high", + "cvssScore": 7.5, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "jsonwebtoken", + "references": [ + { + "url": "https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/", + "title": "Auth0 Blog" + }, + { + "url": "https://github.com/auth0/node-jsonwebtoken/commit/1bb584bc382295eeb7ee8c4452a673a77a68b687", + "title": "GitHub Commit" + }, + { + "url": "https://github.com/WinDyAlphA/CVE-2015-9235_JWT_key_confusion", + "title": "PoC" + }, + { + "url": "https://www.timmclean.net/2015/02/25/jwt-alg-none.html", + "title": "Tim McLean Blog" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "critical", + "cvssV3Vector": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", + "cvssV3BaseScore": 9.8, + "modificationTime": "2022-01-03T17:48:53.018995Z" + } + ], + "description": "## Overview\r\n[`jsonwebtoken`](https://www.npmjs.com/package/jsonwebtoken) is a JSON Web token implementation for symmetric and asymmetric keys.\r\nAffected versions of this package are vulnerable to an Authentication Bypass attack, due to the \"algorithm\" not being enforced. Attackers are given the opportunity to choose the algorithm sent to the server and generate signatures with arbitrary contents. The server expects an asymmetric key (RSA) but is sent a symmetric key (HMAC-SHA) with RSA's public key, so instead of going through a key validation process, the server will think the public key is actually an HMAC private key.\r\n\r\n## Remediation\r\nUpgrade `jsonwebtoken` to version 4.2.2 or greater.\r\n\r\n## References\r\n- [GitHub Commit](https://github.com/auth0/node-jsonwebtoken/commit/1bb584bc382295eeb7ee8c4452a673a77a68b687)\r\n- [Tim McLean Blog](https://www.timmclean.net/2015/02/25/jwt-alg-none.html)\r\n- [Auth0 Blog](https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/)", + "epssDetails": { + "percentile": "0.75071", + "probability": "0.00559", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2015-9235" + ], + "CWE": [ + "CWE-592" + ], + "NSP": [ + "17" + ], + "GHSA": [ + "GHSA-c7hr-j4mj-j2w6" + ], + "ALTERNATIVE": [ + "SNYK-JS-JSONWEBTOKEN-10037" + ] + }, + "packageName": "jsonwebtoken", + "proprietary": false, + "creationTime": "2015-03-31T16:00:00Z", + "functions_new": [], + "alternativeIds": [ + "SNYK-JS-JSONWEBTOKEN-10037" + ], + "disclosureTime": "2015-03-31T16:00:00Z", + "packageManager": "npm", + "publicationTime": "2015-03-31T16:00:00Z", + "modificationTime": "2023-09-29T09:15:01.983455Z", + "socialTrendAlert": false, + "severityWithCritical": "high", + "from": [ + "juice-shop@15.3.0", + "jsonwebtoken@0.4.0" + ], + "upgradePath": [ + false, + "jsonwebtoken@5.0.0" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "jsonwebtoken", + "version": "0.4.0" + }, + { + "id": "SNYK-JS-SANITIZEHTML-1070780", + "title": "Validation Bypass", + "CVSSv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N/E:P", + "credit": [ + "Ron Masas", + "Checkmarx" + ], + "semver": { + "vulnerable": [ + "<2.3.2" + ] + }, + "exploit": "Proof of Concept", + "fixedIn": [ + "2.3.2" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "medium", + "cvssScore": 6.5, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "sanitize-html", + "references": [ + { + "url": "https://github.com/apostrophecms/sanitize-html/commit/6012524e7824a2c8f6782b2bc5f93b1261723403", + "title": "GitHub Commit" + }, + { + "url": "https://github.com/apostrophecms/sanitize-html/pull/460", + "title": "GitHub PR" + }, + { + "url": "https://advisory.checkmarx.net/advisory/CX-2021-4309", + "title": "POC: Potential Exploit" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "medium", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", + "cvssV3BaseScore": 5.3, + "modificationTime": "2022-01-03T16:36:59.234021Z" + }, + { + "assigner": "Red Hat", + "severity": "medium", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", + "cvssV3BaseScore": 5.3, + "modificationTime": "2023-11-08T09:37:50.578095Z" + } + ], + "description": "## Overview\n[sanitize-html](https://github.com/punkave/sanitize-html) is a library that allows you to clean up user-submitted HTML, preserving whitelisted elements and whitelisted attributes on a per-element basis\n\nAffected versions of this package are vulnerable to Validation Bypass. There is no proper validation of the hostnames set by the `allowedIframeHostnames` option when the `allowIframeRelativeUrls` is set to `true`. This allows attackers to bypass the hostname whitelist for the iframe element.\n## Details\n\nA cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.\n\nThis is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.\n\nInjecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.\n\nEscaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, `<` can be coded as `<`; and `>` can be coded as `>`; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses `<` and `>` as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.\n \nThe most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware. \n\n### Types of attacks\nThere are a few methods by which XSS can be manipulated:\n\n|Type|Origin|Description|\n|--|--|--|\n|**Stored**|Server|The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link.|\n|**Reflected**|Server|The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser.| \n|**DOM-based**|Client|The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data.|\n|**Mutated**| |The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters.|\n\n### Affected environments\nThe following environments are susceptible to an XSS attack:\n\n* Web servers\n* Application servers\n* Web application environments\n\n### How to prevent\nThis section describes the top best practices designed to specifically protect your code: \n\n* Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches. \n* Convert special characters such as `?`, `&`, `/`, `<`, `>` and spaces to their respective HTML or URL encoded equivalents. \n* Give users the option to disable client-side scripts.\n* Redirect invalid requests.\n* Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.\n* Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.\n* Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.\n\n## Remediation\nUpgrade `sanitize-html` to version 2.3.2 or higher.\n## References\n- [GitHub Commit](https://github.com/apostrophecms/sanitize-html/commit/6012524e7824a2c8f6782b2bc5f93b1261723403)\n- [GitHub PR](https://github.com/apostrophecms/sanitize-html/pull/460)\n- [POC: Potential Exploit](https://advisory.checkmarx.net/advisory/CX-2021-4309)\n", + "epssDetails": { + "percentile": "0.48819", + "probability": "0.00137", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2021-26540" + ], + "CWE": [ + "CWE-20" + ], + "GHSA": [ + "GHSA-mjxr-4v3x-q3m4" + ] + }, + "packageName": "sanitize-html", + "proprietary": false, + "creationTime": "2021-02-09T08:21:52.232749Z", + "functions_new": [], + "alternativeIds": [], + "disclosureTime": "2021-02-09T08:07:33Z", + "packageManager": "npm", + "publicationTime": "2021-02-09T16:34:45.881363Z", + "modificationTime": "2023-11-08T09:37:50.578095Z", + "socialTrendAlert": false, + "severityWithCritical": "medium", + "from": [ + "juice-shop@15.3.0", + "sanitize-html@1.4.2" + ], + "upgradePath": [ + false, + "sanitize-html@2.3.2" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "sanitize-html", + "version": "1.4.2" + }, + { + "id": "SNYK-JS-SANITIZEHTML-1070786", + "title": "Access Restriction Bypass", + "CVSSv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", + "credit": [ + "Ron Masas", + "Checkmarx" + ], + "semver": { + "vulnerable": [ + "<2.3.1" + ] + }, + "exploit": "Not Defined", + "fixedIn": [ + "2.3.1" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "medium", + "cvssScore": 6.5, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "sanitize-html", + "references": [ + { + "url": "https://github.com/apostrophecms/sanitize-html/pull/458", + "title": "GitHub PR" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "medium", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", + "cvssV3BaseScore": 5.3, + "modificationTime": "2022-04-27T01:10:36.338203Z" + }, + { + "assigner": "Red Hat", + "severity": "medium", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", + "cvssV3BaseScore": 5.3, + "modificationTime": "2023-11-08T09:37:50.738101Z" + } + ], + "description": "## Overview\n[sanitize-html](https://github.com/punkave/sanitize-html) is a library that allows you to clean up user-submitted HTML, preserving whitelisted elements and whitelisted attributes on a per-element basis\n\nAffected versions of this package are vulnerable to Access Restriction Bypass. Internationalized domain name (IDN) is not properly handled. This allows attackers to bypass hostname whitelist validation set by the `allowedIframeHostnames` option.\n## Remediation\nUpgrade `sanitize-html` to version 2.3.1 or higher.\n## References\n- [GitHub PR](https://github.com/apostrophecms/sanitize-html/pull/458)\n", + "epssDetails": { + "percentile": "0.48819", + "probability": "0.00137", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2021-26539" + ], + "CWE": [ + "CWE-20" + ], + "GHSA": [ + "GHSA-rjqq-98f6-6j3r" + ] + }, + "packageName": "sanitize-html", + "proprietary": false, + "creationTime": "2021-02-09T08:37:16.368073Z", + "functions_new": [], + "alternativeIds": [], + "disclosureTime": "2021-02-09T08:21:55Z", + "packageManager": "npm", + "publicationTime": "2021-02-09T16:34:49Z", + "modificationTime": "2023-11-08T09:37:50.738101Z", + "socialTrendAlert": false, + "severityWithCritical": "medium", + "from": [ + "juice-shop@15.3.0", + "sanitize-html@1.4.2" + ], + "upgradePath": [ + false, + "sanitize-html@2.3.1" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "sanitize-html", + "version": "1.4.2" + }, + { + "id": "SNYK-JS-SANITIZEHTML-2957526", + "title": "Regular Expression Denial of Service (ReDoS)", + "CVSSv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", + "credit": [ + "Nariyoshi Chida of NTT Security Japan" + ], + "semver": { + "vulnerable": [ + "<2.7.1" + ] + }, + "exploit": "Not Defined", + "fixedIn": [ + "2.7.1" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "medium", + "cvssScore": 5.3, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "sanitize-html", + "references": [ + { + "url": "https://github.com/apostrophecms/sanitize-html/commit/b4682c12fd30e12e82fa2d9b766de91d7d2cd23c", + "title": "GitHub Commit" + }, + { + "url": "https://github.com/apostrophecms/sanitize-html/pull/557", + "title": "GitHub PR" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "high", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", + "cvssV3BaseScore": 7.5, + "modificationTime": "2022-09-02T01:11:51.670814Z" + }, + { + "assigner": "Red Hat", + "severity": "medium", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", + "cvssV3BaseScore": 5.3, + "modificationTime": "2023-11-08T09:37:50.786715Z" + } + ], + "description": "## Overview\n[sanitize-html](https://github.com/punkave/sanitize-html) is a library that allows you to clean up user-submitted HTML, preserving whitelisted elements and whitelisted attributes on a per-element basis\n\nAffected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) due to insecure global regular expression replacement logic of HTML comment removal.\n\n## Details\n\nDenial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.\n\nThe Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.\n\nLet’s take the following regular expression as an example:\n```js\nregex = /A(B|C+)+D/\n```\n\nThis regular expression accomplishes the following:\n- `A` The string must start with the letter 'A'\n- `(B|C+)+` The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the `+` matches one or more times). The `+` at the end of this section states that we can look for one or more matches of this section.\n- `D` Finally, we ensure this section of the string ends with a 'D'\n\nThe expression would match inputs such as `ABBD`, `ABCCCCD`, `ABCBCCCD` and `ACCCCCD`\n\nIt most cases, it doesn't take very long for a regex engine to find a match:\n\n```bash\n$ time node -e '/A(B|C+)+D/.test(\"ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD\")'\n0.04s user 0.01s system 95% cpu 0.052 total\n\n$ time node -e '/A(B|C+)+D/.test(\"ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX\")'\n1.79s user 0.02s system 99% cpu 1.812 total\n```\n\nThe entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.\n\nMost Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as _catastrophic backtracking_.\n\nLet's look at how our expression runs into this problem, using a shorter string: \"ACCCX\". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:\n1. CCC\n2. CC+C\n3. C+CC\n4. C+C+C.\n\nThe engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use [RegEx 101 debugger](https://regex101.com/debugger) to see the engine has to take a total of 38 steps before it can determine the string doesn't match.\n\nFrom there, the number of steps the engine must use to validate a string just continues to grow.\n\n| String | Number of C's | Number of steps |\n| -------|-------------:| -----:|\n| ACCCX | 3 | 38\n| ACCCCX | 4 | 71\n| ACCCCCX | 5 | 136\n| ACCCCCCCCCCCCCCX | 14 | 65,553\n\n\nBy the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.\n\n## Remediation\nUpgrade `sanitize-html` to version 2.7.1 or higher.\n## References\n- [GitHub Commit](https://github.com/apostrophecms/sanitize-html/commit/b4682c12fd30e12e82fa2d9b766de91d7d2cd23c)\n- [GitHub PR](https://github.com/apostrophecms/sanitize-html/pull/557)\n", + "epssDetails": { + "percentile": "0.44428", + "probability": "0.00112", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2022-25887" + ], + "CWE": [ + "CWE-1333" + ] + }, + "packageName": "sanitize-html", + "proprietary": true, + "creationTime": "2022-07-21T08:00:56.827849Z", + "functions_new": [], + "alternativeIds": [], + "disclosureTime": "2022-07-21T07:37:40Z", + "packageManager": "npm", + "publicationTime": "2022-08-29T13:28:12.439235Z", + "modificationTime": "2023-11-08T09:37:50.786715Z", + "socialTrendAlert": false, + "severityWithCritical": "medium", + "from": [ + "juice-shop@15.3.0", + "sanitize-html@1.4.2" + ], + "upgradePath": [ + false, + "sanitize-html@2.7.1" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "sanitize-html", + "version": "1.4.2" + }, + { + "id": "SNYK-JS-SANITIZEHTML-585892", + "title": "Arbitrary Code Execution", + "CVSSv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L", + "credit": [ + "mikesamuel" + ], + "semver": { + "vulnerable": [ + "<2.0.0-beta" + ] + }, + "exploit": "Not Defined", + "fixedIn": [ + "2.0.0-beta" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "critical", + "cvssScore": 9.4, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "sanitize-html", + "references": [ + { + "url": "https://github.com/apostrophecms/sanitize-html/pull/156", + "title": "GitHub PR" + } + ], + "cvssDetails": [], + "description": "## Overview\n[sanitize-html](https://github.com/punkave/sanitize-html) is a library that allows you to clean up user-submitted HTML, preserving whitelisted elements and whitelisted attributes on a per-element basis\n\nAffected versions of this package are vulnerable to Arbitrary Code Execution. Tag transformations which turn an attribute value into a text node using `transformTags` could be vulnerable to code execution.\n## Remediation\nUpgrade `sanitize-html` to version 2.0.0-beta or higher.\n## References\n- [GitHub PR](https://github.com/apostrophecms/sanitize-html/pull/156)\n", + "epssDetails": null, + "identifiers": { + "CVE": [], + "CWE": [ + "CWE-94" + ] + }, + "packageName": "sanitize-html", + "proprietary": false, + "creationTime": "2020-07-17T15:02:43.082824Z", + "functions_new": [], + "alternativeIds": [], + "disclosureTime": "2020-09-07T09:46:18Z", + "packageManager": "npm", + "publicationTime": "2020-09-07T09:46:10Z", + "modificationTime": "2020-09-07T15:37:06.961614Z", + "socialTrendAlert": false, + "severityWithCritical": "critical", + "from": [ + "juice-shop@15.3.0", + "sanitize-html@1.4.2" + ], + "upgradePath": [ + false, + "sanitize-html@2.0.0" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "sanitize-html", + "version": "1.4.2" + }, + { + "id": "npm:sanitize-html:20141024", + "title": "Cross-site Scripting (XSS)", + "CVSSv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N", + "credit": [ + "Unknown" + ], + "semver": { + "vulnerable": [ + "<1.4.3" + ] + }, + "exploit": "Not Defined", + "fixedIn": [ + "1.4.3" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "medium", + "cvssScore": 4.3, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "sanitize-html", + "references": [ + { + "url": "https://raw.githubusercontent.com/distributedweaknessfiling/cvelist/master/2016/1000xxx/CVE-2016-1000237.json", + "title": "CVE" + }, + { + "url": "https://github.com/punkave/sanitize-html/issues/29", + "title": "GitHub Issue" + }, + { + "url": "https://nodesecurity.io/advisories/135", + "title": "Node Security Advisories" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "medium", + "cvssV3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N", + "cvssV3BaseScore": 6.1, + "modificationTime": "2022-01-03T17:40:52.414772Z" + } + ], + "description": "## Overview\r\n\r\nSince the sanitize-html module trusts 'text' coming from htmlparser2, and outputs it without further escaping (because htmlparser2 does not decode entities in text before delivering it), this results in an XSS attack vector if sanitize-html ignores the img tag (according to user-configured filter rules) but passes the text intact, as it must do to keep any text in documents.\r\n\r\n\r\n## References\r\n- https://github.com/punkave/sanitize-html/issues/29", + "epssDetails": { + "percentile": "0.47924", + "probability": "0.00132", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2016-1000237" + ], + "CWE": [ + "CWE-79" + ], + "GHSA": [ + "GHSA-3j7m-hmh3-9jmp" + ], + "ALTERNATIVE": [ + "SNYK-JS-SANITIZEHTML-10048" + ] + }, + "packageName": "sanitize-html", + "proprietary": false, + "creationTime": "2015-11-06T02:09:36.180000Z", + "functions_new": [], + "alternativeIds": [ + "SNYK-JS-SANITIZEHTML-10048" + ], + "disclosureTime": "2015-11-06T02:09:36Z", + "packageManager": "npm", + "publicationTime": "2015-11-06T02:09:36Z", + "modificationTime": "2022-01-03T17:40:52.414772Z", + "socialTrendAlert": false, + "severityWithCritical": "medium", + "from": [ + "juice-shop@15.3.0", + "sanitize-html@1.4.2" + ], + "upgradePath": [ + false, + "sanitize-html@1.4.3" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "sanitize-html", + "version": "1.4.2" + }, + { + "id": "npm:sanitize-html:20160801", + "title": "Cross-site Scripting (XSS)", + "CVSSv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N", + "credit": [ + "Björn Kimminich" + ], + "semver": { + "vulnerable": [ + "<=1.4.2" + ] + }, + "exploit": "Not Defined", + "fixedIn": [], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "medium", + "cvssScore": 4.7, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "sanitize-html", + "references": [ + { + "url": "https://github.com/punkave/sanitize-html/commit/762fbc7bba389f3f789cc291c1eb2b64f60f2caf", + "title": "GitHub Commit" + }, + { + "url": "https://github.com/punkave/sanitize-html/issues/29", + "title": "GitHub Issue" + } + ], + "cvssDetails": [], + "description": "## Overview\nSanitization of HTML strings is not applied recursively to input, allowing an attacker to potentially inject script and other markup.\n\nSource: _Node Security Project_\n\n## Details\nA cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.\r\n\r\nThis is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.\r\n\r\nֿInjecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.\r\n\r\nEscaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, `<` can be coded as `<`; and `>` can be coded as `>`; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses `<` and `>` as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.\r\n \r\nThe most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware. \r\n\r\n### Types of attacks\r\nThere are a few methods by which XSS can be manipulated:\r\n\r\n|Type|Origin|Description|\r\n|--|--|--|\r\n|**Stored**|Server|The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link.|\r\n|**Reflected**|Server|The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser.| \r\n|**DOM-based**|Client|The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data.|\r\n|**Mutated**| |The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters.|\r\n\r\n### Affected environments\r\nThe following environments are susceptible to an XSS attack:\r\n\r\n* Web servers\r\n* Application servers\r\n* Web application environments\r\n\r\n### How to prevent\r\nThis section describes the top best practices designed to specifically protect your code: \r\n\r\n* Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches. \r\n* Convert special characters such as `?`, `&`, `/`, `<`, `>` and spaces to their respective HTML or URL encoded equivalents. \r\n* Give users the option to disable client-side scripts.\r\n* Redirect invalid requests.\r\n* Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.\r\n* Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.\r\n* Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.\n\n\n## Remediation\nUpgrade `sanitize-html` to `1.4.3` or later\n\n## References\n- https://github.com/punkave/sanitize-html/issues/29\n- https://github.com/punkave/sanitize-html/commit/762fbc7bba389f3f789cc291c1eb2b64f60f2caf\n\n", + "epssDetails": null, + "identifiers": { + "CVE": [], + "CWE": [ + "CWE-79" + ], + "NSP": [ + "135" + ], + "ALTERNATIVE": [ + "SNYK-JS-SANITIZEHTML-10127" + ] + }, + "packageName": "sanitize-html", + "proprietary": false, + "creationTime": "2016-08-02T08:28:08.097000Z", + "functions_new": [], + "alternativeIds": [ + "SNYK-JS-SANITIZEHTML-10127" + ], + "disclosureTime": "2016-08-01T18:02:31Z", + "packageManager": "npm", + "publicationTime": "2016-08-01T18:02:31Z", + "modificationTime": "2020-12-14T14:41:17.951016Z", + "socialTrendAlert": false, + "severityWithCritical": "medium", + "from": [ + "juice-shop@15.3.0", + "sanitize-html@1.4.2" + ], + "upgradePath": [ + false, + "sanitize-html@1.4.3" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "sanitize-html", + "version": "1.4.2" + }, + { + "id": "npm:sanitize-html:20161026", + "title": "Cross-site Scripting (XSS)", + "CVSSv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N/E:F/RL:O/RC:C", + "credit": [ + "Andrew Krasichkov" + ], + "semver": { + "vulnerable": [ + "<1.11.4" + ] + }, + "exploit": "Functional", + "fixedIn": [ + "1.11.4" + ], + "patches": [], + "insights": { + "triageAdvice": null + }, + "language": "js", + "severity": "medium", + "cvssScore": 5.4, + "functions": [], + "malicious": false, + "isDisputed": false, + "moduleName": "sanitize-html", + "references": [ + { + "url": "https://github.com/punkave/sanitize-html/commit/5d205a1005ba0df80e21d8c64a15bb3accdb2403", + "title": "GitHub Commit" + }, + { + "url": "https://github.com/punkave/sanitize-html/issues/100", + "title": "GitHub Issue" + } + ], + "cvssDetails": [ + { + "assigner": "NVD", + "severity": "medium", + "cvssV3Vector": "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N", + "cvssV3BaseScore": 6.1, + "modificationTime": "2022-01-03T16:21:19.197646Z" + } + ], + "description": "## Overview\n[`sanitize-html`](https://www.npmjs.com/package/sanitize-html) is a library for scrubbing html input of malicious values.\n\nAffected versions of this package are vulnerable to Cross-site Scripting (XSS) attacks. If at least one `nonTextTags` tag is allowed, a malicious user may potentially conduct an XSS attack.\n\n**PoC:**\n```js\nvar sanitizeHtml = require('sanitize-html');\n\nvar dirty = '!!';\nvar clean = sanitizeHtml(dirty, {\n allowedTags: [ 'textarea' ]\n});\n\nconsole.log(clean);\n\n// !!\n```\n\n## Details\nA cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.\r\n\r\nThis is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.\r\n\r\nֿInjecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.\r\n\r\nEscaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, `<` can be coded as `<`; and `>` can be coded as `>`; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses `<` and `>` as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.\r\n \r\nThe most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware. \r\n\r\n### Types of attacks\r\nThere are a few methods by which XSS can be manipulated:\r\n\r\n|Type|Origin|Description|\r\n|--|--|--|\r\n|**Stored**|Server|The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link.|\r\n|**Reflected**|Server|The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser.| \r\n|**DOM-based**|Client|The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data.|\r\n|**Mutated**| |The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters.|\r\n\r\n### Affected environments\r\nThe following environments are susceptible to an XSS attack:\r\n\r\n* Web servers\r\n* Application servers\r\n* Web application environments\r\n\r\n### How to prevent\r\nThis section describes the top best practices designed to specifically protect your code: \r\n\r\n* Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches. \r\n* Convert special characters such as `?`, `&`, `/`, `<`, `>` and spaces to their respective HTML or URL encoded equivalents. \r\n* Give users the option to disable client-side scripts.\r\n* Redirect invalid requests.\r\n* Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.\r\n* Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.\r\n* Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.\n\n\n## Remediation\nUpgrade `sanitize-html` to version 1.11.4 or later.\n\n## References\n- [GitHub Issue](https://github.com/punkave/sanitize-html/issues/100)\n- [GitHub Commit](https://github.com/punkave/sanitize-html/commit/5d205a1005ba0df80e21d8c64a15bb3accdb2403)\n", + "epssDetails": { + "percentile": "0.35000", + "probability": "0.00084", + "modelVersion": "v2023.03.01" + }, + "identifiers": { + "CVE": [ + "CVE-2017-16016" + ], + "CWE": [ + "CWE-79" + ], + "NSP": [ + "154" + ], + "GHSA": [ + "GHSA-xc6g-ggrc-qq4r" + ], + "ALTERNATIVE": [ + "SNYK-JS-SANITIZEHTML-10461" + ] + }, + "packageName": "sanitize-html", + "proprietary": false, + "creationTime": "2017-04-12T10:49:58.283000Z", + "functions_new": [], + "alternativeIds": [ + "SNYK-JS-SANITIZEHTML-10461" + ], + "disclosureTime": "2016-03-26T23:49:58.283000Z", + "packageManager": "npm", + "publicationTime": "2017-04-12T11:00:58.283000Z", + "modificationTime": "2022-01-03T16:21:19.197646Z", + "socialTrendAlert": false, + "severityWithCritical": "medium", + "from": [ + "juice-shop@15.3.0", + "sanitize-html@1.4.2" + ], + "upgradePath": [ + false, + "sanitize-html@1.11.4" + ], + "isUpgradable": true, + "isPatchable": false, + "name": "sanitize-html", + "version": "1.4.2" + } + ], + "ok": false, + "dependencyCount": 71, + "org": "sarim04", + "policy": "# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.\nversion: v1.25.1\nignore: {}\npatch: {}\n", + "isPrivate": true, + "licensesPolicy": { + "severities": {}, + "orgLicenseRules": { + "AGPL-1.0": { + "licenseType": "AGPL-1.0", + "severity": "high", + "instructions": "" + }, + "AGPL-3.0": { + "licenseType": "AGPL-3.0", + "severity": "high", + "instructions": "" + }, + "Artistic-1.0": { + "licenseType": "Artistic-1.0", + "severity": "medium", + "instructions": "" + }, + "Artistic-2.0": { + "licenseType": "Artistic-2.0", + "severity": "medium", + "instructions": "" + }, + "CDDL-1.0": { + "licenseType": "CDDL-1.0", + "severity": "medium", + "instructions": "" + }, + "CPOL-1.02": { + "licenseType": "CPOL-1.02", + "severity": "high", + "instructions": "" + }, + "EPL-1.0": { + "licenseType": "EPL-1.0", + "severity": "medium", + "instructions": "" + }, + "GPL-2.0": { + "licenseType": "GPL-2.0", + "severity": "high", + "instructions": "" + }, + "GPL-3.0": { + "licenseType": "GPL-3.0", + "severity": "high", + "instructions": "" + }, + "LGPL-2.0": { + "licenseType": "LGPL-2.0", + "severity": "medium", + "instructions": "" + }, + "LGPL-2.1": { + "licenseType": "LGPL-2.1", + "severity": "medium", + "instructions": "" + }, + "LGPL-3.0": { + "licenseType": "LGPL-3.0", + "severity": "medium", + "instructions": "" + }, + "MPL-1.1": { + "licenseType": "MPL-1.1", + "severity": "medium", + "instructions": "" + }, + "MPL-2.0": { + "licenseType": "MPL-2.0", + "severity": "medium", + "instructions": "" + }, + "MS-RL": { + "licenseType": "MS-RL", + "severity": "medium", + "instructions": "" + }, + "SimPL-2.0": { + "licenseType": "SimPL-2.0", + "severity": "high", + "instructions": "" + } + } + }, + "packageManager": "npm", + "ignoreSettings": { + "adminOnly": false, + "reasonRequired": false, + "disregardFilesystemIgnores": false + }, + "docker": {}, + "summary": "12 vulnerable dependency paths", + "remediation": { + "unresolved": [], + "upgrade": { + "express-jwt@0.1.3": { + "upgradeTo": "express-jwt@6.0.0", + "upgrades": [ + "express-jwt@0.1.3" + ], + "vulns": [ + "SNYK-JS-EXPRESSJWT-575022" + ] + }, + "jsonwebtoken@0.4.0": { + "upgradeTo": "jsonwebtoken@9.0.0", + "upgrades": [ + "jsonwebtoken@0.4.0", + "jsonwebtoken@0.4.0", + "jsonwebtoken@0.4.0", + "jsonwebtoken@0.4.0" + ], + "vulns": [ + "SNYK-JS-JSONWEBTOKEN-3180022", + "SNYK-JS-JSONWEBTOKEN-3180024", + "SNYK-JS-JSONWEBTOKEN-3180026", + "npm:jsonwebtoken:20150331" + ] + }, + "sanitize-html@1.4.2": { + "upgradeTo": "sanitize-html@2.7.1", + "upgrades": [ + "sanitize-html@1.4.2", + "sanitize-html@1.4.2", + "sanitize-html@1.4.2", + "sanitize-html@1.4.2", + "sanitize-html@1.4.2", + "sanitize-html@1.4.2", + "sanitize-html@1.4.2" + ], + "vulns": [ + "SNYK-JS-SANITIZEHTML-2957526", + "SNYK-JS-SANITIZEHTML-1070780", + "SNYK-JS-SANITIZEHTML-1070786", + "SNYK-JS-SANITIZEHTML-585892", + "npm:sanitize-html:20161026", + "npm:sanitize-html:20141024", + "npm:sanitize-html:20160801" + ] + } + }, + "patch": {}, + "ignore": {}, + "pin": {} + }, + "filesystemPolicy": false, + "filtered": { + "ignore": [], + "patch": [] + }, + "uniqueCount": 12, + "targetFile": "/juice-shop/package.json", + "projectName": "juice-shop", + "displayTargetFile": "/juice-shop/package.json", + "hasUnknownVersions": false, + "path": "sarim04/juiceshop:latest" + } + ] + } + \ No newline at end of file diff --git a/unittests/tools/test_snyk_parser.py b/unittests/tools/test_snyk_parser.py index 18018c95582..cb0b9db02c4 100644 --- a/unittests/tools/test_snyk_parser.py +++ b/unittests/tools/test_snyk_parser.py @@ -182,3 +182,16 @@ def test_snykcode_issue_9270(self): parser = SnykParser() findings = parser.get_findings(testfile, Test()) self.assertEqual(39, len(findings)) + + def test_snykcode_issue_9270_epss(self): + with open("unittests/scans/snyk/snykcode_issue_epss.json") as testfile: + parser = SnykParser() + findings = parser.get_findings(testfile, Test()) + self.assertEqual(1, len(findings)) + self.assertEqual(0.00046, findings[0].epss_score) + self.assertEqual(0.14414, findings[0].epss_percentile) + self.assertEqual( + "Docker-Image|sarim04/Juiceshop@latest: CVE-2023-4039", + findings[0].title, + ) + From a0e5c1b4784315235cb72e5a9b75d66108ddf5d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quirin=20Zie=C3=9Fler?= Date: Mon, 12 Feb 2024 14:25:46 +0100 Subject: [PATCH 02/61] flake8 --- unittests/tools/test_snyk_parser.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/unittests/tools/test_snyk_parser.py b/unittests/tools/test_snyk_parser.py index cb0b9db02c4..68d1795ab81 100644 --- a/unittests/tools/test_snyk_parser.py +++ b/unittests/tools/test_snyk_parser.py @@ -182,7 +182,7 @@ def test_snykcode_issue_9270(self): parser = SnykParser() findings = parser.get_findings(testfile, Test()) self.assertEqual(39, len(findings)) - + def test_snykcode_issue_9270_epss(self): with open("unittests/scans/snyk/snykcode_issue_epss.json") as testfile: parser = SnykParser() @@ -191,7 +191,6 @@ def test_snykcode_issue_9270_epss(self): self.assertEqual(0.00046, findings[0].epss_score) self.assertEqual(0.14414, findings[0].epss_percentile) self.assertEqual( - "Docker-Image|sarim04/Juiceshop@latest: CVE-2023-4039", - findings[0].title, - ) - + "Docker-Image|sarim04/Juiceshop@latest: CVE-2023-4039", + findings[0].title, + ) From 4662f95de0621246ae8cae75d06f36de7af771b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quirin=20Zie=C3=9Fler?= Date: Mon, 12 Feb 2024 17:20:41 +0100 Subject: [PATCH 03/61] :pencil2: --- unittests/tools/test_snyk_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittests/tools/test_snyk_parser.py b/unittests/tools/test_snyk_parser.py index 68d1795ab81..bf26abc3201 100644 --- a/unittests/tools/test_snyk_parser.py +++ b/unittests/tools/test_snyk_parser.py @@ -184,7 +184,7 @@ def test_snykcode_issue_9270(self): self.assertEqual(39, len(findings)) def test_snykcode_issue_9270_epss(self): - with open("unittests/scans/snyk/snykcode_issue_epss.json") as testfile: + with open("unittests/scans/snyk/snykcontainer_issue_epss.json") as testfile: parser = SnykParser() findings = parser.get_findings(testfile, Test()) self.assertEqual(1, len(findings)) From 5494156c1f339837317a36fb390e14cd605f3c07 Mon Sep 17 00:00:00 2001 From: Colm O hEigeartaigh Date: Tue, 6 Feb 2024 23:01:07 +0000 Subject: [PATCH 04/61] Parse GitHub vulnerability version (#9462) --- dojo/tools/github_vulnerability/parser.py | 3 + .../github-vuln-version.json | 106 ++++++++++++++++++ .../tools/test_github_vulnerability_parser.py | 15 +++ 3 files changed, 124 insertions(+) create mode 100644 unittests/scans/github_vulnerability/github-vuln-version.json diff --git a/dojo/tools/github_vulnerability/parser.py b/dojo/tools/github_vulnerability/parser.py index 15bf37606c9..3c134342d20 100644 --- a/dojo/tools/github_vulnerability/parser.py +++ b/dojo/tools/github_vulnerability/parser.py @@ -66,6 +66,9 @@ def get_findings(self, filename, test): if "vulnerableManifestPath" in alert: finding.file_path = alert["vulnerableManifestPath"] + if "vulnerableRequirements" in alert and alert["vulnerableRequirements"].startswith("= "): + finding.component_version = alert["vulnerableRequirements"][2:] + if "createdAt" in alert: finding.date = dateutil.parser.parse(alert["createdAt"]) diff --git a/unittests/scans/github_vulnerability/github-vuln-version.json b/unittests/scans/github_vulnerability/github-vuln-version.json new file mode 100644 index 00000000000..e80afe7e583 --- /dev/null +++ b/unittests/scans/github_vulnerability/github-vuln-version.json @@ -0,0 +1,106 @@ +{ + "data": { + "repository": { + "vulnerabilityAlerts": { + "nodes": [ + { + "id": "RVA_kwDOLJyUo88AAAABQUWapw", + "createdAt": "2024-01-26T02:42:32Z", + "vulnerableManifestPath": "sompath/pom.xml", + "securityVulnerability": { + "severity": "CRITICAL", + "updatedAt": "2022-12-09T22:02:22Z", + "package": { + "name": "org.springframework:spring-web", + "ecosystem": "MAVEN" + }, + "firstPatchedVersion": { + "identifier": "6.0.0" + }, + "vulnerableVersionRange": "< 6.0.0", + "advisory": { + "description": "Pivotal Spring Framework before 6.0.0 suffers from a potential remote code execution (RCE) issue if used for Java deserialization of untrusted data. Depending on how the library is implemented within a product, this issue may or not occur, and authentication may be required.\n\nMaintainers recommend investigating alternative components or a potential mitigating control. Version 4.2.6 and 3.2.17 contain [enhanced documentation](https://github.com/spring-projects/spring-framework/commit/5cbe90b2cd91b866a5a9586e460f311860e11cfa) advising users to take precautions against unsafe Java deserialization, version 5.3.0 [deprecate the impacted classes](https://github.com/spring-projects/spring-framework/issues/25379) and version 6.0.0 [removed it entirely](https://github.com/spring-projects/spring-framework/issues/27422).", + "summary": "Pivotal Spring Framework contains unsafe Java deserialization methods", + "identifiers": [ + { + "value": "GHSA-4wrc-f8pq-fpqp", + "type": "GHSA" + }, + { + "value": "CVE-2016-1000027", + "type": "CVE" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2016-1000027" + }, + { + "url": "https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-1000027" + }, + { + "url": "https://security-tracker.debian.org/tracker/CVE-2016-1000027" + }, + { + "url": "https://www.tenable.com/security/research/tra-2016-20" + }, + { + "url": "https://github.com/spring-projects/spring-framework/issues/24434" + }, + { + "url": "https://github.com/spring-projects/spring-framework/issues/24434#issuecomment-1231625331" + }, + { + "url": "https://github.com/spring-projects/spring-framework/commit/5cbe90b2cd91b866a5a9586e460f311860e11cfa" + }, + { + "url": "https://support.contrastsecurity.com/hc/en-us/articles/4402400830612-Spring-web-Java-Deserialization-CVE-2016-1000027" + }, + { + "url": "https://github.com/spring-projects/spring-framework/issues/21680" + }, + { + "url": "https://github.com/spring-projects/spring-framework/commit/2b051b8b321768a4cfef83077db65c6328ffd60f" + }, + { + "url": "https://jira.spring.io/browse/SPR-17143?redirect=false" + }, + { + "url": "https://github.com/spring-projects/spring-framework/issues/24434#issuecomment-579669626" + }, + { + "url": "https://github.com/spring-projects/spring-framework/issues/24434#issuecomment-582313417" + }, + { + "url": "https://github.com/spring-projects/spring-framework/issues/24434#issuecomment-744519525" + }, + { + "url": "https://security.netapp.com/advisory/ntap-20230420-0009/" + }, + { + "url": "https://spring.io/blog/2022/05/11/spring-framework-5-3-20-and-5-2-22-available-now" + }, + { + "url": "https://github.com/advisories/GHSA-4wrc-f8pq-fpqp" + } + ], + "cvss": { + "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" + } + } + }, + "state": "OPEN", + "vulnerableManifestFilename": "pom.xml", + "vulnerableRequirements": "= 5.3.29", + "number": 1, + "dependencyScope": "RUNTIME", + "dismissComment": null, + "dismissReason": null, + "dismissedAt": null, + "fixedAt": null + } + ] + } + } + } +} diff --git a/unittests/tools/test_github_vulnerability_parser.py b/unittests/tools/test_github_vulnerability_parser.py index acc955e3492..1453c02a39b 100644 --- a/unittests/tools/test_github_vulnerability_parser.py +++ b/unittests/tools/test_github_vulnerability_parser.py @@ -251,3 +251,18 @@ def test_parse_state(self): self.assertEqual(finding.file_path, "apache/cxf/cxf-shiro/pom.xml") self.assertEqual(finding.active, False) self.assertEqual(finding.is_mitigated, True) + + def test_parser_version(self): + testfile = open("unittests/scans/github_vulnerability/github-vuln-version.json") + parser = GithubVulnerabilityParser() + findings = parser.get_findings(testfile, Test()) + self.assertEqual(1, len(findings)) + for finding in findings: + finding.clean() + + with self.subTest(i=0): + finding = findings[0] + self.assertEqual(finding.title, "Pivotal Spring Framework contains unsafe Java deserialization methods") + self.assertEqual(finding.severity, "Critical") + self.assertEqual(finding.component_name, "org.springframework:spring-web") + self.assertEqual(finding.component_version, "5.3.29") From 6e11b512a4707f270e5bcf125c41a99459c24b77 Mon Sep 17 00:00:00 2001 From: Andrei Serebriakov Date: Wed, 7 Feb 2024 02:06:47 +0300 Subject: [PATCH 05/61] Fix SARIF parser with CodeQL rules (#9440) * fix for sarif parser with codeql rules * add check for extensions property * flake8 comparsion --- dojo/tools/sarif/parser.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dojo/tools/sarif/parser.py b/dojo/tools/sarif/parser.py index 14d81849570..e7963612b44 100644 --- a/dojo/tools/sarif/parser.py +++ b/dojo/tools/sarif/parser.py @@ -77,7 +77,10 @@ def __get_last_invocation_date(self, data): def get_rules(run): rules = {} - for item in run["tool"]["driver"].get("rules", []): + rules_array = run["tool"]["driver"].get("rules", []) + if len(rules_array) == 0 and run["tool"].get("extensions") is not None: + rules_array = run["tool"]["extensions"][0].get("rules", []) + for item in rules_array: rules[item["id"]] = item return rules From 77350af17d7c5cf089dee128befdc0153daf30fc Mon Sep 17 00:00:00 2001 From: Blake Owens <76979297+blakeaowens@users.noreply.github.com> Date: Fri, 9 Feb 2024 14:34:06 -0600 Subject: [PATCH 06/61] finding sla expiration date field (part two) (#9494) * finding sla expiration date field (part two) * sla violation check updates * clean up of finding violates_sla property * flake8 fix * Update dojo/models.py Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * Update 0201_populate_finding_sla_expiration_date.py --------- Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> --- ...01_populate_finding_sla_expiration_date.py | 133 ++++++++++++++++++ dojo/filters.py | 17 +-- dojo/models.py | 41 +++--- 3 files changed, 160 insertions(+), 31 deletions(-) create mode 100644 dojo/db_migrations/0201_populate_finding_sla_expiration_date.py diff --git a/dojo/db_migrations/0201_populate_finding_sla_expiration_date.py b/dojo/db_migrations/0201_populate_finding_sla_expiration_date.py new file mode 100644 index 00000000000..4b886301de7 --- /dev/null +++ b/dojo/db_migrations/0201_populate_finding_sla_expiration_date.py @@ -0,0 +1,133 @@ +from django.db import migrations +from django.utils import timezone +from datetime import datetime +from django.conf import settings +from dateutil.relativedelta import relativedelta +import logging + +from dojo.utils import get_work_days + +logger = logging.getLogger(__name__) + + +def calculate_sla_expiration_dates(apps, schema_editor): + System_Settings = apps.get_model('dojo', 'System_Settings') + + ss, _ = System_Settings.objects.get_or_create() + if not ss.enable_finding_sla: + return + + logger.info('Calculating SLA expiration dates for all findings') + + SLA_Configuration = apps.get_model('dojo', 'SLA_Configuration') + Finding = apps.get_model('dojo', 'Finding') + + findings = Finding.objects.filter(sla_expiration_date__isnull=True).order_by('id').only('id', 'sla_start_date', 'date', 'severity', 'test', 'mitigated') + + page_size = 1000 + total_count = Finding.objects.filter(id__gt=0).count() + logger.info('Found %d findings to be updated', total_count) + + i = 0 + batch = [] + last_id = 0 + total_pages = (total_count // page_size) + 2 + for p in range(1, total_pages): + page = findings.filter(id__gt=last_id)[:page_size] + for find in page: + i += 1 + last_id = find.id + + start_date = find.sla_start_date if find.sla_start_date else find.date + + sla_config = SLA_Configuration.objects.filter(id=find.test.engagement.product.sla_configuration_id).first() + sla_period = getattr(sla_config, find.severity.lower(), None) + + days = None + if settings.SLA_BUSINESS_DAYS: + if find.mitigated: + days = get_work_days(find.date, find.mitigated.date()) + else: + days = get_work_days(find.date, timezone.now().date()) + else: + if isinstance(start_date, datetime): + start_date = start_date.date() + + if find.mitigated: + days = (find.mitigated.date() - start_date).days + else: + days = (timezone.now().date() - start_date).days + + days = days if days > 0 else 0 + + days_remaining = None + if sla_period: + days_remaining = sla_period - days + + if days_remaining: + if find.mitigated: + find.sla_expiration_date = find.mitigated.date() + relativedelta(days=days_remaining) + else: + find.sla_expiration_date = timezone.now().date() + relativedelta(days=days_remaining) + + batch.append(find) + + if (i > 0 and i % page_size == 0): + Finding.objects.bulk_update(batch, ['sla_expiration_date']) + batch = [] + logger.info('%s out of %s findings processed...', i, total_count) + + Finding.objects.bulk_update(batch, ['sla_expiration_date']) + batch = [] + logger.info('%s out of %s findings processed...', i, total_count) + + +def reset_sla_expiration_dates(apps, schema_editor): + System_Settings = apps.get_model('dojo', 'System_Settings') + + ss, _ = System_Settings.objects.get_or_create() + if not ss.enable_finding_sla: + return + + logger.info('Resetting SLA expiration dates for all findings') + + Finding = apps.get_model('dojo', 'Finding') + + findings = Finding.objects.filter(sla_expiration_date__isnull=False).order_by('id').only('id') + + page_size = 1000 + total_count = Finding.objects.filter(id__gt=0).count() + logger.info('Found %d findings to be reset', total_count) + + i = 0 + batch = [] + last_id = 0 + total_pages = (total_count // page_size) + 2 + for p in range(1, total_pages): + page = findings.filter(id__gt=last_id)[:page_size] + for find in page: + i += 1 + last_id = find.id + + find.sla_expiration_date = None + batch.append(find) + + if (i > 0 and i % page_size == 0): + Finding.objects.bulk_update(batch, ['sla_expiration_date']) + batch = [] + logger.info('%s out of %s findings processed...', i, total_count) + + Finding.objects.bulk_update(batch, ['sla_expiration_date']) + batch = [] + logger.info('%s out of %s findings processed...', i, total_count) + + +class Migration(migrations.Migration): + + dependencies = [ + ('dojo', '0200_finding_sla_expiration_date_product_async_updating_and_more'), + ] + + operations = [ + migrations.RunPython(calculate_sla_expiration_dates, reset_sla_expiration_dates), + ] diff --git a/dojo/filters.py b/dojo/filters.py index 51279d76a9a..723c52337f3 100644 --- a/dojo/filters.py +++ b/dojo/filters.py @@ -11,6 +11,7 @@ from django.conf import settings import six from django.utils.translation import gettext_lazy as _ +from django.utils import timezone from django_filters import FilterSet, CharFilter, OrderingFilter, \ ModelMultipleChoiceFilter, ModelChoiceFilter, MultipleChoiceFilter, \ BooleanFilter, NumberFilter, DateFilter @@ -148,16 +149,12 @@ def any(self, qs, name): return qs def sla_satisfied(self, qs, name): - for finding in qs: - if finding.violates_sla: - qs = qs.exclude(id=finding.id) - return qs + # return findings that have an sla expiration date after today or no sla expiration date + return qs.filter(Q(sla_expiration_date__isnull=True) | Q(sla_expiration_date__gt=timezone.now().date())) def sla_violated(self, qs, name): - for finding in qs: - if not finding.violates_sla: - qs = qs.exclude(id=finding.id) - return qs + # return active findings that have an sla expiration date before today + return qs.filter(Q(active=True) & Q(sla_expiration_date__lt=timezone.now().date())) options = { None: (_('Any'), any), @@ -184,13 +181,13 @@ def any(self, qs, name): def sla_satisifed(self, qs, name): for product in qs: - if product.violates_sla: + if product.violates_sla(): qs = qs.exclude(id=product.id) return qs def sla_violated(self, qs, name): for product in qs: - if not product.violates_sla: + if not product.violates_sla(): qs = qs.exclude(id=product.id) return qs diff --git a/dojo/models.py b/dojo/models.py index 7bda3997c0c..45d522963ee 100755 --- a/dojo/models.py +++ b/dojo/models.py @@ -1102,7 +1102,7 @@ def findings_active_verified_count(self): @cached_property def endpoint_host_count(self): # active_endpoints is (should be) prefetched - endpoints = self.active_endpoints + endpoints = getattr(self, 'active_endpoints', None) hosts = [] for e in endpoints: @@ -1116,7 +1116,10 @@ def endpoint_host_count(self): @cached_property def endpoint_count(self): # active_endpoints is (should be) prefetched - return len(self.active_endpoints) + endpoints = getattr(self, 'active_endpoints', None) + if endpoints: + return len(self.active_endpoints) + return None def open_findings(self, start_date=None, end_date=None): if start_date is None or end_date is None: @@ -1192,13 +1195,11 @@ def get_absolute_url(self): from django.urls import reverse return reverse('view_product', args=[str(self.id)]) - @property def violates_sla(self): - findings = Finding.objects.filter(test__engagement__product=self, active=True) - for f in findings: - if f.violates_sla: - return True - return False + findings = Finding.objects.filter(test__engagement__product=self, + active=True, + sla_expiration_date__lt=timezone.now().date()) + return findings.count() > 0 class Product_Member(models.Model): @@ -2887,20 +2888,19 @@ def set_sla_expiration_date(self): self.sla_expiration_date = get_current_date() + relativedelta(days=days_remaining) def sla_days_remaining(self): - sla_calculation = None - sla_period = self.get_sla_period() - if sla_period: - sla_calculation = sla_period - self.sla_age - return sla_calculation - - def sla_deadline(self): - days_remaining = self.sla_days_remaining() - if days_remaining: + if self.sla_expiration_date: if self.mitigated: - return self.mitigated.date() + relativedelta(days=days_remaining) - return get_current_date() + relativedelta(days=days_remaining) + mitigated_date = self.mitigated + if isinstance(mitigated_date, datetime): + mitigated_date = self.mitigated.date() + return (self.sla_expiration_date - mitigated_date).days + else: + return (self.sla_expiration_date - get_current_date()).days return None + def sla_deadline(self): + return self.sla_expiration_date + def github(self): try: return self.github_issue @@ -3294,8 +3294,7 @@ def inherit_tags(self, potentially_existing_tags): @property def violates_sla(self): - days_remaining = self.sla_days_remaining() - return days_remaining < 0 if days_remaining else False + return (self.sla_expiration_date and self.sla_expiration_date < timezone.now()) class FindingAdmin(admin.ModelAdmin): From 76c887ba3c7da1e6d79128b5a05b76f69d8db78c Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Sun, 11 Feb 2024 20:42:39 -0600 Subject: [PATCH 07/61] Jira Server/DataCenter: Update meta methods (#9512) --- dojo/jira_link/helper.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dojo/jira_link/helper.py b/dojo/jira_link/helper.py index 8a8b208d45f..ecd5da084f8 100644 --- a/dojo/jira_link/helper.py +++ b/dojo/jira_link/helper.py @@ -1036,28 +1036,28 @@ def get_issuetype_fields( else: try: - issuetypes = jira.createmeta_issuetypes(project_key) + issuetypes = jira.project_issue_types(project_key) except JIRAError as e: e.text = f"Jira API call 'createmeta/issuetypes' failed with status: {e.status_code} and message: {e.text}. Project misconfigured or no permissions in Jira ?" raise e issuetype_id = None - for it in issuetypes['values']: - if it['name'] == issuetype_name: - issuetype_id = it['id'] + for it in issuetypes: + if it.name == issuetype_name: + issuetype_id = it.id break if not issuetype_id: raise JIRAError("Issue type ID can not be matched. Misconfigured default issue type ?") try: - issuetype_fields = jira.createmeta_fieldtypes(project_key, issuetype_id) + issuetype_fields = jira.project_issue_fields(project_key, issuetype_id) except JIRAError as e: e.text = f"Jira API call 'createmeta/fieldtypes' failed with status: {e.status_code} and message: {e.text}. Misconfigured project or default issue type ?" raise e try: - issuetype_fields = [f['fieldId'] for f in issuetype_fields['values']] + issuetype_fields = [f.fieldId for f in issuetype_fields] except Exception: raise JIRAError("Misconfigured default issue type ?") From a110f86d0a4f5993485eeadd2ed09ec67eea6b57 Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Sun, 11 Feb 2024 20:43:49 -0600 Subject: [PATCH 08/61] Jira Webhook: Catch comments from other issue updates (#9513) * Jira Webhook: Catch comments from other issue updates * Accommodate redirect responses * Update dojo/jira_link/views.py Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * Fix syntax --------- Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> --- dojo/jira_link/views.py | 203 ++++++++++++++++++++++------------------ 1 file changed, 113 insertions(+), 90 deletions(-) diff --git a/dojo/jira_link/views.py b/dojo/jira_link/views.py index e05ea5ce219..a1a73f0b015 100644 --- a/dojo/jira_link/views.py +++ b/dojo/jira_link/views.py @@ -1,7 +1,7 @@ # Standard library imports import json import logging - +import datetime # Third party imports from django.contrib import messages from django.contrib.admin.utils import NestedObjects @@ -105,97 +105,13 @@ def webhook(request, secret=None): if findings: for finding in findings: jira_helper.process_resolution_from_jira(finding, resolution_id, resolution_name, assignee_name, jira_now, jissue) + # Check for any comment that could have come along with the resolution + if (error_response := check_for_and_create_comment(parsed)) is not None: + return error_response if parsed.get('webhookEvent') == 'comment_created': - """ - example incoming requests from JIRA Server 8.14.0 - { - "timestamp":1610269967824, - "webhookEvent":"comment_created", - "comment":{ - "self":"https://jira.host.com/rest/api/2/issue/115254/comment/466578", - "id":"466578", - "author":{ - "self":"https://jira.host.com/rest/api/2/user?username=defect.dojo", - "name":"defect.dojo", - "key":"defect.dojo", # seems to be only present on JIRA Server, not on Cloud - "avatarUrls":{ - "48x48":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=48", - "24x24":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=24", - "16x16":"https://www.gravatar.com/avatar9637bfb970eff6176357df615f548f1c?d=mm&s=16", - "32x32":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=32" - }, - "displayName":"Defect Dojo", - "active":true, - "timeZone":"Europe/Amsterdam" - }, - "body":"(Valentijn Scholten):test4", - "updateAuthor":{ - "self":"https://jira.host.com/rest/api/2/user?username=defect.dojo", - "name":"defect.dojo", - "key":"defect.dojo", - "avatarUrls":{ - "48x48":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=48", - "24x24""https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=24", - "16x16":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=16", - "32x32":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=32" - }, - "displayName":"Defect Dojo", - "active":true, - "timeZone":"Europe/Amsterdam" - }, - "created":"2021-01-10T10:12:47.824+0100", - "updated":"2021-01-10T10:12:47.824+0100" - } - } - """ - - comment_text = parsed['comment']['body'] - commentor = '' - if 'name' in parsed['comment']['updateAuthor']: - commentor = parsed['comment']['updateAuthor']['name'] - elif 'emailAddress' in parsed['comment']['updateAuthor']: - commentor = parsed['comment']['updateAuthor']['emailAddress'] - else: - logger.debug('Could not find the author of this jira comment!') - commentor_display_name = parsed['comment']['updateAuthor']['displayName'] - # example: body['comment']['self'] = "http://www.testjira.com/jira_under_a_path/rest/api/2/issue/666/comment/456843" - jid = parsed['comment']['self'].split('/')[-3] - jissue = get_object_or_404(JIRA_Issue, jira_id=jid) - logging.info(f"Received issue comment for {jissue.jira_key}") - logger.debug('jissue: %s', vars(jissue)) - - jira_usernames = JIRA_Instance.objects.values_list('username', flat=True) - for jira_userid in jira_usernames: - # logger.debug('incoming username: %s jira config username: %s', commentor.lower(), jira_userid.lower()) - if jira_userid.lower() == commentor.lower(): - logger.debug('skipping incoming JIRA comment as the user id of the comment in JIRA (%s) matches the JIRA username in DefectDojo (%s)', commentor.lower(), jira_userid.lower()) - return HttpResponse('') - - findings = None - if jissue.finding: - findings = [jissue.finding] - create_notification(event='other', title=f'JIRA incoming comment - {jissue.finding}', finding=jissue.finding, url=reverse("view_finding", args=(jissue.finding.id,)), icon='check') - - elif jissue.finding_group: - findings = [jissue.finding_group.findings.all()] - create_notification(event='other', title=f'JIRA incoming comment - {jissue.finding}', finding=jissue.finding, url=reverse("view_finding_group", args=(jissue.finding_group.id,)), icon='check') - - elif jissue.engagement: - return HttpResponse('Comment for engagement ignored') - else: - raise Http404(f'No finding or engagement found for JIRA issue {jissue.jira_key}') - - for finding in findings: - # logger.debug('finding: %s', vars(jissue.finding)) - new_note = Notes() - new_note.entry = f'({commentor_display_name} ({commentor})): {comment_text}' - new_note.author, created = User.objects.get_or_create(username='JIRA') - new_note.save() - finding.notes.add(new_note) - finding.jira_issue.jira_change = timezone.now() - finding.jira_issue.save() - finding.save() + if (error_response := check_for_and_create_comment(parsed)) is not None: + return error_response if parsed.get('webhookEvent') not in ['comment_created', 'jira:issue_updated']: logger.info(f"Unrecognized JIRA webhook event received: {parsed.get('webhookEvent')}") @@ -203,6 +119,7 @@ def webhook(request, secret=None): except Exception as e: if isinstance(e, Http404): logger.warning('404 error processing JIRA webhook') + logger.warning(str(e)) else: logger.exception(e) @@ -218,6 +135,112 @@ def webhook(request, secret=None): return HttpResponse('') +def check_for_and_create_comment(parsed_json): + """ + example incoming requests from JIRA Server 8.14.0 + { + "timestamp":1610269967824, + "webhookEvent":"comment_created", + "comment":{ + "self":"https://jira.host.com/rest/api/2/issue/115254/comment/466578", + "id":"466578", + "author":{ + "self":"https://jira.host.com/rest/api/2/user?username=defect.dojo", + "name":"defect.dojo", + "key":"defect.dojo", # seems to be only present on JIRA Server, not on Cloud + "avatarUrls":{ + "48x48":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=48", + "24x24":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=24", + "16x16":"https://www.gravatar.com/avatar9637bfb970eff6176357df615f548f1c?d=mm&s=16", + "32x32":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=32" + }, + "displayName":"Defect Dojo", + "active":true, + "timeZone":"Europe/Amsterdam" + }, + "body":"(Valentijn Scholten):test4", + "updateAuthor":{ + "self":"https://jira.host.com/rest/api/2/user?username=defect.dojo", + "name":"defect.dojo", + "key":"defect.dojo", + "avatarUrls":{ + "48x48":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=48", + "24x24""https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=24", + "16x16":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=16", + "32x32":"https://www.gravatar.com/avatar/9637bfb970eff6176357df615f548f1c?d=mm&s=32" + }, + "displayName":"Defect Dojo", + "active":true, + "timeZone":"Europe/Amsterdam" + }, + "created":"2021-01-10T10:12:47.824+0100", + "updated":"2021-01-10T10:12:47.824+0100" + } + } + """ + comment = parsed_json.get("comment", None) + if comment is None: + return + + comment_text = comment.get('body') + commenter = '' + if 'name' in comment.get('updateAuthor'): + commenter = comment.get('updateAuthor', {}).get('name') + elif 'emailAddress' in comment.get('updateAuthor'): + commenter = comment.get('updateAuthor', {}).get('emailAddress') + else: + logger.debug('Could not find the author of this jira comment!') + commenter_display_name = comment.get('updateAuthor', {}).get('displayName') + # example: body['comment']['self'] = "http://www.testjira.com/jira_under_a_path/rest/api/2/issue/666/comment/456843" + jid = comment.get('self', '').split('/')[-3] + jissue = get_object_or_404(JIRA_Issue, jira_id=jid) + logging.info(f"Received issue comment for {jissue.jira_key}") + logger.debug('jissue: %s', vars(jissue)) + + jira_usernames = JIRA_Instance.objects.values_list('username', flat=True) + for jira_user_id in jira_usernames: + # logger.debug('incoming username: %s jira config username: %s', commenter.lower(), jira_user_id.lower()) + if jira_user_id.lower() == commenter.lower(): + logger.debug('skipping incoming JIRA comment as the user id of the comment in JIRA (%s) matches the JIRA username in DefectDojo (%s)', commenter.lower(), jira_user_id.lower()) + return HttpResponse('') + + findings = None + if jissue.finding: + findings = [jissue.finding] + create_notification(event='other', title=f'JIRA incoming comment - {jissue.finding}', finding=jissue.finding, url=reverse("view_finding", args=(jissue.finding.id,)), icon='check') + + elif jissue.finding_group: + findings = [jissue.finding_group.findings.all()] + create_notification(event='other', title=f'JIRA incoming comment - {jissue.finding}', finding=jissue.finding, url=reverse("view_finding_group", args=(jissue.finding_group.id,)), icon='check') + + elif jissue.engagement: + return HttpResponse('Comment for engagement ignored') + else: + raise Http404(f'No finding or engagement found for JIRA issue {jissue.jira_key}') + + # Set the fields for the notes + author, _ = User.objects.get_or_create(username='JIRA') + entry = f'({commenter_display_name} ({commenter})): {comment_text}' + # Iterate (potentially) over each of the findings the note should be added to + for finding in findings: + # Determine if this exact note was created within the last 30 seconds to avoid duplicate notes + existing_notes = finding.notes.filter( + entry=entry, + author=author, + date__gte=(timezone.now() - datetime.timedelta(seconds=30)), + ) + # Check the query for any hits + if existing_notes.count() == 0: + new_note = Notes() + new_note.entry = entry + new_note.author = author + new_note.save() + finding.notes.add(new_note) + finding.jira_issue.jira_change = timezone.now() + finding.jira_issue.save() + finding.save() + + def get_custom_field(jira, label): url = jira._options["server"].strip('/') + '/rest/api/2/field' response = jira._session.get(url).json() From 5eb2d1b9f68615b3fc689e19e6c0f3de0e7d649a Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Mon, 12 Feb 2024 09:13:08 -0600 Subject: [PATCH 09/61] Release Drafter: Try validating inputs --- .github/workflows/fetch-oas.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/fetch-oas.yml b/.github/workflows/fetch-oas.yml index 44692ddb5cb..0dd32805b58 100644 --- a/.github/workflows/fetch-oas.yml +++ b/.github/workflows/fetch-oas.yml @@ -10,6 +10,9 @@ on: This will override any version calculated by the release-drafter. required: true +env: + release_version: ${{ github.event.inputs.version || github.event.inputs.release_number }} + jobs: oas_fetch: name: Fetch OpenAPI Specifications @@ -21,19 +24,19 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: - ref: ${{ github.event.inputs.version }} + ref: release/${{ env.release_version }} - name: Load docker images run: |- - docker pull defectdojo/defectdojo-django:${{ github.event.inputs.version }}-alpine - docker pull defectdojo/defectdojo-nginx:${{ github.event.inputs.version }}-alpine + docker pull defectdojo/defectdojo-django:${{ env.release_version }}-alpine + docker pull defectdojo/defectdojo-nginx:${{ env.release_version }}-alpine docker images - name: Start Dojo run: docker-compose --profile postgres-redis --env-file ./docker/environments/postgres-redis.env up --no-deps -d postgres nginx uwsgi env: - DJANGO_VERSION: ${{ github.event.inputs.version }}-alpine - NGINX_VERSION: ${{ github.event.inputs.version }}-alpine + DJANGO_VERSION: ${{ env.release_version }}-alpine + NGINX_VERSION: ${{ env.release_version }}-alpine - name: Download OpenAPI Specifications run: |- From a3403a4e9a44348c75bdd56d13d4ca0115801f53 Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Mon, 12 Feb 2024 13:28:30 -0600 Subject: [PATCH 10/61] Disallow duplicate tool types (#9530) * Disallow duplicate tool types * Fix Flake8 * Only validate on new creations * Force new name on tool type unit test --- dojo/api_v2/serializers.py | 8 ++++++++ dojo/forms.py | 17 +++++++++++++++++ unittests/test_swagger_schema.py | 3 +++ 3 files changed, 28 insertions(+) diff --git a/dojo/api_v2/serializers.py b/dojo/api_v2/serializers.py index ff21d50aff7..5778f2147ca 100644 --- a/dojo/api_v2/serializers.py +++ b/dojo/api_v2/serializers.py @@ -1133,6 +1133,14 @@ class Meta: model = Tool_Type fields = "__all__" + def validate(self, data): + if self.context["request"].method == "POST": + name = data.get("name") + # Make sure this will not create a duplicate test type + if Tool_Type.objects.filter(name=name).count() > 0: + raise serializers.ValidationError('A Tool Type with the name already exists') + return data + class RegulationSerializer(serializers.ModelSerializer): class Meta: diff --git a/dojo/forms.py b/dojo/forms.py index 36b9cd1a908..d831bb7132d 100755 --- a/dojo/forms.py +++ b/dojo/forms.py @@ -2404,6 +2404,23 @@ class Meta: model = Tool_Type exclude = ['product'] + def __init__(self, *args, **kwargs): + instance = kwargs.get('instance', None) + self.newly_created = True + if instance is not None: + self.newly_created = instance.pk is None + super().__init__(*args, **kwargs) + + def clean(self): + form_data = self.cleaned_data + if self.newly_created: + name = form_data.get("name") + # Make sure this will not create a duplicate test type + if Tool_Type.objects.filter(name=name).count() > 0: + raise forms.ValidationError('A Tool Type with the name already exists') + + return form_data + class RegulationForm(forms.ModelForm): class Meta: diff --git a/unittests/test_swagger_schema.py b/unittests/test_swagger_schema.py index 9f1316b4d2e..b1263359374 100644 --- a/unittests/test_swagger_schema.py +++ b/unittests/test_swagger_schema.py @@ -785,6 +785,9 @@ def __init__(self, *args, **kwargs): self.viewset = ToolTypesViewSet self.model = Tool_Type self.serializer = ToolTypeSerializer + self.field_transformers = { + "name": lambda v: v + "_new" + } class UserTest(BaseClass.SchemaTest): From 6da78c51bbd31330a1ffdfeff784305d9bcdf4dc Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Mon, 12 Feb 2024 13:29:55 -0600 Subject: [PATCH 11/61] Engagement Surveys: Add missing leading slash (#9531) URL redirects were behaving strangely without this leading slash. it seems it was missed when all the others were added --- dojo/templates/dojo/dashboard.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dojo/templates/dojo/dashboard.html b/dojo/templates/dojo/dashboard.html index 8d3227f9759..8e049086094 100644 --- a/dojo/templates/dojo/dashboard.html +++ b/dojo/templates/dojo/dashboard.html @@ -207,7 +207,7 @@ {% else %} {% trans "View Responses" %} - {% trans "Create Engagement" %} + {% trans "Create Engagement" %} {% endif %} From b1aac23c2006a147eb1635e9b6894fb79e2179a5 Mon Sep 17 00:00:00 2001 From: DefectDojo release bot Date: Mon, 12 Feb 2024 19:33:02 +0000 Subject: [PATCH 12/61] Update versions in application files --- components/package.json | 2 +- dojo/__init__.py | 2 +- helm/defectdojo/Chart.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/package.json b/components/package.json index 9a57f7b78dd..4c9fc573d81 100644 --- a/components/package.json +++ b/components/package.json @@ -1,6 +1,6 @@ { "name": "defectdojo", - "version": "2.32.0-dev", + "version": "2.31.1", "license" : "BSD-3-Clause", "private": true, "dependencies": { diff --git a/dojo/__init__.py b/dojo/__init__.py index f1c39c15ed1..174901e835d 100644 --- a/dojo/__init__.py +++ b/dojo/__init__.py @@ -4,6 +4,6 @@ # Django starts so that shared_task will use this app. from .celery import app as celery_app # noqa -__version__ = '2.32.0-dev' +__version__ = '2.31.1' __url__ = 'https://github.com/DefectDojo/django-DefectDojo' __docs__ = 'https://documentation.defectdojo.com' diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 53bce7bc759..0af7d7c32b9 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 -appVersion: "2.32.0-dev" +appVersion: "2.31.1" description: A Helm chart for Kubernetes to install DefectDojo name: defectdojo -version: 1.6.109-dev +version: 1.6.109 icon: https://www.defectdojo.org/img/favicon.ico maintainers: - name: madchap From ccb892d3d82f706b0f53300830183f9b2b600879 Mon Sep 17 00:00:00 2001 From: DefectDojo release bot Date: Mon, 12 Feb 2024 20:12:55 +0000 Subject: [PATCH 13/61] Update versions in application files --- components/package.json | 2 +- dojo/__init__.py | 2 +- helm/defectdojo/Chart.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/package.json b/components/package.json index 4c9fc573d81..9a57f7b78dd 100644 --- a/components/package.json +++ b/components/package.json @@ -1,6 +1,6 @@ { "name": "defectdojo", - "version": "2.31.1", + "version": "2.32.0-dev", "license" : "BSD-3-Clause", "private": true, "dependencies": { diff --git a/dojo/__init__.py b/dojo/__init__.py index 174901e835d..f1c39c15ed1 100644 --- a/dojo/__init__.py +++ b/dojo/__init__.py @@ -4,6 +4,6 @@ # Django starts so that shared_task will use this app. from .celery import app as celery_app # noqa -__version__ = '2.31.1' +__version__ = '2.32.0-dev' __url__ = 'https://github.com/DefectDojo/django-DefectDojo' __docs__ = 'https://documentation.defectdojo.com' diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 0af7d7c32b9..60c20292d0f 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 -appVersion: "2.31.1" +appVersion: "2.32.0-dev" description: A Helm chart for Kubernetes to install DefectDojo name: defectdojo -version: 1.6.109 +version: 1.6.110-dev icon: https://www.defectdojo.org/img/favicon.ico maintainers: - name: madchap From 5083abd33a6830d3320b997c379bddd73626a6c7 Mon Sep 17 00:00:00 2001 From: Felix Hernandez Date: Tue, 13 Feb 2024 14:00:18 -0600 Subject: [PATCH 14/61] Fix "Overdue" tag still visible with closed issues (#9539) --- dojo/templates/dojo/engagement.html | 2 +- dojo/templates/dojo/engagements_all.html | 2 +- dojo/templates/dojo/snippets/engagement_list.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dojo/templates/dojo/engagement.html b/dojo/templates/dojo/engagement.html index dc8d2d44169..051dc804858 100644 --- a/dojo/templates/dojo/engagement.html +++ b/dojo/templates/dojo/engagement.html @@ -151,7 +151,7 @@

{{ e.target_start }} - {{ e.target_end }} - {% if e.is_overdue %} + {% if e.is_overdue and e.status != 'Completed' %} {{ e.target_end|overdue }} overdue diff --git a/dojo/templates/dojo/engagements_all.html b/dojo/templates/dojo/engagements_all.html index 5f44ec6da70..80ae6c3092f 100644 --- a/dojo/templates/dojo/engagements_all.html +++ b/dojo/templates/dojo/engagements_all.html @@ -141,7 +141,7 @@

{% endif %} {{ e.status }} {{ e.target_start }} - {{ e.target_end }} - {% if e.is_overdue and e.active %} + {% if e.is_overdue and e.active and e.status != 'Completed' %}
{{ e.target_end|overdue }} overdue
{% endif %} diff --git a/dojo/templates/dojo/snippets/engagement_list.html b/dojo/templates/dojo/snippets/engagement_list.html index 514aa7ee33c..c502e142c6e 100644 --- a/dojo/templates/dojo/snippets/engagement_list.html +++ b/dojo/templates/dojo/snippets/engagement_list.html @@ -179,7 +179,7 @@

{% if status == "open" %}Active{% elif status == "paused" %}Paused {% else {{ eng.target_start|datediff_time:eng.target_end }} {% if status == "open" %} - {% if eng.is_overdue %} + {% if eng.is_overdue and eng.status != 'Completed' %}
{{ eng.target_end|overdue }} overdue From 1b3ad3067b7b7a23cd2745dab2361d08de5395b1 Mon Sep 17 00:00:00 2001 From: Paul Osinski <42211303+paulOsinski@users.noreply.github.com> Date: Thu, 15 Feb 2024 17:38:01 -0500 Subject: [PATCH 15/61] Update google-sheets-sync.md with deprecation notice (#9495) --- docs/content/en/integrations/google-sheets-sync.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/content/en/integrations/google-sheets-sync.md b/docs/content/en/integrations/google-sheets-sync.md index d2d94746df7..b6e97f72f84 100644 --- a/docs/content/en/integrations/google-sheets-sync.md +++ b/docs/content/en/integrations/google-sheets-sync.md @@ -5,6 +5,7 @@ draft: false weight: 7 --- +**Please note - the Google Sheets feature has been deprecated as of DefectDojo version 2.21.0 - these documents are for reference only.** With the Google Sheets sync feature, DefectDojo allow the users to export all the finding details of each test into a separate Google @@ -112,4 +113,4 @@ If a Google Spreadsheet is already created for the Test: After creating a Google Spreadsheet, users can review and edit Finding details using the Google Sheet. If any change is done in the Google Sheet users can click the **Sync Google Sheet** button to get those -changes into DefectDojo. \ No newline at end of file +changes into DefectDojo. From 1a03c8c0265b37d422d77fae82d0f90185b19444 Mon Sep 17 00:00:00 2001 From: kiblik Date: Tue, 20 Feb 2024 18:37:18 +0000 Subject: [PATCH 16/61] Fix handling of incorrect if test import fail (#9544) --- dojo/engagement/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dojo/engagement/views.py b/dojo/engagement/views.py index 20804e1fb06..5ba45ecc494 100644 --- a/dojo/engagement/views.py +++ b/dojo/engagement/views.py @@ -768,7 +768,7 @@ def post(self, request, eid=None, pid=None): return HttpResponseRedirect( reverse('view_test', args=(test.id, ))) - return HttpResponseRedirect(reverse('view_test', args=(test.id, ))) + return HttpResponseRedirect(reverse('import_scan_results', args=(engagement.id, ))) @user_is_authorized(Engagement, Permissions.Engagement_Edit, 'eid') From 0359221268abeea1433c0f1ad845847ee0071623 Mon Sep 17 00:00:00 2001 From: kiblik Date: Tue, 20 Feb 2024 18:44:20 +0000 Subject: [PATCH 17/61] Labeler: Add sync-labels (#9565) --- .github/workflows/pr-labeler.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index 1fbc777bd83..34a31a0cab2 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -18,3 +18,4 @@ jobs: - uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" + sync-labels: true From 11d7ca69f54bf4a4a36c7d3aa9737a25d22f684b Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Tue, 20 Feb 2024 12:59:23 -0600 Subject: [PATCH 18/61] Questionnaires: Correct nested object deletions (#9574) * Questionnaires: Correct nested object deletions * Fix Flake8 --- dojo/models.py | 10 +++++++++- dojo/survey/views.py | 21 ++++++++++++--------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/dojo/models.py b/dojo/models.py index 45d522963ee..174e189a14c 100755 --- a/dojo/models.py +++ b/dojo/models.py @@ -27,6 +27,7 @@ from django.utils.html import escape from pytz import all_timezones from polymorphic.models import PolymorphicModel +from polymorphic.managers import PolymorphicManager from multiselectfield import MultiSelectField from django import forms from django.utils.translation import gettext as _ @@ -4355,6 +4356,8 @@ class Meta: help_text=_("If selected, user doesn't have to answer this question")) text = models.TextField(blank=False, help_text=_('The question text'), default='') + objects = models.Manager() + polymorphic = PolymorphicManager() def __str__(self): return self.text @@ -4364,6 +4367,7 @@ class TextQuestion(Question): ''' Question with a text answer ''' + objects = PolymorphicManager() def get_form(self): ''' @@ -4397,8 +4401,8 @@ class ChoiceQuestion(Question): multichoice = models.BooleanField(default=False, help_text=_("Select one or more")) - choices = models.ManyToManyField(Choice) + objects = PolymorphicManager() def get_form(self): ''' @@ -4476,6 +4480,8 @@ class Answer(PolymorphicModel, TimeStampedModel): null=False, blank=False, on_delete=models.CASCADE) + objects = models.Manager() + polymorphic = PolymorphicManager() class TextAnswer(Answer): @@ -4483,6 +4489,7 @@ class TextAnswer(Answer): blank=False, help_text=_('The answer text'), default='') + objects = PolymorphicManager() def __str__(self): return self.answer @@ -4492,6 +4499,7 @@ class ChoiceAnswer(Answer): answer = models.ManyToManyField( Choice, help_text=_('The selected choices as the answer')) + objects = PolymorphicManager() def __str__(self): if len(self.answer.all()): diff --git a/dojo/survey/views.py b/dojo/survey/views.py index f3043b1b757..02fc9f74d59 100644 --- a/dojo/survey/views.py +++ b/dojo/survey/views.py @@ -36,9 +36,9 @@ def delete_engagement_survey(request, eid, sid): if request.method == 'POST': form = Delete_Questionnaire_Form(request.POST, instance=survey) if form.is_valid(): - answers = Answer.objects.filter( + answers = Answer.polymorphic.filter( question__in=[ - question.id for question in survey.survey.questions.all()], + question.id for question in Question.polymorphic.filter(engagement_survey=survey.survey)], answered_survey=survey) for answer in answers: answer.delete() @@ -95,7 +95,7 @@ def answer_questionnaire(request, eid, sid): prefix=str(q.id), answered_survey=survey, question=q, form_tag=False) - for q in survey.survey.questions.all()] + for q in Question.polymorphic.filter(engagement_survey=survey.survey)] questions_are_valid = [] @@ -184,7 +184,7 @@ def get_answered_questions(survey=None, read_only=False): answered_survey=survey, question=q, form_tag=False) - for q in survey.survey.questions.all()] + for q in Question.polymorphic.filter(engagement_survey=survey.survey)] if read_only: for question in questions: @@ -416,7 +416,7 @@ def questionnaire(request): @user_is_configuration_authorized('dojo.view_question') def questions(request): - questions = Question.objects.all() + questions = Question.polymorphic.all() questions = QuestionFilter(request.GET, queryset=questions) paged_questions = get_page_items(request, questions.qs, 25) add_breadcrumb(title="Questions", top_level=False, request=request) @@ -500,7 +500,10 @@ def create_question(request): @user_is_configuration_authorized('dojo.change_question') def edit_question(request, qid): - question = get_object_or_404(Question, id=qid) + try: + question = Question.polymorphic.get(id=qid) + except Question.DoesNotExist: + return Http404() survey = Engagement_Survey.objects.filter(questions__in=[question]) reverted = False answered = [] @@ -652,7 +655,7 @@ def delete_empty_questionnaire(request, esid): form = Delete_Questionnaire_Form(request.POST, instance=survey) if form.is_valid(): answers = Answer.objects.filter( - question__in=[question.id for question in survey.survey.questions.all()], + question__in=[question.id for question in Question.polymorphic.filter(engagement_survey=survey.survey)], answered_survey=survey) for answer in answers: answer.delete() @@ -740,7 +743,7 @@ def answer_empty_survey(request, esid): engagement_survey=engagement_survey, question=q, form_tag=False) - for q in engagement_survey.questions.all() + for q in Question.polymorphic.filter(engagement_survey=engagement_survey) ] if request.method == 'POST': @@ -753,7 +756,7 @@ def answer_empty_survey(request, esid): answered_survey=survey, question=q, form_tag=False) - for q in survey.survey.questions.all() + for q in Question.polymorphic.filter(engagement_survey=survey.survey) ] questions_are_valid = [] From b11534cf054993fa7c7f52703c99c0ac1609264c Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Tue, 20 Feb 2024 12:59:32 -0600 Subject: [PATCH 19/61] Jira: Append labels and respect priority on update (#9571) A couple fields are overwritten by DefectDojo when findings are pushed to an existing jira ticket. This can be destructive for developers in the following ways: - Priority: This field often reflects the timeline a particular issue may be fixed. Developers may have more specific context for why a vulnerability may not be as severe as initially thought. - Labels: Labels could be used to sort issues in a given queue to determine who works on a given ticket. When a finding is pushed to jira again after creation, these new labels should not be overwritten These fields should be respected to avoid stomping on any changes/process set by developers --- dojo/jira_link/helper.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dojo/jira_link/helper.py b/dojo/jira_link/helper.py index ecd5da084f8..5318aa0e3ed 100644 --- a/dojo/jira_link/helper.py +++ b/dojo/jira_link/helper.py @@ -863,9 +863,10 @@ def update_jira_issue(obj, *args, **kwargs): summary=jira_summary(obj), description=jira_description(obj), component_name=jira_project.component if not issue.fields.components else None, - labels=labels, + labels=labels + issue.fields.labels, environment=jira_environment(obj), - priority_name=jira_priority(obj), + # Do not update the priority in jira after creation as this could have changed in jira, but should not change in dojo + # priority_name=jira_priority(obj), issuetype_fields=issuetype_fields) logger.debug('sending fields to JIRA: %s', fields) @@ -873,7 +874,8 @@ def update_jira_issue(obj, *args, **kwargs): issue.update( summary=fields['summary'], description=fields['description'], - priority=fields['priority'], + # Do not update the priority in jira after creation as this could have changed in jira, but should not change in dojo + # priority=fields['priority'], fields=fields) push_status_to_jira(obj, jira_instance, jira, issue) From 396f188c929fb890e71a0c59dd39f59def59907d Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Tue, 20 Feb 2024 13:00:00 -0600 Subject: [PATCH 20/61] Correct Endpoint "Hosts" views when the host field is `None` (#9560) * Endpoints: Force object validation on save * Prevent str concatenation with None type * Remove forced clean on save --- dojo/endpoint/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dojo/endpoint/views.py b/dojo/endpoint/views.py index ae91d83a429..c2b491eb1a1 100644 --- a/dojo/endpoint/views.py +++ b/dojo/endpoint/views.py @@ -92,7 +92,7 @@ def get_endpoint_ids(endpoints): hosts = [] ids = [] for e in endpoints: - key = e.host + '-' + str(e.product.id) + key = f"{e.host}-{e.product.id}" if key in hosts: continue else: From 80d5f5023565084e8bf74b01b180ae7346907a68 Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Tue, 20 Feb 2024 13:19:13 -0600 Subject: [PATCH 21/61] Deduplication: Do not reopen original finding (#9558) --- dojo/utils.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/dojo/utils.py b/dojo/utils.py index 42334262d94..308c21a6a8e 100644 --- a/dojo/utils.py +++ b/dojo/utils.py @@ -483,14 +483,19 @@ def deduplicate_uid_or_hash_code(new_finding): def set_duplicate(new_finding, existing_finding): + deduplicationLogger.debug(f"new_finding.status(): {new_finding.id} {new_finding.status()}") + deduplicationLogger.debug(f"existing_finding.status(): {existing_finding.id} {existing_finding.status()}") if existing_finding.duplicate: - logger.debug('existing finding: %s:%s:duplicate=%s;duplicate_finding=%s', existing_finding.id, existing_finding.title, existing_finding.duplicate, existing_finding.duplicate_finding.id if existing_finding.duplicate_finding else 'None') + deduplicationLogger.debug('existing finding: %s:%s:duplicate=%s;duplicate_finding=%s', existing_finding.id, existing_finding.title, existing_finding.duplicate, existing_finding.duplicate_finding.id if existing_finding.duplicate_finding else 'None') raise Exception("Existing finding is a duplicate") if existing_finding.id == new_finding.id: raise Exception("Can not add duplicate to itself") - deduplicationLogger.debug('Setting new finding ' + str(new_finding.id) + ' as a duplicate of existing finding ' + str(existing_finding.id)) if is_duplicate_reopen(new_finding, existing_finding): - set_duplicate_reopen(new_finding, existing_finding) + raise Exception("Found a regression. Ignore this so that a new duplicate chain can be made") + if new_finding.duplicate and finding_mitigated(existing_finding): + raise Exception("Skip this finding as we do not want to attach a new duplicate to a mitigated finding") + + deduplicationLogger.debug('Setting new finding ' + str(new_finding.id) + ' as a duplicate of existing finding ' + str(existing_finding.id)) new_finding.duplicate = True new_finding.active = False new_finding.verified = False @@ -509,11 +514,16 @@ def set_duplicate(new_finding, existing_finding): super(Finding, existing_finding).save() -def is_duplicate_reopen(new_finding, existing_finding): - if (existing_finding.is_mitigated or existing_finding.mitigated) and not existing_finding.out_of_scope and not existing_finding.false_p and new_finding.active and not new_finding.is_mitigated: - return True - else: - return False +def is_duplicate_reopen(new_finding, existing_finding) -> bool: + return finding_mitigated(existing_finding) and finding_not_human_set_status(existing_finding) and not finding_mitigated(new_finding) + + +def finding_mitigated(finding: Finding) -> bool: + return finding.active is False and (finding.is_mitigated is True or finding.mitigated is not None) + + +def finding_not_human_set_status(finding: Finding) -> bool: + return finding.out_of_scope is False and finding.false_p is False def set_duplicate_reopen(new_finding, existing_finding): From 029a7bc1fe943357dd8f48bfb17f71464b2bf1b9 Mon Sep 17 00:00:00 2001 From: DefectDojo release bot Date: Tue, 20 Feb 2024 19:24:04 +0000 Subject: [PATCH 22/61] Update versions in application files --- components/package.json | 2 +- dojo/__init__.py | 2 +- helm/defectdojo/Chart.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/package.json b/components/package.json index 9a57f7b78dd..49267ee4a3f 100644 --- a/components/package.json +++ b/components/package.json @@ -1,6 +1,6 @@ { "name": "defectdojo", - "version": "2.32.0-dev", + "version": "2.31.2", "license" : "BSD-3-Clause", "private": true, "dependencies": { diff --git a/dojo/__init__.py b/dojo/__init__.py index f1c39c15ed1..d7827618d91 100644 --- a/dojo/__init__.py +++ b/dojo/__init__.py @@ -4,6 +4,6 @@ # Django starts so that shared_task will use this app. from .celery import app as celery_app # noqa -__version__ = '2.32.0-dev' +__version__ = '2.31.2' __url__ = 'https://github.com/DefectDojo/django-DefectDojo' __docs__ = 'https://documentation.defectdojo.com' diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 60c20292d0f..3e5de678a89 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 -appVersion: "2.32.0-dev" +appVersion: "2.31.2" description: A Helm chart for Kubernetes to install DefectDojo name: defectdojo -version: 1.6.110-dev +version: 1.6.110 icon: https://www.defectdojo.org/img/favicon.ico maintainers: - name: madchap From 36094dab40a480ac41e1e59caa9e8ed74615b46c Mon Sep 17 00:00:00 2001 From: DefectDojo release bot Date: Tue, 20 Feb 2024 19:57:25 +0000 Subject: [PATCH 23/61] Update versions in application files --- components/package.json | 2 +- dojo/__init__.py | 2 +- helm/defectdojo/Chart.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/package.json b/components/package.json index 49267ee4a3f..9a57f7b78dd 100644 --- a/components/package.json +++ b/components/package.json @@ -1,6 +1,6 @@ { "name": "defectdojo", - "version": "2.31.2", + "version": "2.32.0-dev", "license" : "BSD-3-Clause", "private": true, "dependencies": { diff --git a/dojo/__init__.py b/dojo/__init__.py index d7827618d91..f1c39c15ed1 100644 --- a/dojo/__init__.py +++ b/dojo/__init__.py @@ -4,6 +4,6 @@ # Django starts so that shared_task will use this app. from .celery import app as celery_app # noqa -__version__ = '2.31.2' +__version__ = '2.32.0-dev' __url__ = 'https://github.com/DefectDojo/django-DefectDojo' __docs__ = 'https://documentation.defectdojo.com' diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 3e5de678a89..5e1f7c279db 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 -appVersion: "2.31.2" +appVersion: "2.32.0-dev" description: A Helm chart for Kubernetes to install DefectDojo name: defectdojo -version: 1.6.110 +version: 1.6.111-dev icon: https://www.defectdojo.org/img/favicon.ico maintainers: - name: madchap From 343d8e88096388e6d4c7127ffbc1411187625d95 Mon Sep 17 00:00:00 2001 From: kiblik Date: Mon, 12 Feb 2024 21:22:16 +0000 Subject: [PATCH 24/61] Dojo_Group: Support for "RemoteUser" in model (#9405) * Use correct name references * fix db_mig * Update and rename 0201_alter_dojo_group_social_provider.py to 0202_alter_dojo_group_social_provider.py --------- Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> --- .../0202_alter_dojo_group_social_provider.py | 18 ++++++++++++++++++ dojo/models.py | 4 +++- dojo/pipeline.py | 2 +- dojo/remote_user.py | 3 ++- unittests/test_remote_user.py | 4 ++-- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 dojo/db_migrations/0202_alter_dojo_group_social_provider.py diff --git a/dojo/db_migrations/0202_alter_dojo_group_social_provider.py b/dojo/db_migrations/0202_alter_dojo_group_social_provider.py new file mode 100644 index 00000000000..9bbc7e2e5c6 --- /dev/null +++ b/dojo/db_migrations/0202_alter_dojo_group_social_provider.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.13 on 2024-01-25 00:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('dojo', '0201_populate_finding_sla_expiration_date'), + ] + + operations = [ + migrations.AlterField( + model_name='dojo_group', + name='social_provider', + field=models.CharField(blank=True, choices=[('AzureAD', 'AzureAD'), ('Remote', 'Remote')], help_text='Group imported from a social provider.', max_length=10, null=True, verbose_name='Social Authentication Provider'), + ), + ] diff --git a/dojo/models.py b/dojo/models.py index 174e189a14c..59bf6babeb2 100755 --- a/dojo/models.py +++ b/dojo/models.py @@ -247,14 +247,16 @@ class UserContactInfo(models.Model): class Dojo_Group(models.Model): AZURE = 'AzureAD' + REMOTE = 'Remote' SOCIAL_CHOICES = ( (AZURE, _('AzureAD')), + (REMOTE, _('Remote')), ) name = models.CharField(max_length=255, unique=True) description = models.CharField(max_length=4000, null=True, blank=True) users = models.ManyToManyField(Dojo_User, through='Dojo_Group_Member', related_name='users', blank=True) auth_group = models.ForeignKey(Group, null=True, blank=True, on_delete=models.CASCADE) - social_provider = models.CharField(max_length=10, choices=SOCIAL_CHOICES, blank=True, null=True, help_text='Group imported from a social provider.', verbose_name='Social Authentication Provider') + social_provider = models.CharField(max_length=10, choices=SOCIAL_CHOICES, blank=True, null=True, help_text=_('Group imported from a social provider.'), verbose_name=_('Social Authentication Provider')) def __str__(self): return self.name diff --git a/dojo/pipeline.py b/dojo/pipeline.py index 0ce76220e98..130a795e092 100644 --- a/dojo/pipeline.py +++ b/dojo/pipeline.py @@ -98,7 +98,7 @@ def update_azure_groups(backend, uid, user=None, social=None, *args, **kwargs): except Exception as e: logger.error(f"Could not call microsoft graph API or save groups to member: {e}") if len(group_names) > 0: - assign_user_to_groups(user, group_names, 'AzureAD') + assign_user_to_groups(user, group_names, Dojo_Group.AZURE) if settings.AZUREAD_TENANT_OAUTH2_CLEANUP_GROUPS: cleanup_old_groups_for_user(user, group_names) diff --git a/dojo/remote_user.py b/dojo/remote_user.py index 875291c7ba2..7ed5f0a6a4a 100644 --- a/dojo/remote_user.py +++ b/dojo/remote_user.py @@ -6,6 +6,7 @@ from netaddr import IPAddress from django.conf import settings from dojo.pipeline import assign_user_to_groups, cleanup_old_groups_for_user +from dojo.models import Dojo_Group logger = logging.getLogger(__name__) @@ -77,7 +78,7 @@ def configure_user(self, request, user, created=True): if settings.AUTH_REMOTEUSER_GROUPS_HEADER and \ settings.AUTH_REMOTEUSER_GROUPS_HEADER in request.META: - assign_user_to_groups(user, request.META[settings.AUTH_REMOTEUSER_GROUPS_HEADER].split(','), 'Remote') + assign_user_to_groups(user, request.META[settings.AUTH_REMOTEUSER_GROUPS_HEADER].split(','), Dojo_Group.REMOTE) if settings.AUTH_REMOTEUSER_GROUPS_CLEANUP and \ settings.AUTH_REMOTEUSER_GROUPS_HEADER and \ diff --git a/unittests/test_remote_user.py b/unittests/test_remote_user.py index 384e4dda75b..d764358e11e 100644 --- a/unittests/test_remote_user.py +++ b/unittests/test_remote_user.py @@ -16,8 +16,8 @@ def setUp(self): last_name='original_last', email='original@mail.com', ) - self.group1, _ = Dojo_Group.objects.get_or_create(name="group1", social_provider="Remote") - self.group2, _ = Dojo_Group.objects.get_or_create(name="group2", social_provider="Remote") + self.group1, _ = Dojo_Group.objects.get_or_create(name="group1", social_provider=Dojo_Group.REMOTE) + self.group2, _ = Dojo_Group.objects.get_or_create(name="group2", social_provider=Dojo_Group.REMOTE) @override_settings(AUTH_REMOTEUSER_ENABLED=False) def test_disabled(self): From cc82809746e0ed2aef061e60f6fd03faf6920242 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:01:41 -0600 Subject: [PATCH 25/61] Update rabbitmq:3.12.12-alpine Docker digest from 3.12.12 to 3.12.12-alpine (docker-compose.yml) (#9535) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 4394261baf4..36e83aeb5bd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -149,7 +149,7 @@ services: volumes: - defectdojo_postgres:/var/lib/postgresql/data rabbitmq: - image: rabbitmq:3.12.12-alpine@sha256:fcd6a66524be55c15c81011dc87cc4b6e4405130fbb950c21ad1d31e8f6322dd + image: rabbitmq:3.12.12-alpine@sha256:09216fbcc8cb9588556bcecaa274b4de94d5ec3c2e3ab9c6efdc64677750c648 profiles: - mysql-rabbitmq - postgres-rabbitmq From a0939e73b7c075724a3e557580da02f05a186089 Mon Sep 17 00:00:00 2001 From: Felix Hernandez Date: Tue, 13 Feb 2024 14:02:19 -0600 Subject: [PATCH 26/61] remove flot-axis library (#9540) --- components/package.json | 1 - dojo/templates/dojo/dashboard-metrics.html | 1 - dojo/templates/dojo/endpoint_pdf_report.html | 1 - dojo/templates/dojo/engagement_pdf_report.html | 1 - dojo/templates/dojo/finding_pdf_report.html | 1 - dojo/templates/dojo/product_endpoint_pdf_report.html | 1 - dojo/templates/dojo/product_metrics.html | 1 - dojo/templates/dojo/product_pdf_report.html | 1 - dojo/templates/dojo/product_type_pdf_report.html | 1 - dojo/templates/dojo/test_pdf_report.html | 1 - dojo/templates/dojo/view_endpoint.html | 1 - 11 files changed, 11 deletions(-) diff --git a/components/package.json b/components/package.json index 9a57f7b78dd..b4e7dc9db26 100644 --- a/components/package.json +++ b/components/package.json @@ -21,7 +21,6 @@ "drmonty-datatables-responsive": "^1.0.0", "easymde": "^2.18.0", "flot": "flot/flot#~0.8.3", - "flot-axis": "markrcote/flot-axislabels#*", "font-awesome": "^4.0.0", "fullcalendar": "^3.10.2", "google-code-prettify": "^1.0.0", diff --git a/dojo/templates/dojo/dashboard-metrics.html b/dojo/templates/dojo/dashboard-metrics.html index 2f62a8926aa..929bea53e92 100644 --- a/dojo/templates/dojo/dashboard-metrics.html +++ b/dojo/templates/dojo/dashboard-metrics.html @@ -176,7 +176,6 @@

{% blocktrans with start_date=start_date.date end_date=end_date.date%}{{ nam - {% if punchcard %} diff --git a/dojo/templates/dojo/endpoint_pdf_report.html b/dojo/templates/dojo/endpoint_pdf_report.html index d08e090173d..b53c8337422 100644 --- a/dojo/templates/dojo/endpoint_pdf_report.html +++ b/dojo/templates/dojo/endpoint_pdf_report.html @@ -279,7 +279,6 @@

Notes
- - - - {% if punchcard %} diff --git a/dojo/templates/dojo/product_metrics.html b/dojo/templates/dojo/product_metrics.html index 656bc4a8db1..d5c0b659757 100644 --- a/dojo/templates/dojo/product_metrics.html +++ b/dojo/templates/dojo/product_metrics.html @@ -489,7 +489,6 @@

- {% include "dojo/filter_js_snippet.html" %} {% if punchcard %} diff --git a/dojo/templates/dojo/product_pdf_report.html b/dojo/templates/dojo/product_pdf_report.html index eb80b8148a2..aa413c72d1d 100644 --- a/dojo/templates/dojo/product_pdf_report.html +++ b/dojo/templates/dojo/product_pdf_report.html @@ -383,7 +383,6 @@

Notes
- {% if punchcard %} diff --git a/dojo/templates/dojo/product_type_pdf_report.html b/dojo/templates/dojo/product_type_pdf_report.html index 9bd22d587bc..f8c4175e5de 100644 --- a/dojo/templates/dojo/product_type_pdf_report.html +++ b/dojo/templates/dojo/product_type_pdf_report.html @@ -314,7 +314,6 @@
Notes
- - - {% block metrics %} {% endblock metrics %} From 6c57bc4650a7c53cf05ea8c30b93bf9312f1dfe5 Mon Sep 17 00:00:00 2001 From: Sebastian Gumprich Date: Wed, 14 Feb 2024 19:00:07 +0100 Subject: [PATCH 27/61] use full url for helm-repos and alias in renovate.json (#9525) With this change, renovate will create PRs to update the helm-dependencies, just as with docker-compose. Note that only setting the repository to the full URL did not work, I also had to add the registryAlias. --- .github/renovate.json | 5 ++++- helm/defectdojo/Chart.yaml | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index f64560dd545..7c9c6623cd6 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -12,5 +12,8 @@ "commitMessageExtra": "from {{currentVersion}} to {{#if isMajor}}v{{{newMajor}}}{{else}}{{#if isSingleVersion}}v{{{toVersion}}}{{else}}{{{newValue}}}{{/if}}{{/if}}", "commitMessageSuffix": "({{packageFile}})", "labels": ["dependencies"] - }] + }], + "registryAliases": { + "bitnami": "https://charts.bitnami.com/bitnami" + } } diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 5e1f7c279db..0be70c66f31 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -11,22 +11,22 @@ maintainers: dependencies: - name: mysql version: ~9.1.7 - repository: "@bitnami" + repository: "https://charts.bitnami.com/bitnami" condition: mysql.enabled - name: postgresql version: ~11.6.5 - repository: "@bitnami" + repository: "https://charts.bitnami.com/bitnami" condition: postgresql.enabled - name: postgresql-ha version: ~9.1.5 - repository: "@bitnami" + repository: "https://charts.bitnami.com/bitnami" alias: postgresqlha condition: postgresqlha.enabled - name: rabbitmq version: ~11.2.0 - repository: "@bitnami" + repository: "https://charts.bitnami.com/bitnami" condition: rabbitmq.enabled - name: redis version: ~16.12.0 - repository: "@bitnami" + repository: "https://charts.bitnami.com/bitnami" condition: redis.enabled From 9c721a10e24cb6dec25af9b25822d1ee3b6cab17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 21:23:33 -0600 Subject: [PATCH 28/61] Update Helm release redis from 16.12.3 to ~16.13.0 (helm/defectdojo/Chart.yaml) (#9550) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- helm/defectdojo/Chart.lock | 6 +++--- helm/defectdojo/Chart.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/defectdojo/Chart.lock b/helm/defectdojo/Chart.lock index f332717cd06..2bebae633dc 100644 --- a/helm/defectdojo/Chart.lock +++ b/helm/defectdojo/Chart.lock @@ -13,6 +13,6 @@ dependencies: version: 11.2.2 - name: redis repository: https://charts.bitnami.com/bitnami - version: 16.12.3 -digest: sha256:f53ebb0cea44dfbb72ac96ae98680848acd5e17a0947a728e5646460d0da4ef9 -generated: "2023-03-06T17:08:53.379497544Z" + version: 16.13.2 +digest: sha256:f1dea5877872e8baa25492fb77c4468502bdfeb8f520f00f9598b4d33465ce82 +generated: "2024-02-14T22:26:01.747974179Z" diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 0be70c66f31..86e2961e0b1 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -27,6 +27,6 @@ dependencies: repository: "https://charts.bitnami.com/bitnami" condition: rabbitmq.enabled - name: redis - version: ~16.12.0 + version: ~16.13.0 repository: "https://charts.bitnami.com/bitnami" condition: redis.enabled From 81e139940f44184e7415118c24b3fd3b91237f29 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 21:28:45 -0600 Subject: [PATCH 29/61] Update rabbitmq:3.12.12-alpine Docker digest from 3.12.12 to 3.12.12-alpine (docker-compose.yml) (#9541) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 36e83aeb5bd..89b06e264d7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -149,7 +149,7 @@ services: volumes: - defectdojo_postgres:/var/lib/postgresql/data rabbitmq: - image: rabbitmq:3.12.12-alpine@sha256:09216fbcc8cb9588556bcecaa274b4de94d5ec3c2e3ab9c6efdc64677750c648 + image: rabbitmq:3.12.12-alpine@sha256:9144c0eca261e36ffd1a3f9ef21a860242a4a60e0211bbade82c80910958a5e9 profiles: - mysql-rabbitmq - postgres-rabbitmq From a9e49d717ce68681ff368bd7213c44bb250402d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 21:29:07 -0600 Subject: [PATCH 30/61] Update postgres Docker tag from 16.1 to v16.2 (docker-compose.yml) (#9536) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 89b06e264d7..1b43001c3c1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -138,7 +138,7 @@ services: volumes: - defectdojo_data:/var/lib/mysql postgres: - image: postgres:16.1-alpine@sha256:17eb369d9330fe7fbdb2f705418c18823d66322584c77c2b43cc0e1851d01de7 + image: postgres:16.2-alpine@sha256:bbd7346fab25b7e0b25f214829d6ebfb78ef0465059492e46dee740ce8fcd844 profiles: - postgres-rabbitmq - postgres-redis From 1dadb7b2a6581acf01cfc183717d8f4268eb856c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 22:00:10 -0600 Subject: [PATCH 31/61] Update Helm release mysql from 9.1.8 to ~9.19.0 (helm/defectdojo/Chart.yaml) (#9545) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- helm/defectdojo/Chart.lock | 6 +++--- helm/defectdojo/Chart.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/defectdojo/Chart.lock b/helm/defectdojo/Chart.lock index 2bebae633dc..7152b06eea7 100644 --- a/helm/defectdojo/Chart.lock +++ b/helm/defectdojo/Chart.lock @@ -1,7 +1,7 @@ dependencies: - name: mysql repository: https://charts.bitnami.com/bitnami - version: 9.1.8 + version: 9.19.1 - name: postgresql repository: https://charts.bitnami.com/bitnami version: 11.6.26 @@ -14,5 +14,5 @@ dependencies: - name: redis repository: https://charts.bitnami.com/bitnami version: 16.13.2 -digest: sha256:f1dea5877872e8baa25492fb77c4468502bdfeb8f520f00f9598b4d33465ce82 -generated: "2024-02-14T22:26:01.747974179Z" +digest: sha256:055c755109a79afc56850a8c742db9968c1ab1b64ea5b1c6c79dd26192ce14d3 +generated: "2024-02-15T03:24:53.319013122Z" diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 86e2961e0b1..9cc73be36b5 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -10,7 +10,7 @@ maintainers: url: https://github.com/DefectDojo/django-DefectDojo dependencies: - name: mysql - version: ~9.1.7 + version: ~9.19.0 repository: "https://charts.bitnami.com/bitnami" condition: mysql.enabled - name: postgresql From 1fff040bd7ef57f72cdd7ac90d564d76f5f073d3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 09:52:02 -0600 Subject: [PATCH 32/61] Update Helm release rabbitmq from 11.2.2 to ~11.16.0 (helm/defectdojo/Chart.yaml) (#9548) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- helm/defectdojo/Chart.lock | 6 +++--- helm/defectdojo/Chart.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/defectdojo/Chart.lock b/helm/defectdojo/Chart.lock index 7152b06eea7..d3996a34817 100644 --- a/helm/defectdojo/Chart.lock +++ b/helm/defectdojo/Chart.lock @@ -10,9 +10,9 @@ dependencies: version: 9.1.9 - name: rabbitmq repository: https://charts.bitnami.com/bitnami - version: 11.2.2 + version: 11.16.2 - name: redis repository: https://charts.bitnami.com/bitnami version: 16.13.2 -digest: sha256:055c755109a79afc56850a8c742db9968c1ab1b64ea5b1c6c79dd26192ce14d3 -generated: "2024-02-15T03:24:53.319013122Z" +digest: sha256:14ecb61931de83a912605f1cca4241184b9ffcddda9450f27883d2c2eab2930e +generated: "2024-02-15T04:14:46.515518985Z" diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 9cc73be36b5..68726d28bfc 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -23,7 +23,7 @@ dependencies: alias: postgresqlha condition: postgresqlha.enabled - name: rabbitmq - version: ~11.2.0 + version: ~11.16.0 repository: "https://charts.bitnami.com/bitnami" condition: rabbitmq.enabled - name: redis From ac63f30872cd17aeeed9cf530442d0b2c16c1965 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 14:23:51 -0600 Subject: [PATCH 33/61] Update Helm release postgresql from 11.6.26 to ~11.9.0 (helm/defectdojo/Chart.yaml) (#9546) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- helm/defectdojo/Chart.lock | 6 +++--- helm/defectdojo/Chart.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/defectdojo/Chart.lock b/helm/defectdojo/Chart.lock index d3996a34817..a1d949111dc 100644 --- a/helm/defectdojo/Chart.lock +++ b/helm/defectdojo/Chart.lock @@ -4,7 +4,7 @@ dependencies: version: 9.19.1 - name: postgresql repository: https://charts.bitnami.com/bitnami - version: 11.6.26 + version: 11.9.13 - name: postgresql-ha repository: https://charts.bitnami.com/bitnami version: 9.1.9 @@ -14,5 +14,5 @@ dependencies: - name: redis repository: https://charts.bitnami.com/bitnami version: 16.13.2 -digest: sha256:14ecb61931de83a912605f1cca4241184b9ffcddda9450f27883d2c2eab2930e -generated: "2024-02-15T04:14:46.515518985Z" +digest: sha256:117e74aeca1950886c3ef4fc4eca1166b67f70cb0ba86d7cca8087d85c18297a +generated: "2024-02-15T16:02:04.692755051Z" diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 68726d28bfc..8733a6199c4 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -14,7 +14,7 @@ dependencies: repository: "https://charts.bitnami.com/bitnami" condition: mysql.enabled - name: postgresql - version: ~11.6.5 + version: ~11.9.0 repository: "https://charts.bitnami.com/bitnami" condition: postgresql.enabled - name: postgresql-ha From 6f97da2156e6858d0f7fbcf384880bf161fa8040 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 14:58:13 -0600 Subject: [PATCH 34/61] Update Helm release postgresql-ha from 9.1.9 to ~9.4.0 (helm/defectdojo/Chart.yaml) (#9547) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- helm/defectdojo/Chart.lock | 6 +++--- helm/defectdojo/Chart.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/defectdojo/Chart.lock b/helm/defectdojo/Chart.lock index a1d949111dc..784d84b4843 100644 --- a/helm/defectdojo/Chart.lock +++ b/helm/defectdojo/Chart.lock @@ -7,12 +7,12 @@ dependencies: version: 11.9.13 - name: postgresql-ha repository: https://charts.bitnami.com/bitnami - version: 9.1.9 + version: 9.4.11 - name: rabbitmq repository: https://charts.bitnami.com/bitnami version: 11.16.2 - name: redis repository: https://charts.bitnami.com/bitnami version: 16.13.2 -digest: sha256:117e74aeca1950886c3ef4fc4eca1166b67f70cb0ba86d7cca8087d85c18297a -generated: "2024-02-15T16:02:04.692755051Z" +digest: sha256:50d07c49c1fb199a70fafd032712a1d5509a0352f090bfddd2e8a22b35be0961 +generated: "2024-02-15T20:24:24.560785941Z" diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 8733a6199c4..11a42fddade 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -18,7 +18,7 @@ dependencies: repository: "https://charts.bitnami.com/bitnami" condition: postgresql.enabled - name: postgresql-ha - version: ~9.1.5 + version: ~9.4.0 repository: "https://charts.bitnami.com/bitnami" alias: postgresqlha condition: postgresqlha.enabled From e912bf70d4512cf194d7529709ced1448a8d1b74 Mon Sep 17 00:00:00 2001 From: kiblik Date: Thu, 15 Feb 2024 22:39:03 +0000 Subject: [PATCH 35/61] Remove DD_USE_L10N (#9491) --- dojo/settings/settings.dist.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index fad2454b7ca..5b772a6daef 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -55,7 +55,6 @@ DD_LANGUAGE_CODE=(str, 'en-us'), DD_SITE_ID=(int, 1), DD_USE_I18N=(bool, True), - DD_USE_L10N=(bool, True), DD_USE_TZ=(bool, True), DD_MEDIA_URL=(str, '/media/'), DD_MEDIA_ROOT=(str, root('media')), @@ -345,10 +344,6 @@ def generate_url(scheme, double_slashes, user, password, host, port, path, param # to load the internationalization machinery. USE_I18N = env('DD_USE_I18N') -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale. -USE_L10N = env('DD_USE_L10N') - # If you set this to False, Django will not use timezone-aware datetimes. USE_TZ = env('DD_USE_TZ') @@ -1665,8 +1660,6 @@ def saml2_attrib_map_format(dict): EDITABLE_MITIGATED_DATA = env('DD_EDITABLE_MITIGATED_DATA') -USE_L10N = True - # FEATURE_FINDING_GROUPS feature is moved to system_settings, will be removed from settings file FEATURE_FINDING_GROUPS = env('DD_FEATURE_FINDING_GROUPS') JIRA_TEMPLATE_ROOT = env('DD_JIRA_TEMPLATE_ROOT') From 123148e740d5d5108726d4fcf1919fde1cd72c97 Mon Sep 17 00:00:00 2001 From: kiblik Date: Thu, 15 Feb 2024 22:40:42 +0000 Subject: [PATCH 36/61] API: removal of drf_yasg (OpenAPI 2.0 Swagger) (#9108) * Removal of drf_yasg * Clean filterwarnings --- NOTICE | 43 - .../en/getting_started/upgrading/2.32.md | 9 +- docs/content/en/integrations/api-v2-docs.md | 7 +- dojo/api_v2/mixins.py | 5 - dojo/api_v2/prefetch/__init__.py | 3 +- dojo/api_v2/prefetch/schema.py | 168 +--- dojo/api_v2/schema/__init__.py | 17 - dojo/api_v2/schema/extra_schema.py | 140 --- dojo/api_v2/schema/utils.py | 63 -- dojo/api_v2/serializers.py | 23 +- dojo/api_v2/views.py | 443 +--------- dojo/risk_acceptance/api.py | 9 - dojo/settings/settings.dist.py | 30 - dojo/urls.py | 20 - requirements.txt | 1 - unittests/test_apiv2_metadata.py | 2 +- unittests/test_swagger_schema.py | 835 ------------------ 17 files changed, 70 insertions(+), 1748 deletions(-) delete mode 100644 dojo/api_v2/schema/__init__.py delete mode 100644 dojo/api_v2/schema/extra_schema.py delete mode 100644 dojo/api_v2/schema/utils.py delete mode 100644 unittests/test_swagger_schema.py diff --git a/NOTICE b/NOTICE index e939bd7fc99..7733257f54b 100644 --- a/NOTICE +++ b/NOTICE @@ -3910,49 +3910,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -drf-yasg -1.20.0 -BSD License -.. |br| raw:: html - -
- -####### -License -####### - -******************** -BSD 3-Clause License -******************** - -Copyright (c) 2017 - 2019, Cristian V. |br|\ All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ecdsa 0.17.0 MIT diff --git a/docs/content/en/getting_started/upgrading/2.32.md b/docs/content/en/getting_started/upgrading/2.32.md index 0d04c771e36..59081b30857 100644 --- a/docs/content/en/getting_started/upgrading/2.32.md +++ b/docs/content/en/getting_started/upgrading/2.32.md @@ -2,6 +2,13 @@ title: 'Upgrading to DefectDojo Version 2.32.x' toc_hide: true weight: -20240205 -description: No special instructions. +description: Breaking change: Removal of OpenAPI 2.0 Swagger --- There are no special instructions for upgrading to 2.32.x. Check the [Release Notes](https://github.com/DefectDojo/django-DefectDojo/releases/tag/2.32.0) for the contents of the release. + +**Removal** + +The OpenAPI 2.0 Swagger API documentation was removed in favor of the existing +OpenAPI 3.0 API documentation page. + +*Note*: The API has not changed in any way and behaves the same between OAPI2 and OAPI3 \ No newline at end of file diff --git a/docs/content/en/integrations/api-v2-docs.md b/docs/content/en/integrations/api-v2-docs.md index c64dfcc8919..7b8d1f7956c 100644 --- a/docs/content/en/integrations/api-v2-docs.md +++ b/docs/content/en/integrations/api-v2-docs.md @@ -16,11 +16,8 @@ Docs link on the user drop down menu in the header. ![image](../../images/api_v2_1.png) -The documentation is generated using [Django Rest Framework -Yet Another Swagger Generator](https://github.com/axnsan12/drf-yasg/), and is -interactive. On the top of API v2 docs is a link that generates an OpenAPI v2 spec. - -As a preparation to move to OpenAPIv3, we have added an compatible spec and documentation at [`/api/v2/oa3/swagger-ui/`](https://demo.defectdojo.org/api/v2/oa3/swagger-ui/) +The documentation is generated using [drf-spectacular](https://drf-spectacular.readthedocs.io/) at [`/api/v2/oa3/swagger-ui/`](https://demo.defectdojo.org/api/v2/oa3/swagger-ui/), and is +interactive. On the top of API v2 docs is a link that generates an OpenAPI v3 spec. To interact with the documentation, a valid Authorization header value is needed. Visit the `/api/key-v2` view to generate your diff --git a/dojo/api_v2/mixins.py b/dojo/api_v2/mixins.py index e0770971f3f..54d55a76d09 100644 --- a/dojo/api_v2/mixins.py +++ b/dojo/api_v2/mixins.py @@ -1,7 +1,6 @@ from django.db import DEFAULT_DB_ALIAS from django.contrib.admin.utils import NestedObjects from drf_spectacular.utils import extend_schema -from drf_yasg.utils import swagger_auto_schema from rest_framework.decorators import action from rest_framework import status from rest_framework.authtoken.models import Token @@ -17,10 +16,6 @@ class DeletePreviewModelMixin: status.HTTP_200_OK: serializers.DeletePreviewSerializer(many=True) }, ) - @swagger_auto_schema( - method="get", - responses={"default": serializers.DeletePreviewSerializer(many=True)}, - ) @action(detail=True, methods=["get"], filter_backends=[], suffix="List") def delete_preview(self, request, pk=None): object = self.get_object() diff --git a/dojo/api_v2/prefetch/__init__.py b/dojo/api_v2/prefetch/__init__.py index f0449c7b303..3d02655ec22 100644 --- a/dojo/api_v2/prefetch/__init__.py +++ b/dojo/api_v2/prefetch/__init__.py @@ -1,4 +1,3 @@ from .mixins import PrefetchListMixin, PrefetchRetrieveMixin -from .schema import get_prefetch_schema -__all__ = ["PrefetchListMixin", "PrefetchRetrieveMixin", "get_prefetch_schema"] +__all__ = ["PrefetchListMixin", "PrefetchRetrieveMixin"] diff --git a/dojo/api_v2/prefetch/schema.py b/dojo/api_v2/prefetch/schema.py index 6d04e751800..6fc08681477 100644 --- a/dojo/api_v2/prefetch/schema.py +++ b/dojo/api_v2/prefetch/schema.py @@ -1,84 +1,5 @@ -from drf_yasg import openapi, utils from .prefetcher import _Prefetcher from .utils import _get_prefetchable_fields -from ..schema import extra_schema -from ..schema.utils import LazySchemaRef - - -def get_prefetch_schema(methods, serializer): - """Swagger / OpenAPI v2 (drf-yasg) Return a composable swagger schema that contains in the query the fields that can be prefetch from the model - supported by the serializer and in the reponse the structure of these fields in a new top-level attribute - named prefetch. - - Returns: - ComposableSchema: A swagger schema - """ - prefetcher = _Prefetcher() - fields = _get_prefetchable_fields(serializer()) - - field_to_serializer = dict( - [ - (name, prefetcher._find_serializer(field_type)) - for name, field_type in fields - if prefetcher._find_serializer(field_type) - ] - ) - fields_to_refname = dict( - [ - (name, utils.get_serializer_ref_name(serializer())) - for name, serializer in field_to_serializer.items() - ] - ) - fields_name = [ - name - for name, field_type in fields - if prefetcher._find_serializer(field_type) - ] - - # New openapi parameter corresponding to the prefetchable fields - prefetch_params = [ - openapi.Parameter( - "prefetch", - in_=openapi.IN_QUERY, - required=False, - type=openapi.TYPE_ARRAY, - items=openapi.Items(type=openapi.TYPE_STRING, enum=fields_name), - ) - ] - - additional_props = dict( - [ - ( - name, - openapi.Schema( - type=openapi.TYPE_OBJECT, - read_only=True, - additional_properties=LazySchemaRef( - fields_to_refname[name], True - ), - ), - ) - for name in fields_name - ] - ) - prefetch_response = { - "200": { - "prefetch": openapi.Schema( - type=openapi.TYPE_OBJECT, properties=additional_props - ) - } - } - - schema = extra_schema.IdentitySchema() - for method in methods: - schema = schema.composeWith( - extra_schema.ExtraParameters(method, prefetch_params) - ) - schema = schema.composeWith( - extra_schema.ExtraResponseField(method, prefetch_response) - ) - - return schema def _get_path_to_GET_serializer_map(generator): @@ -97,6 +18,25 @@ def _get_path_to_GET_serializer_map(generator): return path_to_GET_serializer +def get_serializer_ref_name(serializer): + """Get serializer's ref_name + inspired by https://github.com/axnsan12/drf-yasg/blob/78031f0c189585c30fccb5005a6899f2d34289a9/src/drf_yasg/utils.py#L416 + + :param serializer: Serializer instance + :return: Serializer's ``ref_name`` or ``None`` for inline serializer + :rtype: str or None + """ + serializer_meta = getattr(serializer, 'Meta', None) + serializer_name = type(serializer).__name__ + if hasattr(serializer_meta, 'ref_name'): + ref_name = serializer_meta.ref_name + else: + ref_name = serializer_name + if ref_name.endswith('Serializer'): + ref_name = ref_name[:-len('Serializer')] + return ref_name + + def prefetch_postprocessing_hook(result, generator, request, public): """OpenAPI v3 (drf-spectacular) Some endpoints are using the PrefetchListMixin and PrefetchRetrieveMixin. These have nothing to do with Django prefetch_related. @@ -131,55 +71,37 @@ def prefetch_postprocessing_hook(result, generator, request, public): "enum": field_names, } - field_to_serializer = dict( - [ - (name, prefetcher._find_serializer(field_type)) - for name, field_type in fields - if prefetcher._find_serializer(field_type) - ] - ) - fields_to_refname = dict( - [ - (name, utils.get_serializer_ref_name(serializer())) - for name, serializer in field_to_serializer.items() - ] - ) - properties = dict( - [ - ( - name, - dict( - [ - ("type", "object"), - ("readOnly", True), - ( - "additionalProperties", - dict( - [ - ( - "$ref", - "#/components/schemas/" - + fields_to_refname[ - name - ], - ) - ] - ), - ), - ] - ), - ) - for name in field_names - ] - ) + field_to_serializer = { + name: prefetcher._find_serializer(field_type) + for name, field_type in fields + if prefetcher._find_serializer(field_type) + } + + fields_to_refname = { + name: get_serializer_ref_name(serializer()) + for name, serializer in field_to_serializer.items() + } + + properties = { + name: { + "type": "object", + "readOnly": True, + "additionalProperties": { + "$ref": f"#/components/schemas/{fields_to_refname[name]}" + } + } + for name in field_names + } + ref = paths[path]["get"]["responses"]["200"]["content"][ "application/json" ]["schema"]["$ref"] component_name = ref.split("/")[-1] result["components"]["schemas"][component_name][ "properties" - ]["prefetch"] = dict( - [("type", "object"), ("properties", properties)] - ) + ]["prefetch"] = { + "type": "object", + "properties": properties, + } return result diff --git a/dojo/api_v2/schema/__init__.py b/dojo/api_v2/schema/__init__.py deleted file mode 100644 index 6a69a167022..00000000000 --- a/dojo/api_v2/schema/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -from .extra_schema import ( - IdentitySchema, - ExtraParameters, - ExtraResponseField, - ComposableSchema, -) -from .utils import LazySchemaRef, try_apply, resolve_lazy_ref - -__all__ = [ - "IdentitySchema", - "ExtraParameters", - "ExtraResponseField", - "ComposableSchema", - "LazySchemaRef", - "try_apply", - "resolve_lazy_ref", -] diff --git a/dojo/api_v2/schema/extra_schema.py b/dojo/api_v2/schema/extra_schema.py deleted file mode 100644 index 86fd565e370..00000000000 --- a/dojo/api_v2/schema/extra_schema.py +++ /dev/null @@ -1,140 +0,0 @@ -from drf_yasg.inspectors.view import SwaggerAutoSchema -from drf_yasg.openapi import resolve_ref, Schema -from .utils import resolve_lazy_ref -import copy - - -class ComposableSchema: - """A composable schema defines a transformation on drf_yasg Operation. These - schema can then be composed with another composable schema using the composeWith method - yielding a new composable schema whose transformation is defined as the function composition - of the transformation of the two source schema. - """ - - def transform_operation(self, operation, resolver): - """Defines an operation transformation - - Args: - operation (Operation): the operation to transform - resolver (Resolver): the schema refs resolver - """ - - def composeWith(self, schema): - """Allow two schema to be composed into a new schema. - Given the caller schema 'self' and another schema 'schema', - this operation yields a new composable schema whose transform_operation - if defined as - transform_operation(op, res) = schema.transform_operation(self.transform_operation(op, res), res) - - Args: - schema (ComposableSchema): The schema to compose with - - Returns: - ComposableSchema: the newly composed schema - """ - op = self.transform_operation - - class _Wrapper(ComposableSchema): - def transform_operation(self, operation, resolver): - return schema.transform_operation( - op(operation, resolver), resolver - ) - - return _Wrapper() - - def to_schema(self): - """Convert the composable schema into a SwaggerAutoSchema that - can be used with the drf_yasg library code - - Returns: - SwaggerAutoSchema: the swagger auto schema derived from the composable schema - """ - op = self.transform_operation - - class _Schema(SwaggerAutoSchema): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - def get_operation(self, operation_keys): - operation = super().get_operation(operation_keys) - return op(operation, self.components) - - return _Schema - - -class IdentitySchema(ComposableSchema): - def transform_operation(self, operation, resolver): - return operation - - -class ExtraParameters(ComposableSchema): - """Define a schema that can add parameters to the operation""" - - def __init__(self, operation_name, extra_parameters, *args, **kwargs): - """Initialize the schema - - Args: - operation_name (string): the name of the operation to transform - extra_parameters (list[Parameter]): list of openapi parameters to add - """ - super().__init__(*args, **kwargs) - self._extra_parameters = extra_parameters - self._operation_name = operation_name - - def transform_operation(self, operation, resolver): - operation_id = operation["operationId"] - if not operation_id.endswith(self._operation_name): - return operation - - for param in self._extra_parameters: - operation["parameters"].append(resolve_lazy_ref(param, resolver)) - return operation - - -class ExtraResponseField(ComposableSchema): - """Define a schema that can add fields to the responses of the operation""" - - def __init__(self, operation_name, extra_fields, *args, **kwargs): - """Initialize the schema - - Args: - operation_name (string): the name of the operation to transform - extra_fields (dict()): description of the fields to add to the responses. The format is - { - parameters: list[openapi.Parameter](params1, params2, ...), - responses: { - code1: { - field1: openapi.Schema, - field2: openapi.Schema, - ... - }, - code2: ... - } - } - """ - super().__init__(*args, **kwargs) - self._extra_fields = extra_fields - self._operation_name = operation_name - - def transform_operation(self, operation, resolver): - operation_id = operation["operationId"] - if not operation_id.endswith(self._operation_name): - return operation - - responses = operation["responses"] - for code, params in self._extra_fields.items(): - if code in responses: - original_schema = responses[code]["schema"] - schema = ( - original_schema - if isinstance(original_schema, Schema) - else resolve_ref(original_schema, resolver) - ) - schema = copy.deepcopy(schema) - - for name, param in params.items(): - schema["properties"][name] = resolve_lazy_ref( - param, resolver - ) - responses[code]["schema"] = schema - return operation diff --git a/dojo/api_v2/schema/utils.py b/dojo/api_v2/schema/utils.py deleted file mode 100644 index 1276202fc81..00000000000 --- a/dojo/api_v2/schema/utils.py +++ /dev/null @@ -1,63 +0,0 @@ -from drf_yasg.openapi import SchemaRef, Schema - - -class LazySchemaRef: - """Utility class to support SchemaRef definition without knowing the resolver. - The reference can be evaluated later in the context of a swagger generator - """ - - def __init__(self, schema_name, ignore_unresolved=False): - # Bind curried version of the SchemaRef init - self.schema_ref = lambda resolver: SchemaRef( - resolver, schema_name, ignore_unresolved - ) - - def apply(self, resolver): - """Resolve the LazySchemaRef with the given resolver - - Args: - resolver (ReferenceResolver): resolver containing the schema refs - - Returns: - SchemaRef: the corresponding SchemaRef - """ - return self.schema_ref(resolver) - - -def try_apply(obj, resolver): - """Try to resolve a LazySchemaRef - - Args: - obj (object): the object to resolve - resolver (resolver): the resolver to use - - Returns: - object: the original object if it was not resolve otherwise the resolved LazySchemaRef - """ - if isinstance(obj, LazySchemaRef): - return obj.apply(resolver) - else: - return obj - - -def resolve_lazy_ref(schema, resolver): - """Recursively evaluate the schema to unbox LazySchemaRef based on the underlying resolvers. - - Args: - schema (object): the schema to evaluate - - Returns: - object: the schema without LazySchemaRef - """ - if not isinstance(schema, Schema): - return try_apply(schema, resolver) - - if "properties" in schema: - for prop_name, prop in schema["properties"].items(): - schema["properties"][prop_name] = resolve_lazy_ref(prop, resolver) - if "additionalProperties" in schema: - schema["additionalProperties"] = resolve_lazy_ref( - schema["additionalProperties"], resolver - ) - - return schema diff --git a/dojo/api_v2/serializers.py b/dojo/api_v2/serializers.py index 5778f2147ca..cf6aec4a070 100644 --- a/dojo/api_v2/serializers.py +++ b/dojo/api_v2/serializers.py @@ -2,7 +2,6 @@ from django.contrib.auth.models import Group from typing import List from drf_spectacular.utils import extend_schema_field -from drf_yasg.utils import swagger_serializer_method from rest_framework.exceptions import NotFound from rest_framework.fields import DictField, MultipleChoiceField from datetime import datetime @@ -1500,17 +1499,14 @@ class RiskAcceptanceSerializer(serializers.ModelSerializer): path = serializers.SerializerMethodField() @extend_schema_field(serializers.CharField()) - @swagger_serializer_method(serializers.CharField()) def get_recommendation(self, obj): return Risk_Acceptance.TREATMENT_TRANSLATIONS.get(obj.recommendation) @extend_schema_field(serializers.CharField()) - @swagger_serializer_method(serializers.CharField()) def get_decision(self, obj): return Risk_Acceptance.TREATMENT_TRANSLATIONS.get(obj.decision) @extend_schema_field(serializers.CharField()) - @swagger_serializer_method(serializers.CharField()) def get_path(self, obj): engagement = Engagement.objects.filter( risk_acceptance__id__in=[obj.id] @@ -1526,7 +1522,6 @@ def get_path(self, obj): return path @extend_schema_field(serializers.IntegerField()) - @swagger_serializer_method(serializers.IntegerField()) def get_engagement(self, obj): engagement = Engagement.objects.filter( risk_acceptance__id__in=[obj.id] @@ -1629,14 +1624,12 @@ class FindingRelatedFieldsSerializer(serializers.Serializer): jira = serializers.SerializerMethodField() @extend_schema_field(FindingTestSerializer) - @swagger_serializer_method(FindingTestSerializer) def get_test(self, obj): return FindingTestSerializer(read_only=True).to_representation( obj.test ) @extend_schema_field(JIRAIssueSerializer) - @swagger_serializer_method(JIRAIssueSerializer) def get_jira(self, obj): issue = jira_helper.get_jira_issue(obj) if issue is None: @@ -1683,17 +1676,14 @@ class Meta: ) @extend_schema_field(serializers.DateTimeField()) - @swagger_serializer_method(serializers.DateTimeField()) def get_jira_creation(self, obj): return jira_helper.get_jira_creation(obj) @extend_schema_field(serializers.DateTimeField()) - @swagger_serializer_method(serializers.DateTimeField()) def get_jira_change(self, obj): return jira_helper.get_jira_change(obj) @extend_schema_field(FindingRelatedFieldsSerializer) - @swagger_serializer_method(FindingRelatedFieldsSerializer) def get_related_fields(self, obj): request = self.context.get("request", None) if request is None: @@ -1798,9 +1788,6 @@ def build_relational_field(self, field_name, relation_info): return super().build_relational_field(field_name, relation_info) @extend_schema_field(BurpRawRequestResponseSerializer) - @swagger_serializer_method( - serializer_or_field=BurpRawRequestResponseSerializer - ) def get_request_response(self, obj): # burp_req_resp = BurpRawRequestResponse.objects.filter(finding=obj) burp_req_resp = obj.burprawrequestresponse_set.all() @@ -2039,12 +2026,7 @@ def validate(self, data): def get_findings_count(self, obj) -> int: return obj.findings_count - # -> List[int] as return type doesn't seem enough for drf-yasg - @swagger_serializer_method( - serializer_or_field=serializers.ListField( - child=serializers.IntegerField() - ) - ) + # TODO, maybe extend_schema_field is needed here? def get_findings_list(self, obj) -> List[int]: return obj.open_findings_list @@ -3185,9 +3167,6 @@ class QuestionnaireEngagementSurveySerializer(serializers.ModelSerializer): questions = serializers.SerializerMethodField() @extend_schema_field(serializers.ListField(child=serializers.CharField())) - @swagger_serializer_method( - serializers.ListField(child=serializers.CharField()) - ) def get_questions(self, obj): questions = obj.questions.all() formated_questions = [] diff --git a/dojo/api_v2/views.py b/dojo/api_v2/views.py index fceb87c7ea2..793ff5d240b 100644 --- a/dojo/api_v2/views.py +++ b/dojo/api_v2/views.py @@ -6,9 +6,6 @@ from django.utils import timezone from django.contrib.auth.models import Permission from django.core.exceptions import ValidationError -from django.utils.decorators import method_decorator -from drf_yasg.inspectors.base import NotHandled -from drf_yasg.inspectors.query import CoreAPICompatInspector from rest_framework import viewsets, mixins, status from rest_framework.response import Response from django.db import IntegrityError @@ -16,8 +13,6 @@ from rest_framework.decorators import action from rest_framework.parsers import MultiPartParser from django_filters.rest_framework import DjangoFilterBackend -from drf_yasg import openapi -from drf_yasg.utils import swagger_auto_schema, no_body import base64 import mimetypes from dojo.engagement.services import close_engagement, reopen_engagement @@ -119,7 +114,6 @@ serializers, permissions, prefetch, - schema, mixins as dojo_mixins, ) import dojo.jira_link.helper as jira_helper @@ -242,10 +236,6 @@ class DojoGroupViewSet( queryset = Dojo_Group.objects.none() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "name", "social_provider"] - swagger_schema = prefetch.get_prefetch_schema( - ["dojo_groups_list", "dojo_groups_read"], - serializers.DojoGroupSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasDojoGroupPermission, @@ -287,10 +277,6 @@ class DojoGroupMemberViewSet( queryset = Dojo_Group_Member.objects.none() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "group_id", "user_id"] - swagger_schema = prefetch.get_prefetch_schema( - ["dojo_group_members_list", "dojo_group_members_read"], - serializers.DojoGroupMemberSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasDojoGroupMemberPermission, @@ -302,9 +288,6 @@ def get_queryset(self): @extend_schema( exclude=True ) - @swagger_auto_schema( - auto_schema=None - ) def partial_update(self, request, pk=None): # Object authorization won't work if not all data is provided response = {"message": "Patch function is not offered in this path."} @@ -319,10 +302,6 @@ class GlobalRoleViewSet( queryset = Global_Role.objects.all() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "user", "group", "role"] - swagger_schema = prefetch.get_prefetch_schema( - ["global_roles_list", "global_roles_read"], - serializers.GlobalRoleSerializer, - ).to_schema() permission_classes = (permissions.IsSuperUser, DjangoModelPermissions) @@ -334,9 +313,7 @@ class EndPointViewSet( queryset = Endpoint.objects.none() filter_backends = (DjangoFilterBackend,) filterset_class = ApiEndpointFilter - swagger_schema = prefetch.get_prefetch_schema( - ["endpoints_list", "endpoints_read"], serializers.EndpointSerializer - ).to_schema() + permission_classes = ( IsAuthenticated, permissions.UserHasEndpointPermission, @@ -349,10 +326,6 @@ def get_queryset(self): request=serializers.ReportGenerateOptionSerializer, responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, ) - @swagger_auto_schema( - request_body=serializers.ReportGenerateOptionSerializer, - responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, - ) @action( detail=True, methods=["post"], permission_classes=[IsAuthenticated] ) @@ -403,10 +376,7 @@ class EndpointStatusViewSet( "finding", "endpoint", ] - swagger_schema = prefetch.get_prefetch_schema( - ["endpoint_status_list", "endpoint_status_read"], - serializers.EndpointStatusSerializer, - ).to_schema() + permission_classes = ( IsAuthenticated, permissions.UserHasEndpointStatusPermission, @@ -427,19 +397,7 @@ class EngagementViewSet( queryset = Engagement.objects.none() filter_backends = (DjangoFilterBackend,) filterset_class = ApiEngagementFilter - swagger_schema = ( - prefetch.get_prefetch_schema( - ["engagements_list", "engagements_read"], - serializers.EngagementSerializer, - ) - .composeWith( - prefetch.get_prefetch_schema( - ["engagements_complete_checklist_read"], - serializers.EngagementCheckListSerializer, - ) - ) - .to_schema() - ) + permission_classes = ( IsAuthenticated, permissions.UserHasEngagementPermission, @@ -468,9 +426,6 @@ def get_queryset(self): @extend_schema( request=OpenApiTypes.NONE, responses={status.HTTP_200_OK: ""} ) - @swagger_auto_schema( - request_body=no_body, responses={status.HTTP_200_OK: ""} - ) @action(detail=True, methods=["post"]) def close(self, request, pk=None): eng = self.get_object() @@ -480,9 +435,6 @@ def close(self, request, pk=None): @extend_schema( request=OpenApiTypes.NONE, responses={status.HTTP_200_OK: ""} ) - @swagger_auto_schema( - request_body=no_body, responses={status.HTTP_200_OK: ""} - ) @action(detail=True, methods=["post"]) def reopen(self, request, pk=None): eng = self.get_object() @@ -493,10 +445,6 @@ def reopen(self, request, pk=None): request=serializers.ReportGenerateOptionSerializer, responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, ) - @swagger_auto_schema( - request_body=serializers.ReportGenerateOptionSerializer, - responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, - ) @action( detail=True, methods=["post"], permission_classes=[IsAuthenticated] ) @@ -541,17 +489,6 @@ def generate_report(self, request, pk=None): request=serializers.AddNewNoteOptionSerializer, responses={status.HTTP_201_CREATED: serializers.NoteSerializer}, ) - @swagger_auto_schema( - method="get", - responses={ - status.HTTP_200_OK: serializers.EngagementToNotesSerializer - }, - ) - @swagger_auto_schema( - methods=["post"], - request_body=serializers.AddNewNoteOptionSerializer, - responses={status.HTTP_201_CREATED: serializers.NoteSerializer}, - ) @action(detail=True, methods=["get", "post"]) def notes(self, request, pk=None): engagement = self.get_object() @@ -602,17 +539,6 @@ def notes(self, request, pk=None): request=serializers.AddNewFileOptionSerializer, responses={status.HTTP_201_CREATED: serializers.FileSerializer}, ) - @swagger_auto_schema( - method="get", - responses={ - status.HTTP_200_OK: serializers.EngagementToFilesSerializer - }, - ) - @swagger_auto_schema( - method="post", - request_body=serializers.AddNewFileOptionSerializer, - responses={status.HTTP_201_CREATED: serializers.FileSerializer}, - ) @action( detail=True, methods=["get", "post"], parser_classes=(MultiPartParser,) ) @@ -650,13 +576,6 @@ def files(self, request, pk=None): status.HTTP_201_CREATED: serializers.EngagementCheckListSerializer }, ) - @swagger_auto_schema( - method="post", - request_body=serializers.EngagementCheckListSerializer, - responses={ - status.HTTP_201_CREATED: serializers.EngagementCheckListSerializer - }, - ) @action(detail=True, methods=["get", "post"]) def complete_checklist(self, request, pk=None): from dojo.api_v2.prefetch.prefetcher import _Prefetcher @@ -702,12 +621,6 @@ def complete_checklist(self, request, pk=None): status.HTTP_200_OK: serializers.RawFileSerializer, }, ) - @swagger_auto_schema( - method="get", - responses={ - status.HTTP_200_OK: serializers.RawFileSerializer, - }, - ) @action( detail=True, methods=["get"], @@ -749,10 +662,7 @@ class RiskAcceptanceViewSet( queryset = Risk_Acceptance.objects.none() filter_backends = (DjangoFilterBackend,) filterset_class = ApiRiskAcceptanceFilter - swagger_schema = prefetch.get_prefetch_schema( - ["risk_acceptance_list", "risk_acceptance_read"], - serializers.RiskAcceptanceSerializer, - ).to_schema() + permission_classes = ( IsAuthenticated, permissions.UserHasRiskAcceptancePermission, @@ -773,12 +683,6 @@ def get_queryset(self): status.HTTP_200_OK: serializers.RiskAcceptanceProofSerializer, }, ) - @swagger_auto_schema( - method="get", - responses={ - status.HTTP_200_OK: serializers.RiskAcceptanceProofSerializer, - }, - ) @action(detail=True, methods=["get"]) def download_proof(self, request, pk=None): risk_acceptance = self.get_object() @@ -815,10 +719,7 @@ class AppAnalysisViewSet( queryset = App_Analysis.objects.none() filter_backends = (DjangoFilterBackend,) filterset_class = ApiAppAnalysisFilter - swagger_schema = prefetch.get_prefetch_schema( - ["technologies_list", "technologies_read"], - serializers.AppAnalysisSerializer, - ).to_schema() + permission_classes = ( IsAuthenticated, permissions.UserHasAppAnalysisPermission, @@ -835,10 +736,7 @@ class CredentialsViewSet( serializer_class = serializers.CredentialSerializer queryset = Cred_User.objects.all() filter_backends = (DjangoFilterBackend,) - swagger_schema = prefetch.get_prefetch_schema( - ["credentials_list", "credentials_read"], - serializers.CredentialSerializer, - ).to_schema() + permission_classes = (permissions.IsSuperUser, DjangoModelPermissions) @@ -850,10 +748,7 @@ class CredentialsMappingViewSet( queryset = Cred_Mapping.objects.none() filter_backends = (DjangoFilterBackend,) filterset_class = ApiCredentialsFilter - swagger_schema = prefetch.get_prefetch_schema( - ["credential_mappings_list", "credential_mappings_read"], - serializers.CredentialMappingSerializer, - ).to_schema() + permission_classes = ( IsAuthenticated, permissions.UserHasCredentialPermission, @@ -934,27 +829,6 @@ class FindingViewSet( permissions.UserHasFindingPermission, ) - _related_field_parameters = [ - openapi.Parameter( - name="related_fields", - in_=openapi.IN_QUERY, - description="Expand finding external relations (engagement, environment, product, product_type, test, test_type)", - type=openapi.TYPE_BOOLEAN, - ) - ] - swagger_schema = ( - prefetch.get_prefetch_schema( - ["findings_list", "findings_read"], serializers.FindingSerializer - ) - .composeWith( - schema.ExtraParameters("findings_list", _related_field_parameters) - ) - .composeWith( - schema.ExtraParameters("findings_read", _related_field_parameters) - ) - .to_schema() - ) - # Overriding mixins.UpdateModeMixin perform_update() method to grab push_to_jira # data and add that as a parameter to .save() def perform_update(self, serializer): @@ -1003,11 +877,6 @@ def get_serializer_class(self): request=serializers.FindingCloseSerializer, responses={status.HTTP_200_OK: serializers.FindingCloseSerializer}, ) - @swagger_auto_schema( - method="post", - request_body=serializers.FindingCloseSerializer, - responses={status.HTTP_200_OK: serializers.FindingCloseSerializer}, - ) @action(detail=True, methods=["post"]) def close(self, request, pk=None): finding = self.get_object() @@ -1069,14 +938,6 @@ def close(self, request, pk=None): request=serializers.TagSerializer, responses={status.HTTP_201_CREATED: serializers.TagSerializer}, ) - @swagger_auto_schema( - method="get", responses={status.HTTP_200_OK: serializers.TagSerializer} - ) - @swagger_auto_schema( - method="post", - request_body=serializers.TagSerializer, - responses={status.HTTP_200_OK: serializers.TagSerializer}, - ) @action(detail=True, methods=["get", "post"]) def tags(self, request, pk=None): finding = self.get_object() @@ -1118,19 +979,6 @@ def tags(self, request, pk=None): status.HTTP_201_CREATED: serializers.BurpRawRequestResponseSerializer }, ) - @swagger_auto_schema( - method="get", - responses={ - status.HTTP_200_OK: serializers.BurpRawRequestResponseSerializer - }, - ) - @swagger_auto_schema( - method="post", - request_body=serializers.BurpRawRequestResponseSerializer, - responses={ - status.HTTP_200_OK: serializers.BurpRawRequestResponseSerializer - }, - ) @action(detail=True, methods=["get", "post"]) def request_response(self, request, pk=None): finding = self.get_object() @@ -1177,15 +1025,6 @@ def request_response(self, request, pk=None): request=serializers.AddNewNoteOptionSerializer, responses={status.HTTP_201_CREATED: serializers.NoteSerializer}, ) - @swagger_auto_schema( - method="get", - responses={status.HTTP_200_OK: serializers.FindingToNotesSerializer}, - ) - @swagger_auto_schema( - methods=["post"], - request_body=serializers.AddNewNoteOptionSerializer, - responses={status.HTTP_201_CREATED: serializers.NoteSerializer}, - ) @action(detail=True, methods=["get", "post"]) def notes(self, request, pk=None): finding = self.get_object() @@ -1239,15 +1078,6 @@ def notes(self, request, pk=None): request=serializers.AddNewFileOptionSerializer, responses={status.HTTP_201_CREATED: serializers.FileSerializer}, ) - @swagger_auto_schema( - method="get", - responses={status.HTTP_200_OK: serializers.FindingToFilesSerializer}, - ) - @swagger_auto_schema( - method="post", - request_body=serializers.AddNewFileOptionSerializer, - responses={status.HTTP_201_CREATED: serializers.FileSerializer}, - ) @action( detail=True, methods=["get", "post"], parser_classes=(MultiPartParser,) ) @@ -1284,12 +1114,6 @@ def files(self, request, pk=None): status.HTTP_200_OK: serializers.RawFileSerializer, }, ) - @swagger_auto_schema( - method="get", - responses={ - status.HTTP_200_OK: serializers.RawFileSerializer, - }, - ) @action( detail=True, methods=["get"], @@ -1327,10 +1151,6 @@ def download_file(self, request, file_id, pk=None): request=serializers.FindingNoteSerializer, responses={status.HTTP_204_NO_CONTENT: ""}, ) - @swagger_auto_schema( - request_body=serializers.FindingNoteSerializer, - responses={status.HTTP_204_NO_CONTENT: ""}, - ) @action(detail=True, methods=["patch"]) def remove_note(self, request, pk=None): """Remove Note From Finding Note""" @@ -1370,11 +1190,6 @@ def remove_note(self, request, pk=None): request=serializers.TagSerializer, responses={status.HTTP_204_NO_CONTENT: ""}, ) - @swagger_auto_schema( - methods=["put", "patch"], - request_body=serializers.TagSerializer, - responses={status.HTTP_204_NO_CONTENT: ""}, - ) @action(detail=True, methods=["put", "patch"]) def remove_tags(self, request, pk=None): """Remove Tag(s) from finding list of tags""" @@ -1423,11 +1238,6 @@ def remove_tags(self, request, pk=None): status.HTTP_200_OK: serializers.FindingSerializer(many=True) } ) - @swagger_auto_schema( - responses={ - status.HTTP_200_OK: serializers.FindingSerializer(many=True) - } - ) @action( detail=True, methods=["get"], @@ -1447,10 +1257,6 @@ def get_duplicate_cluster(self, request, pk): request=OpenApiTypes.NONE, responses={status.HTTP_204_NO_CONTENT: ""}, ) - @swagger_auto_schema( - request_body=no_body, - responses={status.HTTP_204_NO_CONTENT: ""}, - ) @action(detail=True, methods=["post"], url_path=r"duplicate/reset") def reset_finding_duplicate_status(self, request, pk): checked_duplicate_id = reset_finding_duplicate_status_internal( @@ -1469,9 +1275,6 @@ def reset_finding_duplicate_status(self, request, pk): ], responses={status.HTTP_204_NO_CONTENT: ""}, ) - @swagger_auto_schema( - responses={status.HTTP_204_NO_CONTENT: ""}, request_body=no_body - ) @action( detail=True, methods=["post"], url_path=r"original/(?P\d+)" ) @@ -1485,10 +1288,6 @@ def set_finding_as_original(self, request, pk, new_fid): request=serializers.ReportGenerateOptionSerializer, responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, ) - @swagger_auto_schema( - request_body=serializers.ReportGenerateOptionSerializer, - responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, - ) @action( detail=False, methods=["post"], permission_classes=[IsAuthenticated] ) @@ -1622,10 +1421,6 @@ def _remove_metadata(self, request, finding): description="Returned if there was a problem with the metadata information" ), }, - # manual_parameters=[openapi.Parameter( - # name="name", in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, - # description="name of the metadata to retrieve. If name is empty, return all the \ - # metadata associated with the finding")] ) @extend_schema( methods=["PUT"], @@ -1639,9 +1434,6 @@ def _remove_metadata(self, request, finding): description="Returned if there was a problem with the metadata information" ), }, - # manual_parameters=[openapi.Parameter( - # name="name", in_=openapi.IN_QUERY, required=True, type=openapi.TYPE_STRING, - # description="name of the metadata to edit")], ) @extend_schema( methods=["POST"], @@ -1656,58 +1448,6 @@ def _remove_metadata(self, request, finding): ), }, ) - @swagger_auto_schema( - responses={ - status.HTTP_200_OK: serializers.FindingMetaSerializer(many=True), - status.HTTP_404_NOT_FOUND: "Returned if finding does not exist", - }, - methods=["get"], - ) - @swagger_auto_schema( - responses={ - status.HTTP_200_OK: "Returned if the metadata was correctly deleted", - status.HTTP_404_NOT_FOUND: "Returned if finding does not exist", - status.HTTP_400_BAD_REQUEST: "Returned if there was a problem with the metadata information", - }, - methods=["delete"], - manual_parameters=[ - openapi.Parameter( - name="name", - in_=openapi.IN_QUERY, - required=True, - type=openapi.TYPE_STRING, - description="name of the metadata to retrieve. If name is empty, return all the \ - metadata associated with the finding", - ) - ], - ) - @swagger_auto_schema( - responses={ - status.HTTP_200_OK: serializers.FindingMetaSerializer, - status.HTTP_404_NOT_FOUND: "Returned if finding does not exist", - status.HTTP_400_BAD_REQUEST: "Returned if there was a problem with the metadata information", - }, - methods=["put"], - manual_parameters=[ - openapi.Parameter( - name="name", - in_=openapi.IN_QUERY, - required=True, - type=openapi.TYPE_STRING, - description="name of the metadata to edit", - ) - ], - request_body=serializers.FindingMetaSerializer, - ) - @swagger_auto_schema( - responses={ - status.HTTP_200_OK: serializers.FindingMetaSerializer, - status.HTTP_404_NOT_FOUND: "Returned if finding does not exist", - status.HTTP_400_BAD_REQUEST: "Returned if there was a problem with the metadata information", - }, - methods=["post"], - request_body=serializers.FindingMetaSerializer, - ) @action( detail=True, methods=["post", "put", "delete", "get"], @@ -1759,10 +1499,7 @@ class JiraIssuesViewSet( "engagement", "finding_group", ] - swagger_schema = prefetch.get_prefetch_schema( - ["jira_finding_mappings_list", "jira_finding_mappings_read"], - serializers.JIRAIssueSerializer, - ).to_schema() + permission_classes = ( IsAuthenticated, permissions.UserHasJiraIssuePermission, @@ -1790,10 +1527,7 @@ class JiraProjectViewSet( "enable_engagement_epic_mapping", "push_notes", ] - swagger_schema = prefetch.get_prefetch_schema( - ["jira_projects_list", "jira_projects_read"], - serializers.JIRAProjectSerializer, - ).to_schema() + permission_classes = ( IsAuthenticated, permissions.UserHasJiraProductPermission, @@ -1846,13 +1580,6 @@ class ProductAPIScanConfigurationViewSet( "service_key_2", "service_key_3", ] - swagger_schema = prefetch.get_prefetch_schema( - [ - "product_api_scan_configurations_list", - "product_api_scan_configurations_read", - ], - serializers.ProductAPIScanConfigurationSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasProductAPIScanConfigurationPermission, @@ -1907,34 +1634,14 @@ class DojoMetaViewSet( IsAuthenticated, permissions.UserHasDojoMetaPermission, ) - swagger_schema = prefetch.get_prefetch_schema( - ["metadata_list", "metadata_read"], serializers.MetaSerializer - ).to_schema() + # swagger_schema = prefetch.get_prefetch_schema( + # ["metadata_list", "metadata_read"], serializers.MetaSerializer + # ).to_schema() def get_queryset(self): return get_authorized_dojo_meta(Permissions.Product_View) -# Authorization: object-based -class DjangoFilterDescriptionInspector(CoreAPICompatInspector): - def get_filter_parameters(self, filter_backend): - if isinstance(filter_backend, DjangoFilterBackend): - result = super( - DjangoFilterDescriptionInspector, self - ).get_filter_parameters(filter_backend) - for param in result: - if not param.get("description", ""): - param.description = ( - "Filter the returned list by {field_name}".format( - field_name=param.name - ) - ) - - return result - - return NotHandled - - @extend_schema_view( list=extend_schema( parameters=[ @@ -1959,12 +1666,6 @@ def get_filter_parameters(self, filter_backend): ], ), ) -@method_decorator( - name="list", - decorator=swagger_auto_schema( - filter_inspectors=[DjangoFilterDescriptionInspector] - ), -) class ProductViewSet( prefetch.PrefetchListMixin, prefetch.PrefetchRetrieveMixin, @@ -1980,9 +1681,6 @@ class ProductViewSet( filter_backends = (DjangoFilterBackend,) filterset_class = ApiProductFilter - swagger_schema = prefetch.get_prefetch_schema( - ["products_list", "products_read"], serializers.ProductSerializer - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasProductPermission, @@ -2011,10 +1709,6 @@ def destroy(self, request, *args, **kwargs): request=serializers.ReportGenerateOptionSerializer, responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, ) - @swagger_auto_schema( - request_body=serializers.ReportGenerateOptionSerializer, - responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, - ) @action( detail=True, methods=["post"], permission_classes=[IsAuthenticated] ) @@ -2081,10 +1775,6 @@ class ProductMemberViewSet( queryset = Product_Member.objects.none() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "product_id", "user_id"] - swagger_schema = prefetch.get_prefetch_schema( - ["product_members_list", "product_members_read"], - serializers.ProductMemberSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasProductMemberPermission, @@ -2098,9 +1788,6 @@ def get_queryset(self): @extend_schema( exclude=True ) - @swagger_auto_schema( - auto_schema=None - ) def partial_update(self, request, pk=None): # Object authorization won't work if not all data is provided response = {"message": "Patch function is not offered in this path."} @@ -2139,10 +1826,6 @@ class ProductGroupViewSet( queryset = Product_Group.objects.none() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "product_id", "group_id"] - swagger_schema = prefetch.get_prefetch_schema( - ["product_groups_list", "product_groups_read"], - serializers.ProductGroupSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasProductGroupPermission, @@ -2156,9 +1839,6 @@ def get_queryset(self): @extend_schema( exclude=True ) - @swagger_auto_schema( - auto_schema=None - ) def partial_update(self, request, pk=None): # Object authorization won't work if not all data is provided response = {"message": "Patch function is not offered in this path."} @@ -2204,10 +1884,6 @@ class ProductTypeViewSet( "created", "updated", ] - swagger_schema = prefetch.get_prefetch_schema( - ["product_types_list", "product_types_read"], - serializers.ProductTypeSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasProductTypePermission, @@ -2243,10 +1919,6 @@ def destroy(self, request, *args, **kwargs): request=serializers.ReportGenerateOptionSerializer, responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, ) - @swagger_auto_schema( - request_body=serializers.ReportGenerateOptionSerializer, - responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, - ) @action( detail=True, methods=["post"], permission_classes=[IsAuthenticated] ) @@ -2313,10 +1985,6 @@ class ProductTypeMemberViewSet( queryset = Product_Type_Member.objects.none() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "product_type_id", "user_id"] - swagger_schema = prefetch.get_prefetch_schema( - ["product_type_members_list", "product_type_members_read"], - serializers.ProductTypeMemberSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasProductTypeMemberPermission, @@ -2344,9 +2012,6 @@ def destroy(self, request, *args, **kwargs): @extend_schema( exclude=True ) - @swagger_auto_schema( - auto_schema=None - ) def partial_update(self, request, pk=None): # Object authorization won't work if not all data is provided response = {"message": "Patch function is not offered in this path."} @@ -2385,10 +2050,6 @@ class ProductTypeGroupViewSet( queryset = Product_Type_Group.objects.none() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "product_type_id", "group_id"] - swagger_schema = prefetch.get_prefetch_schema( - ["product_type_groups_list", "product_type_groups_read"], - serializers.ProductTypeGroupSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasProductTypeGroupPermission, @@ -2402,9 +2063,6 @@ def get_queryset(self): @extend_schema( exclude=True ) - @swagger_auto_schema( - auto_schema=None - ) def partial_update(self, request, pk=None): # Object authorization won't work if not all data is provided response = {"message": "Patch function is not offered in this path."} @@ -2419,10 +2077,6 @@ class StubFindingsViewSet( queryset = Stub_Finding.objects.none() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "title", "date", "severity", "description"] - swagger_schema = prefetch.get_prefetch_schema( - ["stub_findings_list", "stub_findings_read"], - serializers.StubFindingSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasFindingPermission, @@ -2459,9 +2113,6 @@ class TestsViewSet( queryset = Test.objects.none() filter_backends = (DjangoFilterBackend,) filterset_class = ApiTestFilter - swagger_schema = prefetch.get_prefetch_schema( - ["tests_list", "tests_read"], serializers.TestSerializer - ).to_schema() permission_classes = (IsAuthenticated, permissions.UserHasTestPermission) @property @@ -2496,10 +2147,6 @@ def get_serializer_class(self): request=serializers.ReportGenerateOptionSerializer, responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, ) - @swagger_auto_schema( - request_body=serializers.ReportGenerateOptionSerializer, - responses={status.HTTP_200_OK: serializers.ReportGenerateSerializer}, - ) @action( detail=True, methods=["post"], permission_classes=[IsAuthenticated] ) @@ -2542,15 +2189,6 @@ def generate_report(self, request, pk=None): request=serializers.AddNewNoteOptionSerializer, responses={status.HTTP_201_CREATED: serializers.NoteSerializer}, ) - @swagger_auto_schema( - method="get", - responses={status.HTTP_200_OK: serializers.TestToNotesSerializer}, - ) - @swagger_auto_schema( - methods=["post"], - request_body=serializers.AddNewNoteOptionSerializer, - responses={status.HTTP_201_CREATED: serializers.NoteSerializer}, - ) @action(detail=True, methods=["get", "post"]) def notes(self, request, pk=None): test = self.get_object() @@ -2599,15 +2237,6 @@ def notes(self, request, pk=None): request=serializers.AddNewFileOptionSerializer, responses={status.HTTP_201_CREATED: serializers.FileSerializer}, ) - @swagger_auto_schema( - method="get", - responses={status.HTTP_200_OK: serializers.TestToFilesSerializer}, - ) - @swagger_auto_schema( - method="post", - request_body=serializers.AddNewFileOptionSerializer, - responses={status.HTTP_201_CREATED: serializers.FileSerializer}, - ) @action( detail=True, methods=["get", "post"], parser_classes=(MultiPartParser,) ) @@ -2644,12 +2273,6 @@ def files(self, request, pk=None): status.HTTP_200_OK: serializers.RawFileSerializer, }, ) - @swagger_auto_schema( - method="get", - responses={ - status.HTTP_200_OK: serializers.RawFileSerializer, - }, - ) @action( detail=True, methods=["get"], @@ -2740,10 +2363,6 @@ class TestImportViewSet( "test_import_finding_action__finding", "test_import_finding_action__created", ] - swagger_schema = prefetch.get_prefetch_schema( - ["test_imports_list", "test_imports_read"], - serializers.TestImportSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasTestImportPermission, @@ -2798,10 +2417,6 @@ class ToolConfigurationsViewSet( "url", "authentication_type", ] - swagger_schema = prefetch.get_prefetch_schema( - ["tool_configurations_list", "tool_configurations_read"], - serializers.ToolConfigurationSerializer, - ).to_schema() permission_classes = (permissions.UserHasConfigurationPermissionSuperuser,) @@ -2820,10 +2435,6 @@ class ToolProductSettingsViewSet( "tool_project_id", "url", ] - swagger_schema = prefetch.get_prefetch_schema( - ["tool_configurations_list", "tool_configurations_read"], - serializers.ToolConfigurationSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasToolProductSettingsPermission, @@ -2914,10 +2525,6 @@ class UserContactInfoViewSet( ): serializer_class = serializers.UserContactInfoSerializer queryset = UserContactInfo.objects.all() - swagger_schema = prefetch.get_prefetch_schema( - ["user_contact_infos_list", "user_contact_infos_read"], - serializers.UserContactInfoSerializer, - ).to_schema() filter_backends = (DjangoFilterBackend,) filterset_fields = "__all__" permission_classes = (permissions.IsSuperUser, DjangoModelPermissions) @@ -2929,10 +2536,6 @@ class UserProfileView(GenericAPIView): pagination_class = None serializer_class = serializers.UserProfileSerializer - @swagger_auto_schema( - method="get", - responses={status.HTTP_200_OK: serializers.UserProfileSerializer}, - ) @action( detail=True, methods=["get"], filter_backends=[], pagination_class=None ) @@ -3110,9 +2713,6 @@ class LanguageViewSet( queryset = Languages.objects.none() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "language", "product"] - swagger_schema = prefetch.get_prefetch_schema( - ["languages_list", "languages_read"], serializers.LanguageSerializer - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasLanguagePermission, @@ -3592,10 +3192,6 @@ class NotificationsViewSet( filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "user", "product", "template"] permission_classes = (permissions.IsSuperUser, DjangoModelPermissions) - swagger_schema = prefetch.get_prefetch_schema( - ["notifications_list", "notifications_read"], - serializers.NotificationsSerializer, - ).to_schema() class EngagementPresetsViewset( @@ -3605,10 +3201,6 @@ class EngagementPresetsViewset( queryset = Engagement_Presets.objects.none() filter_backends = (DjangoFilterBackend,) filterset_fields = ["id", "title", "product"] - swagger_schema = prefetch.get_prefetch_schema( - ["engagement_presets_list", "engagement_presets_read"], - serializers.EngagementPresetsSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasEngagementPresetPermission, @@ -3624,10 +3216,6 @@ class EngagementCheckListViewset( serializer_class = serializers.EngagementCheckListSerializer queryset = Check_List.objects.none() filter_backends = (DjangoFilterBackend,) - swagger_schema = prefetch.get_prefetch_schema( - ["engagement_checklists_list", "engagement_checklists_read"], - serializers.EngagementCheckListSerializer, - ).to_schema() permission_classes = ( IsAuthenticated, permissions.UserHasEngagementPermission, @@ -3731,13 +3319,6 @@ class QuestionnaireAnsweredSurveyViewSet( permissions.UserHasEngagementPermission, DjangoModelPermissions, ) - swagger_schema = prefetch.get_prefetch_schema( - [ - "questionnaire_answered_questionnaires_list", - "questionnaire_answered_questionnaires_read", - ], - serializers.QuestionnaireAnsweredSurveySerializer, - ).to_schema() # Authorization: configuration diff --git a/dojo/risk_acceptance/api.py b/dojo/risk_acceptance/api.py index d862453a2fc..b23a0d1dfc6 100644 --- a/dojo/risk_acceptance/api.py +++ b/dojo/risk_acceptance/api.py @@ -7,7 +7,6 @@ from rest_framework.decorators import action from rest_framework.permissions import IsAdminUser from rest_framework.response import Response -from drf_yasg.utils import swagger_auto_schema from dojo.api_v2.serializers import RiskAcceptanceSerializer from dojo.models import Risk_Acceptance, User, Vulnerability_Id @@ -38,10 +37,6 @@ class AcceptedRisksMixin(ABC): def risk_application_model_class(self): pass - @swagger_auto_schema( - request_body=AcceptedRiskSerializer(many=True), - responses={status.HTTP_201_CREATED: RiskAcceptanceSerializer(many=True)}, - ) @extend_schema( request=AcceptedRiskSerializer(many=True), responses={status.HTTP_201_CREATED: RiskAcceptanceSerializer(many=True)}, @@ -65,10 +60,6 @@ def accept_risks(self, request, pk=None): class AcceptedFindingsMixin(ABC): - @swagger_auto_schema( - request_body=AcceptedRiskSerializer(many=True), - responses={status.HTTP_201_CREATED: RiskAcceptanceSerializer(many=True)}, - ) @extend_schema( request=AcceptedRiskSerializer(many=True), responses={status.HTTP_201_CREATED: RiskAcceptanceSerializer(many=True)}, diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index 5b772a6daef..5c86f79ddfd 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -753,29 +753,6 @@ def generate_url(scheme, double_slashes, user, password, host, port, path, param if API_TOKENS_ENABLED: REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] += ('rest_framework.authentication.TokenAuthentication',) -SWAGGER_SETTINGS = { - 'SECURITY_DEFINITIONS': { - 'basicAuth': { - 'type': 'basic' - }, - 'cookieAuth': { - 'type': 'apiKey', - 'in': 'cookie', - 'name': 'sessionid' - }, - }, - 'DOC_EXPANSION': "none", - 'JSON_EDITOR': True, - 'SHOW_REQUEST_HEADERS': True, -} - -if API_TOKENS_ENABLED: - SWAGGER_SETTINGS['SECURITY_DEFINITIONS']['tokenAuth'] = { - 'type': 'apiKey', - 'in': 'header', - 'name': 'Authorization' - } - SPECTACULAR_SETTINGS = { 'TITLE': 'Defect Dojo API v2', 'DESCRIPTION': 'Defect Dojo - Open Source vulnerability Management made easy. Prefetch related parameters/responses not yet in the schema.', @@ -849,7 +826,6 @@ def generate_url(scheme, double_slashes, user, password, host, port, path, param 'dbbackup', 'django_celery_results', 'social_django', - 'drf_yasg', 'drf_spectacular', 'drf_spectacular_sidecar', # required for Django collectstatic discovery 'tagulous', @@ -1083,11 +1059,6 @@ def saml2_attrib_map_format(dict): ('dojo.remote_user.RemoteUserAuthentication',) + \ REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] - SWAGGER_SETTINGS['SECURITY_DEFINITIONS']['remoteUserAuth'] = { - 'type': 'apiKey', - 'in': 'header', - 'name': AUTH_REMOTEUSER_USERNAME_HEADER[5:].replace('_', '-') - } # ------------------------------------------------------------------------------ # CELERY # ------------------------------------------------------------------------------ @@ -1718,6 +1689,5 @@ def saml2_attrib_map_format(dict): from django.utils.deprecation import RemovedInDjango50Warning warnings.filterwarnings("ignore", category=RemovedInDjango50Warning) warnings.filterwarnings("ignore", message="invalid escape sequence.*") - warnings.filterwarnings("ignore", message="'cgi' is deprecated and slated for removal in Python 3\\.13") warnings.filterwarnings("ignore", message="DateTimeField .+ received a naive datetime .+ while time zone support is active\\.") warnings.filterwarnings("ignore", message="unclosed file .+") diff --git a/dojo/urls.py b/dojo/urls.py index fa15f977da9..4500e1e49dd 100755 --- a/dojo/urls.py +++ b/dojo/urls.py @@ -4,9 +4,6 @@ from django.contrib import admin from rest_framework.routers import DefaultRouter from rest_framework.authtoken import views as tokenviews -from rest_framework import permissions -from drf_yasg.views import get_schema_view -from drf_yasg import openapi from django.http import HttpResponse from dojo import views from dojo.api_v2.views import EndPointViewSet, EngagementViewSet, \ @@ -183,20 +180,6 @@ ) ] -schema_view = get_schema_view( - openapi.Info( - title="Defect Dojo API", - default_version='v2', - description="To use the API you need be authorized.\n\n## Deprecated - Removal in v2.30.0\n#### Please use the [OpenAPI3 version](/api/v2/oa3/swagger-ui/)", - ), - # if public=False, includes only endpoints the current user has access to - public=True, - # The API of a OpenSource project should be public accessible - permission_classes=[permissions.AllowAny], - # url pattersns specific to the API - patterns=api_v2_urls, -) - urlpatterns = [] # sometimes urlpatterns needed be added from local_settings.py before other URLs of core dojo @@ -208,9 +191,6 @@ re_path(r'^%shistory/(?P\d+)/(?P\d+)$' % get_system_setting('url_prefix'), views.action_history, name='action_history'), re_path(r'^%s' % get_system_setting('url_prefix'), include(ur)), - # drf-yasg = OpenAPI2 - re_path(r'^%sapi/v2/doc/' % get_system_setting('url_prefix'), schema_view.with_ui('swagger', cache_timeout=0), name='api_v2_schema'), - # drf-spectacular = OpenAPI3 re_path(r'^%sapi/v2/oa3/schema/' % get_system_setting('url_prefix'), SpectacularAPIView.as_view(), name='schema_oa3'), re_path(r'^%sapi/v2/oa3/swagger-ui/' % get_system_setting('url_prefix'), SpectacularSwaggerView.as_view(url=get_system_setting('url_prefix') + '/api/v2/oa3/schema/?format=json'), name='swagger-ui_oa3'), diff --git a/requirements.txt b/requirements.txt index e7821926bba..597607d7497 100644 --- a/requirements.txt +++ b/requirements.txt @@ -56,7 +56,6 @@ Python-jose==3.3.0 gitpython==3.1.41 debugpy==1.8.0 python-gitlab==4.4.0 -drf_yasg==1.21.5 cpe==1.2.1 packageurl-python==0.13.4 django-crum==0.7.9 diff --git a/unittests/test_apiv2_metadata.py b/unittests/test_apiv2_metadata.py index 3e39dc2bbc0..6da260ec32e 100644 --- a/unittests/test_apiv2_metadata.py +++ b/unittests/test_apiv2_metadata.py @@ -26,7 +26,7 @@ def create(self, **kwargs): return self.client.post(reverse('metadata-list'), kwargs, format='json') def test_docs(self): - r = self.client.get(reverse('api_v2_schema')) + r = self.client.get(reverse('swagger-ui_oa3')) self.assertEqual(r.status_code, 200) def test_query_metadata(self): diff --git a/unittests/test_swagger_schema.py b/unittests/test_swagger_schema.py deleted file mode 100644 index b1263359374..00000000000 --- a/unittests/test_swagger_schema.py +++ /dev/null @@ -1,835 +0,0 @@ -from django.test import tag -from rest_framework.test import APIRequestFactory -from rest_framework.views import APIView -from rest_framework.test import APITestCase, force_authenticate, APIClient -from rest_framework.mixins import \ - RetrieveModelMixin, ListModelMixin, CreateModelMixin, UpdateModelMixin -from rest_framework import status -from drf_yasg.generators import OpenAPISchemaGenerator -from drf_yasg.openapi import Info, SchemaRef -from drf_yasg.openapi import \ - TYPE_ARRAY, TYPE_BOOLEAN, TYPE_INTEGER, TYPE_NUMBER, TYPE_OBJECT, TYPE_STRING -from collections import OrderedDict - -from dojo.api_v2.views import \ - DevelopmentEnvironmentViewSet, EndpointStatusViewSet, EndPointViewSet, \ - EngagementViewSet, FindingTemplatesViewSet, FindingViewSet, \ - JiraInstanceViewSet, DojoMetaViewSet, NoteTypeViewSet, NotesViewSet, \ - ProductTypeViewSet, ProductViewSet, RegulationsViewSet, \ - SonarqubeIssueViewSet, ProductAPIScanConfigurationViewSet, \ - SonarqubeIssueTransitionViewSet, StubFindingsViewSet, SystemSettingsViewSet, \ - TestTypesViewSet, TestsViewSet, ToolConfigurationsViewSet, ToolProductSettingsViewSet, \ - ToolTypesViewSet, UsersViewSet, JiraIssuesViewSet, JiraProjectViewSet, AppAnalysisViewSet, \ - LanguageTypeViewSet, LanguageViewSet, AnnouncementViewSet - -from dojo.models import \ - Development_Environment, Endpoint_Status, Endpoint, Engagement, Finding_Template, \ - Finding, JIRA_Instance, JIRA_Issue, DojoMeta, Note_Type, Notes, Product_Type, Product, Regulation, \ - Sonarqube_Issue, Product_API_Scan_Configuration, Sonarqube_Issue_Transition, \ - Stub_Finding, System_Settings, Test_Type, Test, Tool_Configuration, Tool_Product_Settings, \ - Tool_Type, Dojo_User, JIRA_Project, App_Analysis, Language_Type, Languages, Announcement - -from dojo.api_v2.serializers import \ - DevelopmentEnvironmentSerializer, EndpointStatusSerializer, EndpointSerializer, \ - EngagementSerializer, FindingTemplateSerializer, FindingSerializer, \ - JIRAInstanceSerializer, JIRAIssueSerializer, JIRAProjectSerializer, MetaSerializer, NoteTypeSerializer, \ - ProductSerializer, RegulationSerializer, \ - SonarqubeIssueSerializer, ProductAPIScanConfigurationSerializer, SonarqubeIssueTransitionSerializer, \ - StubFindingSerializer, SystemSettingsSerializer, TestTypeSerializer, TestSerializer, ToolConfigurationSerializer, \ - ToolProductSettingsSerializer, ToolTypeSerializer, UserSerializer, NoteSerializer, ProductTypeSerializer, \ - AppAnalysisSerializer, LanguageTypeSerializer, LanguageSerializer, AnnouncementSerializer - -SWAGGER_SCHEMA_GENERATOR = OpenAPISchemaGenerator(Info("defectdojo", "v2")) -BASE_API_URL = "/api/v2" - - -def testIsBroken(method): - return tag("broken")(method) - - -def skipIfNotSubclass(baseclass): - def decorate(f): - def wrapper(self, *args, **kwargs): - if not issubclass(self.viewset, baseclass): - self.skipTest('This view is not %s' % baseclass) - else: - f(self, *args, **kwargs) - return wrapper - return decorate - - -def check_response_valid(expected_code, response): - def _data_to_str(response): - if hasattr(response, "data"): - return response.data - return None - - assert response.status_code == expected_code, \ - f"Response invalid, returned with code {response.status_code}\nResponse Data:\n{_data_to_str(response)}" - - -def format_url(path): - return f"{BASE_API_URL}{path}" - - -class SchemaChecker(): - def __init__(self, definitions): - self._prefix = [] - self._has_failed = False - self._definitions = definitions - self._errors = [] - - def _register_error(self, error): - self._errors += [error] - - def _check_or_fail(self, condition, message): - if not condition: - self._has_failed = True - self._register_error(message) - - def _get_prefix(self): - return '#'.join(self._prefix) - - def _push_prefix(self, prefix): - self._prefix += [prefix] - - def _pop_prefix(self): - self._prefix = self._prefix if len(self._prefix) == 0 else self._prefix[:-1] - - def _resolve_if_ref(self, schema): - if type(schema) is not SchemaRef: - return schema - - ref_name = schema["$ref"] - ref_name = ref_name[ref_name.rfind("/") + 1:] - return self._definitions[ref_name] - - def _check_has_required_fields(self, required_fields, obj): - for required_field in required_fields: - # passwords are writeOnly, but this is not supported by Swagger / OpenAPIv2 - if required_field != 'password': - field = f"{self._get_prefix()}#{required_field}" - self._check_or_fail(obj is not None and required_field in obj, f"{field} is required but was not returned") - - def _check_type(self, schema, obj): - schema_type = schema["type"] - is_nullable = schema.get("x-nullable", False) or schema.get("readOnly", False) - - def _check_helper(check): - self._check_or_fail(check, f"{self._get_prefix()} should be of type {schema_type} but value was of type {type(obj)}") - - if obj is None: - self._check_or_fail(is_nullable, f"{self._get_prefix()} is not nullable yet the value returned was null") - elif schema_type is TYPE_BOOLEAN: - _check_helper(isinstance(obj, bool)) - elif schema_type is TYPE_INTEGER: - _check_helper(isinstance(obj, int)) - elif schema_type is TYPE_NUMBER: - _check_helper(obj.isdecimal()) - elif schema_type is TYPE_ARRAY: - _check_helper(isinstance(obj, list)) - elif schema_type is TYPE_OBJECT: - _check_helper(isinstance(obj, OrderedDict) or isinstance(obj, dict)) - elif schema_type is TYPE_STRING: - _check_helper(isinstance(obj, str)) - else: - # Default case - _check_helper(False) - - def _with_prefix(self, prefix, callable, *args): - self._push_prefix(prefix) - callable(*args) - self._pop_prefix() - - def check(self, schema, obj): - def _check(schema, obj): - schema = self._resolve_if_ref(schema) - self._check_type(schema, obj) - - required_fields = schema.get("required", []) - self._check_has_required_fields(required_fields, obj) - - if obj is None: - return - - properties = schema.get("properties", None) - if properties is not None: - for name, prop in properties.items(): - # print('property: ', name) - # print('obj ', obj) - obj_child = obj.get(name, None) - if obj_child is not None: - self._with_prefix(name, _check, prop, obj_child) - - for child_name in obj.keys(): - # TODO prefetch mixins not picked up by spectcular? - if child_name not in ['prefetch']: - if not properties or child_name not in properties.keys(): - self._has_failed = True - self._register_error(f'unexpected property "{child_name}" found') - - additional_properties = schema.get("additionalProperties", None) - if additional_properties is not None: - for name, obj_child in obj.items(): - self._with_prefix(f"additionalProp<{name}>", _check, additional_properties, obj_child) - - if schema["type"] is TYPE_ARRAY: - items_schema = schema["items"] - for index in range(len(obj)): - self._with_prefix(f"item{index}", _check, items_schema, obj[index]) - - self._has_failed = False - self._errors = [] - self._prefix = [] - _check(schema, obj) - assert not self._has_failed, "\n" + '\n'.join(self._errors) + "\nFailed with " + str(len(self._errors)) + " errors" - - -class BaseClass(): - class SchemaTest(APITestCase): - fixtures = ['dojo_testdata.json'] - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewset = None - self.viewname = None - self.model = None - self.serializer = None - self.field_transformers = dict() - - def setUp(self): - super().setUp() - testuser = Dojo_User.objects.get(username='admin') - - factory = APIRequestFactory() - request = factory.get('/') - force_authenticate(request, user=testuser) - request = APIView().initialize_request(request) - - self.schema = SWAGGER_SCHEMA_GENERATOR.get_schema(request, public=True) - self.client = APIClient() - self.client.force_authenticate(user=testuser) - - def check_schema(self, schema, obj): - schema_checker = SchemaChecker(self.schema["definitions"]) - # print(vars(schema_checker)) - schema_checker.check(schema, obj) - - def get_valid_object_id(self): - response = self.client.get(format_url(f"/{self.viewname}/")) - check_response_valid(status.HTTP_200_OK, response) - if len(response.data["results"]) == 0: - return None - - return response.data["results"][0].get('id', None) - - def get_endpoint_schema(self, path, method): - paths = self.schema["paths"] - methods = paths.get(path, None) - assert methods is not None, f"{path} not found in {[path for path in paths.keys()]}" - - endpoint = methods.get(method, None) - assert endpoint is not None, f"Method {method} not found in {[method for method in methods.keys()]}" - - return endpoint - - def construct_response_data(self, obj_id): - obj = self.model.objects.get(id=obj_id) - request = APIView().initialize_request(APIRequestFactory().request()) - serialized_obj = self.serializer(context={"request": request}).to_representation(obj) - - for name, transformer in self.field_transformers.items(): - serialized_obj[name] = transformer(serialized_obj[name]) - - return serialized_obj - - @skipIfNotSubclass(ListModelMixin) - def test_list_endpoint(self, extra_args=None): - endpoints = self.schema["paths"][f"/{self.viewname}/"] - response = self.client.get(format_url(f"/{self.viewname}/"), extra_args) - check_response_valid(status.HTTP_200_OK, response) - - schema = endpoints['get']['responses']['200']['schema'] - obj = response.data - - self.check_schema(schema, obj) - - @skipIfNotSubclass(RetrieveModelMixin) - def test_retrieve_endpoint(self, extra_args=None): - endpoints = self.schema["paths"][f"/{self.viewname}/{{id}}/"] - response = self.client.get(format_url(f"/{self.viewname}/")) - check_response_valid(status.HTTP_200_OK, response) - ids = [obj['id'] for obj in response.data["results"]] - - schema = endpoints['get']['responses']['200']['schema'] - for id in ids: - print('id:', id) - response = self.client.get(format_url(f"/{self.viewname}/{id}/"), extra_args) - print('response type:', type(response)) - print('response data:', response.data) - check_response_valid(status.HTTP_200_OK, response) - obj = response.data - self.check_schema(schema, obj) - - @skipIfNotSubclass(UpdateModelMixin) - def test_patch_endpoint(self, extra_args=None): - operation = self.schema["paths"][f"/{self.viewname}/{{id}}/"]["patch"] - - id = self.get_valid_object_id() - if id is None: - self.skipTest("No data exists to test endpoint") - - data = self.construct_response_data(id) - - schema = operation['responses']['200']['schema'] - response = self.client.patch(format_url(f"/{self.viewname}/{id}/"), data, format='json') - check_response_valid(status.HTTP_200_OK, response) - - obj = response.data - self.check_schema(schema, obj) - - @skipIfNotSubclass(UpdateModelMixin) - def test_put_endpoint(self, extra_data={}, extra_args=None): - operation = self.schema["paths"][f"/{self.viewname}/{{id}}/"]['put'] - - id = self.get_valid_object_id() - if id is None: - self.skipTest("No data exists to test endpoint") - - data = self.construct_response_data(id) - data.update(extra_data) - - schema = operation['responses']['200']['schema'] - response = self.client.put(format_url(f"/{self.viewname}/{id}/"), data, format='json') - check_response_valid(status.HTTP_200_OK, response) - - obj = response.data - self.check_schema(schema, obj) - - @skipIfNotSubclass(CreateModelMixin) - def test_post_endpoint(self, extra_data=[], extra_args=None): - operation = self.schema["paths"][f"/{self.viewname}/"]["post"] - - id = self.get_valid_object_id() - if id is None: - self.skipTest("No data exists to test endpoint") - - data = self.construct_response_data(id) - data.update(extra_data) - - print('data:', data) - - schema = operation['responses']['201']['schema'] - response = self.client.post(format_url(f"/{self.viewname}/"), data, format='json') - check_response_valid(status.HTTP_201_CREATED, response) - - print('response.data:', response.data) - - obj = response.data - self.check_schema(schema, obj) - - -class DevelopmentEnvironmentTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "development_environments" - self.viewset = DevelopmentEnvironmentViewSet - self.model = Development_Environment - self.serializer = DevelopmentEnvironmentSerializer - - -# Test will only work when FEATURE_AUTHENTICATION_V2 is the default -# class DojoGroupTest(BaseClass.SchemaTest): -# def __init__(self, *args, **kwargs): -# super().__init__(*args, **kwargs) -# self.viewname = "group" -# self.viewset = DojoGroupViewSet -# self.model = Dojo_Group -# self.serializer = DojoGroupSerializer - - -class EndpointStatusTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "endpoint_status" - self.viewset = EndpointStatusViewSet - self.model = Endpoint_Status - self.serializer = EndpointStatusSerializer - - # We can not simulate creating of the endpoint-finding relation with the same parameters as existing one. We will use another finding for this case - def test_post_endpoint(self): - super().test_post_endpoint(extra_data={"finding": "3"}) - - -class EndpointTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "endpoints" - self.viewset = EndPointViewSet - self.model = Endpoint - self.serializer = EndpointSerializer - self.field_transformers = { - "path": lambda v: (v if v else '') + "transformed/" - } - - -class EngagementTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "engagements" - self.viewset = EngagementViewSet - self.model = Engagement - self.serializer = EngagementSerializer - - # @testIsBroken - # fixed - def test_accept_risks(self): - operation = self.get_endpoint_schema("/engagements/{id}/accept_risks/", "post") - schema = operation['responses']['201']['schema'] - print(schema) - id = self.get_valid_object_id() - if id is None: - self.skipTest("No data exists to test endpoint") - - data = [ - { - "vulnerability_id": 1, - "justification": "test", - "accepted_by": "2" - } - ] - - response = self.client.post(format_url(f"/engagements/{id}/accept_risks/"), data, format='json') - check_response_valid(201, response) - print('response.data') - # print(vars(response)) - print(response.content) - obj = response.data - self.check_schema(schema, obj) - - # fixed - def test_notes_read(self): - operation = self.get_endpoint_schema("/engagements/{id}/notes/", "get") - schema = operation['responses']['200']['schema'] - id = self.get_valid_object_id() - if id is None: - self.skipTest("No data exists to test endpoint") - - response = self.client.get(format_url(f"/engagements/{id}/notes/")) - check_response_valid(200, response) - obj = response.data - self.check_schema(schema, obj) - - # fixed - def test_notes_create(self): - operation = self.get_endpoint_schema("/engagements/{id}/notes/", "post") - schema = operation['responses']['201']['schema'] - id = self.get_valid_object_id() - if id is None: - self.skipTest("No data exists to test endpoint") - - data = { - "entry": "test", - "author": 2, - } - - response = self.client.post(format_url(f"/engagements/{id}/notes/"), data, format='json') - check_response_valid(201, response) - obj = response.data - self.check_schema(schema, obj) - - -class FindingTemplateTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "finding_templates" - self.viewset = FindingTemplatesViewSet - self.model = Finding_Template - self.serializer = FindingTemplateSerializer - - # fixed - def test_post_endpoint(self): - super().test_post_endpoint() - - # fixed - def test_patch_endpoint(self): - super().test_patch_endpoint() - - # fixed - def test_put_endpoint(self): - super().test_put_endpoint() - - -class FindingTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "findings" - self.viewset = FindingViewSet - self.model = Finding - self.serializer = FindingSerializer - - # fixed - def test_list_endpoint(self): - super().test_list_endpoint({ - "related_fields": True - }) - - # fixed - def test_patch_endpoint(self): - super().test_patch_endpoint() - - # fixed - def test_put_endpoint(self): - super().test_put_endpoint() - - # fixed - def test_retrieve_endpoint(self): - super().test_retrieve_endpoint({ - "related_fields": True - }) - - -class JiraInstanceTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "jira_instances" - self.viewset = JiraInstanceViewSet - self.model = JIRA_Instance - self.serializer = JIRAInstanceSerializer - - # fixed - def test_list_endpoint(self): - super().test_list_endpoint() - - # fixed - def test_patch_endpoint(self): - super().test_patch_endpoint() - - # fixed - def test_put_endpoint(self): - super().test_put_endpoint(extra_data={"password": "12345"}) - - # fixed - def test_retrieve_endpoint(self): - super().test_retrieve_endpoint() - - # fixed - def test_post_endpoint(self): - super().test_post_endpoint(extra_data={"password": "12345"}) - - -class JiraFindingMappingsTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "jira_finding_mappings" - self.viewset = JiraIssuesViewSet - self.model = JIRA_Issue - self.serializer = JIRAIssueSerializer - self.field_transformers = { - "finding": lambda v: 3, - } - - -class JiraProjectTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "jira_projects" - self.viewset = JiraProjectViewSet - self.model = JIRA_Project - self.serializer = JIRAProjectSerializer - - -class MetadataTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "metadata" - self.viewset = DojoMetaViewSet - self.model = DojoMeta - self.serializer = MetaSerializer - - -class NoteTypeTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "note_type" - self.viewset = NoteTypeViewSet - self.model = Note_Type - self.serializer = NoteTypeSerializer - self.field_transformers = { - "name": lambda v: v + "_new" - } - - -class NoteTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "notes" - self.viewset = NotesViewSet - self.model = Notes - self.serializer = NoteSerializer - - -class ProductTypeTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "product_types" - self.viewset = ProductTypeViewSet - self.model = Product_Type - self.serializer = ProductTypeSerializer - self.field_transformers = { - "name": lambda v: v + "_new" - } - - -# Test will only work when FEATURE_AUTHENTICATION_V2 is the default -# class ProductTypeMemberTest(BaseClass.SchemaTest): -# def __init__(self, *args, **kwargs): -# super().__init__(*args, **kwargs) -# self.viewname = "product_type_members" -# self.viewset = ProductTypeMemberViewSet -# self.model = Product_Type_Member -# self.serializer = ProductTypeMemberSerializer - - -# Test will only work when FEATURE_AUTHENTICATION_V2 is the default -# class ProductTypeGroupTest(BaseClass.SchemaTest): -# def __init__(self, *args, **kwargs): -# super().__init__(*args, **kwargs) -# self.viewname = "product_type_groups" -# self.viewset = ProductTypeGroupViewSet -# self.model = Product_Type_Group -# self.serializer = ProductTypeGroupSerializer - - -class ProductTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "products" - self.viewset = ProductViewSet - self.model = Product - self.serializer = ProductSerializer - self.field_transformers = { - "name": lambda v: v + "_new" - } - - # fixed - def test_list_endpoint(self): - super().test_list_endpoint() - - # fixed - def test_patch_endpoint(self): - super().test_patch_endpoint() - - # fixed - def test_put_endpoint(self): - super().test_put_endpoint() - - # fixed - def test_retrieve_endpoint(self): - super().test_retrieve_endpoint() - - # fixed - def test_post_endpoint(self): - super().test_post_endpoint() - - -# Test will only work when FEATURE_AUTHENTICATION_V2 is the default -# class ProductMemberTest(BaseClass.SchemaTest): -# def __init__(self, *args, **kwargs): -# super().__init__(*args, **kwargs) -# self.viewname = "product_members" -# self.viewset = ProductMemberViewSet -# self.model = Product_Member -# self.serializer = ProductMemberSerializer - -# @testIsBroken -# def test_post_endpoint(self): -# super().test_post_endpoint() - -# @testIsBroken -# def test_patch_endpoint(self): -# super().test_post_endpoint() - - -# Test will only work when FEATURE_AUTHENTICATION_V2 is the default -# class ProductGroupTest(BaseClass.SchemaTest): -# def __init__(self, *args, **kwargs): -# super().__init__(*args, **kwargs) -# self.viewname = "product_groups" -# self.viewset = ProductGroupViewSet -# self.model = Product_Group -# self.serializer = ProductGroupSerializer - - -class RegulationTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "regulations" - self.viewset = RegulationsViewSet - self.model = Regulation - self.serializer = RegulationSerializer - - -class SonarqubeIssuesTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "sonarqube_issues" - self.viewset = SonarqubeIssueViewSet - self.model = Sonarqube_Issue - self.serializer = SonarqubeIssueSerializer - self.field_transformers = { - "key": lambda v: v + "_new" - } - - -class ProductAPIScanConfigurationTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "product_api_scan_configurations" - self.viewset = ProductAPIScanConfigurationViewSet - self.model = Product_API_Scan_Configuration - self.serializer = ProductAPIScanConfigurationSerializer - - -class SonarqubeTransitionTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "sonarqube_transitions" - self.viewset = SonarqubeIssueTransitionViewSet - self.model = Sonarqube_Issue_Transition - self.serializer = SonarqubeIssueTransitionSerializer - - -class StubFindingTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "stub_findings" - self.viewset = StubFindingsViewSet - self.model = Stub_Finding - self.serializer = StubFindingSerializer - - -class SystemSettingTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "system_settings" - self.viewset = SystemSettingsViewSet - self.model = System_Settings - self.serializer = SystemSettingsSerializer - - -class AppAnalysisTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "technologies" - self.viewset = AppAnalysisViewSet - self.model = App_Analysis - self.serializer = AppAnalysisSerializer - - # fixed - def test_patch_endpoint(self): - super().test_patch_endpoint() - - # fixed - def test_put_endpoint(self): - super().test_put_endpoint() - - # fixed - def test_post_endpoint(self): - super().test_post_endpoint() - - -class TestTypeTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "test_types" - self.viewset = TestTypesViewSet - self.model = Test_Type - self.serializer = TestTypeSerializer - self.field_transformers = { - "name": lambda v: v + "_new" - } - - -class TestsTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "tests" - self.viewset = TestsViewSet - self.model = Test - self.serializer = TestSerializer - - -class ToolConfigurationTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "tool_configurations" - self.viewset = ToolConfigurationsViewSet - self.model = Tool_Configuration - self.serializer = ToolConfigurationSerializer - - -class ToolProductSettingTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "tool_product_settings" - self.viewset = ToolProductSettingsViewSet - self.model = Tool_Product_Settings - self.serializer = ToolProductSettingsSerializer - - -class ToolTypeTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "tool_types" - self.viewset = ToolTypesViewSet - self.model = Tool_Type - self.serializer = ToolTypeSerializer - self.field_transformers = { - "name": lambda v: v + "_new" - } - - -class UserTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "users" - self.viewset = UsersViewSet - self.model = Dojo_User - self.serializer = UserSerializer - self.field_transformers = { - "username": lambda v: v + "_transformed" - } - - -class LanguageTypeTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "language_types" - self.viewset = LanguageTypeViewSet - self.model = Language_Type - self.serializer = LanguageTypeSerializer - - -class LanguageTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "languages" - self.viewset = LanguageViewSet - self.model = Languages - self.serializer = LanguageSerializer - - def test_post_endpoint(self): - super().test_post_endpoint(extra_data={"language": 2}) - - -class AnnouncementTest(BaseClass.SchemaTest): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.viewname = "announcements" - self.viewset = AnnouncementViewSet - self.model = Announcement - self.serializer = AnnouncementSerializer - - def test_post_endpoint(self, extra_data=[], extra_args=None): - self.skipTest('Only one Announcement can exists') From b4b29d72ec2a52729cdcd2cdb5b3641155ec9002 Mon Sep 17 00:00:00 2001 From: kiblik Date: Thu, 15 Feb 2024 23:47:23 +0000 Subject: [PATCH 37/61] Drop filterwarnings "unclosed file" (#9498) --- dojo/settings/settings.dist.py | 1 - 1 file changed, 1 deletion(-) diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index 5c86f79ddfd..c07b48e09f0 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -1690,4 +1690,3 @@ def saml2_attrib_map_format(dict): warnings.filterwarnings("ignore", category=RemovedInDjango50Warning) warnings.filterwarnings("ignore", message="invalid escape sequence.*") warnings.filterwarnings("ignore", message="DateTimeField .+ received a naive datetime .+ while time zone support is active\\.") - warnings.filterwarnings("ignore", message="unclosed file .+") From ce9fbb35efcf8dcb3e10b6320c86571cdde80b19 Mon Sep 17 00:00:00 2001 From: manuelsommer <47991713+manuel-sommer@users.noreply.github.com> Date: Fri, 16 Feb 2024 00:51:15 +0100 Subject: [PATCH 38/61] :bug: WFuzz: Generalize severity mapping (#9505) * :bug: fix wfuzz 301, issue 6182 * make severity mapper more robust * unittest for missing response code * update docs --- .../en/integrations/parsers/file/wfuzz.md | 12 +++---- dojo/tools/wfuzz/parser.py | 33 ++++++++++--------- .../one_finding_responsecode_missing.json | 13 ++++++++ unittests/tools/test_wfuzz_parser.py | 9 +++++ 4 files changed, 44 insertions(+), 23 deletions(-) create mode 100644 unittests/scans/wfuzz/one_finding_responsecode_missing.json diff --git a/docs/content/en/integrations/parsers/file/wfuzz.md b/docs/content/en/integrations/parsers/file/wfuzz.md index 1893c359bd2..b76c7b186eb 100644 --- a/docs/content/en/integrations/parsers/file/wfuzz.md +++ b/docs/content/en/integrations/parsers/file/wfuzz.md @@ -8,13 +8,11 @@ The return code matching are directly put in Severity as follow(this is hardcode HTTP Return Code | Severity -----------------|--------- -200 | High -302 | Low -401 | Medium -403 | Medium -404 | Medium -407 | Medium -500 | Low +missing | Low +200 - 299 | High +300 - 399 | Low +400 - 499 | Medium +>= 500 | Low ### Sample Scan Data Sample Wfuzz JSON importer scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/wfuzz). \ No newline at end of file diff --git a/dojo/tools/wfuzz/parser.py b/dojo/tools/wfuzz/parser.py index a19cd869bd8..eb6b3186694 100644 --- a/dojo/tools/wfuzz/parser.py +++ b/dojo/tools/wfuzz/parser.py @@ -10,16 +10,16 @@ class WFuzzParser(object): A class that can be used to parse the WFuzz JSON report files """ - # table to match HTTP error code and severity - SEVERITY = { - "200": "High", - "302": "Low", - "401": "Medium", - "403": "Medium", - "404": "Medium", - "407": "Medium", - "500": "Low" - } + # match HTTP error code and severity + def severity_mapper(self, input): + if 200 <= int(input) <= 299: + return "High" + elif 300 <= int(input) <= 399: + return "Low" + elif 400 <= int(input) <= 499: + return "Medium" + elif 500 <= int(input): + return "Low" def get_scan_types(self): return ["WFuzz JSON report"] @@ -32,16 +32,17 @@ def get_description_for_scan_types(self, scan_type): def get_findings(self, filename, test): data = json.load(filename) - dupes = {} for item in data: url = hyperlink.parse(item["url"]) - return_code = str(item["code"]) - severity = self.SEVERITY[return_code] + return_code = item.get("code", None) + if return_code is None: + severity = "Low" + else: + severity = self.severity_mapper(input=return_code) description = f"The URL {url.to_text()} must not be exposed\n Please review your configuration\n" - dupe_key = hashlib.sha256( - (url.to_text() + return_code).encode("utf-8") + (url.to_text() + str(return_code)).encode("utf-8") ).hexdigest() if dupe_key in dupes: @@ -68,7 +69,7 @@ def get_findings(self, filename, test): ) ] finding.unsaved_req_resp = [ - {"req": item["payload"], "resp": str(item["code"])} + {"req": item["payload"], "resp": str(return_code)} ] dupes[dupe_key] = finding return list(dupes.values()) diff --git a/unittests/scans/wfuzz/one_finding_responsecode_missing.json b/unittests/scans/wfuzz/one_finding_responsecode_missing.json new file mode 100644 index 00000000000..ca120d9d17b --- /dev/null +++ b/unittests/scans/wfuzz/one_finding_responsecode_missing.json @@ -0,0 +1,13 @@ +[ + { + "chars": 2823, + "payload": "/server-status | GET /server-status HTTP/1.1\nContent-Type: application/x-www-form-urlencoded\nUser-Agent: Wfuzz/3.1.0\nHost: example.com\n\n", + "lines": 0, + "location": "", + "method": "GET", + "post_data": [], + "server": "", + "url": "https://example.com/server-status", + "words": 60 + } +] \ No newline at end of file diff --git a/unittests/tools/test_wfuzz_parser.py b/unittests/tools/test_wfuzz_parser.py index ef826921f9d..05eb69eebad 100644 --- a/unittests/tools/test_wfuzz_parser.py +++ b/unittests/tools/test_wfuzz_parser.py @@ -47,3 +47,12 @@ def test_issue_7863(self): endpoint.clean() self.assertEqual(1, len(findings)) self.assertEqual("Medium", findings[0].severity) + + def test_one_finding_responsecode_missing(self): + testfile = open("unittests/scans/wfuzz/one_finding_responsecode_missing.json") + parser = WFuzzParser() + findings = parser.get_findings(testfile, Test()) + for finding in findings: + for endpoint in finding.unsaved_endpoints: + endpoint.clean() + self.assertEqual(1, len(findings)) From abe7d066c5d6aad40810f4d9e438240223f077c2 Mon Sep 17 00:00:00 2001 From: kiblik Date: Thu, 15 Feb 2024 23:51:33 +0000 Subject: [PATCH 39/61] Remove useless noqa, be more specific for usefull noqa (#9510) --- dojo/__init__.py | 2 +- dojo/apps.py | 8 ++++---- tests/dedupe_test.py | 3 +-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/dojo/__init__.py b/dojo/__init__.py index f1c39c15ed1..d258073d6a8 100644 --- a/dojo/__init__.py +++ b/dojo/__init__.py @@ -2,7 +2,7 @@ # This will make sure the app is always imported when # Django starts so that shared_task will use this app. -from .celery import app as celery_app # noqa +from .celery import app as celery_app # noqa: F401 __version__ = '2.32.0-dev' __url__ = 'https://github.com/DefectDojo/django-DefectDojo' diff --git a/dojo/apps.py b/dojo/apps.py index 6c84a420de8..693d0328dea 100644 --- a/dojo/apps.py +++ b/dojo/apps.py @@ -71,10 +71,10 @@ def ready(self): # Load any signals here that will be ready for runtime # Importing the signals file is good enough if using the reciever decorator - import dojo.announcement.signals # noqa - import dojo.product.signals # noqa - import dojo.test.signals # noqa - import dojo.sla_config.helpers # noqa + import dojo.announcement.signals # noqa: F401 + import dojo.product.signals # noqa: F401 + import dojo.test.signals # noqa: F401 + import dojo.sla_config.helpers # noqa: F401 def get_model_fields_with_extra(model, extra_fields=()): diff --git a/tests/dedupe_test.py b/tests/dedupe_test.py index 1199159dba2..92f97f7891e 100644 --- a/tests/dedupe_test.py +++ b/tests/dedupe_test.py @@ -95,12 +95,11 @@ def test_delete_findings(self): # check that user was redirect back to url where it came from based on return_url self.assertTrue(driver.current_url.endswith('page=1')) - # -------------------------------------------------------------------------------------------------------- # Same scanner deduplication - Deduplication on engagement # Test deduplication for Bandit SAST scanner # -------------------------------------------------------------------------------------------------------- - @on_exception_html_source_logger # noqa: E301 + @on_exception_html_source_logger def test_add_path_test_suite(self): logger.debug("Same scanner deduplication - Deduplication on engagement - static. Creating tests...") # Create engagement From 9ef3fff7bf7be64fba6043daa5f5e89d9d8a89de Mon Sep 17 00:00:00 2001 From: manuelsommer <47991713+manuel-sommer@users.noreply.github.com> Date: Fri, 16 Feb 2024 00:54:17 +0100 Subject: [PATCH 40/61] :sparkles: add burp dastardly (#9514) * :sparkles: add burp dastardly * fix author names * fix unittest * add docs --- .../parsers/file/burp_dastardly.md | 11 + dojo/tools/burp_dastardly/__init__.py | 1 + dojo/tools/burp_dastardly/parser.py | 49 ++ dojo/tools/chefinspect/__init__.py | 2 +- dojo/tools/gcloud_artifact_scan/__init__.py | 2 +- dojo/tools/hcl_appscan/__init__.py | 2 +- dojo/tools/humble/__init__.py | 2 +- dojo/tools/kubeaudit/__init__.py | 2 +- dojo/tools/ms_defender/__init__.py | 2 +- dojo/tools/openvas/__init__.py | 2 +- dojo/tools/redhatsatellite/__init__.py | 2 +- dojo/tools/ssh_audit/__init__.py | 2 +- .../scans/burp_dastardly/many_findings.xml | 686 ++++++++++++++++++ unittests/tools/test_burp_dastardly_parser.py | 17 + 14 files changed, 773 insertions(+), 9 deletions(-) create mode 100644 docs/content/en/integrations/parsers/file/burp_dastardly.md create mode 100644 dojo/tools/burp_dastardly/__init__.py create mode 100755 dojo/tools/burp_dastardly/parser.py create mode 100644 unittests/scans/burp_dastardly/many_findings.xml create mode 100644 unittests/tools/test_burp_dastardly_parser.py diff --git a/docs/content/en/integrations/parsers/file/burp_dastardly.md b/docs/content/en/integrations/parsers/file/burp_dastardly.md new file mode 100644 index 00000000000..418ad5f7861 --- /dev/null +++ b/docs/content/en/integrations/parsers/file/burp_dastardly.md @@ -0,0 +1,11 @@ +--- +title: "Burp Dastardly" +toc_hide: true +--- +### File Types +DefectDojo parser accepts Burp Dastardly Scans as an XML output. + +Dastardly is a free, lightweight web application security scanner for your CI/CD pipeline. It is designed specifically for web developers, and checks your application for seven security issues that are likely to interest you during software development. Dastardly is based on the same scanner as Burp Suite (Burp Scanner). + +### Sample Scan Data +Sample Burp Dastardly scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/burp_dastardly). \ No newline at end of file diff --git a/dojo/tools/burp_dastardly/__init__.py b/dojo/tools/burp_dastardly/__init__.py new file mode 100644 index 00000000000..3ad798a42b3 --- /dev/null +++ b/dojo/tools/burp_dastardly/__init__.py @@ -0,0 +1 @@ +__author__ = "manuel-sommer" diff --git a/dojo/tools/burp_dastardly/parser.py b/dojo/tools/burp_dastardly/parser.py new file mode 100755 index 00000000000..e546c83978c --- /dev/null +++ b/dojo/tools/burp_dastardly/parser.py @@ -0,0 +1,49 @@ +import logging +from defusedxml import ElementTree as etree +from dojo.models import Finding + +logger = logging.getLogger(__name__) + + +class BurpDastardlyParser(object): + + def get_scan_types(self): + return ["Burp Dastardly Scan"] + + def get_label_for_scan_types(self, scan_type): + return "Burp Dastardly Scan" + + def get_description_for_scan_types(self, scan_type): + return ( + "Import Burp Dastardly XML files." + ) + + def get_findings(self, xml_output, test): + tree = etree.parse(xml_output, etree.XMLParser()) + return self.get_items(tree, test) + + def get_items(self, tree, test): + items = list() + for node in tree.findall("testsuite"): + if int(node.attrib["failures"]) != 0: + name = node.attrib["name"] + testcase = node.findall("testcase") + for case in testcase: + for fail in case.findall("failure"): + title = fail.attrib["message"] + severity = fail.attrib["type"] + description = fail.text + finding = Finding( + title=title, + url=name, + test=test, + severity=severity, + description=description, + false_p=False, + duplicate=False, + out_of_scope=False, + mitigated=None, + dynamic_finding=True, + ) + items.append(finding) + return items diff --git a/dojo/tools/chefinspect/__init__.py b/dojo/tools/chefinspect/__init__.py index 99e8e118c6a..3ad798a42b3 100644 --- a/dojo/tools/chefinspect/__init__.py +++ b/dojo/tools/chefinspect/__init__.py @@ -1 +1 @@ -__author__ = "manuel_sommer" +__author__ = "manuel-sommer" diff --git a/dojo/tools/gcloud_artifact_scan/__init__.py b/dojo/tools/gcloud_artifact_scan/__init__.py index 99e8e118c6a..3ad798a42b3 100644 --- a/dojo/tools/gcloud_artifact_scan/__init__.py +++ b/dojo/tools/gcloud_artifact_scan/__init__.py @@ -1 +1 @@ -__author__ = "manuel_sommer" +__author__ = "manuel-sommer" diff --git a/dojo/tools/hcl_appscan/__init__.py b/dojo/tools/hcl_appscan/__init__.py index 99e8e118c6a..3ad798a42b3 100644 --- a/dojo/tools/hcl_appscan/__init__.py +++ b/dojo/tools/hcl_appscan/__init__.py @@ -1 +1 @@ -__author__ = "manuel_sommer" +__author__ = "manuel-sommer" diff --git a/dojo/tools/humble/__init__.py b/dojo/tools/humble/__init__.py index 99e8e118c6a..3ad798a42b3 100644 --- a/dojo/tools/humble/__init__.py +++ b/dojo/tools/humble/__init__.py @@ -1 +1 @@ -__author__ = "manuel_sommer" +__author__ = "manuel-sommer" diff --git a/dojo/tools/kubeaudit/__init__.py b/dojo/tools/kubeaudit/__init__.py index 99e8e118c6a..3ad798a42b3 100644 --- a/dojo/tools/kubeaudit/__init__.py +++ b/dojo/tools/kubeaudit/__init__.py @@ -1 +1 @@ -__author__ = "manuel_sommer" +__author__ = "manuel-sommer" diff --git a/dojo/tools/ms_defender/__init__.py b/dojo/tools/ms_defender/__init__.py index 99e8e118c6a..3ad798a42b3 100644 --- a/dojo/tools/ms_defender/__init__.py +++ b/dojo/tools/ms_defender/__init__.py @@ -1 +1 @@ -__author__ = "manuel_sommer" +__author__ = "manuel-sommer" diff --git a/dojo/tools/openvas/__init__.py b/dojo/tools/openvas/__init__.py index 99e8e118c6a..3ad798a42b3 100644 --- a/dojo/tools/openvas/__init__.py +++ b/dojo/tools/openvas/__init__.py @@ -1 +1 @@ -__author__ = "manuel_sommer" +__author__ = "manuel-sommer" diff --git a/dojo/tools/redhatsatellite/__init__.py b/dojo/tools/redhatsatellite/__init__.py index 99e8e118c6a..3ad798a42b3 100644 --- a/dojo/tools/redhatsatellite/__init__.py +++ b/dojo/tools/redhatsatellite/__init__.py @@ -1 +1 @@ -__author__ = "manuel_sommer" +__author__ = "manuel-sommer" diff --git a/dojo/tools/ssh_audit/__init__.py b/dojo/tools/ssh_audit/__init__.py index 99e8e118c6a..3ad798a42b3 100644 --- a/dojo/tools/ssh_audit/__init__.py +++ b/dojo/tools/ssh_audit/__init__.py @@ -1 +1 @@ -__author__ = "manuel_sommer" +__author__ = "manuel-sommer" diff --git a/unittests/scans/burp_dastardly/many_findings.xml b/unittests/scans/burp_dastardly/many_findings.xml new file mode 100644 index 00000000000..f523de2166d --- /dev/null +++ b/unittests/scans/burp_dastardly/many_findings.xml @@ -0,0 +1,686 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " ' and =, should be +replaced with the corresponding HTML entities (< > etc). + +In cases where the application's functionality allows users to author content using +a restricted subset of HTML tags and attributes (for example, blog comments which +allow limited formatting and linking), it is necessary to parse the supplied HTML to +validate that it does not use any dangerous syntax; this is a non-trivial task. + + +Evidence +Request: +GET /catalog?searchTerm=QvfSPO99978%5c'%3balert(1)%2f%2f115 HTTP/2 +Host: ginandjuice.shop +Accept-Encoding: gzip, deflate, br +Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 +Accept-Language: en-US;q=0.9,en;q=0.8 +User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.199 Safari/537.36 +Connection: close +Cache-Control: max-age=0 +Cookie: session=m01R2FJYZ5xZhsAgCecobW9jKERpfDf5; AWSALB=I7YjoOSZmfadwp1KVWEh0t3OUUDp2fBN05Hv2b3PXPKyFnk1cTrwlKCLLuHwQfLiZfa02utPSwdLEmGVPeNV8ZBG+8XvlhHWlYef+ELVQB9nl1esg+wKts2aA6/G; AWSALBCORS=I7YjoOSZmfadwp1KVWEh0t3OUUDp2fBN05Hv2b3PXPKyFnk1cTrwlKCLLuHwQfLiZfa02utPSwdLEmGVPeNV8ZBG+8XvlhHWlYef+ELVQB9nl1esg+wKts2aA6/G; TrackingId=eyJ0eXBlIjoiY2xhc3MiLCJ2YWx1ZSI6InlWMXRmeXBUVnJkeWZEWDMifQ== +Upgrade-Insecure-Requests: 1 +Referer: https://ginandjuice.shop/catalog +Sec-CH-UA: ".Not/A)Brand";v="99", "Google Chrome";v="120", "Chromium";v="120" +Sec-CH-UA-Platform: Windows +Sec-CH-UA-Mobile: ?0 +Content-Length: 0 + + + +Response: +HTTP/2 200 OK +Date: Tue, 30 Jan 2024 09:17:14 GMT +Content-Type: text/html; charset=utf-8 +Content-Length: 9540 +Set-Cookie: AWSALB=ooUPTWmLTojp4gTNDd9biV2wheWfG9Ck5efAhh7jiVuPvGBZSYZnZdSFHG62EQGZY1d+VbYFQ0ml6QPXmD+rIhMALz2JcHLV+0VQ9U50pcQaucynSxHL5phl214T; Expires=Tue, 06 Feb 2024 09:17:14 GMT; Path=/ +Set-Cookie: AWSALBCORS=ooUPTWmLTojp4gTNDd9biV2wheWfG9Ck5efAhh7jiVuPvGBZSYZnZdSFHG62EQGZY1d+VbYFQ0ml6QPXmD+rIhMALz2JcHLV+0VQ9U50pcQaucynSxHL5phl214T; Expires=Tue, 06 Feb 2024 09:17:14 GMT; Path=/; SameSite=None; Secure +X-Backend: b3ea6540-e744-41e1-b964-c58601fd48a2 +X-Frame-Options: SAMEORIGIN + + + + + + + +var searchText = 'QvfSPO99978\\';alert(1)//115'; +document.getElementById('searchBar').value = searchText; +Snip + + + +References + +- Web Security Academy: Cross-site scripting (https://portswigger.net/web-security/cross-site-scripting) + +- Web Security Academy: Reflected cross-site scripting (https://portswigger.net/web-security/cross-site-scripting/reflected) + +- Using Burp to Find XSS issues (https://support.portswigger.net/customer/portal/articles/1965737-Methodology_XSS.html) + + + +Vulnerability Classifications + +- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') (https://cwe.mitre.org/data/definitions/79.html) + +- CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS) (https://cwe.mitre.org/data/definitions/80.html) + +- CWE-116: Improper Encoding or Escaping of Output (https://cwe.mitre.org/data/definitions/116.html) + +- CWE-159: Failure to Sanitize Special Element (https://cwe.mitre.org/data/definitions/159.html) + +- CAPEC-591: Reflected XSS (https://capec.mitre.org/data/definitions/591.html) + + + +Reported by Dastardly: https://portswigger.net/burp/dastardly/scan-checks +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alert(1)l00ng was submitted in the email JSON parameter. This input was echoed unmodified in the application's response. + +This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response. + +The request uses a Content-type header which it is not possible to generate using a standard HTML form. Burp attempted to replace this header with a standard value, to facilitate cross-domain delivery of an exploit, but this does not appear to be possible. + +The response does not state that the content type is HTML. The issue is only directly exploitable if a browser can be made to interpret the response as HTML. No modern browser will interpret the response as HTML. However, the issue might be indirectly exploitable if a client-side script processes the response and embeds it into an HTML context. + +Issue Background +Reflected cross-site scripting vulnerabilities arise when data is copied from a request and echoed into the application's immediate response in an unsafe way. An attacker can use the vulnerability to construct a request that, if issued by another application user, will cause JavaScript code supplied by the attacker to execute within the user's browser in the context of that user's session with the application. + +The attacker-supplied code can perform a wide variety of actions, such as stealing the victim's session token or login credentials, performing arbitrary actions on the victim's behalf, and logging their keystrokes. + +Users can be induced to issue the attacker's crafted request in various ways. For example, the attacker can send a victim a link containing a malicious URL in an email or instant message. They can submit the link to popular web sites that allow content authoring, for example in blog comments. And they can create an innocuous looking web site that causes anyone viewing it to make arbitrary cross-domain requests to the vulnerable application (using either the GET or the POST method). + +The security impact of cross-site scripting vulnerabilities is dependent upon the nature of the vulnerable application, the kinds of data and functionality that it contains, and the other applications that belong to the same domain and organization. If the application is used only to display non-sensitive public content, with no authentication or access control functionality, then a cross-site scripting flaw may be considered low risk. However, if the same application resides on a domain that can access cookies for other more security-critical applications, then the vulnerability could be used to attack those other applications, and so may be considered high risk. Similarly, if the organization that owns the application is a likely target for phishing attacks, then the vulnerability could be leveraged to lend credibility to such attacks, by injecting Trojan functionality into the vulnerable application and exploiting users' trust in the organization in order to capture credentials for other applications that it owns. In many kinds of application, such as those providing online banking functionality, cross-site scripting should always be considered high risk. + + +Issue Remediation +In most situations where user-controllable data is copied into application responses, cross-site scripting +attacks can be prevented using two layers of defenses: + + + +- Input should be validated as strictly as possible on arrival, given the kind of content that +it is expected to contain. For example, personal names should consist of alphabetical +and a small range of typographical characters, and be relatively short; a year of birth +should consist of exactly four numerals; email addresses should match a well-defined +regular expression. Input which fails the validation should be rejected, not sanitized. + +- User input should be HTML-encoded at any point where it is copied into +application responses. All HTML metacharacters, including < > " ' and =, should be +replaced with the corresponding HTML entities (< > etc). + +In cases where the application's functionality allows users to author content using +a restricted subset of HTML tags and attributes (for example, blog comments which +allow limited formatting and linking), it is necessary to parse the supplied HTML to +validate that it does not use any dangerous syntax; this is a non-trivial task. + + +Evidence +Request: +POST /catalog/subscribe HTTP/2 +Host: ginandjuice.shop +Accept-Encoding: gzip, deflate, br +Accept: */* +Accept-Language: en-US;q=0.9,en;q=0.8 +User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.199 Safari/537.36 +Connection: close +Cache-Control: max-age=0 +Cookie: AWSALB=orFJl2p99LdDAEMu9mJ41yWmkCMoidYbH60mr/z+RgCGkNaDP+KcXABho4VRQDvhnqfKOCKFrgsiL6HsuqKsh6ZhX+d89EaADJ8cQbOqOyYS3VFn+RdHvKu6173H; AWSALBCORS=orFJl2p99LdDAEMu9mJ41yWmkCMoidYbH60mr/z+RgCGkNaDP+KcXABho4VRQDvhnqfKOCKFrgsiL6HsuqKsh6ZhX+d89EaADJ8cQbOqOyYS3VFn+RdHvKu6173H; session=Ht6HJxIWa8ufROU7GCp9WlqlAOqA0wHr +Origin: https://ginandjuice.shop +Referer: https://ginandjuice.shop/ +Content-Type: application/json;charset=UTF-8 +Sec-CH-UA: ".Not/A)Brand";v="99", "Google Chrome";v="120", "Chromium";v="120" +Sec-CH-UA-Platform: Windows +Sec-CH-UA-Mobile: ?0 +Content-Length: 83 + +{"email":"wPtamgNW@burpcollaborator.netl8diil00ng"} + + + +References + +- Web Security Academy: Cross-site scripting (https://portswigger.net/web-security/cross-site-scripting) + +- Web Security Academy: Reflected cross-site scripting (https://portswigger.net/web-security/cross-site-scripting/reflected) + +- Using Burp to Find XSS issues (https://support.portswigger.net/customer/portal/articles/1965737-Methodology_XSS.html) + + + +Vulnerability Classifications + +- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') (https://cwe.mitre.org/data/definitions/79.html) + +- CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS) (https://cwe.mitre.org/data/definitions/80.html) + +- CWE-116: Improper Encoding or Escaping of Output (https://cwe.mitre.org/data/definitions/116.html) + +- CWE-159: Failure to Sanitize Special Element (https://cwe.mitre.org/data/definitions/159.html) + +- CAPEC-591: Reflected XSS (https://capec.mitre.org/data/definitions/591.html) + + + +Reported by Dastardly: https://portswigger.net/burp/dastardly/scan-checks +]]> + + + + + + + + + + + + + + + + + " ' and =, should be +replaced with the corresponding HTML entities (< > etc). + +In cases where the application's functionality allows users to author content using +a restricted subset of HTML tags and attributes (for example, blog comments which +allow limited formatting and linking), it is necessary to parse the supplied HTML to +validate that it does not use any dangerous syntax; this is a non-trivial task. + + +Evidence +Request: +POST /login HTTP/2 +Host: ginandjuice.shop +Accept-Encoding: gzip, deflate, br +Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 +Accept-Language: en-US;q=0.9,en;q=0.8 +User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.199 Safari/537.36 +Connection: close +Cache-Control: max-age=0 +Cookie: session=YD2NwguI62ebistVMrg3J2Y75NVvJxqo; AWSALB=WiZA+unpp+ZxZrfwCYm939q4xCPjDiZP7hF3CmI0esHdQvNJ/qOqSxyqgZ/LyeN3Zx0WwL1t6r+h9XAS9TBv3vq8w0kBTzSs8OhGM6f6s/J5NPk961Ttp5HtxEJM; AWSALBCORS=WiZA+unpp+ZxZrfwCYm939q4xCPjDiZP7hF3CmI0esHdQvNJ/qOqSxyqgZ/LyeN3Zx0WwL1t6r+h9XAS9TBv3vq8w0kBTzSs8OhGM6f6s/J5NPk961Ttp5HtxEJM +Origin: https://ginandjuice.shop +Upgrade-Insecure-Requests: 1 +Referer: https://ginandjuice.shop/login +Content-Type: application/x-www-form-urlencoded +Sec-CH-UA: ".Not/A)Brand";v="99", "Google Chrome";v="120", "Chromium";v="120" +Sec-CH-UA-Platform: Windows +Sec-CH-UA-Mobile: ?0 +Content-Length: 55 + +csrf=VkUYAv7TZRlP5KkB3rcuQ0x7ygE7Ugrh&username=DjVERldN92891'%3balert(1)%2f%2f714 + +Response: +HTTP/2 200 OK +Date: Tue, 30 Jan 2024 09:18:28 GMT +Content-Type: text/html; charset=utf-8 +Content-Length: 7823 +Set-Cookie: AWSALB=7PrleWn5wj+EGyD19r/OEMjCN1yE9Kw2OXDKkhKu3Xyiq1p9uBAV3pn7Cj63dphv0w6NGXFCYqSVusc092BsVLsklHSb1+m12Tmro7qaded5bDQ8Kdhj2Lgijr10; Expires=Tue, 06 Feb 2024 09:18:28 GMT; Path=/ +Set-Cookie: AWSALBCORS=7PrleWn5wj+EGyD19r/OEMjCN1yE9Kw2OXDKkhKu3Xyiq1p9uBAV3pn7Cj63dphv0w6NGXFCYqSVusc092BsVLsklHSb1+m12Tmro7qaded5bDQ8Kdhj2Lgijr10; Expires=Tue, 06 Feb 2024 09:18:28 GMT; Path=/; SameSite=None; Secure +X-Backend: 05285ce1-97cd-4b05-9fc6-cf93f1cac3f4 +X-Frame-Options: SAMEORIGIN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + element + + + +- +End-of-Life: Long term support for AngularJS has been discontinued + +https://blog.angular.io/discontinued-long-term-support-for-angularjs-cc066b82e65a?gi=9d3103b5445c (https://blog.angular.io/discontinued-long-term-support-for-angularjs-cc066b82e65a?gi=9d3103b5445c) + + + +- +CVE-2022-25869 (https://nvd.nist.gov/vuln/detail/CVE-2022-25869): Angular (deprecated package) Cross-site Scripting + + + +- +CVE-2022-25844 (https://nvd.nist.gov/vuln/detail/CVE-2022-25844): angular vulnerable to regular expression denial of service (ReDoS) + + + +- +CVE-2023-26116 (https://nvd.nist.gov/vuln/detail/CVE-2023-26116): angular vulnerable to regular expression denial of service via the angular.copy() utility + + + +- +CVE-2023-26117 (https://nvd.nist.gov/vuln/detail/CVE-2023-26117): angular vulnerable to regular expression denial of service via the $resource service + + + + + + + +Issue Background + +The use of third-party JavaScript libraries can introduce a range of DOM-based vulnerabilities, including some that can be used to hijack user accounts like DOM-XSS. + + + + +Common JavaScript libraries typically enjoy the benefit of being heavily audited. This may mean that bugs are quickly identified and patched upstream, resulting in a steady stream of security updates that need to be applied. Although it may be tempting to ignore updates, using a library with missing security patches can make your website exceptionally easy to exploit. Therefore, it's important to ensure that any available security updates are applied promptly. + + + +Some library vulnerabilities expose every application that imports the library, but others only affect applications that use certain library features. Accurately identifying which library vulnerabilities apply to your website can be difficult, so we recommend applying all available security updates regardless. + + + +Issue Remediation +Develop a patch-management strategy to ensure that security updates are promptly applied to all third-party libraries in your application. Also, consider reducing your attack surface by removing any libraries that are no longer in use. + + +Evidence +Request: +GET /resources/js/angular_1-7-7.js HTTP/2 +Host: ginandjuice.shop +Accept-Encoding: gzip, deflate, br +Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 +Accept-Language: en-US;q=0.9,en;q=0.8 +User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.199 Safari/537.36 +Connection: close +Cache-Control: max-age=0 +Upgrade-Insecure-Requests: 1 +Sec-CH-UA: ".Not/A)Brand";v="99", "Google Chrome";v="120", "Chromium";v="120" +Sec-CH-UA-Platform: Windows +Sec-CH-UA-Mobile: ?0 + + + +Response: +HTTP/2 200 OK +Date: Tue, 30 Jan 2024 09:13:15 GMT +Content-Type: application/javascript; charset=utf-8 +Content-Length: 195161 +Set-Cookie: AWSALB=5wcVdcDBKUZ9ywXfMQ4JayMr81/LcKlHFowhYUkNWdqd/PIqpp4w+A4liG65OtilJq2eYdZGiB+mj3FIgwDkq0reO94m/jveqdB7k6X1OPhzO3AunQhPmO2mp5fE; Expires=Tue, 06 Feb 2024 09:13:15 GMT; Path=/ +Set-Cookie: AWSALBCORS=5wcVdcDBKUZ9ywXfMQ4JayMr81/LcKlHFowhYUkNWdqd/PIqpp4w+A4liG65OtilJq2eYdZGiB+mj3FIgwDkq0reO94m/jveqdB7k6X1OPhzO3AunQhPmO2mp5fE; Expires=Tue, 06 Feb 2024 09:13:15 GMT; Path=/; SameSite=None; Secure +Cache-Control: public, max-age=3600 +X-Backend: 05285ce1-97cd-4b05-9fc6-cf93f1cac3f4 +X-Frame-Options: SAMEORIGIN + +/* +AngularJS v1.7.7 +(c) 2010-2018 Google, Inc. http://angularjs.org +License: MIT +*/ +(function(C){'use strict';function re(a){if(D(a))w(a.objectMaxDepth)&&(Wb.objectMaxDepth=Xb(a.objectMaxDepth)?a.objectMaxDepth:NaN),w(Snip + + + +Vulnerability Classifications + +- CWE-1104: Use of Unmaintained Third Party Components (https://cwe.mitre.org/data/definitions/1104.html) + +- A9: Using Components with Known Vulnerabilities (https://owasp.org/www-project-top-ten/2017/A9_2017-Using_Components_with_Known_Vulnerabilities) + + + +Reported by Dastardly: https://portswigger.net/burp/dastardly/scan-checks +]]> + + + + + + + + + + + + + + + + + + diff --git a/unittests/tools/test_burp_dastardly_parser.py b/unittests/tools/test_burp_dastardly_parser.py new file mode 100644 index 00000000000..9db996a5f2f --- /dev/null +++ b/unittests/tools/test_burp_dastardly_parser.py @@ -0,0 +1,17 @@ +from os import path + +from ..dojo_test_case import DojoTestCase +from dojo.models import Test +from dojo.tools.burp_dastardly.parser import BurpDastardlyParser + + +class TestBurpParser(DojoTestCase): + + def test_burp_dastardly_multiple_findings(self): + with open(path.join(path.dirname(__file__), "../scans/burp_dastardly/many_findings.xml")) as test_file: + parser = BurpDastardlyParser() + findings = parser.get_findings(test_file, Test()) + for finding in findings: + for endpoint in finding.unsaved_endpoints: + endpoint.clean() + self.assertEqual(4, len(findings)) From 8eff704da1ef91af052adc87c9e9162fd8bba861 Mon Sep 17 00:00:00 2001 From: kiblik Date: Fri, 16 Feb 2024 02:41:07 +0000 Subject: [PATCH 41/61] Remove filterwarnings for "invalid escape sequence" (#9496) * Drop filterwarnings "invalid escape sequence" * Fix SyntaxError for special_character_required * Update dojo/utils.py Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * Update settings.dist.py Fix merge conflict fix --------- Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> Co-authored-by: Matt Tesauro --- dojo/models.py | 2 +- dojo/settings/settings.dist.py | 2 +- dojo/utils.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dojo/models.py b/dojo/models.py index 59bf6babeb2..747f8b91fe5 100755 --- a/dojo/models.py +++ b/dojo/models.py @@ -548,7 +548,7 @@ class System_Settings(models.Model): default=True, blank=False, verbose_name=_("Password must contain one special character"), - help_text=_("Requires user passwords to contain at least one special character (()[]{}|\`~!@#$%^&*_-+=;:\'\",<>./?).")) # noqa W605 + help_text=_("Requires user passwords to contain at least one special character (()[]{}|\\`~!@#$%^&*_-+=;:\'\",<>./?).")) lowercase_character_required = models.BooleanField( default=True, blank=False, diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index c07b48e09f0..3ee4353d8ee 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -1688,5 +1688,5 @@ def saml2_attrib_map_format(dict): if DEBUG: from django.utils.deprecation import RemovedInDjango50Warning warnings.filterwarnings("ignore", category=RemovedInDjango50Warning) - warnings.filterwarnings("ignore", message="invalid escape sequence.*") + warnings.filterwarnings("ignore", message="'cgi' is deprecated and slated for removal in Python 3\\.13") warnings.filterwarnings("ignore", message="DateTimeField .+ received a naive datetime .+ while time zone support is active\\.") diff --git a/dojo/utils.py b/dojo/utils.py index 308c21a6a8e..e2383123527 100644 --- a/dojo/utils.py +++ b/dojo/utils.py @@ -2439,7 +2439,7 @@ def get_password_requirements_string(): if bool(get_system_setting('number_character_required')): s += ', one number (0-9)' if bool(get_system_setting('special_character_required')): - s += ', one special chacter (()[]{}|\`~!@#$%^&*_-+=;:\'\",<>./?)' # noqa W605 + s += ', one special character (()[]{}|\\`~!@#$%^&*_-+=;:\'\",<>./?)' if s.count(', ') == 1: password_requirements_string = s.rsplit(', ', 1)[0] + ' and ' + s.rsplit(', ', 1)[1] From fa8cc5004f4293a0cca0e5c23d3452a2260f2589 Mon Sep 17 00:00:00 2001 From: manuelsommer <47991713+manuel-sommer@users.noreply.github.com> Date: Fri, 16 Feb 2024 03:43:16 +0100 Subject: [PATCH 42/61] :bug: fix mobsf deduplication and severity mapping (#9471) * :bug: fix #7936, fix severity mapping * add warning * remove multiple warning replacings * remove replacing --- dojo/settings/settings.dist.py | 2 ++ dojo/tools/mobsf/parser.py | 25 +++++++++++++------------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index 3ee4353d8ee..c928cd7d172 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -1241,6 +1241,7 @@ def saml2_attrib_map_format(dict): 'Humble Json Importer': ['title'], 'MSDefender Parser': ['title', 'description'], 'HCLAppScan XML': ['title', 'description'], + 'MobSF Scan': ['title', 'description', 'severity'], } # Override the hardcoded settings here via the env var @@ -1449,6 +1450,7 @@ def saml2_attrib_map_format(dict): 'Wazuh Scan': DEDUPE_ALGO_UNIQUE_ID_FROM_TOOL, 'MSDefender Parser': DEDUPE_ALGO_HASH_CODE, 'HCLAppScan XML': DEDUPE_ALGO_HASH_CODE, + 'MobSF Scan': DEDUPE_ALGO_HASH_CODE, } # Override the hardcoded settings here via the env var diff --git a/dojo/tools/mobsf/parser.py b/dojo/tools/mobsf/parser.py index da355496fd5..4bad5590098 100644 --- a/dojo/tools/mobsf/parser.py +++ b/dojo/tools/mobsf/parser.py @@ -134,7 +134,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Certificate Analysis", "title": details[2], - "severity": details[0].replace("warning", "low").title(), + "severity": details[0].title(), "description": details[1] + "\n\n**Certificate Info:** " + certificate_info, "file_path": None } @@ -143,7 +143,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Certificate Analysis", "title": details[1], - "severity": details[0].replace("warning", "low").title(), + "severity": details[0].title(), "description": details[1] + "\n\n**Certificate Info:** " + certificate_info, "file_path": None } @@ -159,7 +159,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Manifest Analysis", "title": details["title"], - "severity": details["severity"].replace("warning", "low").title(), + "severity": details["severity"].title(), "description": details["description"] + "\n\n " + details["name"], "file_path": None } @@ -169,7 +169,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Manifest Analysis", "title": details["title"], - "severity": details["stat"].replace("warning", "low").title(), + "severity": details["stat"].title(), "description": details["desc"] + "\n\n " + details["name"], "file_path": None } @@ -184,7 +184,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Code Analysis", "title": details, - "severity": metadata["metadata"]["severity"].replace("warning", "low").title(), + "severity": metadata["metadata"]["severity"].title(), "description": metadata["metadata"]["description"], "file_path": None } @@ -196,7 +196,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Code Analysis", "title": details, - "severity": metadata["metadata"]["severity"].replace("warning", "low").title(), + "severity": metadata["metadata"]["severity"].title(), "description": metadata["metadata"]["description"], "file_path": None } @@ -211,7 +211,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Binary Analysis", "title": details[binary_analysis_type]["description"].split(".")[0], - "severity": details[binary_analysis_type]["severity"].replace("warning", "low").title(), + "severity": details[binary_analysis_type]["severity"].title(), "description": details[binary_analysis_type]["description"], "file_path": details["name"] } @@ -230,7 +230,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Binary Analysis", "title": details["detailed_desc"], - "severity": details["severity"].replace("good", "info").title(), + "severity": details["severity"].title(), "description": details["detailed_desc"], "file_path": None } @@ -248,7 +248,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Binary Analysis", "title": details["detailed_desc"], - "severity": details["severity"].replace("good", "info").title(), + "severity": details["severity"].title(), "description": details["detailed_desc"], "file_path": None } @@ -280,7 +280,7 @@ def get_findings(self, filename, test): mobsf_item = { "category": "Android API", "title": details["metadata"]["description"], - "severity": details["metadata"]["severity"].replace("warning", "low").title(), + "severity": details["metadata"]["severity"].title(), "description": "**API:** " + api + "\n\n**Description:** " + details["metadata"]["description"], "file_path": None } @@ -372,11 +372,12 @@ def getSeverityForPermission(self, status): # Criticality rating def getCriticalityRating(self, rating): criticality = "Info" - if rating == "warning": + if rating == "Good": criticality = "Info" + if rating == "Warning": + criticality = "Low" else: criticality = rating.capitalize() - return criticality def suite_data(self, suites): From 73565d7230d88e32727b724ba8b2ae9db852d0f9 Mon Sep 17 00:00:00 2001 From: kiblik Date: Fri, 16 Feb 2024 04:39:53 +0000 Subject: [PATCH 43/61] Remove filterwarnings for "DateTimeField - timezone" (#9497) * Drop filterwarnings "DateTimeField - timezone" * Fix some * Fix of RA test + importers * Fix RA * Fix importers * Fix Flake8 --------- Co-authored-by: Matt Tesauro --- dojo/importers/importer/importer.py | 5 +++++ dojo/importers/reimporter/reimporter.py | 5 +++++ dojo/settings/settings.dist.py | 2 +- unittests/test_bulk_risk_acceptance_api.py | 22 ++++++++++---------- unittests/test_finding_helper.py | 6 +++--- unittests/test_flush_auditlog.py | 8 +++---- unittests/test_import_reimport.py | 4 ++-- unittests/test_risk_acceptance.py | 7 ++++--- unittests/test_utils_deduplication_reopen.py | 2 +- 9 files changed, 36 insertions(+), 25 deletions(-) diff --git a/dojo/importers/importer/importer.py b/dojo/importers/importer/importer.py index 4b3b1d43c6c..7552f9184ef 100644 --- a/dojo/importers/importer/importer.py +++ b/dojo/importers/importer/importer.py @@ -103,6 +103,11 @@ def process_parsed_findings(self, test, parsed_findings, scan_type, user, active # finding's severity is below the configured threshold : ignoring the finding continue + # Some parsers provide "mitigated" field but do not set timezone (because they are probably not available in the report) + # Finding.mitigated is DateTimeField and it requires timezone + if item.mitigated and not item.mitigated.tzinfo: + item.mitigated = item.mitigated.replace(tzinfo=now.tzinfo) + item.test = test item.reporter = user if user else get_current_user item.last_reviewed = now diff --git a/dojo/importers/reimporter/reimporter.py b/dojo/importers/reimporter/reimporter.py index 107068d11fa..d02d1dc1b17 100644 --- a/dojo/importers/reimporter/reimporter.py +++ b/dojo/importers/reimporter/reimporter.py @@ -89,6 +89,11 @@ def process_parsed_findings( item.component_version if hasattr(item, "component_version") else None ) + # Some parsers provide "mitigated" field but do not set timezone (because it is probably not available in the report) + # Finding.mitigated is DateTimeField and it requires timezone + if item.mitigated and not item.mitigated.tzinfo: + item.mitigated = item.mitigated.replace(tzinfo=now.tzinfo) + if not hasattr(item, "test"): item.test = test diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index c928cd7d172..52972291844 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -1691,4 +1691,4 @@ def saml2_attrib_map_format(dict): from django.utils.deprecation import RemovedInDjango50Warning warnings.filterwarnings("ignore", category=RemovedInDjango50Warning) warnings.filterwarnings("ignore", message="'cgi' is deprecated and slated for removal in Python 3\\.13") - warnings.filterwarnings("ignore", message="DateTimeField .+ received a naive datetime .+ while time zone support is active\\.") + warnings.filterwarnings("ignore", message="unclosed file .+") diff --git a/unittests/test_bulk_risk_acceptance_api.py b/unittests/test_bulk_risk_acceptance_api.py index dafa7d321a2..f19ccb96022 100644 --- a/unittests/test_bulk_risk_acceptance_api.py +++ b/unittests/test_bulk_risk_acceptance_api.py @@ -18,25 +18,25 @@ def setUpTestData(cls): cls.product = Product.objects.create(prod_type=cls.product_type, name='Flopper', description='Test product') Product_Type_Member.objects.create(product_type=cls.product_type, user=cls.user, role=Role.objects.get(id=Roles.Owner)) cls.product_2 = Product.objects.create(prod_type=cls.product_type, name='Flopper2', description='Test product2') - cls.engagement = Engagement.objects.create(product=cls.product, target_start=datetime.date(2000, 1, 1), - target_end=datetime.date(2000, 2, 1)) - cls.engagement_2a = Engagement.objects.create(product=cls.product_2, target_start=datetime.date(2000, 1, 1), - target_end=datetime.date(2000, 2, 1)) - cls.engagement_2b = Engagement.objects.create(product=cls.product_2, target_start=datetime.date(2000, 1, 1), - target_end=datetime.date(2000, 2, 1)) + cls.engagement = Engagement.objects.create(product=cls.product, target_start=datetime.datetime(2000, 1, 1, tzinfo=datetime.timezone.utc), + target_end=datetime.datetime(2000, 2, 1, tzinfo=datetime.timezone.utc)) + cls.engagement_2a = Engagement.objects.create(product=cls.product_2, target_start=datetime.datetime(2000, 1, 1, tzinfo=datetime.timezone.utc), + target_end=datetime.datetime(2000, 2, 1, tzinfo=datetime.timezone.utc)) + cls.engagement_2b = Engagement.objects.create(product=cls.product_2, target_start=datetime.datetime(2000, 1, 1, tzinfo=datetime.timezone.utc), + target_end=datetime.datetime(2000, 2, 1, tzinfo=datetime.timezone.utc)) cls.test_type = Test_Type.objects.create(name='Risk Acceptance Mock Scan', static_tool=True) cls.test_a = Test.objects.create(engagement=cls.engagement, test_type=cls.test_type, - target_start=datetime.date(2000, 1, 1), target_end=datetime.date(2000, 2, 1)) + target_start=datetime.datetime(2000, 1, 1, tzinfo=datetime.timezone.utc), target_end=datetime.datetime(2000, 2, 1, tzinfo=datetime.timezone.utc)) cls.test_b = Test.objects.create(engagement=cls.engagement, test_type=cls.test_type, - target_start=datetime.date(2000, 1, 1), target_end=datetime.date(2000, 2, 1)) + target_start=datetime.datetime(2000, 1, 1, tzinfo=datetime.timezone.utc), target_end=datetime.datetime(2000, 2, 1, tzinfo=datetime.timezone.utc)) cls.test_c = Test.objects.create(engagement=cls.engagement, test_type=cls.test_type, - target_start=datetime.date(2000, 1, 1), target_end=datetime.date(2000, 2, 1)) + target_start=datetime.datetime(2000, 1, 1, tzinfo=datetime.timezone.utc), target_end=datetime.datetime(2000, 2, 1, tzinfo=datetime.timezone.utc)) cls.test_d = Test.objects.create(engagement=cls.engagement_2a, test_type=cls.test_type, - target_start=datetime.date(2000, 1, 1), target_end=datetime.date(2000, 2, 1)) + target_start=datetime.datetime(2000, 1, 1, tzinfo=datetime.timezone.utc), target_end=datetime.datetime(2000, 2, 1, tzinfo=datetime.timezone.utc)) cls.test_e = Test.objects.create(engagement=cls.engagement_2b, test_type=cls.test_type, - target_start=datetime.date(2000, 1, 1), target_end=datetime.date(2000, 2, 1)) + target_start=datetime.datetime(2000, 1, 1, tzinfo=datetime.timezone.utc), target_end=datetime.datetime(2000, 2, 1, tzinfo=datetime.timezone.utc)) def create_finding(test: Test, reporter: User, cve: str) -> Finding: return Finding(test=test, title='Finding {}'.format(cve), cve=cve, severity='High', verified=True, diff --git a/unittests/test_finding_helper.py b/unittests/test_finding_helper.py index 00f7198234b..d3e6bf71293 100644 --- a/unittests/test_finding_helper.py +++ b/unittests/test_finding_helper.py @@ -93,7 +93,7 @@ def test_mark_old_active_as_mitigated(self, mock_can_edit, mock_tz): def test_mark_old_active_as_mitigated_custom_edit(self, mock_can_edit, mock_tz): mock_tz.return_value = frozen_datetime - custom_mitigated = datetime.datetime.now() + custom_mitigated = datetime.datetime.now(datetime.timezone.utc) with impersonate(self.user_1): test = Test.objects.last() @@ -115,7 +115,7 @@ def test_mark_old_active_as_mitigated_custom_edit(self, mock_can_edit, mock_tz): def test_update_old_mitigated_with_custom_edit(self, mock_can_edit, mock_tz): mock_tz.return_value = frozen_datetime - custom_mitigated = datetime.datetime.now() + custom_mitigated = datetime.datetime.now(datetime.timezone.utc) with impersonate(self.user_1): test = Test.objects.last() @@ -137,7 +137,7 @@ def test_update_old_mitigated_with_custom_edit(self, mock_can_edit, mock_tz): def test_update_old_mitigated_with_missing_data(self, mock_can_edit, mock_tz): mock_tz.return_value = frozen_datetime - custom_mitigated = datetime.datetime.now() + custom_mitigated = datetime.datetime.now(datetime.timezone.utc) with impersonate(self.user_1): test = Test.objects.last() diff --git a/unittests/test_flush_auditlog.py b/unittests/test_flush_auditlog.py index ffaeb538baa..1cbdb4ff62d 100644 --- a/unittests/test_flush_auditlog.py +++ b/unittests/test_flush_auditlog.py @@ -2,7 +2,7 @@ from .dojo_test_case import DojoTestCase from django.test import override_settings from auditlog.models import LogEntry -from datetime import date, datetime +from datetime import date, datetime, timezone from dojo.models import Finding from dateutil.relativedelta import relativedelta import logging @@ -29,8 +29,8 @@ def test_delete_all_entries(self): @override_settings(AUDITLOG_FLUSH_RETENTION_PERIOD=1) def test_delete_entries_with_retention_period(self): - entries_before = LogEntry.objects.filter(timestamp__date__lt=date.today()).count() - two_weeks_ago = datetime.today() - relativedelta(weeks=2) + entries_before = LogEntry.objects.filter(timestamp__date__lt=datetime.now(timezone.utc)).count() + two_weeks_ago = datetime.now(timezone.utc) - relativedelta(weeks=2) log_entry = LogEntry.objects.log_create( instance=Finding.objects.all()[0], timestamp=two_weeks_ago, @@ -40,6 +40,6 @@ def test_delete_entries_with_retention_period(self): log_entry.timestamp = two_weeks_ago log_entry.save() flush_auditlog() - entries_after = LogEntry.objects.filter(timestamp__date__lt=date.today()).count() + entries_after = LogEntry.objects.filter(timestamp__date__lt=datetime.now(timezone.utc)).count() # we have three old log entries in our testdata and added a new one self.assertEqual(entries_before - 3 + 1, entries_after) diff --git a/unittests/test_import_reimport.py b/unittests/test_import_reimport.py index 92bcb0097d3..535bc488d19 100644 --- a/unittests/test_import_reimport.py +++ b/unittests/test_import_reimport.py @@ -1430,8 +1430,8 @@ def test_import_reimport_vulnerability_ids(self): engagement=test.engagement, test_type=test_type, scan_type=self.anchore_grype_scan_type, - target_start=datetime.datetime.now(), - target_end=datetime.datetime.now(), + target_start=datetime.datetime.now(datetime.timezone.utc), + target_end=datetime.datetime.now(datetime.timezone.utc), ) reimport_test.save() diff --git a/unittests/test_risk_acceptance.py b/unittests/test_risk_acceptance.py index e652fc132b7..e677ff4286a 100644 --- a/unittests/test_risk_acceptance.py +++ b/unittests/test_risk_acceptance.py @@ -12,6 +12,7 @@ # from unittest import skip import dojo.risk_acceptance.helper as ra_helper import logging +import datetime logger = logging.getLogger(__name__) @@ -264,9 +265,9 @@ def test_expiration_handler(self): # ra1: expire in 9 days -> warn:yes, expire:no # ra2: expire in 11 days -> warn:no, expire:no # ra3: expire 5 days ago -> warn:no, expire:yes (expiration not handled yet, so expire) - ra1.expiration_date = timezone.now().date() + relativedelta(days=heads_up_days - 1) - ra2.expiration_date = timezone.now().date() + relativedelta(days=heads_up_days + 1) - ra3.expiration_date = timezone.now().date() - relativedelta(days=5) + ra1.expiration_date = datetime.datetime.now(datetime.timezone.utc) + relativedelta(days=heads_up_days - 1) + ra2.expiration_date = datetime.datetime.now(datetime.timezone.utc) + relativedelta(days=heads_up_days + 1) + ra3.expiration_date = datetime.datetime.now(datetime.timezone.utc) - relativedelta(days=5) ra1.save() ra2.save() ra3.save() diff --git a/unittests/test_utils_deduplication_reopen.py b/unittests/test_utils_deduplication_reopen.py index 0d4e7c24d31..50ff0832e0a 100644 --- a/unittests/test_utils_deduplication_reopen.py +++ b/unittests/test_utils_deduplication_reopen.py @@ -14,7 +14,7 @@ def setUp(self): self.finding_a = Finding.objects.get(id=2) self.finding_a.pk = None self.finding_a.duplicate = False - self.finding_a.mitigated = datetime.date(1970, 1, 1) + self.finding_a.mitigated = datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc) self.finding_a.is_mitigated = True self.finding_a.false_p = True self.finding_a.active = False From c8023038154b67ca9554a219d24acb44d12eb3d4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 23:32:51 -0600 Subject: [PATCH 44/61] Update Helm release postgresql-ha from 9.4.11 to v13 (helm/defectdojo/Chart.yaml) (#9553) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- helm/defectdojo/Chart.lock | 6 +++--- helm/defectdojo/Chart.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/defectdojo/Chart.lock b/helm/defectdojo/Chart.lock index 784d84b4843..9f0d8587154 100644 --- a/helm/defectdojo/Chart.lock +++ b/helm/defectdojo/Chart.lock @@ -7,12 +7,12 @@ dependencies: version: 11.9.13 - name: postgresql-ha repository: https://charts.bitnami.com/bitnami - version: 9.4.11 + version: 13.2.4 - name: rabbitmq repository: https://charts.bitnami.com/bitnami version: 11.16.2 - name: redis repository: https://charts.bitnami.com/bitnami version: 16.13.2 -digest: sha256:50d07c49c1fb199a70fafd032712a1d5509a0352f090bfddd2e8a22b35be0961 -generated: "2024-02-15T20:24:24.560785941Z" +digest: sha256:e33a1f5fbe1601251363f38e2cc639074ef7b85c4d4e69d04967dfcdf5d1d70e +generated: "2024-02-16T04:41:43.560933367Z" diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 11a42fddade..24a31c84f70 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -18,7 +18,7 @@ dependencies: repository: "https://charts.bitnami.com/bitnami" condition: postgresql.enabled - name: postgresql-ha - version: ~9.4.0 + version: ~13.2.0 repository: "https://charts.bitnami.com/bitnami" alias: postgresqlha condition: postgresqlha.enabled From a87821885d54b6f7a73a71bbd6a96c10e48fe062 Mon Sep 17 00:00:00 2001 From: kiblik Date: Fri, 16 Feb 2024 15:54:54 +0000 Subject: [PATCH 45/61] Remove handling of broken unittests (#9504) --- docker/entrypoint-unit-tests-devDocker.sh | 6 +----- docker/entrypoint-unit-tests.sh | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/docker/entrypoint-unit-tests-devDocker.sh b/docker/entrypoint-unit-tests-devDocker.sh index 96f9906c177..7e7e176b322 100755 --- a/docker/entrypoint-unit-tests-devDocker.sh +++ b/docker/entrypoint-unit-tests-devDocker.sh @@ -51,13 +51,9 @@ EOF python3 manage.py spectacular > /dev/null } -echo "Swagger Schema Tests - Broken" -echo "------------------------------------------------------------" -python3 manage.py test unittests -v 3 --keepdb --no-input --tag broken && true - echo "Unit Tests" echo "------------------------------------------------------------" -python3 manage.py test unittests -v 3 --keepdb --no-input --exclude-tag broken +python3 manage.py test unittests -v 3 --keepdb --no-input # you can select a single file to "test" unit tests # python3 manage.py test unittests.tools.test_npm_audit_scan_parser.TestNpmAuditParser --keepdb -v 3 diff --git a/docker/entrypoint-unit-tests.sh b/docker/entrypoint-unit-tests.sh index 16a5e6c29b5..0993a0d7652 100755 --- a/docker/entrypoint-unit-tests.sh +++ b/docker/entrypoint-unit-tests.sh @@ -77,10 +77,6 @@ python3 manage.py migrate # --parallel fails on GitHub Actions #python3 manage.py test unittests -v 3 --no-input --parallel -echo "Swagger Schema Tests - Broken" -echo "------------------------------------------------------------" -python3 manage.py test unittests -v 3 --keepdb --no-input --tag broken && true - echo "Unit Tests" echo "------------------------------------------------------------" -python3 manage.py test unittests -v 3 --keepdb --no-input --exclude-tag broken +python3 manage.py test unittests -v 3 --keepdb --no-input From 5173a49b90ed11ff8aae40784376b0625de8f901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quirin=20Hardy=20Zie=C3=9Fler?= Date: Tue, 20 Feb 2024 19:03:59 +0100 Subject: [PATCH 46/61] :tada: introducing EPSS score (#9516) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * WIP * first draw * fix migrations * fix migrations * add epss to findings UI * added epss to finding list * Delete unittests/scans/wazuh/one_endpoint_finding.json * flake8 * add migration for ModelOptions * Add null values for epss + validators * updated findings detail page to display epss as percentage * removed wazuh file * update branch (#3) * Update versions in application files * Update jira-description.tpl (#9403) * Update and rename whitesource.md to mend.md (#9348) * Update and rename whitesource.md to mend.md * Update docs/content/en/integrations/parsers/file/mend.md Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> --------- Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * API: Remote v2 OpenAPI2 Docs from menu (#9469) * :bug: fix migration (#9467) * finding sla expiration date field (part one) (#9473) * addition of sla expiration date field on the finding model * add migration and fix indentation issue * fix mitigated finding remaining sla days calculation * fix sla violation filter to return only active, sla violating findings * migration system settings fix * fix mitigation date vs datetime discrepancy * fix breaking unit test * move product save check to signal * fix unit test failure * make signal operations async, fix sla config delete 500 error * add unit tests to test sla expiration date functionality * restarting without signals * add async updating flags, redo migration * move signal logic to overriden save * fix errors for non-existing objects at creation * clean up comments and a few logical expressions * fix flake8 error * addition of new unit tests * fix unit test error * add message to form fields when async updating flag is true * fix save location, reword form messages, reword redirect messages * remove commented lines from unit tests * add a bit more description to API validation errors * migration fix * migration performance improvements * fix datetime - str comparison issue * clean up for part one of sla expiration date field * fix flake8 * Update dojo/db_migrations/0200_finding_sla_expiration_date_product_async_updating_and_more.py Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * Update dojo/models.py Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> --------- Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * Update versions in application files * Update versions in application files * Update release-drafter/release-drafter action from v5.25.0 to v6 (.github/workflows/release-drafter.yml) (#9460) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bump pytz from 2023.4 to 2024.1 (#9465) Bumps [pytz](https://github.com/stub42/pytz) from 2023.4 to 2024.1. - [Release notes](https://github.com/stub42/pytz/releases) - [Commits](https://github.com/stub42/pytz/compare/release_2023.4...release_2024.1) --- updated-dependencies: - dependency-name: pytz dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump django-debug-toolbar from 4.2.0 to 4.3.0 (#9466) Bumps [django-debug-toolbar](https://github.com/jazzband/django-debug-toolbar) from 4.2.0 to 4.3.0. - [Release notes](https://github.com/jazzband/django-debug-toolbar/releases) - [Changelog](https://github.com/jazzband/django-debug-toolbar/blob/main/docs/changes.rst) - [Commits](https://github.com/jazzband/django-debug-toolbar/compare/4.2...4.3) --- updated-dependencies: - dependency-name: django-debug-toolbar dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump nginx from `d12e6f7` to `f2802c2` (#9477) Bumps nginx from `d12e6f7` to `f2802c2`. --- updated-dependencies: - dependency-name: nginx dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update dependency postcss from 8.4.33 to v8.4.34 (docs/package.json) (#9481) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update rabbitmq:3.12.12-alpine Docker digest from 3.12.12 to 3.12.12-alpine (docker-compose.yml) (#9458) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * :arrow_up: Bump boto3 from 1.34.32 to 1.34.35 (#9489) Bumps [boto3](https://github.com/boto/boto3) from 1.34.32 to 1.34.35. - [Release notes](https://github.com/boto/boto3/releases) - [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/boto/boto3/compare/1.34.32...1.34.35) --- updated-dependencies: - dependency-name: boto3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update dependency ruff from 0.1.15 to v0.2.1 (requirements-lint.txt) (#9459) * Update dependency ruff from 0.1.15 to v0.2.1 (requirements-lint.txt) * Fix ruff warning (#9461) * Update dependency ruff from 0.1.15 to v0.2.0 (requirements-lint.txt) * fix ruff warning --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: kiblik Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * :bug: fix defaulting severity, see last comments in #8778 (#9370) Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> * Add ruff for *tests (#9406) * Revert ":bug: fix dependencytrack deduplication (#9117)" (#9371) This reverts commit 0f55a7f2c2db4b39ab30b868b2090c45ed9038b4. Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> * dojo/importers/importer/importer.py - Change "None" string to "Info" from cvss module when a CVSS vector string should evaluate to "Info" (#9453) * dojo/importers/importer/importer.py - Change "None" string to "Info" from cvss module when a CVSS vector string evaluates to "Info" * dojo/importers/importer/importer.py - Change "None" string to "Info" from cvss module when a CVSS vector string evaluates to "Info" #flake8_fix * Trivy Operator VulnerabilityReport Parser tweaks (#9452) * API: Check missing endpoints (#7618) * Rename unittest * Define exceptions for now * Announcement was implemented * Fix unittests with assertRaises + replace assertTrue/False with better checks (#9435) * Fix unittests with assertRaises * Replace assertTrue/False with better checks * Fixes * Optimize list of Maintenance in relase notes (#9492) * fix typo in docs (#9487) * :bug: WFuzz: Add additional severity mappings (#9486) * :bug: fix wfuzz, issue #7863 * add 302 * update docs * Be strict about Warnings during testing (#9490) * Set PYTHONWARNINGS=error * Add basic filterwarnings * Mute some warnings * Mute one more warning * :bug: fix trufflehog3, issue #6999 (#9470) * :bug: fix yarn_audit, #6495 (#9478) * Bump vulners from 2.1.2 to 2.1.5 (#9391) Bumps [vulners]() from 2.1.2 to 2.1.5. --- updated-dependencies: - dependency-name: vulners dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add support for DD_APPEND_SLASH (#9385) * Override default Django APPEND_SLASH * Update dojo/settings/settings.dist.py * :tada: Improvements for wazuh importer (#9248) * improvement for wazuh importer * :wrench: change on dedupe for Wazuh * :wrench: change on dedupe for Wazuh * :memo: * :pencil2: * :memo: * :memo: * flake8 * :tada: recoded wazuh importer to support endpoints * :white_check_mark: adjusted unittests * :memo: * :pencil2: * :pencil2: --------- Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> * Update rabbitmq:3.12.12-alpine Docker digest from 3.12.12 to 3.12.12-alpine (docker-compose.yml) (#9501) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update dependency postcss from 8.4.34 to v8.4.35 (docs/package.json) (#9502) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Improve API endpoints for Risk Acceptances (#9415) * Modifying Bugcrowd API Parser to align to vendor documentation on wha… (#9517) * Modifying Bugcrowd API Parser to align to vendor documentation on what the not_applicable state means. It is now active == False and severity == 'Info'. [sc-4217] * fixing Flake8 errors * fixing Flake8 errors, part deux --------- Signed-off-by: dependabot[bot] Co-authored-by: DefectDojo release bot Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Co-authored-by: Paul Osinski <42211303+paulOsinski@users.noreply.github.com> Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> Co-authored-by: kiblik Co-authored-by: manuelsommer <47991713+manuel-sommer@users.noreply.github.com> Co-authored-by: Blake Owens <76979297+blakeaowens@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Robert Kiss Co-authored-by: ninp0 Co-authored-by: Raouf HADDADA <22875897+raouf-haddada@users.noreply.github.com> Co-authored-by: Felix Hernandez Co-authored-by: Jay Paz * updated migrations * added percentage to findings_list * :pencil2: tightening column title in findings detail page * flake8 * undo DT parser update * fix migrations * update migrations to changes in dev * merge dev into epss score * Update versions in application files * Update versions * Parse GitHub vulnerability version (#9462) * Fix SARIF parser with CodeQL rules (#9440) * fix for sarif parser with codeql rules * add check for extensions property * flake8 comparsion * finding sla expiration date field (part two) (#9494) * finding sla expiration date field (part two) * sla violation check updates * clean up of finding violates_sla property * flake8 fix * Update dojo/models.py Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * Update 0201_populate_finding_sla_expiration_date.py --------- Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * Jira Server/DataCenter: Update meta methods (#9512) * Jira Webhook: Catch comments from other issue updates (#9513) * Jira Webhook: Catch comments from other issue updates * Accommodate redirect responses * Update dojo/jira_link/views.py Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * Fix syntax --------- Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> * add metrics page: "Product Tag Count" (fixes #9151) (#9152) * add metrics page: "Product Tag Count" It is fully based on "Product Type Count" metrics page. * fixup! add metrics page: "Product Tag Count" * Fix Flake8 * Update views.py --------- Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> * Release Drafter: Try validating inputs * Disallow duplicate tool types (#9530) * Disallow duplicate tool types * Fix Flake8 * Only validate on new creations * Force new name on tool type unit test * Engagement Surveys: Add missing leading slash (#9531) URL redirects were behaving strangely without this leading slash. it seems it was missed when all the others were added * Update versions in application files * Update versions in application files * Dojo_Group: Support for "RemoteUser" in model (#9405) * Use correct name references * fix db_mig * Update and rename 0201_alter_dojo_group_social_provider.py to 0202_alter_dojo_group_social_provider.py --------- Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> * Update rabbitmq:3.12.12-alpine Docker digest from 3.12.12 to 3.12.12-alpine (docker-compose.yml) (#9535) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * remove flot-axis library (#9540) * use full url for helm-repos and alias in renovate.json (#9525) With this change, renovate will create PRs to update the helm-dependencies, just as with docker-compose. Note that only setting the repository to the full URL did not work, I also had to add the registryAlias. * Update Helm release redis from 16.12.3 to ~16.13.0 (helm/defectdojo/Chart.yaml) (#9550) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update rabbitmq:3.12.12-alpine Docker digest from 3.12.12 to 3.12.12-alpine (docker-compose.yml) (#9541) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update postgres Docker tag from 16.1 to v16.2 (docker-compose.yml) (#9536) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update Helm release mysql from 9.1.8 to ~9.19.0 (helm/defectdojo/Chart.yaml) (#9545) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --------- Co-authored-by: DefectDojo release bot Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Co-authored-by: Colm O hEigeartaigh Co-authored-by: Andrei Serebriakov Co-authored-by: Blake Owens <76979297+blakeaowens@users.noreply.github.com> Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> Co-authored-by: tomaszn Co-authored-by: kiblik Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Felix Hernandez Co-authored-by: Sebastian Gumprich * update epss-score (#5) solve conflicts --------- Signed-off-by: dependabot[bot] Co-authored-by: DefectDojo release bot Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Co-authored-by: Paul Osinski <42211303+paulOsinski@users.noreply.github.com> Co-authored-by: Charles Neill <1749665+cneill@users.noreply.github.com> Co-authored-by: kiblik Co-authored-by: manuelsommer <47991713+manuel-sommer@users.noreply.github.com> Co-authored-by: Blake Owens <76979297+blakeaowens@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Robert Kiss Co-authored-by: ninp0 Co-authored-by: Raouf HADDADA <22875897+raouf-haddada@users.noreply.github.com> Co-authored-by: Felix Hernandez Co-authored-by: Jay Paz Co-authored-by: Colm O hEigeartaigh Co-authored-by: Andrei Serebriakov Co-authored-by: tomaszn Co-authored-by: Sebastian Gumprich --- ...ptions_finding_epss_percentile_and_more.py | 36 +++++++++++++++++++ dojo/filters.py | 9 ++++- dojo/models.py | 14 ++++++-- .../templates/dojo/findings_list_snippet.html | 18 ++++++++++ dojo/templates/dojo/view_finding.html | 25 +++++++++++-- dojo/templatetags/multiply.py | 8 +++++ 6 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 dojo/db_migrations/0203_alter_finding_options_finding_epss_percentile_and_more.py create mode 100644 dojo/templatetags/multiply.py diff --git a/dojo/db_migrations/0203_alter_finding_options_finding_epss_percentile_and_more.py b/dojo/db_migrations/0203_alter_finding_options_finding_epss_percentile_and_more.py new file mode 100644 index 00000000000..00bf8b5e2ba --- /dev/null +++ b/dojo/db_migrations/0203_alter_finding_options_finding_epss_percentile_and_more.py @@ -0,0 +1,36 @@ +# Generated by Django 4.1.13 on 2024-02-11 15:32 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('dojo', '0202_alter_dojo_group_social_provider'), + ] + + operations = [ + migrations.AlterModelOptions( + name='finding', + options={'ordering': ('numerical_severity', '-date', 'title', 'epss_score', 'epss_percentile')}, + ), + migrations.AddField( + model_name='finding', + name='epss_percentile', + field=models.FloatField(blank=True, default=None, help_text='EPSS percentile for the CVE. Describes how many CVEs are scored at or below this one.', null=True, validators=[django.core.validators.MinValueValidator(0.0), django.core.validators.MaxValueValidator(1.0)], verbose_name='EPSS percentile'), + ), + migrations.AddField( + model_name='finding', + name='epss_score', + field=models.FloatField(blank=True, default=None, help_text='EPSS score for the CVE. Describes how likely it is the vulnerability will be exploited in the next 30 days.', null=True, validators=[django.core.validators.MinValueValidator(0.0), django.core.validators.MaxValueValidator(1.0)], verbose_name='EPSS Score'), + ), + migrations.AddIndex( + model_name='finding', + index=models.Index(fields=['epss_score'], name='dojo_findin_epss_sc_e40540_idx'), + ), + migrations.AddIndex( + model_name='finding', + index=models.Index(fields=['epss_percentile'], name='dojo_findin_epss_pe_567499_idx'), + ), + ] diff --git a/dojo/filters.py b/dojo/filters.py index 723c52337f3..2cdfe7a57af 100644 --- a/dojo/filters.py +++ b/dojo/filters.py @@ -322,6 +322,8 @@ def get_finding_filterset_fields(metrics=False, similar=False): 'unique_id_from_tool', 'vuln_id_from_tool', 'service', + 'epss_score', + 'epss_percentile' ]) if similar: @@ -1443,6 +1445,8 @@ class FindingFilter(FindingFilterWithTags): ('test__engagement__product__name', 'test__engagement__product__name'), ('service', 'service'), + ('epss_score', 'epss_score'), + ('epss_percentile', 'epss_percentile'), ), field_labels={ 'numerical_severity': 'Severity', @@ -1451,6 +1455,8 @@ class FindingFilter(FindingFilterWithTags): 'mitigated': 'Mitigated Date', 'title': 'Finding Name', 'test__engagement__product__name': 'Product Name', + 'epss_score': 'EPSS Score', + 'epss_percentile': 'EPSS Percentile', } ) @@ -1464,7 +1470,8 @@ class Meta: 'numerical_severity', 'line', 'duplicate_finding', 'hash_code', 'reviewers', 'created', 'files', 'sla_start_date', 'sla_expiration_date', 'cvssv3', - 'severity_justification', 'steps_to_reproduce'] + 'severity_justification', 'steps_to_reproduce', + 'epss_score', 'epss_percentile'] def __init__(self, *args, **kwargs): self.user = None diff --git a/dojo/models.py b/dojo/models.py index 747f8b91fe5..d3dc676d177 100755 --- a/dojo/models.py +++ b/dojo/models.py @@ -13,7 +13,7 @@ from django.contrib.auth.models import Group from django.db.models.expressions import Case, When from django.urls import reverse -from django.core.validators import RegexValidator, validate_ipv46_address +from django.core.validators import RegexValidator, validate_ipv46_address, MinValueValidator, MaxValueValidator from django.core.files.base import ContentFile from django.core.exceptions import ValidationError from django.db import models, connection @@ -2208,6 +2208,14 @@ class Finding(models.Model): blank=False, verbose_name=_("Vulnerability Id"), help_text=_("An id of a vulnerability in a security advisory associated with this finding. Can be a Common Vulnerabilities and Exposures (CVE) or from other sources.")) + epss_score = models.FloatField(default=None, null=True, blank=True, + verbose_name=_("EPSS Score"), + help_text=_("EPSS score for the CVE. Describes how likely it is the vulnerability will be exploited in the next 30 days."), + validators=[MinValueValidator(0.0), MaxValueValidator(1.0)]) + epss_percentile = models.FloatField(default=None, null=True, blank=True, + verbose_name=_("EPSS percentile"), + help_text=_("EPSS percentile for the CVE. Describes how many CVEs are scored at or below this one."), + validators=[MinValueValidator(0.0), MaxValueValidator(1.0)]) cvssv3_regex = RegexValidator(regex=r'^AV:[NALP]|AC:[LH]|PR:[UNLH]|UI:[NR]|S:[UC]|[CIA]:[NLH]', message="CVSS must be entered in format: 'AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H'") cvssv3 = models.TextField(validators=[cvssv3_regex], max_length=117, @@ -2502,7 +2510,7 @@ class Finding(models.Model): 'High': 1, 'Critical': 0} class Meta: - ordering = ('numerical_severity', '-date', 'title') + ordering = ('numerical_severity', '-date', 'title', 'epss_score', 'epss_percentile') indexes = [ models.Index(fields=['test', 'active', 'verified']), @@ -2517,6 +2525,8 @@ class Meta: models.Index(fields=['test', 'component_name']), models.Index(fields=['cve']), + models.Index(fields=['epss_score']), + models.Index(fields=['epss_percentile']), models.Index(fields=['cwe']), models.Index(fields=['out_of_scope']), models.Index(fields=['false_p']), diff --git a/dojo/templates/dojo/findings_list_snippet.html b/dojo/templates/dojo/findings_list_snippet.html index 248b7491942..514c6e1a96c 100644 --- a/dojo/templates/dojo/findings_list_snippet.html +++ b/dojo/templates/dojo/findings_list_snippet.html @@ -2,6 +2,7 @@ {% load display_tags %} {% load authorization_tags %} {% load get_endpoint_status %} +{% load multiply %} {% load static %} {% load i18n %} {% block findings_list %} @@ -322,6 +323,9 @@

{% trans "Vulnerability Id" %} + + {% trans "EPSS Score" %} / {% trans "Percentile" %} + {% if filter_name == 'Closed' %} {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} @@ -593,6 +597,19 @@

{% endif %} {% endwith %} + + {% if finding.epss_score is not None %} + {{ finding.epss_score|multiply:100|floatformat:"2" }}% + {% else %} + N.A. + {% endif %} + / + {% if finding.epss_percentile is not None %} + {{ finding.epss_percentile|multiply:100|floatformat:"2" }}% + {% else %} + N.A. + {% endif %} + {% if filter_name == 'Closed' %} {{ finding.mitigated|date }} @@ -721,6 +738,7 @@

}}, { "data": "cwe" }, { "data": "cve" }, + { "data": "epss"}, { "data": "found_date" }, { "data": "finding_age" }, {% if system_settings.enable_finding_sla %} diff --git a/dojo/templates/dojo/view_finding.html b/dojo/templates/dojo/view_finding.html index 5a49cbd5bbf..9517bc0eab3 100755 --- a/dojo/templates/dojo/view_finding.html +++ b/dojo/templates/dojo/view_finding.html @@ -1,5 +1,6 @@ {% extends "base.html" %} {% load display_tags %} +{% load multiply %} {% load authorization_tags %} {% load humanize %} {% load static %} @@ -268,8 +269,17 @@

Date Mitigated Mitigated By {% endif %} - CWE - Vulnerability Id + CWE + Vulnerability Id + {% if finding.epss_score != None or finding.epss_percentile != None %} + {% if finding.epss_score != None and finding.epss_percentile != None %} + EPSS Score / Percentile + {% elif finding.epss_score != None and finding.epss_percentile == None %} + EPSS Score + {% elif finding.epss_score == None and finding.epss_percentile != None %} + EPSS Percentile + {% endif %} + {% endif %} Found by {% if finding.vuln_id_from_tool %} Vuln ID from tool @@ -421,7 +431,16 @@

{% endif %} {% endif %} - + {% if finding.epss_score != None or finding.epss_percentile != None %} + {% if finding.epss_score != None and finding.epss_percentile != None %} + {{ finding.epss_score|multiply:100|floatformat:"3" }}% / {{ finding.epss_percentile|multiply:100|floatformat:"3" }}% + {% elif finding.epss_score != None and finding.epss_percentile == None %} + {{ finding.epss_score|multiply:100|floatformat:"3" }}% + {% elif finding.epss_score == None and finding.epss_percentile != None %} + {{ finding.epss_percentile|multiply:100|floatformat:"3" }}% + {% endif %} + {% endif %} + {% if found_by %} {% for scanner in found_by %} {{ scanner }} diff --git a/dojo/templatetags/multiply.py b/dojo/templatetags/multiply.py new file mode 100644 index 00000000000..641fa4889cc --- /dev/null +++ b/dojo/templatetags/multiply.py @@ -0,0 +1,8 @@ +from django import template + +register = template.Library() + + +@register.filter +def multiply(value, arg): + return value * arg From 80d5d799ad73ae28e6dffe07e4ebe5fa983d3b6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quirin=20Hardy=20Zie=C3=9Fler?= Date: Tue, 20 Feb 2024 19:06:43 +0100 Subject: [PATCH 47/61] :tada: importing epss score from DependencyTrack output (#9521) --- dojo/tools/dependency_track/parser.py | 16 +++++ .../dependency_track_4.10_2024_02_11.json | 62 +++++++++++++++++++ .../tools/test_dependency_track_parser.py | 10 +++ 3 files changed, 88 insertions(+) create mode 100644 unittests/scans/dependency_track/dependency_track_4.10_2024_02_11.json diff --git a/dojo/tools/dependency_track/parser.py b/dojo/tools/dependency_track/parser.py index c808c820a92..965e3e32362 100644 --- a/dojo/tools/dependency_track/parser.py +++ b/dojo/tools/dependency_track/parser.py @@ -211,6 +211,17 @@ def _convert_dependency_track_finding_to_dojo_finding(self, dependency_track_fin analysis = dependency_track_finding.get('analysis') is_false_positive = True if analysis is not None and analysis.get('state') == 'FALSE_POSITIVE' else False + # Get the EPSS details + if 'epssPercentile' in dependency_track_finding['vulnerability']: + epss_percentile = dependency_track_finding['vulnerability']['epssPercentile'] + else: + epss_percentile = None + + if 'epssScore' in dependency_track_finding['vulnerability']: + epss_score = dependency_track_finding['vulnerability']['epssScore'] + else: + epss_score = None + # Build and return Finding model finding = Finding( title=title, @@ -236,6 +247,11 @@ def _convert_dependency_track_finding_to_dojo_finding(self, dependency_track_fin if cvss_score: finding.cvssv3_score = cvss_score + if epss_score: + finding.epss_score = epss_score + if epss_percentile: + finding.epss_percentile = epss_percentile + return finding def get_scan_types(self): diff --git a/unittests/scans/dependency_track/dependency_track_4.10_2024_02_11.json b/unittests/scans/dependency_track/dependency_track_4.10_2024_02_11.json new file mode 100644 index 00000000000..1786f3642e8 --- /dev/null +++ b/unittests/scans/dependency_track/dependency_track_4.10_2024_02_11.json @@ -0,0 +1,62 @@ +{ + "meta": { + "baseUrl": "https://dependencytrack.example.com", + "application": "Dependency-Track", + "version": "4.10.1", + "timestamp": "2024-02-03T09:59:36Z" + }, + "findings": [ + { + "component": { + "name": "urllib3", + "project": "1g2345tc-16rh-7te5-92b5-12345z6789fb", + "purl": "pkg:pypi/urllib3@1.26.16", + "uuid": "4b5385f9-52fa-4116-a6e8-79197ad27c01", + "version": "1.26.16", + "latestVersion": "2.2.0" + }, + "attribution": { + "alternateIdentifier": "CVE-2023-45803", + "analyzerIdentity": "OSSINDEX_ANALYZER", + "attributedOn": "2024-01-31 15:19:45.978", + "referenceUrl": "https://ossindex.sonatype.org/vulnerability/CVE-2023-45803?component-type=pypi&component-name=urllib3&utm_source=dependency-track&utm_medium=integration&utm_content=v4.10.1" + }, + "vulnerability": { + "severity": "MEDIUM", + "cvssV3BaseScore": 4.2, + "vulnId": "CVE-2023-45803", + "aliases": [ + { + "ghsaId": "GHSA-g4mx-q9vg-27p4", + "cveId": "CVE-2023-45803" + } + ], + "cweId": 200, + "description": "urllib3 is a user-friendly HTTP client library for Python. urllib3 previously wouldn't remove the HTTP request body when an HTTP redirect response using status 301, 302, or 303 after the request had its method changed from one that could accept a request body (like `POST`) to `GET` as is required by HTTP RFCs. Although this behavior is not specified in the section for redirects, it can be inferred by piecing together information from different sections and we have observed the behavior in other major HTTP client implementations like curl and web browsers. Because the vulnerability requires a previously trusted service to become compromised in order to have an impact on confidentiality we believe the exploitability of this vulnerability is low. Additionally, many users aren't putting sensitive data in HTTP request bodies, if this is the case then this vulnerability isn't exploitable. Both of the following conditions must be true to be affected by this vulnerability: 1. Using urllib3 and submitting sensitive information in the HTTP request body (such as form data or JSON) and 2. The origin service is compromised and starts redirecting using 301, 302, or 303 to a malicious peer or the redirected-to service becomes compromised. This issue has been addressed in versions 1.26.18 and 2.0.7 and users are advised to update to resolve this issue. Users unable to update should disable redirects for services that aren't expecting to respond with redirects with `redirects=False` and disable automatic redirects with `redirects=False` and handle 301, 302, and 303 redirects manually by stripping the HTTP request body.\n", + "epssScore": 0.00043, + "source": "NVD", + "cwes": [ + { + "cweId": 200, + "name": "Exposure of Sensitive Information to an Unauthorized Actor", + "id": 0 + } + ], + "uuid": "3ef52aaa-6f61-4b8e-9764-d51fe5cd754d", + "severityRank": 2, + "cweName": "Exposure of Sensitive Information to an Unauthorized Actor", + "epssPercentile": 0.07756 + }, + "analysis": { + "isSuppressed": false + }, + "matrix": "1g2345tc-16rh-7te5-92b5-12345z6789fb:4b5385f9-52fa-4116-a6e8-79197ad27c01:3ef52aaa-6f61-4b8e-9764-d51fe5cd754d" + } + ], + "project": { + "name": "blablabla-Requirements-txt", + "uuid": "1g2345tc-16rh-7te5-92b5-12345z6789fb", + "version": "1" + }, + "version": "1.2" + } \ No newline at end of file diff --git a/unittests/tools/test_dependency_track_parser.py b/unittests/tools/test_dependency_track_parser.py index 4e0d203fe75..b12f5611f99 100644 --- a/unittests/tools/test_dependency_track_parser.py +++ b/unittests/tools/test_dependency_track_parser.py @@ -106,3 +106,13 @@ def test_dependency_track_parser_findings_with_cvssV3_score(self): self.assertTrue(all(item.vuln_id_from_tool is not None for item in findings)) self.assertIn('CVE-2022-42004', findings[0].unsaved_vulnerability_ids) self.assertEqual(8.3, findings[0].cvssv3_score) + + def test_dependency_track_parser_findings_with_epss_score(self): + with open(f"{get_unit_tests_path()}/scans/dependency_track/dependency_track_4.10_2024_02_11.json") as testfile: + parser = DependencyTrackParser() + findings = parser.get_findings(testfile, Test()) + self.assertEqual(1, len(findings)) + self.assertEqual(0.00043, findings[0].epss_score) + self.assertEqual(0.07756, findings[0].epss_percentile) + self.assertEqual(4.2, findings[0].cvssv3_score) + self.assertIn('CVE-2023-45803', findings[0].unsaved_vulnerability_ids) From 83eb26bbbc9cfdf4d36c6bd7bde04fd708fd8408 Mon Sep 17 00:00:00 2001 From: Andreas Reichert <70580399+reichertan@users.noreply.github.com> Date: Tue, 20 Feb 2024 19:13:16 +0100 Subject: [PATCH 48/61] improved Sonatype parser (#9519) * Sonatype parser improved * Blank line at end of file removed. * Sonatype status evaluation removed. --- dojo/settings/settings.dist.py | 2 + dojo/tools/sonatype/identifier.py | 53 +++++ dojo/tools/sonatype/parser.py | 203 ++++++------------ unittests/scans/sonatype/many_vulns.json | 11 + unittests/scans/sonatype/no_vuln.json | 52 +++++ .../{one_vuln.json => two_vulns.json} | 0 unittests/tools/test_sonatype_parser.py | 59 ++++- 7 files changed, 239 insertions(+), 141 deletions(-) create mode 100644 dojo/tools/sonatype/identifier.py create mode 100644 unittests/scans/sonatype/no_vuln.json rename unittests/scans/sonatype/{one_vuln.json => two_vulns.json} (100%) diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index 52972291844..a7fb0ccc8f2 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -1178,6 +1178,7 @@ def saml2_attrib_map_format(dict): 'Cloudsploit Scan': ['title', 'description'], 'SonarQube Scan': ['cwe', 'severity', 'file_path'], 'SonarQube API Import': ['title', 'file_path', 'line'], + 'Sonatype Application Scan': ['title', 'cwe', 'file_path', 'component_name', 'component_version', 'vulnerability_ids'], 'Dependency Check Scan': ['title', 'cwe', 'file_path'], 'Dockle Scan': ['title', 'description', 'vuln_id_from_tool'], 'Dependency Track Finding Packaging Format (FPF) Export': ['component_name', 'component_version', 'vulnerability_ids'], @@ -1367,6 +1368,7 @@ def saml2_attrib_map_format(dict): 'SonarQube Scan detailed': DEDUPE_ALGO_UNIQUE_ID_FROM_TOOL, 'SonarQube Scan': DEDUPE_ALGO_HASH_CODE, 'SonarQube API Import': DEDUPE_ALGO_HASH_CODE, + 'Sonatype Application Scan': DEDUPE_ALGO_HASH_CODE, 'Dependency Check Scan': DEDUPE_ALGO_HASH_CODE, 'Dockle Scan': DEDUPE_ALGO_HASH_CODE, 'Tenable Scan': DEDUPE_ALGO_HASH_CODE, diff --git a/dojo/tools/sonatype/identifier.py b/dojo/tools/sonatype/identifier.py new file mode 100644 index 00000000000..764cf03b97f --- /dev/null +++ b/dojo/tools/sonatype/identifier.py @@ -0,0 +1,53 @@ +# Implemented according to Sonatype Component Identifiers +# https://help.sonatype.com/en/referencing-package-url--purl--and-component-identifiers.html +class ComponentIdentifier: + + def __init__(self, component): + self._component_id = "" + self._component_name = "" + self._component_version = "" + + if "componentIdentifier" in component: + component_coordinates = component["componentIdentifier"]["coordinates"] + componant_format = component["componentIdentifier"]["format"] + + if componant_format in ["a-name", "pypi", "rpm", "gem", "golang", "conan", "conda", "bower", "composer", + "cran", "cargo", "cocoapods", "drupal", "pecoff", "swift", "generic", + "operating-system"]: + self.set_name_version_component(component_coordinates) + elif componant_format == "maven": + self.set_maven_component(component_coordinates) + elif componant_format in ["npm", "nuget"]: + self.set_package_id_version_component(component_coordinates) + elif "displayName" in component: + self._component_id = component["displayName"] + self._component_name = component["displayName"] + + @property + def component_id(self): + return self._component_id + + @property + def component_name(self): + return self._component_name + + @property + def component_version(self): + return self._component_version + + def set_name_version_component(self, component_coordinates): + self._component_id = f"{component_coordinates['name']} {component_coordinates['version']}" + self._component_name = component_coordinates["name"] + self._component_version = component_coordinates["version"] + + def set_maven_component(self, component_coordinates): + self._component_id = (f"{component_coordinates['artifactId']} " + f"{component_coordinates['groupId']} " + f"{component_coordinates['version']}") + self._component_name = component_coordinates["artifactId"] + self._component_version = component_coordinates["version"] + + def set_package_id_version_component(self, component_coordinates): + self._component_id = f"{component_coordinates['packageId']} {component_coordinates['version']}" + self._component_name = component_coordinates["packageId"] + self._component_version = component_coordinates["version"] diff --git a/dojo/tools/sonatype/parser.py b/dojo/tools/sonatype/parser.py index 0e3934f9131..5458f64a9f7 100644 --- a/dojo/tools/sonatype/parser.py +++ b/dojo/tools/sonatype/parser.py @@ -1,154 +1,85 @@ -""" Surely a fragile parser, but gets things started and will evolve over time I guess. -It seems that a lot of the json data does not have any securityData data -So these are just skipped, since there is nothing much to do with them here -""" import json - from dojo.models import Finding +from dojo.tools.sonatype.identifier import ComponentIdentifier -class SonatypeParser(object): +class SonatypeParser: # This parser does not deal with licenses information. def get_scan_types(self): return ["Sonatype Application Scan"] def get_label_for_scan_types(self, scan_type): - return scan_type # no custom label for now + return "Sonatype Application Scan" def get_description_for_scan_types(self, scan_type): return "Can be imported in JSON format" def get_findings(self, json_output, test): - tree = json.load(json_output) - return self.get_items(tree, test) - - def get_items(self, tree, test): - items = {} - if "components" in tree: - vulnerability_tree = tree["components"] + sonatype_report = json.load(json_output) + findings = [] + if "components" in sonatype_report: + components = sonatype_report["components"] - for node in vulnerability_tree: - item = get_item(node, test) - if item is None: + for component in components: + if component["securityData"] is None or len(component["securityData"]["securityIssues"]) < 1: continue - # TODO - unique_key = node["hash"] - items[unique_key] = item - - return list(items.values()) - - -def get_item(vulnerability, test): - # Following the CVSS Scoring per https://nvd.nist.gov/vuln-metrics/cvss - if ( - vulnerability["securityData"] is not None - and len(vulnerability["securityData"]["securityIssues"]) >= 1 - ): - # there can be nothing in the array, or securityData can be null altogether. If the latter, well, nothing much to do? - # issues is an array, and there can be 2+ of them, e.g. a cve and a sonatype entry or two cves - # Given the current Finding class, if a cve, will be the main. If not a cve, then CVE ref will remain null due to regex. - # Others go to references. - main_finding = vulnerability["securityData"]["securityIssues"][0] - - if main_finding.get("source") == "cve": - vulnerability_id = main_finding.get("reference") - else: - # if sonatype of else, will not match Finding model today - vulnerability_id = None - - if main_finding["severity"] <= 3.9: - severity = "Low" - elif ( - main_finding["severity"] > 4.0 and main_finding["severity"] <= 6.9 - ): - severity = "Medium" - elif main_finding["severity"] and main_finding["severity"] <= 8.9: - severity = "High" - else: - severity = "Critical" - - references = [] - if len(vulnerability["securityData"]["securityIssues"]) > 1: - for additional_issue in vulnerability["securityData"][ - "securityIssues" - ]: - references.append( - "{}, {}, {}, {}, {} ".format( - additional_issue.get("reference"), - additional_issue.get("status"), - additional_issue.get("severity"), - additional_issue.get("threatCategory"), - additional_issue.get("url"), - ) - ) - - component_id = "" - if "componentIdentifier" in vulnerability: - if vulnerability["componentIdentifier"]["format"] == "maven": - component_id = "{} {} {}".format( - vulnerability["componentIdentifier"]["coordinates"][ - "artifactId" - ], - vulnerability["componentIdentifier"]["coordinates"][ - "groupId" - ], - vulnerability["componentIdentifier"]["coordinates"][ - "version" - ], - ) - elif vulnerability["componentIdentifier"]["format"] == "a-name": - component_id = "{} {} {}".format( - vulnerability["componentIdentifier"]["coordinates"][ - "name" - ], - vulnerability["componentIdentifier"]["coordinates"][ - "qualifier" - ], - vulnerability["componentIdentifier"]["coordinates"][ - "version" - ], - ) - - finding_title = "{} - {}".format( - main_finding["reference"], component_id - ) - - finding_description = "Hash {}\n\n".format(vulnerability["hash"]) - finding_description += component_id - finding_description += '\n\nPlease check the CVE details of this finding for a detailed description. The details of issues beginning with "SONATYPE-" can be found by contacting Sonatype, Inc. or through mechanisms they have provided in their product.' - threat_category = main_finding.get( - "threatCategory", "CVSS vector not provided. " - ).title() - status = main_finding["status"] - main_finding.get("severity", "No CVSS score yet.") - if "pathnames" in vulnerability: - file_path = " ".join(vulnerability["pathnames"])[:1000] - else: - file_path = "" - - # create the finding object - finding = Finding( - title=finding_title, - test=test, - severity=severity, - description=finding_description, - mitigation=status, - references="{}\n{}\n".format( - main_finding["url"], "\n".join(references) - ), - false_p=False, - duplicate=False, - out_of_scope=False, - mitigated=None, - file_path=file_path, - impact=threat_category, - static_finding=True - ) - if vulnerability_id: - finding.unsaved_vulnerability_ids = [vulnerability_id] - finding.description = finding.description.strip() - - return finding + + for security_issue in component["securityData"]["securityIssues"]: + finding = get_finding(security_issue, component, test) + findings.append(finding) + + return findings + + +def get_finding(security_issue, component, test): + + severity = get_severity(security_issue) + threat_category = security_issue.get("threatCategory", "CVSS vector not provided. ").title() + status = security_issue["status"] + reference = security_issue["url"] + + identifier = ComponentIdentifier(component) + title = f"{security_issue['reference']} - {identifier.component_id}" + + finding_description = f"Hash {component['hash']}\n\n" + finding_description += identifier.component_id + finding_description = finding_description.strip() + + finding = Finding( + test=test, + title=title, + description=finding_description, + component_name=identifier.component_name, + component_version=identifier.component_version, + severity=severity, + mitigation=status, + references=reference, + impact=threat_category, + static_finding=True + ) + if "cwe" in security_issue: + finding.cwe = security_issue["cwe"] + + if "cvssVector" in security_issue: + finding.cvssv3 = security_issue["cvssVector"] + + if "pathnames" in component: + finding.file_path = " ".join(component["pathnames"])[:1000] + + if security_issue.get("source") == "cve": + vulnerability_id = security_issue.get("reference") + finding.unsaved_vulnerability_ids = [vulnerability_id] + + return finding + + +def get_severity(vulnerability): + if vulnerability["severity"] <= 3.9: + return "Low" + elif vulnerability["severity"] <= 6.9: + return "Medium" + elif vulnerability["severity"] <= 8.9: + return "High" else: - return None + return "Critical" diff --git a/unittests/scans/sonatype/many_vulns.json b/unittests/scans/sonatype/many_vulns.json index 05b986aec07..bfe2b37026b 100644 --- a/unittests/scans/sonatype/many_vulns.json +++ b/unittests/scans/sonatype/many_vulns.json @@ -295,6 +295,17 @@ "status": "Open", "url": null, "threatCategory": "severe" + }, + { + "source": "sonatype", + "reference": "sonatype-2023-4856", + "severity": 5.3, + "status": "Not Applicable", + "url": null, + "threatCategory": "severe", + "cwe": "693", + "cvssVector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N", + "cvssVectorSource": "sonatype_cvss_3" } ] } diff --git a/unittests/scans/sonatype/no_vuln.json b/unittests/scans/sonatype/no_vuln.json new file mode 100644 index 00000000000..f472afd557e --- /dev/null +++ b/unittests/scans/sonatype/no_vuln.json @@ -0,0 +1,52 @@ +{ + "components": [ + { + "hash": "212387a39088ecd3daff", + "componentIdentifier": { + "format": "maven", + "coordinates": { + "artifactId": "okhttp", + "classifier": "", + "extension": "jar", + "groupId": "com.squareup.okhttp", + "version": "2.6.0" + } + }, + "proprietary": false, + "matchState": "exact", + "pathnames": [ + "WEB-INF/lib/okhttp-2.6.0.jar" + ], + "licenseData": { + "declaredLicenses": [ + { + "licenseId": "Apache-2.0", + "licenseName": "Apache-2.0" + } + ], + "observedLicenses": [ + { + "licenseId": "Apache-2.0", + "licenseName": "Apache-2.0" + } + ], + "overriddenLicenses": [], + "status": "Open", + "effectiveLicenseThreats": [ + { + "licenseThreatGroupName": "Liberal", + "licenseThreatGroupLevel": 0, + "licenseThreatGroupCategory": "no-threat" + } + ] + }, + "securityData": { + "securityIssues": [] + } + } + ], + "matchSummary": { + "totalComponentCount": 1011, + "knownComponentCount": 826 + } +} diff --git a/unittests/scans/sonatype/one_vuln.json b/unittests/scans/sonatype/two_vulns.json similarity index 100% rename from unittests/scans/sonatype/one_vuln.json rename to unittests/scans/sonatype/two_vulns.json diff --git a/unittests/tools/test_sonatype_parser.py b/unittests/tools/test_sonatype_parser.py index a3bfcf2a13c..48e4b4b056e 100644 --- a/unittests/tools/test_sonatype_parser.py +++ b/unittests/tools/test_sonatype_parser.py @@ -4,12 +4,12 @@ class TestSonatypeParser(DojoTestCase): - def test_parse_file_with_one_vuln(self): - testfile = open("unittests/scans/sonatype/one_vuln.json") + def test_parse_file_with_two_vulns(self): + testfile = open("unittests/scans/sonatype/two_vulns.json") parser = SonatypeParser() findings = parser.get_findings(testfile, Test()) testfile.close() - self.assertEqual(1, len(findings)) + self.assertEqual(2, len(findings)) self.assertEqual(1, len(findings[0].unsaved_vulnerability_ids)) self.assertEqual("CVE-2016-2402", findings[0].unsaved_vulnerability_ids[0]) @@ -18,11 +18,60 @@ def test_parse_file_with_many_vulns(self): parser = SonatypeParser() findings = parser.get_findings(testfile, Test()) testfile.close() - self.assertEqual(3, len(findings)) + self.assertEqual(6, len(findings)) def test_parse_file_with_long_file_path(self): testfile = open("unittests/scans/sonatype/long_file_path.json") parser = SonatypeParser() findings = parser.get_findings(testfile, Test()) testfile.close() - self.assertEqual(2, len(findings)) + self.assertEqual(3, len(findings)) + + def test_find_no_vuln(self): + testfile = open("unittests/scans/sonatype/no_vuln.json") + parser = SonatypeParser() + findings = parser.get_findings(testfile, Test()) + testfile.close() + self.assertEqual(0, len(findings)) + + def test_component_parsed_correctly(self): + testfile = open("unittests/scans/sonatype/many_vulns.json") + parser = SonatypeParser() + findings = parser.get_findings(testfile, Test()) + testfile.close() + self.assertEqual("sonatype-2023-4856 - okhttp com.squareup.okhttp 2.6.0", findings[5].title) + self.assertEqual("okhttp", findings[5].component_name) + self.assertEqual("2.6.0", findings[5].component_version) + + def test_severity_parsed_correctly(self): + testfile = open("unittests/scans/sonatype/many_vulns.json") + parser = SonatypeParser() + findings = parser.get_findings(testfile, Test()) + testfile.close() + self.assertEqual("Medium", findings[0].severity) + self.assertEqual("High", findings[1].severity) + self.assertEqual("High", findings[2].severity) + self.assertEqual("Medium", findings[3].severity) + self.assertEqual("Medium", findings[4].severity) + self.assertEqual("Medium", findings[5].severity) + + def test_cwe_parsed_correctly(self): + testfile = open("unittests/scans/sonatype/many_vulns.json") + parser = SonatypeParser() + findings = parser.get_findings(testfile, Test()) + testfile.close() + self.assertEqual("693", findings[5].cwe) + + def test_cvssv3_parsed_correctly(self): + testfile = open("unittests/scans/sonatype/many_vulns.json") + parser = SonatypeParser() + findings = parser.get_findings(testfile, Test()) + testfile.close() + self.assertEqual("CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N", findings[5].cvssv3) + + def test_filepath_parsed_correctly(self): + testfile = open("unittests/scans/sonatype/many_vulns.json") + parser = SonatypeParser() + findings = parser.get_findings(testfile, Test()) + testfile.close() + self.assertEqual("WEB-INF/lib/okhttp-2.6.0.jar", findings[5].file_path) From 7eee8dc1f756cb387339565eeef433e77d351e7c Mon Sep 17 00:00:00 2001 From: manuelsommer <47991713+manuel-sommer@users.noreply.github.com> Date: Tue, 20 Feb 2024 19:15:08 +0100 Subject: [PATCH 49/61] fix clair docs according to PR #9355 (#9523) * fix clair docs according to PR #9355 * remove clair_klar * update * start to implement unittest to test if a parser exists for a md file * unittest to test if parser exists to a documented parser * add edgescan and codeql to skip this test * :tada: works fine, removed asfd --- docs/content/en/integrations/parsers/file/clair.md | 2 +- .../en/integrations/parsers/file/clair_klar.md | 9 --------- unittests/test_parsers.py | 12 ++++++++++++ 3 files changed, 13 insertions(+), 10 deletions(-) delete mode 100644 docs/content/en/integrations/parsers/file/clair_klar.md diff --git a/docs/content/en/integrations/parsers/file/clair.md b/docs/content/en/integrations/parsers/file/clair.md index 235f801ee94..7c7ac5baefc 100644 --- a/docs/content/en/integrations/parsers/file/clair.md +++ b/docs/content/en/integrations/parsers/file/clair.md @@ -2,7 +2,7 @@ title: "Clair Scan" toc_hide: true --- -Import JSON reports of Docker image vulnerabilities. +You can import JSON reports of Docker image vulnerabilities found by a Clair scan or the Clair Klar client. ### Sample Scan Data Sample Clair Scan scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/clair). \ No newline at end of file diff --git a/docs/content/en/integrations/parsers/file/clair_klar.md b/docs/content/en/integrations/parsers/file/clair_klar.md deleted file mode 100644 index 05651bf267c..00000000000 --- a/docs/content/en/integrations/parsers/file/clair_klar.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Clair Klar Scan" -toc_hide: true ---- -Import JSON reports of Docker image vulnerabilities from clair klar -client. - -### Sample Scan Data -Sample Clair Klar Scan scans can be found [here](https://github.com/DefectDojo/django-DefectDojo/tree/master/unittests/scans/clair_klar). \ No newline at end of file diff --git a/unittests/test_parsers.py b/unittests/test_parsers.py index 9832b7f2b3e..ac2b75730c0 100644 --- a/unittests/test_parsers.py +++ b/unittests/test_parsers.py @@ -93,3 +93,15 @@ def test_file_existence(self): if ".read()" in str(line): read_true = True i = 0 + + def test_parser_existence(self): + for docs in os.scandir(os.path.join(basedir, 'docs', 'content', 'en', 'integrations', 'parsers', 'file')): + if docs.name not in [ + '_index.md', 'codeql.md', 'edgescan.md' + ]: + with self.subTest(parser=docs.name.split('.md')[0], category='parser'): + parser = os.path.join(basedir, 'dojo', 'tools', f"{docs.name.split('.md')[0]}", "parser.py") + self.assertTrue( + os.path.isfile(parser), + f"Parser '{parser}' is missing or using different name" + ) From 560c3341bd4d1ea90c8b593d396d8e577af1396e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 12:23:37 -0600 Subject: [PATCH 50/61] :arrow_up: Bump openapitools/openapi-generator-cli from v7.2.0 to v7.3.0 (#9526) Bumps openapitools/openapi-generator-cli from v7.2.0 to v7.3.0. --- updated-dependencies: - dependency-name: openapitools/openapi-generator-cli dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile.integration-tests-debian | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.integration-tests-debian b/Dockerfile.integration-tests-debian index 04cb7eeaf85..c7db1f1feef 100644 --- a/Dockerfile.integration-tests-debian +++ b/Dockerfile.integration-tests-debian @@ -1,7 +1,7 @@ # code: language=Dockerfile -FROM openapitools/openapi-generator-cli:v7.2.0@sha256:9eab779faa2525b1474c4159ec335d913ee3cee00f641552a2305b0a4d7db8f7 as openapitools +FROM openapitools/openapi-generator-cli:v7.3.0@sha256:74b9992692c836e42a02980db4b76bee94e17075e4487cd80f5c540dd57126b9 as openapitools FROM python:3.11.4-slim-bullseye@sha256:40319d0a897896e746edf877783ef39685d44e90e1e6de8d964d0382df0d4952 as build WORKDIR /app RUN \ From 99801d5892750e65a8ccc53d03ce2cfedf085147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quirin=20Hardy=20Zie=C3=9Fler?= Date: Tue, 20 Feb 2024 19:24:59 +0100 Subject: [PATCH 51/61] :tada: Importing EPSS score from AWS Inspector via AWS SecHub (#9529) * :tada: epss score for AWS SecHub * :tada: adjusted aws sechub parser to import inspector epss scores * flake8 --- dojo/tools/awssecurityhub/parser.py | 7 +++++++ unittests/tools/test_awssecurityhub_parser.py | 1 + 2 files changed, 8 insertions(+) diff --git a/dojo/tools/awssecurityhub/parser.py b/dojo/tools/awssecurityhub/parser.py index 252c4c5a237..3c993ac41fb 100644 --- a/dojo/tools/awssecurityhub/parser.py +++ b/dojo/tools/awssecurityhub/parser.py @@ -47,6 +47,7 @@ def get_item(finding: dict, test): impact = [] references = [] unsaved_vulnerability_ids = [] + epss_score = None if aws_scanner_type == "Inspector": description = f"This is an Inspector Finding\n{finding.get('Description', '')}" vulnerabilities = finding.get("Vulnerabilities", []) @@ -66,6 +67,8 @@ def get_item(finding: dict, test): if vendor := vulnerability.get("Vendor"): if vendor_url := vendor.get("Url"): references.append(vendor_url) + if vulnerability.get("EpssScore") is not None: + epss_score = vulnerability.get("EpssScore") if finding.get("ProductFields", {}).get("aws/inspector/FindingStatus", "ACTIVE") == "ACTIVE": mitigated = None @@ -140,6 +143,10 @@ def get_item(finding: dict, test): dynamic_finding=False, component_name=component_name, ) + + if epss_score is not None: + result.epss_score = epss_score + # Add the unsaved vulnerability ids result.unsaved_vulnerability_ids = unsaved_vulnerability_ids diff --git a/unittests/tools/test_awssecurityhub_parser.py b/unittests/tools/test_awssecurityhub_parser.py index 6dd78605fd5..23a2796e837 100644 --- a/unittests/tools/test_awssecurityhub_parser.py +++ b/unittests/tools/test_awssecurityhub_parser.py @@ -101,3 +101,4 @@ def test_inspector_ecr(self): self.assertEqual("CVE-2023-2650 - openssl - Image: repo-os/sha256:af965ef68c78374a5f987fce98c0ddfa45801df2395bf012c50b863e65978d74", finding.title) self.assertIn("repo-os/sha256:af965ef68c78374a5f987fce98c0ddfa45801df2395bf012c50b863e65978d74", finding.impact) self.assertIn("Repository: repo-os", finding.impact) + self.assertEqual(0.0014, finding.epss_score) From 64966f2bcce401bd313e73728b8bb3f88eebe20e Mon Sep 17 00:00:00 2001 From: manuelsommer <47991713+manuel-sommer@users.noreply.github.com> Date: Tue, 20 Feb 2024 19:33:16 +0100 Subject: [PATCH 52/61] :bug: fix kics, #7966 (#9542) * :bug: fix kics, #7966 * :bug: fix unittests * add hashcode according to review * update to retrigger failed pipeline --- dojo/settings/settings.dist.py | 3 ++- dojo/tools/kics/parser.py | 1 + unittests/tools/test_kics_parser.py | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index a7fb0ccc8f2..003d2dcf716 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -1242,6 +1242,7 @@ def saml2_attrib_map_format(dict): 'Humble Json Importer': ['title'], 'MSDefender Parser': ['title', 'description'], 'HCLAppScan XML': ['title', 'description'], + 'KICS Scan': ['file_path', 'line', 'severity', 'description', 'title'], 'MobSF Scan': ['title', 'description', 'severity'], } @@ -1409,7 +1410,6 @@ def saml2_attrib_map_format(dict): 'Meterian Scan': DEDUPE_ALGO_HASH_CODE, 'Github Vulnerability Scan': DEDUPE_ALGO_HASH_CODE, 'Cloudsploit Scan': DEDUPE_ALGO_HASH_CODE, - 'KICS Scan': DEDUPE_ALGO_HASH_CODE, 'SARIF': DEDUPE_ALGO_UNIQUE_ID_FROM_TOOL_OR_HASH_CODE, 'Azure Security Center Recommendations Scan': DEDUPE_ALGO_UNIQUE_ID_FROM_TOOL, 'Hadolint Dockerfile check': DEDUPE_ALGO_HASH_CODE, @@ -1452,6 +1452,7 @@ def saml2_attrib_map_format(dict): 'Wazuh Scan': DEDUPE_ALGO_UNIQUE_ID_FROM_TOOL, 'MSDefender Parser': DEDUPE_ALGO_HASH_CODE, 'HCLAppScan XML': DEDUPE_ALGO_HASH_CODE, + 'KICS Scan': DEDUPE_ALGO_HASH_CODE, 'MobSF Scan': DEDUPE_ALGO_HASH_CODE, } diff --git a/dojo/tools/kics/parser.py b/dojo/tools/kics/parser.py index 365a508cb96..2752bcf5fb7 100644 --- a/dojo/tools/kics/parser.py +++ b/dojo/tools/kics/parser.py @@ -62,6 +62,7 @@ def get_findings(self, filename, test): + category + issue_type + file_name + + expected_value + str(line_number) ).encode("utf-8") ).hexdigest() diff --git a/unittests/tools/test_kics_parser.py b/unittests/tools/test_kics_parser.py index a8f0311a157..608f92f15a4 100644 --- a/unittests/tools/test_kics_parser.py +++ b/unittests/tools/test_kics_parser.py @@ -15,7 +15,7 @@ def test_parse_many_findings(self): testfile = open("unittests/scans/kics/many_findings.json") parser = KICSParser() findings = parser.get_findings(testfile, Test()) - self.assertEqual(13, len(findings)) + self.assertEqual(18, len(findings)) with self.subTest(i=0): finding = findings[0] self.assertEqual("Secret Management: Passwords And Secrets In Infrastructure Code", finding.title) @@ -129,7 +129,7 @@ def test_parse_many_findings(self): self.assertEqual(5, finding.line) self.assertEqual("Terraform", finding.component_name) self.assertIsNotNone(finding.description) - self.assertEqual(2, finding.nb_occurences) + self.assertEqual(1, finding.nb_occurences) with self.subTest(i=8): finding = findings[8] @@ -181,7 +181,7 @@ def test_parse_many_findings(self): self.assertEqual(20, finding.line) self.assertEqual("Kubernetes", finding.component_name) self.assertIsNotNone(finding.description) - self.assertEqual(5, finding.nb_occurences) + self.assertEqual(1, finding.nb_occurences) with self.subTest(i=12): finding = findings[12] From afd0bcca4c609a70e1b4a52804eeeacb224f83b1 Mon Sep 17 00:00:00 2001 From: manuelsommer <47991713+manuel-sommer@users.noreply.github.com> Date: Tue, 20 Feb 2024 19:38:23 +0100 Subject: [PATCH 53/61] :bug: fix nessus severity (#9549) * :bug: fix nessus severity * add unittest * flake8 --- dojo/tools/tenable/xml_format.py | 19 + .../scans/tenable/nessus/issue_6992.nessus | 7711 +++++++++++++++++ unittests/tools/test_tenable_parser.py | 11 +- 3 files changed, 7740 insertions(+), 1 deletion(-) create mode 100644 unittests/scans/tenable/nessus/issue_6992.nessus diff --git a/dojo/tools/tenable/xml_format.py b/dojo/tools/tenable/xml_format.py index aa8b17c9b19..7fe466507f4 100644 --- a/dojo/tools/tenable/xml_format.py +++ b/dojo/tools/tenable/xml_format.py @@ -27,6 +27,21 @@ def get_text_severity(self, severity_id): severity = "Info" return severity + def get_cvss_severity(self, cvss_score): + """Convert data of the report into severity""" + severity = "Info" + if float(cvss_score) >= 9.0: + severity = "Critical" + elif float(cvss_score) >= 7.0: + severity = "High" + elif float(cvss_score) >= 5.0: + severity = "Medium" + elif float(cvss_score) > 0.0: + severity = "Low" + else: + severity = "Info" + return severity + def safely_get_element_text(self, element): if element is None: return None @@ -203,6 +218,10 @@ def get_findings(self, filename: str, test: Test) -> list: if cvssv3_score_element_text is not None: cvssv3_score = cvssv3_score_element_text + cvss = self.safely_get_element_text(item.find("cvss3_base_score")) + if cvss is not None: + severity = self.get_cvss_severity(cvss) + # Determine the current entry has already been parsed in # this report dupe_key = severity + title diff --git a/unittests/scans/tenable/nessus/issue_6992.nessus b/unittests/scans/tenable/nessus/issue_6992.nessus new file mode 100644 index 00000000000..a3d1fb4c2b0 --- /dev/null +++ b/unittests/scans/tenable/nessus/issue_6992.nessus @@ -0,0 +1,7711 @@ + + + + Basic Network Scan + + + + scan.enable_utf8_output + no + + + bw_prevent_core_updates + yes + + + bw_prevent_plugin_updates + yes + + + plugin_set + + 146991;15713;11592;11591;16046;58484;58321;16321;11480;19939;11475;73190;10747;23735;40613;33218;26020;29749;31094;11714;11187;14195;14196;18212;14241;73189;21020;18208;109799;109800;109730;91230;31607;23750;18415;18414;18413;10277;10715;10949;91231;14256;11604;17307;10974;10973;11283;10976;10975;10977;10978;10979;10980;10981;11287;10982;10983;11289;11288;14718;10984;11290;10985;11291;11382;11292;10986;11294;11381;10987;11293;11295;11296;11379;11056;11285;12039;11297;11380;11383;11547;11594;14337;17630;12270;12199;17629;17988;20807;16217;20933;17635;15782;15627;24736;19771;17986;24741;20808;20134;24744;24737;20744;24019;24739;24740;19377;10001;11393;10961;11276;10962;10963;11032;10820;11202;10990;10991;11003;10993;10994;10996;10997;10995;10998;10999;11000;11208;11001;10819;10826;10798;10778;11004;11203;11204;11205;11206;11207;11098;11833;99764;99766;99765;99767;99768;99769;99770;99771;99772;99773;99774;99775;99777;99776;99779;99778;99781;99780;99782;99783;99784;99785;99786;99787;99788;99789;99790;99791;99792;99793;99795;99794;99796;99797;99799;99798;99801;99800;99802;99803;99804;99805;99806;99807;99808;99809;99811;99810;99813;99812;97416;99815;99814;99816;99817;99818;99819;99820;99821;99822;99823;99824;99825;99826;99827;99828;99829;99830;99831;99832;99833;99834;99835;99836;99837;99838;99839;99840;99841;99842;99843;99844;99845;99846;99847;99849;99848;99850;99852;99851;99853;99854;99856;99855;99857;99858;99859;99860;99861;99862;99863;99864;99865;99866;99867;99868;99869;99870;99871;99872;99873;99874;99875;99877;99876;99878;99879;99880;99881;99882;99883;99885;99884;99887;99886;99888;99889;99890;99891;99892;99893;99894;99895;99896;99897;99898;99899;99901;99900;99902;99903;99904;99905;99908;99909;99910;99911;99912;99913;99915;99914;99916;99936;99937;99938;99939;99941;99940;99942;99944;99943;99945;99946;99947;99948;99949;99950;99951;99953;99952;100684;100683;100685;100686;100687;100688;100811;100812;100689;100690;100691;100692;100693;100695;100694;100696;100697;100698;100699;100700;100702;100701;100813;100722;100814;100723;101848;101306;101307;101849;101851;101850;101308;101309;101852;101310;101853;101311;101854;101855;101312;101313;101314;101315;102480;102479;102221;102222;102224;102223;102225;102227;102226;102228;102229;102230;102232;102231;102233;102234;102235;102236;102237;102238;102239;102240;102241;102243;102242;102244;102245;102997;102998;102999;103000;103002;103001;103003;103004;103006;103005;103008;103007;103010;103009;103012;103011;103013;103014;103015;103016;103017;103018;103019;103020;103021;103023;103022;103024;103025;103027;103026;103029;103028;103030;103031;103032;103033;103034;103055;103056;103057;103059;103060;103058;103061;103062;103064;103063;103065;103066;103067;103068;103069;103070;103071;103072;103073;103074;103075;103076;103077;103078;103079;103080;103082;103081;103084;103083;103085;103086;103087;103088;103733;103734;103735;103736;103737;103738;103739;103740;103820;103821;104576;104577;103878;103879;104578;103937;103938;103939;103940;103941;103942;104277;104278;104280;104279;104281;104282;104283;104285;104284;104286;104287;104288;104289;104290;104292;104291;104293;104294;104296;104295;104325;104326;104327;104328;104329;104331;104330;104333;104332;104334;104463;104902;104904;104903;104905;104906;104907;104909;104908;104910;104911;105164;104912;104913;104914;104915;104916;104917;104918;104919;104920;104921;104923;104922;104925;104924;104926;104927;104928;104930;104929;104932;104931;104934;104933;104935;105046;105301;105047;105303;105302;105304;105305;105306;105307;105308;105309;105310;105311;105312;105314;105313;105315;105316;105318;105317;105319;105320;105321;105322;105618;105323;105655;106145;106144;106146;106148;106147;106150;106149;106151;106152;106153;106154;106155;106156;106157;106158;106159;106160;106161;106162;106163;106164;106165;106166;106167;106402;106404;106403;106406;106405;106760;106761;106763;106762;106764;106766;106765;106767;106768;106769;106770;106771;106772;106773;106774;106775;106776;106778;106777;108455;108456;108457;108458;108459;108460;108461;108462;108463;108464;108466;108465;108468;108467;108469;108470;108471;108472;108473;108474;109470;108475;109471;109472;109473;109474;109475;109476;109478;109477;109479;109480;109481;109482;109483;109485;109484;109487;109486;109488;109489;109490;109491;109492;109493;109494;109495;109497;109496;109498;109499;109500;109501;109502;109503;109504;109505;109506;109507;109508;109509;109510;109512;109511;109513;109514;109515;109619;109516;109620;109813;110126;110127;110128;110129;110130;110131;110132;110134;110133;110136;110135;110137;110139;110138;110141;110140;110142;110143;110144;110145;110146;110148;110147;110149;110150;110151;110152;110153;110155;110154;110617;110156;110730;110731;110732;110733;110734;110735;110737;110736;110738;110739;110740;110741;110742;110743;110744;110745;110746;110747;110748;110825;110826;110827;110828;110841;110842;110843;110844;110845;110846;110847;110848;110849;110851;110850;110852;110853;110854;110855;110856;110857;110858;110859;110860;110861;110862;110863;110864;110865;110866;110867;110868;110869;110870;110871;110872;110873;110874;110875;110876;110877;110879;110878;110881;110880;110882;110883;111182;111183;111184;111643;111644;111645;111646;111647;111648;111649;117540;111650;117541;117542;117543;117544;117545;117546;117547;117548;117549;117550;117551;117552;117553;117555;117554;117557;117556;117559;117558;117560;117561;117562;117563;117564;117565;117566;117567;117568;117569;117570;117571;117572;117573;117574;117576;117575;117577;117578;117579;117580;117581;117582;117583;117584;117430;117585;112237;112238;117586;117725;117726;117728;117727;117729;117731;117730;117732;117733;117734;117735;117736;117738;117737;117739;117740;117741;118049;117742;117744;117743;117745;117746;117747;117748;117749;117751;117750;117752;117753;117754;117755;117757;117756;117758;117759;117760;117761;117762;118366;117763;118367;118411;118412;118413;118414;118415;118417;118416;118418;118419;118420;118421;118422;118423;118424;118426;118425;118427;118428;118430;118431;118432;118433;118429;118434;118435;118436;118437;118438;118439;118440;118736;118738;118739;118740;118737;118741;118742;118743;118755;118756;118758;118757;118759;118760;118761;119059;119060;119061;119063;119064;119065;119062;119066;119067;119068;119070;119071;119072;119069;119073;119564;119074;119513;119514;119515;119516;119517;119518;119519;119520;119521;119522;119523;119525;119524;119526;119528;119529;119527;119530;119531;119532;119533;119565;119896;119897;119898;119899;119900;119901;119902;119903;119904;119906;119907;119905;119908;119909;119910;119911;119912;119914;119913;119915;119916;119917;119918;119919;119920;119921;119922;119923;119924;119925;119927;119928;119926;119929;119930;119931;119932;119933;119934;119935;119936;120974;120990;120991;120992;120994;120995;120993;120996;120998;120997;120999;121000;121001;121002;121275;121277;121278;122166;121276;122167;122168;122169;122171;122172;122170;122173;122174;122202;122201;122204;122203;122205;122206;122207;122209;122210;122208;122211;122213;122212;122214;122215;122216;122217;122373;122218;122375;122376;122374;122377;122378;122379;122380;122381;122382;122383;122384;122385;122386;122387;122388;122414;122459;122687;122689;122690;122688;122691;122692;122694;122693;122695;122696;122697;122698;122700;122699;122770;122701;122703;122702;122704;122705;122706;122707;122708;122709;122710;123102;123103;123104;123105;123106;123107;123108;123109;123110;123111;123112;123113;123114;123115;123116;123117;123119;123120;123118;123121;123583;123584;123585;123586;123588;123587;123589;123591;123590;123592;123593;123594;123595;123596;123597;123598;123599;123601;123600;123602;123603;123604;123606;123605;123608;123607;123609;123610;123611;123612;123613;123614;123616;123615;123617;123618;123619;123620;123621;123622;123623;123625;123624;123626;123628;123627;123629;123630;123843;123844;123845;123846;123848;123847;123849;123850;123851;123852;123853;123854;123855;123856;123857;123858;123859;123860;123861;123863;123862;123864;123865;123867;123866;123868;123869;123870;123871;123872;123873;123874;123875;123876;123877;123878;123879;123880;123881;123882;123883;123884;123886;123885;123887;123888;123889;123890;123892;123891;123893;123894;123895;123896;123897;123898;123899;123900;123901;123902;123903;123905;123904;123906;123907;123908;123909;123910;123911;123912;123913;123768;123697;123698;123699;123700;123701;123702;123703;123705;123706;123707;123708;123704;123709;123710;123711;123713;123712;123714;123715;123716;123717;123718;123720;123721;123719;123722;123723;123724;123725;123726;123727;123728;123729;123730;123732;123733;123731;123734;123736;123737;123738;123735;123739;123741;123740;123742;123743;123744;123745;123746;124375;124376;124377;124378;124380;124379;124381;124382;124383;124384;124385;124386;124387;124388;124389;124391;124392;124390;124393;124395;124394;124396;124397;124398;124431;124430;124432;124433;124435;124434;124436;124438;124439;124437;124440;124441;124442;124444;124443;124445;124446;124447;124448;124449;124450;124610;124612;124611;124613;124614;124615;124616;124617;124618;124619;124621;124620;124622;124624;124625;124626;124623;124627;124628;124629;124630;124631;124633;124632;124634;124635;124636;124729;124730;124731;124732;124733;124734;124735;124736;124737;124738;124739;124740;124741;124742;124743;124744;124745;124746;124747;124748;124749;124751;124750;124878;124879;124877;124881;124880;124882;124883;124884;124885;124886;124887;124888;124889;124890;124891;124892;124893;124895;124896;124894;124897;124899;124898;124900;124901;124902;124903;124904;124905;124906;124907;124909;124908;124910;124912;124913;124914;124911;124915;124916;124918;124919;124917;124920;124921;124922;124924;124923;124925;124926;124928;124927;124930;124929;124931;124933;124932;124934;124936;124935;124938;124937;124939;124940;124941;124943;124944;124942;124945;124946;124947;124948;124949;124950;124951;124952;124953;124954;124955;124956;124957;124958;124959;124960;124961;124962;124963;124964;124966;124967;124968;124969;124965;124791;124792;124793;124794;124795;124796;124797;124798;124800;124799;124801;124802;124803;124804;124805;124806;124808;124807;124809;124810;124811;124813;124814;124812;124815;124816;124817;124818;124819;125100;124821;124820;124822;124823;124824;124825;124826;124827;124828;124829;124830;125301;124831;124832;124833;124834;125101;124835;124836;124837;124970;124971;124972;124974;124973;124975;124976;124977;124979;124978;124980;124981;124983;124982;124984;124985;124986;124987;124989;124990;124991;124992;124993;124994;124995;124996;124997;124988;124998;124999;125000;125001;125002;125003;125004;125005;125006;125007;125008;125009;125102;125010;125103;125279;125488;125489;125490;125491;125492;125493;125494;125496;125495;125497;125498;125499;125500;125501;125502;125504;125505;125506;125503;125507;125508;125509;125511;125512;125510;125513;125514;125515;125516;125518;125519;125517;125521;125520;125523;125522;125524;125526;125525;125527;125528;125529;125530;125556;125557;125558;125559;125561;125560;125562;125563;125565;125564;125566;125567;125568;125569;125570;125571;125572;125573;125574;125576;125575;125577;125578;125579;125581;125580;125583;125582;125584;125585;125586;125587;125588;125752;125753;126267;126266;126268;126269;126270;126271;126272;126273;126274;126276;126275;126277;126278;126279;126280;126281;126282;126284;126283;126285;126286;126287;126289;126288;126290;126292;126293;126291;126294;126295;126296;126298;126299;126415;126297;126416;126417;126418;126419;126420;126421;126422;126929;126423;126424;126425;126427;126426;126428;126429;126430;126431;126432;126433;126535;126536;126537;126538;126539;126540;126541;126542;126544;126543;126545;126546;126547;126548;126549;126551;126552;126550;126554;126553;126555;126556;126843;126844;126845;126846;126847;126848;126849;126850;126851;126852;126930;126853;126854;126855;126856;126858;126857;126860;126859;126862;126861;126863;126864;126866;126865;126867;126868;126869;126870;126871;126872;126873;126874;126875;126876;126877;126878;126879;126881;126880;126931;126932;126933;126934;126935;126997;126999;126998;127000;127001;127002;127003;127004;127005;127006;127007;127008;127009;127010;127011;127012;127014;127013;127015;127016;127017;127018;127019;127020;127021;127022;127023;127024;127026;127025;127028;127027;127029;127564;128086;128087;128088;128089;128090;128091;128092;128093;128094;128095;128096;128097;128099;128098;128100;128101;128103;128102;128104;128105;128184;128183;128185;128186;128187;128188;128189;128190;128191;128192;128193;128194;128196;128195;128197;128198;128200;128199;128201;128202;128203;128204;128888;128889;128890;128891;128892;128893;128894;128895;128896;128897;128899;128898;128900;128901;128902;128903;128904;128906;128905;128907;128909;128908;128911;128910;128912;128913;128915;128914;128916;128917;128918;128919;128920;128922;128921;128923;128796;128924;128798;128797;128800;128799;128801;128802;128803;128804;128805;128806;128807;128808;128809;128810;128811;128812;128813;128814;128815;128816;128817;128818;128819;128820;128822;128821;128823;128824;128825;128827;128826;128828;128829;128830;128831;128832;128833;128835;128834;128836;128837;128838;128839;128841;128840;128925;128842;128843;128844;128926;128927;128928;128929;128930;128931;128932;128933;128934;128935;128936;128937;128938;128939;128941;128940;128942;128944;128943;128945;128946;128947;128948;128950;128949;128951;128952;128953;128954;128955;128956;128957;128958;128960;128959;129115;129117;129116;129118;129119;129121;129120;129122;129123;129124;129125;129126;129128;129127;129129;129130;129131;129132;129133;129134;129135;129173;129174;129175;129176;129177;129179;129178;129180;129181;129182;129184;129183;129185;129186;129136;129187;129188;129189;129190;129191;129192;129193;129195;129194;129196;129197;129198;129199;129200;129202;129201;129203;129204;129205;129207;129206;129209;129208;129211;129210;129213;129212;129214;129215;129216;129217;129218;129220;129219;129221;129222;129223;129224;129225;129226;129227;129228;129229;129231;129230;129233;129232;129234;129235;129237;129236;129238;129239;129240;129242;129243;129244;129245;129246;129247;129241;129248;129250;129249;129251;129252;129253;129254;129255;129257;129256;129259;129258;129260;129428;129261;129429;129430;129431;129432;129433;129434;129435;129436;129437;129438;129439;129441;129440;129442;129443;129444;129445;129446;129448;129447;129449;129450;129451;129453;129452;129454;130805;130806;130807;130808;130809;130810;130811;130812;130813;130814;130815;130816;130817;130818;130819;130820;130821;130822;130823;130825;130824;130826;130828;130827;130829;130831;130832;130830;130833;130834;130835;130836;130837;130838;130839;130841;130840;130842;130843;130844;130845;130846;130847;130848;130849;130851;130850;130852;130853;130855;130854;130856;130857;130858;130859;130860;130861;130862;130863;130864;130865;130866;130867;130868;130869;130870;130871;130872;130874;130873;130876;130875;130877;130879;130878;130880;130882;130881;130637;130883;130639;130638;130640;130641;130642;130643;130644;130645;130646;130647;130649;130648;130650;130651;130652;130653;130655;130654;130657;130656;130658;130659;130660;130661;130662;130663;130664;130665;130666;130667;130668;130669;130670;130671;130672;130673;130674;130675;130676;130677;130678;130679;130680;130681;130682;130684;130683;130685;130686;130687;130688;130690;130689;130691;130693;130692;130694;130695;130696;130697;130698;130699;130700;130701;130703;130702;130705;130704;130706;130707;130708;130709;130710;130711;130712;130713;130714;130715;130716;130717;130718;130719;130720;130721;130722;130723;130724;130725;130726;130727;130728;130729;130730;130732;130731;130733;130734;130735;131341;131342;131343;131344;131345;131346;131347;131348;131349;131350;131351;131352;131353;131354;131355;131356;131357;131358;131359;131360;131361;130736;131363;131362;131365;131364;131366;131368;131367;131369;131370;131371;131372;131472;131473;131474;131475;131476;131477;131478;131479;131480;131481;131482;131483;131485;131484;131486;131487;131488;131489;131490;131491;131492;131493;131495;131494;131497;131496;131499;131498;131500;131501;131502;131504;131503;131505;131506;131507;131508;131509;131510;131511;131513;131512;131515;131514;131517;131516;131845;131846;131847;131848;131850;131849;131851;131852;131854;131853;131855;131856;131857;131858;131859;131860;131861;131863;131862;131865;131864;131866;131867;131868;131869;131870;131871;131872;131874;131873;131876;131875;131877;131878;131879;131880;131881;131882;131883;131884;131886;131885;131887;131889;131888;131890;131891;131893;131892;131895;131894;131896;131897;131898;131899;131900;131901;131902;131903;131904;131905;131906;131908;131907;131909;131910;131911;131912;131913;131577;131576;131578;131579;131581;131580;131582;131583;131584;131586;131585;131587;131588;131589;131590;131591;131592;131593;131594;131595;131596;131597;131598;131599;131600;131601;131602;131603;131604;131605;131606;131607;131608;131609;131610;131611;131612;131613;131614;131615;131914;131616;131617;131618;131619;131621;131620;131622;131623;131624;131625;131626;131627;131628;131629;131630;131631;131632;131633;131634;131635;131637;131636;131638;131640;131639;131642;131641;131643;131644;131645;131646;131647;131649;131648;131650;131651;131652;131653;131654;131655;131656;131657;131658;131659;131660;131661;131662;131663;131664;131666;131665;131667;131669;131668;131671;131670;131673;131672;131674;131797;131796;131798;131799;131800;131801;131802;131803;131804;131806;131805;131807;131808;131809;131810;131811;131812;131813;131814;131815;131816;131817;131818;131819;131820;131821;131822;131824;131823;131825;131827;131826;132271;132272;132273;132274;132276;132275;132277;132278;132279;132280;132281;132282;132283;132284;132285;132286;132287;132288;132289;132291;132290;132292;132293;132294;132295;132296;132297;132298;132299;132300;132301;132302;132121;132122;132123;132124;132125;132126;132127;132128;132130;132129;132132;132131;132133;132134;132135;132136;132137;132138;132139;132140;132142;132141;132143;132144;132145;132146;132147;132148;132149;132150;132151;132152;132153;132154;132155;132157;132156;132158;132159;132160;132161;132162;132163;132164;132165;132166;132167;132168;132169;132170;132171;132172;132173;132174;132175;132176;132177;132178;132179;132180;132181;132182;132183;132185;132184;132186;132187;132188;132189;132190;132191;132192;132193;132195;132194;132196;132197;132198;132199;132200;132201;132202;132203;132205;132204;132206;132207;132209;132208;132210;132211;132212;132213;132214;132215;132216;132217;132218;132219;132220;132353;132354;132355;132356;132357;132358;132359;132360;132361;132363;132362;132364;132365;132366;132367;132368;132369;132370;132371;132372;132373;132374;132375;132376;132377;132378;132379;132594;132595;132596;132597;132598;132599;132600;132602;132601;132604;132603;132606;132607;132605;132608;132610;132609;132611;132612;132613;132614;132615;132616;132617;132618;132619;132620;132621;132622;132623;132624;132625;132626;132627;132628;132629;132631;132632;132794;132630;132795;132797;132796;132798;132799;132800;132801;132803;132802;132804;132805;132806;132807;132809;132810;132808;132811;132812;132813;132814;132816;132815;132818;132817;132819;132820;132821;132822;132823;132824;132825;132826;132827;132828;132829;132830;132831;132832;132833;132834;132835;132836;132837;132838;132839;132840;132841;132842;132843;132844;132845;132846;133744;133895;133896;133897;133898;133899;133900;133901;133902;133903;133904;133905;133906;133907;133908;133909;133910;133911;133912;133914;133913;133915;133916;133917;133918;133919;133920;133921;133922;133923;133924;133925;133926;133928;133927;133930;133929;133931;133932;133933;133934;133935;133936;133937;133938;133939;133940;133974;133975;133976;133977;133978;133979;133980;133981;133982;133983;133984;133985;133987;133986;133988;133989;133990;133991;133993;133992;133995;133994;133996;133997;133998;133999;134000;134001;134002;134003;134004;134005;134006;134007;134008;134010;134009;134011;134012;134013;134014;134016;134015;134018;134017;134019;134476;134387;134477;134478;134480;134479;134481;134482;134483;134484;134485;134487;134486;134488;134489;134490;134491;134492;134493;134495;134494;134496;134497;134498;134499;134500;134501;134502;134503;134504;134505;134506;134507;134508;134509;134510;134511;134512;134513;134514;134515;134516;134517;134518;134519;134520;134521;134522;134523;134525;134526;134524;134527;134528;134529;134530;134532;134533;134531;134534;134535;134536;134537;134538;134539;134540;134541;134542;134543;134544;134545;134546;134547;134548;134549;134551;134550;134552;134553;134554;134555;134734;134733;134736;134735;134737;134738;134739;134740;134741;134742;134743;134744;134745;134746;134747;134748;134749;134777;134778;134779;134781;134780;134783;134782;134785;134784;134786;134787;134788;134789;134790;134791;134792;134793;134845;134795;134796;134794;134797;134798;134799;134800;134801;134802;134803;134804;134805;134806;134807;134808;134809;134810;134811;134812;134813;134814;134815;134816;134817;134819;134818;134820;135117;135118;135119;135120;135121;135122;135123;135124;135125;135126;135128;135127;135130;135129;135132;135131;135133;135134;135135;135136;135138;135137;135140;135139;135141;135143;135142;135145;135144;135146;135147;135149;135148;135151;135150;135152;135153;135154;135155;135157;135156;135158;135501;135502;135503;135504;135505;135506;135507;135508;135509;135510;135511;135512;135514;135513;135515;135516;135518;135517;135520;135521;135519;135522;135523;135524;135526;135527;135525;135528;135530;135529;135531;135532;135533;135534;135535;135536;135537;135538;135539;135540;135542;135541;135544;135543;135545;135546;135547;135548;135549;135550;135551;135552;135553;135554;135555;135556;135557;135558;135560;135559;135561;135562;135563;135564;135565;135566;135568;135569;135570;135567;135571;135605;135606;135607;135608;135609;135610;135611;135612;135613;135615;135614;135616;135617;135618;135619;135620;135621;135622;135623;135624;135625;135626;135627;135629;135630;135628;135631;135632;135633;135634;135635;135636;135637;135638;135639;135640;135641;135642;135643;135644;135645;135646;135647;135648;135649;135650;135651;135652;135653;135654;135655;135656;135657;135658;135659;135660;135661;135662;135734;135735;135736;135737;135738;135739;135740;135741;135742;135744;135743;135745;135746;136217;136218;136219;136221;136220;136222;136223;136224;136226;136225;136227;136228;136229;136231;136230;136232;136233;136234;136235;136236;136237;136238;136240;136239;136241;136243;136242;136244;136245;136246;136247;136248;136249;136250;136251;136253;136252;136254;136255;136256;136257;136258;136259;136260;136261;136262;136263;136264;136266;136265;136268;136267;136269;136270;136271;136272;136273;136274;136275;136277;136276;136278;136854;136855;136856;136857;136858;136860;136859;136861;136862;136863;136864;136865;136867;136866;136868;136869;136871;136870;137012;137014;137013;137015;137016;137017;137018;137020;137019;137021;137022;137023;137025;137024;137026;137028;137027;137030;137029;137031;137032;137033;137034;137035;137036;137461;137462;137463;137464;137465;137466;137467;137468;137469;137470;137471;137472;137473;137474;137475;137476;137477;137478;137479;137480;137481;137482;137483;137484;137485;137486;137488;137489;137490;137491;137487;137492;137493;137494;137495;137497;137496;137498;137499;137500;137501;137502;137503;137505;137504;137506;137507;137508;137510;137509;137511;137512;137513;137514;137515;137517;137518;137516;137519;137520;137521;137522;137523;137524;137525;137526;137527;137528;137794;137795;137796;137797;137798;137799;137800;137801;137802;137803;137804;137805;137806;137807;137808;137809;137810;137811;137812;137813;137814;137815;137816;137817;137818;137931;137933;137932;137934;137935;137936;137937;137938;137939;137940;137941;137942;137943;137944;137945;137946;137947;137948;137950;137949;137952;137951;137953;137954;137955;137957;137956;137959;137958;137961;137960;137963;137962;137964;137965;137967;137966;137968;137969;137970;137971;137972;137973;137974;137975;137976;137977;137978;137979;137980;137981;137982;137983;137984;137985;137986;137987;137988;137989;137990;137991;137992;137993;137994;137995;137996;137997;137998;137999;138000;138001;138002;138003;138004;138005;138006;138007;138008;138009;138010;138011;138012;139124;139125;139126;139127;139128;139129;139130;139131;139132;139134;139133;139135;139136;139137;139138;139140;139139;139141;139142;139143;139144;139145;139146;139148;139147;139149;139150;139152;139151;139154;139153;139155;139156;139157;139158;139159;139160;139161;139741;139742;139743;139938;139939;139940;139941;139942;139943;139944;139945;139946;139947;139948;139949;139951;139950;139953;139952;139955;139954;139957;139956;139958;139959;139960;139961;139963;139962;139964;139965;139966;139967;139968;139969;139970;139971;139973;139972;139975;139974;139977;139976;139978;139979;139980;139981;139982;139984;139983;139985;139986;139987;139988;139989;139990;139991;139992;139993;139994;139996;139995;139997;139999;139998;140000;140001;140002;140003;140004;140005;140006;140007;140009;140008;140010;140011;140012;140013;140014;140015;140016;140017;140136;140137;140138;140139;140140;140142;140141;140143;140144;140145;140146;140147;140148;140149;140150;140151;140152;140153;140154;140155;140156;140157;140158;140159;140160;140161;140162;140163;140164;140165;140166;140167;140317;140318;140319;140320;140321;140322;140323;140324;140325;140326;140327;140329;140328;140330;140331;140332;140333;140334;140335;140336;140337;140338;140339;140340;140341;140342;140343;140344;140345;140346;140347;140348;140349;140350;140351;140352;140353;140354;140355;140356;140357;140359;140358;140360;140939;140940;140941;140942;140943;140944;140945;140946;140947;140948;140949;140950;140951;140952;140953;140954;140956;140955;140958;140957;140960;140959;140961;140963;140964;140962;140965;140966;140967;140968;140969;140970;140971;140973;140972;140974;140975;140976;140977;140978;140979;140980;140981;140982;140983;140984;140985;140987;140986;140988;140989;140990;140991;140992;140993;140994;140995;140996;140997;140998;140818;140819;140820;140821;140822;140823;140824;140825;140826;140827;140828;140829;140830;140831;140832;140833;140835;140834;140836;140837;140838;140840;140839;140842;140841;140843;140844;140846;140845;140847;140848;140849;140850;140851;140852;140853;140854;140855;140856;140858;140857;140859;140860;140862;140861;140864;140863;140865;140866;140867;140868;140869;140870;140871;140872;140873;140874;140875;140876;140877;140878;140879;140880;140881;140882;140883;140884;140885;140886;140887;140889;140888;140890;140891;140892;140893;140894;140895;140896;140897;140898;140899;140900;140901;140902;140903;140904;140905;140906;140907;140908;140910;140909;140911;140912;140914;140913;140915;140916;140999;140917;141000;141001;141002;141003;141004;141005;141006;141007;141008;141316;141324;141319;141315;141337;141332;141320;141326;141323;141333;141321;141338;141336;141328;141330;141329;141327;141325;141335;141339;141334;141380;141331;141750;141377;141715;141768;141675;141647;141646;141752;141718;141737;141671;141670;141722;141765;141705;141682;141665;141726;141758;141724;141700;141721;141655;141674;141706;141658;141766;141660;141676;141659;141645;141668;141769;141712;141731;141742;141749;141672;141745;141697;141739;141678;141763;141693;141733;141666;141730;141692;141684;141714;141717;141751;141740;141764;142083;141878;142074;142098;142096;142113;142092;142106;142062;142122;142100;142075;142073;142124;142118;142125;142064;142084;142117;142066;142109;142070;142132;142127;142067;142072;142087;142121;142102;142111;142085;142093;142101;142130;142129;142069;142134;142123;142089;142063;142103;142061;142082;142076;142128;142120;142088;142133;142091;142119;142116;142090;142081;142079;142068;142086;142094;142126;142071;142065;142080;142077;142131;142099;142112;142110;142180;142184;142166;142179;142168;142175;142203;142148;142200;142177;142173;142164;142167;142161;142147;142201;142187;142154;142157;142152;142170;142172;142204;142265;142298;142244;142255;142271;142288;142267;142340;142282;142266;142287;142290;142237;142277;142294;142346;142342;142269;142263;142289;142286;142256;142319;142231;142261;142281;142240;142315;142337;142348;142310;142349;142314;142262;142358;142357;142234;142235;142361;142280;142304;143229;142227;142257;142305;142242;142339;142303;142259;142238;142251;142347;142328;142313;142343;142312;142278;142268;142352;142232;142300;142354;142308;142307;142317;142327;142284;142326;142322;142345;142254;142353;142306;142333;142299;142309;142292;142335;142350;142330;142293;142329;142316;142320;142331;142332;142296;142285;142276;142279;142252;142273;142360;142295;142270;142274;142249;142297;142302;142321;142253;142233;142260;142301;142236;142245;142344;142336;142355;142243;142341;142334;142258;142323;142230;142246;142576;142543;142505;142557;142562;142585;142578;142566;142567;142561;142554;142538;142512;142536;142508;142534;142579;142565;142558;142544;142507;142511;142516;142514;142525;142559;142545;142584;142531;142547;142528;142582;142568;142530;142553;143254;143259;143257;143415;143393;143394;143413;143408;143407;143409;143400;143403;143396;143416;143391;143404;143412;143395;143387;143385;143411;143418;143390;143399;143417;143406;143414;143389;143402;144178;144131;144118;144192;144181;144128;144162;144168;144164;144159;144119;144194;144186;144145;144155;144154;144169;144180;144130;144160;144142;144139;144170;144195;144161;144156;144176;144150;144138;144149;144151;144153;144229;144220;144255;144239;144267;144238;144258;144224;144230;144268;144221;144244;144252;144270;144253;144269;144245;144219;144271;144263;144233;144240;144251;144228;144261;144226;144235;144236;144231;144242;144222;144249;144256;144265;144653;144272;144670;144668;144698;144685;144686;144664;144655;144687;144697;144682;144661;144663;144665;144675;144676;144674;144662;144660;144677;144678;144667;144656;144695;144699;144690;144680;144693;144688;144684;144683;144689;144700;144703;144702;144671;144659;144692;144715;144731;144722;144734;144718;144727;144728;144726;144716;144741;144719;144742;144724;144720;144739;144721;144831;144829;145099;145137;145188;145116;145210;145207;145184;145103;145202;145168;145145;145162;145209;145160;145182;145211;145159;145098;145216;145111;145201;145147;145163;145161;145100;145212;145129;145213;145127;145158;145166;145180;145206;145113;145125;145183;145173;145106;145151;145174;145102;145134;145157;145176;145128;145155;145146;145130;145153;145135;145117;145186;145104;145139;145148;145171;145144;145170;145185;145133;145169;145177;145101;145110;145189;145109;145121;145140;145215;145143;145136;145203;145105;145214;145118;145709;145782;145773;145777;145754;145737;145730;145770;145761;145715;145733;145749;145712;145753;145752;145721;145726;145741;145764;145719;145732;145756;145774;145744;145757;145731;145734;145779;145743;145718;145742;145766;145778;145738;145750;145771;145713;145785;145783;145748;145745;145717;145727;145740;145755;145723;146151;146182;146121;146179;146160;146138;146147;146152;146110;146158;146178;146157;146128;146159;146154;146190;146167;146193;146140;146108;146149;146175;146181;146153;146120;146161;146172;146112;146177;146131;146124;146168;146123;146180;146114;146186;146117;146176;146118;146183;146115;146113;146107;146126;146116;146188;146164;146127;146136;146139;146109;146189;146134;146142;146132;146165;146143;146150;146169;146148;146173;146185;146171;146246;146236;146252;146218;146239;146217;146230;146235;146229;146263;146226;146255;146225;146227;146222;146240;146219;146253;146245;146237;146254;146224;146231;146261;146250;146228;146249;146262;146256;146232;146258;146259;146238;146251;146243;146220;146257;146732;146221;146678;146710;146767;146764;146680;146647;146742;146734;146697;146702;146753;146741;146644;146738;146713;146754;146765;146655;146659;146686;146687;146705;146646;146650;146671;146668;146744;146704;146739;146641;146701;146651;146707;146696;146752;146708;146660;146675;146681;146709;146731;146743;146664;146663;146684;146672;146727;146728;146645;146703;146740;146733;146747;146690;146642;146698;146652;146692;146682;146711;146656;146694;146760;146761;146706;146679;146719;146722;146661;146714;146674;146712;146723;146762;146693;146730;146748;146717;146720;146670;146657;146758;146721;146695;146759;146716;146648;146756;146755;146766;146658;146654;146724;146683;146735;147480;147546;147587;147542;147530;147505;147455;147492;147608;147477;147588;147536;147456;147582;147471;147583;147430;147552;147513;147539;147614;147499;147613;147600;147596;147487;147453;147526;147540;147431;147457;147423;147574;147472;147531;147462;147607;147533;147549;147479;147577;147573;147580;147557;147527;147468;147478;147458;147547;147422;147520;147516;147427;147503;147541;147448;147535;147442;147428;147534;147521;147465;147569;147566;147449;147466;147590;147585;147599;147538;147598;147446;147603;147474;147493;147491;147611;147444;147559;147490;147562;147467;147460;147451;147616;147438;147595;147525;147551;147605;147561;147507;147459;147619;147517;147489;147443;147432;147461;147495;147424;147592;147433;147425;147555;147584;147518;147475;147601;147441;147510;147609;147528;147114;147118;147081;147129;147035;147124;147045;147117;147100;147042;147029;147126;147088;147074;147046;147125;147102;147049;147080;147054;147064;147132;147131;147105;147092;147028;147041;147057;147040;147119;147107;147061;147079;147122;147055;147066;147130;147104;147128;147110;147103;147089;147043;147084;147069;147032;147038;147047;147065;147095;147083;147094;147077;147090;147109;147031;147111;147052;147112;147093;147063;147123;147133;147044;147071;147059;147097;147073;147053;147037;147056;147120;147113;147039;147085;147075;147051;147033;147072;147062;147096;147058;147078;147070;147115;147127;147048;147025;147076;147121;147099;147036;147067;147082;147101;147106;147034;147091;147108;147086;147581;147560;147473;147578;147615;147504;147604;147470;147543;147508;147488;147594;147602;147445;147553;147589;147512;147486;147610;147572;147434;147567;147593;147439;147501;147440;147550;147483;147514;147522;147537;147426;147496;147556;147485;147494;147482;147565;147506;147617;147497;147509;147481;147523;147476;147670;147672;147668;147666;147686;147664;147683;147679;147690;147681;147673;147702;147703;147674;147669;147696;147693;147676;147677;147694;147701;147699;147689;147665;147692;147675;147698;147671;147667;147691;147687;147684;147678;147700;147682;147695;148067;148077;148043;148050;148046;148055;148082;148057;148062;148059;148084;148060;148047;148073;148075;148041;148065;148079;148083;148049;148044;148056;148076;148052;148058;148074;148069;148086;148078;148063;148042;148061;148071;148054;148068;148064;148048;148081;148070;148040;148576;148589;148582;148630;148634;148618;148580;148628;148620;148597;148631;148638;148596;148626;148605;148611;148625;148619;148612;148585;148598;148608;148601;148607;148613;148602;148583;148595;148633;148575;148635;148629;148577;148627;148586;148624;148637;148603;148579;148622;148587;148609;148604;148621;148584;148617;148591;148592;148581;148616;148578;148593;148640;148590;148632;149116;149096;149165;149161;149102;149107;149097;149175;149197;149176;149190;149130;149153;149154;149147;149095;149144;149182;149124;149137;149177;149155;149178;149171;149187;149140;149148;149166;149186;149104;149115;149173;149110;149141;149157;149156;149114;149134;149111;149183;149158;149149;149131;149200;149098;149109;149118;149117;149170;149125;149184;149194;149202;149132;149198;149129;149169;149099;149143;149100;149201;149136;149168;149167;149160;149163;149159;149139;149120;149128;149188;149122;149123;149108;149105;149119;149146;149204;149196;149112;149101;149106;149162;149142;149126;149121;149127;149133;149181;149189;149145;149164;149150;149193;149199;149192;149172;149151;149138;149191;149565;149588;149583;149615;149625;149563;149622;149582;149559;149552;149601;149576;149597;149543;149531;149607;149551;149556;149532;149595;149623;149544;149561;149638;149591;149626;149632;149538;149618;149575;149585;149624;149540;149619;149631;149593;149599;149586;149617;149604;149587;149610;149606;149574;149581;149620;149608;149547;149578;149621;149630;149592;149546;150167;150192;150170;150216;150166;150227;150181;150174;150208;150210;150189;150214;150197;150225;150224;150221;150198;150175;150184;150211;150217;150231;150229;150178;150187;150226;150179;150186;150204;150219;150176;150169;150213;150177;150202;150209;150195;150185;150188;150207;150205;150199;150247;150250;150263;150278;150277;150265;150254;150271;150264;150252;150268;150253;150258;150249;151039;151031;151045;151052;151043;151040;151048;151032;151042;151026;151033;151041;151034;151029;151046;151036;151047;151038;151035;151161;151171;151174;151169;151180;151172;151157;151182;151185;151167;151175;151166;151173;151178;151177;151176;151179;151162;151156;151184;151183;151160;151186;151170;151168;151163;151159;151164;151181;151165;151158;151232;151257;151256;151221;151249;151228;151250;151258;151242;151245;151223;151237;151244;151233;151235;151227;151229;151236;151222;151263;151259;151231;151220;151248;151262;151246;151230;151238;151225;151260;151247;151234;151251;151241;151252;151255;151243;151240;151239;151253;151254;151261;151226;151224;151297;151344;151324;151294;151336;151314;151325;151307;151348;151330;151299;151326;151331;151349;151332;151323;151337;151327;151320;151295;151342;151316;151312;151311;151313;151317;151296;151319;151340;151334;151329;151321;151350;151341;151303;151338;151322;151335;151302;151310;151345;151328;151300;151304;151347;151339;151305;151315;151301;151298;151308;151343;151318;151306;151351;151309;151333;151415;151388;151902;151392;151896;151420;151421;151399;151895;151408;151398;151381;151402;151382;151400;151419;151397;151409;151894;151389;151414;151416;151404;151898;151417;151379;151391;151384;151385;151405;151394;151395;151418;151380;151411;151387;151412;151376;151401;151393;151390;151383;151406;151386;151413;151378;151396;151403;151568;151556;151544;151537;151560;151563;151538;151536;151565;151562;151548;151534;151549;151547;151558;151535;151552;151533;151564;151541;151543;151570;151545;151561;151551;151555;151550;151540;151569;151553;151559;151566;151542;151539;151546;151567;151554;151768;151557;151782;151788;151769;151773;151776;151766;151785;151774;151779;151767;151783;151787;151781;151772;151777;151784;151786;151789;151780;151770;151771;151775;152336;152309;152343;152279;152334;152321;152295;152303;152274;152324;152302;152308;152319;152331;152294;152289;152340;152314;152275;152328;152338;152330;152304;152316;152284;152345;152293;152276;152299;152296;152337;152310;152342;152290;152326;152277;152339;152317;152313;152292;152286;152305;152287;152311;152285;152315;152280;152333;152281;152323;152307;152298;152306;152301;152344;152278;152282;152329;152325;152320;152341;152312;152300;152332;152318;152327;152322;152291;152283;152297;152335;152408;152400;152409;152396;152403;152399;152404;152397;152407;152402;152405;152406;152401;153064;153067;153052;153084;153058;153070;153049;153048;153079;153085;153076;153053;153063;153071;153054;153057;153075;153080;153078;153081;153086;153068;153059;153065;153082;153066;153055;153077;153050;153051;153056;153060;153357;153069;153262;153289;153333;153346;153318;153339;153313;153328;153314;153276;153298;153287;153295;153270;153338;153280;153311;153264;153323;153342;153319;153290;153281;153312;153275;153305;153348;153301;153355;153279;153292;153316;153302;153273;153268;153272;153359;153299;153320;153354;153271;153260;153300;153340;153315;153358;153329;153324;153308;153332;153331;153297;153347;153349;153343;153327;153309;153353;153307;153261;153321;153330;153293;153288;153326;153266;153360;153306;153344;153282;153325;153263;153274;153304;153283;153317;153294;153322;153334;153337;153286;153296;153352;153267;153335;153350;153345;153284;153356;153336;153310;153278;153341;153277;153303;153269;153291;153259;153351;153265;153606;153634;153628;153648;153633;153651;153629;153653;153657;153642;153607;153664;153610;153650;153640;153639;153638;153660;153644;153609;153602;153603;153662;153608;153641;153637;153604;153663;153646;153654;153655;153649;153645;153661;153656;153647;153659;153714;153717;155469;153739;153747;153715;153730;153697;153673;153755;153692;153758;153732;153746;153681;153708;153719;153675;153693;153688;153720;153726;153700;153718;153735;153761;153716;153671;153680;153760;153677;153713;153698;153674;153740;153734;153721;153682;153703;153749;153672;153728;153686;153737;153759;153754;153704;153722;153695;153687;153738;153710;153701;153712;153733;153702;153711;153736;153683;153684;153678;153679;153731;153706;153748;153707;153696;153676;153699;153729;153727;153724;153685;153705;153670;153723;154000;154001;154371;154393;154398;154403;154363;154365;154399;154407;154372;154364;154397;154361;154362;154359;154375;154411;154388;154404;154385;154373;154392;154389;154387;154358;154396;154390;154400;154401;154391;154367;154386;154406;154409;154394;154382;154380;154402;154379;154360;154366;154378;154395;154377;154369;154383;154376;154374;154370;153658;154408;154384;154357;154368;154788;154795;154799;154810;154794;154811;154786;154787;154807;154789;154792;154793;154805;154813;154796;154812;154790;154803;154801;154785;154809;154802;154791;154797;154804;154798;154806;154800;155281;155267;155269;155285;155280;155286;155288;155139;155141;155272;155140;155273;155283;155142;155279;155240;155284;155287;155266;155290;155242;155275;155235;155270;155282;155265;155248;155138;155131;155260;155251;155277;155117;155239;155291;155271;155237;155129;155261;155262;155268;155238;155228;155241;155229;155246;155120;155230;155244;155247;155278;155257;155255;155118;155236;155259;155263;155264;155276;155254;155256;155250;155119;155121;155233;155128;155249;155289;155252;155227;155258;155253;155130;155274;155243;155226;155234;155504;155521;155480;155231;155500;155478;155488;155535;155508;155490;155514;155516;155481;155510;155532;155477;155512;155534;155476;155460;155506;155494;155518;155489;155530;155484;155475;155509;155529;155503;155531;155472;155513;155479;155519;155526;155485;155473;155515;155507;155524;155491;155533;155492;155527;155498;155474;155537;155495;155487;155520;155502;155517;155497;155522;155536;155505;155528;155496;155501;155493;155471;155511;155523;155482;155486;155499;155525;155483;156306;156294;156298;156312;156296;156305;156311;156302;156301;156304;156303;156308;156295;156313;156307;156299;156310;156293;156309;156300;156297;156347;156373;156344;156350;156372;156351;156365;156362;156357;156358;156354;156367;156359;156383;156374;156355;156343;156371;156369;156360;156352;156346;156379;156378;156381;156382;156349;156364;156376;156348;156363;156356;156353;156368;156377;156366;156345;156536;156489;156518;156534;156508;156490;156535;156533;156529;156510;156516;156519;156487;156509;156530;156506;156507;156491;156527;156513;156520;156495;156504;156492;156522;156541;156498;156540;156532;156511;156494;156524;156521;156537;156526;156488;156531;156502;156496;156493;156517;156497;156539;156500;156514;156525;156538;156523;156515;156505;156528;156501;156552;156503;156512;156499;156542;156414;156413;156404;156407;156400;156408;156409;156415;156412;156401;156416;156410;156406;156411;156402;156405;156423;156424;156430;156428;156429;156425;156431;156432;156438;156427;157209;157192;157169;157206;157193;157212;157186;157217;157179;157178;157203;157208;157171;157170;157194;157187;157219;157197;157216;157195;157211;157173;157196;157204;157184;157175;157177;157191;157218;157220;157207;157213;157222;157172;157200;157174;157210;157201;157215;157185;157925;157926;157927;157922;157928;157924;157923;157916;157912;157913;157915;157917;157918;157914;157941;157955;157991;157983;157947;157950;157979;157964;158023;157984;157980;157951;157978;158011;157958;158025;158016;157954;158005;157969;157972;157981;158018;158007;157990;157949;157940;158020;158002;158019;158009;157937;157944;158012;157987;158017;157946;158000;157965;158003;157971;157976;157966;158024;157988;157998;158006;157985;157942;157970;158027;157959;157992;157977;158028;158001;158013;157956;157962;157999;157933;158010;157993;157973;157986;157945;158021;157994;157997;157974;158014;157934;157996;157930;157982;157995;158008;157952;157967;158029;157989;157960;157963;157943;158022;157957;157975;157968;157936;157931;158015;157961;158030;157953;158004;157948;158040;158313;158310;158300;158282;158306;158302;158274;158317;158289;158299;158276;158311;158294;158318;158284;158288;158293;158312;158320;158297;158292;158309;158295;158280;158298;158279;158301;158303;158285;158277;158286;158290;158278;158291;158283;158304;158281;158275;158315;158287;158308;158296;158419;158314;158405;158399;158421;158413;158374;158426;158432;158396;158422;158365;158424;158397;158423;158369;158394;158407;158412;158373;158428;158379;158382;158391;158388;158434;158372;158371;158409;158408;158406;158414;158363;158410;158385;158431;158384;158393;158398;158376;158427;158362;158386;158420;158416;158370;158411;158380;158381;158400;158425;158377;158404;158418;158401;158417;158387;158367;158378;158375;158364;158366;158493;158482;158476;158477;158491;158484;158469;158465;158483;158472;158481;158480;158486;158485;158462;158470;158478;158466;158487;158468;158490;158461;158479;158532;158533;158526;158553;158552;158529;158538;158524;158534;158548;158550;158523;158551;158531;158536;158530;158525;158544;158547;158540;158539;158542;158541;158543;158537;158535;158522;158545;158549;158527;158546;158528;159104;159082;159094;159081;159080;159084;159085;159101;159095;159102;159086;159093;159096;159087;159083;159091;159103;159089;159099;159100;159088;10003;10002;11275;10004;11319;11509;10585;11880;11854;11855;11881;15405;11166;10957;10522;11155;11558;11417;10988;10005;15553;10716;10006;10794;10442;11101;11085;11221;111845;121646;111846;121647;121648;121649;121650;121651;121652;121653;121654;111847;121655;121656;121657;111848;121658;121659;111849;121660;121661;121662;111850;121663;121665;121664;111851;121666;111852;121667;121668;121669;111853;121670;111854;121671;111855;121672;121673;111856;121674;111857;111858;121675;111859;121676;121677;121678;111860;121679;121680;111861;111862;121681;121682;121683;121684;121685;111863;121686;111864;121687;121688;121689;121690;111865;121691;121692;121693;121694;111866;121695;121696;111867;121697;111868;121698;111869;121699;111870;121700;121701;121702;121703;121704;111871;121705;111872;121706;121707;121708;121709;121710;111873;121711;121713;121712;111874;121714;121715;121716;121717;111875;121718;121719;121720;111876;111877;121721;121722;111878;121724;121723;121725;111879;121726;121727;111880;121728;111881;121729;111882;121730;111883;121731;121732;111884;121733;111885;121734;111886;121735;121736;111887;111888;121737;121738;121739;121740;111889;121741;121742;121743;121744;121745;121746;121747;111890;121749;121748;121750;121751;111891;121752;121753;111892;111893;121754;121756;121755;121757;121758;121759;111894;121760;121761;121762;121763;121764;111895;121765;111896;121766;111897;111898;121767;111899;121768;121769;121770;111900;121771;121772;121773;121774;121775;111902;111901;121776;121777;121778;111903;121779;121780;121782;121781;111904;121783;121785;121784;121787;121786;121788;111905;121789;121790;111906;121791;121792;121793;111907;121794;121795;111908;121796;111909;121797;111910;121798;121799;121800;111911;121801;111912;111913;121802;111914;121803;111915;121804;111916;121805;121806;111917;111918;121807;111919;121808;121809;111920;121810;121811;111921;121812;111922;121813;111923;121814;111924;121815;111925;121816;111926;121817;111927;121818;121819;111928;111929;121820;111930;121822;121821;121823;121824;121825;121826;121827;121828;121829;121830;121831;111931;121832;121833;111932;121834;121835;111933;121836;121837;111934;121838;111935;121839;111936;121840;111937;121841;111270;111271;121842;111272;121843;111273;121844;111274;121845;121846;111275;121848;121847;111276;121849;121850;111277;121851;111938;121852;111939;121853;111940;121854;111941;121855;111942;121856;111943;121857;111944;121858;121859;111945;121860;111946;121861;121862;121863;121864;121865;121866;121867;111947;121868;111948;121869;111949;121870;121871;121872;121873;111950;121874;121875;121876;112034;121877;121878;112221;121879;121880;121881;121882;112223;121883;121884;117336;121885;117396;121886;121887;117633;121888;117637;121889;117881;121890;118208;121891;118494;121892;121893;121894;121895;121896;121897;119749;121899;121898;121900;111278;121901;121902;121903;121904;111279;121905;111280;121906;111281;121907;121908;111282;121909;111283;121910;121911;121912;111284;121913;111285;121914;111286;121915;121916;121917;121918;121919;111287;121920;121921;121922;111288;121923;111289;121924;111290;121925;111291;121926;111292;121927;121928;111293;121929;121930;111294;121931;111295;121932;121933;111296;111297;111298;121934;121935;121936;121937;121938;121939;111299;121940;111300;121941;121942;121943;111301;111302;121944;121945;111303;121946;111304;121947;121948;111305;121950;121949;121951;111306;121952;111307;121953;111308;121954;121955;111309;121956;121957;121958;111310;121959;111951;121961;121960;111952;121962;111953;111954;121963;111955;121964;121965;111956;121966;111957;111958;121967;121968;111959;121969;121970;111960;121971;121972;121973;111961;121974;111962;121975;111963;121976;121977;111964;121978;121979;112062;121980;121981;112035;121982;121983;112224;121984;121985;121986;121987;112220;121988;112222;121990;121989;117399;117397;121991;121992;121993;117634;121994;117638;121995;118209;119423;121996;121997;118308;121998;121999;122000;122001;122002;122003;122004;122005;122006;122007;122008;122009;119753;122010;119750;122011;122012;122013;122014;122015;122016;122017;122018;122019;122020;122021;122022;122898;122899;122900;122901;122902;122903;122904;122905;133296;133297;133298;133299;133300;122894;122920;122895;122921;122922;122923;122924;122925;122926;125161;125162;125156;125157;125158;125159;125160;125155;125084;125085;125086;125088;125089;124862;124863;124864;124865;124866;124868;124867;124869;124870;125083;125400;125402;125401;125403;126120;126121;126122;126124;126123;126194;126195;126196;126197;126198;126199;126200;126201;126202;126204;126203;126190;126205;126185;126186;126187;126188;126189;126176;126177;126178;126478;126470;126472;126471;126955;126954;128166;128167;128168;128169;128170;128171;128172;128173;128163;128164;128165;128758;128726;128727;128759;128709;128710;129294;129293;129783;129784;129785;129786;129787;129789;129788;130109;130108;129681;129682;129683;129685;129684;129686;129687;132521;132522;132523;132524;132525;132527;132526;132528;132519;132520;132695;132694;132696;132963;132964;132965;132966;132967;132968;132969;122023;122024;122025;122026;122027;122028;122030;122029;122031;122896;122897;122910;122911;122906;122907;122909;122908;122915;122914;122916;122917;122918;122912;122913;122919;124861;125087;126212;126213;126214;126215;125075;126216;125076;125077;125078;125079;125080;125081;125082;124680;124681;125393;125394;125395;125396;125398;125397;125399;126209;126210;126211;126179;126180;126181;126182;126106;126107;126108;126109;126110;126473;128174;128714;128175;128715;128717;128716;128718;128719;128720;128721;128722;128723;128711;128712;128713;128734;128735;128736;128737;128738;129295;129296;129689;129690;129691;129692;129693;129688;130114;130115;130116;130117;130118;130107;130203;130204;130205;130206;131125;132540;132541;132542;132544;132545;132546;132543;132537;132538;132531;132539;132532;132533;132534;132535;131763;132536;132677;132970;132972;132971;132973;132974;132975;132976;132977;132978;126377;126376;126378;126379;126380;126111;126112;126113;126114;126116;126115;126117;126206;126208;126207;126192;126191;126193;126183;126474;126184;128151;128152;128153;128154;128155;128156;128157;128158;128159;128160;128161;128162;128729;128739;128730;128731;129102;128732;128733;129103;128728;129678;129679;129680;129164;129163;129165;130124;130125;130126;130112;130111;130110;130113;130120;130119;130121;130122;130123;130101;130102;130103;130104;130105;130106;132589;132529;132530;131762;133227;133061;132979;133062;132980;132982;132981;132983;132984;132985;132986;133301;133302;133469;133470;133503;133501;133502;133683;133684;133685;133812;133811;134040;134041;134206;134207;134208;134424;134425;134426;134835;135494;135484;135483;135486;135485;135487;135488;135489;135490;135491;135492;135493;136030;136031;136032;136033;136034;136035;136037;136036;136104;136106;136105;136107;136108;136109;136405;136110;136406;136552;136553;136554;136555;136556;136557;136548;136549;136550;136551;136693;136695;136694;137057;137323;137317;137318;137319;137320;137321;137322;137316;137643;137637;137644;137638;137639;137640;137641;137642;137776;137875;137781;137877;137876;138441;137878;138442;138443;138519;138517;138516;138518;139046;139047;139048;139049;139050;139051;139079;139080;139081;139242;139509;139510;139696;139697;139702;139700;139864;140113;140413;140125;141638;141639;141640;140459;140495;140710;140711;140718;141096;141091;141441;141439;141476;141440;141478;141480;141860;141644;143063;141859;143065;143061;143062;143064;143066;143060;143363;143444;144062;144061;144082;144521;144520;144517;144518;144519;132987;132988;132989;132990;133262;133263;133264;133466;133500;133499;133686;133687;133688;133689;133803;133802;134085;134084;134086;134422;134423;134427;134875;135301;135306;135302;135307;135308;135309;135310;135303;135305;135304;135298;135299;135863;135865;135864;135866;135867;135868;135870;135869;135877;135906;135907;136092;136332;136331;136334;136333;136335;136336;136337;136328;136330;136329;136327;136326;136407;136408;136567;136409;136568;136569;136570;136571;136572;136697;136901;137328;137329;137197;137198;137191;137193;137192;137194;137195;137302;137196;137303;137712;137714;137713;137717;137716;137718;137719;137873;137874;138190;138191;138192;138184;138189;138179;138180;138513;138520;138515;138814;138815;139052;139053;139054;139056;139055;139057;139058;139075;139513;139243;139514;139611;139608;139609;139610;139728;139863;139865;139866;140114;140122;140116;140115;140661;140117;140662;140663;140664;140536;140709;140712;140704;140713;140714;140715;140716;141090;141444;141098;141442;141445;141443;141477;141475;141643;141642;141858;142652;142653;142985;142986;142989;142987;142988;142991;143245;143244;143362;143446;143487;143488;144072;144071;144217;133063;133064;133065;133066;133067;133068;133069;133060;133209;133467;133295;133468;133498;133504;133505;133506;133806;133807;133808;133809;133810;133804;133805;133957;133956;134209;134210;134211;134212;134873;134874;135402;135403;134872;135404;135406;135405;135300;135779;135781;135780;135782;135783;135784;135785;135786;135787;135789;135790;135792;135791;135793;135777;135778;135871;135872;135873;136093;136094;136095;136096;136097;136098;136099;136345;136100;136346;136573;136574;136576;136575;136577;136578;136579;136580;136581;136696;136698;136699;137199;137189;137190;137187;137188;137200;137201;137202;137721;137720;137722;137724;137723;137725;137783;137782;137784;137777;137778;137779;137780;138181;138182;138183;138188;138514;138521;138812;138813;138817;138816;139043;139044;139045;139076;139077;139512;139078;139612;139698;139699;139729;140118;140126;140112;140408;140409;140410;140411;140412;140457;140537;140580;140703;140702;140705;140706;140708;140707;140785;141094;141093;141481;141496;141495;141866;141867;141864;141865;142215;142658;142656;142655;142657;142654;142990;143379;143248;143247;143250;143251;143252;143358;143447;143448;144065;144067;144064;144069;144068;144077;144076;144514;144218;144516;144513;144901;144515;144896;145232;145231;145420;145233;145419;145699;145411;146482;146773;146772;146864;146863;146862;146878;146877;147008;147007;147004;147005;147006;147825;147822;147950;147952;147954;148128;148294;148282;148284;148283;148338;148814;148818;148809;148817;148823;148904;148905;149058;149290;149827;149919;149921;149920;149950;149949;150035;149951;150046;150047;150243;150241;150287;150439;150749;150922;150924;150284;150923;150944;151437;151436;151962;151197;151952;151953;151951;151950;152014;152053;152052;152051;152092;152381;152370;152386;152556;152368;152787;152785;152793;152883;152878;152884;153031;153498;153506;153503;153691;153689;153690;153958;153935;153938;153957;153929;153975;155329;155328;144895;155850;144893;144894;144891;144892;144898;145421;145418;145417;145459;145416;145695;145694;146483;146484;146487;146774;146771;146769;146770;146876;147002;147000;147001;147949;147948;147824;147823;147819;147818;147951;147955;148186;148290;148289;148288;148286;148287;148340;148339;148811;148824;148822;148821;148820;148902;149057;149294;149838;149284;149831;149832;149926;149925;150072;150070;150069;150071;150424;150442;150423;150438;150441;150288;150751;150925;150926;150931;150932;150930;153933;151196;151435;151961;150998;151966;152016;152015;152050;152084;152085;152090;152371;152369;152373;152558;152797;152789;152792;152880;152882;153038;152881;153042;153043;153493;153491;153742;153505;153744;153743;153757;153756;153962;153934;153963;153956;153928;153955;153980;153979;154025;155330;155331;155347;155851;144900;144899;144902;145230;145415;145414;145413;145412;145693;145696;146067;146440;146485;146486;146775;146776;146777;146778;146875;146873;146874;146998;146997;146999;146996;146995;147820;147821;147953;148190;148129;148191;148189;148192;148344;148292;148293;148291;148285;148341;148342;148812;148813;148901;148900;148907;148908;149052;149048;149285;149292;149293;149283;149291;149295;149289;149288;149823;149829;149828;149819;149833;149820;149821;149930;149945;149944;150039;150040;150041;150067;150240;150068;150239;150285;150435;150444;150445;150286;150917;150916;150915;150909;150908;150910;150911;150929;153184;153185;151438;151439;151016;151644;151957;151949;151956;151955;151958;151959;152054;152083;152385;152372;152380;152388;152379;152374;152502;152557;152560;152794;152788;152886;152885;153032;153033;153045;153041;153040;153497;153492;153501;153500;153499;153751;153753;153750;153990;153752;153939;153961;153960;153945;153946;153986;153988;155310;155309;155319;155321;153987;155320;155852;156583;156584;156587;156585;156586;156588;148023;148024;148025;148026;148030;148029;148027;148028;148353;148345;148356;148352;148347;148349;148354;148350;148357;148351;148355;148346;148348;148816;148815;148909;148910;149054;149053;149050;149051;149287;149286;149830;149437;149826;149836;149837;149825;149824;149952;149953;150036;150038;150037;150042;150043;150066;150237;150236;150235;150437;150443;150750;150933;150283;150934;150918;150921;150919;150920;150907;153937;153936;151014;151434;151015;151433;151645;151946;151947;151945;151963;151967;151960;151964;151965;152091;152082;152378;152377;152375;152376;152387;152500;152499;152501;152492;152559;152791;152786;152790;152796;152879;153036;153037;153039;153034;153044;153035;153504;153496;153495;153502;153494;153725;153745;153930;153927;153974;153973;153972;155313;153971;155327;155326;155322;155853;156589;156578;156582;156577;156580;156581;156579;156592;156591;128724;156590;128725;10921;18182;10920;11321;11378;11367;11171;10007;11345;54848;54849;54850;54851;54853;54852;54854;54855;54856;18714;18716;18713;37391;18715;18720;18723;18721;18741;18729;18719;18724;18717;18722;54862;18736;18733;18730;18727;18726;18739;18728;18740;18732;18731;18742;18743;18712;18734;18735;18725;18795;18786;18784;18755;18750;18772;18771;18789;18770;18785;18783;18765;18769;18758;18768;18792;18756;18747;18751;18762;18787;18761;18763;18790;18778;18779;18791;18773;18774;18777;18764;18781;37950;18794;18749;18754;18767;18753;18759;18748;18782;18752;18757;18744;18766;18746;18776;18745;18780;18760;18793;18788;18812;18775;18807;18804;18811;18798;18806;18810;18809;18800;18808;18796;18801;18802;18803;18799;18805;18797;19209;19208;19850;19851;19852;19853;19854;19855;19856;19858;19857;19860;19859;19862;19861;54863;19863;19865;19864;19866;19951;19867;19952;20017;20149;20150;54864;20151;20152;54865;20163;20912;20913;20914;20915;20916;20917;20918;20919;20920;21074;21075;21248;21121;21272;21314;21342;21343;21344;21345;21346;21583;21584;21639;21640;21699;21765;21766;21767;22050;22081;22098;22099;22100;22101;22102;24656;22152;22153;22170;22236;22237;54866;22348;22349;22420;22421;22468;22467;24657;23653;24658;54867;23654;24659;24661;24660;24662;23940;23939;24663;24664;24665;24667;24666;24668;24691;24787;24788;24789;24791;24790;24792;24915;24914;24916;24917;24918;25092;25093;25174;25094;25222;25253;25373;25771;25374;25772;25773;25774;25775;25776;25831;54868;25844;25843;25845;25846;25847;25848;25907;25957;26053;26054;26055;26113;26202;26972;27537;27609;28147;28148;28277;28149;28294;28295;28296;28362;28335;29188;29189;29254;31027;29704;31053;31099;31100;31101;31324;31323;31706;31707;31739;31708;31740;31801;31802;31803;31994;32056;32033;32083;32444;32445;32455;32446;33287;33288;33465;33398;54869;33466;33533;33534;33746;33565;33747;33748;33749;33750;33751;33752;33753;33754;33755;33824;33825;34061;34086;34295;34296;34300;34719;34782;34731;34784;34783;34785;34822;34852;34972;34971;35223;35035;35282;35274;35292;35376;54870;35377;54871;35577;35601;35636;35727;35728;35826;35825;35827;36009;36010;36037;36011;36038;36104;36105;36106;36145;36186;36573;36206;38166;38201;38655;38719;38720;38778;38915;39008;39421;39422;39472;39473;39522;39559;39560;39567;40408;39796;40459;54872;40473;40503;40511;40512;40513;40598;40622;40623;40669;40624;40877;40977;54873;42168;41972;42169;42293;42294;42341;42826;54874;43102;54875;43112;43638;43353;44120;44121;44122;50435;44946;44947;44994;45007;45024;54876;45400;54877;45425;45424;45426;45581;54878;45611;46345;46358;47047;54879;54880;47141;54881;54882;47562;47563;47786;54883;47787;54884;48920;48919;54885;48922;48921;48923;49177;54886;49178;49229;49230;49238;54887;49290;50308;54888;54889;50353;50388;54890;50427;54891;54892;50436;50661;50660;50832;50668;54893;51063;54894;54895;51126;51371;51372;51386;51940;51451;51941;51942;51943;51944;52165;52460;52599;54896;54897;52635;52636;52996;54899;54898;53298;53361;54900;53362;54901;54902;53476;54903;53515;54905;54904;53626;53898;53899;54649;54648;54906;55173;55423;55703;55704;55705;55706;55707;55736;55735;55834;55737;55980;56092;56093;56094;56142;56513;57893;57892;57894;57896;57895;59478;59508;59507;59509;59686;59510;59970;59971;60050;60051;60052;60087;60053;60141;60112;61553;61552;61748;61660;61749;61750;61751;61752;62079;62080;62102;62483;62469;62500;62501;62549;62719;62761;62762;63002;63003;63004;63167;63168;63169;63479;63170;63480;63481;63555;63647;64491;64535;64590;64622;64727;64728;64879;64970;65060;65176;65177;65552;65553;65583;65705;65660;65706;65724;65943;65944;65945;66158;65946;66449;66450;66483;66484;66638;66967;66850;67009;67115;67116;67234;68916;69196;69224;69225;69226;69242;69243;69244;69431;69433;69432;69519;69520;69521;69818;69935;69957;69958;70199;70437;70438;70439;70440;70441;70499;70500;70738;70951;70952;70953;70954;71232;71233;71234;71235;71467;71468;71469;71470;71471;71472;71473;71573;71929;71930;71931;71932;72188;72187;72265;72398;72399;72400;72488;72489;72589;72590;72591;72731;72781;72838;72943;72967;73028;73029;73247;73248;73249;73250;73251;73252;73253;73409;73637;73638;73788;73789;73951;74255;74329;74330;74331;74332;74370;74380;74497;76204;76205;76206;76207;76208;76712;76476;76713;76714;76974;76975;77091;77543;77544;77545;77583;77832;77833;77877;77915;77878;77917;77916;77972;78483;78588;78656;78657;78724;78829;78830;78831;78832;79254;79692;79866;79867;79868;79869;79870;79871;79872;80204;80205;80206;80443;80569;80570;80571;80572;80883;81075;81386;81387;81388;81523;81524;81653;82914;82915;82916;82918;82917;82919;82920;82921;82922;82923;82924;82925;82927;82926;83372;83371;83374;83373;83492;84126;84127;84588;84589;84590;84591;84646;84675;84829;84830;85276;85043;85412;85277;85413;85583;85694;85725;85746;85768;86106;86222;86224;86223;86662;86663;86664;86791;86792;86875;87055;87182;87183;87375;87376;87377;87378;87477;87478;87602;87603;87883;87929;88564;88565;88566;88567;88625;88626;88701;88723;88909;88910;88911;88912;88992;89084;89085;89086;89726;89758;89759;89789;89790;89836;89941;89942;90010;90028;90029;90203;90204;90319;90320;90321;90363;90547;90715;90548;90800;90801;90802;90836;91046;90863;91285;91312;91353;91354;91355;91357;91356;91462;91573;91718;91719;91830;91918;91976;92498;92499;92523;92607;92758;92759;92761;92760;93080;93081;93082;93198;93246;93384;93411;93412;93484;93535;93617;93618;93619;93663;93664;93687;93722;93819;93742;94439;94440;94441;94516;94438;94517;94972;95028;95442;95443;95723;95724;95725;95773;96090;96092;96091;96165;96166;96179;96180;96181;96407;96408;96409;96612;96703;96804;97101;97102;97103;97104;97580;97581;97755;97918;99034;97919;99138;99249;99267;99378;99441;99596;99597;99598;99635;99917;100223;100224;100389;100512;100703;100795;100794;100964;101051;101116;101115;101118;101117;101169;101170;101206;101316;101317;101358;101359;101532;101549;101550;101789;101790;101905;102038;101932;102365;102133;102366;102432;102433;102434;102435;102501;103089;103090;103091;103142;103143;103255;103256;103306;103307;103361;103308;103424;103423;103516;103537;103570;103599;103703;103704;103705;103943;103944;103945;104105;104146;104215;104216;104362;104363;104641;104642;104702;104788;104858;104859;104860;105113;105377;105416;105656;106051;106106;106204;106309;106352;106564;106565;106586;106632;106850;107006;107102;107103;107234;108302;107233;108303;108382;108412;108413;108594;108595;108690;108725;108762;108763;108890;109147;109362;109433;109432;109554;109583;109653;109685;109654;109870;109871;109948;109949;109950;110308;110391;110528;110432;110619;110693;110936;111004;111035;111036;111149;111185;111226;111413;111498;111499;111500;111660;111524;111737;111996;111995;112054;112180;117325;117326;117327;117328;117495;117653;117515;117654;118059;118168;118316;117896;118586;118746;118903;119280;119113;119447;119332;119448;119536;119640;119853;121144;121145;121327;121458;121567;121505;121632;122046;122176;122143;122219;122415;122469;122576;122577;122740;122940;123059;123124;123437;123649;123650;123810;123811;123812;124140;124354;125209;125323;125348;125917;126031;126032;126093;126092;126094;126367;126685;126614;127729;126882;127730;127882;127993;128274;128518;128749;128750;128751;128963;129375;129521;129868;130079;130158;130507;130751;131114;131178;131681;132333;132383;132384;132688;132741;132742;133250;132847;133437;133642;133665;133643;133945;134276;134396;134277;134616;134850;135159;134971;135160;135219;135576;135280;135666;135717;136305;135892;136392;136393;136544;136707;136728;136729;137042;137130;137177;137391;137699;137774;137822;137823;137890;138131;138207;139011;139279;139719;139764;139779;140362;140568;140740;141673;141789;142916;143256;143350;143541;144141;144018;145028;144863;145276;145472;146369;147737;147790;148201;148274;148266;148500;148512;148866;149067;149513;149799;149858;149975;150008;150096;150334;151897;151970;152969;150337;153430;153456;153528;156121;155849;156200;156338;156857;156769;157116;157865;158034;157284;158111;158105;158157;158149;158245;158209;158352;158473;158489;158644;158558;158645;158686;158764;158743;158921;158886;159052;159055;159115;54857;54858;54859;159068;54860;54861;11840;53333;156594;10474;53334;121162;97974;97975;97976;97977;97978;97979;97980;97981;97982;97983;97984;97985;97987;97986;99106;99173;99201;99315;99710;99599;99732;100325;100132;100466;100598;100599;100600;100601;100769;101029;101030;101052;101053;101171;101207;101172;101233;101234;101822;102134;102205;102206;102207;102436;102591;102592;102593;102979;102922;102980;102981;103425;103426;104703;103468;103538;103571;103880;103681;104130;104131;104297;104132;104298;104499;104500;104673;104719;105165;105166;105167;105324;105391;105392;105393;105464;105619;105657;106052;106053;106587;106588;108565;108566;108596;109621;109622;109623;109801;109922;110100;110157;110232;110233;110311;110234;111103;110694;111104;111151;111527;111582;111642;112018;112206;121097;121099;121098;121100;121101;121102;121103;121418;121104;121419;121420;133452;133451;124409;122611;125254;125285;125308;133453;125626;125627;133454;133455;133456;126175;127808;133457;128032;133458;133459;129492;133460;133461;133462;133463;131227;131834;133399;133952;133765;136804;136805;137746;101533;101399;101398;101401;101400;101403;101402;101404;101405;101406;101407;101408;101409;101410;101411;101412;101413;101414;101415;101416;101417;101418;101419;101420;101421;101422;101423;101424;101425;101426;101427;101428;101430;101429;101431;101432;101433;101434;101435;101436;101437;101439;101438;101440;101441;101442;101443;101444;101445;101446;101447;101448;101449;101450;101451;101452;101453;101454;101455;101456;101457;101458;101459;101460;101461;101462;101463;101464;101465;101466;101467;101468;101469;101470;101471;101472;101473;101474;101475;101476;101477;101479;101478;101480;101481;101482;101483;101485;101484;101486;101487;101534;119217;104579;119218;119219;104580;119220;119222;119221;119223;119224;119225;119226;119227;119228;119229;119230;119231;119232;104581;119233;119234;119235;104582;119236;119237;104674;104816;119238;105048;105049;105086;119085;119086;119087;119089;119088;119090;119091;119092;144534;144545;144523;122400;144524;144538;122972;122749;123683;144526;144266;144543;125286;144257;125727;144533;144234;144537;126048;126243;144528;126505;126700;128968;144544;127809;144243;144227;144260;144232;128111;144223;144248;144250;129846;144024;144025;144021;144540;144035;130363;130758;144531;144529;144019;144026;144044;131724;144539;144525;144428;144530;144424;144436;144430;144431;144433;144434;144429;144425;144442;10008;10407;19948;11545;73498;11015;142711;10669;73497;21329;38761;38760;15628;12127;11521;15563;11784;39482;31626;21557;87732;54843;10351;42084;146927;154933;85005;85006;85007;11243;94357;94356;11241;11244;11259;104973;94358;94359;94360;94362;94361;94363;94364;94365;94366;94367;104969;94670;104974;80190;34081;111138;94368;99246;42211;73298;94369;70565;35660;94370;94371;94372;107196;94373;11250;34082;15583;55900;65790;69920;78914;11248;11864;11863;11860;11861;11862;11859;42147;17289;11242;73299;83783;11254;11263;11258;11240;94374;11256;11253;17575;67005;11249;24275;11266;11246;50602;42368;94375;18527;49773;57917;82505;66393;35559;100257;24276;50426;64260;17290;34083;102915;11265;11245;94376;48274;94377;94378;94379;94380;122613;94381;94382;94383;94384;94385;79583;94386;65820;40355;99247;46240;42367;94387;69443;74217;50322;80222;81168;68959;76941;31800;94388;76191;34417;94389;94390;94391;94393;94392;94394;50601;73684;57916;64261;66693;94395;24745;73371;40987;64262;11255;94396;11261;11262;11264;34323;94397;34418;35777;94398;94399;76993;94400;94401;94402;130100;94403;81169;17291;17292;80964;94404;94405;12116;11247;11257;94406;11252;34084;11251;94407;91959;17293;17294;62203;32505;11260;49217;59785;40666;11109;24012;97144;31644;31645;17989;11435;97145;53322;11757;81374;90024;87410;90025;117601;95920;99664;138597;117482;112192;117483;123756;146087;45623;45553;85580;81375;45552;31349;90026;11007;31350;17320;21244;32122;73307;60023;11464;46789;73306;46790;46788;11461;46786;46787;46785;40798;21080;40800;40799;40801;40803;40802;40804;40805;40806;77813;49172;52671;53450;57042;42119;43875;44643;45504;47164;50613;48374;51924;55143;56197;57483;58682;61561;63453;66409;69845;64785;70342;74011;77176;71946;77711;79855;83470;84800;87917;86402;89830;91096;92034;94071;96452;99373;102427;104626;106845;109895;111011;111793;117599;117876;118931;119675;120951;122367;122252;125221;124007;127903;129977;132036;133672;136562;134705;139580;142466;144109;146421;154153;149380;150343;151584;153363;156665;40797;56212;23776;134168;135693;137646;141834;156228;149452;150503;152044;154713;42861;157896;158780;34815;40447;43069;44595;134169;46858;48299;50604;52755;55805;56959;58537;59425;53474;61624;62479;62835;63241;63449;65218;64583;66444;65909;66871;70214;69865;70857;71350;71950;73432;73993;74430;77171;77576;78440;79139;80483;84155;84157;84156;84158;85325;84641;86059;86368;86850;87243;87656;88638;89868;93523;32504;91162;55806;141788;144946;146445;154435;147748;149451;150419;23779;62693;54606;136948;137645;156231;152000;154724;54605;22868;88718;124089;141787;147413;147418;147411;147415;148454;151581;152630;156661;62681;63300;100841;100842;26021;145065;151977;154710;145064;22361;62682;94759;101395;104572;108337;109726;121110;142742;156193;147419;150440;152487;154144;94760;62683;22540;91386;91780;94055;99366;111965;109729;112191;122254;127896;134945;138572;141805;147421;149449;153458;157902;91388;72171;72173;78679;89781;93513;95888;97214;100792;102324;104575;109039;118085;121128;122815;133674;135695;72169;21220;21099;21100;44939;108379;124026;126633;141835;146448;62684;154426;62686;139204;143468;133695;134715;137367;140531;144017;156060;149434;150491;153399;62685;132871;62687;33220;83475;31096;132585;43390;48298;50562;53895;55811;38700;50705;55814;118089;133694;137362;140491;147716;153471;43861;50988;59179;74024;133056;136190;137647;141804;144979;146442;149466;151660;154434;156654;118090;157448;43860;109030;124022;141848;154718;149480;153437;109032;65127;139602;144052;154720;139603;155585;140728;141861;156253;149447;152028;152667;154730;62688;154729;131943;131836;44937;69099;69098;23975;51189;53632;55815;59172;61775;84403;88719;99369;104629;109864;112061;118976;122817;127899;132022;134764;138891;141854;145015;146446;154430;156059;147659;148457;150451;151828;152628;153400;157450;158730;51188;55816;138888;144051;156220;151976;154727;134223;62689;150713;157402;154712;150714;154230;136947;137628;141786;154719;156223;152029;153439;134218;62690;137905;137651;156229;157840;137652;62691;22035;21698;24002;27584;30200;158733;33256;34695;35821;38746;39355;40494;49173;52672;53451;57043;42120;43876;45505;47165;44644;48375;50614;51925;55144;56198;58683;57484;61562;63454;66410;69846;70343;64786;74012;77175;77712;79856;71947;83471;84801;86403;87918;89831;92035;91097;96453;94072;99374;102428;106846;104627;109896;111012;111794;117877;117600;118932;119676;120952;122253;122368;124008;125222;127904;129978;133673;132037;134706;136563;139581;142467;144107;154155;146422;150341;149379;151586;153364;156668;66517;20836;66542;56213;62692;20384;26072;20385;137067;148375;148705;150483;150489;150943;69237;69236;69238;69556;69239;150480;150485;150481;150484;150482;150488;60024;150487;150486;18217;25170;21302;19308;11487;24284;52481;45380;79419;45374;10441;49308;100959;100955;12128;10836;18432;18431;42304;18299;51342;56855;69817;11620;20345;64994;76461;106684;106685;106686;106687;106688;106689;108891;108892;108893;108894;108895;106310;106311;106312;106313;106314;106315;106316;108896;108897;109951;109952;109953;109954;109955;109956;109957;118824;118825;118826;118827;118828;118829;118830;118831;119618;119619;119620;119621;119622;119623;119624;119625;119626;119627;119628;119629;119630;119631;119632;119633;122425;122426;122427;122428;122429;132730;132731;132732;132733;139752;139753;139754;139755;144314;144320;143136;143147;143131;143142;145097;145114;145195;145124;144496;144502;144498;144485;151050;151027;152175;76460;151051;151030;152173;152174;152172;152856;152858;152855;152148;150804;152151;152149;152152;152854;155458;155453;155452;155459;155455;155454;156554;155457;156555;155456;156553;156556;158514;158658;158515;156602;156599;156600;156596;156601;158342;158343;158519;158513;158520;158516;158517;158667;158661;158665;158346;158669;158670;158668;158512;158345;158662;158666;158664;158518;158660;158663;158344;158671;158497;158498;158495;158496;158499;63695;63696;63697;63698;63699;63700;63701;64299;63702;63703;63704;63705;63706;63707;63709;63710;63711;158659;63712;63713;63714;63715;63716;63717;63718;63719;63720;63722;63721;63723;63724;63725;63726;63727;63728;63730;63729;63731;63732;63733;63734;63735;63736;64509;63737;63738;63739;63740;63741;63743;63742;63745;63744;63746;63747;63749;63748;64510;66785;67177;66786;66787;66788;66789;66790;67178;67179;67181;67180;68964;67182;68965;68966;68968;68967;70274;68969;70276;70275;70721;70277;72926;72927;72067;72066;72069;72068;72287;72288;72070;76074;76075;76076;76077;76078;76079;73837;73838;73839;73840;73841;73842;76080;74191;73843;74192;74193;74194;74195;74196;77251;77250;77252;77253;77254;77256;77255;77258;77257;77259;77260;77261;77262;77263;77264;77265;77267;77266;81108;81920;80498;80499;80500;81271;81272;81273;81274;80502;81275;81921;81922;81923;81498;81499;81500;81501;81502;84264;84492;84493;84265;84266;84267;84268;84269;84270;84271;85603;84272;84273;84275;84274;85605;85604;85606;85301;85303;85302;85414;85304;85415;85416;85417;86350;85450;85515;86351;86352;86353;86354;86765;86766;86767;86768;86769;94169;94170;94171;94173;92608;88882;88883;88884;88885;92609;92610;94174;94175;94176;94178;92611;92612;92560;92561;92563;92562;92564;92565;94442;94096;94443;94097;94098;94444;94445;94099;94446;94180;94181;93820;93821;95482;93822;95483;96878;96879;96880;96881;99918;100467;100468;100469;100470;100471;100472;22373;22372;22374;22375;22376;22377;22378;22379;22381;22380;22382;22383;22384;22385;22386;22388;22387;22389;22390;22391;22392;22393;22394;14391;14392;14393;14394;14395;14397;14396;14398;14612;14399;14400;14401;14402;14602;14403;14616;14404;14405;14617;14406;14407;14408;14603;14409;14410;14411;14412;14604;14618;14413;14414;14415;14416;14417;14418;14419;14420;14605;14421;14422;14423;14424;14606;14619;14620;14425;14426;14607;14608;14427;14621;14428;14429;14430;14431;14432;14433;14609;14610;14601;14434;18449;14435;14436;18450;14622;14437;14438;14439;15863;18451;18452;18453;18454;18455;18456;22395;18457;22396;22397;22398;18458;22399;22400;22401;22402;18459;22403;22404;22405;22406;22407;64309;64310;64311;64312;64313;63750;63751;63752;63753;64314;63755;63754;63756;63757;64315;64316;64317;64318;64319;63758;63760;63759;63762;63761;63763;64320;63764;64321;63765;63766;63767;63768;63769;63770;63771;63772;64323;64322;63773;64324;63774;63775;63776;63777;63778;63779;63780;63782;63781;63783;63784;63786;63785;63787;63788;63789;64325;64327;64326;64328;64329;64330;64331;64332;64333;64334;64335;64336;64337;64338;64339;64340;64342;64341;64344;64343;63791;63790;63793;63792;63794;63795;63796;63797;64345;64347;64346;64348;64349;64350;64351;64352;64353;64354;63798;63799;63800;63801;64355;64356;64357;63802;63804;63803;63805;63806;64358;64359;64360;63807;63809;63808;63810;63812;63811;63813;63814;63815;63816;63817;63818;63819;63821;63820;63822;63824;63823;63825;63826;63827;46820;46712;65258;65257;65260;65259;47048;65261;46821;65262;47049;47050;47052;47051;47053;47054;46822;46823;46824;65263;31026;30256;47055;47056;47057;46825;47058;47059;46826;47060;65264;46827;65265;30258;30259;30260;30261;30257;30262;30263;30265;30266;65266;30267;30264;30268;30270;30269;30271;30272;30273;65267;65268;65269;46828;30274;30275;30276;30277;30278;30279;30280;30281;30282;30283;30284;30285;30286;30288;30287;30289;28378;28379;28380;28381;28382;28383;28384;28385;28386;28387;28388;28389;28390;28391;28392;28393;28394;28395;28396;28397;28398;28399;28400;28401;28402;28403;28404;28405;28406;28407;28408;28409;28410;28411;28412;28413;28414;28415;28416;28417;28419;28420;28421;28422;28423;28424;28425;28426;28427;28428;28429;28430;28431;28432;28433;28434;28435;28436;28437;28438;28439;28440;65270;65271;65272;65273;65274;28418;32507;65275;65276;28441;47061;28442;28444;28443;28446;28445;28447;28448;28449;28451;28452;28450;28453;28455;28454;28456;46714;46715;46713;46716;46717;46718;46870;46871;46719;46720;30290;30291;30292;30293;30294;30295;30296;30297;30298;30299;30301;30300;30302;30303;30304;30305;30306;65277;30307;30308;65278;28457;65279;28458;28459;28460;46721;65280;28462;28463;28461;28464;28465;28466;28467;28468;28469;28470;28471;28472;65281;65282;30310;30309;30311;30313;30312;30314;30315;30316;30317;30318;30319;30320;30321;30322;30324;30325;30323;30327;30326;30328;30329;30330;65283;65284;65285;65286;65287;65288;28473;28474;28475;28476;28477;28478;28479;28480;28481;65289;65290;28482;28483;28484;28485;28486;28487;28489;28488;28490;28491;28492;28493;28494;28495;28496;28498;65291;28499;28500;28501;28497;28502;28503;28504;28506;28505;28507;28508;28509;28510;28511;28512;28513;28514;28515;28516;28517;28518;28519;28520;28521;28522;31804;28523;28524;28525;28526;28528;28527;28529;28530;28531;28532;28533;28534;28535;28536;28537;28538;28539;28540;28541;28542;28543;28544;28546;28545;28547;28548;28549;28550;28551;28552;28553;28554;28555;28556;28557;28558;28559;30332;30331;30333;30335;30334;30336;30337;30338;30339;30340;30341;30342;30344;30343;30346;30345;30347;30348;30349;30350;30351;30352;30353;30354;30355;30356;30357;30358;30360;30359;46722;30361;28561;28560;28562;28563;28564;28566;28565;28567;28569;28568;28570;28571;28572;28573;28574;28575;28576;28577;28578;28579;65292;28580;28582;28581;65293;28584;28583;28585;28587;28586;28588;28589;28590;28591;28592;28593;28594;28595;28596;28598;28597;28599;28600;28601;28602;28603;28604;28605;28606;28607;28608;28610;28611;28612;28613;28609;28614;28615;28616;28617;28618;28619;52071;52072;46872;47062;47063;46723;28620;28621;28622;28623;28624;28625;28626;28627;28628;28629;28630;28631;65294;65295;28632;30362;28633;30363;30364;30365;28634;28635;28636;28638;28637;28639;28640;28641;28642;28643;28644;28645;28646;28647;28648;28649;28650;65296;65297;65298;65299;32508;32509;65300;32511;32510;32512;32513;32514;32515;32516;30366;30367;30368;30369;30370;30371;30372;30373;30374;30375;30376;30377;30378;30379;30380;30381;30382;30383;30384;30385;30386;30387;30388;30389;30390;30391;30392;30393;30394;30395;30396;30397;30398;30399;30400;30401;30402;30403;30404;30405;30406;30407;30408;30409;30410;30411;30413;30412;30414;30415;30416;30417;30418;30419;30420;30421;30422;30423;30424;30425;30426;30427;30428;30429;30430;30431;30432;30434;30433;30435;30436;30437;30438;30439;30440;30441;30442;30443;30444;30445;30446;30447;30448;30449;30450;30451;30452;30453;30454;30455;30456;30457;30458;30459;30461;30460;65301;30462;30463;30464;30465;30466;30468;30467;30469;30470;30471;30472;30473;30474;30475;30476;30478;30477;30479;30480;30482;30481;30483;30484;30485;30486;30487;30488;30489;30490;30491;30492;30493;30494;30495;30496;30497;30498;30499;30500;30501;30502;30503;30504;30505;30506;30507;30508;30509;30510;30511;30512;30513;30514;30515;30516;30517;30518;47064;28651;28652;28653;28654;28655;28656;28657;28658;65302;28659;28660;28661;28662;28663;28664;65303;28665;65304;28666;28668;28667;28669;28671;28670;65305;28672;28673;65306;28674;28675;28677;28676;28678;28679;28680;28682;28681;28683;28685;28684;28686;28688;28687;28689;28690;28691;28692;28693;28695;28694;28696;28697;28698;28699;28700;28702;28701;28703;28704;28705;28707;28706;28708;28709;28710;28711;47065;47066;47067;47068;47069;47070;47071;47072;47073;47075;47074;47076;47077;47078;47080;47079;47081;47082;47083;47084;47085;47086;47087;47088;47089;47091;47090;47092;47093;47094;47095;47096;47098;47097;47099;30520;30519;30521;30522;65307;30523;30524;30526;30525;30527;30528;30529;30530;30531;30532;30533;30534;30535;30536;30538;30537;30539;30541;30540;30542;30543;30544;30546;30545;30547;30548;30549;30551;30550;30552;30554;30553;30555;30556;30557;30559;30558;30560;30561;30562;30564;30563;30565;30566;30567;30568;30569;30571;30570;30572;30573;30574;30575;30576;30577;30578;30579;30581;30580;30582;30583;30585;30584;30586;30587;30588;30589;30590;30592;30593;30591;30594;30595;28712;28713;28714;28716;28715;32213;32214;32215;32216;30596;32217;28717;30597;28718;28719;28720;28721;28722;28723;28724;28726;28725;65308;28727;28728;28729;28730;28731;28732;28734;28733;28735;28736;65309;28737;28738;65310;28739;28740;28742;28741;28743;28744;28745;28746;65311;28747;28749;28748;28750;28752;28751;28753;28754;28755;28756;28757;30598;28758;30599;30601;30600;30602;30603;30604;30606;30605;30607;30608;30609;30611;30610;30612;30613;30614;30616;30615;30617;30619;30618;30620;30622;30621;30623;30625;30624;30626;30628;30627;30629;30630;30631;30633;30632;30634;30635;30636;65312;30637;28759;28761;28760;30638;30639;28762;28764;28763;28765;30640;28766;28767;30641;30642;28768;30643;30645;30644;30646;30647;28769;28771;28770;30648;30649;28772;28774;28773;28775;28776;30650;30651;28777;30652;28778;30653;28779;28781;28780;28782;28783;28784;28786;28785;28787;28788;28789;28791;28790;28792;65313;65314;65316;65315;28793;28795;28794;28796;28797;28798;28800;28799;28801;28802;28803;28804;28805;28807;28806;28808;28809;28810;28811;28812;28814;28813;28815;28816;28817;28818;28819;28820;28821;28822;28823;28824;65318;65317;65319;65320;65321;32218;32219;32220;32221;32222;32223;32224;32225;32226;32227;32228;32229;30654;30655;30656;30657;30659;30658;30661;30660;28825;30662;28826;65322;30663;28827;30664;28828;65323;28829;28830;30665;30666;30667;28831;30668;28832;28833;28835;28834;28836;30669;31805;30670;28837;28838;30671;30672;30673;30674;30675;28839;30677;30676;30678;30679;30680;28840;30681;30682;28841;30683;30684;30685;30686;30687;30688;30689;30690;30691;30692;30693;28842;30694;30695;28843;28844;28845;28846;28847;28848;28849;28850;28851;28852;28853;28854;28855;28856;28857;28858;28859;28860;28861;28863;28862;28864;28865;28867;28866;28868;28870;28869;28871;28872;28873;28874;28875;28876;28877;28878;28880;28879;28882;28881;28883;28884;28885;28886;28887;28888;28889;28890;28891;28892;28893;28894;28895;28896;28897;28898;28899;28901;28900;28903;28902;65324;65325;65326;65327;28904;28905;30696;30697;30698;28906;28907;30699;30700;30701;30702;30703;30704;30705;30706;30707;30708;30709;30710;30711;30712;30713;30714;30715;30716;30717;30718;30719;30720;30721;30722;30724;30723;30725;30726;30727;30728;30729;30730;30732;30731;30733;30734;30735;30736;30737;30738;30739;30740;30741;30742;30743;30744;30745;30746;30747;30748;30749;30750;30751;30752;30753;30754;30755;30756;30758;30757;30759;30760;30761;30762;30763;30764;30765;30766;30767;30769;30768;30771;30770;30773;30772;30774;30775;30777;30776;30779;30778;30781;30780;30782;30783;30784;30785;30786;65329;65328;65330;28908;28909;28910;28911;28912;28914;28913;28915;28916;28918;28917;28919;28920;28921;28922;28923;28924;28925;28926;28927;30787;30789;30788;30790;30791;30792;30793;30794;30795;30796;30797;30798;30799;30800;30801;30802;30803;30804;30805;30806;30807;30808;30809;30810;30811;30812;30813;30814;30815;30816;30817;30818;30819;32517;32518;32519;32520;32521;32522;32523;32524;32526;32525;32527;32528;32529;32530;32531;32532;32533;32534;32536;32535;32537;32538;28928;30820;30821;30822;30823;28929;30825;30824;28930;30826;30827;30828;30829;30830;30831;30832;30833;30834;30835;28931;30836;30837;28932;28933;30838;30839;30840;28934;30841;30842;30843;28935;28936;30844;30845;28937;30846;28938;30848;30847;30849;30850;30851;30852;30853;30854;28940;28939;28942;28941;28944;28943;28945;65331;28946;28947;28948;65332;28949;28950;28951;28953;28952;30855;28954;30856;30857;30858;28955;28956;30859;30860;30861;28957;30862;28958;28959;28960;30863;30864;30865;30866;28961;30867;30868;30869;28962;30870;30871;28963;30872;30873;28964;30874;28965;28966;30875;30876;30877;30878;28967;28968;30879;28969;30880;28970;28971;65333;28972;28973;28974;28975;28976;28977;28978;28979;28981;28980;28982;28983;28984;28985;28986;28987;28988;28989;28990;28991;28992;28993;28994;28995;28997;28996;28998;29000;28999;29001;29002;29003;29004;29005;29006;29007;29008;29009;29010;29011;29012;29013;29014;29015;29016;29018;29017;29020;29019;29021;30881;29023;29022;29025;29024;65334;29026;29027;29028;29029;29030;29031;29032;29033;29034;32539;32540;32541;32542;32543;32544;32545;32547;32546;32548;65335;29035;29036;29037;29038;29039;29040;29041;29042;29043;29044;29045;29046;29048;29047;29049;29050;29051;29052;29053;29054;29055;29056;29057;29058;29059;29060;29061;29062;29063;29064;29065;29066;29067;29068;29069;29070;29071;29072;29073;29075;29074;29077;29076;29078;29079;29080;29081;29082;65336;65337;65338;65339;65341;65340;65343;65342;65344;65345;32550;32549;32552;32551;32553;32554;32556;32555;32558;32557;32560;32559;32561;32562;32563;32564;32565;32566;32567;32569;32568;32570;32572;32571;32573;32574;32576;32575;32578;32577;32580;32579;32582;32581;32583;32584;32585;32586;32587;32588;32589;32590;32591;32592;32593;32594;32595;32596;32597;32598;32599;32600;32602;32601;32604;32603;32605;32606;32607;32608;32609;32610;32611;32612;32613;32614;32615;32616;32617;32618;32619;32620;32621;32622;32623;32624;32625;32626;32627;32628;32630;32629;32631;32632;32633;32634;32635;32636;32637;32638;32639;32640;32641;32642;32643;32644;32645;32646;32647;32648;32649;32651;32650;32652;32653;32654;32655;32656;32657;32658;32659;32660;32661;32662;32663;32665;32664;32666;32667;32668;32669;32670;32672;32671;32673;32674;32675;32676;32677;32678;32679;32680;32681;32683;32682;32684;32685;32686;32687;32688;32690;32689;32691;32692;32693;32694;32695;32697;32696;32698;32699;32700;32702;32701;32703;32705;32704;32706;32707;32708;32710;32709;32711;32712;32713;32714;32715;32716;32717;32718;32720;32719;32721;32722;32723;32724;32725;32726;32727;32728;32729;32730;32731;29083;29084;29085;29086;29087;29089;29088;29090;29091;29092;29093;29094;29095;29096;29097;29098;29099;29100;29101;29102;29103;29104;29105;29106;29107;29108;29109;29110;29111;29112;29113;29114;29115;29116;29117;29118;29119;29120;29121;29122;29123;29124;29125;29126;29127;29128;29129;29130;29131;29132;29133;29134;29135;29614;29615;29616;29617;29618;65346;29136;29138;29137;29140;29139;29141;29142;29143;29144;30882;30883;30884;30885;30886;30887;30888;30889;30890;30891;30892;30894;30893;30895;30896;65347;29619;65348;29620;29622;29621;29624;29623;29625;29626;29627;29628;29630;29629;29631;29632;29634;29633;29635;29636;29637;29638;29640;29639;29641;29642;29644;29643;29645;29646;29648;29647;29650;29649;29651;29652;29653;29654;29655;29656;29658;29657;29659;29660;29662;29661;29664;29663;29665;29666;29667;29668;29669;29670;29671;29672;29673;29674;29675;29676;29677;29678;29679;29680;29681;29682;29683;29684;31468;31469;31471;31470;31472;31473;32732;31474;31475;31476;31478;31477;31479;31480;31481;29145;29146;29147;29148;29149;29150;29151;29152;29154;29153;29155;29156;29157;29158;29159;29161;29160;29162;29163;29164;29165;29166;29168;29167;29169;29170;29171;29172;29173;65349;65350;65351;65352;65353;65354;65356;65355;65357;65358;65360;65359;65362;65361;65363;65364;29315;29316;29317;29318;29319;29320;29321;29322;29323;29324;29325;29174;29175;29176;29177;30897;30898;30899;30900;30901;30903;30902;30904;30905;30906;30907;30908;30909;30910;30911;30912;30913;30914;30915;30916;30917;30918;30919;30920;30921;30923;30922;30924;30925;30926;30927;30928;30929;30930;30932;30931;30933;30934;30935;30937;30936;30938;30940;30939;30941;30942;30943;30944;30945;30946;30947;30948;30949;30950;30951;30953;30952;30954;30956;30955;30957;31483;31482;31484;31486;31485;31487;31488;31489;31490;31491;31493;31492;31494;31495;31496;31497;31498;31499;31500;31501;31502;31503;31504;31505;31506;31507;31508;31509;31510;31511;31512;31513;31514;31515;32733;29178;32734;32735;32736;32737;32738;32739;32740;32741;32742;32743;32744;32745;32746;32747;32748;32749;32750;32751;32752;32753;32754;32755;32756;32757;32758;32759;32760;32761;32762;32763;32764;32766;32765;32767;32768;32769;32770;32771;32772;32773;32774;32775;32776;32777;32778;32779;32781;32780;32782;32783;32784;32785;32786;32787;32788;32789;32790;32791;32792;32793;32794;32795;32796;32797;32798;32799;32800;32801;32802;32803;32804;32805;32806;32807;32808;32809;32810;32812;32811;32813;32814;32815;32816;32817;32818;32819;32820;32821;32822;32823;32824;32825;32826;32827;32828;32829;32830;32831;32832;32833;29179;65365;36571;37918;29326;29327;29328;29329;29330;29331;29332;29333;29334;29335;29336;32230;32231;32232;65366;32233;32234;32235;32236;32237;32238;32239;65367;32240;32242;32241;32243;32244;32245;32246;32248;32247;32249;32250;32251;32252;32253;32254;32255;32256;32257;32259;32258;32260;32261;32263;32262;32264;32265;32266;32267;32268;32270;32269;32271;32272;32274;32273;32276;32275;32277;32278;32279;32280;32281;32282;32283;32284;32285;32286;32287;32288;32289;32290;32291;32292;29685;32293;29686;29687;29688;31194;31195;31196;31197;31198;31199;31200;31201;31202;31203;31204;31205;31206;31207;31208;31209;31210;31211;31212;31213;31214;31215;29180;65368;29181;29182;29183;29184;29185;29186;31216;31217;31218;31220;31219;31222;31221;31224;31223;31226;31225;31227;31228;31230;31231;31229;31232;31233;31234;31235;31236;31238;31237;31239;31240;31241;31242;31243;31244;31245;31246;31247;31248;31249;31250;31251;31252;31253;31255;31254;31256;31257;31258;31259;31260;31261;31263;31262;31264;31265;31266;31267;31268;31269;31271;31270;33290;33289;33291;33292;33293;33294;33295;33296;33297;33298;33299;30958;65369;65370;65371;65372;65373;65374;65375;65376;65377;65378;65379;65380;65381;65382;65383;65384;65385;65386;65387;30959;30960;30961;30962;30963;30965;30964;30966;30967;30969;30968;30970;30971;30972;30973;30974;30975;30976;30977;30978;30979;30980;30981;30982;30983;30984;30985;30987;30986;30988;32294;30989;65388;30990;30991;30992;30993;30994;30996;30995;30998;30997;31000;30999;31001;31002;31003;31004;31005;31006;31007;31008;31009;31010;31011;31012;31013;31015;31014;31016;31017;31018;31020;31019;31021;31022;31023;31516;31517;31518;31519;31520;31521;31522;31523;31524;31525;31526;31527;31528;31529;31530;31531;31532;31533;31534;31535;31536;31537;31538;31539;31540;31541;31542;31543;31024;31544;31545;31546;31548;31547;31549;31550;31551;31552;31553;31554;31555;31556;31557;31558;31559;31560;31561;31562;31563;31564;31565;31566;31567;31568;32834;31569;31570;31571;65389;34853;65390;31272;31273;31274;31275;31276;31277;31279;31278;31281;31280;31282;31283;31284;31285;31286;31287;31288;31289;31290;31291;31292;31866;31867;31868;31869;31870;31871;31872;31873;31874;31876;31875;31877;31878;31880;31879;31881;31882;31884;31883;31886;31885;31887;31888;31890;31889;31892;31891;31893;31894;31896;31895;31897;31898;31900;31899;31901;31902;31903;31904;31905;31906;31907;31908;31909;31910;31911;31912;31913;31914;31915;31916;31917;31918;31919;31921;31920;31923;31922;31924;31925;31926;31927;31928;31929;31930;31931;31932;31933;31934;31936;31935;31938;31937;31939;31940;65391;31572;31573;31574;31576;31575;31578;31577;32835;32836;32837;32838;32839;32840;32841;32842;32844;32843;32846;32845;32848;32847;32849;32850;32851;32852;32853;32854;32855;32856;32857;32858;32859;32860;32861;32862;32863;32864;32865;32866;32867;32868;32869;32870;32871;32872;32873;32874;32875;32876;32877;32878;32879;32880;32881;32882;32883;32884;32885;32886;31579;31580;31581;31582;31583;31585;31584;32888;32887;32889;65392;32890;32891;32892;32894;32893;32895;32896;32897;32898;32899;32900;32901;32902;32903;32904;32905;32906;32907;32908;32909;32910;32911;32912;32913;32914;32915;32916;32917;32919;32918;32920;32921;32922;32923;32924;32925;32926;32927;32928;32929;32930;32931;32932;32933;32934;32935;32936;32937;32938;32939;32940;32941;32942;32943;32944;32945;32947;32946;32948;32949;32950;32951;32952;32953;32954;65393;33591;33592;33593;33594;33595;33596;33597;33598;33599;33600;33601;33602;33603;33604;33605;33606;33607;33608;65394;32955;32956;32957;32958;32959;32960;32962;32961;32964;32963;32966;32965;32967;32968;32969;32970;32971;32972;32973;32975;32974;32976;32977;32978;32979;32980;32981;32982;32983;32984;32985;32987;32988;32989;32986;32990;32992;32991;32993;32994;32995;31941;31943;31942;31945;31944;33300;33301;33303;33302;33304;33305;33306;33307;33308;33309;33310;33311;33312;33313;33314;33315;33316;33317;33318;33319;33320;33321;33322;32996;32997;32998;33000;32999;33002;33001;33003;33004;33005;33006;33007;33008;33009;33010;33012;33011;33013;33014;37646;33015;37916;65395;65396;65397;38134;65398;33016;65399;32295;32296;32297;65400;65401;65402;65403;35475;35476;35477;35478;35479;35480;35481;33017;33018;33019;33020;33021;33022;33023;33024;33025;33026;33028;33027;33029;33031;33030;33032;33034;33033;33035;33036;33037;33038;33039;33040;33041;33042;33043;33044;33045;33046;33047;33048;33049;33051;33050;33052;33053;33054;33055;33609;65404;65405;33610;33611;33612;33613;33614;33615;33617;33616;33618;33619;33620;33621;33622;33623;33056;32298;33057;37656;37340;36370;65406;36316;37037;37335;36448;38003;36461;36398;36923;33058;33059;33061;33060;33062;33063;33064;33065;33066;33067;33068;33070;33069;33071;33072;33073;33074;33075;33076;36341;36985;37652;37780;36732;38089;37843;38100;36911;37489;37973;36464;36546;65407;36286;36733;36390;37981;37906;36498;37744;37666;35828;35829;35831;35830;35832;35833;35834;35836;35835;35837;35838;35839;35841;35840;35842;35843;35844;35845;35846;35847;35848;35849;35850;35851;35852;35853;35854;34854;34855;33323;33324;33325;33326;33327;33328;33329;33330;33331;33332;33333;33335;33334;33336;33337;33338;33339;33340;33341;33342;33343;33344;33345;33346;33348;33347;33350;33349;33351;33352;33353;33354;33355;33356;33357;33358;33359;33361;33360;33362;33952;33953;33954;33955;33956;33957;33958;33959;33960;33961;33962;33963;33964;33965;33966;33967;33968;33969;33970;33971;33972;33973;33974;33975;33976;33977;33978;33979;33980;33981;33982;33983;33984;33985;33986;33987;33988;33990;33989;33991;33992;33993;33994;33995;33996;33997;33998;33999;34000;34001;34002;34003;34004;34005;34006;34007;34008;33363;34009;37921;37325;37691;36314;37638;38146;37344;36663;37195;36871;36481;37321;65408;65410;65409;37971;37980;37277;37187;36246;37158;38097;36540;37653;36921;37345;38057;37436;38105;37697;36469;37908;36727;37024;37339;37329;37615;37894;36387;65411;37102;36647;37685;36845;36666;36501;37020;37228;36372;38102;36455;36371;37267;37919;37729;36713;37832;37536;37889;36602;37365;36936;37445;37338;37807;37132;37314;37181;33624;33625;33626;33627;33628;33629;33630;33631;33632;33633;33634;33636;33635;33637;33638;33639;33640;33641;33642;33643;33644;33646;33645;33647;33648;33649;33650;33651;33652;33653;33654;33655;33656;33657;33658;33659;33660;33661;33662;33663;33664;33665;33666;33667;33668;33670;33669;33671;33672;33673;33674;33675;33676;33677;33678;33679;33681;33680;33682;33683;33684;33685;34511;33686;34512;34513;34514;34515;34516;34517;34518;34519;34520;34521;34522;34523;34524;34525;34526;34527;34528;34529;34531;34530;34532;34533;34534;34535;34536;34537;34538;34539;34540;34541;33687;33688;33689;33690;33691;33692;33693;33694;33695;33696;33698;33697;33699;33700;33702;33701;33703;33704;33705;33706;33707;33708;33709;33711;33710;33712;33713;33715;33714;33716;33717;33718;33719;33721;33720;33722;33723;33724;33726;33725;33728;33727;33729;33730;33731;33732;33733;33734;34542;34543;34544;34545;34547;34546;34548;34549;34550;34551;34552;34553;34554;34555;34556;34557;34558;34559;34560;34561;34562;34563;34564;34565;34566;34567;34568;34569;34570;34571;34572;34573;34574;34575;34576;34577;34578;34579;65412;65413;34010;65414;34011;34012;34013;34014;34015;34016;34017;34856;34857;34858;34859;34860;34861;34862;34863;34864;34865;34866;34867;34868;34869;34870;34871;34872;34873;34874;34875;34876;34878;34877;34879;34880;34881;34882;34884;34883;34885;34886;34888;34887;34890;34889;34891;34892;34893;34894;34895;34896;34898;34897;34900;34899;34901;34902;34903;34904;34905;34906;34907;34908;34909;34910;34911;34912;34913;34914;34915;34916;34917;34918;34919;34920;34921;34922;34923;34924;34925;34926;34927;34928;34929;34930;34931;34932;37396;37214;65415;36368;37248;37776;37619;65416;37074;37789;36630;37914;36410;36744;37395;36317;37307;37184;37623;36801;36282;36803;37209;37174;37352;36289;37494;37793;36408;37349;36453;36646;37787;37985;37705;37392;37863;36718;65417;37972;36738;37012;36956;38082;37651;36982;36849;37465;37784;37192;37233;36854;37014;37941;37464;37441;36532;36487;37636;37521;37967;36395;37232;36785;36219;37112;37684;36405;36834;36668;38059;37104;37245;36269;36809;36412;36942;37930;37976;36607;37035;36586;38209;38210;38211;38212;38213;38214;38215;38216;38217;38218;38219;38220;38221;38222;38223;38224;38225;38226;38227;38228;38229;38230;38231;38232;38233;38234;38235;38237;38236;38238;38239;38240;38241;38242;38243;38245;38244;38246;38247;38248;38249;38250;38251;38252;38253;38254;38255;38256;65418;35482;35483;35484;35485;35486;35487;35488;35489;35490;35491;35492;35493;35494;35495;35496;35497;35498;65419;65420;65421;65422;65423;65424;65425;65426;65427;35499;35500;35501;35502;65428;43405;43406;43407;43408;65429;34933;34934;34935;35855;35857;35856;35859;35858;35861;35860;35862;35863;35864;35865;35866;35867;36631;37694;37774;36536;37564;37384;36902;36466;65430;37854;36828;37182;36900;36754;37642;37199;36705;36792;36817;36465;37897;37943;36939;37730;37146;37322;36836;37041;38121;38119;37394;37837;36818;37566;36667;37023;37372;37160;37574;37077;36726;37903;36439;37304;37216;37009;38077;36381;37008;36800;37332;36979;36283;36488;36296;37120;36230;38029;37597;37678;37847;36940;37805;37611;36416;37620;37879;36728;36359;37056;36525;36691;36669;37351;37360;38039;34580;34581;34582;34583;34584;34585;34586;34587;34588;34589;34591;34590;34592;34593;34594;34595;34596;34597;34598;34599;34600;34601;34602;34603;34604;34605;34606;34607;34608;34609;34610;34611;34612;34613;34614;34615;34616;34617;34618;34619;34620;34621;34622;34623;34624;34625;34626;34627;34628;34629;34630;34631;34632;34633;34634;34635;34636;34637;34638;34639;34640;34641;34642;34643;34644;34645;34646;34647;34648;34649;34650;34652;34651;34653;34654;34655;34656;34657;34658;34659;34660;34661;34662;34663;34664;34665;34666;34667;34668;65431;65432;65433;65434;35112;35113;35114;35115;35116;35117;35118;35119;35120;35121;65435;65436;35122;35123;35124;35125;35126;35127;35128;35129;35130;35131;35132;35133;35134;35135;35136;35137;35138;35139;35140;35141;35142;35143;35144;35145;35146;35147;35148;35149;35151;35150;35152;38257;38258;38260;38259;38261;38262;38263;38264;38265;38267;38266;38268;38269;38270;38271;38272;38273;38274;38275;38276;38277;38278;38279;38281;38280;38282;38283;38284;38285;38286;36502;36310;37721;37376;37845;37224;37156;36867;36593;37129;36223;37302;37754;37660;37760;37986;37674;37511;37679;37113;36581;37659;37059;37771;37303;37770;38045;36437;37622;36529;36829;36917;36741;36988;36227;37067;36367;36932;37668;37720;36325;37524;36888;37408;37719;37054;38123;65437;37168;38120;36764;36419;36881;38139;36901;36444;38125;36783;36270;36580;37380;38093;37502;36424;37084;37975;37816;37578;37761;37116;37001;36307;36876;37468;36328;37022;37280;36500;37082;36274;36778;36431;37247;37737;37557;38145;36252;36434;36885;37650;36771;37357;37500;37265;37764;37708;37926;37745;37937;37858;37689;36642;36695;38017;37775;38088;37006;37583;38040;37208;36712;37342;38041;38124;36345;38109;37266;38033;36393;37193;38020;36612;37676;35153;37709;35155;35154;35157;35156;35158;35159;35160;35161;35162;35163;35164;35165;35166;35167;35168;35169;38287;38288;38289;38290;38291;38292;38293;38294;38295;38296;38298;38297;38300;38299;38301;38302;38303;38304;38306;38305;38308;38307;38310;38309;38311;38312;38313;38315;38314;38316;38317;38318;38319;38320;38321;38322;38324;38323;38325;38326;38327;38328;38329;38330;38332;38331;38333;38334;38335;38336;38338;38337;38339;38340;38342;38341;38343;38344;38345;38346;38347;38348;38349;38351;38350;38352;38353;38354;38355;38356;38358;38357;39623;39624;39625;39626;39627;39628;39629;39630;39631;39632;37005;38359;38360;38361;38362;38363;38364;38365;38366;38367;38368;38369;38370;38371;38372;38373;38374;38375;38376;38377;38378;38379;38381;38380;38382;38383;38384;38385;38386;38387;38388;38389;38390;38391;38392;38393;38395;38394;38396;38397;38398;38399;38400;38401;38402;38403;38404;38405;38406;38407;38408;38409;38411;38410;38412;38413;38414;38415;38417;38416;38418;38419;38421;38420;38423;38422;38424;38425;38426;38428;38427;38429;38430;38431;38432;38433;38434;38435;38436;38437;38438;38439;38440;38441;38442;38443;38445;38444;38446;34936;65438;36680;35170;35171;36627;65439;65440;65441;44138;44137;44139;44140;44141;44142;44144;44143;44146;44145;44148;44147;44150;44149;44151;44152;44153;44154;44156;44155;44157;44158;44160;44159;44161;44162;44163;44164;44165;44166;44167;44168;44169;44170;44171;44172;44173;44174;44175;44176;44177;44178;44179;44180;44181;44182;44183;44184;44185;44186;44187;44188;44189;44190;44191;44192;65442;65443;65444;65445;65446;65447;35504;35503;35505;35506;35507;35508;35509;35510;35511;35512;35513;35514;35515;35516;35518;35517;35520;35519;35522;35521;35524;35523;35526;35525;35527;35528;35530;35529;35531;35532;35533;35534;35535;35536;35537;35539;35538;35541;35540;35542;35543;35544;35545;65448;65449;39810;39811;39812;39813;39814;35546;35868;35869;35870;35871;35872;35873;35874;35875;35876;35877;35878;35879;35880;35881;35882;35883;35884;35885;35886;35887;35888;35889;35890;35891;35892;35893;35894;35895;35896;35897;35898;35899;35900;39009;39010;39011;39012;39013;39014;39015;39016;39017;39018;39019;39020;39021;39022;39023;39024;39025;39026;39027;39028;39029;39030;39031;39032;39033;39034;39035;39036;39037;39038;39039;39040;39041;39042;39043;39044;39045;39046;39047;39048;39050;39049;39052;39051;39053;39054;39055;39056;38101;37453;36824;36839;37796;37170;37690;36477;37140;36970;37411;37786;36417;36609;36708;37291;36490;36884;36925;37861;36961;36440;38062;36994;37993;36544;38127;36613;37961;37230;39057;39058;39059;39060;39061;39062;39063;39064;39065;39066;39067;39068;39069;39070;39071;39072;39073;39074;39075;39076;39078;39077;39080;39079;39081;39082;39083;39084;39085;39086;39087;39088;39089;39090;39091;39092;39093;39095;39094;39097;39096;39098;39099;39100;39101;39102;39103;39104;39105;39107;39106;39108;39109;39110;39111;39112;39113;39114;39115;39116;37417;37491;37476;37531;36253;36595;37343;37382;37664;37301;36247;37931;38016;37434;37693;37448;37079;37955;36514;38053;37748;37083;36974;37757;37917;37763;37573;37856;36886;37088;36758;37963;36898;37011;39117;39118;39120;39119;39121;39122;39124;39123;39125;39126;39127;39128;39129;39130;39131;39132;39133;39134;39135;39137;39136;39138;39139;39140;39141;39142;39143;39144;39146;39145;39147;39148;39150;39149;39152;39151;39153;39154;39155;39156;39157;39158;39159;39160;39161;39162;39163;39164;39165;39166;39167;39168;39169;39171;39170;39172;39173;39175;39174;39176;39177;43409;43410;43411;43412;65450;43414;43413;43415;39633;38448;38447;38449;38450;38451;38452;38453;38454;38455;38456;38457;38458;38459;38460;38461;38463;38462;38465;38464;38466;38467;38468;38469;38470;38471;38472;38473;38474;38475;38476;38477;38478;38479;38480;38481;38482;38483;38484;38485;38486;38487;38489;38488;38491;38490;38492;38493;38495;38494;38496;38497;38499;38498;38500;38501;38502;38503;38504;38505;38507;38506;38508;38509;38510;38511;38512;38513;38514;38515;38516;38517;38518;38519;38520;38521;38522;38523;38524;38525;38526;38527;38528;38529;38530;38531;38532;38533;38534;38535;38536;38537;38538;38539;38540;38541;38542;38543;65451;65452;44431;44432;44433;44434;44435;44436;44437;44438;38544;38545;38546;38547;38548;38549;38550;38551;38552;38553;38554;38555;38556;38557;38558;38559;38560;38561;38562;38563;38564;38565;38566;38567;38568;38569;38570;38571;38572;38573;38574;38575;38576;38577;38578;38579;38580;38581;38582;38583;38584;38585;38586;38587;38588;38589;38590;38591;38592;38593;38594;38595;38596;38598;38597;38599;38600;38601;38602;38603;38604;38606;38605;38607;38608;38609;38611;38610;38612;38613;39634;39635;39637;39636;39638;39639;39640;39641;39642;39643;39644;39645;39646;39647;39648;39649;39650;39651;39652;39653;39654;39655;39656;39657;39658;39659;39660;39662;39661;38614;38615;38616;38617;38618;38619;38620;38621;38622;38623;38624;38625;38626;38627;38628;38629;38630;38631;38632;38633;38634;38635;38636;38637;38638;38639;39663;39664;39665;39666;39667;39668;39669;39670;39671;39672;39673;39674;39675;39676;39677;39678;39679;39680;39681;39682;39684;39683;39685;39686;39687;39688;39689;39690;39691;39692;39693;39694;39695;39696;42481;42482;42483;42484;42485;42486;42487;42488;42489;42490;42491;42492;42493;42494;42495;42496;42497;42498;42499;42500;42501;42502;42503;42504;42505;42506;42507;42508;42509;42510;42511;42480;42512;39697;39698;39699;39700;39701;39702;39703;39704;50707;50708;39705;39707;39706;39708;39709;39710;39711;39712;39713;39714;39715;39716;39717;39718;39719;39720;39721;39722;39723;39724;39725;39726;39727;39728;39729;39730;39731;39732;39733;39734;39735;39736;39737;39738;39739;39740;39742;39741;39743;39744;42513;39745;42514;42515;42516;42517;42518;42519;42520;42521;42522;42523;42524;42525;42526;42527;42528;42529;42531;42530;42532;42533;42534;42535;42536;42537;42539;42538;42541;42540;42542;42543;42544;42545;42546;42547;42548;42549;42550;42551;42552;42553;39746;39747;65453;65454;52073;39178;39180;39179;39182;39181;39183;39184;39185;39186;39187;39188;39190;39189;39191;39192;39193;39194;39195;39196;39197;39198;39199;39200;39201;39202;39203;39204;39205;39206;39207;39208;39209;39210;39211;39212;39214;39213;39215;39216;39218;39217;39219;39220;39221;39222;39223;39224;39225;39226;39227;39228;39229;39230;39231;39232;41647;41648;41649;41650;41651;41652;41653;41654;41655;41656;41657;41658;41659;41660;41661;41663;41662;41664;41665;41667;41666;41669;41668;41670;41671;41672;41673;41674;41675;39233;39234;39235;39236;39237;39238;39239;39240;39241;39242;39243;39245;39244;39247;39246;39248;39249;39251;39250;39252;39253;39254;39255;39256;39257;39259;39258;39260;39261;39262;41676;41677;41678;41679;41680;41681;41682;41683;41684;39263;39264;39265;39266;39267;39268;39269;39270;39271;39272;39273;39274;39275;39276;39277;39278;39279;39280;39281;39282;39283;39284;39285;39286;39287;39288;39289;41685;41686;41687;41688;41689;41690;41691;41692;41693;41694;41695;41696;41697;41698;41699;41700;41701;41702;41703;41704;41705;41706;41707;41708;41709;41710;41711;41712;41713;41715;39290;39291;39292;39293;39294;39295;39296;41714;39297;39299;39298;39300;39301;39302;42554;65455;42555;42556;42557;42558;42559;42560;42561;42562;42563;42564;42565;42566;42567;42568;42569;42570;42571;42572;42573;39748;39749;39750;39751;39752;39753;39754;39755;39756;39757;39759;39758;39760;65456;65457;65458;65459;65460;39815;39816;39817;39818;39819;39820;39821;39822;39823;39824;39825;39826;39827;39828;39830;39829;39831;39832;39833;39834;39835;39836;39837;39838;39839;39840;39841;65461;52074;65462;52075;39842;52076;39843;43899;43900;43901;43902;43903;50709;47622;47623;47624;47625;47626;47627;47628;47629;47630;47631;47632;47633;47634;47635;47636;47637;47638;47639;47640;47641;47642;47643;43416;43417;43418;43419;43421;43420;43422;43423;43424;43425;43426;43427;43428;43429;43430;43431;43432;43433;43434;43435;47644;47646;47645;47647;47648;47649;47650;47651;43904;43905;43906;43907;43908;43909;43911;43910;43912;43913;43914;43915;43916;43917;43919;43918;43921;43920;43922;43923;43925;43924;43926;43927;43929;43928;43930;43931;43932;43933;43934;43935;43936;43937;43938;43939;43940;43941;43942;43943;43944;43946;43945;43947;43948;43949;43950;43951;43952;43953;43954;43955;43956;43957;43958;43959;43960;43961;43962;43963;43964;43966;43965;43967;43968;43970;43969;43971;43972;43973;43974;43975;43976;43977;43978;43979;43980;43981;43982;43983;43984;43985;43986;41716;41717;41718;41719;41720;41721;41722;41723;41724;41725;41726;41727;41728;41729;41730;41731;41732;41733;41734;41735;41736;41737;41738;41739;41741;41740;41743;41742;41744;41745;41746;41747;41748;41749;41750;41751;41752;41754;41753;41755;41756;41757;41758;41759;41760;41761;41762;41763;41764;41765;41766;41767;41768;41769;41770;41771;41772;41773;41774;41775;41777;41776;41779;41778;41781;41780;41783;41782;41785;41784;41786;41787;41788;41789;41791;41790;41793;41792;41795;41794;41797;41796;41799;41798;41800;41801;41802;41803;41804;41805;41806;43184;43185;43186;43187;43188;43190;43189;43436;43437;43439;43438;43440;43441;43442;43443;43444;43445;43447;43446;43448;43449;43450;43451;43452;43453;43454;43455;43456;43457;43458;43459;43460;43462;43461;43463;43464;43465;43466;43467;43468;65463;43469;43470;43471;43472;43474;43473;43475;43476;43477;43478;43479;43480;43481;43482;43484;43483;43486;43485;43487;43488;43489;41807;41808;41809;41810;41811;41812;41813;41814;41815;41816;41817;41818;41819;41820;41821;41822;41823;41824;41825;41826;41827;41829;41828;41830;41831;41832;41833;41834;41835;41836;41837;41838;41839;41840;41841;41843;41842;41844;41845;41846;41847;41848;41849;41851;41850;41852;41853;41854;41855;41856;41857;41858;41859;41861;41860;41862;41863;41864;41865;41866;41867;41868;41869;41870;41871;41873;41872;41874;41875;41877;41876;41878;41879;41880;41881;41882;41883;41884;41885;41886;41887;41888;41889;41890;41891;43191;43192;43193;43194;43196;43195;43197;43198;43199;43200;43201;43202;43203;43204;41892;41893;41895;41894;41897;41896;41899;41898;41900;41901;41902;41903;41904;41905;41906;41907;41908;41909;41910;41911;41912;41913;41914;41915;41916;41917;41918;41919;41920;41921;41922;41924;41923;41925;41926;41927;41928;41929;41930;41931;41932;41933;41934;41935;41936;41937;43205;43206;43207;43208;43209;43210;43211;43212;43214;43213;43216;43215;43217;43218;43219;43220;43222;43221;43224;43223;43226;43225;43227;43228;43229;43230;43231;43233;43232;43235;43234;45628;45629;45630;45631;45632;45633;45634;45635;45636;45637;45638;45639;45640;45641;45642;45643;45644;45645;45646;45647;45648;45649;45650;43490;43491;43492;43493;43494;43495;43496;43497;43498;43500;43499;43501;43502;43503;43504;43505;43506;43507;43508;43509;43510;43511;43512;43513;43514;43515;43516;43517;43518;43519;43520;43521;43522;43523;43524;43525;43526;43527;43528;43529;43530;43531;43532;43533;43534;43535;43536;43537;43538;43539;43540;43541;43542;43543;43544;43545;43546;43547;43548;43549;43550;43551;43552;43553;43555;43554;43556;43236;43237;43238;43239;43240;43241;43242;43243;43244;43245;43246;43248;43247;43249;43250;43251;43252;43253;43254;43255;43256;43257;43258;43259;43260;43261;43262;43263;43265;43264;43266;43267;43268;43269;43270;43271;43272;43273;43274;43275;43277;43276;43279;43278;45651;43280;45652;45653;48765;48764;48766;48767;48768;48769;48770;48771;48772;48773;48774;48775;43281;43282;43283;43284;43285;43286;43287;43288;43289;43290;43291;43292;43293;43294;43295;43296;43297;43298;43299;43300;43301;43302;43303;43304;43305;43306;43307;43308;43309;43310;43311;43312;43313;43314;43315;45654;45655;45656;45657;45658;44193;44194;43557;43558;43559;44195;44196;44197;44198;44199;44200;44201;44202;44203;44204;44205;44206;44207;44208;44210;44209;44211;44212;44213;44214;44215;44216;44217;44218;44219;44220;43560;43561;43562;43563;43564;43565;43566;43568;43567;43569;43570;43571;43573;43572;43574;43575;43576;43578;43577;43579;43581;43580;43582;43583;43584;44439;43585;44440;44442;44441;44443;44444;44445;44221;44223;44222;44224;44225;44227;44226;44228;44229;44230;44231;44232;44233;44234;44235;44236;44237;44239;44238;44240;44242;44241;44244;44243;44245;44246;44247;44248;44249;44250;44251;44252;44253;44254;44256;44255;44257;44258;44259;44260;44261;44262;44263;44264;44265;44266;44267;44268;44269;44270;44271;44272;44273;44274;44275;44276;44277;44278;44279;44281;44280;44283;44282;44284;44285;44286;44287;44288;44289;44290;44291;44292;44293;44294;44295;44296;44297;44298;44299;44300;44301;45141;45142;45143;45144;45145;45146;45147;45148;45149;45150;45151;45152;45153;45154;45155;45156;42574;42575;42577;42576;42578;42579;42581;42580;42583;42582;42584;42585;42587;42586;42589;42588;42591;42590;42593;42592;42595;42594;42597;42596;42599;42598;42601;42600;42602;42603;42604;42605;42606;42607;42608;42609;42610;42611;42612;42613;42614;42615;42616;42618;42617;42619;42620;42621;42622;42623;42624;42625;42626;42627;42628;42629;42630;42631;42632;42633;42634;42635;42637;42636;42638;42639;42641;42640;42643;42642;42644;42645;42647;42646;42649;42648;42651;42650;45157;45158;45159;45161;45160;45162;45163;45165;45164;45166;45167;45168;45169;45170;45171;45172;45173;45174;45175;42652;42653;42654;42655;42656;42657;42658;42659;42660;42661;42662;42663;42664;42665;42666;42667;42668;42669;42670;42671;42672;42673;42674;42675;42676;42677;42678;42679;42680;42681;42682;42683;42684;42685;42686;42687;42688;42689;42690;42691;42692;42693;42694;42695;42697;42696;42699;42698;42700;42701;42702;42703;42704;42705;42706;42707;42708;42709;42710;42711;42712;42713;42714;42715;42716;42717;42718;42719;42720;46359;46360;46361;46362;46363;46364;46365;46366;46367;46368;46369;46370;42721;42722;42723;42724;42725;42726;42727;42728;42729;42730;42731;42732;42733;42734;42735;42737;42736;42738;42739;42741;42740;42742;42743;42744;42745;42746;42747;42748;42749;42750;42751;42752;42753;42754;42755;42756;42757;42758;42759;42760;42761;42762;42763;42764;42765;42766;42767;42769;42768;42770;42771;42772;42773;42774;42775;42776;42777;42778;42779;42780;42781;42782;42783;65464;65465;52077;65466;44446;44447;44448;44449;44450;44451;44452;44453;44454;44455;44456;44457;44458;44459;44460;44461;44462;44463;44464;44465;44466;44467;44468;44469;44470;44471;44472;44473;44474;44475;44476;44477;44478;44479;44480;44481;44482;44483;44484;44485;44486;44487;44488;44489;44490;44491;44492;44493;44494;44495;44497;44496;44498;44499;44500;44501;44502;44503;44504;44505;44506;44507;44508;44509;44510;44511;44512;44513;44514;44515;44516;44517;44518;44519;44520;44521;44522;44523;44524;44525;44526;44527;44528;44529;44530;44531;44532;44533;44534;44535;44536;44537;44538;44539;44540;44541;44542;44543;44544;45176;45178;45177;45179;45180;45181;45182;45183;45184;45185;45186;45187;45188;45189;45190;45191;45192;45193;45194;45195;45196;45197;45198;45199;45200;45201;45202;45203;45204;45205;45206;45207;45208;45210;45209;45211;45212;45213;45214;45215;45216;45217;45218;45219;45220;45221;45222;45223;45224;45225;45226;45227;45228;45229;45230;45231;45232;45233;45234;45235;45236;45237;45238;45239;45240;45241;45242;45243;45244;45245;45246;45247;45248;45249;45250;45251;45252;45253;45254;45255;45256;45257;45258;45259;45260;45261;46371;46372;46373;46374;46375;46376;46377;46379;46378;46381;46380;46383;46382;46384;45262;45263;45264;45265;45266;45267;45268;45269;45270;45271;45272;45273;45274;45275;45276;45277;45278;45279;45280;45281;45282;45283;45284;45285;45286;45287;45288;45289;45290;45291;45292;45293;45294;45295;45296;45297;45298;45299;45300;45301;45302;45303;45304;45305;45306;45307;45308;45309;45310;45311;45312;45313;45314;45315;45316;45317;45318;45319;45320;45321;45322;45323;45324;45325;45326;45327;45328;45329;45330;45331;45332;45333;45334;45335;45336;46385;46386;46387;46388;46390;46389;46391;46393;46392;46394;46395;46396;46397;46399;46398;46400;46401;46402;46403;46405;46404;46407;46406;47652;47653;47654;47655;47656;47657;47658;47659;47660;47661;47662;47663;47664;47665;47666;47667;47668;47669;47670;47671;47672;53917;53918;53919;53921;53920;53922;53923;53924;53925;49309;49310;49311;49312;49313;49314;49316;49315;52078;52079;52081;52080;52082;52083;52085;52084;52086;52087;52088;49317;49318;49319;49320;49322;49321;49323;49324;49325;49326;49327;49328;49329;49330;49332;49331;49333;49334;49336;49335;49337;49338;49339;49340;49341;49342;49343;49344;49345;49346;49347;49348;49349;49350;43987;43988;43989;43990;43991;43992;43994;43993;43995;43996;43997;43998;43999;44000;44001;44002;44003;44004;44005;44006;44007;44008;44009;44010;44011;44012;44013;44014;44015;44016;44017;44018;44019;44020;44021;44022;44023;44024;44025;44545;44546;44547;44548;44549;44550;44551;44552;44553;44554;44555;44556;44557;44558;44560;44559;44562;44561;44563;44564;44565;44566;44567;44568;44569;44570;44571;44572;44573;44574;44575;44576;44577;44578;44579;44580;44581;44582;44583;44584;46018;46408;46409;46410;46411;46412;46414;46413;46416;46415;46417;46418;46419;46420;46421;46422;46423;46424;46425;46426;46427;46428;46429;46430;46431;46432;46433;46434;46435;42784;42785;44302;43316;43317;43318;43319;43320;43321;43322;43323;43324;45659;45660;45661;45662;45663;45665;45664;45666;45667;45668;45669;45670;45671;45672;45673;45674;45675;45676;45677;45678;45679;45680;45681;45682;45683;45684;45685;45686;45687;45688;45689;45690;45691;45692;45693;45694;45695;45696;45698;45697;45700;45699;45702;45701;45703;45704;45705;45706;45707;45708;45709;45710;45711;45713;45712;45714;45715;45716;45717;45718;45719;45720;45721;45722;45723;45724;45725;45726;45727;45728;45729;45730;45731;45732;45733;45734;45735;45736;45737;45738;45739;45740;45741;45742;45743;45744;45745;45746;45747;43586;43587;43589;43588;45749;45748;45751;45750;45752;45753;45754;45755;45756;45757;45758;45759;45760;45762;45761;45764;45763;45765;45766;45767;45768;45769;45770;45771;45772;45773;45774;45775;45776;45777;45779;45778;45781;45780;45782;45783;45785;45784;45787;45786;45789;45788;45791;45790;45792;45793;45795;45794;45796;45797;45798;45799;45800;45801;45802;45803;45804;45805;45806;45807;45808;45809;45810;45811;45812;45813;45814;45816;45815;45817;45818;45819;45820;45821;45822;45823;45824;45825;45826;45827;45828;45829;45830;45832;45831;45833;45834;45836;45835;45838;45837;45840;45839;45841;45842;45843;45844;45845;45846;45847;45848;45849;45850;45852;45851;45853;45854;45855;45856;45857;45858;45859;45860;45862;45861;45863;45865;45864;45867;45866;45869;45868;45870;45871;45872;45873;45874;45875;45876;45877;45878;45879;45880;45881;45882;45883;45884;45885;45886;45887;45888;45889;45890;45891;45892;45893;45894;45895;45896;45897;45898;45899;45900;45901;45902;45903;45904;45905;45906;45907;45908;45909;45910;45911;45912;45913;45914;45915;45916;45917;45918;45919;45920;45921;45922;46886;46887;46888;46889;46890;46891;46892;46893;46894;46895;46896;46897;46898;46899;46900;46901;46902;46903;46904;46905;53926;65467;43325;43326;43590;46019;46020;46022;46021;46023;46024;46026;46025;46027;46028;46029;46030;46031;46032;46033;46034;46036;46035;46037;46038;46040;46039;46041;46042;46043;46044;46045;46046;46048;46047;46049;46050;46051;46052;46053;46054;46055;46056;46058;46057;46060;46059;46062;46061;46064;46063;46065;46066;46067;46068;46070;46069;46071;46072;46073;46074;46075;46076;46077;46078;46079;46080;46081;46082;46083;46084;46085;46086;46087;46088;46089;46090;46091;46092;46093;46094;46095;46096;46097;46098;46099;46100;46101;46102;46103;46104;46106;46105;46107;46108;46109;46437;46436;46438;46439;46440;46441;46442;46443;46445;46444;46446;46447;46448;46449;46450;46451;46452;46453;46454;46455;46456;46457;46458;46459;46460;46461;46462;46463;46464;46465;46466;46467;46468;46469;46471;46470;46472;46473;46474;46475;46476;46477;46478;46479;46480;46481;46482;46483;46484;46485;46486;46487;46488;46489;46490;46491;46492;46493;46494;46495;46496;46497;46498;46500;46499;46501;46502;46503;46504;46505;46506;46507;46508;46509;46510;46512;46511;46514;46513;46515;46516;46517;46518;46519;46520;46521;46522;46523;46524;46525;46526;46527;46528;46529;46530;46531;46532;46534;46533;46536;46535;46538;46537;46540;46539;46541;46542;46543;46544;46545;46546;46547;46548;46549;46550;46551;46552;46554;46553;46556;46555;46557;46558;46559;46560;46562;46563;46564;46565;46566;46567;46568;46569;46570;46571;46572;46573;46574;46575;46576;46577;46578;46579;46580;46581;46561;46582;46583;46584;46585;46586;46587;46588;46589;46590;46591;46592;46593;46594;46595;46596;46598;46597;46599;46600;46601;46602;46603;46604;46605;46606;46607;46608;46609;46610;46611;46612;53927;53928;53929;53930;53931;53932;53933;53934;53935;53936;53937;53938;53939;53940;53941;53942;53943;53944;53945;53946;53948;53947;53949;53950;53951;53952;53953;53954;53955;53956;53957;53958;53959;53960;53961;53962;53963;53964;53965;53966;53967;53968;53969;53970;53971;53972;53973;52089;52090;52091;52092;52093;52094;52095;52096;52097;52098;52099;52100;52101;52102;52103;52104;46613;46614;46615;46616;46617;46618;46619;46620;46621;46622;46623;46624;46625;46626;46627;46628;46629;46630;46631;46632;46633;46634;46635;54302;54303;54304;54305;54306;54307;54308;54309;54310;54311;54312;54313;54314;54315;54316;54317;54318;54319;54320;54322;54321;54324;54323;53974;53975;53976;53977;53978;53979;53980;53981;53982;53983;53984;53985;53986;53987;53988;53989;53990;53991;53992;53994;53993;53995;53996;53997;53998;53999;54000;54001;54002;54003;54004;54005;54006;54007;52105;52106;52107;52109;52108;52111;52110;52112;52113;46636;46637;46638;46639;46640;46641;46642;46643;46644;46645;46646;46647;54326;54325;54327;54328;54329;54330;54331;54332;54333;54334;54335;54336;54337;54338;54339;54340;54341;54342;54343;54344;54345;54346;54347;54348;54349;54008;54009;54011;54010;54012;54013;54014;54015;54016;54017;54018;54019;54020;54021;54022;54023;54024;54025;54026;54027;54028;54030;54029;54032;54031;54033;54034;54035;54036;54037;54038;54039;54040;54041;54042;54043;54044;54045;54046;54047;54048;54049;54050;54052;54051;54053;54054;54056;54055;54057;52114;52115;52116;52118;52117;46110;46111;46112;46113;46114;46115;46117;46116;46118;46119;46121;46120;46122;46123;46124;46125;46126;46127;46128;46129;46130;46131;46132;46133;46134;46135;46136;46137;46138;46139;46140;46141;46142;46144;46143;46145;46146;46147;46148;46149;46150;46151;46152;46153;46154;46155;46156;46157;46158;46159;46160;46161;46162;46163;46164;46165;46166;46167;46168;46906;46907;46908;46909;46910;46911;46912;46913;46914;46915;46916;46917;46919;46918;46920;46921;46922;46923;46925;46924;46926;46927;46928;46929;46930;46931;46932;46933;46934;46935;46936;46937;46938;46939;46940;46941;46942;46943;54350;54351;45923;45924;45925;45927;45926;45928;45929;45930;45931;45932;45933;45934;45935;45936;45937;45938;45939;45940;45941;45942;45943;45944;45945;45946;45947;45948;45949;45950;45951;45952;45953;45954;45956;45955;45957;45958;45959;46944;46945;46946;46947;46948;46949;46950;46951;46952;46953;46954;46956;46955;45960;45961;45962;45963;45964;45965;45966;45967;45968;45969;45970;45971;45972;45974;45973;45975;45976;45977;45978;45979;45980;45981;45982;45983;45984;45985;45986;45987;45988;45989;45990;45991;45992;45993;45994;45995;45996;45997;45998;45999;46000;46001;46002;46003;46004;46957;46958;46959;46960;46961;46962;46963;46964;46965;46966;46967;46968;46969;46970;46971;46972;46973;46974;46975;46976;46977;46978;46979;46980;46981;46982;46983;46984;46985;46986;46987;46988;46989;54352;54353;50710;50711;65468;50712;50713;50714;50715;50716;50717;50718;50719;50720;50721;50722;50723;50724;50725;50726;50727;50728;50729;50730;50731;50732;50733;50735;50734;50736;50737;50739;50738;50740;50741;50742;50743;50745;50744;50746;50747;50748;50749;50750;50751;50752;50753;50754;50755;50756;50757;50758;50759;50760;50761;50762;46648;46649;46650;46651;46652;46653;46654;46655;46656;46657;46658;46659;46660;46661;46662;54354;54355;54356;54357;54358;54359;54360;54361;54362;54363;54364;54365;54366;54367;54368;54369;54370;54371;54372;54373;54374;54375;54376;54058;54059;54060;54061;54062;54063;54064;54065;54066;54067;54068;54069;54070;54071;54072;54073;54074;54075;54076;54077;54079;54078;54080;54081;54082;54083;54084;54085;54086;54087;54088;54089;54091;54090;54092;54093;54094;54095;54096;54097;54098;54099;54100;54101;54102;54104;54103;54106;54105;52120;52119;52121;52122;52123;52124;52125;52126;52127;52128;52129;52130;52131;52132;48776;48777;48779;48778;48780;48781;48782;48783;48784;48785;48786;48787;48788;48789;48790;48791;48792;48793;48794;48795;48796;48797;48798;48799;48800;48801;48802;48803;54107;54108;54109;54110;54111;54112;54113;54114;54115;54116;54118;54117;54119;54120;54121;54122;54123;54124;54125;54126;54127;54128;54130;54129;54131;54132;54133;54134;54135;54137;54136;54138;54139;54140;54141;54142;54143;54144;54145;54146;54147;54148;54149;54150;54151;54152;54153;54154;48804;48805;48806;48807;48808;48809;48810;48811;48812;48813;46990;46991;46992;46993;46994;46995;46996;54377;54378;54379;54380;54381;54382;54383;54384;54385;54386;54387;54388;54389;54390;54391;54392;54393;54394;54155;54156;50763;50764;54157;54158;54395;54396;54397;54398;54399;54400;54401;54402;54403;54404;54405;48437;48438;48439;48440;48441;48442;48444;48443;48445;48447;48446;48448;48449;48450;48451;48452;48453;48454;48455;48456;48457;48458;48459;48460;48462;48461;48463;48464;48465;48466;48467;48468;48469;48470;48471;48472;48473;48474;48475;48476;48477;48478;48479;48480;48481;48482;48483;48484;48485;48486;48487;48488;48489;48490;48491;48492;48494;48493;48495;48496;48497;48499;48498;48500;48501;48502;48504;48503;48505;48506;48507;48508;48509;48510;54406;46998;46997;46999;47000;47001;47002;47003;47005;47004;47006;47007;47008;47009;47010;47012;47011;47013;47014;54407;47015;54408;54409;54411;54410;54412;54413;54414;54415;54416;54417;54418;54419;54420;54421;54422;54423;54424;54425;48511;48512;48513;48514;48515;48516;48517;48518;48519;48520;48521;48522;48523;48524;48526;48525;48527;48528;48529;48530;48531;48532;48533;48534;48535;48536;48537;48538;48539;48540;48541;48542;48543;48544;48545;48546;48547;48548;48549;48550;48551;48552;48553;48554;48555;48556;48557;48559;48558;48560;48561;48562;48563;48564;48565;48566;54426;54427;54428;54429;54430;54431;54432;54433;54435;54434;54436;54437;54438;54439;54440;54442;54441;54443;54444;54446;54445;54447;54448;54449;54450;54451;54452;54454;54453;54455;54456;54457;54458;54460;54459;54461;54462;54463;54464;54465;54466;54467;54468;54469;54470;54471;54472;54473;48567;48568;48569;48570;48571;48572;48573;48574;48575;48576;48577;48578;48579;48580;48581;48582;48583;48584;48585;48586;48588;48587;48589;48590;48591;48592;48593;48594;48595;48596;48597;48598;48599;48600;48601;48602;48603;48604;48605;48606;48607;48608;48609;48610;48611;48612;48613;48614;48615;48616;48617;48618;50765;50766;50767;50768;50769;50770;50771;50772;50774;50773;50775;50776;54159;54160;54161;54162;54163;54164;54165;54166;54167;54168;54169;48619;48620;48621;48622;48623;54474;54475;54476;54477;54478;54479;54480;54481;54482;54483;54484;54485;54486;54487;54488;54489;54490;54491;54492;54493;54494;54495;54496;54497;54498;54499;54500;54501;54502;54503;54504;54505;54506;54507;54508;54509;54510;54511;54512;54513;54514;54515;54516;54517;54519;54518;54520;54521;54522;54523;54524;54525;54526;54527;54528;54529;54530;54531;54532;54533;54534;54535;54537;54536;54538;54539;54540;54541;54542;54543;54545;54544;54546;48814;48815;48816;48817;48818;48819;48820;48822;48821;48823;48824;48825;48826;48828;48827;48829;48830;48831;48832;48833;48834;48835;48836;48837;48838;48839;48840;48841;48842;48844;48843;48846;48845;48847;48848;48849;48850;48852;48851;48854;48853;48856;48855;48858;48857;48859;48860;48861;48862;48863;48864;48865;48866;48867;48868;48869;48870;48871;48872;48873;48874;48876;48875;48877;48878;48879;48880;48881;48882;48883;48884;48885;48886;48887;48888;48889;48890;48891;48892;48893;48894;50089;50090;50091;50092;50093;50094;50095;50096;50097;50098;50099;50100;50101;50102;50103;50104;48624;48625;48626;48627;48628;48629;48630;48631;48632;48633;48634;48635;48636;48637;48638;48639;48640;48641;48642;48643;48644;48645;48646;48647;48648;48649;48650;48652;48651;48653;48654;48655;48656;48657;48658;48659;48660;48661;48662;48663;50105;50106;50107;50108;50109;50110;50111;50112;50113;50114;50115;50116;50117;50118;50119;50120;50121;50122;50123;50124;50125;50126;50127;50129;50128;50130;50131;50132;50133;50134;50135;50136;50137;50138;50139;50140;50141;50142;50143;50144;50145;50146;50147;50148;50149;50150;48665;48664;48667;48666;48668;48669;48671;48670;48673;48672;48674;48675;48676;48677;48678;48679;48680;48681;48682;48683;48684;48685;48686;48687;48688;48689;48690;48691;48692;48693;48694;48695;48696;48697;48698;48699;48700;48701;48702;48703;48704;48705;48706;48707;48708;48709;48710;48711;48712;48713;48714;50151;50152;50153;50154;50155;50156;50157;50158;50159;50160;50161;50162;50163;50164;50165;50166;50167;50168;50169;50170;50171;50172;50173;50174;50176;50175;50177;50178;50179;50180;50181;50182;50183;50184;50185;50186;50187;50188;50189;50190;50191;50192;50193;50194;50195;50196;48715;48716;48717;48718;48719;48720;48721;48722;48723;48724;48725;48726;48727;48728;48729;48730;48731;48732;48733;48734;48735;48736;48737;48738;48739;48740;50197;50198;50199;50200;50201;50202;50203;50204;50205;50206;50208;50207;50209;50210;50211;50212;50213;50214;50215;50216;50217;50218;50219;50220;50221;50222;50223;50224;50225;52133;52134;52135;52136;52137;52138;52139;52140;52141;52142;52143;52144;52145;52146;52147;52148;52149;54170;54171;54173;54172;54175;54174;54176;54177;54178;54179;54180;54181;54182;54183;54184;54185;54186;54187;54188;50226;50227;50228;50229;50230;50231;50232;50233;50234;50235;50236;50237;50238;50239;50240;50241;50242;50243;50244;50245;50246;50247;50248;50249;50250;50251;50252;50253;50254;50255;50256;50257;50258;50259;50260;50261;50263;50262;50264;50265;50266;50267;50268;50269;50270;50271;51201;51202;51203;51204;51205;51206;51207;51208;51209;51210;51211;51212;51213;51214;51215;51217;51216;51219;51218;51220;51221;51223;51222;51224;54189;54190;54191;54192;54193;54194;54195;54196;54197;54198;54200;54199;54201;54202;54203;54204;54205;54206;54207;54208;54209;54210;54211;54212;54213;54214;54215;54216;54217;54218;54219;54220;54221;54222;54223;54224;54225;54226;54227;54228;54229;54230;54231;54232;54233;54234;54235;54236;54237;54238;54239;54240;54241;54242;54243;54244;54245;54246;54247;54248;54249;54250;54251;54252;54253;54254;54255;54256;54257;54258;51225;51227;51226;51228;51229;51230;51231;51232;51233;51235;51234;51236;51237;51238;51239;51240;51241;51242;51243;51245;51244;51247;51246;52771;52770;52772;52773;52774;52775;52776;52777;54259;54260;54261;52778;52779;52780;52781;52782;52783;52784;49351;49352;49353;49354;49355;49356;49357;49358;49359;49360;49361;49362;49363;49364;49365;49366;49367;49368;49369;49370;49371;49372;49374;49373;49375;49376;49378;49377;49379;49380;49381;49382;49383;49384;49385;49386;49387;49388;49389;49390;49391;49392;49393;49394;49395;49396;49397;49399;49398;49400;49401;49402;49403;49404;49405;49406;49407;49408;49409;49410;49411;49412;49413;49414;49415;49416;49417;49418;49419;49420;49421;49422;49423;49424;49425;49426;49427;49428;49429;49430;49431;49432;49433;49434;49436;49435;49437;49438;49439;49440;49442;49441;49443;49444;49445;49446;49447;49448;49449;49450;49451;49452;49453;49454;49455;49456;49457;49458;49460;49459;49461;49462;49463;49464;49465;49466;49467;49468;49469;49470;49471;49472;49473;49474;49475;49476;49477;49478;49479;49480;49481;49482;49483;49484;49485;49486;49487;49488;49489;49490;49491;49492;49494;49493;49496;49495;49497;49498;49499;49500;49501;49502;49503;49504;49505;49506;49507;49508;49509;49510;49511;49512;49513;49514;49515;49516;49517;49518;49519;49520;49521;49522;65469;49523;49525;49524;49526;49527;49528;49529;49530;49531;49532;49533;49534;49535;49536;49537;49538;49539;49540;49541;49542;49543;49544;49545;49546;49547;49548;49549;49550;49551;49552;49553;49554;49555;49556;49557;49558;49559;49560;49561;49562;49563;49564;49565;49566;49567;49569;49568;49571;49570;49572;49573;49574;49575;49576;49577;49578;49579;49580;49581;49582;49583;49584;49585;49586;49587;49588;49589;49590;49591;49592;49593;49594;49595;49596;49597;49598;49599;49600;49601;49602;49603;49604;49605;49606;49607;49608;49609;49610;49611;49612;49613;49614;49616;49615;49617;49618;49620;49619;49622;49621;49623;49624;49626;49625;49627;49628;52166;52167;52168;52169;52170;52171;52172;52173;52174;52175;52177;52176;52178;50777;50778;50779;65470;52785;52786;52787;52788;52789;52790;52791;52792;52793;52794;65471;65472;49629;52179;52180;52181;52183;52182;52184;52185;52186;52187;52188;52190;52189;52191;52192;52193;52194;52195;50780;50991;50990;50992;50993;50994;50995;50996;50997;50998;50999;51000;51001;51002;51003;51004;51005;51006;51007;51008;51009;51010;51011;51012;51013;51014;51015;51016;51017;51018;51019;51020;51021;51022;51023;51024;51025;51026;51027;51028;51029;51030;51031;51032;51033;51034;51035;51036;51037;51038;51039;51040;51041;51042;51044;51043;51538;51539;51541;51540;51542;51543;51544;51545;51547;51546;51548;51549;51550;51551;51552;51553;51555;51554;53002;53003;53004;53005;53006;53007;53009;53008;52197;52196;52198;52199;52200;52201;52203;52202;52204;52205;52207;52206;52208;52209;52210;52211;52212;52213;52214;52215;52216;52218;52217;52219;52220;52221;52222;52223;49630;49631;49632;50272;50273;50274;50275;50276;50277;50278;50279;50280;50281;50282;50283;50284;51249;51248;51250;51252;51251;51253;51254;50285;51255;51256;51257;51258;51259;51261;51260;51262;51263;51264;51265;51266;51267;51268;51269;51270;51271;51272;51273;51274;51275;51276;51277;51278;51279;51280;51281;51282;51283;51284;51285;51286;51287;51288;51289;51290;51291;51292;51293;53010;53011;53012;53013;53014;53015;53016;53017;53018;53019;53020;53021;53022;53023;53024;53025;53026;53027;53028;53029;53030;53031;53032;53033;53034;53035;53036;53037;53038;53039;53041;53040;53042;53043;53044;53045;53046;53047;54547;54548;54549;54550;50286;65473;50287;50288;50289;51294;51295;51296;51297;51298;51299;51300;51301;51302;51303;51304;51305;51306;51307;51308;51309;51310;51311;51312;51313;51314;51315;51316;51317;51319;51318;51320;51321;51322;51323;51324;51325;51327;51326;51328;51329;51330;51331;51332;51333;51334;51335;52795;52796;52797;52150;52151;52152;52153;52154;52155;52156;65474;52798;52799;52800;52801;52802;52803;52804;52805;52806;52807;52808;52809;52810;52811;52813;52812;52814;52815;52816;52817;54551;54552;54553;50781;50782;50783;50784;50785;50786;50787;50788;50789;54554;54555;54556;54557;54558;54559;54560;54561;54562;54563;50290;50292;50291;65475;54262;54564;54263;54565;54566;54264;54265;54267;54266;51045;51046;51047;51048;51050;51049;51051;51052;51053;51054;51055;54567;54568;53048;53049;53050;53051;53052;53053;53054;53055;53056;53057;53058;53059;53060;53061;53062;53063;53064;53065;53066;53067;53068;53069;53070;53072;53071;53073;53074;53076;53075;53077;53078;53079;53080;53081;53082;53083;53084;53085;53086;53087;53088;53089;53090;53091;53092;53094;53093;53095;53096;53097;53098;53099;53100;53101;53102;53103;53104;53105;53106;53108;53107;53109;53110;53111;53112;53113;53114;53115;53116;53118;53117;53120;53119;53121;53122;53123;53124;53125;53126;53127;53128;53129;53130;53131;53132;53133;53134;53135;53136;53137;53138;53139;53140;54569;54570;54268;54269;54270;54271;54272;52818;52819;52820;54650;54651;54652;54653;54655;54654;54656;54657;54658;54659;54660;54661;54662;54663;54664;54665;54666;54667;54668;54669;54670;54671;54672;54673;54674;54675;54676;54677;54678;54679;54680;54681;54682;54683;54684;54685;54686;54687;54688;54689;52224;52226;52227;52228;52229;52230;52231;52232;52233;52234;52235;52236;52237;52238;52239;52240;52241;52242;52243;52244;52245;52246;52247;52248;52250;52251;52252;52253;52254;52255;52256;52257;52258;52259;52260;52261;52262;52263;52264;52265;52266;52267;52268;52269;52270;52271;52272;52225;52273;52274;52275;52276;52277;52278;52279;52280;52282;52281;52283;52284;52285;52286;52287;52288;52289;52290;52291;52292;52293;52294;52295;52296;52297;52298;52299;52300;52301;52302;52303;52304;52305;55290;55291;55292;55293;55295;55294;55296;55297;55298;55299;55300;55301;55302;55303;55304;55305;55306;52306;52307;52308;52309;52310;52311;52312;52313;52314;52315;52316;52317;52318;52319;52320;52321;52322;52323;52325;52324;52326;52327;52328;52329;52331;52330;52332;52333;52334;52335;52336;52337;52338;52339;52340;52341;52342;52343;52344;52345;52346;52347;52348;52349;52350;52351;52352;52353;52354;52355;52357;52356;52358;52359;52360;52361;52363;52362;52364;52365;52366;52367;52368;52369;52371;52370;52373;52372;52374;52375;52376;52377;52379;52378;52380;52821;52822;52823;52824;52825;52826;52827;52828;52829;52830;52831;52832;52833;52834;52835;52836;52837;52838;52839;52840;52841;52842;52843;52381;52382;52383;52384;52385;52386;52387;52388;52389;52390;52391;52393;52394;52392;52395;52396;52397;52399;52398;52401;52400;52403;52402;52404;52405;52406;52407;52408;52410;52409;52412;52411;52413;52414;52416;52415;52417;52418;52420;52419;52422;52421;52424;52423;52425;52426;52428;52427;52429;52430;52431;52432;52433;52434;52435;52436;52437;52438;52439;52440;52441;52442;52443;52444;52445;52446;52447;52448;52449;52450;52451;52452;55307;52453;55308;55309;55310;55311;55312;55313;55314;55315;55316;55317;55318;55319;55320;55321;55322;55323;55324;55325;55326;55327;55328;55329;55330;55331;55333;55332;55334;55335;55336;55337;55339;55338;55341;55340;55343;55342;55344;55345;55346;55347;55348;55349;55351;55350;55352;55353;55354;55355;55356;55357;55358;55360;55359;55361;55362;55363;55364;55365;55366;55367;55368;55370;55369;55371;55372;55373;55374;55375;55376;55378;55377;54690;54691;54692;54693;54273;72839;55174;55175;55177;55176;52844;54274;52845;52846;52848;52847;52850;52849;52851;52852;52854;52853;52855;52856;52857;52858;52859;52860;52861;52862;52863;52864;55178;55179;55180;55181;55182;55183;55185;55184;55186;55187;55188;55189;55190;55191;55193;55192;55194;55195;55197;55196;55198;55199;55200;55201;55202;55203;55204;55205;55206;55207;55208;55209;55210;55211;55213;55212;55214;55215;55216;55217;55218;55219;55220;55221;55222;55223;55225;55224;55226;55227;55228;55229;55230;55231;55232;55233;55234;55235;55236;55238;55237;55240;55239;55241;55242;55244;55243;55245;55246;55247;55248;55249;55250;55251;54275;52865;52866;52867;52868;52869;52870;52871;52872;52873;52875;52874;52877;52876;52878;52879;52880;52881;52883;52882;52884;52885;52887;52886;52889;52888;52890;52891;52893;52892;52894;52895;52896;52897;52898;52899;52900;52901;52902;52903;52904;52905;52907;52906;52909;52908;52911;52910;52913;52912;52914;52915;52916;52917;52918;52919;52920;52921;52922;52923;52924;52925;52926;52927;52928;52929;52930;52931;52932;52933;52934;52935;52936;52937;52938;52940;52939;52942;52941;54694;54695;54696;54697;54698;54699;54700;54701;54702;54703;54704;54705;54706;54707;54708;54709;54710;54711;54712;54713;54714;54715;53141;53142;53143;53144;53145;53146;53147;53148;53150;53149;53151;53152;53153;53154;53155;53156;53157;53158;53159;53160;53161;53162;53163;53164;53165;53166;53168;53167;53169;53170;53171;53172;53173;53174;53175;53176;53177;53178;53179;53180;53181;53182;53183;53184;53185;53186;53187;53188;53189;53190;54716;54717;54719;54718;54721;54720;54722;54723;54724;54725;54726;54727;54728;54729;54730;54731;54732;54733;54734;54736;54735;54738;54737;54739;54740;54742;54741;54744;54743;54745;54746;54748;54747;54749;55252;55253;54750;53191;53192;53193;53194;53195;53196;53197;54751;54752;54753;54754;54755;54756;54757;54758;54759;54760;54761;54762;54763;54764;54765;54766;54767;54768;54769;54771;54770;54773;54772;54774;54775;54777;54776;54276;54277;54278;54279;54280;54281;54779;54778;54780;54781;54782;54783;54784;54785;54786;54787;54788;54789;54790;54791;54792;54793;54794;54795;54796;54797;54798;54799;54801;54800;54802;54803;54804;54805;54806;54807;54808;54809;65476;54810;65477;59073;54571;54282;55254;55255;55256;55257;55258;55259;55260;55261;55262;55263;55264;55265;55266;55267;55268;55269;55270;55271;55272;55273;65478;65479;54283;54284;65480;65481;65482;65483;54812;54811;54813;54814;54815;54816;54817;54818;54819;54820;54821;54822;54823;55274;55275;55276;55277;55278;55279;55379;55380;55381;55383;55382;55384;54285;65484;72840;65485;65486;65487;65488;65489;65490;72841;65491;65492;65493;65494;65495;65496;65497;65498;65499;65500;65501;72842;65502;59074;65503;65504;65505;65506;72843;65507;65508;65509;72844;72845;65510;65511;65512;65513;59075;65514;72846;65515;65516;65517;65518;72847;65519;65520;65521;72848;65522;65523;65524;65525;65526;65527;65918;65528;65529;71160;71161;71162;65707;65708;65709;71163;65710;65711;66275;66276;66277;66278;71164;71165;65712;66279;69308;69285;65919;69286;69287;69349;69350;69351;69352;66280;69310;69309;69311;69312;74271;69353;74272;77378;74273;74274;72609;77379;77380;74275;79062;87184;77412;77381;74276;79063;77413;77382;87185;77383;80967;77414;77415;77416;77417;83878;83879;91233;80968;86194;88993;88994;86126;91234;91235;91236;91237;91238;102120;102121;102122;102123;102124;102125;102126;102822;102127;104123;10009;69863;76870;83135;103189;126924;84087;59917;91103;81491;76871;89053;103190;77333;94970;103191;79626;87374;85447;14611;97051;77532;81022;89672;83874;102321;92356;102129;102128;102130;102322;102323;92357;99184;99183;102131;73557;136323;136324;136325;73558;73308;76168;86656;85930;88590;90942;95477;73559;77603;78772;81406;82900;84880;88085;88591;89829;90448;73560;92323;95255;107229;107230;107231;107232;111353;111354;152700;125707;73561;125708;73562;73563;73472;73564;74468;74512;73735;94674;110777;79660;73565;73566;111969;111970;111971;111972;70495;70496;45489;45488;21186;25038;32082;33102;134862;30151;40363;109364;109363;109365;109366;109687;109686;109689;109688;109691;109690;109693;109692;109694;110193;110194;110195;110196;110446;110447;110448;110449;110450;110451;110452;110453;110454;110455;110456;110780;110781;110967;110782;111605;111334;111336;111335;111550;111551;111606;111607;111608;111701;112085;112086;112087;112088;112089;117589;117590;117708;117591;117592;117709;117710;118042;118041;118044;118043;118400;118401;118403;118402;118832;118404;118833;118834;118835;118836;118959;119502;119503;119504;119505;119506;119507;119782;119781;119783;119784;119786;119785;119787;119788;119789;119790;109120;109119;109122;109121;109123;109124;109125;109126;109127;109128;109129;109130;109131;109132;109133;109134;109135;109136;109137;109138;109139;109140;109141;109177;109178;109179;109180;109181;121047;121048;121049;121050;121051;121052;121054;121053;121363;121362;121364;121365;121366;121367;121368;122158;122159;122160;122162;122161;122261;122260;122671;122672;122673;122674;122675;122676;122677;122678;122679;122680;123465;122861;123466;123467;123468;123469;124123;124124;124125;123757;124126;124127;124128;124301;124302;124303;124304;124305;125287;124592;124593;124594;125091;125288;125289;125290;125291;125598;125599;125600;125601;125602;125603;125954;126831;125899;125898;125900;125901;126384;126383;126956;126957;127460;126958;126959;126960;126962;126961;126963;127461;127463;127462;127464;127465;127466;127467;128284;128285;128286;128287;128288;128289;129063;128290;129064;129065;129066;129067;129068;129069;129070;129071;129392;129790;129559;129560;129561;129562;129563;129791;129792;129793;129794;129795;129851;130214;130028;130215;130216;130217;130218;130219;130220;130221;130222;130223;130224;130225;130226;130227;130229;130228;130230;130231;130232;130233;130234;130235;130236;130400;130401;130470;130402;130598;130599;130600;130601;130603;130602;130604;130605;130606;130607;130608;131027;131026;131028;131029;131031;131030;131082;131234;131236;131235;131237;131238;132258;132259;132261;132260;132262;132263;132264;132265;132266;132734;132735;133092;133093;133094;133095;133149;133552;133096;133554;133553;133555;133556;133866;133652;133867;133868;134117;134118;134327;134328;134329;134678;134679;134896;134897;134569;134898;134899;135594;135595;135929;135930;135931;135932;135933;136360;136361;136362;136363;136365;136364;136528;136529;136530;136749;136750;136751;136753;136752;137089;137088;137091;137090;137566;137567;137568;137569;137570;138043;137571;138044;138045;138046;138047;138048;138049;138050;138051;138616;138617;138618;138619;138620;138621;138622;138623;138624;138625;138626;138628;138627;138629;138630;138854;138856;138855;138857;139337;139338;139339;139852;139853;139862;139859;139856;139855;139857;139858;139861;140194;140198;140195;140197;140199;140196;140209;140636;143158;140634;143159;140635;141107;141106;141108;141958;141987;141952;141985;141998;141943;141999;141993;141939;141996;141940;141957;141949;141988;141986;141967;141963;141953;141965;141989;141991;141962;141974;141973;141972;141945;141977;141959;141994;141983;141951;141956;141941;142000;141975;141976;141978;141966;141942;142022;141954;141990;141970;141955;141964;141971;141968;141946;141984;141960;141947;141995;141938;141948;141997;142724;142723;142725;142728;142722;142738;142720;142733;142734;142726;143579;142737;143583;143589;143582;143580;143577;143581;143575;143578;143576;156175;143586;144806;144807;144795;144801;144805;144799;144797;144804;144796;144803;144798;145454;144800;145456;145453;145455;145457;145452;145450;145449;146630;146629;146624;146633;146625;146631;147715;146626;146634;146632;146628;146627;146635;146623;146622;147906;147910;147913;147912;147914;147909;147908;147911;147907;148193;148196;148195;148194;148337;148921;148914;148919;148915;148922;148920;149305;148913;149860;149870;149864;149873;149875;149865;149871;149861;149869;149867;149863;150975;150993;150976;150971;150973;150974;150970;150969;150980;150968;150964;150983;150979;150977;150978;150966;150972;150967;150965;150994;151268;151272;151271;151273;151267;151277;151270;151266;151274;151269;151275;151799;151793;151795;151794;151792;151796;151798;151931;151930;152237;153152;152236;152233;152238;152234;153786;153421;153416;153420;153426;153425;153422;153427;153418;153424;153883;153417;153898;153896;153897;153900;153899;154179;154913;154914;154912;154911;155979;155760;155980;155994;156020;155982;155989;155973;156112;156182;156262;156263;158591;158722;158725;157182;158046;157884;157883;157885;157408;158210;158211;158213;158592;158214;158590;158588;158721;158723;158724;158720;158719;158788;69560;158954;69561;69563;69562;69564;69565;69566;69567;69568;78262;69570;69571;69572;69573;69569;69574;69576;69575;69577;69578;78263;69579;69580;69581;69582;69583;69584;69585;69586;69587;69588;78264;69589;78265;78266;78267;78269;78268;78270;69590;69592;69591;69593;69594;69595;69596;69597;69598;69599;69600;69601;69602;69603;69604;69605;69606;69607;69608;69609;69610;69611;69612;69613;69614;69615;69616;69617;69618;69619;69621;69620;69622;69623;69624;69625;69626;69627;69628;69629;69630;69631;69632;69633;69634;69635;69636;69637;69638;69639;69640;69641;69642;69643;69644;69645;69646;69647;69648;69649;69650;69651;69652;69653;69654;69656;69655;69657;69658;69659;69660;69661;69662;69663;69664;69665;69666;69667;69668;69669;69670;69671;69672;69673;69674;69675;69676;69677;69678;69679;69680;69681;69682;69683;69684;69686;69685;69688;69687;69690;69689;69691;69692;69693;69694;69696;69697;69698;69699;69695;69700;69701;69702;69703;69704;69705;69706;69707;69708;69709;69710;69711;69712;69713;69714;69716;69715;69717;69718;69720;69719;69721;69722;69723;69724;69725;69726;69728;69727;69730;69729;69731;69732;69733;69734;69735;69736;69737;69738;69739;69740;69741;69742;69743;69744;69745;69747;69746;69748;73126;69749;69750;69751;69752;69753;69754;69755;69756;69757;69758;69759;69760;69761;69762;69763;69764;69766;69765;69767;69768;69769;69770;69771;70218;70219;70220;70221;70223;70222;70224;70225;70226;70227;70228;70229;70230;70231;70232;70233;70234;70567;70568;70896;70569;70897;70898;70900;70899;70901;70902;70903;70904;70905;70906;70907;70908;71078;71079;71266;71267;71268;71269;72266;71270;71395;71396;71397;71398;71399;71400;71401;71574;71575;71576;71577;71578;71579;71580;71581;71582;72289;72290;72291;72292;72293;72294;72295;72296;72297;72298;72299;72300;72301;72302;72303;72304;72305;72306;72745;72746;72747;72748;72749;72750;72751;72944;72946;72945;72947;72948;72949;72950;72951;73058;73059;73060;73061;73227;73228;73229;73230;73231;73232;73233;73234;73235;73236;73237;73569;73438;73649;73650;73651;73652;73653;73654;73655;78271;78272;78273;78274;78275;78276;78277;78278;78279;78280;78281;78282;78283;78284;78285;78286;78287;78288;78289;78290;78291;78292;78293;78294;78295;78296;78297;78298;78299;78300;78301;78302;78303;78304;78305;78306;78307;78308;78309;78310;78311;78312;78313;78314;78315;78316;78317;78318;78319;78320;78321;78322;78324;78323;78325;78326;78327;78328;78329;78330;78331;78332;78333;78335;78334;78336;78337;78339;78338;78340;78341;78342;78343;78344;78345;78346;78347;78348;78349;78350;78351;78352;78353;78354;78355;78357;78356;78358;78359;78360;78361;78363;78362;78364;78365;78366;78367;78448;78484;78485;78558;78559;78560;78561;78562;78658;78778;78777;78779;78780;78781;78872;78873;78874;78875;79292;79294;79293;79295;79296;79297;79298;79558;79559;79561;79560;79562;79725;79840;79841;79842;79873;79874;79875;80122;80414;80415;80416;80417;80419;80418;80557;80461;80921;80922;81320;81024;81321;81322;81323;81324;81325;81326;81327;81328;81330;81329;81673;81674;81675;81676;81826;81677;81827;81828;81829;82043;82044;82045;82046;82047;82506;82507;82508;82509;82831;82832;82833;82834;82835;82836;82856;82857;82858;82859;83056;83057;83058;83059;83268;83269;83270;83271;83272;83280;83493;83494;83495;83496;83497;83880;83881;83882;83883;83885;83884;83973;83974;83976;83975;83977;83978;84128;84129;84243;84244;84245;84246;84247;84248;84249;84250;84293;84251;84370;84369;84371;84372;84593;84592;84594;84595;84596;84623;84624;84625;84647;84925;84926;84927;84928;84929;84930;84964;84931;85044;85045;85230;85231;85232;85451;85452;85453;85454;85455;85457;85456;85458;85632;85633;85747;85748;85631;85749;85750;85751;85752;86073;86074;86075;86355;86076;86356;86495;86496;86634;86636;86635;86637;86638;86770;86771;87014;87015;87016;87339;87340;87341;87342;87343;87344;87345;87347;87346;87348;87349;87350;87351;87352;87353;87354;87355;87379;87380;87966;87967;87968;87969;87970;87971;87972;87973;87974;87990;87991;88655;88656;88657;88658;88659;88660;88662;88661;88663;88664;89119;88756;89120;89837;89838;89839;89841;89840;89843;89842;89844;89845;89846;89847;89848;89965;89966;90100;89967;90155;90154;90267;90268;90269;90270;90271;90272;90273;90274;90364;90365;90513;90366;90514;90629;90630;90631;90632;90633;90776;90777;90778;90864;90865;90866;90867;91047;91048;91239;91240;91241;91463;91464;91465;91466;91467;91468;91469;91470;91471;91627;91628;91629;91768;91769;91858;92221;92222;92223;92469;92470;92471;92472;92661;92662;92663;92664;93008;93009;93010;93011;93012;93013;93014;93015;93016;93251;93252;93743;93253;93744;93536;93537;93538;93540;93539;93665;93745;93789;94018;94019;94020;94022;94021;94183;94341;94342;94681;94682;94182;94683;94684;94685;94686;94973;94974;94975;94976;94977;95609;95893;95894;95895;95896;95897;95935;95898;96282;96283;96284;96394;96395;96631;96632;96805;96806;96807;96808;96809;97022;97023;97024;97025;97146;97147;97148;97149;97329;97553;97554;97555;97556;97557;97896;97897;99035;99036;99037;99038;99186;99039;99419;99418;99529;99530;99532;99531;99534;99533;99711;99535;99712;99713;99714;100105;100274;100106;100276;100275;100552;100553;100554;100636;100638;100637;100639;100640;100641;100642;100644;100643;100873;100874;101000;100999;101001;101002;101004;101003;101064;101270;101271;101272;101551;101273;101934;101933;101958;101959;102178;102177;102179;102180;102208;102181;102367;102502;102544;102545;102546;102548;102547;102863;102864;102865;102866;102868;102867;102869;102870;102871;102872;102873;102874;102876;102875;103224;102877;103225;103226;103228;103227;103229;103309;103310;103650;103651;103652;103653;103572;103600;103601;103602;103603;103604;103755;103822;103824;103823;103825;104179;104180;104182;104181;104392;104183;104393;104394;104395;104704;104705;104706;104707;105050;105051;105052;105053;105054;105055;105417;105419;105418;105420;105422;105421;109182;109367;109368;109555;109695;109696;109697;117342;109698;109699;109700;109701;110198;110197;110199;110200;110201;110202;110457;110458;110459;110460;110462;110461;110463;110783;110784;111337;111338;111552;111553;111609;111610;111611;111612;111702;112090;112091;112092;112093;112094;112095;112096;117343;112097;117344;117345;117346;117347;117348;117603;117604;117606;117605;117608;117607;117922;117923;117924;118210;118211;118212;118213;118361;118363;118362;118802;118595;118803;118804;118805;119464;119687;119465;119466;119467;119468;119469;119471;119470;119472;119473;119474;119475;119476;119477;119478;124199;119688;121359;121360;121361;119689;119812;119813;119814;119815;105516;105517;105620;106168;106169;106170;106171;106690;106691;106692;106693;106695;106694;106930;106931;106932;106934;106933;106936;106935;107236;107235;107238;107237;107239;107240;107241;108414;108597;108598;108600;108599;108601;108602;108603;108844;108845;108691;108847;108846;108848;109369;108849;108850;108852;108851;109183;109184;109185;109186;121130;121131;121369;121132;121370;122034;122035;123081;122096;122602;122758;123082;122759;122760;123083;123084;123085;123086;123087;123088;123089;123090;123091;123956;123957;123958;124200;124653;124654;124655;125604;125092;125292;125293;125314;125294;125295;125605;125955;125902;125903;125739;125904;126346;127060;127061;127062;127063;127064;127065;127066;127068;127067;127069;127070;127071;127072;127073;127074;127468;127075;127810;127811;127812;127813;127814;127815;127816;127817;127818;127819;128291;128292;128293;128294;128617;129006;129005;129007;129008;129009;129010;129011;129012;129013;129014;129407;129564;129565;129566;129567;129568;129570;129569;129796;129797;129798;129852;130281;130282;130403;130404;130280;130471;130609;131083;130610;131239;131240;131241;131242;131243;131244;132321;132026;132322;132323;132324;132754;132755;132756;132757;133004;133005;133006;133007;133558;133557;133559;133560;133653;133869;133870;133871;134119;134120;134570;134571;134572;134573;134575;134574;134681;134680;134682;135710;135934;135935;135936;135937;135938;136624;136625;136626;136627;136628;136629;137093;137092;137094;137095;137096;137097;137099;137098;137101;137100;138052;138053;138054;138055;138631;138056;138057;138632;138058;138060;138059;138061;138634;138633;138635;138636;138637;138638;138639;138640;138642;138641;138643;139083;139084;139085;139086;139087;139088;139090;139089;139091;139092;139093;139549;139548;139550;140092;140086;140091;140095;140090;140096;140088;140093;148126;140094;140085;140089;140087;140210;140206;140207;140612;140611;141969;141982;141961;141950;141981;141980;141992;141979;141944;142984;142981;142978;142976;142980;142974;142977;142979;142983;142993;142975;143367;144465;143887;144471;144463;144472;144461;144464;144473;144459;144470;144467;144469;144466;144460;144468;144458;144462;144994;144997;144990;145003;144993;145005;145004;145008;145001;145000;144998;145009;144989;144999;145002;145010;144995;144991;144992;144988;145458;145451;146570;146569;146567;146818;146814;146819;147916;147917;147919;147918;147915;148131;148132;148377;148378;148899;148898;149431;149430;149432;149783;149784;149791;149814;149872;149868;149862;149866;150150;151514;151508;151509;151518;151517;151519;151522;151515;151521;151511;151510;151513;151507;151512;151520;151933;151934;153160;153171;153167;153166;153162;153170;153165;153169;153163;153164;153161;153882;153861;153859;153860;153864;153863;153858;154188;154899;154901;154897;154900;155372;155354;155607;155758;156174;156264;156867;156870;156868;156877;156871;156864;157410;158177;158192;158193;158195;158587;158589;158695;158697;158696;158790;158791;158986;11581;80863;10530;10760;69790;70210;70211;70212;11019;80862;10818;11498;10011;10012;10014;11027;19780;19304;80304;80228;55623;157546;90798;157624;157524;157691;157677;157693;157654;157476;157534;157555;157539;157590;157714;157578;157617;157709;157602;157705;157618;157660;157501;157650;157627;157685;157605;157547;157681;157492;157635;157713;157679;157571;157632;157519;157499;157698;157686;157574;157634;157553;157554;157498;157689;157633;157597;157672;157657;157566;157509;157606;157695;157527;157721;157671;157644;157706;157699;157477;157594;157612;157620;157616;157582;157692;157652;157619;157535;157665;157538;157664;157637;157622;157639;157645;157584;157687;157599;157510;157609;157523;157491;157700;157552;157548;157707;157520;157506;157629;157658;157703;157607;157495;157613;157719;157487;157598;157533;157559;157723;157682;157651;157595;157708;157668;157688;157701;157615;157522;157488;157611;157515;157525;157684;157711;157583;157669;157680;157490;157710;157593;157478;157647;157569;157572;157674;157728;157621;157587;157696;157724;157500;157648;157526;157608;157588;157655;157475;157483;157561;157470;157482;157504;157649;157610;157636;157562;157573;157514;157541;157697;157473;157653;157715;157659;157560;157536;157530;157586;157646;157600;157716;157511;157642;157484;157718;157544;157486;157471;157558;158840;157565;157673;157481;157576;157704;157542;157563;157726;157603;157729;157516;157643;157591;157676;157556;157623;157663;158839;158854;157638;157496;157702;157564;157683;157505;157550;158874;157512;158851;157604;157577;157518;157517;157630;157485;157532;158878;157712;157507;157513;157725;157581;157575;157579;157521;157557;157625;157497;157568;157656;157667;157479;157662;157545;157493;157528;157596;157589;157537;157502;157720;157628;159005;157508;157472;157503;157469;157717;157585;157640;157494;157480;157631;157626;157529;157570;157540;157661;157727;157474;157551;157489;157722;157675;157666;157592;157678;157601;157531;157567;157694;157580;157670;157543;157641;157690;157614;157549;158879;158848;158858;158872;158834;158846;158871;158869;158847;158826;158865;158860;158855;158831;158852;158841;158859;158856;158832;158833;158864;158825;158862;158837;158835;158863;158853;158838;158849;158824;158844;158829;158828;158845;158827;158861;158823;55669;33283;33284;33280;33285;84821;10015;46180;27596;31417;32322;30214;33225;42372;42977;41062;32323;25897;34963;158843;34964;43828;45592;43831;40822;25904;44339;16271;72236;11118;10462;148376;148708;153836;19599;62349;87733;62350;28289;41644;25336;35618;10016;11555;10536;10644;10366;10445;10489;66382;66381;21185;63111;10017;29703;121573;121574;112212;127125;127126;127127;131731;132319;135182;139386;136715;136716;112214;121575;112213;11238;14187;112215;34021;27854;61463;11882;104145;104144;19299;11909;11137;11793;11915;31654;31408;44589;11408;11507;11607;11665;11788;11853;12100;14748;14803;31656;31655;31407;50069;68914;40467;57603;42052;45004;48205;50070;53896;54646;56216;57791;62101;64912;68915;73405;77531;31659;96450;101787;26023;31118;33477;76622;81126;84959;58795;122059;92320;96451;100995;101788;103838;61644;108758;122060;111788;117807;121355;123642;64893;128033;135290;139574;150280;150244;153584;153885;153884;155600;153952;156255;158900;69014;76914;73081;15588;11042;11041;11046;14177;10752;46740;46739;46741;10938;144568;142023;142362;143421;143420;143419;11030;12280;16193;106230;10704;148240;148241;88098;156753;146314;106231;14771;146313;111465;142640;48204;141262;141394;57792;12293;35452;15908;90247;90248;90249;106979;122718;156558;156103;156860;106980;136424;155999;156165;156057;156183;156184;156327;155998;156014;156162;156056;156032;156002;156001;156164;156000;156257;156158;156669;156197;156157;156256;156132;156375;12239;156166;80864;153585;15554;17692;153583;15555;34433;56972;57875;153586;20386;17693;133766;127859;148239;156473;106717;126779;55976;35299;22203;17694;10678;106718;10677;106232;10440;17695;126447;131734;132315;156471;158094;10480;12046;31738;10918;122487;122488;122489;141263;58593;80917;80918;80919;87240;87241;107227;107228;136931;79624;80920;58592;130175;144969;10766;17696;11209;11092;144968;110266;11210;125634;125635;12066;11483;11484;110267;14251;72602;127858;93525;72601;93515;94330;96730;95826;99185;100269;101953;99127;103505;103420;104350;105769;106308;106946;105075;109397;108812;111218;110398;118146;117632;121331;119610;121645;118569;125090;123080;129391;128150;132056;136919;145550;126951;148262;150851;149331;153652;146459;129587;133857;151621;130461;133528;132024;137137;134950;138575;136920;140654;142881;144451;147663;148263;145548;149353;149987;149061;152127;152037;154714;153434;154137;154722;156911;156187;158036;157199;158972;153507;60025;60026;60027;62803;60028;65633;62242;64287;72666;70174;70562;70925;72667;69984;73647;72907;76315;77745;79312;78585;81050;81746;82703;85407;84490;86253;85987;86571;88050;87310;91225;92844;92359;90118;93124;65676;60029;60031;60030;49793;90005;60032;93776;94337;96877;99264;90006;100256;103419;104387;105612;106974;109060;110325;117588;111110;118712;119839;127048;125148;131702;132045;133727;135855;146215;146458;149992;62357;64456;72962;70257;77822;78871;79360;81145;81790;82712;90315;88418;94050;91311;90309;103223;92494;93741;42825;30056;20383;11090;61396;35403;61395;118710;12031;54970;54969;73761;62810;62812;69513;58607;62811;34393;55719;55720;16390;63146;23832;23841;24239;11105;24238;19376;19387;24240;24015;24816;26970;25086;32398;18040;24013;18041;22511;22510;82848;104386;90266;81976;69444;85988;86419;88843;69445;19386;18140;69446;16364;17303;11734;21326;15623;16334;20977;20976;20985;11659;16012;15439;16094;11465;44872;22870;137855;138344;138339;138338;138345;138340;138218;138219;107059;107070;107060;107061;107062;107063;107065;107064;107067;107066;107068;107069;133801;133852;133859;133865;133862;133959;134116;134304;134418;134303;134419;133724;17157;10018;14377;17158;102916;78921;47700;50324;50323;50325;78920;50326;109724;18199;72966;72397;72672;72965;72396;139002;136283;138577;122755;121435;150987;150077;150076;150074;150081;122756;150788;151188;104176;150752;82567;78510;78509;103855;45005;18046;10019;45555;34395;34394;34397;34396;10666;31049;15968;14817;14816;10844;33270;149981;64588;64589;10843;58601;12057;10362;10363;11071;18357;108380;108381;14233;58107;25674;110561;51644;52157;52714;53544;54971;55457;56921;56922;57289;58431;58432;58433;58904;58905;58906;59503;59504;59714;60064;60065;61993;61994;64717;65896;65897;65898;69558;69559;71538;73019;73020;73021;73022;76087;76088;76089;77858;57561;77859;78623;79438;79440;79439;79441;80036;81205;81257;82901;88715;90799;90997;93533;93534;95926;95927;99363;100386;102958;104042;104658;105390;105041;105545;107100;107101;110568;110562;117808;118974;122670;22878;21303;63202;40885;33576;33564;32132;21304;32135;72683;71095;111232;112115;111233;80518;58602;58603;23736;10020;18376;25931;137180;25671;137181;100160;131193;106870;117406;117405;122854;124411;126338;106871;131566;14830;73615;73616;73617;73618;38650;38649;49696;73619;73620;73621;117407;73622;73624;73623;81181;61431;38648;81180;11795;33948;73965;76309;55285;55284;74186;20095;19765;19587;11365;10638;10021;11994;110095;62627;110385;117885;150799;73291;73292;87766;96315;81318;73290;81317;76307;135973;76308;77369;77370;135974;76774;76775;77367;19385;19522;44876;87776;25337;76773;24281;42261;24280;17638;54831;17583;25706;84431;88933;84432;88932;76589;33762;19703;38973;38876;38875;25348;11096;11715;29923;11948;104103;104102;11102;73490;42982;16189;16456;35974;14347;21328;26056;35975;19415;34055;10022;38911;24321;30105;30106;10023;11298;153948;117882;10502;25161;101810;117883;105160;105159;122369;123935;35454;42475;20297;15785;153926;153989;154381;158673;152543;152541;152542;153474;79358;20844;11667;10024;39519;84574;57913;39520;39521;53210;46215;23971;17241;11062;14350;11064;11554;11641;12063;12027;11411;77156;86721;110769;101026;105371;77155;11672;77249;77248;123936;124367;12010;22130;64258;49710;32434;19556;35224;85850;78074;21611;21174;25443;42264;39535;39536;77829;82581;78385;77823;78067;77857;59850;14304;14305;14306;14307;14308;10601;14218;14219;11072;11445;11674;11651;17663;10025;10460;57729;18188;15466;10507;14786;35621;21747;18365;12043;58975;46883;46884;109059;101355;101356;11052;32475;12011;28361;31351;46241;46242;40988;10026;10579;10568;11907;10027;20089;30215;76942;30216;30217;69368;69369;73945;74495;79861;81486;84728;85241;85896;81487;88385;92493;93865;106679;100996;125738;109947;111790;130212;131735;149315;137838;137837;149320;149212;149211;149210;152682;154662;136808;146595;139917;139911;139921;139915;139916;159060;49777;50976;52158;53842;54923;55533;55534;56862;62355;59446;60120;62119;62562;63166;65736;106136;66838;69106;70889;71940;81488;81489;81490;88716;87502;87503;89998;89999;90000;94611;94577;96625;97227;99478;101232;106200;122237;122238;122239;122240;119264;124652;122505;122506;122507;124588;124562;126339;136769;159110;159061;159111;44116;42983;11051;22311;40422;17840;40450;11318;25121;34245;11320;10728;10605;10886;35371;10329;11932;16260;10539;11510;47760;11152;38735;11857;86072;16261;10028;10029;10549;10828;10827;34097;34098;34096;16191;110770;110776;128055;56195;20749;20748;38829;136761;136760;87777;24233;76794;76792;76793;28332;38830;30020;30021;11198;20845;99933;99931;99932;58649;58648;20846;50676;20843;110289;110292;110290;110293;110291;47744;29854;66555;66554;10383;17193;11638;58652;58147;68963;71992;73439;74125;77247;82296;70135;51395;49674;70498;88881;91460;73762;55670;38199;72583;91461;77327;82295;20949;35430;38947;43007;51191;51527;50071;33550;20982;55819;20983;65643;65642;20950;53829;42370;71040;84987;71038;81210;124859;124860;71096;74511;74510;15450;14270;10927;12114;51585;11649;11648;17151;11647;51564;68927;68928;69442;16363;69930;74037;93410;69929;76163;68994;68993;76164;76256;104381;70302;73515;72726;76165;82663;84400;93381;68992;93401;93405;34334;34346;93402;93403;93406;21748;22541;93686;90998;91000;91947;90999;51160;19500;19548;15703;34236;18247;30052;15746;34242;10030;11440;11995;18375;10031;12237;11082;14225;19598;22158;11996;15849;14828;23637;10686;34474;10556;104901;104900;40984;11130;11973;22528;11548;154981;64914;64915;111073;152198;152197;11135;11707;11733;15470;18654;61650;62074;62973;64878;47748;70720;78069;77779;86048;81424;15562;18245;74106;11462;44426;16206;74107;13635;15565;48316;50599;64877;11917;47166;81554;11463;11553;42346;42345;24223;21035;18250;23733;23734;18251;18293;19524;19365;10389;46349;35473;42105;69316;69317;57035;73760;55692;55691;67258;27526;33901;40621;27527;25218;25200;25219;33140;33108;95662;117341;143477;96317;95663;20174;45503;45502;20147;20840;20173;25766;25934;10951;10034;18546;81601;18619;81602;46222;57617;69306;81603;84549;23963;23964;46221;31048;15461;11866;11759;22448;74324;74325;74323;10506;19749;34202;21727;25567;18410;10035;46236;46237;29899;30107;11114;73375;73374;73376;14819;91486;11776;26924;10388;15625;10724;11503;103302;103303;103304;103305;34489;15773;15774;21772;25083;10036;66391;145595;145682;145662;145644;145642;145599;145592;145660;145649;145627;24232;145673;145583;145573;145591;145598;145681;145596;145610;145688;145674;145630;145651;145640;145656;145620;145601;145683;145575;145685;145616;145588;145669;145650;145663;145690;145675;145670;145602;145678;145586;145612;145613;145625;145581;145652;145668;145637;145631;145611;145676;145647;145622;145617;145638;145684;145589;145648;145679;145572;145641;145618;145587;145633;145576;145657;145628;145624;145635;145664;145597;145579;145607;145646;145654;145614;145687;145680;145593;145594;145667;145658;145665;145672;145645;145653;145590;145580;145666;145619;145634;145686;145608;145643;145606;145615;145600;145623;145661;145578;145603;145621;145629;145639;145605;145609;145659;145574;145689;145632;145677;145604;145585;145636;145655;145671;145577;145582;145584;145626;145921;146041;145938;145869;145834;145912;145984;145949;145950;145983;145972;145801;145976;145935;145895;145807;145852;145993;145979;146010;145796;145901;145803;145866;145942;145827;145948;145958;145929;146014;145830;146006;145818;145992;145994;145985;145974;145858;146003;146004;146027;146011;145982;145828;145884;146012;146000;145889;146034;145897;145814;146008;145991;146039;145798;145941;145851;145955;145842;145799;145967;145936;145903;145823;145794;145952;146022;145810;145808;145825;146007;145863;145850;146023;146018;145995;145841;145885;145795;145930;145966;145975;145812;145876;145946;145874;145934;145886;145831;145971;145928;145838;145856;145960;145947;145797;145906;146024;145913;145953;146029;145999;145822;145853;145997;145954;145846;145981;145802;145956;145970;145905;145879;145861;146025;145804;145951;145907;145870;145964;145867;145908;146013;145916;146021;145859;145819;145843;145805;145996;146030;145919;145878;145868;145833;146005;145857;145836;145909;145840;145940;145887;145957;146040;145882;145811;145871;145837;145845;145839;145813;145986;145835;145924;145849;145806;145917;145883;145880;145815;146028;145965;145977;145865;145826;146037;145890;145896;145881;145939;145809;146038;145998;146019;145877;145854;145872;145904;145943;145968;145875;145987;145820;145922;145824;146035;145973;146031;145898;145959;146036;145899;146026;145900;145978;146020;145926;145893;145944;145873;146032;145918;145910;146015;145888;146016;145914;145864;145915;145832;145969;145821;145911;145961;146001;145847;145848;145816;145980;145860;146042;145891;145988;145844;145989;145927;145932;145945;145963;145923;145892;145925;145855;145817;145894;145933;145800;145990;146017;145920;145902;145829;146009;145962;146002;145937;145862;145931;146033;145570;145698;145792;145791;146490;146089;146552;146802;146548;146539;146800;146871;146872;146870;146965;146964;146963;146994;147137;147713;147191;147887;148033;148188;148187;148281;148318;148420;148424;148422;148687;148686;148688;148863;148940;148941;149026;149237;149775;149874;149732;149746;149741;150034;149738;149743;149730;149757;149778;149740;149767;149774;149764;149747;149751;149729;149779;149759;149781;149771;149770;149768;149758;149752;150031;149773;149750;149739;149777;149749;149772;149748;149753;149763;149754;150033;149765;149737;149728;149731;149756;149733;149766;149745;149734;150032;149769;149762;150045;149736;149755;149744;149780;149776;149761;150044;150064;150065;150298;150385;150297;150384;150835;150838;150833;150841;150831;150836;150840;150830;150842;150832;150839;150837;150834;151362;151363;151365;151151;151367;151145;151144;151147;151146;151364;151431;151366;151876;151879;151797;152066;152168;152067;152358;152359;152367;152575;152461;152596;152574;152468;152455;152583;152454;152588;152572;152591;152573;152582;153151;153150;153149;152576;152594;152893;153155;153411;153412;153410;153409;153520;153590;153539;153521;153532;153519;153763;154156;154157;154050;154272;154158;154649;154642;154644;154872;154329;154871;154870;154877;154874;154873;154884;154979;154969;155337;155029;155070;155098;155047;155033;155069;155049;155083;155041;155040;155037;155173;155064;155055;155084;155036;155189;155195;155095;155176;155344;155338;155205;155187;155051;155063;155186;155188;155061;155044;155031;155039;155065;155125;155066;155032;155046;155028;155062;155030;155175;155145;155343;155198;155340;155050;155147;155097;155054;155099;155156;155136;155027;155196;155161;155163;155057;155199;155180;155124;155034;155038;155043;155052;155068;155116;155067;155077;155045;155056;155078;155053;155558;155561;155339;155042;155135;155556;155560;155341;155555;155342;155557;155588;155562;155554;155619;155839;155838;155996;155997;156117;156238;156118;156125;156235;156444;156236;156239;156796;156237;157155;157080;156795;157205;157330;157156;157328;157381;157406;158088;158086;158087;158117;158988;158488;158435;158946;158945;158953;21793;158944;21794;21795;21796;21797;21919;21798;21920;21921;21799;21800;21922;21923;21802;21801;21803;21804;67025;21924;21805;21806;21807;21808;21925;21926;21809;21810;21927;67026;21811;21928;21812;21813;21814;21815;21816;21929;21930;21817;21931;21932;21933;21934;67027;21818;23980;23981;21935;21820;21819;21821;21822;21936;21937;21824;21823;21938;21825;21939;21826;21827;21828;21830;21829;21940;21831;21832;21833;21834;21941;21942;21835;21943;21944;21836;21837;67028;21838;21945;21839;21840;21841;21946;21947;21842;21843;21948;21949;21844;67029;21950;21951;21952;21845;21953;21846;21954;21847;21848;21955;21849;21956;67030;67031;67032;21851;21850;21957;67033;21958;21959;21960;21852;21853;21854;21855;21961;21962;21856;21857;23982;21858;21963;67034;23983;21859;21964;21965;21860;21861;21862;21863;21966;21864;21967;21865;21866;21867;21968;21868;21869;21870;21871;21872;21874;21873;21969;21875;21970;21971;21972;21973;21876;21974;21877;21878;21975;21879;21976;21977;21880;21978;21979;21881;21883;21882;21884;21885;21886;21887;21980;21888;21981;21982;21890;21889;21983;21891;21984;21892;21985;21986;21987;21988;21989;21893;21990;21894;21895;21896;21991;21897;21992;22134;21898;21993;22274;21994;22275;22082;67035;21899;21900;21995;21996;22135;21901;21997;21902;22064;21903;21904;21905;22036;21998;21999;22001;22000;22037;22002;22065;21906;22038;22103;22276;22039;22277;22104;22067;22066;22320;22238;22161;22136;22278;22163;22162;22137;22138;22197;22164;22279;22207;67036;22280;22281;22258;22282;22337;22321;22338;22339;22422;22340;22450;22423;22424;22425;22427;22426;22484;22513;22879;22485;36238;22514;36520;22880;36335;67037;37714;37153;37281;37577;36615;36309;37366;37097;23941;23788;23789;23942;23943;23944;23984;24005;24023;24285;24024;36838;24357;24286;24287;24288;24877;24289;24358;24290;67038;24818;24702;24673;24763;24703;24727;24704;24674;24919;25041;24764;24878;24920;25006;25007;25042;25095;25043;25044;25126;67040;67039;67041;67042;67043;67044;67045;67047;67046;67048;67049;25150;43639;25223;25175;25204;43640;25298;25353;25254;25205;43641;25206;67050;25255;25224;25256;25257;43642;25574;25447;25403;67051;25354;25355;25526;36608;38103;25462;37778;25496;25495;25497;25498;25499;25500;25501;25575;25527;25502;43643;25528;25576;25577;26203;25712;43644;25613;25578;43645;25579;43646;25580;25777;43647;25614;25713;25908;25714;25715;67052;67053;43648;67054;25812;38130;25739;25740;25741;37749;36643;25832;43649;25813;67055;25778;25849;67056;25850;26003;26004;67057;26073;27538;43650;26074;25949;43651;25972;25958;25973;26028;26204;26075;43652;26076;26973;26974;26077;43653;26929;26205;26206;26207;37953;43654;43656;43655;43657;37552;43658;37788;37507;43659;36400;27539;27541;27540;27543;27542;67058;37627;67059;43660;37428;37449;37318;36452;36664;37834;38001;67060;37859;36614;43661;29190;37163;36264;67061;29255;37591;29750;36661;43662;29751;29256;43663;67062;29730;29752;29731;43664;29753;29754;43665;29931;29901;29967;29966;43666;30022;43667;43668;29932;29933;43669;29934;30154;43670;30044;43671;43673;43672;30221;30220;31138;30222;31054;31301;31139;31140;31141;31995;31310;31168;43674;31302;31142;43675;31293;43676;31586;31996;31997;31424;31627;43677;31609;31610;43678;43679;31741;31685;31684;31946;32139;31947;31998;31999;43680;43681;32000;32001;43682;43683;32002;43684;32326;43685;32401;32456;43686;43687;43688;33258;43689;33109;33170;33364;43690;33365;43691;33110;33111;43692;33171;33142;33448;33366;33172;33524;43693;33399;33400;33229;43694;33489;43695;43696;33735;33736;43697;43698;33490;33449;43699;33525;33526;43700;43701;43702;37794;43703;43704;43705;43706;34051;33890;43707;67063;34052;43708;34062;43709;34278;34170;43710;34326;34222;43711;34462;34502;43712;34339;34375;36765;34463;43713;34503;37062;37176;37341;35186;43714;36485;43715;35263;43716;37692;43717;43718;43719;35172;35173;35260;43720;43721;43722;35187;35310;43723;35311;43724;35353;43725;43726;35650;35312;43727;43728;35589;35424;35590;38891;35591;35651;35602;35603;35718;36021;35719;35767;35789;35780;43729;38867;43730;43731;36089;43732;35768;35965;38892;43733;35966;38894;38893;35931;43734;43735;38895;43737;43736;36039;43738;43740;43739;36107;38896;36155;43741;43742;36187;36188;38897;43743;38898;43744;38899;43745;38900;38901;38902;43746;38721;38903;43747;43748;67065;67064;43749;43750;67066;38868;43752;43751;38930;43753;39303;43754;39373;43755;39423;39424;43756;43757;43758;39438;43759;43760;43761;39523;43762;43763;39524;43764;39585;43766;43765;43767;43768;39801;40344;40345;43769;43770;43771;43772;40394;40423;40436;40437;43773;43775;43774;43776;40532;40593;40533;40625;40626;43777;40753;40779;40808;43778;43779;43780;43781;43783;43782;43784;43785;43786;43787;43789;43788;40893;40878;40894;40932;40933;40934;43790;43791;43792;43793;43794;43795;41627;43796;43797;43798;43799;43800;42059;42071;42151;43801;43802;43803;43804;43805;43806;42257;42265;42266;42295;42296;42309;42330;67067;67068;67069;67070;67071;67072;67073;67074;67075;67076;67077;43808;43807;43031;43809;43070;43810;43071;43072;43811;43812;43354;43355;43356;43357;43358;43359;43624;43625;43832;43817;43866;44026;44027;43878;44028;44096;44097;44098;44099;44395;44427;44428;44598;44677;44948;44647;44648;44649;44671;44949;44968;44962;45053;44969;45067;45066;45089;45088;45068;45090;45091;45092;45361;45093;45362;45346;45363;45364;45365;45366;45367;45368;45347;45442;45443;45444;46873;46754;46755;45582;45594;46756;46757;46758;46256;46759;46257;46760;46258;46694;46695;46696;46761;46762;46874;46763;47031;48408;47032;47101;47788;47102;48265;47129;47703;47702;47737;47738;47739;48341;47740;47741;47789;47790;48266;47805;48342;47806;47865;47866;48267;47867;47903;48343;48217;48218;48219;48268;48269;48909;48301;48302;48303;48910;48409;48741;48911;48742;48743;48744;48745;48912;67078;67079;49203;49179;49180;49204;49181;49182;49261;49183;49262;49634;49633;49713;49714;67080;49715;49716;49781;49936;49809;49810;49811;49812;49813;49814;50003;50790;50791;50792;50794;50793;50795;50796;50797;50798;50799;50800;50801;50802;50803;50804;50805;50806;50807;50808;50809;50810;51144;50862;50863;51775;51776;51777;51778;51779;51780;51145;51146;51781;51783;51782;51784;51426;51785;53413;53414;51786;51885;53415;51886;51887;53831;53416;53417;51888;53418;53419;53420;53421;52505;53422;53423;52506;52507;52508;52509;52510;53424;53425;53426;53427;52617;53428;52757;52943;52944;52945;53429;53577;53239;53504;53430;53338;53431;53339;53494;53432;53433;53434;53599;53598;53600;53601;53643;53642;53813;53814;53870;53815;53871;53872;67081;54936;67082;67083;54937;54938;67084;55110;55000;55835;55001;55404;55405;55837;55836;55515;67085;55536;55609;56260;56261;56262;56263;56264;56265;56266;56267;55838;56268;55839;56270;56269;55840;55860;55861;55862;55864;55863;55996;55924;56271;55997;56272;56273;56071;56072;56046;56073;56127;56126;56128;56129;56274;56247;56275;56248;56276;56249;56311;56312;56338;56380;56408;56780;56514;56535;56536;56559;56569;56570;56621;56654;56694;56695;56558;56781;56782;56783;56784;56878;56879;56880;67086;56973;56985;57373;57375;57374;57376;57068;57378;57377;57379;57140;57291;57380;57381;57307;57404;57354;57405;57406;57485;57486;57562;57487;57488;57642;57667;57668;57669;57730;57731;57692;57732;57733;57734;67087;57777;57779;57778;57780;57806;57807;57808;57809;57810;57864;57878;57922;57923;57924;57951;57960;57962;57982;57961;58041;57983;57984;57985;63564;58042;58108;58096;58109;58276;58275;58294;58344;58345;58390;58403;58404;58457;58502;58458;58503;58504;58519;58584;58663;58664;58665;58666;58752;58685;58803;58778;58849;58850;58852;58851;58879;67088;59019;59020;59021;59058;59165;59212;59213;59214;59233;59312;59294;59378;59388;59412;59413;59414;59479;59480;59482;59481;59570;59609;59918;59560;59919;59920;59921;59922;59923;59924;59925;59926;59927;59928;59930;59929;59931;59932;59933;59934;59936;59935;59687;59719;59937;59737;59738;59938;59838;67089;59949;59939;59960;59981;59998;59999;60001;60000;60054;60066;60121;60067;67090;67091;67092;67093;67094;61397;61398;61399;61400;61437;61450;61464;61554;61626;61599;61600;61661;61651;61682;61683;61720;61721;61722;61753;61754;61999;61790;61789;61791;62047;62048;62066;62081;62082;62083;62084;62085;62103;62104;62126;62217;62127;62187;62206;62316;62431;62395;62396;62484;62485;62520;62521;62522;62523;62524;62596;62597;62630;62598;62720;62763;67095;62764;62862;62871;62920;62910;62911;62928;62921;63005;63006;63100;63187;63171;63207;63305;63306;63565;63567;63566;63568;63569;63570;63571;63572;63573;63574;63575;63576;63577;63578;63579;63580;63431;63432;63581;63670;63671;63672;64081;67096;63673;64381;67097;64383;64382;64385;64384;64386;64492;64511;64536;64512;64537;64562;64691;64692;64729;64730;64896;64731;65132;65133;65134;65135;65136;65137;65138;65139;65140;65141;65142;65143;65144;65145;65146;65147;65148;65149;65150;65151;65152;65153;65155;65154;65156;65157;65159;65158;64939;65031;64971;65061;65032;65160;65161;65062;65063;65162;65079;65064;65163;65164;65080;65165;65166;65167;65224;65225;65226;65227;65554;65530;65555;65618;65644;65634;65661;65693;65725;65694;67098;65726;65770;65771;65903;65920;65932;65987;66204;65988;66001;66027;66002;66003;66217;66205;66206;66257;66396;66397;66429;66430;66451;66521;66485;66528;66673;66674;66675;66701;66702;66791;66775;66776;66887;66888;66946;66947;66965;66996;66997;66998;67183;67235;68858;68859;68941;68940;69022;69140;69141;69142;69144;69143;69215;69245;69246;69247;69336;69434;69497;69496;69791;69779;69936;69937;69998;69999;70000;70001;70104;70179;79148;79149;79150;79151;79152;79153;79154;70344;79155;70400;70464;70483;70501;70570;70547;70571;70572;70633;70634;70635;70685;70686;70687;70688;70699;70747;70769;79156;79157;79158;79159;79160;79161;79162;79163;79164;79165;79166;79167;79168;79169;79170;79171;79172;79173;79174;79175;79176;71178;71179;71236;71237;71379;71271;71272;71273;71274;71354;71355;71356;71357;71380;71501;71539;71540;71583;71584;71865;71866;71901;71978;71979;72044;72153;72045;72205;72246;72267;72268;72351;72350;72352;72436;72437;72490;72863;72491;72492;72493;72561;72592;72673;72864;72865;72694;72733;72732;72803;72804;72866;72805;72910;72986;72987;72988;73062;73063;73064;73084;73085;73105;73162;73163;73191;73192;73276;73277;73309;74126;73319;73320;73387;73464;73578;73579;73580;73656;73675;73712;73790;73791;73922;73923;74127;74128;74094;74141;74142;74226;74227;74309;74310;74311;74312;74333;74334;74335;74471;74472;74473;74475;74474;76170;76217;76218;76429;76430;76431;76432;76537;76538;76623;76684;76685;76687;76686;76688;76715;76716;76837;76838;76779;76839;76840;77005;76948;77058;77006;77031;77032;77033;77034;77059;77060;77121;77187;77188;77239;77286;77384;77439;77546;77505;77506;77507;77508;77509;77564;77584;77609;77692;77989;77990;77991;77992;77993;78396;77781;77834;77835;77879;77918;77994;77995;77996;78043;78070;79177;79178;79179;79180;79181;78397;79183;79182;79184;79185;78486;78487;78488;78489;78490;79186;78516;78517;78605;79187;78606;78607;78608;78609;78751;78702;78782;78783;78860;78876;78895;79188;79219;79189;79220;79299;79300;79313;79338;79361;79563;79642;79643;79693;79694;79726;79695;79727;79876;79843;79877;79878;79879;79880;79881;80088;80056;80105;80106;80107;80123;80124;80125;80360;80400;80526;80527;80867;80868;80869;80870;80969;81005;81054;81025;81026;81055;81089;81188;81276;81277;81278;81440;81441;81442;81443;81503;81525;81885;81886;81887;81888;81890;81889;81892;81891;81893;81894;81895;81896;81897;81898;81954;81759;81792;81924;81925;81997;82083;81998;82474;82475;82272;82476;82431;82477;82478;82510;82621;82667;82714;82783;82801;82802;82803;82804;82928;83000;82999;83001;83118;83375;83376;83377;83417;83378;83379;83380;83418;83419;83420;83421;83530;83994;83979;84091;84197;84092;84198;84199;84276;84345;84346;84347;84348;84406;84405;84445;84446;84506;84550;84648;84769;84770;84771;85008;84772;85009;85010;85011;85012;85013;85014;85015;85016;85017;85018;85019;85020;85021;84883;85022;84884;85023;85024;85025;85026;85027;85028;85029;84988;85030;85046;85047;85049;85048;85305;85306;85336;85127;85387;85459;85460;85462;85461;85464;85463;85516;85634;85636;85635;85637;86497;86498;86499;86500;86501;86502;86503;86504;86505;86506;86507;86508;86509;86510;86511;86512;86514;86513;86515;86482;86483;86484;86485;86516;86517;86518;86549;86550;86611;86639;86723;86724;86711;86725;86726;86831;86887;86917;87127;86918;86919;87128;87129;87130;87131;87132;87133;87134;87135;87136;87137;87138;87139;87140;87141;87142;87143;87144;87145;87146;87147;87148;87149;87150;87151;87152;87153;87154;87155;87156;87157;87159;87158;87173;87160;87067;87174;87161;87223;87224;87281;87283;87282;87284;87285;87356;87357;87422;87358;87423;87381;87424;87425;87426;87540;87604;87770;87778;87779;87780;87781;87782;87783;87784;87785;87930;87992;88060;88061;88062;88063;88148;88147;88419;88386;88420;88421;88510;88509;88757;88683;88758;88759;88761;88760;88763;88762;88844;89059;89060;89087;89088;89760;89761;89762;89763;89849;89850;89943;89944;89968;89969;89970;89971;90068;90069;90120;90121;90122;90123;90124;90156;90157;90158;90159;90275;90276;90367;90368;90449;90450;90451;90452;90634;90636;90635;90637;90721;90722;90723;90837;90868;91017;91018;91019;91020;91166;91167;91168;91169;91170;91171;91172;91104;91106;91105;91195;91390;91391;91392;91393;91394;91504;91503;91635;91636;91732;91785;91786;91787;91788;92002;92026;92378;92379;92473;92566;92567;92586;92680;92702;92681;92703;92682;92726;92826;92950;92951;92872;92952;93052;93029;93129;93099;93318;93319;93541;93594;93666;93542;93777;93778;93780;93779;93830;93803;93965;93867;93967;93966;94202;94140;94203;94254;94292;94471;94472;95320;94409;95321;95322;95323;95324;95325;95327;95326;95328;95329;95331;95330;95332;95333;95334;95335;95336;95337;95338;95339;95340;95341;95342;95343;95344;95345;95346;95347;95348;95349;95350;95351;95352;95353;95354;94740;94741;94742;94978;94979;94980;94982;94981;95355;95356;95372;95373;95444;95484;95576;95577;95952;96004;95953;96048;96036;96049;96050;96182;96285;96286;96339;96340;96341;96342;96457;96456;96567;96568;96569;96613;96633;96664;96810;96811;96812;96929;96813;96962;97026;97027;97028;97134;97194;97330;97305;97331;97389;97390;97391;97472;97558;97527;97528;97611;97612;97613;97756;97836;97795;97837;97949;97951;97950;97952;97953;97954;97955;97956;97957;97959;97958;97960;97961;99040;97962;99316;99041;99317;99379;99380;99381;99382;99383;99384;99481;99482;99483;99536;99538;99537;99539;99540;99541;100065;100066;100068;100067;100174;100326;100175;100327;100329;100328;100358;100428;100359;100429;100430;100555;100557;100556;100558;100770;100815;100935;100936;100937;100938;100965;101005;101091;101119;101120;101235;101236;101237;101488;101489;101823;101906;101907;102020;102735;102734;102736;102737;102738;102739;102741;102740;102743;102742;102744;102745;102746;102747;102748;102749;102750;102751;102752;102753;102754;102755;102756;102757;102758;102759;102760;102761;102762;102878;102763;102503;102504;102764;102765;102766;102505;102767;102768;102769;102879;102549;102881;102880;102883;102882;102884;102885;103035;103196;103145;103144;103230;103362;103384;103385;103387;103386;103517;103573;103574;103605;103606;103706;103790;103707;103826;103881;103946;104106;104053;104054;104217;104218;104256;104257;104396;104583;104584;104675;104789;104790;104817;104818;105057;105056;105059;105058;105060;105061;105062;105114;105588;105589;105556;105590;105591;105592;105593;105594;105658;106107;106108;106233;106172;106234;106317;106354;106353;106535;106355;106356;106566;106567;107074;107075;107269;107271;107270;107272;107273;107275;107274;108339;108338;108340;108341;108342;108343;108344;108383;108384;108489;108660;108898;108899;108900;109370;109371;109372;109373;109374;109375;109376;109377;109378;109379;110235;110236;110237;109525;109380;110238;109526;110239;109527;110240;109528;110241;110242;110243;109529;109530;110244;110245;109655;109656;110246;110247;109923;110249;110248;109814;109815;109958;109959;109961;109960;109962;109963;109965;109964;109966;110203;110204;110205;110206;110296;110298;110297;110569;110536;110645;110646;110648;110647;110649;110650;110652;110651;110663;110905;110906;110907;110908;111074;111075;111013;111076;111077;111079;111078;111339;111355;111340;111356;111613;111341;111615;111614;111616;111617;111703;111704;112021;112020;112022;112163;112164;112165;118982;117485;117486;117826;117827;117829;117828;117830;117831;117832;117833;118018;117834;118019;118020;118021;118022;118117;118118;118156;118311;118312;118405;118406;118983;118984;119690;118985;119691;118986;118987;118988;118989;118991;118990;118992;118993;118994;119692;118996;118995;118997;118998;118999;119000;119001;119002;119003;119004;119005;119044;119045;118838;118837;119046;119047;119006;119048;119049;119050;119051;119661;119662;119663;119664;119665;119479;119666;119873;119874;119754;119791;120956;121192;121216;121371;121545;121546;121548;121547;121550;121549;121551;122061;122062;122719;122063;122064;122065;122350;122351;122352;122353;122450;122451;122452;122618;122761;122619;122951;122952;122953;122954;122955;123015;123014;123092;124414;123558;123559;123560;123561;124032;123562;124033;124034;124093;124035;124202;124201;124241;124203;124242;124415;124416;124871;124872;124873;125166;125167;125168;125169;125170;125171;125172;125315;125316;125552;125553;125554;125801;125802;126074;125803;126006;126007;126008;126075;126076;126219;126385;126386;126387;126388;126389;126479;126480;126649;126650;126651;126790;126791;126792;126989;126990;126991;126992;126993;127469;127470;127471;127472;127473;127474;135312;128330;128331;128332;128651;128333;128335;128334;128337;128336;128338;128339;128340;128341;128342;128343;128344;128345;128346;128347;128348;128349;128350;128351;128352;129015;128353;128354;128355;128357;128356;128359;128358;128360;128361;128363;128362;128364;128365;128366;128367;128368;128369;128370;128371;128372;128373;128374;128375;128376;128377;128378;129016;128379;128380;128381;128382;128383;128384;128385;128386;128387;128389;128388;128391;128390;128392;129017;127918;127919;129018;129019;129021;129020;129022;128976;129023;128977;129024;129538;129393;129471;129472;129473;130176;130128;130129;130177;130178;130179;130180;130181;130434;130435;130436;130472;130473;130474;130976;130977;131032;130978;131033;131034;131569;131570;131571;131572;131779;132398;131958;132399;131959;132400;132401;132402;132404;132403;132405;132939;132873;133097;133099;133098;133100;133309;133311;133310;133312;133313;133314;133315;133317;133316;133507;133442;134087;133508;133767;133624;133768;133769;133770;133771;133872;134088;134089;134090;134091;134121;134122;134123;134237;134238;134239;134385;134386;134453;134900;134901;134902;134903;134904;134905;134907;134908;134909;134910;134906;134912;134911;134913;134914;136771;135313;135314;135315;135317;135316;135319;135318;135320;135322;135321;135323;135324;135326;135325;135327;135328;135330;135329;135331;135332;135334;135333;135335;135336;135337;135338;135339;135340;135342;135341;135343;135344;135346;135345;135348;135347;135349;135350;135351;135352;135353;135355;135354;135356;135357;135358;135359;135360;135361;135362;136015;136016;136017;136194;136018;136195;136019;136196;136197;136198;136020;136199;136200;136773;136772;136775;136774;136776;136777;137005;137006;137149;137007;137150;137151;137152;137281;137336;137337;137338;137370;137415;137729;137730;137761;137762;137763;138378;138377;138501;139422;139416;139423;139235;139236;139417;139420;139415;139424;139418;139419;139421;140123;140119;140583;140585;140584;141613;141625;141611;141585;143283;141630;141600;141617;141597;143285;141593;141631;141635;141614;141608;141601;141623;143286;141605;141604;141634;141586;141589;141602;141591;141595;141594;141579;141584;141633;143284;141598;141583;141624;141596;141629;141587;141590;141632;141612;141599;141616;141588;141609;141622;143287;141610;141626;141578;141607;141592;143288;141618;141636;142647;142609;141619;142600;142608;142599;142651;142650;142604;142605;142602;142649;142646;142601;142598;142603;142606;142607;142648;142645;142644;143057;143122;143052;143046;143048;143050;143056;143047;143049;143051;143113;143055;143910;144004;145444;146880;143114;146881;144972;144549;144370;144974;144971;144973;144547;146883;145037;145038;145439;145441;145519;146099;146100;146098;146097;146315;149505;146882;146879;146958;148557;147884;147883;147885;148184;148185;152361;148426;148425;148885;148745;148882;149207;149206;149208;149205;150771;150774;150773;150765;150767;150770;150764;150769;150772;150762;150763;151448;151614;151674;151979;151987;152497;152360;152663;152666;152664;152910;152909;152973;152970;152971;152976;153473;153472;155551;155545;153767;155547;155553;155543;155552;155541;155549;155546;155548;155550;155538;155539;155540;155759;155757;155761;155821;155942;155863;156241;156242;156240;156460;156820;156821;156791;157118;157065;157064;157138;157294;157452;157453;158081;158083;158436;158438;158440;158444;130262;158439;44340;80224;80223;87052;80357;87053;87054;80225;80358;29722;93244;31299;80221;80226;14640;65984;65983;40821;47588;63558;63559;63560;73270;76459;77004;40820;20348;22876;20347;17230;17231;10037;11755;10797;11640;14314;14316;14317;14315;10652;10651;10038;12096;50512;15710;33532;10308;10552;11721;10040;11722;10041;33279;10042;11723;10043;18356;40983;65739;101086;101087;59837;101088;105256;101089;101090;104670;104996;107072;104997;105084;105085;104998;104999;104847;105000;104669;128283;128149;134563;134891;105001;105002;134890;10919;18528;10044;62076;62075;104740;52016;12084;139913;22094;11518;17584;55994;20162;20160;15617;15620;15618;15621;15622;20961;16320;16319;13849;18131;12281;66518;65740;11011;17772;17773;17774;17775;17776;17777;69481;71173;77052;77053;83766;91192;91854;91855;76127;83087;84193;84726;84727;85895;93480;137557;48944;17778;48945;48946;48947;48948;48949;48950;48951;48952;48953;48954;48955;48956;48957;48958;48959;48960;48961;48962;48963;48964;48965;48966;48967;17779;48968;48969;55385;48971;17780;48972;48973;48974;17781;48975;48976;48977;48978;48979;48980;48981;48982;48983;48984;48985;48986;48987;48988;48989;48990;48991;48992;48993;17782;48994;48998;48995;71431;48996;48997;48999;49000;49001;49002;49003;49005;49004;71432;49006;49007;49008;49009;49011;49010;49012;49013;49014;69949;70137;49015;71433;66697;49016;69335;49017;49018;49019;49020;49021;49022;49023;49024;49025;49026;49027;49028;70170;68961;69303;69913;49029;49030;49031;49032;49033;49034;49035;49036;70123;49037;69923;49038;49039;49040;49041;49042;49043;49044;49045;49046;49047;49048;49049;49050;49051;71434;49052;49053;49054;49055;70164;56045;49056;49647;17783;17784;49648;17785;52586;69954;70095;56313;56314;56315;56316;56317;56318;56319;56320;56321;56631;79271;79272;79273;66698;58831;58566;58567;58568;58569;58570;58571;58572;58573;58574;58621;71435;69914;59716;59857;59858;70024;69425;71436;62370;62371;67203;62372;62373;67204;62374;62375;62376;62760;62710;69135;70125;70096;70124;70127;69426;65885;65886;65887;65888;65889;65890;65891;65931;67218;69924;70078;66861;69789;66699;66700;69921;69076;70076;69079;69082;69103;69856;69376;69377;69378;69379;130060;130061;69553;70314;70315;70316;70317;70318;70319;70320;70321;70322;70312;70313;70323;71437;70474;70493;71438;70784;70914;71995;72183;72184;72185;72668;72705;72724;73018;73210;73211;73269;73340;73341;73342;73343;73344;73345;73346;73347;73533;73915;73916;74015;74016;74241;88988;88989;88990;88991;76312;77153;77154;77759;78028;78029;78030;78031;78032;78033;77984;78034;78035;78036;78037;78693;78240;78750;79218;79690;81911;83876;81980;86675;81423;81594;81595;81596;92412;81421;82498;83528;81972;90525;90526;82584;82585;82571;82574;82575;82572;82573;82568;82569;82570;82852;108954;108955;83054;130062;83767;130063;84287;85685;85126;85124;85125;85255;130064;86246;86247;86248;86249;86250;92457;88102;93528;93529;93530;93531;86914;86915;86916;86950;86951;130013;87504;87819;97469;88103;91962;88592;88488;130065;88717;130014;88713;89051;89690;89783;89784;89785;90066;90527;90353;90354;90355;90356;68997;93562;90307;90308;90357;90310;90311;90358;90359;90766;93108;91960;90861;90862;90893;90714;91759;91760;130015;91130;130066;91946;91321;91338;91730;91761;92630;92948;93563;93122;93123;93192;93193;93048;93347;94108;93736;93737;94054;93738;93866;131164;131165;94252;108956;108957;130763;130971;130764;130765;94762;94763;130761;130762;93898;93899;130766;130767;130597;95257;95256;94354;94109;129817;129818;94070;129819;94469;94291;94680;95538;96047;95479;102995;99400;97211;99266;99371;99372;103783;97991;97992;97943;97944;97945;97946;99026;99027;99028;99029;99031;99032;99033;100423;103510;103509;99471;99472;99473;99665;99666;99667;99668;102360;102361;102362;102363;99687;99688;100424;99985;130093;103511;100425;100426;99981;100416;103512;101264;100993;100838;100840;102202;101267;101298;101269;101268;101528;101529;102018;131079;131080;131131;131187;131188;131393;131394;131395;131396;102497;102498;102499;130094;102364;102778;102779;129820;103113;103049;129821;103459;103702;103668;103565;103693;131192;103694;103695;131327;103669;103675;103676;103566;103670;103671;103567;103672;103817;103819;103856;104127;104177;104480;104461;104460;104533;130067;130095;104718;104661;104662;104663;105257;105112;106400;106401;106630;107095;106484;107091;133861;107150;129781;108406;108404;132697;132698;132680;132052;109087;109088;131166;131400;131130;131399;131321;131325;131326;124196;108880;108881;108882;131397;131398;125031;134712;108720;108721;131729;132078;131951;131322;131323;108722;108723;132039;131324;132033;132077;131126;108724;135922;133044;109404;132043;132042;109393;109401;109400;110399;109402;134981;133265;109728;110564;110565;110566;131703;110686;130016;124172;130068;130096;130017;110535;110567;110687;138346;138435;138347;138436;138348;138437;135198;110688;138438;138349;138350;138439;138351;138352;138353;111211;134226;130097;130098;123521;112217;133226;112218;112288;112219;123415;112289;123515;140653;122249;117943;117944;117945;132041;117946;117947;117948;117949;117950;132074;132104;117951;117952;132048;132049;132044;117953;123788;117954;133472;133473;117955;117956;133089;127893;144504;130069;117917;145537;130018;133267;134946;128877;134947;118462;118461;118821;118822;152699;119844;121248;131727;131728;126103;129948;124773;123789;124774;126343;126104;124060;129822;121395;126118;129947;130023;126102;139801;133958;139802;122483;136978;131699;125775;132318;126509;126599;122751;126073;132342;132244;132414;132053;131700;132245;132055;125390;132246;126477;127111;134948;138354;127110;131778;132100;138355;125391;124589;123790;124277;123791;127916;127098;134951;127099;123792;129499;127913;126507;127912;127917;130092;128526;129812;128421;123793;132723;134713;123794;127049;123795;127050;134894;128113;128114;128615;128051;124061;124325;126119;126822;124326;126100;126101;126105;124334;138440;124331;124332;124333;137072;137073;139324;137234;134213;137235;136768;126341;136972;136973;136829;128063;138380;128064;126823;125256;139806;137074;137075;136970;136971;126632;126916;125341;125032;126310;129823;126311;129980;129981;129945;131697;132720;136481;132241;133726;128769;128684;132678;139666;130768;130917;130972;130916;130974;128058;128418;128281;129946;130975;130973;128079;131698;132719;128419;136482;125679;132679;126342;126446;136483;125778;132242;125776;126344;134173;134227;127044;126005;140220;126004;147766;147878;126639;126340;126643;126640;126701;128685;126645;126644;128053;128034;127121;126642;128054;126646;126629;133043;127118;143157;127123;128532;128081;137052;128546;127900;128112;147761;128533;142497;137243;128120;129291;131946;130174;128119;131427;132855;128325;128550;128683;132772;128760;128547;128757;135674;136712;128761;129558;129536;129592;134889;129778;129591;129779;129713;130021;130022;129586;129537;134562;129531;129816;129827;129733;129530;129588;129584;129732;129826;129780;129694;129695;129532;129943;139850;129533;134108;129777;133850;133851;133841;133842;138024;130090;138025;130272;129815;129813;130367;130397;130594;130213;129810;135897;130457;129824;129944;134383;129811;129809;129942;129850;134448;135291;131183;134449;133046;135294;135295;134450;130398;129814;140191;140190;130399;130210;130211;130368;130207;132750;132751;131020;129982;130593;130464;130624;130258;130259;130208;151459;131231;131075;131076;131428;132718;131230;131024;131288;136719;131228;131229;139068;131739;135289;134115;131403;147653;131232;140632;132721;141500;133000;133001;133864;133261;133403;133408;134447;133409;147650;135407;147732;147651;133405;133720;133406;133721;133603;133722;142018;140656;140721;133604;140631;134107;133960;133961;134565;134566;134233;134234;134230;134231;134567;134232;134413;134415;134414;134224;134417;134219;134229;134326;134236;140203;134568;134443;134235;147764;147654;148021;151483;83871;78827;78828;86104;82429;86105;138881;143231;143219;139800;143234;146084;148951;150073;148091;148097;148217;148216;148096;148221;148220;134164;153895;150026;150027;137085;148646;152176;149448;146581;148450;144945;139411;150807;142589;148655;144950;148451;154928;150811;139543;151441;149812;148223;148222;136588;136589;136830;136831;138375;149526;149525;155370;155369;152024;138892;152025;138893;137558;137559;149301;149314;149302;149313;149304;149303;154726;154725;149877;148306;136916;136917;150996;155445;155444;149312;149311;152673;152674;149851;149852;137659;137660;137661;137662;137135;137136;152670;152671;136914;138894;136915;139064;138895;154828;154829;149354;149355;155024;155025;149470;149471;141830;141831;150997;155676;156946;155677;145513;139425;139517;139577;137840;152974;140202;157877;152936;145692;152961;151019;143155;158563;142493;151487;138016;138017;148137;156884;147765;139035;139927;153258;141499;142908;139228;142909;149469;149467;139792;148694;145263;154931;154930;154929;148970;148968;148969;148643;139605;135859;146214;139229;149468;138373;144503;139805;139539;140098;151216;139804;139516;139468;139542;145793;140099;139540;140100;139004;139426;145509;146056;139470;139576;137850;140101;139803;140102;139469;139007;143424;152540;147763;134053;134054;134444;140402;147146;140273;135012;140212;153943;141352;145553;145554;145555;149844;149842;149843;149847;142366;148101;153563;153560;137629;144197;153561;148092;153398;152813;141361;158651;148099;152527;152390;154851;138446;142213;149352;155447;149846;148381;149845;136621;145250;142211;154723;141358;149325;136827;138040;136612;136614;136615;147762;136700;142143;149371;152749;136587;137406;137564;138376;155451;155315;149298;146203;154853;142363;152750;136622;152410;136918;152485;136669;150059;140221;149465;149209;149370;142364;155450;155449;142214;136891;140218;152121;152122;142425;142424;142423;148836;141832;149718;146058;146057;150058;149454;137835;149979;137836;155733;155734;142496;146213;154343;139230;141116;141117;141231;141230;146264;139037;139614;137147;137280;139926;138147;148296;141113;137901;137903;137902;142959;141114;148106;152658;148104;148102;141172;148107;143154;141193;148100;142053;149789;141397;137148;153554;138094;141266;138092;142891;141373;141372;151375;142958;148427;141371;140222;151374;148327;140223;141398;138211;148103;137182;141368;141369;140793;140799;153209;153207;148250;140111;153204;134451;147816;153203;142592;153208;152131;148095;153154;153153;143490;137143;147649;153206;133401;146480;146481;141351;158584;153950;146618;139604;153947;149455;151662;135902;133651;142593;135971;154878;141354;143220;140505;150862;150861;140271;144279;140270;140219;141437;153224;141461;149299;149300;138152;151020;140097;149957;158207;158208;149368;148098;137203;156947;140185;158887;137184;157903;149310;152877;158559;146805;146804;140186;139922;149719;140131;152529;140189;139665;155019;134707;134711;152987;137361;137332;142473;142472;154197;148124;138587;152213;139029;153257;140272;146266;139664;139067;138019;141467;137852;139747;146268;146267;138327;152212;140216;140452;148652;148712;154932;151661;153556;153562;153549;150141;154348;153555;149327;149363;139232;142033;149330;141370;151915;150052;149364;145706;150992;147963;147964;147962;148105;151132;150990;145707;145708;151467;146307;153551;149365;151133;150050;149879;145501;151916;149362;150339;150051;147733;141438;136671;147758;134445;140403;147147;136748;157361;155300;152812;148320;137144;137145;146211;146212;157157;146202;141170;141171;137141;137142;136623;158586;141357;145265;141356;137654;137655;137656;137630;137631;137407;137408;152130;142824;133530;154438;137856;138359;149849;153944;139545;154234;154233;142495;133404;143150;140213;139413;137134;146450;135766;141115;147759;151154;142659;143217;142995;148978;147622;148959;149880;151187;145547;145422;148962;148447;146216;148957;149329;142494;145552;148954;142490;147756;149328;147760;145551;142365;142660;147877;145556;143232;147652;143216;143165;142597;142373;147876;145557;141192;146594;142661;139325;137241;150502;133407;137185;138015;137649;138018;139799;150849;150847;150848;139600;140456;143475;140268;139575;140269;139599;142879;142880;150279;136120;151013;150506;150246;139582;139597;144929;141353;142590;139544;142503;138148;141083;137183;138524;139327;139036;135858;144196;134446;140404;143153;149809;149450;141119;148093;138876;148090;148094;138361;148448;142890;137851;153219;147893;141460;153694;17786;17787;71924;71925;71926;72725;73755;71153;78557;72458;72487;72559;70457;72485;82586;72140;82587;72141;72338;72510;70894;72460;73827;73455;73456;73457;72509;76882;78064;70399;76588;76970;78690;78691;76865;77411;79146;73027;77682;77681;73458;74036;76972;74443;79744;77051;82588;82589;76790;77222;83733;82473;77729;82590;79359;82666;78918;78919;83734;81912;81913;91426;87820;87821;87847;89083;78824;93113;78825;78858;77284;73828;73829;73436;79249;79250;76971;83904;76968;76969;76881;79577;78894;78737;79625;79667;79803;83183;80460;17788;17789;83782;17790;69985;17791;68991;69134;17792;17795;99233;99234;74010;10682;10045;38152;10561;76126;91427;69912;149982;69853;33942;33943;33944;33945;11556;122370;11014;65941;71464;66023;61518;76491;140294;78676;81671;82270;81978;85541;87894;86302;85266;85267;93382;88100;95951;100790;97226;110563;54954;59819;59820;59821;54953;88595;104479;91731;88596;154422;63644;69138;149502;76128;107004;131952;91963;151442;44945;44914;59227;61514;64555;42796;81574;91964;61515;133304;11012;156945;10545;155349;17793;70940;32131;32130;69950;69952;69953;69951;58512;70136;70089;70090;70092;70091;76121;77987;79668;80283;81546;93939;90312;99706;77968;83466;79124;85449;101357;110518;133078;142662;112019;69948;23938;10046;143384;128616;133723;152532;69075;73300;69074;128052;101265;103193;94470;69922;10970;10971;68960;12023;10700;10387;138362;11689;129590;89033;96802;78387;61574;78388;61575;61577;61576;76346;66202;66762;74147;74146;73736;47864;17794;61492;67217;71430;69802;133305;69801;69102;11791;84500;138761;70073;84501;97470;97471;72728;76129;87954;80302;60107;62182;86912;72727;69788;73754;10754;66696;76130;69059;69058;16201;16202;86913;87506;86152;91342;152530;91343;86153;101531;86192;91344;93400;100323;104462;107259;100843;86193;67247;67248;70166;82701;70167;82740;67244;67245;67246;90590;118088;122347;130503;118145;70258;99934;90591;83877;64789;69057;69056;66860;62181;87849;112121;112122;69925;69926;138882;69133;99935;88593;88594;143233;69078;73301;69077;148264;122115;148445;156567;155301;156566;109118;105161;129983;10972;129984;69825;77760;86151;79584;81407;128176;79585;81952;81973;79581;83768;83769;72180;79582;126586;76131;69047;70079;69048;126587;69049;69046;69050;78624;83770;97021;83771;83731;90539;90540;90541;83773;83772;86123;76132;69019;76125;72181;78596;81408;85649;88527;128177;85650;85651;78625;92045;86544;97326;81974;81953;72245;72182;60139;60140;60138;88528;103112;70197;70198;82702;70196;80282;78770;78768;93109;78769;78767;88589;69919;78766;70077;70088;91961;70169;102978;56485;56484;58004;141084;11013;129969;129970;129971;25906;42960;93478;129972;93479;25550;25549;55568;64437;69855;69854;71841;71840;71839;69132;71838;69130;69131;101816;101817;96907;96772;96908;119888;130173;70122;119287;69081;69080;69469;69495;69468;19559;69447;33946;58950;15942;13856;16245;30123;33169;33947;11138;139082;33201;65952;55653;62777;65950;65949;65951;126053;153176;153175;151484;154869;79640;79641;146935;55474;55473;79639;55927;10942;142019;55926;48275;42961;24742;25682;58563;40876;58562;40614;76261;142020;74025;74026;76916;81316;78893;103467;105373;110904;110903;121472;118463;125258;149878;138212;140790;132397;150866;155584;73205;62308;73204;40615;40616;69128;69129;69136;56392;59018;59465;96630;51663;51664;154777;59017;62310;62309;11892;126466;140798;150865;142894;130347;124000;148182;124001;128304;132103;132102;121386;140192;52546;52547;52545;121387;137001;137000;137002;156614;132752;92038;137003;92039;150791;152046;154423;67193;38663;148403;12301;134975;140758;149481;158566;130592;59310;63339;158567;76571;70741;63325;76771;79745;83163;83763;85242;85661;70740;87012;87373;91352;91885;93608;92723;95659;95539;96778;96928;97525;97948;99377;100104;101205;102526;103927;103381;104174;105083;105370;105617;108886;108887;109725;110265;110779;111378;118856;111789;119148;125549;148674;76770;58810;58809;58209;58749;56282;14626;16477;15462;109403;76943;65720;111517;35087;34729;36075;35009;39437;36131;45437;46706;51125;49712;51935;55905;59726;65668;66308;79388;81147;83352;106610;93897;39436;29830;148647;46172;74039;43400;11277;22409;22365;21641;26011;18165;21167;21335;16318;38183;18219;11399;21215;19392;72427;27600;158092;158059;157338;158672;158690;155715;155841;155630;155633;155586;155587;155628;155629;154965;153976;153977;153978;153981;153890;155661;155631;76260;76258;76257;156102;76259;21744;15828;10047;33269;19693;19692;34992;19551;29829;40551;149644;149510;130456;129979;100387;11073;11190;59400;59402;59401;157905;33275;20214;149307;150962;149308;57800;57802;81439;140693;140694;140695;140696;57799;57801;20220;18255;10581;42340;99731;40667;66404;59715;64689;66407;66408;130263;46705;42339;24283;72090;39790;48340;51955;53297;55512;55513;72091;55553;55542;57362;58388;74190;63689;64246;63690;66526;65928;70915;78480;79859;82780;85745;86948;91102;91677;93245;99669;103194;109017;117480;139918;122236;122535;125880;129388;132019;134765;135593;138573;153433;148039;68929;72092;68881;55514;72093;24278;24279;23781;19393;99584;99585;99586;99587;20131;17983;18029;20130;14183;18643;25369;131286;52457;10612;121036;21205;58650;73611;20889;25215;21917;40418;20827;17985;10048;11567;73610;19305;125782;126988;126050;58230;58952;58951;126953;11980;10746;17997;11879;125777;22308;34693;100161;36036;77390;36217;53576;53575;71213;69804;77030;99986;124281;124330;136178;128548;110771;106947;106948;106949;123008;139205;146869;149439;152864;124004;154244;153087;53574;62356;11724;20292;44135;16275;17597;15506;17306;31137;31859;11524;33789;15530;19511;20984;18101;11564;21240;15531;18083;38879;30132;35765;65789;70656;72661;72662;90765;59243;25494;72671;72660;62941;45435;62942;48382;51923;63642;111967;136945;45434;51922;10049;11725;11611;76190;18620;12102;10675;10676;11613;11281;76189;12097;18540;58409;17647;17273;38952;122599;122648;87597;159113;72459;11368;12060;11687;19236;10815;32318;110772;125477;138553;67175;67176;45590;59327;77158;110773;123687;59326;23741;30051;12271;51816;10924;26912;26913;10050;11726;58989;58990;45043;32442;22231;22296;42353;42371;17260;17998;21187;17227;42878;15442;17999;19945;36183;29727;31131;31730;33577;34385;42468;45554;47683;50844;56007;65970;71977;73734;76936;77149;79580;84149;79804;11754;15900;27608;47716;16141;24901;11199;31646;11756;15860;23775;21119;19756;17255;20137;29802;14665;17256;11940;14318;24003;18563;10051;11947;25758;11385;14313;10922;12265;12212;11970;12240;11384;18097;14283;14284;14285;15722;14220;14286;14287;14288;14289;24263;14290;14291;16000;10465;10402;11727;108952;108953;110287;152356;61446;19391;12012;28330;109596;140633;15819;17208;57336;11196;66238;44319;12266;19679;44657;43403;18118;19553;19554;18119;18117;72741;72742;11748;10368;25214;14639;54841;91822;106757;137233;46865;46866;23642;32317;10052;62369;70455;70456;76110;84020;84826;69800;76111;77571;82824;84021;84827;86002;87764;87765;94898;94899;103252;103253;101161;101162;108588;108589;126635;126636;138332;138333;134166;134167;143553;143483;143485;144811;147892;147891;147890;147889;151352;151458;151457;151455;151456;157142;157141;157423;157424;157245;157246;157189;157190;23935;23936;23937;30153;40662;34195;76112;33763;62629;34056;39007;43172;49120;51841;58293;76113;79245;84022;84828;91335;91336;46766;50451;53547;56928;59904;62701;71519;76114;59905;76115;51840;59644;60098;24699;25905;28227;33128;34475;36216;42044;46173;70454;103254;101163;143552;143484;144810;91337;22416;22016;11896;22017;10871;86653;22417;22447;91824;15486;76116;55690;11182;11180;122583;11616;10736;10583;11798;11476;11477;11446;18012;18016;16478;11728;40353;51394;82084;101031;101032;101033;101065;101092;101121;101173;101208;101174;101175;82085;101209;101210;101211;101238;101239;101274;101275;101318;101319;101320;82086;101321;101376;101377;101378;101535;101536;101552;101553;101774;101775;82087;101791;101792;101824;101856;101908;101909;101935;101936;101937;101960;82088;101982;102039;102040;102041;102042;102043;102044;102085;102096;102220;82089;102368;102437;102438;102439;102440;102441;102481;102482;102594;82090;102595;102596;102597;102628;102784;102785;102786;102787;102788;102789;82091;102804;102805;102886;102806;102823;102824;102843;102844;102845;102887;82092;102888;102889;102890;102891;102923;102924;102925;102961;102926;102962;82093;102982;103036;103092;103093;103094;103095;103197;103257;103258;103363;82094;103330;103388;103389;103390;103391;103427;103428;103429;103430;103431;82095;103460;103469;103470;103471;103472;103518;103519;103575;103576;103577;82096;103607;103682;103683;103708;103709;103710;103711;103712;103713;103714;82097;103756;103791;104055;103858;103947;103948;103949;103988;103989;82098;103990;103991;104056;104133;104219;104184;104185;104186;104220;104221;104299;104300;104301;104335;104336;104337;104338;104481;104364;104397;82099;104398;104399;104412;104413;104438;104439;104440;104464;104501;104502;82100;104534;104563;104585;104676;104677;104678;104679;104680;104681;104682;82101;104683;104708;104709;104720;104721;104744;104745;104746;104747;104748;82102;104749;104750;104751;104791;104936;104937;104938;104939;105009;105115;82103;105116;105117;105118;105168;105169;105193;105194;105325;105326;105327;82104;105328;105360;105378;105394;105395;105396;105423;105424;105425;105426;82105;105427;105428;105429;105465;105488;105494;105495;105496;105518;105557;82106;105621;105659;105622;105660;105661;105662;105701;105702;105703;105734;82107;105753;105797;105798;106075;106054;106055;106173;106174;106175;106205;82108;106206;106207;106208;106209;106210;106211;106318;106407;106408;106409;82109;106410;106411;106463;106464;106508;106536;106589;106590;106591;106592;82110;106633;106659;106696;106697;106722;106723;106724;106725;106779;106780;82111;106781;106808;106809;106819;106851;106872;106873;106904;106953;106954;82112;106981;106982;106983;106984;106985;107076;107104;107105;107133;107118;82113;107134;107151;107152;107242;107276;107277;107278;108415;108385;108416;82114;108522;108567;108568;108569;108604;108605;108606;108608;108609;82115;108661;108662;108692;108693;108694;108695;108726;108727;108728;108729;82116;108764;108765;108766;108767;108768;108769;108770;108788;108814;108815;82117;108901;108902;108903;108904;109062;109043;109044;109045;109063;109064;82118;109089;109090;109091;109148;109149;109187;109188;109217;109283;109284;82119;109327;109328;109346;109347;109348;109381;109407;109408;109409;109531;82120;109584;109585;109586;109657;109734;109735;109736;109737;109738;109872;82121;109924;110055;110158;110159;110160;110161;110162;110163;110164;110250;82122;110312;110313;110314;110696;110664;110697;110724;110725;82123;110726;110727;110728;110785;110786;110814;110815;110816;110817;110818;82124;110819;110840;110909;110926;110927;110945;110946;110947;110948;111046;82125;111080;111081;111082;111165;111166;111083;111084;111085;111086;111111;82126;111167;111168;111169;111170;111171;111172;111221;111222;111223;111311;82127;111312;111313;111314;111315;111357;111358;111359;111388;111389;111390;82128;111391;111392;111393;111394;111467;111519;111520;111533;111554;111555;82129;111556;112047;111618;111651;111762;111705;111763;111764;111765;111982;82130;111983;111984;112048;112049;112050;112065;112125;112126;112127;112166;82131;112167;112168;112184;112195;112196;112197;112225;112226;112227;112228;82132;112229;112230;112231;117349;117295;117296;117350;117351;117366;117367;82133;117432;117433;117434;117464;117487;117501;117502;117593;117609;117610;82134;117618;117619;117620;117640;33815;117641;117642;117643;117673;117711;117712;82135;117713;117714;117715;117810;117811;117835;117836;117837;117889;82136;117907;117908;82137;118070;118096;118119;118120;118157;118214;118215;82138;118239;118240;118313;118364;118407;118468;118469;118470;118471;118503;82139;118504;118577;118578;118596;118733;118597;118735;118734;118753;118806;118807;82140;118839;118808;118888;118889;118891;118890;118892;118938;119052;82141;119039;119053;119054;119101;119100;119102;119103;119104;119151;119152;82142;119105;119119;119120;119121;119122;119123;119153;119266;119267;82143;119310;82144;119289;119311;119312;119560;119425;119667;119693;119694;119695;82145;119729;119816;119730;119847;119848;119849;119875;119876;119877;119878;119889;82146;119890;119941;119942;119957;120958;120957;120959;120960;120961;120962;82147;121055;120988;121071;121133;121193;121233;121313;121315;121314;82148;121316;121372;121397;121398;121399;121423;121424;121436;121437;121481;121480;121482;82149;121483;121517;121518;121552;121622;121553;121554;121555;121556;82150;121623;121624;121625;122036;121626;121627;122066;122037;122038;122067;82151;122097;122098;122099;122100;122101;122195;122196;122262;122263;122264;82152;122265;122266;122267;122318;122319;122320;122404;122405;122430;122431;82153;122453;122454;122490;122491;122511;122512;122547;122513;122514;122515;82154;82155;122548;122549;122550;122603;122604;122620;122720;122762;122721;82156;122824;122825;122826;122827;122828;122829;122928;122879;122929;122930;122931;82157;122956;122932;123017;123016;123018;123019;123093;123094;123095;123096;82158;123135;123421;123420;123470;123471;123522;123523;123524;123525;123526;82159;123527;123528;123529;123563;123564;123565;123566;123567;123689;123690;82160;123798;123832;123833;123834;124036;123959;124065;124094;124204;124217;82161;124218;124243;124282;124283;124306;124307;124339;124340;124341;124342;82162;124343;124417;124595;124596;124463;124597;124598;124656;124657;124658;82163;124659;124720;124777;124778;124874;125093;124875;125174;125173;125175;82164;125266;125267;125268;125269;125270;125296;125297;125317;125298;82165;125478;82166;125407;125374;125409;125408;125410;125411;125412;125413;125479;125555;82298;125606;125644;125607;125740;125682;125741;125836;125837;125926;82299;125927;125956;125957;125928;125958;126009;126010;126011;126054;126077;126078;126079;82300;126126;126220;126222;126221;126223;126247;126248;126347;126348;126349;82301;126350;126481;126390;126482;126511;126512;126605;126513;82479;126606;126607;126528;126652;126793;126653;126833;126832;126834;126835;82593;126836;126926;126927;126964;127076;126965;127101;127475;127476;127477;127478;82594;127480;127479;127481;127482;127483;127485;127484;127820;127920;127821;82645;127862;127863;127864;127865;127866;127922;127921;127923;127924;127925;82646;127926;127927;128038;128082;128121;128122;128123;128124;128179;128305;82167;82668;128306;128393;128394;128424;128395;128426;128425;128428;128427;82669;128509;128555;128556;128557;128558;128618;128619;128743;128777;128778;128779;82715;128780;128781;128880;128881;128882;128883;129025;129105;129304;129106;82716;129361;129305;129363;129362;129408;129409;129410;129411;129474;129475;82717;129505;129477;129476;129539;129571;129572;129594;129697;129595;82718;129734;129735;129765;129766;129799;129800;129828;129801;129853;129854;129855;82743;130029;130130;130131;130030;130031;130071;130132;130072;130182;130133;82784;130283;130284;130285;130286;130287;130405;130348;130406;130407;83002;130408;130522;130521;130523;130611;130770;130769;130771;130772;130773;130918;82785;130980;130979;131035;131084;131085;131134;131135;131137;131136;131138;82168;82805;131245;131246;131247;131248;131429;131430;131291;131292;131293;82837;131328;131329;131330;131331;131431;131433;131432;131435;131434;131436;131437;82860;131705;131740;131780;131781;131782;131783;131837;131960;131961;131962;82861;131963;131964;131965;132058;132059;132060;132080;132081;132105;132106;82862;132107;132267;132268;132325;132344;132345;132406;132346;132420;132421;82863;132422;132513;132514;132590;132592;132591;132593;132681;132682;133218;82904;132940;132758;132759;132941;132776;132777;132874;133102;133101;83060;133103;133104;133105;133150;133219;133228;133229;133276;133362;133318;83119;133277;133319;133320;133321;133322;133323;133324;133363;133364;133365;83142;133366;133411;133412;133414;133413;133509;133532;133561;133562;133654;82169;133655;83164;133656;133697;133698;133729;133728;133730;133772;133773;133813;83143;133814;133873;133875;133874;133876;133877;134240;134241;133967;134092;83144;134093;134125;134124;134126;134175;134176;134178;134177;134179;134180;83165;134181;134242;134182;134243;134244;134352;134245;134430;134429;83166;134431;134454;134432;134576;134630;134631;134632;134633;134683;134766;134716;83167;134767;134768;134769;134770;134771;134879;134880;134881;134915;134916;83168;134955;134982;134983;135098;135099;135100;135101;135102;135205;135190;135364;135363;135496;135495;135497;135498;136630;135596;135721;135722;135723;83190;135724;135939;135976;135975;135977;135978;135979;135980;135981;83476;136201;136067;136202;136068;136203;136204;136206;136205;136289;136288;82170;83498;136290;136366;136368;136367;136412;136427;136429;136428;136484;136951;83499;136631;136672;136673;136702;136674;136720;136832;136833;136834;136835;83545;136836;136893;136952;136980;136979;136982;136981;136983;136984;83500;136985;136987;136986;137008;137153;137205;137154;137206;137207;137248;137247;83531;137282;137339;137283;137371;137284;137372;137416;137418;137417;83747;137419;137572;137670;137671;137672;137841;137858;137859;137860;137861;137862;83819;137863;137886;137887;137906;137907;137908;137909;137910;137911;138062;83905;138063;138224;138064;138364;138389;138390;138391;138392;138393;83886;138529;138578;138781;138782;138858;138783;138859;138910;138911;138912;83864;138913;139009;139008;139094;139244;139095;139096;139098;139097;139207;82171;83865;139208;139209;139245;139246;139247;139248;139249;139251;139250;83866;139252;139297;139253;139340;139341;139387;139388;139428;139427;139429;139430;83887;139518;139519;139520;139552;139551;139624;139585;139625;139626;139627;83888;139628;139629;139630;139675;139703;139735;139756;139758;139757;139759;83906;139760;139773;139774;139775;139776;139876;140046;139928;140048;140047;83907;140049;140050;140051;140052;140053;140054;140055;140056;140057;140058;83918;140103;140134;140224;140225;140295;140296;140298;140297;140468;140469;83995;140538;140539;140540;140606;140541;140665;140931;140804;140932;140805;84023;140806;140807;140808;140809;140810;140934;140933;140935;141062;141131;84061;141132;141133;141134;141135;141136;141137;141247;141246;141286;141291;82172;84062;141272;141287;141271;141379;141378;141389;141463;141466;141794;141508;84093;141792;141791;142174;141901;141872;141910;142011;142052;142107;142105;84130;142159;142176;142202;142153;142169;142199;142206;142158;142155;84094;142504;142571;142546;143107;142551;142521;142632;142633;142616;142634;142623;84165;142670;142619;142861;142667;142827;142825;142832;142845;142849;142918;84166;142931;142926;142924;142936;143099;143109;143104;143133;143138;143170;84252;143169;143193;143185;143186;143224;143226;143336;143308;143323;143305;84253;143401;143386;143392;143410;143388;143440;143435;143459;143461;84294;143527;143512;143518;143519;143597;144097;143594;144022;144029;144023;144092;84295;144152;144099;144264;144262;144343;144494;144350;144439;144444;144441;82173;84296;144490;144497;144478;144541;144595;144574;144587;144681;144636;144627;84297;144638;144666;144657;144738;144723;144725;144735;144758;144762;144814;84349;144825;144924;144836;144956;144925;145217;145167;145208;145165;84407;145237;145259;145384;145427;145437;145475;145531;145772;145724;145725;146163;84408;146053;146155;146129;146133;146191;146119;146278;146291;146283;146324;84433;146321;146372;146361;146360;146466;146473;146527;146521;146512;84434;146504;146555;146609;146612;146610;146700;146604;146602;146608;146736;146666;84435;146699;146665;146677;146725;146667;146887;146919;146893;146945;146981;84447;146974;146968;147179;147182;147176;147187;147532;147548;147685;147744;84448;147772;147797;147800;147775;147903;147813;147898;147902;147901;82174;84471;147926;147928;148072;148080;147960;148053;148173;148166;148146;84472;148206;148272;148254;148275;148270;148301;148302;148311;148312;148323;148322;84473;148363;148416;148440;148442;148508;148610;148623;148701;148749;148762;84494;148927;148926;148965;149008;149016;149004;149003;149015;149014;149019;149009;84495;149034;149036;149037;149040;149103;149246;149344;149262;84507;149261;149345;149339;149372;149342;149426;149427;149460;149423;149492;149485;84508;149488;149517;149518;149515;149568;149854;149889;150005;150107;150111;150097;150099;150173;150262;150255;150272;150303;150301;150309;150333;84551;150467;150336;150454;150453;150703;150796;150806;150805;150904;84597;150985;150984;151006;151044;151111;151028;151361;151131;151192;151264;82175;151265;84676;151219;151369;151368;151370;151373;151480;151486;151516;151676;84677;151677;152075;151812;151829;151891;151834;153148;152012;152006;152078;152059;84812;152171;152170;152228;152194;152193;152215;84831;152217;152214;152223;152349;152547;152519;152383;152384;152486;152517;84832;152662;152535;154200;152737;152607;153132;152723;152739;152773;152898;84833;152899;152966;152983;152982;153026;153217;153216;153226;153480;153431;84834;153482;153481;153548;153571;153601;153600;153772;153741;153843;153811;84835;153809;153808;153810;153845;153846;153841;153842;153844;153966;153965;84885;154114;153994;153996;154021;154020;154195;154237;154257;154331;84932;154330;154427;154410;154627;154733;154514;154736;154735;154731;154752;82176;84989;154739;154747;154749;154751;154753;154754;154882;154881;154936;154923;84990;154920;154950;155013;155016;155014;155123;155060;155312;155346;155439;84991;155440;155604;155622;155639;155658;155675;155683;155712;155711;85050;155710;155707;155713;155721;155739;155740;155738;155822;155861;155922;155848;85051;155924;155921;156018;156039;156163;156159;156160;156234;156173;156315;85052;156318;156314;156396;156329;156332;156320;156322;156321;156328;156335;85128;156334;156333;156336;156384;156385;156386;156391;156393;156394;156392;85233;156449;156417;156418;156419;156576;156575;156457;156691;156690;156789;85278;156765;156766;156770;156965;156964;156818;156773;85279;156794;156920;156954;156955;156963;157055;157048;157047;157058;157255;82177;157262;85280;157250;157252;157254;157248;158247;157261;157324;157365;157321;157379;85418;157397;157401;157407;157409;157846;157901;158026;158032;85465;158035;158049;158045;158067;158084;158170;158196;158450;158510;85419;158511;158647;158649;158681;158675;158676;158685;159090;158698;158747;85546;158819;158783;158821;158820;158850;158978;158933;85547;158996;159003;159002;159001;159069;159072;159076;159079;159077;159116;85584;159141;85585;85586;85654;82178;85655;85656;85663;85695;85769;85807;85897;85808;85888;85931;82179;86049;86021;86022;86195;86127;86154;86155;86196;86197;86211;82180;86212;86213;86225;86226;86227;86357;86406;86428;86429;86446;82181;86551;86552;86553;86578;86579;86640;86641;86676;86677;86712;82182;159140;86793;86794;86920;86907;86952;86953;87056;87068;87069;87070;82183;87072;87071;87073;87074;87075;87076;87111;87112;87186;82184;87265;87266;87268;87267;87286;87287;87315;87316;87330;87382;82185;87427;87605;87508;87606;92678;87607;87682;87738;87683;87729;87850;87826;87884;87897;87931;87932;87933;87956;82186;87957;87958;87975;87977;87976;87978;87993;87994;88105;88023;88106;82187;88107;88108;88387;88422;88388;88491;88492;88493;88494;88511;82188;88599;88580;88600;88627;88724;88740;88764;88766;88765;82189;88810;88863;88845;88864;88887;88886;88913;88938;88914;88939;88940;82190;88971;88972;88974;88973;88995;88997;88996;88998;88999;89040;89000;82191;89041;89042;89043;89045;89044;90803;90805;90804;90806;82192;90807;90870;90869;90871;90872;90873;90874;90895;90926;90943;82193;90944;90945;91021;91022;91049;91050;91107;91051;91108;91109;82194;91132;91133;91134;91135;91136;91137;91196;91197;91173;91198;82195;91242;91243;91264;91265;91299;91286;91287;91323;91324;91325;82196;91358;91326;91359;91361;91360;91362;91363;91395;91396;82197;91444;91397;91445;91472;91521;91522;91489;91446;91505;91523;91548;82198;91574;91575;91576;91577;91578;91613;91688;91687;91689;91770;82199;91690;91691;91733;91789;91771;91831;91832;91834;91833;91835;82200;91836;91859;91860;91900;91901;91903;91902;91904;91905;91919;91920;91921;91948;91922;91977;91978;91979;92665;92324;92003;82201;92325;92326;92380;92474;92500;92524;92501;92544;92545;82202;92546;92547;92568;92569;92570;92613;92631;92762;92587;92632;92633;82203;92634;92635;92636;92637;92638;92004;92639;92640;92763;92641;82204;92683;92705;92704;92727;92729;92728;92827;92794;92793;92828;92829;92873;92874;92969;92970;92953;93017;93053;82205;93054;93083;93130;93199;93131;93132;93133;93236;93320;93321;82206;93322;93353;93323;93385;93413;93386;93415;93416;93414;93417;82207;93543;93485;93544;93545;93564;93565;93566;93567;93568;93569;82208;93570;93612;93620;93667;93688;93689;93690;93746;93691;93692;82209;93831;93832;93834;93833;93847;93868;93869;82210;93900;93913;93969;93968;93970;94075;94100;94077;94076;94078;82211;94101;94110;94102;94112;94113;94114;94111;94141;94142;94143;82212;94144;94145;94184;94204;94293;94233;94255;94257;94256;94258;82213;94294;94295;94296;94298;94297;94299;94300;94343;94411;94410;82214;94447;94448;94474;94473;94475;94476;94477;94518;94519;82215;94520;94583;94585;94586;94587;94612;94764;94584;94916;82216;94917;94940;94983;95029;95030;94941;95031;95261;95262;95263;82217;95296;95357;95359;95358;95360;95399;95412;95413;95454;82218;95455;95456;95457;95485;95486;95601;95635;95634;95653;95654;95664;82219;95665;95774;95775;95899;96005;96007;96006;96009;96008;82220;96010;96011;96012;96013;96014;95955;95954;96051;96093;96094;96085;82221;96095;96096;96097;96098;96100;96099;96155;96183;96184;96185;82222;96186;96187;96188;96189;96190;96191;96272;96192;96343;96396;82223;96458;96459;96490;96491;96492;96493;96535;96536;96537;96570;82224;96634;96635;96636;96665;96666;96732;96704;96814;96779;82225;96815;96816;96817;96818;96839;96840;96841;96882;96883;96884;82226;96909;96911;96910;96930;96931;96963;96983;97029;97087;97052;82227;97105;97106;97150;97195;97216;97231;97088;97232;97233;97234;97235;82228;97356;97236;97332;97392;97394;97393;97395;97396;97418;82229;97437;97438;97440;97439;97441;97473;97559;97614;97588;82230;97641;97640;97642;97669;97668;97697;97698;97780;97782;97781;97796;82231;97797;97799;97798;97898;97899;97920;97921;97963;82232;97964;97965;97966;99000;99001;99002;99042;99003;99043;99045;82233;99107;99139;99044;99187;99188;99189;99202;99251;99250;99252;99253;82234;99269;99268;99270;99271;99291;99401;99442;99402;99403;99420;82235;99421;99422;99443;99542;99543;99544;99600;99601;99602;99603;82236;99636;99637;99638;99639;99672;99604;99673;99674;99692;99693;82237;99715;99694;99734;99733;99735;99736;99737;99738;99739;99740;82238;99919;99997;99998;99999;100069;100107;100108;100109;100110;100133;82239;100162;100176;100177;100225;100226;100227;100302;100303;100304;100330;82240;100360;100390;100431;100473;100474;100475;100476;100477;100478;100479;100480;82241;100513;100481;100482;100575;100514;100515;100516;100517;100518;82242;100519;100559;100576;100577;100578;100602;100622;100624;100623;100672;82243;100645;100673;100724;100771;100772;100796;100816;100817;100848;100849;82244;100850;100851;100875;100876;100939;100941;100940;100966;101006;101007;14848;14850;14849;14851;14853;14852;14855;14854;14857;14856;14858;14859;14860;14861;14862;14863;14864;14865;14866;14867;14868;14869;14870;14871;14872;14873;14874;14875;14876;14877;14878;14879;14880;14881;14882;14883;38953;14885;14887;14886;14888;14889;14890;14891;14892;14893;14894;14895;14897;14896;14898;14899;14901;14900;14902;14903;14905;14904;14906;14907;14908;14909;14910;14911;14912;14913;14914;14915;14916;14917;14918;14919;14920;14921;14922;14923;14924;14925;14926;14927;14928;14929;14930;14931;14932;14933;14934;14935;14936;14937;22542;22543;22544;22545;22546;22547;22548;22549;22550;22551;14938;22552;22553;22554;22555;22556;22557;22558;22559;22560;14939;22561;22563;22562;22564;22565;22566;22567;22568;22569;22570;22571;14940;22572;22573;22574;22575;22576;22577;22578;22579;22580;22581;14941;22582;22583;22584;22585;22587;22586;22589;22588;22590;22591;14942;22592;22594;22593;22595;22596;22597;22598;22599;22600;22601;14943;22602;22603;22604;22605;22606;22607;22608;22610;22609;14944;22611;22613;22612;22614;22615;22616;22617;22619;22618;22620;22621;14945;22622;22623;22624;22625;22626;22627;22628;22629;22630;22631;14946;22632;22633;22634;22635;22636;22637;22638;22640;22639;22641;14947;22642;22643;22644;22646;22645;22647;22648;22649;22650;22651;14948;22652;22653;22654;22655;22656;22657;22658;22659;22661;22660;14949;22662;22663;22664;22665;22666;22667;22668;22669;22670;22671;14950;22672;22673;22674;22675;22677;22676;22678;22679;22680;22681;22682;14951;22683;22684;22686;22685;22688;22687;22689;22690;22691;14952;22692;22693;22694;22695;22696;22697;22698;22699;22700;22701;14953;22702;22703;22704;22705;22706;22707;22708;22709;22710;22711;14954;22712;22713;22714;22715;22717;22716;22718;22719;22721;22720;14955;22722;22724;22723;22725;22726;22728;22727;22729;22730;22731;22904;22732;22733;22734;22735;22881;22905;22906;22907;22908;14957;22927;22931;22934;22935;22936;22937;23655;23656;23657;23658;14958;23660;23659;23662;23661;23701;23700;23703;23702;23704;23742;23737;14959;23743;23757;23765;23766;23767;23844;23768;23770;23790;14960;23791;23792;23845;23846;23847;23848;23849;23912;23911;14961;23913;23945;23946;23948;23947;23949;25339;24006;25225;24025;24026;14962;24247;24248;24291;24292;24293;24294;24295;24297;24296;24346;14963;24359;24347;24765;24776;24793;24794;24819;24834;24865;24835;14964;24879;24880;24881;24921;25008;25009;25010;25011;25012;25096;14965;25097;25098;25099;25100;25151;25152;25153;25176;25177;14966;25226;25227;25228;25229;25258;25299;25259;25300;25301;25356;25455;14967;25463;25503;25464;25465;25504;25529;25505;25506;25531;25530;25532;14968;25555;25556;25557;25558;25581;25582;25583;25584;25585;14969;25586;25615;25616;25628;25629;25638;25675;25640;25639;25676;14970;25677;25678;25695;25742;25743;25744;25779;25780;25801;25781;25782;14971;25851;25825;25826;25852;25853;25855;25854;25856;25857;14972;25858;25859;25860;25861;25887;25936;25937;25909;25938;25959;14973;25961;25960;25962;25963;25964;25965;25966;25974;26029;26030;14974;26031;26032;26033;26034;26035;26078;26079;26080;26208;26209;26210;14975;26975;26211;26930;26931;26976;27043;27066;27515;27544;14976;27545;27546;27548;27547;27549;27577;27587;27621;27628;27629;14977;27804;27630;27819;27842;27843;28150;28151;28297;28253;28298;14978;28299;28300;28301;28336;28337;28338;28339;29191;29192;29226;14979;29227;29228;29257;29258;29259;29260;29261;29262;29263;29337;14980;29338;29339;29705;29706;29707;29755;29756;29803;29805;29806;29807;14981;29836;29808;29837;29838;29839;29840;29856;29857;29858;29859;14982;29860;29861;29872;29873;29902;29903;29904;29935;29936;14983;29937;29938;29939;29968;29984;30000;30023;30059;30061;30060;14984;30062;30063;30064;30065;30066;30067;30111;30112;30125;30126;14985;30188;30189;38954;30223;30225;30224;30155;30226;30227;30228;14986;30229;30230;30231;31028;30232;31056;31055;31123;31102;31143;14987;31144;31145;31146;31147;31149;31148;31150;31151;31169;31170;14988;31303;31358;31359;31360;31425;31426;31587;31588;31589;31590;14989;31591;31592;31628;31629;31630;31631;31632;31661;31662;38955;14990;31687;31663;31709;31710;31711;31806;31721;31807;31809;31808;14991;31810;31948;31811;31950;31949;31951;31952;31969;32003;32004;14992;32005;32006;32007;32008;32034;32035;32057;32058;32059;14993;32060;32084;32085;32086;32125;32126;32127;32140;32141;32142;32143;14994;32144;32305;32307;32306;32309;32308;32378;32377;32379;32380;14995;32402;32403;32404;32405;32406;32407;32435;32447;32457;32448;14996;32482;33077;33173;33174;33175;33177;33176;33178;33230;14997;33367;33401;33402;33403;33450;33467;33491;33492;33507;14998;33508;33527;33551;33552;33566;33567;33568;33737;33738;33739;14999;33740;33741;33764;33773;33772;33774;33775;33826;33933;33934;15000;34033;34032;34053;34087;34088;34163;34171;34212;34223;34246;15001;34253;34254;34255;34352;34340;34354;34353;34370;34355;34371;15002;34386;34387;34388;34392;34415;34444;34449;34450;34478;34492;15003;34500;34700;34669;34745;34720;34757;34810;34823;34937;15004;34938;34949;34950;34973;34975;34974;35010;34995;35031;35011;35032;15005;35033;35036;35083;35061;35077;35091;35106;35225;35174;35252;15006;35253;35254;35275;35276;35293;35294;35313;35314;35329;35333;35334;15007;35365;35364;35366;35378;35382;35383;35425;35384;35431;15008;35461;35463;35547;35548;35549;35550;35567;35612;35622;35637;15009;35638;35662;35663;35664;35691;35692;35738;35752;35739;35754;15010;35755;35762;35763;35764;35790;35901;35902;35907;35908;35991;15011;35924;35992;35925;35932;35958;35967;35968;35979;35980;35987;15012;35988;35989;35993;36046;36040;36134;36047;36066;36067;36052;15013;36053;36076;36084;36118;36090;36119;36120;36123;36135;15014;36142;36146;36164;36172;36173;36189;36174;36207;36208;36843;38158;15015;38202;38640;38641;38642;38656;38666;38667;38690;38668;38691;15016;38692;38696;38702;38703;38722;38723;38704;38724;38725;38747;15017;38795;38833;38869;38859;38878;38861;38880;39332;38980;38990;15018;38991;38992;39333;39374;39334;39391;39439;39440;39441;15019;39451;39483;39452;39495;39568;39569;44690;44691;44692;44693;44694;15020;44695;44696;44697;44698;44699;44700;44702;44701;44703;44704;15021;44705;44706;44707;44708;44709;44710;44712;44711;44713;44714;15022;44715;44717;44716;44718;44719;44721;44720;44722;44723;44724;15023;44725;44726;44727;44728;44729;44731;44730;44732;44733;44734;15024;44735;44736;44737;44738;44740;44739;44742;44741;44743;44744;15025;44745;44746;44747;44748;44749;44750;44751;44752;44753;44754;15026;44755;44756;44757;44758;44759;44760;44761;44762;44763;44764;15027;44765;44766;44767;44768;44769;44770;44772;44773;44774;15028;44775;44776;44777;44778;44779;44780;44781;44782;44783;44784;15029;44785;44786;44787;44788;44790;44789;44791;44792;44794;44793;15030;44795;44796;44797;44798;44799;44800;44801;44802;44803;44804;15031;44806;44805;44808;44807;44810;44809;44811;44812;44814;44813;15032;44815;44816;44817;44818;44819;44820;44821;44822;44823;44824;44825;15033;44826;44827;44828;44829;44830;44831;44832;44834;44833;15034;44835;44836;44837;44838;44839;44841;44840;44843;44842;15035;44844;44845;44846;44848;44847;44849;44850;44851;44852;44853;44854;15036;44855;44856;44858;44857;44859;44860;44862;44861;15037;44863;44864;44865;44866;44867;44950;44970;44951;44988;45008;15038;45025;45027;45026;45055;45054;45056;45069;45062;45057;45094;45113;15039;45123;45134;45337;45396;45369;45407;45397;45412;45427;45428;15040;45445;45479;45480;45546;45556;45558;45557;45559;45560;45612;15041;46226;46213;46314;46243;46315;46316;46346;46352;46707;15042;46708;46709;46710;46724;46725;46829;46830;46831;46832;46861;46862;15043;46875;47103;47104;47105;47154;47153;47584;47589;47704;47705;47735;15044;47767;47736;47792;47791;47890;47889;48220;48221;48222;15045;48223;48224;48225;48240;48241;48247;48248;48249;48256;48384;15046;48270;48344;48385;48386;48387;48895;48896;48924;48925;48928;15047;49057;49058;49103;49114;49121;49150;49184;49151;49231;49275;15048;49276;49277;49291;49292;49676;49717;49766;49767;49815;49965;15049;49966;50024;50309;50452;50696;50453;50826;50825;50864;15050;50865;51127;51128;51181;51180;51397;51398;51399;51400;51401;15051;51427;51428;51440;51531;51530;51556;51557;51558;51559;15052;51588;51665;51677;51817;51819;51818;51828;51829;51862;51945;51946;15053;51959;51977;51978;51979;52027;52028;52029;52030;52031;52032;15054;52037;52055;52056;52461;52462;52463;52484;52511;52512;52513;15055;52548;52537;52549;52550;52600;52551;52618;52619;52621;52620;15056;52637;52660;52674;52691;52718;52720;52719;52758;52741;52946;15057;52947;52948;52949;52997;52998;53198;53211;53212;53224;53259;15058;53260;53304;53324;53340;53341;53342;53343;53344;53393;53477;15059;53495;53496;53505;53506;53507;53558;53559;53602;53604;53603;15060;53605;53832;53833;53861;53860;53862;53880;53900;54588;15061;55027;55029;55028;55030;55031;55032;55033;55034;55035;55036;55037;15062;55038;55039;55040;55041;55042;55043;55045;55044;55065;55066;15063;55136;55145;55146;55164;55280;55170;55486;55487;55488;55489;15064;55490;55491;55516;55537;55524;55538;55554;55555;55610;55624;15065;55625;55641;55672;55673;55674;55694;55708;55721;55722;55769;15066;55770;55776;55820;55841;55852;55888;55889;55942;55998;56025;15067;56026;56074;56116;56143;56130;56144;56231;56145;56167;15068;56179;56307;56285;56340;56339;56381;56393;56394;56395;56409;56414;15069;56415;56443;56444;56669;56571;56586;56622;56623;56624;56662;15070;56663;56670;56671;56672;56714;56715;56727;56716;56728;56729;15071;56730;56759;56761;56760;56785;56786;56850;56856;56882;56881;56883;15072;56884;56923;56929;56982;56986;56987;56999;57499;57500;15073;57501;57502;57503;57504;57505;57507;57506;57508;57509;15074;57510;57512;57511;57513;57514;57515;57516;57517;57518;57519;15075;57520;57521;57522;57523;57525;57524;57526;57527;57542;57583;15076;57543;57621;57643;57693;57735;57702;57737;57736;57738;57753;15077;57811;57812;57813;57814;57827;57851;57879;57880;57925;57963;15078;57964;58012;58011;58043;58077;58078;58110;58135;58097;58136;15079;58148;58172;58198;58173;58199;58200;58251;58250;58295;58277;15080;58303;58304;58324;58391;58357;58393;58392;58436;58417;58437;15081;58459;58485;58460;58486;58530;58541;58598;58667;58608;58728;15082;58729;58753;58754;58766;58804;58817;58853;58854;58855;58883;58880;15083;58884;58908;58978;58969;59059;59060;59061;59062;15084;59070;59093;59094;59166;59167;59183;59182;59215;59216;59250;59251;15085;59758;59760;59759;59762;59761;59764;59763;59765;59766;59767;15086;59769;59768;59770;59771;59772;59773;59774;59775;59776;59777;15087;59778;59780;59779;59781;59782;59824;59825;59839;60088;59890;15088;60002;59961;60003;60004;60068;60005;60156;60142;61374;61382;15089;61401;61415;61438;61439;61440;61441;61495;61520;61537;15090;61538;61555;61578;61627;61652;61662;61723;61734;61735;62000;61792;15091;62011;62012;62013;62014;62015;62016;62049;62067;62086;62113;15092;62188;62225;62285;62317;62318;62440;62452;62448;62453;62599;15093;62643;62644;62664;62665;62666;62667;62721;62722;62723;15094;62748;62778;62804;62872;62805;62949;62929;63125;63028;63068;63114;15095;63126;63151;63188;63194;63193;63270;63269;63271;63272;63273;15096;63335;63341;63356;63342;63357;63358;63359;63382;63384;63383;15097;63385;63433;63386;63456;63457;63512;63511;63556;63557;15098;63582;63640;63648;64082;64364;64395;64439;64396;64493;64397;64553;15099;64623;64591;64635;64624;64648;64649;64662;64663;64671;64880;64732;15100;64867;64881;64897;64898;64972;64973;64995;64996;65033;15101;65556;65178;65179;65228;65557;65558;65584;65581;65582;65585;15102;65586;65635;65695;65696;65793;65744;65727;65812;65921;66159;15103;66004;66028;66296;66180;66281;66383;66384;66431;66486;15104;66546;66547;66548;66557;66558;66560;66559;66562;66561;15105;66563;66564;66565;66566;66567;66569;66568;66570;66571;66572;66573;15106;66574;66576;66575;66603;66602;66677;66676;66678;66916;15107;66766;66767;66768;66792;66846;66847;66851;66852;66905;66906;66910;15108;66917;66936;66974;66937;66976;67100;67101;67102;67131;67236;15109;67201;67202;68889;68942;68970;68971;69083;69094;69084;69107;15110;69109;69108;69227;69197;69228;69277;69313;69354;69398;69435;69459;15111;69470;69473;69484;69483;69506;69505;69522;69523;69542;15112;69780;69781;69884;69813;69841;69848;69885;69895;69938;69959;69960;15113;70002;70080;70128;70105;70148;70200;70201;70303;70353;15114;70354;70355;70372;70373;70374;70375;70402;70401;70403;70417;15115;70502;70503;70533;70534;70548;70636;70664;70652;70722;70733;15116;70737;70748;70749;70807;70981;70982;70983;70984;70985;70986;15117;71080;71025;71097;71055;71098;71118;71146;71141;71220;71180;15118;71221;71275;71254;71276;71277;71278;71402;71442;71474;71497;15119;71502;71526;71527;71528;71541;71585;71586;71618;71764;71769;15120;71778;71779;71780;71781;71782;71848;71802;71849;71850;71867;15121;71902;71911;71933;71934;71980;72010;72011;72109;72046;72239;15122;72240;72248;72375;72353;72354;72355;72401;72412;72439;72438;15123;72440;72537;72538;72562;72610;72647;72611;72758;72655;72782;15124;72886;72911;72912;72952;72989;72990;72991;72992;72994;72993;73065;15125;73139;73106;73214;73164;73215;73216;73239;73238;15126;73254;73255;73256;73278;73293;73350;73351;73388;73421;73440;15127;73441;73485;73465;73486;73501;73534;73581;73599;73713;73625;15128;73626;73657;73691;73714;73715;73743;73744;73745;73844;73855;15129;73856;73866;73867;73869;73868;73924;73971;73997;74027;74043;15130;74045;74044;74095;74096;74129;74097;74164;74197;74256;15131;77306;74277;74278;74279;74280;74294;74313;74314;74315;74336;15132;74338;74337;74375;74374;74381;74476;74477;74498;74499;76057;15133;76081;76082;76090;76091;76171;76194;76172;76219;76285;76286;15134;76299;76349;76387;76417;76418;76433;76465;76477;76499;76583;15135;76599;76689;76605;76606;76717;76690;76841;76842;76843;76844;15136;76857;76858;76884;76949;76950;76976;76977;77007;77035;77100;15137;77101;77102;77111;77122;77123;77202;77240;77287;77343;77307;15138;77344;77358;77418;77419;77422;77468;77469;77510;77511;77547;15139;77610;77585;77611;77637;77671;77715;77716;77751;77752;77762;77763;15140;77824;77825;77880;77881;77882;77919;77920;77921;15141;77973;78027;78026;78044;134330;78045;78046;78047;78091;78092;78449;15142;78563;78518;78519;78520;78589;78659;78681;78695;78694;78725;15143;78785;78784;78833;78834;78896;78861;78898;78897;79064;79065;15144;79066;79190;79221;79255;79339;79564;79362;79600;79586;15145;79627;79628;79629;79636;79637;79669;79696;79697;79728;79729;79730;15146;79731;79806;79805;79808;79807;79883;79882;79884;79885;79886;15147;79888;79887;79889;79890;80057;80058;80126;80207;80127;80208;80229;15148;80284;80230;80285;80255;80286;80307;80308;80361;80393;15149;80401;80420;80421;80444;80445;80446;80462;80528;80558;80573;15150;80574;80833;80834;80871;80872;80970;80972;80971;80973;81006;15151;81027;81028;81029;81056;81090;81109;81110;81111;15152;81129;81131;81130;81150;81149;81189;81211;134331;81250;81251;81279;81301;15153;81302;81409;81413;81444;81445;81446;81447;81426;15154;81448;81450;81449;81527;81526;81555;81528;81556;81747;81598;81607;81654;15155;81760;81748;81794;81793;81795;81830;81831;81832;81833;15156;81835;81834;81836;81899;81900;81926;81927;81955;81982;81983;15157;81984;81999;82000;82001;82048;82302;82303;82304;82305;15158;82432;82511;82512;82538;82595;82622;82624;82623;82670;82719;82720;15159;82721;82722;82744;82745;82746;82838;82806;82839;82865;82864;82929;15160;82930;83003;83062;83061;83063;83064;83120;83065;83145;15161;83146;83147;83191;83192;83193;83231;83232;83233;83234;83235;15162;83236;83253;83273;83306;83307;83335;83308;83336;83381;83422;15163;83423;83501;83532;83546;83547;83748;83775;83784;83785;83786;15164;83787;83788;83789;83820;83889;83908;83919;83960;83980;84024;15165;84025;84026;84063;84167;84168;84169;84170;84171;84200;15166;84298;84277;84299;84300;84350;84436;84373;84449;84474;84509;15167;84510;84511;84552;84598;84599;84626;84649;84650;84836;84837;84838;15168;84933;84839;84965;84992;85031;84993;85032;85053;15169;85129;85130;85162;85161;85164;85163;85165;85184;85352;85281;15170;85353;85354;85355;85356;85357;85388;85466;85517;85587;85588;15171;85589;85569;85590;85657;85664;85696;85726;85753;85755;85754;85756;15172;85770;85809;85810;85851;85898;85912;85914;85913;85915;15173;85944;86023;86024;86025;86050;86107;86108;86156;86157;86303;15174;86304;86329;86375;86430;86447;86448;86486;86580;86581;86582;15175;86642;86618;86665;86666;86678;86679;86680;86681;15176;86682;86700;86713;86727;86728;86772;86795;86832;86833;86888;86921;15177;86998;86954;87057;87058;87077;87078;87080;87079;87162;87163;15178;87164;87175;87187;87288;87212;87331;87289;87359;87360;87383;15179;87384;87428;87430;87429;87431;87479;87509;92679;87510;87511;15180;87541;87608;87739;87740;87684;87742;87741;87827;87828;87851;87829;15181;87852;87853;87898;87899;87900;87901;87979;87934;87995;87996;15182;88024;88110;88109;88389;88423;88424;88425;88427;88426;15183;88462;88495;88496;88497;88498;88499;88568;88581;88602;88601;15184;88628;88629;88631;88630;88702;88725;88727;88726;88741;88728;88865;15185;88768;88767;88846;88866;88867;88868;88915;88869;88941;88916;88942;15186;88943;88975;88976;89001;89046;89002;89003;89004;89005;15187;89061;89121;89062;89694;89122;89695;89696;89697;89698;15188;89791;89792;89793;89851;89794;89877;89876;89878;89926;89972;90030;15189;90031;90032;90033;90070;90071;90101;90125;90160;90126;90127;15190;90205;90206;90207;90252;90277;90278;90279;90280;90281;90322;15191;90323;90369;90370;90371;90409;90410;90453;90454;90515;90549;15192;90550;90551;90552;90686;90638;90687;90688;90724;90725;90767;15193;90768;90808;90838;90839;90840;90841;90896;90897;90927;90928;15194;90929;91023;91024;91025;91052;91110;91138;91139;91140;91174;15195;91175;91199;91200;91244;91266;91288;91300;91365;91364;91366;15196;91430;91429;91431;91447;91473;91474;91490;91506;91524;91549;15197;91550;91614;91615;91616;91692;91693;91837;91891;91886;91906;91892;15198;91923;91907;91924;91925;91926;91927;91965;92224;15199;92327;92381;92328;92475;92382;92502;92525;92526;92548;92527;15200;92571;92572;92573;92588;92614;92642;92643;92644;92666;92730;92706;15201;92731;92954;92955;92764;92795;92956;92875;92957;93018;92958;15202;93114;93019;93116;93115;93117;93134;93237;93238;93254;93324;15203;93354;93325;93387;93418;93419;93420;93486;93546;93547;93548;15204;93549;93613;93621;93668;93669;93693;93694;93695;93723;93747;15205;93748;93835;93836;93837;93838;93848;93849;93870;93871;93914;15206;93941;94023;94056;94079;94115;94116;94146;94205;94234;15207;94259;94260;94456;94478;94521;94588;94589;94644;94613;15208;94645;94738;94744;94743;94901;94902;94942;94922;95032;94943;15209;95033;95264;95034;95297;95298;95362;95361;95414;95445;15210;95610;95666;95667;95776;95777;95827;95828;96015;96016;96017;96018;15211;95936;95956;95957;95958;96101;96102;96104;96103;96105;96193;15212;96194;96287;96195;96318;96344;96345;96346;96410;96460;96461;15213;96462;96494;96496;96495;96498;96497;96637;96638;96667;96668;15214;96669;96819;96780;96843;96842;96844;96885;96912;96913;96932;15215;96933;96984;97067;97068;97089;97090;97136;97135;97137;97196;97217;15216;97358;97357;97397;97398;97399;97400;97442;97474;97475;15217;97498;97529;97530;97589;97615;97643;97644;97670;97699;97757;15218;97783;97800;97801;97802;97900;97922;97923;97967;99004;99005;15219;99006;99007;99008;99046;99047;99190;99140;99254;99292;99318;15220;99485;99484;99545;99640;99675;99695;99717;99716;99741;99742;99954;15221;99970;99971;99972;99973;100029;100070;100071;100111;15222;100163;100164;100165;100166;100178;100167;100277;100278;100279;100306;100305;15223;100391;100432;100392;100483;100433;100484;100520;100522;100521;100560;15224;100579;100561;100580;100625;100726;100725;100727;100728;100739;100773;15225;100774;100818;100797;100819;100852;100853;100877;100878;100879;100880;15226;100967;101008;101009;101010;101011;101012;101013;101034;101035;101066;15227;101067;101176;101240;101241;101322;101323;101379;101380;101490;101554;15228;101555;101556;101557;101793;101794;101857;101910;101911;101983;101984;15229;101985;102045;102046;102097;102209;102135;102210;102211;102369;102370;15230;102371;103792;102372;102373;102374;102442;102443;102444;102445;102446;15231;102447;102448;102449;102483;102529;102598;102550;102599;102600;102629;15232;102630;102684;102685;102715;102790;102791;102792;102807;102825;102826;15233;102927;102928;102929;102930;102931;102963;102964;103096;103146;103116;103147;15234;103198;103148;103231;103259;103260;103261;103311;103312;103331;15235;103364;103392;103365;103432;103473;103539;103578;103579;103580;103608;15236;103654;103655;103715;103716;103717;103757;103758;103793;103794;103859;15237;103882;103992;103993;103994;104057;104058;104134;104222;104223;104224;15238;104258;104259;104302;104339;104340;104365;104400;104401;104402;104403;15239;104441;104414;104442;104465;104466;104467;104482;104483;104484;104485;15240;104486;104503;104504;104535;104586;104587;104588;104643;104644;104645;15241;104684;104685;104686;104722;104723;104724;104752;104753;104754;104792;15242;104819;104861;104862;104940;105087;104975;105089;105088;105120;105119;15243;105121;105123;105122;105170;105195;105329;105330;105331;105332;105397;15244;105431;105430;105432;105433;105489;105497;105498;105499;105595;105623;15245;105663;105664;105704;105754;105799;105800;105801;105802;106056;15246;106076;106109;106176;106212;106213;106235;106319;106321;106320;106413;106412;106414;15247;106509;106415;106593;106537;106661;106660;106726;106662;106727;15248;106728;106729;106852;106820;106853;106854;106874;106875;106876;106877;15249;106955;106956;106957;106986;107025;107024;107026;107119;107120;107121;15250;107122;107123;107124;107199;107279;108304;108345;108386;108346;108387;15251;108418;108417;108420;108419;108421;108422;108490;108523;108570;108571;15252;108610;108611;108664;108663;108697;108696;108698;108730;108731;108771;108772;15253;108774;108773;108789;108816;108817;108853;108854;108905;109003;108906;15254;109046;109047;109092;109065;109218;109093;109219;109220;109329;15255;109410;109349;109412;109411;109413;109415;109414;109518;109517;109556;15256;109557;109558;109587;109588;109589;109624;109658;109659;109660;109739;15257;109802;109901;109816;109925;109902;109968;109967;109969;110101;15258;110102;110165;110207;110208;110315;110316;110317;110318;110386;110418;15259;110419;110420;110421;110423;110422;110424;110464;110503;110537;110570;15260;110571;110572;110624;110665;110666;110729;110787;110910;110820;110911;15261;110928;110929;110968;111014;111087;111088;111089;111112;111141;111140;111173;15262;111175;111174;111316;111234;111317;111360;111395;111396;111468;15263;111521;111534;111535;111536;111537;111538;111557;111594;111652;111653;15264;111668;111706;111707;111796;111797;111798;111985;111986;111987;111988;15265;112066;112185;112232;112233;112280;117297;117298;117368;117369;117370;15266;117435;117436;117437;117503;117504;117505;117506;117611;117621;117674;15267;117644;117645;117675;117676;117677;117678;117812;117838;117890;117862;15268;117909;117957;117958;118023;118097;118071;118099;118098;118121;118122;15269;118158;118180;118179;118216;118365;118408;118472;118473;118474;118495;15270;118720;118719;118721;118723;118722;118840;118893;118894;118895;118939;15271;119018;119040;134332;119124;119125;119269;119268;119290;119313;119314;119480;15272;119508;119509;119561;119634;119792;119817;119850;119891;119892;119893;15273;120963;119943;121056;121057;121134;121135;121167;121136;15274;121168;121234;121317;121400;121425;121426;121438;121485;121484;121557;121486;15275;121558;121560;121559;121561;121576;121603;121628;122068;122069;122102;15276;122163;122268;122269;122270;122271;122321;122272;122516;122517;122518;122519;15277;122551;122621;122722;122723;122793;122724;122794;122933;122957;15278;123021;123020;123023;123022;123024;123025;123097;123026;123531;123530;123532;15279;123533;123691;123692;123758;123799;123800;123836;123835;124037;15280;124038;124039;124095;124096;124205;124344;124345;124368;124683;124721;15281;124722;124779;124780;125094;125095;125096;125097;125176;125343;125344;15282;125414;125415;125608;125416;125609;125709;125783;125742;125784;125857;15283;125858;125859;125905;125929;125930;126012;125959;126013;126127;126128;15284;126129;126224;126351;126352;126391;126392;126514;126529;126654;126608;126655;15285;126656;126657;126755;126837;126966;126967;126968;127102;127077;15286;127486;127487;127488;127489;127490;127492;127491;127822;127867;127823;15287;127928;127868;127929;127930;128066;128083;128180;128181;128125;128182;15288;128307;128429;128430;128479;128510;128511;128534;128559;128560;128620;15289;128621;128622;128782;128783;128884;129026;129072;129073;129074;129107;15290;129108;129306;129364;129412;129365;129413;129414;129415;129416;129506;15291;129507;129596;129597;129856;129985;130073;130134;130135;130136;130288;15292;130289;130290;130349;130350;130351;130437;130369;130524;130438;130525;15293;130612;130631;130981;130774;130983;130982;130984;130985;131086;131036;131087;15294;131140;131139;131141;131142;131249;131294;131438;131439;15295;131784;131838;131966;132062;132061;132063;132082;132108;132109;132269;132110;15296;132326;132423;132347;132425;132424;132427;132426;132635;132699;15297;132736;132760;132761;133106;133107;132875;133108;133109;133110;133151;133230;15298;133325;133326;133415;133416;133417;133418;133419;133475;133533;133534;15299;133657;133658;133699;133700;133731;133732;133733;133734;133815;133816;15300;133878;133879;133880;134094;133968;134095;134183;134353;134433;134434;15301;134577;134634;134772;134773;134774;134839;134917;134984;135103;135416;15302;135191;135206;135207;135208;135365;135366;135499;135417;135725;135794;15303;135878;135879;135982;135983;135984;136069;136123;136125;136124;15304;136126;136127;136291;136369;136292;136371;136370;136373;136372;136375;136374;15305;136376;136430;136413;136590;136431;136591;136675;136703;136676;15306;136721;136754;136778;136837;136932;136933;137155;137208;137209;137340;137341;15307;137373;137374;137375;137376;137573;137673;137674;137675;137731;137764;15308;137864;137888;137912;138065;138104;138066;138105;138106;138107;138225;15309;138226;138227;138365;138394;138644;138645;138646;138647;138648;138649;15310;138650;138651;138860;138914;139010;139099;139211;139210;139254;139298;15311;139255;139342;139389;139521;139522;139553;139631;139777;139812;139877;15312;139878;139929;139930;140059;140060;140061;140062;140104;140299;140300;15313;140301;140302;140303;140607;140666;140667;140796;140811;140936;141138;15314;141243;141385;141464;141511;141651;141552;141725;141841;141886;141843;15315;141897;142189;142050;142513;142626;142635;142618;142664;142858;142885;15316;142951;142920;143002;143130;143187;143194;143191;143260;143332;143315;15317;143313;143439;143509;143505;143500;143551;143593;143544;144043;144041;15318;144189;144311;144322;144353;144437;144477;144426;144483;144594;144609;15319;144626;144624;144691;144679;144672;144737;144824;144839;144818;144866;15320;145021;145132;145194;145123;145397;145386;145309;145319;145480;145471;15321;145527;145523;145728;146242;146052;146122;146318;146353;146371;146357;15322;146389;146514;146561;146562;146617;146599;146613;146603;146757;146787;15323;146786;146791;146892;146926;146895;146922;146942;146986;147784;147789;15324;147855;147793;147904;148172;148169;148170;148235;148236;148225;15325;148212;148234;148277;148305;148300;148314;148326;148433;148364;148444;148441;15326;148536;148615;148756;148870;148841;148963;148932;148967;148964;15327;149010;149007;149011;149017;149020;149005;149038;149219;149082;149229;149232;15328;149218;149250;149275;149373;149482;149609;149490;149635;149715;149855;15329;150115;149897;150109;150095;150165;150228;150310;150302;150706;150704;15330;150705;150803;150903;150905;151037;151422;151423;151622;151485;15331;151667;151807;151890;151833;152019;152068;152138;152163;152165;152169;15332;152224;152271;152270;152418;152395;152518;152419;152564;152516;152565;152568;15333;152753;152638;152775;152783;152892;152967;153024;152943;153123;153202;15334;153201;153182;153215;153485;153512;153572;153570;153509;153862;153668;15335;153865;153970;153941;153993;154148;154177;154159;154178;154229;154194;15336;154263;154354;154432;154428;154707;154732;154734;154750;154772;154818;15337;154815;154948;154949;155015;155294;155293;155311;155314;15338;155317;155373;155634;155708;155709;155769;155870;155975;156013;15339;156015;156114;156186;156124;156188;156189;156233;156191;156260;15340;156259;156267;156266;156442;156331;156451;156466;156547;156564;156563;156616;15341;156651;156636;156695;156697;156751;156762;156768;156767;156763;15342;156948;156949;156950;157263;157253;157256;157251;157259;15343;157260;157258;157249;157257;157322;157320;157378;157380;157447;15344;157891;157886;157908;158044;158031;158052;158043;158090;158089;158109;158158;15345;158201;158200;158202;158204;158203;158270;158335;158509;158684;158585;15346;158678;158677;158699;158746;158682;158762;158761;158781;158836;158857;15347;158898;158897;158899;159112;159109;15348;15349;15351;15350;15353;15352;15354;15355;15357;15356;15359;15358;15360;15361;15363;15362;15364;15365;15366;15367;15368;15369;15370;15371;15373;15372;15375;15374;15376;15377;15378;15379;15380;15381;15382;15383;15384;15385;15386;15387;15388;15389;15390;15391;15653;15654;15655;15656;15657;15658;15659;15660;15661;15662;15663;15664;15665;15666;15667;15668;15669;15670;15671;15672;15673;15674;15675;15676;15677;15678;15679;15680;15681;15682;15683;15685;15684;15686;15687;15688;15689;15727;15728;15824;15729;15825;15830;15831;15835;15844;15690;15845;15893;15907;15899;15932;15925;15961;15953;15994;16007;16008;16020;16025;16047;16048;16049;16072;16073;16074;16087;16096;16102;16103;16104;16105;16106;16112;16127;16128;16129;16013;16130;16131;16132;16150;16155;16156;16165;16176;16181;16196;16182;16186;16212;16213;16214;16215;16233;16234;16235;16236;16237;16239;16238;16246;16248;16249;16252;16262;16266;16284;16283;16300;16311;16341;16340;16342;16343;16345;16344;16346;16347;16365;16348;16380;16381;16383;16382;16391;16457;16465;16464;16470;17130;17143;17136;17196;17197;17232;17286;17299;17324;17577;17578;17600;17639;17640;17641;17657;17664;17673;17674;18009;18010;18030;18042;18056;18053;18080;18086;18087;18115;18143;18151;18152;18153;18157;18158;18195;18242;18226;18303;18227;18304;18514;18513;18516;18515;18517;18518;18595;18519;18623;18603;18596;18629;18630;18631;18632;18645;18651;18646;18652;18655;19195;18662;18664;18663;18667;18665;18674;18673;19188;19189;19219;19196;19220;19221;19224;19223;19225;19257;19270;19258;19315;19316;19317;19318;19319;19336;19373;57528;19430;19431;19432;19433;19475;19477;19476;19479;19478;19526;19527;19528;19529;19530;19531;19560;19532;19561;19562;19564;19563;19565;19566;19567;19568;19569;19570;19609;19571;19611;19610;19612;19613;19682;19683;19684;19685;19690;19708;19709;19710;19711;19785;19786;19787;19788;19789;19790;19791;19792;19793;19794;19795;19796;19797;19799;19798;19800;19801;19802;19804;19803;19806;19805;19808;19807;19809;19845;19846;19847;19953;19848;19955;19954;19956;19957;19958;19959;19960;19961;19963;19962;19964;19965;19966;19967;19968;19969;19970;20018;20019;20020;20063;20070;20072;20071;22736;22737;22738;22740;22739;22741;22743;22744;22742;22745;22746;22748;22747;22749;22750;22751;22752;22753;22754;22755;22757;22756;22758;22759;22760;22761;22762;22763;22764;22766;22765;22767;22769;22768;22770;22771;22772;22774;22773;22775;22776;22777;22778;22779;22780;22781;22783;22782;22785;22784;22786;22788;22787;22789;22790;22791;22792;22793;22794;22795;22797;22796;22798;22799;22800;22802;22803;22804;22801;22805;22806;22807;22808;22809;22811;22810;22812;22813;22815;22814;22816;22818;22817;22819;22821;22820;22822;22823;22824;22825;22826;22827;22828;22830;22829;22832;22831;22834;22833;22835;22837;22836;22838;22839;22840;22842;22841;22843;22844;22845;22847;22846;22848;22849;22850;22852;22851;22853;22855;22854;22856;22857;22858;22859;22860;22861;22862;22863;22864;22865;14832;84239;10053;27582;21293;17599;10054;153223;135673;149524;135097;53493;73213;72392;136341;76868;76867;76869;76866;72416;72391;56754;53492;142596;12295;92627;62974;63476;46738;137364;138149;138150;148825;138151;153806;52045;58483;144790;148360;126603;19750;52536;22410;11691;11713;31130;54615;49110;15556;24322;10663;144791;22159;106203;121509;50677;13751;19770;11104;11017;10679;69934;69933;111754;25292;19751;51094;51093;51095;110553;110554;121037;39463;12638;18261;36185;32319;24670;84086;139785;155305;47605;47606;58591;103789;103114;104126;103219;11655;70447;18200;10438;45433;45432;35351;47801;47800;47761;20745;20746;15783;103115;33480;34325;35450;12217;35372;11951;55883;15753;33447;11002;31658;72779;10595;58182;106137;106138;136411;103647;145073;87593;87594;87595;157842;87596;34111;17631;59959;40875;35373;147947;22235;111529;106050;155350;117358;124029;117359;21214;22366;31116;44059;38926;24711;22315;22475;21662;58747;58748;58745;58746;33446;10057;11338;11386;27856;27857;29925;32433;66239;83113;67192;70742;74222;71858;92786;105411;73967;66240;93561;74223;73968;71859;77810;83114;92787;72802;100682;10953;42818;86322;59852;10058;17991;10059;19309;19238;71177;24903;27535;74089;27855;21778;99689;95882;11344;97995;11394;29801;15514;12241;22482;109142;11933;44920;22481;42058;72704;33925;32506;24244;24242;24243;33482;24018;70294;66755;81319;73160;100934;86445;93197;90198;99762;101396;117884;101397;124239;154728;131764;137079;137365;137055;31643;42978;69430;69400;38928;66527;45122;42979;18505;20926;14772;20925;31466;21559;12287;109208;12013;111604;119833;35029;51185;131730;135187;144756;139206;148956;148955;70411;80442;68905;90265;10450;10451;11631;20869;141781;141780;154967;18254;12086;26915;21023;154966;14234;34769;58183;70545;90027;93650;56693;56692;35717;63324;63691;71144;73634;72102;84291;85652;89682;134979;135757;62678;64990;71145;72103;73635;76619;77186;78511;79386;81975;84292;85653;86673;89683;107088;78515;94051;91781;92495;95026;97942;99690;101063;102714;107089;108688;124176;109344;111599;122349;123006;124698;118307;121214;126952;132340;134702;136745;137636;140766;140765;143126;143274;148896;148935;149999;151932;152533;155559;156863;153402;158095;159145;158982;122449;109041;24264;18639;24265;92626;24266;18638;70920;18641;92355;39365;42254;32325;128551;35751;89684;33274;18640;136927;11625;14198;31731;11997;27057;10833;18565;18566;18567;10060;11751;136928;18568;18569;18120;110555;15453;21092;20253;11075;33926;22312;18222;46692;66395;21555;20129;11805;23624;18461;21621;18479;33856;22299;20069;31650;43099;16061;11022;12233;42833;11100;16044;52482;22305;40349;11976;69471;26185;24355;13845;18617;136766;149062;11946;11505;12118;10061;34369;45065;136767;51141;12062;12269;45109;35760;34349;39805;34221;47022;44938;61709;63338;33397;31850;31851;22903;31863;19428;42412;43030;20349;83813;45120;54613;14375;21039;24021;23636;10928;10933;10510;11093;22253;18393;83814;31720;29927;11908;15720;45023;81604;15719;14358;10062;20727;20394;64458;66033;64457;46198;46197;46199;46200;63245;41607;135096;109941;153800;119499;112037;112038;112039;112040;112041;112042;112044;112043;112045;117665;112046;118799;121249;122973;105752;81816;101025;76572;11758;59656;59655;73317;20750;23652;20321;16469;50511;19689;55995;61491;83474;61489;109042;119305;130465;61490;96956;101110;95921;95922;57918;73372;95923;73370;73373;77632;77633;77634;77635;79720;77864;85545;85544;74368;77304;81342;84640;84402;90422;93716;96961;77631;64703;101530;108405;103382;77303;112193;64701;138601;64702;108713;55732;111528;150504;78823;153805;69982;94163;83032;70727;87309;91813;104178;62946;62945;45371;38206;35462;35467;40849;40850;73921;40851;73349;84163;91131;101846;101847;104380;104897;106562;109683;117809;121232;122717;76149;135179;135924;132018;101304;103818;107222;112211;121064;122649;143422;150049;150048;139749;73348;139750;139751;136421;101305;106849;58003;94513;104389;94514;104390;94515;102036;104391;102037;72336;149643;72335;10609;11473;14805;12095;88145;45006;18532;90191;149501;99169;90427;99170;99172;99171;154138;18362;62351;22493;11409;19552;11812;22494;24814;155470;52974;26014;76311;25080;22129;22128;22196;22195;22127;22126;22133;25296;76310;31357;25295;45344;45345;10063;11656;11619;38651;105255;35611;20958;20957;61995;61996;11497;11197;35716;23724;18537;24733;18536;22160;61610;61611;61609;85448;58290;10361;10570;10064;151191;154814;151190;16223;147171;108804;10558;77026;108799;108800;108801;152458;108802;11889;23640;18416;46783;51861;53856;62734;77055;107149;125737;128036;128553;129470;135311;149260;104815;127100;11828;12232;16111;51179;66373;24267;20211;16250;22412;51675;51674;14664;30253;65688;65687;47135;53512;14682;34237;25899;11538;11644;11449;10065;19418;150945;80119;133510;88390;122552;137913;139813;91525;97499;118614;110056;126393;141516;105434;132549;134956;118615;97758;96052;126394;94344;150477;95374;122553;91838;129308;118616;97864;88703;105435;118617;147628;97443;118618;94765;140615;104187;118598;105398;147626;142318;132550;91053;118619;124206;136128;95959;136129;135013;100134;136130;104303;154697;105466;129075;151462;138228;97476;144346;118620;132551;88428;95960;118621;152819;96053;118622;97091;129076;144096;118623;87786;157382;152816;94345;104366;137377;132552;91327;139814;134918;93200;89973;96054;147637;119732;138229;132553;151461;137914;105399;126395;118599;118624;124418;151495;118625;105467;156827;93255;156848;151498;118626;154685;151460;146409;93030;147905;104188;129598;122432;127495;92845;105436;136131;118627;78119;78120;78121;91141;97306;88917;78122;78123;154678;78124;88429;118628;132554;105400;95961;126396;139815;154698;132555;118629;78125;78126;154701;118630;156833;88870;123027;142038;118600;122958;123028;136132;92846;118631;97419;78127;97151;91201;139816;78128;78129;78130;97901;97359;78131;88430;97477;78132;78133;146410;87743;104189;78134;125417;78135;78136;78137;86003;78138;78139;88431;78140;78141;78142;78143;78144;78145;78146;78147;95962;105333;78148;78149;78150;78151;78152;88432;78153;78154;95937;123029;78155;146413;78156;78157;84450;123030;96106;78158;78159;78160;88531;93971;78161;78162;78163;78164;83477;86004;78165;118632;78166;86005;78167;78168;78169;78170;78171;144341;93696;78172;78173;138819;78174;78175;78176;78177;78178;78179;78180;78181;78182;154679;78183;78184;78185;79670;78187;78188;143112;100135;78189;78190;118633;78191;78192;78193;83004;105735;78194;78195;78196;83502;78197;78198;78199;78200;78491;86006;80256;80257;78660;78696;78697;127496;91617;78835;84451;78877;137676;133625;79340;80447;85945;79601;79732;79602;79644;79603;79587;86007;79604;79809;79605;79606;79733;79891;85946;79892;80038;80059;80108;81608;80231;92383;92384;81557;80309;97671;80529;86008;88582;80891;92528;86009;81558;83148;156835;88433;85947;81303;81390;81391;141185;86256;81609;118634;82671;88434;82576;86271;86272;82513;141173;85948;97420;82539;82577;119731;88435;82672;85949;86257;82673;125683;85963;83005;82905;82931;82932;83006;85950;83038;86026;83749;85951;99203;93135;95938;84010;91202;85771;154702;93256;85952;93850;85916;111708;86010;91367;85953;85917;85918;88064;88436;91368;84966;86011;85054;88437;86012;84627;99238;85954;86013;91507;86014;91579;88065;85131;88847;85518;93915;88811;88812;105510;94655;91328;91301;88813;85607;85852;91398;93084;101938;88814;85697;85853;85708;86015;85854;85855;85856;85889;85857;85890;91329;85891;85932;119894;91432;97307;138230;86109;97308;91302;95963;86187;91433;97531;87902;86358;86330;118635;86407;86619;86449;97560;87903;88438;91330;156824;88815;91313;88439;91314;91448;91315;86773;86729;86796;86774;136133;99048;147636;107135;123977;149078;95939;88848;144363;118636;126397;104190;93100;154686;155624;139704;119793;99920;118601;118637;93257;118638;92667;135014;138652;126398;110057;126399;118639;139817;97152;105401;123136;144103;118640;132556;91434;101491;100179;118641;154700;94646;92876;142359;90455;118642;136208;104687;146388;99641;136209;134957;104304;97401;101492;92707;126400;132557;104191;87787;118643;104107;97838;118644;151466;152776;100180;149081;94984;119818;87660;91861;94449;100000;118645;121439;122763;132558;97444;129309;95717;90324;119733;95940;156826;132559;136134;124419;118602;127078;97153;154690;100181;118603;95941;91142;151463;139818;122764;122554;118646;144344;132560;144364;87904;142043;95942;123031;132561;139819;156831;118647;91580;129310;105437;118648;129307;154703;118649;124420;132562;119895;118650;156828;97445;129311;157297;126401;91143;122765;119696;146403;139820;104192;132563;156843;144358;100136;95035;118651;87432;156834;97421;147633;87905;129312;138395;105438;91694;125480;137915;105402;88849;118652;122433;119697;154682;94147;104108;92847;147631;104305;146390;136135;105403;154699;154672;132548;152825;142523;121440;137916;154680;118653;146405;95900;151499;118654;118655;105439;88851;107136;156829;147632;132564;118604;105404;118656;94647;123032;97478;95964;95718;97360;97154;91054;129313;146611;93839;94408;136136;127497;95400;94985;134958;152827;124464;93247;154674;118605;118657;148278;139821;97422;97361;91055;138233;132565;144098;118658;150462;94117;124421;132566;118606;93749;104306;88871;96463;127498;126402;132567;157367;147500;97479;139822;154689;100001;152823;149070;118659;91695;153762;119635;152820;95965;127493;150194;159139;123978;118607;144093;139823;101093;152777;144359;118660;97155;100137;142248;118608;92959;139824;136137;147629;78201;100002;96985;87771;118661;137917;78202;103262;142041;136138;156823;78203;154692;118662;105440;97218;138231;152814;122766;142049;126403;91056;118663;154676;147630;144352;143110;118665;118664;139825;118666;118609;101858;129314;118667;86016;105468;118668;122767;93136;124422;147524;136139;118669;88769;135940;97402;78204;124423;91435;144435;95943;118670;155605;91551;104260;97924;78205;88025;118671;125481;133511;132568;97423;93916;129315;118672;144345;88872;156841;97446;90411;149069;118673;92708;100003;95944;90102;144349;118674;150465;87433;94766;105469;144357;118675;118676;99009;118677;118678;137918;103313;93201;152826;147634;154675;118679;97362;93239;105441;132569;101912;100704;154695;123837;93202;88852;136207;111709;118680;127499;156837;123838;118610;122434;136140;94479;95966;125482;97532;132570;118611;118681;118682;104307;119819;156840;97447;99204;121441;143102;118612;118683;104261;78206;147635;145255;87434;100138;155753;94206;100004;132571;139826;147625;147623;156825;101493;139827;78207;93750;90809;151496;107137;144355;136141;94412;105442;91303;142036;132572;144361;88026;99444;88463;126404;94522;154693;156842;134959;118685;118684;119820;88742;132573;100331;91144;92986;118686;104193;132547;122622;154684;125483;88066;88873;118687;118688;142037;154880;132574;146404;154691;88770;136142;88440;97156;94118;118689;133774;97424;118690;95967;143103;118691;93840;126405;118692;78208;136143;100112;136144;104415;78209;118693;78210;78211;155754;78212;147627;78213;88441;157329;126406;154671;154696;94480;146391;95036;99921;138067;101094;147624;93550;156838;134960;78214;118694;152824;94301;88888;96781;94923;154677;95968;126407;154687;118695;104341;138234;139828;119668;95969;135015;136145;126408;144356;105470;112023;100280;126448;154683;125484;104194;103995;100182;142247;87788;93841;91369;110058;88874;118696;127500;150460;110059;132575;146402;142046;91436;118697;154968;104308;118698;129316;154673;78215;101913;78216;93203;152815;126409;150469;118699;97333;86017;78217;118613;104109;95970;132576;78218;78219;91331;118700;140616;104135;137919;142264;95971;90456;92005;132577;156830;78220;124424;100006;105443;151465;154681;118701;78221;154694;105444;105445;158316;78222;78223;96464;87435;100007;94687;138232;146408;124425;127501;146398;136146;94648;78224;78225;129317;154888;87436;97480;149072;100168;122435;92709;140617;156839;78226;92765;140470;132578;118702;99546;132579;90161;132580;152821;127494;156836;101859;94986;104262;118703;87906;152817;136147;124426;139829;132581;104342;152822;132582;125485;88442;119669;101242;100139;126410;97902;88569;89945;78227;154688;105405;122768;96288;78228;78229;138068;137378;101324;129318;78230;118724;105471;78231;78232;91552;81597;151790;102732;76940;151021;85693;102733;73948;73950;73949;138140;76332;76333;148022;78427;59477;95387;97191;73598;76073;32376;30152;35322;11054;10066;18186;15540;10837;20754;60154;15764;10838;10067;39806;39875;21573;43164;13661;13662;13663;13665;13666;13668;13667;13669;13670;13671;13672;13674;13673;13676;13675;13678;13677;13679;13680;13682;62243;13683;13684;13685;13686;13687;13688;13689;13690;13691;13692;13693;13694;13695;13696;13697;13698;13699;13700;13701;13702;13703;13704;13705;13706;13707;13708;13709;13710;13711;13712;13713;13714;13715;13717;13716;13718;13719;13720;13722;13721;13723;13724;13725;13727;13726;13728;13729;13730;13731;13732;13733;13734;13736;13735;13737;13738;13739;13748;13749;13746;13747;13750;13850;14207;14208;14209;14210;13851;14203;14252;15474;14320;14321;14348;14349;14627;14628;14839;14592;14593;14373;14374;14642;14643;14741;14742;14743;14744;14688;14689;14690;14691;14692;14693;14701;14702;14703;14704;14789;14716;14717;14764;14765;14807;14808;15430;15422;15454;15475;15578;15471;15544;15584;15585;62245;62246;15730;15731;15732;15733;62247;15734;15735;15747;15748;15790;15791;15847;15848;15841;15842;15895;15896;15930;15977;15976;15978;15979;15980;16026;16027;16028;16029;16030;16031;16050;16051;16055;16032;16052;16033;16097;16107;16098;16099;16113;62248;16133;16134;16267;16166;16268;16167;16285;16287;16286;20056;20073;20074;20076;20075;20077;20078;20164;20098;20099;20100;20101;20114;20138;20139;16288;20165;20166;16289;20186;20187;20188;20189;20190;20191;20192;20193;20194;20229;20230;20231;20232;20242;20243;20256;16301;20287;20257;20288;20259;20258;20260;20277;20278;20279;20289;20290;20291;20305;20304;20306;20307;20308;20309;20310;20311;20323;16349;16350;20324;20325;20326;20350;20351;16351;16352;16353;16354;62253;62254;16355;16356;16357;16358;16373;16374;16466;17137;16467;19614;19615;19616;19617;19618;19619;19620;19621;19622;19623;19624;19625;19626;19627;18314;18315;18316;19628;18317;19629;18318;19630;18319;19631;19632;19633;18320;19634;18321;19635;18322;19636;19637;18323;19638;18324;18325;19639;18326;19640;18327;62255;18328;19641;19642;18329;19643;18330;18331;19644;18332;19645;19646;18333;19647;18334;19648;19649;19650;19651;19652;19653;19654;19655;62256;19656;62257;62258;18335;19657;19658;18336;18377;18337;18438;18378;18574;18439;18575;18508;18577;18509;18578;18542;19464;18579;18580;18543;18581;18582;18593;18604;62259;18624;18625;18684;19259;18685;19190;19197;19198;19230;16118;19290;16119;19260;19262;19261;19264;19271;19272;19274;19273;19275;19278;19276;19279;19280;19291;19293;19292;19294;19374;19375;19321;19320;19322;19378;19379;19465;19466;19435;19434;19467;19468;19420;19436;19421;19659;19437;19469;19470;19438;19660;19471;19480;19482;19481;19483;19661;19662;19663;19664;19666;19665;19667;19668;19720;19721;19722;19724;19723;19725;19726;19727;19728;19729;19731;19730;19732;19733;19734;19736;19735;19737;19738;19739;19740;19868;19869;19870;19871;19873;19872;19874;19875;19876;19878;19877;19879;19881;19880;19971;19972;19882;19883;19884;20021;19973;20022;20023;20024;20025;20026;20027;20167;20028;24027;20029;62260;62261;62262;62263;20403;20405;20404;20406;20407;20408;20409;20410;20730;20756;20757;20802;20848;20847;20871;24028;24030;24029;20872;24031;20881;24032;24033;20882;20883;24034;24035;24036;24037;20884;24038;24039;24041;24040;20937;24042;24044;24043;24045;24046;24047;24048;24049;24050;24052;24051;24053;24054;24055;24056;24057;24058;24059;24060;20997;20998;24061;24062;24063;24064;24065;24066;24067;24068;24069;24070;24071;24072;24073;24074;24075;21076;24077;24076;24078;24079;24080;24081;24082;21101;21122;21123;21190;21191;21192;21169;24083;21249;21251;21250;21252;21253;21273;21274;21294;21295;21296;24084;24085;24086;24087;24088;24089;24090;24091;24092;24093;24094;24095;24096;24097;24098;24099;24100;24101;24102;24103;24104;24105;24106;24107;24108;24109;24110;24111;24112;24113;24114;24115;24117;24116;24118;24119;24120;24121;24122;24123;24124;24125;24126;24127;24128;24129;24130;24131;24132;24133;24134;24135;24136;24137;24138;24139;24140;24141;24142;24143;24144;24145;24146;24147;24148;24149;24150;24151;24152;24154;24153;24155;24156;24157;24158;24159;24160;24161;24162;24163;24164;24165;24166;24167;24168;24169;24170;24171;24172;24173;24174;24175;24176;24177;24178;24179;24180;24181;24182;24183;27648;62264;62266;62265;62267;62268;62269;62270;27649;24184;27650;27651;27652;27653;24185;27654;27655;24186;24187;27656;27657;24188;27658;24189;24190;24191;24192;27660;27659;24193;27661;27662;27663;27664;24194;27666;27665;24195;24196;27668;27667;27669;27670;24229;27671;27672;27673;24198;24197;27674;27675;27676;27678;27677;27679;24200;24199;27680;27681;27683;27682;24224;24225;27685;27684;24226;27686;24231;24230;27688;27687;24298;27689;27691;27690;27693;27692;27695;27694;27696;27697;27698;27699;27700;27701;27702;27703;27704;27705;27706;24820;27707;27708;27710;27709;27711;27712;27714;27713;27715;27716;27718;27717;24299;27719;24324;24325;27720;27721;27723;27722;27725;27724;27726;24300;27727;27728;27729;27730;27731;27732;27733;27734;27735;27736;27737;27738;27739;27740;24301;27741;24302;27742;27743;27745;27744;27746;27747;27748;27749;27750;27751;24303;27752;27753;27754;27755;24304;24305;27756;27757;27758;24306;27759;27760;27761;27762;24348;24349;27764;27763;27765;27766;27767;27769;27768;27770;27771;27772;24361;24360;27773;27774;27775;27777;27776;24728;27778;27779;24692;27780;27781;24693;24694;27782;27783;27785;27784;27786;27787;27788;27790;27789;27791;27792;27793;27795;27794;27797;27796;27798;27799;27800;27801;24766;24714;28152;24715;28153;27805;27807;27806;27808;24716;27810;27809;28302;24717;27811;24718;27812;24767;24729;27820;28254;27821;27822;28186;28154;28155;28156;28157;28303;28158;28255;28160;28159;24768;24769;28161;28304;28162;28305;28163;24821;28164;24822;28187;28213;24795;28188;24796;28189;28190;28191;28192;28306;28214;24824;24823;28216;28215;28307;28229;28256;28230;24882;24883;28231;28257;24836;28258;24837;24884;28308;24885;28309;28310;28311;28312;28313;28340;28341;24922;29264;24923;28342;28343;30024;29193;28344;24924;25001;24925;24926;28345;28346;29194;28347;29195;29265;25002;24927;24928;29266;30068;29267;29269;29268;25003;29270;25045;29271;25046;29272;29708;29273;29709;30069;29275;29274;29276;25013;29277;25014;25027;25028;25029;29278;25030;29279;29841;29280;29281;29282;29283;25047;29284;25048;29842;29710;29711;30025;30026;29712;29713;29714;29715;25101;29757;29809;29758;29759;29760;29761;29810;29762;29763;29764;29765;29766;29767;29768;29794;29795;25127;25128;25178;25179;25180;25181;25182;25183;25230;25232;25231;25233;25234;25448;25302;25303;25304;25466;25357;25358;25467;25468;25469;25375;25376;25377;25378;25379;25380;25559;25449;25450;25507;25470;25471;25508;25509;25510;25511;25617;25618;25587;25588;25589;25590;25657;25658;25619;25716;25659;25621;25620;25630;25631;25745;25717;25746;25747;25910;25783;25839;25838;25862;25863;25864;25911;25865;25912;25939;25940;25941;25913;25975;25976;25977;25978;25979;25980;26081;26036;26082;26083;26114;26115;26932;26116;26933;27058;26934;26935;26936;27059;27060;27061;27631;27632;27633;27634;27635;27636;27637;27638;28232;27639;28233;28234;29196;28314;28315;29198;29197;29286;29285;29287;29843;29844;30070;29845;29846;30071;29847;29848;29862;29863;29864;29865;29940;29941;29942;29943;29944;29945;29946;30027;29947;29948;30028;29949;29985;29986;29987;31361;29988;29989;30156;30072;31427;30073;30074;30075;30076;30077;30078;30079;30080;30081;30082;30083;30084;30113;30233;30085;62271;62272;62273;62274;36704;62275;62276;31362;34965;34966;37222;30086;37932;36311;30114;37675;36774;30115;35012;36853;35013;35226;35014;36755;35015;35227;37165;35044;37734;35045;35385;30087;37823;36373;35046;38122;35047;35078;37147;35079;35048;35049;35062;35063;35064;36742;37924;35065;37255;35092;35093;35094;37348;30234;35095;35096;35097;35098;37057;37657;37313;35099;30235;37488;35228;36460;37100;38098;36324;38006;37149;35229;35230;35231;35232;36447;36894;35233;35234;35235;37257;35236;35237;37568;35238;35239;35264;35255;35256;36570;35265;35266;37268;36266;36263;37604;35267;37013;35386;35387;35665;35592;30157;30158;30159;30160;30161;30162;30163;30236;30237;30238;31057;31058;30239;30240;31029;31059;31030;31061;31060;31063;31062;31065;31064;31066;31067;31068;31069;31070;31071;31072;31073;31075;31074;31077;31076;31078;31079;31080;31103;31104;31105;31106;31107;31108;31171;31172;31124;31363;31152;31173;31153;31174;31175;31176;31177;31178;31179;31180;31181;31364;31182;31311;31312;31313;31314;31812;31315;31316;31365;31317;31318;31813;31814;31325;31326;31366;31367;31428;31369;31368;31370;31371;31372;31373;31374;31375;31429;31430;31431;31432;31433;31434;31435;31436;31664;31665;31970;31666;31667;31669;31668;31971;31670;31688;31689;31690;31691;32087;31692;31712;31713;31743;31742;31744;31745;31746;31815;31747;31748;31749;31750;31751;31816;31817;31818;31819;31820;31821;31822;31823;31824;31825;31826;31827;31828;31829;31972;31973;31974;31975;31976;31977;31978;31979;31980;32382;31981;31982;32036;32038;32037;32039;32040;32041;32042;32043;32044;32088;32089;32090;32091;32092;32093;32094;32095;32096;32097;32098;32099;32100;32101;32102;32104;32103;32105;32106;32107;32108;32109;32196;32197;32198;33143;32199;32200;32201;32202;32203;32204;33144;32205;32207;32206;32327;33231;32328;32329;32458;32330;32331;32332;32333;32334;32335;33232;32336;32337;32338;32339;32340;32341;32342;32343;32344;32459;32345;32346;32347;32348;32349;32460;32383;32384;32385;32387;32386;32408;32410;32409;32411;32412;32413;32436;32414;32437;32438;32461;32463;32462;32464;32465;32466;32468;32467;32469;32483;32484;32486;32485;33078;33079;33080;33081;33082;33083;33112;33113;33114;33115;33116;33117;33145;33146;33147;33148;33149;33150;33179;33180;33181;33182;33184;33183;33185;33221;33222;33233;33234;33368;33369;33235;33370;33236;33237;33238;33259;33261;33260;33262;33263;33264;33371;33372;33373;33404;33405;33406;33407;33408;33409;33410;33411;33412;33413;33414;33415;33416;34124;34421;33417;33418;33453;33454;33455;33456;33457;33458;33459;33468;33469;33470;33535;33839;33514;33515;33536;33516;33840;33517;33518;33519;33537;33520;33521;33538;33539;33540;33541;33542;33543;33553;33554;33555;33569;33841;33842;33765;33776;33766;33767;33768;33777;33769;33770;33778;34172;33843;33844;33845;33846;33847;34100;33883;34101;34102;34103;34125;34126;34128;34127;34129;34130;34131;34132;34133;34134;34135;34137;34136;34138;34139;34422;34140;34279;34142;34141;34143;34144;34145;34147;34146;34148;34149;34150;34173;34174;34175;34176;34177;34178;34180;34179;34181;34182;34183;34185;34184;34186;34187;34203;34204;34224;34225;34226;34227;34280;34282;34281;34423;34283;34284;34305;34285;34286;34287;34306;34313;34307;34314;34308;34309;34479;34341;34342;34377;34376;34343;34344;34356;34357;34378;34379;34380;34381;34425;34424;34426;34427;34451;34452;34480;34454;34453;34455;34481;34710;34456;34711;34493;34482;34483;34494;34495;34670;34671;34673;34672;34674;34675;34712;34701;34676;34677;34713;34681;34683;34682;34684;34702;34703;34705;34704;34758;34706;34759;34707;34714;34746;34715;34747;34716;34717;34721;34722;34824;34748;35016;34749;35017;34750;34825;34760;34761;34774;34775;34776;34777;34778;34826;34827;34828;34829;34830;34831;34832;34833;34834;34835;34837;34836;37315;37735;36933;37326;35388;35389;35390;37525;36641;35391;37912;37801;35392;35393;35394;35395;35396;35397;36344;35398;35438;37219;37826;37803;36411;35399;37860;35400;36222;35455;36929;37875;35593;37157;35456;36767;35404;35439;35440;37773;35464;35441;37947;37071;35457;38129;38028;35666;37560;36322;35465;41973;42374;41974;41975;42375;42072;42073;42121;42122;42123;42267;42074;42268;42124;42152;42376;42153;42125;42126;42269;42127;42270;42128;42377;42154;42155;42156;42157;42158;42444;35466;42445;42446;42447;42448;42271;42192;42193;35693;42194;42449;42195;42272;42273;42786;42274;36971;42378;42881;42379;42275;42276;42882;42277;42278;42279;42280;42281;42787;42827;42297;35560;42935;42380;42381;42382;42383;42384;42385;42386;42401;42400;42965;42402;42403;42883;42884;42450;42451;42452;42453;42936;42901;42902;42903;36779;42802;42803;42804;42805;42806;42807;42984;42904;42905;42906;42907;42985;42845;42846;42848;42847;42849;42986;42988;42987;37553;44877;35561;42885;37289;43008;42908;36882;43113;42909;42910;43327;42911;37279;43328;42937;42938;42939;42941;42940;42942;43114;42966;43370;43371;47167;43115;35594;44878;43611;43602;43090;43329;43009;43010;43011;43012;43013;43372;43014;47168;43032;43591;35595;43033;43034;43116;43035;43117;43612;43036;43118;37680;37960;35596;43330;43091;43092;43373;43119;43103;43120;43121;43122;43123;43124;43126;43125;44879;43331;43165;43166;43332;47169;43603;43604;47170;43333;43334;43335;43336;43337;43338;43339;43340;43341;35734;43374;43375;44880;44881;44882;43592;43593;43606;43607;44883;35597;43594;43595;37881;37378;35604;35667;36955;35668;35669;37920;35670;36489;36702;35671;35735;36304;37466;35694;36913;36301;35781;37388;36735;35933;37687;35720;35808;36796;37727;35744;35745;36603;37133;35746;37641;36945;35753;36780;35756;36748;37543;35782;36996;35959;35783;35769;38079;35960;36291;35801;35802;36866;36875;35909;36287;35926;35927;38159;37482;36068;35934;37423;35961;37264;37872;35962;37197;39392;36108;36660;36233;35981;36320;35982;36827;35983;35984;37905;37136;35994;35995;35996;36811;36384;38080;35997;36022;37306;36023;37444;37323;36024;36025;36503;36026;37242;37633;36041;37824;36054;37911;37813;36156;36905;36077;37298;36091;36109;37599;36110;37517;36124;36125;37865;37541;37753;36126;37866;38669;38796;38670;38672;38671;39592;39593;36165;36312;36166;37055;36703;36175;36190;36706;38184;36209;38956;37075;38185;36210;36261;36211;37870;38957;38160;37309;38673;38726;38674;38727;38186;38187;38188;38189;38835;38675;38676;38809;38811;38810;38916;39453;38749;38748;38958;38750;38959;38960;38993;38994;38797;38798;38812;38836;38837;38961;38962;38862;38863;38904;38905;38906;39393;38907;38931;39474;39475;39476;38908;38917;38918;38919;38932;38933;38934;38935;38936;38937;38995;38938;38939;38940;38941;38996;38997;38942;38943;39394;38998;38999;39000;39395;39396;39503;39397;39539;39504;39398;39399;39400;39771;39401;39540;39505;39402;39541;39403;39404;39405;39406;39407;39542;39454;39455;39543;39456;39457;39458;39544;39459;39477;39545;39546;39506;39507;39508;39509;39510;39511;39512;39513;39844;39547;39548;40828;40474;39602;39603;39604;39605;39606;39607;39608;39609;39610;39611;39612;39613;39772;39854;39773;40948;40580;39774;39855;39845;39846;40409;39847;40410;39856;39857;39858;39859;39861;39860;39862;39863;39864;40346;39865;39866;40347;40424;40356;40357;40358;43015;40395;40411;40413;40412;40425;40414;40427;40426;40428;40451;40452;40453;40481;40454;40455;40475;40476;40456;40482;40670;40483;40484;40754;40504;40505;40829;40628;40627;40506;40507;40755;40514;40830;40515;40774;40756;40516;40757;40517;40534;40535;40536;40579;40566;40567;40949;40568;40569;40950;40570;40581;40582;40671;40599;40600;40601;41628;40672;40602;40603;40604;40831;40832;41629;40605;40606;40629;40863;40673;40864;40674;40675;40676;40677;40678;40679;40680;40681;40682;40833;40683;40684;40685;40686;40687;40688;40689;40690;40758;40759;40865;40866;40780;42454;40809;40810;40854;40855;40856;40857;40951;40952;40867;41630;41631;40909;40908;41632;41609;40895;40990;40896;41633;40897;40991;40898;40953;40954;40955;40956;41015;41016;40993;40992;40994;40995;41610;40996;41611;41017;41018;41019;41020;41612;41613;42387;41614;42045;41634;41635;42282;41636;47171;42283;47172;44884;47173;47174;47175;47176;47177;44885;44886;44887;44888;47178;47179;44889;47180;50669;47181;47182;47183;47184;47185;47186;47187;47188;47189;47190;47191;47192;47194;47193;47195;47196;47198;47197;47199;47200;47201;47202;47203;47204;47205;47206;47207;47208;47209;47835;47210;47211;47212;47213;47214;47215;47216;47217;47684;47218;47219;47220;47221;49152;47222;47719;47596;47585;47223;47224;47225;47226;47768;47227;47586;47228;47597;47229;47598;47720;47607;47608;47564;47565;47673;47674;47230;47587;47609;47610;47599;47611;47685;47612;47686;47675;47769;47770;47721;47836;47613;47231;47837;47771;47772;47614;47687;47722;47838;47723;47724;47839;48226;47840;48355;48356;47232;48206;50428;47841;48227;48357;47807;48324;48410;47808;47809;47811;47810;48358;47812;48376;47813;47842;47843;47844;47233;48304;48228;48229;47845;48305;48411;47846;47847;47234;47848;47849;48230;47850;47851;47235;48412;48207;48208;47236;47237;47238;48325;48326;47240;47239;47242;47241;48929;49677;48306;48359;49090;48377;48930;48307;48388;49649;48378;48746;49650;49091;48308;48389;48277;49660;49073;48365;53394;47243;48413;48309;48327;48310;48425;48426;48328;48330;48329;48331;47244;47245;49104;48390;48391;50389;48747;48366;47246;48368;48367;48369;48414;48913;48914;48415;49105;48379;48931;48932;49106;49153;48897;49074;48392;48393;48394;48395;47247;48416;48417;49107;48418;48420;48419;49059;49060;49092;49093;49075;47248;49094;49095;48748;48915;49293;48916;49294;49122;49154;49061;49155;49096;49156;49157;47249;49194;47250;47251;47252;49158;47253;49159;49160;49097;49076;49185;49077;47254;49195;49196;49678;49679;49680;49718;49239;49240;49241;49242;49161;49243;49244;49245;47255;49162;49163;49197;49164;49165;49198;49186;49246;49187;49295;49661;49199;49188;49200;49201;49937;47256;49247;49681;49979;49938;49719;49682;49248;49720;49662;49664;49663;49249;49635;51344;47257;51345;49296;49721;49297;47258;49722;49651;49723;49724;49725;49683;49684;49816;49685;50697;49782;49726;49727;47259;49817;49783;47260;49768;47261;47262;50454;49769;49939;49980;49818;49819;49981;49820;50354;50455;49821;47263;49982;49940;50025;49968;49983;50026;49985;49984;49986;50293;50294;51464;49987;50437;50004;49988;50005;50390;50006;49969;50391;50027;50392;50028;50393;50029;50030;50031;50032;50033;50034;50477;50355;50394;50395;50396;50532;50438;50295;50439;50035;50036;50007;50397;50310;50311;50496;50593;50497;50478;50356;50312;50440;50398;50456;50419;50457;50420;50441;50421;50399;50479;50584;50585;50480;50586;50481;50482;50483;50484;50587;50588;50400;50458;50589;50485;50401;50414;50468;50402;50422;50506;50403;50507;50498;50564;50499;50565;50442;50443;50444;50515;50516;50517;50518;50566;50519;50520;50550;50551;50552;50553;50554;50459;50486;47264;50555;50556;50626;50557;50508;47265;47266;47267;50567;50594;50568;50590;50591;47268;50595;50596;50682;50592;47269;50615;50683;50617;50616;50684;50662;50685;50618;50663;50698;50671;50670;50619;50672;50673;50812;50674;50813;50664;50675;50656;50655;50657;47270;50833;50834;50814;50972;50847;50835;47271;47272;50836;50837;51064;47273;47274;51065;51082;51081;50866;51083;47275;51099;50867;51084;47276;50979;51066;51067;47277;51346;51068;51147;51148;51149;51150;51193;47278;47279;47280;51347;51129;51130;51131;51137;51151;47281;51348;51390;51362;51361;51405;51406;51412;51373;51374;51375;51407;51376;51413;51414;47282;51377;51429;51415;51381;51382;51383;51402;51403;51391;51392;51378;53395;51408;51409;47283;47284;51430;51419;51431;51441;47285;51442;51443;47286;47287;47288;47289;47290;47291;47292;47293;47294;47295;47296;47297;47298;47299;47300;47301;47302;47303;47304;47305;47306;47307;47308;47309;47310;47311;47312;47313;47314;47315;47316;47317;47318;47320;47319;47321;47322;47323;47324;47326;47325;47328;47327;47329;47330;47331;47332;47333;47334;47335;47336;47338;47337;47339;47340;47341;47342;47343;47344;47345;47346;47347;47348;47349;47350;47351;47352;47353;47354;47355;47356;47357;47358;47359;47360;47361;47363;47362;47364;47365;47366;47367;47368;47370;47369;47371;47372;47373;47374;47375;47376;47377;47378;47379;47380;47381;47382;47383;47384;47385;47386;47387;47388;47389;47390;47391;47392;47393;47394;47395;47396;47397;47398;47399;47400;47401;47402;47403;47404;47405;47406;47407;47408;47409;47410;47411;47413;47412;47414;47415;47416;47417;47418;47419;47420;47421;47422;47423;47424;47425;47426;47427;47428;47429;47430;47431;47615;47432;47433;47434;47435;47436;47437;47438;47439;47440;47441;47442;47443;47444;47445;47446;47447;47448;47449;47450;47451;47452;47453;47454;47455;47456;47457;47459;47458;47460;47461;47462;47463;47464;47465;47466;47467;47468;47469;47470;47471;47472;47473;47474;47475;47476;47477;47478;47479;47480;47481;47482;47483;47484;47485;47486;47487;47488;47489;47490;47491;47492;47493;47494;47495;47496;47497;47498;47499;47500;47502;47501;47503;47504;47505;47506;47507;47508;47509;47510;47511;47512;47513;47514;47515;47516;47517;47518;47519;47520;47521;47523;47522;47524;47525;47526;47527;47528;47529;47530;47531;47532;47533;47534;47535;47536;47537;47538;47539;47540;47600;47541;47543;47542;47544;47545;47546;47547;47548;47549;47550;47551;47566;47552;47676;47553;47554;47555;51448;51449;51576;51577;54631;51512;52552;51565;51947;54632;51948;51513;51444;51514;51515;51516;51517;51518;51519;51445;51465;51578;51579;51646;51647;51648;51649;51650;51651;51652;51653;51654;51853;51655;51787;51656;51854;51566;51788;51580;51678;51679;51581;51680;51681;51821;51820;51822;51830;53901;55002;51823;51831;51855;51856;51863;51864;52004;53478;51896;51842;51927;51897;55943;55944;55984;55865;55866;55867;55868;55945;55909;55910;55946;55869;55870;55947;55890;55891;55948;55985;56095;56096;56075;56076;55986;55960;55949;55950;55951;55911;55952;55961;55962;55963;51980;55987;55988;56010;55989;51989;55892;56011;56146;51990;55954;55953;55893;55955;56012;56013;56180;56014;56286;55990;56147;56287;56148;56149;56131;56132;51949;56097;56181;56150;56219;56218;56015;56098;56100;56099;56151;56182;56102;56101;56183;56103;56104;56396;56105;56133;56134;56135;56136;56137;56138;56349;56106;56200;56107;56201;56350;52017;56202;56288;56302;56184;56351;56220;56152;52018;56153;52019;56185;56154;56186;56155;56156;56203;56221;56289;56232;56222;51960;56157;56352;56353;52033;56158;56224;56223;56354;56225;56233;56355;56322;56226;56227;56228;56356;52705;56357;56290;52034;56291;56292;51961;56358;56359;56293;52569;56294;56217;52570;51981;56360;56295;52514;52515;56416;56303;56361;56309;56308;56234;56362;56364;56363;56365;56417;56418;56366;56367;56341;56368;56419;56386;56369;56382;56370;56397;56537;56421;56420;56573;56572;56422;56342;56423;56371;56538;56539;56540;56515;56516;56517;52464;56473;56424;56457;56475;56474;56518;56398;56519;56486;56487;56488;56489;56696;56520;56541;56542;56543;56544;56717;56655;56656;56545;56546;56547;52465;56787;56788;56931;56930;56574;56575;56851;56932;56852;56885;57141;56933;56886;56887;56673;56789;57069;57308;56888;56718;56934;56790;56935;56936;56889;56890;56791;56792;56793;56731;56794;56732;56719;57070;56720;56795;57071;56733;52516;57072;56796;56863;56721;56864;56813;56697;56814;56937;56815;56938;56891;56939;56892;56893;56722;56797;56798;56799;56800;57142;56950;56801;56802;56894;56895;56896;56924;56940;56925;56963;56926;56865;56918;56964;56965;56966;56897;57000;56951;56952;56898;57006;57007;57001;56899;52517;56941;57324;57325;57754;57143;52005;56967;57073;57002;52057;52006;57003;57004;57008;57009;57074;57075;57076;52159;57077;57078;57326;52518;57327;57366;57367;57368;57369;57416;57417;57418;57309;57328;57382;57383;57384;57385;57419;57420;57386;57387;57388;57476;57437;57421;57438;57422;57439;57423;57424;57440;57401;57425;57441;57622;57389;57442;57443;57477;57450;57478;57444;57451;57452;57714;52466;52467;52485;52538;52539;52519;52520;52553;52742;52554;52743;52744;52555;52571;52556;52558;52557;52560;52559;52522;52521;52623;52622;52561;52759;52624;52601;52540;52602;52572;52603;52604;52573;52638;52562;52574;52661;52625;52639;52675;54834;52662;52663;52640;52981;52982;52641;52692;52590;52643;52642;52644;52645;52693;53435;52646;52591;52676;52647;52677;52694;52695;52678;52679;52664;52680;52681;52721;52665;52722;52724;52723;52725;52696;52706;52697;52726;52727;53240;52950;52951;52952;53241;52953;52745;52964;52965;52746;53516;52983;56296;53305;52999;53000;53306;53213;53214;53215;53363;53216;53199;52984;52985;53364;53345;53365;52954;53366;53242;53243;52955;53200;53452;53201;53261;53202;53262;53263;53264;53203;53225;53367;53436;53437;53265;53300;53299;53325;53326;53453;53406;53479;53438;55050;53550;53368;53396;53551;53541;53454;53455;53456;53457;53458;53459;53460;53461;53552;53462;53553;53480;53481;53463;53517;53518;53497;53519;53464;53508;53520;53465;53466;53467;53498;53554;53560;53499;53555;53556;53521;53557;53522;53561;53562;53537;53563;53849;53606;53607;53564;53565;53609;53608;53816;53566;53610;53567;53578;53611;53635;53634;53612;53817;53818;53627;53834;53835;53613;54286;53614;53863;53864;53644;53645;53615;53865;53866;55386;53902;53903;53904;53850;53836;53851;54944;54292;54293;54608;54609;54294;54295;54572;54573;54633;54574;54634;54957;54635;54575;54296;54297;54576;54636;54824;54907;55051;54975;54908;55052;54909;54910;54976;54637;54911;54912;54913;54835;54836;54837;54958;54914;55387;54977;55003;54946;54947;54915;54916;54917;54959;55053;54978;54948;54949;54960;54961;55054;55055;54950;55056;54962;54963;55004;55005;55006;55007;55057;55147;55058;55148;55059;55149;55150;55492;55008;54979;54980;55493;55494;55151;55495;54945;55152;55061;55060;54981;55153;55154;55062;55388;55389;55155;55390;55391;55156;55392;55393;55578;55675;55676;55394;55475;55476;55425;55496;55461;55412;55463;55462;55464;55579;55580;55465;55466;55556;55426;55842;55427;55497;55545;55871;55428;55498;55499;55525;55526;55654;55655;55599;55600;55527;55601;55602;55546;55557;55581;55558;55528;55559;55500;55560;55501;55582;55529;55656;55595;55561;55596;55657;55583;55603;55604;55611;55562;55658;55659;55660;55661;56108;55662;55738;55612;55677;55678;55680;55679;55739;55740;55750;55751;56016;55872;55663;55873;55752;55874;55875;55876;55807;55741;55760;55808;55753;55742;55843;55743;55766;55767;55744;55771;55777;55844;56297;55778;55772;55779;55781;55780;55754;55782;55783;57544;57584;57545;57453;57563;57479;57564;57565;57566;57546;57590;57715;57716;57591;57592;57547;57623;57703;57624;57670;57644;57548;57625;57549;57645;57609;57626;57717;57694;57695;57718;57610;57671;57627;57672;57611;58461;58462;57755;57756;57781;57782;57783;57784;57673;57674;57897;57719;57815;57828;57881;57898;57816;57829;57865;57899;60006;60007;59972;59973;59826;59940;59974;57757;59975;59941;59976;60069;62724;62725;60070;60071;60128;60073;60072;60074;57866;60157;57986;57867;60158;60122;61416;61465;60123;57987;60075;60129;60130;60131;60113;61417;61383;60143;60144;60132;61384;60145;61418;60146;60147;60148;61419;60149;61466;57868;60133;61385;61386;61420;61421;61387;61442;61467;61468;61422;61423;61469;61470;61471;61472;61496;61473;61424;61474;61475;61476;61497;61477;61425;57817;61498;61499;61500;61579;57882;61580;61663;61664;61521;61556;61581;61613;61582;61628;61583;61665;61666;61667;61684;61614;61685;61615;61616;61629;61630;61631;61632;61633;61634;61635;61636;61637;57900;62128;58013;61584;61686;61668;61669;62129;62130;62131;62132;61601;61697;61698;61699;57901;61602;61687;61688;61755;58014;61700;61670;61671;61672;57902;62133;61673;61674;62134;62135;62136;62017;61701;61702;61756;62018;61776;61777;61778;61703;62137;62138;61757;61758;61736;61737;61638;61738;58120;57952;61779;62050;57869;58121;57953;58122;61739;62139;61724;61759;62140;62019;62141;62020;62021;58123;57954;62417;62142;62143;62189;61761;61760;62034;62035;62144;62145;62146;62147;62051;62052;57903;62053;62190;62191;62148;62149;57904;62150;62151;62152;62153;62154;62155;62157;62156;62158;62159;62160;62161;62162;62163;62164;62319;62192;62320;62165;62321;62322;58015;62323;62166;62324;57965;62378;62377;62294;58044;62226;62167;62227;62295;62325;57966;62418;62326;62397;62327;58045;62328;62329;62330;62331;62228;62332;62789;62333;62334;62335;62336;62229;62230;62441;62337;62231;62232;62442;62233;62338;62193;62443;62339;62398;62296;62399;64083;62297;62234;62550;64440;62790;62654;62419;62420;62421;62525;62526;57905;57906;62400;62449;58016;62527;62567;62454;58017;62502;62668;62455;58018;62528;62655;62456;62529;62530;62600;62531;62470;58046;62486;62568;62645;62551;62569;62601;58047;62532;62533;62534;63195;62726;62602;62535;62603;62604;62605;62727;62606;62570;58048;62696;62487;62697;62536;58049;62646;62656;58050;62503;62537;62538;62647;62552;62749;62657;62658;58079;62607;62839;62648;62670;62669;62671;62779;62608;62610;62609;62672;62873;62673;62750;58252;62765;62728;62729;62698;62863;62822;62823;57988;57989;62699;58187;62751;62752;63029;57990;62766;62767;62730;62824;62825;62768;62840;62841;62826;62827;62864;62865;57967;62889;62842;62753;62828;62829;62754;62769;58188;58019;62843;62912;62844;62874;62845;58080;62846;62875;62847;62848;62849;62950;62850;62951;62876;62851;62852;62830;62877;62894;62878;62831;62853;62854;63101;62879;62895;62896;62952;62855;62880;62881;63007;63008;62882;63102;62883;65531;62913;62970;62971;62914;63208;58149;63030;62915;62953;58189;62954;63031;62955;63032;62978;63033;63034;63035;63009;63051;63010;63037;63036;63038;63039;63040;63041;63127;63081;63282;63042;63043;63044;63045;63128;63103;63046;63082;58098;58253;63083;63084;63052;63085;63086;63129;58020;63130;63087;63088;63047;63172;63131;63053;63011;63054;63196;63307;63089;63012;63013;63014;63173;63090;63048;63055;63138;63139;63140;63056;58150;63233;63209;63141;63142;63057;58151;63234;63132;63235;63175;63174;63176;63246;58051;63247;63177;63178;63179;58152;63248;63482;63143;58153;63133;63210;63180;63189;63197;63249;63198;63250;63483;63211;63212;63236;63213;63237;63238;64882;63239;63484;63214;63251;63327;63252;63274;63253;63387;63254;63215;63181;63360;63328;63275;63255;63276;63485;63486;63277;63487;63488;63513;58155;58154;63361;65180;63489;63308;63490;63216;63240;63491;63309;63524;63458;63492;63278;63310;63283;63329;58156;63493;63363;63362;63494;63375;63495;63336;63311;65823;63388;63496;63389;63343;63391;63390;63330;63497;63393;63392;63498;63499;63500;63376;63377;63378;63394;63400;63459;63501;63460;58157;58278;58124;58158;58125;58126;58159;58160;58686;58190;58305;58191;58254;58306;58255;58256;58279;58622;58307;58623;58280;58257;58308;58281;58161;58282;58258;58296;58259;58297;58418;58309;58364;58463;58260;58464;58310;58311;58366;58365;58367;58368;58369;58370;58312;58371;58346;58372;58687;58542;58543;58487;58336;58337;58373;58405;58374;58406;58375;58544;58376;58488;58465;58419;58688;58689;58420;58545;58377;58466;58546;58467;58489;58468;58547;58548;58690;58691;58549;58624;58625;58626;58550;58627;58692;58551;58730;58421;58694;58693;58695;58668;58469;58470;58553;58552;58554;58696;58697;58698;58699;58731;58669;58700;58701;58702;58703;58704;58705;58706;58707;58708;58709;58779;58628;58629;58630;58631;58632;58555;58633;58924;58634;58635;58636;58637;58638;58780;58781;58710;58782;58783;58732;58733;58711;58805;58712;58784;58785;58818;58819;58820;58821;58856;58639;58786;58822;58713;58714;58857;58858;58715;58955;58925;58787;58926;58996;58788;58789;58823;58824;58825;58826;58827;58755;58834;58835;58859;58956;58860;58979;58861;58997;58909;58910;58911;58912;58885;58886;58887;58957;58914;58913;58915;58958;58960;58959;59256;58888;58836;58980;58927;58928;58929;58930;59098;58862;59071;58931;58932;58916;58881;58933;58934;58935;58961;58863;59257;59079;58998;59080;58970;58917;58936;58981;61585;58918;59258;59450;58999;59259;59000;59001;59099;59002;59004;59003;59005;58919;59006;59100;59007;59008;58971;59022;59101;58982;59260;58983;58962;59023;59261;59081;58984;59331;58985;61478;59262;59198;59024;59025;59263;59264;59199;59082;59265;59072;59266;61479;59102;59217;59267;59268;59269;59270;59200;59201;59203;59202;59271;59204;59219;59218;59272;59295;59273;59531;59332;59296;59962;59333;59297;59274;59298;59205;59276;59429;59483;59277;59299;59278;59300;59301;59334;59335;59336;59337;59279;59338;59339;59389;59340;59280;59341;59342;59344;59343;59345;59346;59415;59379;59347;59348;59350;59349;59351;59352;59417;59416;59418;59419;59420;59421;59431;59430;59432;59433;59434;59571;59572;59532;59435;59353;59511;59533;59573;59512;59513;59484;59485;59486;59436;59437;59514;59390;59515;59487;59534;59535;59574;59536;59537;59538;59539;59661;59391;59540;59575;59576;59541;59542;59488;59543;59544;59545;59438;59840;59688;59689;59690;59691;59422;59577;59578;59579;59580;59581;59582;59799;59546;59662;59800;59720;59663;59664;59950;59692;59693;59694;59695;59665;59696;59951;59697;59801;59698;59547;59548;59841;59699;59739;59666;59842;59942;59549;59550;59740;59802;59741;59804;59805;59742;59806;59743;59744;59807;59808;59827;59943;59745;59944;59978;59977;63628;63627;63629;63502;63503;63504;63630;63583;63461;63514;63525;63505;63526;63527;63515;63649;65229;63528;63631;63529;65230;63530;63531;63632;63506;63507;63516;63517;64084;63508;63509;63518;63532;63650;63651;63462;69819;63633;64365;64366;63634;64367;63635;63510;63533;63636;63652;63653;64085;63654;63655;63624;64368;63656;63657;64398;63658;63659;63660;64086;64251;64252;64087;63584;64253;63585;63586;63661;63587;64399;64254;64400;64265;64266;64267;64460;63625;64255;64268;64256;64441;64369;64371;64370;67261;64269;67262;64372;67263;67264;67266;67265;67267;67268;67269;67270;67271;67272;67273;67274;67275;64088;67276;67277;67278;64270;67279;67280;64271;67281;67282;67283;68985;67284;67285;69288;67286;64272;67287;64273;64373;67288;67289;67290;64274;67291;67292;67293;67295;67294;67296;67297;64275;67298;67299;67300;64276;67301;67303;67302;67304;64277;67305;67306;67307;67308;67310;67309;67311;67312;68998;67313;67314;67315;67317;67316;64442;67318;64278;67319;67320;67321;64401;67322;67323;68999;67324;67325;67326;67327;67328;64402;67329;67330;67331;64403;67332;64404;67333;64405;67335;67334;67336;67337;67339;67338;67340;68860;68986;67341;64443;64406;69061;69000;64444;67342;69001;68890;68882;68883;68884;68885;68886;68887;68891;64445;64494;68892;68893;68894;67343;68895;64495;68972;69023;68896;68897;64407;69002;69003;64408;69004;65168;64409;65169;68861;69005;68987;69006;68988;69007;68989;68973;68974;64410;69024;69026;69025;68975;69027;70202;69062;69198;69199;69145;69146;64672;69147;69063;69064;69148;69149;69095;69150;69151;69152;69216;64446;69200;69201;69202;69203;69204;69153;69205;69085;69028;64592;69206;69207;69208;69209;69086;69217;69186;69355;69187;64447;69188;64411;64412;69210;69248;69211;64413;69403;69249;69380;69356;69289;69290;70203;64414;69298;69299;69381;69382;69300;69357;69358;64415;64416;69359;69360;69361;64417;69291;64418;69362;69383;69363;69292;69364;64257;69384;69385;64419;69386;69387;69388;69404;69389;69405;69365;69302;64420;69390;69391;69406;69407;69408;64461;69409;64593;69410;69411;69392;69393;69394;69460;64448;69461;64462;69485;70204;69450;70909;64463;69486;69782;64449;69783;69524;69525;64464;64450;69815;69462;69772;69527;69526;69436;69784;69528;69463;69529;69451;69531;69530;69532;69533;69452;69498;69773;69534;69487;69535;69543;69544;69774;69488;69785;69775;69793;69792;69536;69537;69886;69820;69887;69821;69545;69961;69805;69962;69963;69814;69857;69858;70048;70049;69896;70041;69897;70042;70050;70028;70029;64513;70051;70052;70043;69964;69965;64514;70053;70054;64496;70055;70030;70031;69910;70032;69966;69849;69967;70033;69859;70149;69911;70056;64497;64477;70035;70034;70057;64594;70044;70058;70045;64595;64538;64596;69917;70081;70059;70082;70106;70083;70150;70151;70107;70108;70152;64539;70153;70154;70155;70036;70061;69968;70060;70296;70037;70156;70205;70062;64540;70157;70504;70593;70046;70003;64597;64598;70063;70356;70064;64599;70038;70047;71542;70235;70065;70357;64600;70345;70206;70236;70237;70238;64541;70207;70158;70278;64542;70208;64543;70180;70358;70159;70279;70239;70280;71543;70297;64601;70181;70298;70304;70305;70359;64544;70808;71544;71545;70240;70209;70505;71081;70418;70506;70281;64545;70282;65231;70360;70361;70376;64546;70404;70377;70419;70405;70406;70420;64602;70421;70422;70423;70424;70425;70426;64673;70362;70427;70428;70528;70429;70407;70408;70430;70378;70431;70507;70508;70509;70409;70861;70510;70814;70927;70432;70410;70638;70637;70511;70928;70929;70433;70529;70639;70434;70512;70815;70435;70436;70816;70665;70666;64478;70549;70817;70550;70653;70654;70513;64625;70734;70655;70514;70640;70818;70819;70809;70641;70642;70667;70643;70668;70669;70644;70670;70810;70820;70821;70822;64515;70735;70823;70736;70700;70645;70594;70824;64868;70774;70775;70987;64733;64650;70671;70825;70826;71056;71057;70750;70776;71058;70811;70786;70827;70787;70788;70789;70812;64603;70930;70828;70829;70723;70813;70830;70751;70831;70939;70832;70839;70833;70862;70840;70931;71082;70841;70790;64674;70910;70863;70955;70864;70988;70989;64869;70834;70956;70957;70911;70912;70990;70992;70991;70993;71083;64651;70994;71059;64554;71060;64664;71061;71062;66337;71063;71064;71065;71066;71084;71085;66338;64665;70958;71086;64675;64676;71181;71142;71067;71147;71148;71149;71956;71150;64547;71151;71403;64677;71068;71404;71069;64548;71183;71182;64899;71405;71406;71407;64549;64883;64550;64604;72402;71087;71143;71326;64678;71247;71327;71328;71248;71408;71409;71410;71411;71255;71184;71279;71280;71281;71282;71358;71222;71413;71412;71775;71329;71359;71330;71360;71414;71415;71417;71416;71418;71249;71381;71361;71362;71363;71283;71185;71419;71364;71587;71331;71421;71420;71422;71423;71443;71256;71382;71250;71476;71475;71383;71384;71851;71284;71444;71503;72110;71504;72096;71477;72111;71478;71479;71480;71445;71852;71481;71482;72097;71853;71446;71484;71483;71546;66339;71547;71548;71447;71619;71365;71385;71776;71777;66340;71332;71549;71620;71550;71588;71551;71386;71552;71589;71590;71754;71448;71785;71591;71449;71592;71621;71622;71623;71625;71624;71626;71593;71633;71634;71638;71594;64734;71755;71505;64735;71854;71595;71596;71770;71765;71756;71758;71757;71597;71766;71759;72867;71760;71598;71761;71767;71768;71599;71639;71903;71640;71627;71600;71601;64736;71602;71771;64737;71803;71788;71789;71790;64738;73870;73871;71804;71805;71868;71869;71870;64900;71871;71872;71873;64854;64855;64856;64974;64870;64871;64884;64872;64739;64679;64975;64940;64976;64740;64977;64857;65600;64978;65081;64858;64979;64741;64980;64981;64982;65587;65232;65588;65034;65035;65233;65036;64983;64997;64998;64941;64999;65000;65234;65001;65002;64984;65065;65037;65038;65040;65039;64901;65532;64985;65589;65657;64986;65645;65181;65182;65646;65619;65590;65620;65235;65621;65236;65591;65647;65658;65534;65533;65535;65536;65659;65066;65537;65538;65592;65713;65183;65593;65772;65559;65539;65636;65637;65648;65649;65671;65773;65594;65662;65650;65663;65774;65622;69189;65825;65824;65745;65746;65747;65748;66724;65749;65750;65751;65752;65753;65754;65755;65756;69229;65664;65758;65757;65775;65759;65776;65777;65813;65814;66005;65933;65858;65953;65826;65830;65831;65859;65832;65833;65954;65834;65760;65835;65836;66006;65837;65778;65860;65838;66591;65839;65861;66241;65956;65955;66242;65961;65815;65962;66160;66161;66162;65963;65964;65827;65965;65971;65966;65972;65828;66163;65973;65974;66007;66008;66164;67344;65934;66398;66399;66400;66376;66377;66378;66165;66218;66181;66009;66183;66182;66191;66166;69212;66207;66208;66219;66220;66258;66038;66039;66167;66010;66011;67345;66040;66184;66243;66209;66244;71553;66221;66168;66259;66260;66222;66261;66223;66245;66246;66282;66283;66262;66263;66224;66362;66363;66247;66248;66297;66249;66298;66320;66309;66299;66322;66321;66323;66324;66284;66364;66365;66366;66310;66592;66679;66432;66433;66703;66704;66379;66367;66385;66386;66639;66640;66368;66501;66401;66369;66434;66435;66453;66452;66387;66388;66502;66593;66503;66594;66380;66436;66595;66529;66530;66596;66531;66454;66532;66533;66597;66598;66599;66577;66578;66534;66579;66580;66725;66487;66641;66642;66680;66643;67346;66600;66681;66601;66604;66605;66606;66644;66607;66619;66645;66646;66647;66648;66649;66650;66682;66651;66653;66652;66654;66655;66656;66683;66684;66657;66685;66686;66688;66687;67347;67348;66727;66726;66728;67349;66729;66620;66621;66622;66623;66793;66624;66625;66626;66608;66627;66658;66609;66628;66610;66611;66612;66613;66743;66744;67350;66730;66745;66731;66746;66732;66747;67351;66748;66749;66733;66750;66751;67352;67353;66794;66629;67354;67355;66752;66753;66795;67356;67357;66796;66754;67358;67359;66797;67360;67361;67362;67363;67364;67365;67366;67367;67368;67369;67370;67371;67372;69218;67373;67374;67375;67376;67377;67378;67379;67380;67381;67382;67383;67384;67385;67386;67387;67388;67389;67390;67392;67391;67393;67394;67395;71912;71913;71914;72047;72048;71915;71916;71800;71917;71920;71921;71922;71923;72027;72028;71918;72189;71904;71919;71905;72012;72013;72120;72121;72307;72308;72441;72442;71957;71958;71959;72221;73535;73536;72014;72112;72113;72015;71981;72249;72250;72122;71982;72222;72123;72124;72125;72126;77586;77612;77782;72127;77783;77922;77784;77785;77786;77787;77608;77675;77866;79341;72049;77613;79342;79343;72029;77764;77788;77789;77790;77791;72030;77867;77765;77766;77868;77792;77793;77794;72031;78093;77869;77676;77677;77870;77795;78398;77796;77923;77924;78399;78400;77871;77925;77797;72137;72190;77926;77927;77872;77873;72269;77767;77974;77928;77929;77930;77798;77932;77931;72191;72050;77933;77975;77934;77935;77997;77936;77874;78241;78242;78048;78049;78243;78094;78050;77875;77937;77938;78051;78095;78052;77876;77939;78703;77940;77941;77942;77998;78053;78054;78368;77943;78369;78096;77944;77999;78370;78371;78000;78564;78001;77945;78055;78244;78245;78097;78098;78246;78247;78056;78099;78248;78249;78100;78372;78373;78101;78374;78565;78375;78102;78376;78566;72192;78377;78057;78378;78103;78379;78380;78058;78250;78251;78252;78401;78402;78704;78786;78381;78567;78787;78568;78382;78752;78705;78788;78492;78403;78629;78706;78789;78493;78630;78790;78791;78494;78569;79389;78631;78792;78632;78793;78682;78683;78794;79067;78795;78796;78797;78799;78798;78800;78801;78802;79068;78803;79191;79084;78571;78570;78581;78661;79085;78582;78572;78662;78707;78708;78709;78573;78862;78574;79390;78633;78710;78711;78575;78712;78576;72223;78610;78713;78804;72224;78726;78899;78805;78806;78807;78714;78808;79086;79069;78727;78715;78863;78728;78864;78809;78810;79070;79071;79087;79256;79088;78900;78901;78902;72225;78716;79192;78903;78729;78904;79257;78905;78906;78811;79193;78907;72226;79072;78812;79073;79089;79090;79194;79195;79391;79258;79091;78813;79092;79093;79196;78814;79094;79074;79095;79075;79096;79236;79097;80362;78865;79076;79237;78866;79238;79392;79098;79077;79099;79100;79078;79239;79314;79315;79316;79259;79317;79260;72309;79344;79261;79345;79262;72356;79240;79671;72357;79263;79747;79763;79264;79764;79393;79765;79318;79265;79394;79395;79748;79396;79766;79893;79565;79894;79767;79749;79895;79768;79698;79319;72310;79363;79397;79699;79645;79646;79769;79770;79771;81343;79672;81655;79398;79896;79897;79673;79647;79648;79898;81344;79773;79772;79607;79649;79650;79399;79400;81345;79674;79651;79675;79676;72251;79652;79677;79678;79679;79566;79653;79654;79608;79700;79774;80363;79899;79776;79777;72252;72270;79422;79778;79701;79900;79779;72154;79780;79702;79655;79703;79781;79782;79783;79704;79784;79750;79785;79786;79751;79752;79787;79788;79901;79902;79775;79903;79789;79904;79905;79705;79906;79907;79908;79910;79909;79911;79912;79913;79914;79915;80060;79790;79916;79917;80089;79918;72311;79919;79920;79921;80128;80129;80130;79923;79922;79791;79924;79925;80364;79926;79706;79792;79927;79928;79929;80131;79930;80132;79931;80365;79932;79933;79934;79935;80366;80090;80336;79936;79937;79938;79939;80061;79940;79941;79942;79943;79944;79945;79946;79947;80133;80062;80258;80367;80232;72443;80063;79948;80134;80368;72444;79949;81346;80135;80136;80402;79950;80137;80369;80138;80287;80370;80064;79951;80091;80139;79952;80233;79953;80140;80141;80337;80142;80143;80144;81347;80403;80288;79954;80234;83066;80338;80092;80835;80065;80836;80066;80404;80405;80235;80067;80068;80406;80339;80372;80371;80340;80236;80341;80373;80259;81581;80374;81837;80342;80260;80261;80375;80289;80290;80291;80343;80376;80344;80293;80292;80294;80463;80295;80296;80345;80297;80346;80145;80347;80146;80348;72715;80298;80349;80147;80237;80422;80310;80423;72716;72376;80377;80378;72403;80311;80312;80313;72377;80314;80315;81956;80316;81957;80317;80318;80319;80321;80322;80323;80320;80324;80325;80326;80327;80379;80380;80381;72445;72446;72462;72378;72447;72379;72463;72404;72405;72406;72407;72408;72516;72253;72517;72518;72448;72648;72593;72449;72358;72450;72464;72465;72451;72519;72360;72359;72466;72380;72520;72752;72623;72381;72624;72539;72545;72544;72540;73030;72783;72784;73422;72625;72785;72786;72521;72626;72628;72627;72629;72649;72631;72630;72522;72523;72524;72525;73310;73031;73032;72541;72650;72651;72526;72652;72654;72653;72759;72695;72674;72546;72547;72760;72632;72675;72761;72548;72762;72763;72656;72764;72765;72787;72766;72753;72788;72657;73537;72789;72767;72913;72806;72807;73140;72754;72914;72887;72888;72889;72915;72890;73107;72916;72917;72868;73033;72968;72969;72869;73034;72970;72971;72972;72973;72870;72891;73035;73108;73036;72871;73037;73038;72918;73109;73039;72892;73040;73041;73217;73042;73086;72974;73087;73110;73043;73044;73045;73141;73165;73142;73143;73166;73046;73144;73145;73146;73240;73257;73423;73167;73193;73168;73047;73169;73311;73048;73194;73312;73195;73170;73313;73258;73259;73260;73261;73352;73171;73314;73424;73353;73241;73354;73262;73218;73242;73746;73355;73356;73263;73357;73358;73359;73264;73360;73361;73362;73363;73425;73426;73364;73365;73366;73265;73315;73502;73503;73538;73504;73505;73506;73367;73925;73926;73539;73507;73540;73541;73542;73543;73544;73427;73428;73429;73600;73601;73430;73602;73545;73658;73508;73546;73772;73509;73547;73659;73660;73603;73627;73692;73548;73773;73774;73693;73694;73695;73696;73972;73697;73698;73699;73628;73729;73700;73701;73629;73630;73716;73702;74017;73717;73631;73775;73776;73703;73747;73730;73749;73748;73731;73750;73777;73778;73807;73808;73809;73810;73811;77061;73812;73813;73814;73704;73815;73816;73846;73845;73872;73873;73874;73875;73876;73817;74382;73927;73877;73928;73847;73929;73878;73879;73897;73930;73848;73818;73898;73819;79793;79346;73973;73952;73998;73953;73954;73955;74130;73880;73899;74109;74110;73999;73956;74000;74001;74002;74383;74018;74165;74166;74046;73957;74167;74003;74111;74281;74282;74112;74198;74199;74113;74047;74131;76092;74048;74168;74132;74049;74169;74170;74133;74050;74174;74178;74177;74179;74180;74200;74201;74228;74229;77092;74230;77093;74236;74384;74237;74231;74238;74175;74385;77103;77104;74232;74386;74257;74387;74388;74389;74390;74391;74392;74393;74394;74396;74395;74398;74397;74400;74399;74401;74402;74403;74316;74317;74404;74405;76093;76094;74406;74407;74408;74409;76095;76096;74410;74411;74412;74413;74414;74339;74500;74501;74503;74502;76151;74340;74341;76097;74478;76173;76098;76099;76100;76101;76152;76153;76263;76058;76264;74504;76083;76059;76420;76419;76209;76174;76175;76102;76210;76220;76221;76176;76133;76222;76265;76266;79794;76691;77768;77769;76374;76478;76334;76325;76326;77946;77947;76624;76421;76625;76223;76267;76350;76351;76352;76607;76268;76692;76370;76371;76363;76327;76539;76375;76391;76300;76392;76335;76393;76328;76376;76395;76394;76329;76859;76353;76860;76479;78383;76422;76377;76466;76483;76467;76540;76484;76396;77345;77346;76485;76541;76486;76542;77062;76468;76845;77063;76514;76608;76609;76693;76626;76627;76628;76629;77203;76610;77204;77205;76611;76846;76847;76848;76849;77064;76612;76850;77065;77206;76875;76851;76876;76877;76978;76878;76613;76979;76861;76862;77066;76918;76917;76920;76919;76718;76852;76980;76921;77770;76853;77094;76863;76981;77105;76982;77067;77068;77069;76983;77308;76984;77309;77310;77207;77070;77208;77209;77311;77440;77071;77223;77072;77210;77224;77268;77073;77095;77106;77225;77226;77312;77231;77347;77313;77314;77232;77948;77107;77392;77108;77211;77393;77394;77227;77348;77349;77350;77351;77228;77441;77442;77352;77353;77354;77269;77359;77233;77360;77361;77423;77424;77395;77396;77397;77425;77426;77398;77362;77399;77400;77443;77427;77771;77444;77678;77445;77446;77428;77772;77447;77449;77448;77587;77481;77482;77483;78038;77949;77588;77363;77589;77450;77590;77484;77591;77592;77429;77430;77614;78583;77800;77799;77593;77615;77594;77559;77595;77616;77451;77617;77801;89123;80448;80530;89124;80531;89125;89126;89127;89128;89129;80532;83920;80892;80575;80533;80576;89130;89131;80449;80450;80837;80893;80894;80451;80873;80464;80465;80974;80452;82306;80534;80874;89132;80535;80875;82626;82625;89133;80895;80536;80896;80876;80838;80975;81057;81058;81059;80839;80897;81610;89134;81611;81007;81060;81008;81091;89135;80976;81348;80977;80978;81092;89136;89137;89138;89140;89139;89141;89142;89143;89144;89146;89145;84374;84301;81529;84375;84453;84452;84454;84376;84455;84456;85282;84512;84513;84475;81530;85283;84457;84840;84458;84459;84514;84460;92046;84476;84515;81093;84678;84461;84477;84516;84517;84478;80979;84479;81190;85083;85084;81212;84679;85085;81151;84437;84480;81132;80980;84841;84901;84518;84519;84481;84680;84842;84520;84521;84682;84681;84773;84774;86312;84749;84750;84683;84684;84775;89147;81191;84776;84685;84843;84777;84686;84687;84688;84751;84752;84753;84778;84779;84844;89148;85086;84845;81133;85055;84902;84846;85056;84847;80981;84848;84903;84850;84849;81152;84904;81112;84967;85057;84689;84851;84968;85058;84690;84969;85087;85059;84691;84692;84852;84905;80982;84853;81153;85060;85061;81213;84854;89149;81349;85062;82596;84855;85132;85088;84906;85089;85063;85064;84907;85090;81170;85091;85092;85093;85065;84908;85094;84909;81061;85095;81171;81172;85133;85420;85421;85284;85285;85467;85286;85307;85468;85287;85166;85167;85389;85168;85288;85390;85289;81173;85290;92047;85169;85134;85170;85171;85548;85549;85358;85244;85308;85309;81094;85310;85311;85312;85313;81214;85314;85315;85359;81095;85316;85360;85391;85361;85362;85392;87959;85317;89150;85469;85363;85570;85364;85393;85470;85365;85471;85472;85473;85665;85550;85474;89151;85475;85476;85292;85291;85551;85552;85422;85318;85423;85394;85424;85553;85478;85477;85709;85591;85554;85479;85555;85592;85556;85425;85727;85480;85571;85811;85666;85481;85572;85482;85667;85668;85557;85659;85669;85558;85559;85670;86683;81215;85638;85671;89152;89153;85672;85812;85673;85813;85674;85814;85815;86684;85816;85698;85817;86313;85772;85818;85819;85675;85676;85677;81113;81216;87059;87060;87061;86331;86027;85678;85919;85773;85920;85820;85821;85728;85822;81114;81217;85824;85823;86028;85825;81115;81218;85826;85964;85900;85899;86029;85774;85827;86258;86128;85828;81350;85829;85990;85989;86158;85830;86159;86160;85831;86129;85934;85933;86031;86030;86032;85955;86161;85956;85892;86259;85832;86033;81351;86319;85921;85935;85936;86034;85937;86035;85938;85939;86036;85940;89154;86037;86038;86039;86797;86798;86799;86040;86041;85922;85923;86042;81174;86228;86229;86230;86231;86051;86232;86052;86643;86644;86273;86260;86233;86261;86077;86053;86274;86110;86130;86235;86234;86078;86054;86043;86275;86131;86055;86162;86163;86164;86165;86167;86166;86168;86169;86170;86171;86172;86236;86237;86173;86174;86685;86111;86376;81352;86262;86333;86332;86113;86112;86263;86264;86114;86175;83039;81192;89155;81219;81353;89156;81354;81355;81838;81356;81357;81358;81359;81220;81361;81360;81362;81363;81364;83194;83195;89157;89158;81221;81411;81410;81392;81393;81365;87113;81451;81452;81453;81454;89159;89160;89161;89162;89163;89164;89165;89166;89167;89168;89169;81366;89170;81394;89171;81367;82747;81414;81455;81456;89172;89173;82273;82274;81457;89174;81427;81582;81583;81428;81429;81531;81415;81458;81430;81431;81839;81584;81459;81612;81585;81586;89175;81796;81705;89176;89177;89178;89179;81613;81614;81532;81533;81656;81657;81840;81678;82723;82724;81679;82933;81841;81706;81658;89180;81707;81708;81709;81710;89181;89182;82540;81842;89183;81797;82541;81711;81615;81616;82542;81712;81680;81713;81843;89184;89185;81714;81681;81617;81682;89186;89187;81715;81716;81844;81845;89188;89189;89190;89191;89192;89193;89194;89195;81846;81717;81847;81848;82307;81849;81850;82275;89196;89197;89198;81851;89199;81852;81853;82276;82674;81854;81855;82277;82675;89200;89201;81856;81857;81858;81718;81859;81860;81958;92048;82543;81928;81861;89202;89203;81929;89204;81930;89205;81959;81862;82049;82544;81985;82050;81986;81863;81864;82748;89206;81865;89207;89208;89209;81931;82051;82433;81866;81960;89210;81961;89211;82052;82053;81987;82054;82278;89213;89212;89214;81988;82279;82280;89215;89216;89217;89218;89219;89220;81989;81990;82281;81991;82055;82056;81992;82725;82308;89221;82676;81993;82309;82310;81994;82677;82934;82545;82282;82434;82057;82283;82435;82436;82284;82285;82546;82547;82437;82059;82058;89222;82935;82438;89223;82060;82439;89224;82548;82440;82441;82442;82443;82061;89225;82311;89226;82866;82597;82598;82599;82749;89227;89228;82600;82549;82601;83821;82726;82602;82936;82840;82867;82937;82550;82603;82604;82727;82938;82868;82939;89229;82940;82605;82627;82606;82607;82608;82941;82551;85185;82552;82869;82553;82942;89231;89230;89232;82609;82750;82943;82728;82312;82610;82611;82944;82841;82945;82612;82444;82554;82946;82555;89233;82556;82613;89234;82947;82647;82648;82614;82649;82628;86408;82870;82445;82678;82629;89236;89235;89237;89238;82948;89239;82679;82630;89240;82871;82872;82950;89241;82729;83196;82951;85560;82949;82615;85561;82952;82953;82954;82955;82557;82616;82730;83309;89242;82956;82873;82874;82751;82875;82958;82957;82960;82959;82961;82962;82963;82752;82876;89243;82877;82878;82879;82880;82731;82964;86265;82881;82965;89244;82842;89245;82680;82966;82882;82883;83007;83008;82967;82968;83067;82884;82885;83009;83121;83089;82886;82887;83310;83090;83010;83149;89246;82969;82970;83311;83011;82971;84910;83012;83150;82972;83013;83151;82974;82973;82888;82975;89247;89248;89250;89249;89251;89252;89253;89254;83152;82889;82976;83014;89255;89256;83122;83123;83040;82977;82978;83041;83015;83042;83822;83017;83016;83043;83018;83197;83091;83068;83019;83070;83069;83020;83021;83071;83124;83022;83072;83125;83312;83092;83023;83198;83093;82979;83044;83199;83313;83200;83126;83202;83201;89257;83203;83073;83074;89258;83075;83204;83205;83076;83127;83314;83077;89259;83206;83207;89260;89261;83078;83128;83208;83209;83315;83750;92049;83210;83751;83211;83079;83316;83237;83094;83238;83212;83317;83213;83239;83318;83319;83153;83129;89262;83240;83214;83320;89263;83241;89264;83215;83321;83216;83382;83322;89265;89266;89267;89268;89270;89269;89272;89271;89274;89273;89275;89276;89277;89278;89279;83217;83154;89280;83218;83219;89281;83220;83221;83222;83323;83548;83324;83223;83549;83224;89282;83225;89283;89284;83242;83325;83790;87512;83326;83550;83383;83384;84302;84303;84304;83226;83385;83227;83228;83386;89285;83890;83327;83503;83478;83337;83504;83505;83551;83823;83891;83824;83825;83387;89286;89287;83338;83339;89288;89289;89290;83340;84305;83921;83552;83479;83341;83342;83480;83388;89291;89292;89293;89294;89296;89295;89297;89298;89299;89300;89302;89301;89304;89303;83553;83826;83481;84856;83892;83827;83828;84857;84095;83829;83830;83831;83791;83506;83893;83832;83507;83833;83508;83834;83509;83835;89305;83836;83922;83894;83923;83895;83896;83897;83924;83837;83838;84027;83898;84028;83899;89306;89307;83839;83925;83926;83927;89308;89309;84096;84029;83961;83928;84030;83929;84031;83930;83931;84032;84033;83932;83933;83996;83934;84034;83997;84064;84035;83998;83999;84036;83935;84172;84173;84000;84001;84002;83840;89310;83900;84065;84097;84098;89311;84037;84038;89312;89313;89314;89315;89316;89317;89318;89319;89320;89321;92050;89322;89323;84039;84040;84041;83962;86409;86410;89324;83936;84099;83937;84066;89325;84174;83963;83938;89326;84100;89327;84101;84102;84103;84042;84175;89328;84176;84177;84178;84858;84859;84306;84179;84180;84181;84307;89329;84131;84278;84067;84279;84280;84377;84281;84308;89330;84309;84310;89331;89332;84311;84312;89333;89334;84462;89335;84313;84378;84379;89336;89337;89338;89339;89340;89341;89342;89343;89344;89345;89346;89347;89348;89349;89350;89351;89352;89353;89354;89355;89356;89357;89358;89360;89359;89361;89362;89363;89364;89365;89366;89367;89368;89369;89371;89370;89372;89373;89374;89375;89376;89377;89378;89380;89379;89381;89382;89383;89384;89385;89387;89386;89388;89389;89390;89391;89392;89393;89395;89394;89396;89397;89398;89399;89400;89401;89402;89403;89404;89405;89406;89407;89408;89409;89410;89411;89412;89413;89414;89415;89416;89417;89418;89419;89420;89421;89422;89423;89424;89425;89426;89427;89428;89429;89430;89432;89431;89433;89434;89435;89436;89437;89438;89439;89440;89441;89442;89443;92051;89444;89445;89446;89447;89448;89449;89450;89451;89452;89453;89454;89456;89455;89457;89458;89459;89460;89461;89462;89463;89464;89465;89466;89467;89468;89469;89470;89471;89472;90639;92796;92645;94745;93258;92052;92225;94987;92766;96347;95299;96019;90128;89879;94767;94207;94769;94768;90208;92053;90946;96196;92054;89473;90640;95972;94988;93972;90898;89795;92668;90372;93441;96197;94208;92055;94989;95668;92848;90810;92056;93622;90947;94770;93724;95542;89880;92226;94057;93259;92797;94990;92227;94771;89474;90641;92228;95669;90209;93487;94772;95543;95611;90948;90325;89475;94773;92057;94656;90642;92058;93137;94774;93872;89881;94481;96348;96614;94775;90011;94776;93101;90373;89476;92229;94777;89477;92059;95726;92230;95578;90012;94746;90034;96198;89478;89796;94778;96289;89479;96349;90643;91057;92231;90949;93571;89480;93873;94924;92385;89481;94991;90412;95300;94523;90326;89482;95401;92589;95402;89483;90327;90726;89484;89485;92060;92061;92062;96350;90035;89486;92063;94413;90210;95945;94779;93973;89487;92064;89488;89489;94119;93623;92232;90950;95487;93874;95403;90457;94780;89490;91058;90951;93138;89882;93204;91059;92233;89491;89492;92234;94688;89493;92065;89494;90374;92066;89495;93572;96199;92067;92732;92068;95670;94590;92767;95363;95671;90458;93624;93102;93875;95404;90727;90328;90930;89496;95655;89699;92069;92684;89497;94992;89498;93488;89499;94235;92070;93876;92071;92072;90728;94781;90644;92798;93917;95488;90211;89500;94993;94657;92235;94782;92236;89501;93260;96107;94783;93625;89502;93355;94784;96200;92073;89503;92877;94785;96055;90413;96167;93877;94994;93878;92074;89504;92710;94786;92075;94024;93326;89505;89506;93573;95458;93489;89507;93327;90729;94995;95672;92329;92237;93085;95673;92799;94614;89508;93918;92076;90072;90129;92238;96156;91060;92077;90689;93031;92615;92590;94120;94787;89509;96157;93055;94788;92239;89510;92240;94789;90931;94996;89511;95037;89512;90459;89513;92078;90811;90329;96108;92241;95446;90952;90130;93974;92079;92080;94790;90645;90646;94791;92081;90036;89514;94997;93574;90013;92082;94792;94793;92242;93490;94998;89515;95579;90131;92646;94236;89516;94482;92083;96020;96273;96109;94483;96201;89517;89518;90730;92084;89519;94999;89520;94794;89521;94615;92085;90375;92086;89522;94795;92878;89523;92243;94658;92244;89524;93020;90256;89797;94747;90132;92245;92087;93086;95447;92441;89525;94796;94797;92529;92733;89526;90953;92669;92879;89527;92987;94798;92246;92088;89528;94025;92089;88464;92247;89798;95000;92090;89529;94799;92530;93139;92988;92531;90162;93261;92091;94800;94801;92386;95375;95901;90516;92330;90954;95301;89530;94484;94802;89531;93262;92849;89532;92092;90899;92093;89533;89534;89535;90212;92971;94058;95674;89536;89537;90955;93879;95302;89538;89539;94803;94804;92616;92094;92248;94805;95675;95303;94806;89946;93421;89540;89541;92095;92249;89542;89543;96202;89544;95001;93140;94121;92647;94807;93087;96203;92096;89545;95304;89546;92097;96204;89547;93626;92098;95002;96290;95580;95448;95003;90103;94524;92989;92250;93975;91061;95489;94808;89548;93627;94809;92617;93628;93880;90037;93881;94457;90731;89549;93751;89550;93670;89551;93882;89552;95405;93575;90956;93919;93103;95778;92880;89947;91062;92099;94925;96205;95779;92251;96351;95459;89799;94026;95727;92100;90647;90038;89553;89554;92101;89555;90104;93088;92252;90957;95676;93056;90690;90460;94810;90812;93021;95376;95780;92102;96168;92800;92103;92253;92532;94185;93725;95004;93726;96206;93671;95581;92442;90014;89556;94811;90732;90039;95490;90040;90648;89557;89800;89558;92533;89801;92104;94812;94813;93057;94814;93920;95728;90958;89559;93022;90517;92801;90213;90649;94059;91063;90214;95491;96319;89560;89561;90813;92105;92734;89562;90376;90461;95544;92106;89883;92443;95677;90959;92254;94689;92107;89563;90650;92802;90282;96465;92670;90900;96274;93058;92108;89564;92109;89565;92830;91064;93629;94815;94816;92803;89566;94485;90462;92110;95612;95678;93089;94817;94818;92387;94616;92255;92256;90651;94819;90691;89567;92388;92476;93672;89884;95415;90652;90814;92534;92804;92111;90215;92112;92257;95005;94820;90653;96207;94821;96733;92972;92113;93921;93141;92444;93205;92114;89802;90414;92258;92259;93551;94209;94414;92115;93976;95416;90960;93422;95006;92591;89568;94822;94823;92116;92117;93491;89569;93576;92118;92119;95781;92260;92768;96110;89570;92445;94148;90961;93423;90463;90105;90692;96021;89571;94824;93922;90694;90693;95613;92120;94825;90695;96022;92121;93883;95007;93059;92261;94826;94828;94827;90330;90331;90962;93424;93923;92881;92805;92990;89572;92535;89700;92262;92122;92123;96208;90963;90464;96169;90733;96023;93977;94591;94829;95782;89701;96209;94027;93328;95008;89573;92124;97157;93329;92263;90654;92264;93924;93901;89574;89575;94830;92125;95009;96210;89576;92265;96211;90769;95010;94831;92266;95729;90734;90041;89577;92126;94832;96320;95679;96111;90655;92671;90216;89578;95011;95305;94486;93330;90656;92648;94833;89579;90735;89580;90964;95012;92389;92960;92127;89581;92390;92735;92331;90217;92973;93630;94834;90465;92128;92267;94835;93206;94836;96158;90965;97533;94926;88111;94837;95013;89582;89803;94659;89583;90966;94487;95406;96212;95492;92268;92269;89584;90133;92129;90657;90770;94617;89585;93090;89586;93263;93978;90042;92685;90967;90968;93425;93142;95829;92270;96466;92271;94838;95493;92130;92272;92446;89587;94839;94840;96615;96159;90218;92131;94841;94842;95680;92132;95830;95681;92618;89588;90219;90658;92850;92273;90043;90283;90044;89702;92882;92536;90466;94843;92391;90659;92274;95306;95730;92672;92133;95682;94844;96352;96112;93925;92134;94028;92806;94845;94618;95731;92135;95902;93631;94210;96353;92275;90220;93632;90969;93752;95614;94122;89589;92276;93979;93727;92136;96213;89590;93032;92137;95460;92138;93926;92277;95903;95582;93728;92139;95494;92278;93633;90284;90875;94846;90660;95904;90815;89591;89592;93634;90221;92140;93884;94847;92279;96214;90816;93143;92280;90736;89593;90222;92332;92736;90377;93927;92141;93577;89594;94848;93980;89804;90518;92961;92619;93356;90970;92142;90842;90971;95732;90015;89595;92143;92281;90415;92282;89596;92144;93578;95583;93357;93885;89597;94849;94488;92283;92145;92146;89598;92284;95683;92285;92147;93579;96170;95783;93207;89599;95784;94186;89885;89600;95684;89601;89602;96354;94851;94850;94852;94853;92286;96215;90972;92649;92686;94854;90416;92148;92287;90257;90467;92149;90163;93673;94211;89603;89886;96056;94123;92883;96057;89887;90224;90223;92477;95685;93635;96216;93886;90225;94124;92150;89604;94855;96113;94856;95905;92711;89605;90519;89888;89606;94261;89607;96024;93426;93636;90973;95686;90468;93637;93208;89703;94187;92807;89608;90417;95615;93091;94748;91065;94660;94857;93928;92151;92152;92153;89609;93929;90661;92154;92155;89610;92156;92288;90737;95584;95946;94212;92157;92158;92592;94858;94859;92620;96670;92159;94661;96355;90134;92289;93981;96171;89611;94860;89612;90738;95495;90901;93887;94861;89613;90469;92808;94525;95947;92160;95687;93930;94526;89889;94862;92161;95973;89614;90696;89615;94237;96025;89616;95014;90974;93753;93888;94029;92162;92163;94863;90332;90817;92650;90975;89617;95449;93358;92164;90258;92165;92549;92166;89618;92167;92168;94489;92169;94030;92392;89619;94864;92290;96114;92171;92170;94490;94865;92333;95496;92291;92172;96275;90285;93331;95688;95038;92173;92174;96217;95461;95015;95497;92175;92809;90697;90226;92176;94080;94867;94866;92177;92292;90698;92178;92179;93264;94868;92293;92180;89620;92181;89621;93638;92393;94690;96218;90662;93359;95307;93754;94213;95462;90333;93265;94869;89890;94870;95689;90227;93427;92810;95690;96115;90228;94871;93729;93060;92182;89622;90739;92394;92593;95407;93639;92294;90378;92183;89891;89623;95906;94662;92184;92185;92186;93492;92737;89624;93982;89625;92187;89805;92811;92334;90976;89626;89627;92621;92188;89628;92189;94749;92295;95016;96026;92190;89629;92191;94872;92296;90470;89630;94873;89631;96027;95785;92297;90229;89892;94874;89893;90663;89632;92812;90230;93493;95017;96219;92298;92192;95691;95616;94592;89633;92962;92193;89634;92738;92299;92194;93889;94875;92622;90073;92335;89635;89636;92300;92769;89894;90471;90977;92623;90379;94876;96160;95308;89806;94877;92301;92195;92336;93890;89637;92302;90664;90231;92447;92196;95907;89704;92197;94031;94878;93332;92198;90843;92337;92303;89638;92199;92200;92201;92202;96161;92203;96220;89639;92204;92205;92206;94879;93266;89640;90045;94125;94880;95908;90978;92207;94881;94882;93209;92304;89641;89948;89642;94883;92208;90472;92209;90016;94884;94885;94886;93210;90473;94750;92210;89643;96356;89705;94887;92212;92211;92712;92305;94262;90520;92306;90046;94888;92213;93333;94593;89644;92673;95733;90047;89645;89646;92307;95948;90740;95692;96162;90779;89647;92214;89648;96291;95498;92215;90048;90232;95545;92216;93931;89649;92217;93580;89650;92991;92218;89706;93932;95417;92624;89807;101494;105196;97839;105803;97237;104343;104468;101495;105379;104755;99486;99141;100485;105804;96671;102182;101558;97672;96616;101559;99174;99404;105805;101560;105806;103609;102326;97645;101325;101561;99405;101095;101562;99922;103581;104147;101914;99255;99049;102098;99256;97158;101961;101563;101564;97500;96845;101068;97746;101036;102021;105807;102375;102932;101496;99487;104820;101565;97053;101860;96886;101566;101962;101567;104589;101986;100261;104821;96672;105808;105809;105810;101568;101569;100740;99605;99987;105705;96499;104443;100603;102376;105811;102377;101570;96964;97448;96673;105124;101571;102450;100183;105812;105813;105814;101572;101177;102022;97159;102793;96674;100434;105197;97784;101573;100729;101574;105380;99050;97160;100307;101575;97449;103097;99142;97334;102378;105815;103098;104404;105816;105817;101825;103883;99743;103433;101576;101497;96782;105818;102327;105819;96887;103884;97335;104725;96675;104344;104688;101577;105820;105198;103996;105821;103149;105822;105823;99676;99051;96846;97616;101326;105511;105824;96467;97238;103540;99293;104590;99923;102379;104591;97161;101578;101579;96705;97239;102506;102380;105825;105826;101580;97803;103885;97481;105827;96357;104726;101987;99642;105828;104710;105125;101581;105829;101795;96734;102716;101582;101988;105472;101014;101583;105830;105831;100854;100741;100486;101584;104756;102631;104822;101585;105126;105832;97240;101586;101587;103886;103099;97450;105833;102086;101588;100072;100968;105834;97241;102381;96571;101589;97759;100604;102892;101590;103887;104941;105835;102024;102023;103888;104823;105836;99677;97673;99052;100184;97451;104976;103889;105381;101591;102382;99423;97242;102933;100435;96706;105837;104148;100855;101592;101593;105838;103332;97030;105706;101498;101122;99606;100185;101594;101915;97452;104149;100856;97162;101595;102383;97243;97163;101596;100857;105199;99696;97674;101499;105839;104150;105840;100308;104592;101500;99988;101597;99406;105361;102934;105841;101989;105842;96500;97244;101598;97675;105843;105844;105845;104405;101599;97700;105846;102183;102893;101600;101601;96986;105847;102246;97164;101602;101603;101604;104646;101178;102384;97804;99607;104536;103520;101605;100969;104593;102099;105848;105849;105850;96965;102087;102601;97336;97968;105851;97054;101606;101990;105852;105853;102385;99608;105854;105855;101607;104594;101608;97031;104793;105856;100820;101609;104151;101610;101501;100186;97337;97676;104595;101991;101611;101212;102935;100187;97677;105857;104596;97701;97309;104444;105473;101612;101613;97032;105127;105858;101992;105859;101614;105128;103333;99407;103582;103100;101502;103890;100073;101861;97925;97702;103541;101615;104059;100821;104597;97840;96735;101916;96572;101862;102451;97760;101616;100562;101617;99643;97363;99408;101618;105860;96501;97617;100188;100436;97364;105861;100361;105862;96783;97165;101619;99143;102717;103101;101620;100008;100074;101776;102386;102452;100309;99488;104598;103891;105863;105864;101621;105707;105200;103542;100332;105865;100437;101503;97033;104942;102184;102387;96358;97903;105512;96888;105866;104824;101537;101622;100742;102894;96987;102602;101863;104977;101623;101624;105867;104263;101625;100970;105868;102185;102895;101626;97425;102088;105869;105870;99924;101627;97166;101179;105871;100487;105872;101628;103334;104825;105010;105873;100743;103892;103543;101629;101630;102453;105874;97678;105875;102025;99409;101631;104416;101632;101633;101634;105876;99955;105877;100488;96889;104110;99239;103583;104445;105878;105879;99718;104152;97534;97805;101993;105880;97167;100605;101994;104794;101180;104826;99609;103610;102896;102484;103544;102454;100489;100009;99547;102936;101635;104978;104757;100310;103893;105881;101504;102388;104758;104195;97168;105882;96538;97169;101636;101637;103434;102983;97535;96934;101864;105883;100189;104309;102389;97703;105884;104310;96736;103894;100971;101638;101639;104599;101865;96737;101917;105885;101640;105886;105887;96784;100858;100190;99053;99144;101641;102455;101213;103895;102390;101995;100438;101642;105888;101643;100730;104727;103896;105889;101644;104153;105890;101866;102551;100822;97338;105891;101645;101054;97865;104689;105201;97245;101123;96935;101181;101646;103435;103335;100490;101647;105892;97806;100798;105893;104060;105894;102552;99054;103263;96936;97170;103897;103232;105895;103898;99319;101648;99257;103117;105896;102391;96988;102794;105897;102247;105898;101649;99489;101650;100626;102392;97171;100228;101069;104728;102897;101651;105899;96539;102456;105900;100744;101505;99678;101652;104111;100191;105011;101996;97679;96890;96891;105446;104406;101653;99697;100563;103899;97704;104311;101243;97453;104600;103611;101963;101506;105901;99272;99145;102393;101654;101655;101997;99175;102827;99445;101656;99410;105902;101182;103612;101998;103264;102718;102047;104827;99719;101657;101507;101999;101214;101327;105903;103336;103393;102603;101658;96617;101659;103150;105904;97454;105447;105905;97866;97310;97867;105906;96937;102898;105202;102000;105907;101660;101015;101661;99146;101508;105908;105909;103664;99989;101662;100192;103545;105910;101663;101664;99176;105911;105912;96359;105129;104312;96468;105474;103546;99411;105913;102328;101918;102394;96573;96892;96321;102100;99610;105130;102937;105914;105915;100606;103199;100030;97785;100745;100193;99205;100823;101665;101796;97172;103547;101666;104729;105131;96893;102212;100311;105519;104711;97069;104601;104345;99644;101667;103265;105475;101668;105916;101669;102001;101670;105917;96894;105203;100010;101671;104417;101672;105918;102604;97646;101673;96738;96502;100746;101674;97926;102984;100972;97482;104154;105919;97501;99412;97246;105500;105920;100491;104795;102275;103233;101675;102605;103102;105921;100824;102457;105922;104196;96503;100731;101070;101676;101677;99679;101678;97705;96895;104225;103900;103901;103613;105923;105924;105925;101679;103902;105926;105927;100564;97590;100229;101680;102795;102458;104469;101681;96966;104264;104602;104603;100492;101682;102770;105928;99611;101683;102395;99424;100607;102002;99413;102026;96540;103314;102485;103997;100493;97365;105012;103103;99680;103436;104979;105929;99010;102396;102027;104446;102828;97969;102459;101867;104447;100194;100859;105930;97173;102606;97786;102397;105204;99177;96847;102003;102004;100333;104418;100011;102486;104419;101685;101684;97536;105931;96504;104796;100312;105932;99191;99320;102829;99414;99055;103437;101686;101919;102899;105933;100494;101920;102900;97618;99744;99321;105205;105934;99490;100195;103548;97706;104690;104691;97591;97502;105132;99745;103998;103549;105935;101687;97426;101868;101688;104313;105936;99612;105937;100075;97868;104604;103614;96989;102398;101777;103903;101778;99056;105938;105939;105940;101689;105013;97970;104112;102028;100076;104448;103234;105941;102607;104155;97070;101244;101690;105942;103200;102608;105943;105133;101691;101215;99491;101692;103151;100732;100825;101921;101509;105944;101693;104314;103521;101694;97619;103438;105945;97247;102487;101695;103950;99681;101124;102985;100077;101696;101697;101698;96896;101779;101699;101700;97339;100230;99548;105946;105947;97537;102005;105382;103550;105948;102609;105949;97680;97174;103235;99273;101701;96967;102213;104828;105950;100747;97427;105951;104197;100196;105952;100733;105953;100334;100078;100973;97503;97841;102488;97034;99415;102719;104156;100079;100197;97681;96676;102089;101869;105134;102460;105954;103337;97483;104346;101071;105955;101702;97428;102461;105956;100608;105957;103551;105958;104980;97175;99258;97248;101183;104605;105959;101703;105960;105961;99645;105962;101704;97761;105135;101538;101705;101706;101707;99057;104157;103338;102938;102399;101708;99549;101709;105963;97176;101797;101510;102796;102400;96677;103904;100080;101710;102276;103439;97561;101096;105383;101711;97429;96707;99416;105964;101712;96897;101245;97647;103118;103339;102029;101713;105965;97648;97538;104449;101714;105334;102048;97927;97071;104606;101870;103037;102830;99492;97455;105476;97311;102808;102489;105966;101328;97539;97249;97682;102901;103665;99613;104158;101715;97177;105967;96739;97869;97340;100734;99746;99147;102006;105968;105969;102720;105708;104159;96678;100012;101072;101028;105970;97620;100495;96574;96990;105971;105972;104607;102610;104450;101716;103340;96360;105206;99493;103104;97649;101717;104730;96848;101718;104315;100627;103615;102214;100031;100013;105973;97621;103366;97178;103201;103905;100198;105974;102721;105207;97683;102401;103951;103266;105975;104160;105976;96785;96849;105977;100032;101719;101922;96679;100335;105978;97622;103906;101720;97971;101721;102186;104451;97179;100199;101780;96505;105136;105979;97762;96968;102402;99322;102007;101964;105980;105981;105384;101511;103616;100231;104608;105982;104829;101246;105983;97540;100033;96361;97541;106077;101184;102403;97763;102404;99148;103952;105984;101512;97684;96898;103367;96680;101722;100826;101329;105985;101871;101723;99494;104347;97430;96740;101724;105986;99720;101725;101726;101727;97250;105477;97504;101728;101729;102507;103236;105137;101037;101730;101731;101732;97505;96991;101733;100439;102490;99614;100281;101734;99721;105987;97870;99550;96469;97764;104830;97341;100336;102632;100860;101735;100440;96969;104609;101923;97072;103105;104831;97842;101736;96681;103394;101513;103341;105385;99446;104610;105988;99108;99323;100748;103552;101737;103267;105989;104981;103268;101185;101738;102136;105990;102215;101965;102831;96708;97707;105386;100735;101872;96506;105991;101739;105014;100337;103269;96362;105992;101740;97787;97180;101741;96507;99925;101038;101216;101742;101781;97542;101743;105993;105501;105994;103617;100338;100749;104407;105995;103440;100362;104692;104316;100750;102277;99324;104832;103342;99447;100014;100034;101744;101745;102049;99495;102329;105996;99747;104505;105171;101873;103907;97055;102832;105997;101039;105998;102986;105999;104452;101746;96470;106000;103618;104833;102405;102248;102462;103908;105208;103553;103106;106001;102463;101782;106002;102686;102722;97685;97623;106003;100363;100200;104161;96508;102464;106005;106004;104506;106006;102902;97456;102406;104834;106007;101874;100736;99425;105138;101247;102611;106008;106009;101747;97181;102612;103107;106010;105736;103619;96899;102050;100609;96682;101748;101783;102613;106011;102008;100751;101749;101750;97543;105139;102614;97624;104943;106012;101751;103554;97484;101514;102903;104611;100705;100201;106013;106014;97182;101752;101875;106015;97056;100364;106016;101753;96509;97686;106017;102137;101754;106018;102723;103108;102009;99748;101755;103202;102407;99149;106019;106020;101756;101757;96741;109350;108305;120199;120200;120202;120201;108306;110573;107153;108612;117891;120203;120204;108790;108907;120205;106611;108423;106987;120206;120207;106021;120208;111235;111766;120209;109559;106022;120210;107154;120211;120212;120213;108491;111469;120214;120215;120216;120217;108492;120219;120218;106905;108665;120220;110299;120221;120222;109817;120223;120224;110625;117813;110425;106906;108732;108855;106698;120225;110667;106634;120226;120227;109702;108666;120228;107155;120229;120230;106416;117488;120231;106274;120232;120233;109818;120234;120235;120236;107156;120237;120238;110597;120239;118072;120240;120241;118100;120242;117716;108908;120244;120243;108909;120245;109703;120246;110574;108977;120247;118409;107107;120248;110613;120249;120954;120250;108493;106110;120251;109704;108613;120252;120253;120254;120255;106078;120256;117925;108268;120257;120258;119106;119154;120259;108494;106417;111236;120260;120261;117531;120262;120263;120264;109004;108910;108667;120265;109705;120266;120267;120268;120269;107157;111767;109221;120270;120271;120272;107158;120273;120274;120275;108614;120276;117959;109094;108699;120277;120278;120279;120280;110387;117960;108668;120281;118159;120282;120283;107280;120284;107159;120286;120285;105709;120287;106023;109416;107160;118045;120288;106177;120289;120290;106988;106024;120291;109706;117371;120292;109819;120293;106510;120294;120295;120296;117646;120297;110166;120298;120299;107007;118334;120300;120301;106275;110300;120302;120303;120304;120305;106025;120306;120307;110689;111799;117372;118896;120308;119107;106821;120309;108495;120310;108347;120311;112067;109740;110821;106322;120312;120313;120314;108307;120315;110949;120316;120317;106822;120318;118857;120319;111558;120320;120321;110912;107161;118160;120322;120323;107027;110690;120324;111619;120325;120326;120327;108911;120328;110626;120329;120330;106511;120331;107162;120332;120333;106730;106418;120334;120335;120336;110698;118897;120337;109434;120338;120339;108836;109285;106907;120340;118579;120341;118841;120342;117717;120343;111237;120344;120345;120346;109820;109590;121072;120347;120348;120349;108856;120350;108615;120351;120352;110627;120353;108496;120354;120355;112169;106908;107281;119126;120356;120357;111238;120358;120359;117438;120360;117961;120361;120362;120363;120364;107028;117926;120365;120366;120367;120368;111397;117927;106823;105710;120369;120370;120371;120372;109048;120373;120375;120374;120376;108775;117507;107125;118940;120377;107029;111239;106026;120378;120379;109095;120380;107008;120381;108818;107030;120382;106594;120383;117718;110388;108616;120385;120384;117489;120386;110426;108617;120387;119155;109873;109821;106079;108669;120388;106824;106419;120389;109741;110930;120390;106027;106512;120391;120392;120393;111539;120394;120395;117647;117532;109005;120397;120396;120398;120399;120400;119156;120401;120402;120403;109096;119243;120404;120405;120406;120407;120408;111710;120409;109286;107163;106028;120410;119291;120411;120412;120413;117299;120414;107164;120415;120416;106635;108497;119244;120417;120418;111470;107138;120419;120420;120421;111047;120422;119127;108837;110913;119055;120423;120424;120425;120427;120426;111240;120428;106029;109874;120429;120430;120431;120432;120433;118101;120434;120435;106909;107165;108424;120436;120437;108498;118941;120438;120439;119245;120440;110400;120441;120442;109150;106057;106782;120443;109222;109351;120444;120446;120445;120447;107166;109707;119007;108499;107167;120448;106058;120449;120450;107009;120451;106825;120452;120453;120454;110167;107168;120455;120456;120457;109708;120458;120459;120460;120461;117892;120462;120955;120463;110168;107169;109519;106910;120464;109560;120465;108670;117439;120467;120466;120468;120469;120470;111398;111241;120471;120472;120473;120474;120475;106276;110209;120476;120477;109417;120478;120479;111242;118102;106513;120480;120481;108308;106514;108500;120483;120482;110575;120484;120485;120486;106030;120487;120488;120489;120490;120491;120492;106515;106178;110931;120493;117962;120494;120496;120495;120497;117839;120498;109970;120500;120499;119108;106080;120502;120501;120504;120503;120505;120506;110251;120507;110538;106277;106081;106420;120508;120509;120510;108618;120511;109520;110301;120512;120513;117840;120514;120515;107031;120516;108912;111399;111711;110252;120517;120518;120519;108425;109561;120520;109352;120521;120522;120523;106636;120524;120525;120526;120527;112098;120528;106516;120529;111522;120530;109926;120531;120532;120533;120534;106278;120535;120536;117300;120537;120538;120539;108776;110520;106279;120540;120541;109287;120542;117814;120543;120544;106323;120545;108309;120546;120547;120548;110427;106638;106637;110822;117648;112099;106538;120549;120550;120551;106989;120552;120553;120554;106731;111400;120555;118475;108777;120556;120557;106539;110169;120558;120559;108501;120560;120561;120562;106990;118103;120563;120564;106540;111015;106031;120565;120566;106878;106032;120567;111712;120568;120569;120570;106826;110327;120571;109006;120572;109562;117490;120573;120574;120575;120576;120577;111471;120578;107032;120579;111243;120580;120581;110598;106517;118809;120582;120583;110668;120584;111620;111559;111768;111472;106518;120585;120586;120587;109742;108502;109822;120588;120589;109743;120590;120591;112100;120592;118046;120593;117508;108269;109353;120594;109563;120595;120596;108503;106519;120597;120598;120599;120600;120601;106911;120602;110401;120603;120604;106280;120605;120606;106281;112051;120607;120608;105596;120610;120609;107170;110428;106912;120611;111244;120612;120613;120614;106082;120615;106282;120616;112068;120617;107033;112234;120618;118960;108388;109288;120619;120620;110950;105737;121073;120621;109823;120623;120622;109971;120624;120626;120625;111048;120627;109824;110170;108504;120628;118047;120629;106179;108913;110932;120630;120631;118842;108505;106639;120632;108619;120633;120634;120635;120636;120637;120638;106640;109018;106283;109382;120639;107077;120640;109875;120641;110253;111016;120642;120643;120644;120645;120646;108914;120647;117963;120648;117841;120649;120650;109223;120651;119157;120652;105624;111473;120653;110914;110060;107171;118123;120654;108506;109354;110210;120656;120655;110576;110061;120657;106033;111475;111474;120658;110951;120660;120659;108426;108915;120661;108572;120662;120663;106827;106641;118314;109709;107010;120664;117440;108838;120665;117612;106642;118410;120666;120667;108348;108778;109435;110669;120668;111713;117373;108733;110389;108734;120669;120670;120671;120672;120674;120673;120676;120675;120677;120678;108857;120679;120680;106828;120682;120681;120684;120683;120685;120686;120687;106520;120688;120689;120690;106421;120691;107172;120692;109803;117374;109418;120693;106913;111989;120694;108916;108671;110823;120695;107173;120697;120696;111245;120698;111361;120699;109591;106914;109564;120700;106083;120701;108791;120702;120703;120705;120704;110402;120706;108389;120707;120708;120709;120710;120711;120712;118104;120713;109151;120714;108672;106915;120715;120716;107034;106084;120717;118580;120718;106284;109224;107011;120719;120721;120720;106937;107174;109225;120722;120723;120724;120725;106285;110577;110788;106643;120726;110670;108735;120727;120728;119158;118241;109419;120729;109903;120730;107175;120731;109420;120732;105738;120733;120734;120735;120736;118181;110789;110790;120737;109710;120738;108673;117622;108700;111714;110302;120739;120740;120741;117509;120742;118242;120743;120744;120745;106111;120746;120747;118243;108390;120748;106644;109972;109711;120749;120750;120751;120753;120752;120754;120755;108427;120756;120757;106541;110171;120758;120759;120760;117842;107035;111476;108779;108736;117375;117719;120761;120762;120763;120764;120765;110933;120766;120767;120768;117843;111401;120769;120770;120771;112101;108839;110671;106112;105711;106085;120772;107036;107176;106542;108349;120774;120773;120775;120776;107012;120777;108917;120778;119019;120779;120780;120781;120782;120783;120784;120785;110952;110172;120786;120787;111990;120788;120789;107037;120790;120791;106465;120792;120793;107013;108310;120794;120795;120796;118843;109876;120797;106645;120798;120799;111246;110672;108674;120800;109152;120801;120802;120803;109226;120804;120805;108428;109744;120806;108675;120807;120808;106086;112186;119020;120809;106595;120810;120811;106646;111247;120812;112235;120813;106113;110328;120815;120814;117964;109592;120816;108311;108780;106180;120817;120818;120819;120820;120821;120822;120823;120824;120825;106829;109049;111477;108701;106466;118244;118725;118245;120826;120827;108918;111769;120828;110173;120829;120830;108312;120831;120832;117720;109421;108620;108978;120833;106596;120834;109189;120835;111770;108313;120836;109973;106568;120837;110824;106286;120838;106958;120839;120840;110599;119159;120841;120842;109804;106521;108573;119128;111715;117533;120844;120843;120845;120846;120847;108737;120848;120849;120850;106783;110673;110103;118335;120851;120852;120853;108676;120854;108792;120855;120856;108919;120857;106991;120858;106114;111654;111621;111716;120859;107038;107177;106422;109712;120860;109825;108677;120861;120862;120863;109927;121074;118048;109805;120864;120865;120866;108920;120867;120868;108702;109745;110303;120869;106034;109422;120870;120871;120872;109423;107282;120873;110329;120874;111717;111017;119008;120875;120876;120878;120877;111718;120879;120880;109746;111719;120881;111595;111248;120882;120883;108921;106830;117510;110273;108819;120884;120885;108350;117965;111560;106992;120886;120887;107039;120888;106647;120889;120890;120891;120892;120893;106035;120894;120895;120896;117534;120897;120898;120899;108621;118898;120900;108678;109747;120901;109436;120902;118581;111249;120903;120904;118899;120905;120906;120908;120907;108622;120909;120910;120911;120912;120913;117491;120914;108922;107040;120916;120915;120917;120918;120919;120920;109227;120921;120922;120923;120924;106648;120925;120926;106423;120928;120927;120929;120930;107108;109748;108507;120931;110915;106784;117301;112102;111250;108679;120932;105739;119009;106522;109928;120933;111251;110674;110211;120935;120934;119129;120936;117302;120937;120938;107041;120939;120940;120941;120942;120943;121332;122650;129319;129508;127502;131194;131785;124369;131195;121137;130291;128431;131332;125931;123098;121235;123472;127103;122555;122978;125228;130032;129829;121373;124465;120964;131706;132636;125418;130775;124346;131440;130033;124466;127869;125486;124467;124468;122273;125177;131196;123137;122103;121487;129599;123033;128561;120965;126353;131786;125419;125838;122274;128084;122070;129600;122830;122556;132778;129601;131707;125645;121442;123034;129602;128562;124469;122039;122623;130475;125420;124470;130613;130776;125646;129603;126130;129077;124471;124599;131088;128126;132637;123035;123693;130777;121075;130778;132638;123801;129604;131787;129394;125375;124472;123036;126706;123759;124473;125906;127503;131441;124474;124475;129830;126794;131573;129320;125421;128432;122979;129540;129170;122520;122275;131839;126411;130919;122436;125422;130986;124723;127870;125647;131442;131089;130779;130476;126591;121138;125648;131443;124684;122769;131708;122276;121169;132111;131333;123534;124685;126225;128396;126131;129417;127931;129698;124308;122795;130780;127932;126014;129078;132639;124476;124724;123568;124477;124478;130477;132112;124284;129605;131250;128563;128480;125610;129606;122071;131251;122354;125229;130409;126795;125271;121258;125860;129607;131252;131444;126796;130292;132779;124600;122557;131840;130781;128039;129608;130478;129609;124244;130293;128397;125932;123099;124479;130294;129949;121076;124040;129610;125423;128535;124480;124781;132640;129612;129611;125743;124207;123802;131253;133111;124699;127504;124347;125649;129027;128564;128127;126354;125178;123037;131090;122558;126055;125611;129028;124481;122725;132641;127505;124482;121318;125785;128398;126355;124483;122559;126797;132642;131037;123569;124484;124485;128128;124177;125179;125744;121139;129613;123535;124660;131254;122651;122437;124348;129418;132407;126015;125745;128885;122104;129419;123760;122105;121170;125907;127506;123473;121194;131334;130782;122277;123570;128129;122455;132348;124041;128433;125960;131143;121443;128434;127507;129950;124725;125908;122406;123038;131709;128399;132083;132643;123803;122322;129509;124486;130295;123138;125650;125230;121444;128744;123474;122456;129079;127104;131445;132027;122278;127508;130296;131446;122796;122880;122652;124349;122197;127509;123694;124487;131447;125424;122407;124488;129951;121519;131788;122040;131789;129767;130479;124489;121236;129614;125425;130297;131038;124490;126356;121333;124285;122106;129395;132644;127871;128400;124491;128565;122279;131710;132028;130410;131091;122681;128566;132645;123761;129615;125318;125180;130783;127824;125684;131574;132646;128130;128652;130411;129736;126798;130298;128295;129080;131168;129616;126969;128481;130299;129541;121319;125231;121077;122408;122409;124350;129699;122653;129617;129618;121217;122410;130300;121237;129831;122134;124492;125319;124601;131197;125651;122072;130034;129700;126530;128401;132327;124493;122438;126132;127510;121259;122654;124494;128040;124569;130480;126799;122624;128784;128567;122560;130301;123100;128785;127511;130784;121260;123139;125861;130987;127933;127512;132737;121374;130614;128568;130481;128131;128435;125652;122980;131199;131198;128296;124726;129420;128132;122355;130785;129321;128786;126970;128623;127872;125181;129029;128569;129619;126800;125426;131711;125427;132647;132648;127934;129171;127513;122561;127514;127935;124495;129109;129620;123039;124496;124570;124497;127079;125653;128787;125654;125909;124782;128436;129510;125182;129621;128570;125272;131092;127936;131790;124245;123040;131039;131335;131448;131791;130074;128571;123839;129511;124498;124499;130075;132328;124500;126357;131093;128788;129542;130786;129622;122198;130302;129623;130920;129624;125786;132408;126449;127825;122682;122323;128133;124370;130237;131169;132113;132649;124501;126515;123475;123476;131200;127515;132329;126016;122797;129625;122280;131094;129626;122073;124502;130370;131336;131255;125299;123140;126516;124783;126838;131449;128624;121577;131040;132114;129627;130303;124503;126358;128402;122981;122281;125428;121488;130412;123477;132780;131792;124504;127937;130787;124505;131450;122135;130788;131041;131741;131144;122521;131201;129366;122881;130789;131793;130352;124371;130304;130790;124506;121140;122282;122136;125862;131337;122074;126658;124507;123041;127516;124208;128572;124727;124178;131095;130305;131145;125655;130988;132651;123571;124427;123804;131096;132652;128482;130989;122439;122625;127517;130306;124508;124509;126517;122982;130482;122440;131146;132650;131097;123572;122798;122522;121578;125273;124510;124511;131256;126659;122075;124686;121579;122076;125746;132781;131451;128573;129628;131452;129832;121334;126518;130791;128574;127518;129367;125656;131712;125429;123805;128085;131042;124571;122283;122284;127519;122655;124512;125863;124513;126660;122371;130307;125430;131043;124372;120966;130308;123042;125274;124514;121401;131098;132029;129081;132115;123762;127826;131841;124516;124515;123478;124572;122726;131453;129629;125864;123101;132653;129630;124066;129543;125275;130483;126839;129631;129632;126412;121078;128297;129030;129421;132116;129633;131202;125787;122285;123043;121238;122286;124042;131713;121079;131203;128483;122077;129802;121080;131454;131967;126359;130035;121195;121489;128134;124573;131338;130615;126017;122983;131455;121320;126531;128789;121375;128041;131170;121081;125183;131456;124043;124517;129322;131171;131714;129323;124373;124518;128790;122356;128484;124246;129952;122078;121580;128575;124519;121261;128485;122562;121445;126994;130484;127938;132654;124520;130485;127939;125300;123141;130486;121141;129634;129368;127520;130309;122626;131044;129635;128886;130616;127105;131204;132084;129953;122107;124428;132117;127080;126080;127521;125910;123479;124010;128978;128625;129636;121262;124521;124522;127081;124523;123763;127940;125376;126264;123840;130487;129637;125685;121321;121490;122079;124700;123142;129638;124524;125612;129544;124574;125911;122287;121322;132782;126661;126995;124525;130488;130310;132783;132118;124351;124011;130311;128576;123764;132655;129512;129324;122523;121263;124602;123806;131257;129325;124247;131339;124661;124526;127873;129639;121082;126265;126313;130312;127522;124603;130489;122108;121239;132784;126801;124527;127523;123044;123045;121264;124528;121562;128437;121520;130792;130490;129422;124529;121083;129082;132656;132270;129640;130313;130314;128577;129110;123536;121265;126360;122627;124530;124531;126314;122288;122411;122628;130793;122457;124532;127524;121171;130036;131715;129833;121266;129701;129641;130491;131099;128486;121267;129642;125377;126532;124067;122563;129834;121376;131716;129643;124604;129326;123537;124179;129083;124533;125933;126662;131100;127525;121268;126056;124180;131457;125431;123143;125657;130315;131742;131842;130316;125686;124701;121402;129644;130317;121563;131101;131458;124784;128578;124248;126663;124575;124534;130990;129031;123046;129645;129702;128791;131045;129835;125747;131968;123841;122984;128067;125320;127526;123047;122934;131258;131794;130794;125865;131102;129646;128487;124535;125658;131103;125961;128579;127527;123765;125866;130795;125748;126133;124068;124536;124249;127528;125232;132657;121084;121085;129478;130037;122564;121491;123766;122565;121323;131717;122799;124576;132030;127529;132409;128488;121377;124537;122289;132119;123048;129647;122800;130318;127530;127082;124538;131459;124539;124785;122566;124540;130319;125487;127874;122357;124786;131460;128745;131718;124044;131205;129032;123480;131104;124541;122041;128792;124250;130320;123807;128793;123979;130321;128626;124702;129648;130796;129327;121086;130797;130322;129649;129650;129836;122683;130798;124687;125867;120989;127083;130492;123049;124542;122935;130799;125432;125962;127875;130076;121269;129513;131105;125613;128653;124251;124605;124543;126018;125233;129651;122164;126483;121581;127531;125788;122080;130800;129768;130493;121492;128794;131575;129652;124544;128489;126664;124577;128580;130323;125378;124045;126361;122458;127084;132658;129653;124069;123573;131106;131461;132659;121582;129803;131046;131462;125868;124545;131843;127941;129769;122199;125184;129654;122290;132120;122567;128581;132660;128582;122629;122324;129655;132661;129837;126802;125912;124787;124546;125710;122200;128583;129033;127532;123695;125433;122568;129034;123050;124548;124547;127085;124012;125659;131969;126803;130801;130802;131172;124549;124550;129737;122684;126707;129857;124551;122081;127533;125185;121196;121270;130324;124606;126134;131463;121271;124552;123051;131107;123538;130803;131464;132662;129703;127534;121142;122985;130804;129858;131465;122082;126533;124553;129656;131206;125186;129035;124554;130325;124688;129423;125434;129657;127535;122524;124578;131047;129111;121446;124555;131108;122137;127942;122862;127536;125789;125660;127537;122569;130991;122727;132785;130326;122083;122882;125276;125661;130327;126996;129424;125277;132663;123052;126665;130137;128490;124252;125790;128438;122138;131147;122358;129172;131259;132664;129658;122986;121493;124703;132786;124556;127538;130038;121197;126840;126804;125435;124607;125436;129112;125869;121218;127943;124352;125234;131207;124181;120967;127944;131048;126362;123808;129113;124689;121198;121494;125870;124557;125321;124558;122728;130328;126226;123767;122139;129770;126805;130353;124559;125345;124728;129659;129660;124876;126135;122656;137920;143353;140542;133008;137786;142228;139554;133701;133420;141489;139100;139879;134184;140543;137102;141879;137103;137921;136677;141756;137922;138820;137210;136148;135367;137787;140759;138069;143307;133881;135368;141873;142291;133563;143255;140544;134127;134455;140545;137923;144618;134919;136149;140760;133231;134578;137211;140226;143177;136414;144963;142045;144488;137156;133817;134456;136293;134985;138821;134128;141870;138396;133775;134986;133818;134882;143176;134435;137420;144834;135985;137104;137105;137842;137924;137677;140227;142587;135369;139676;142356;141874;143291;140063;135986;140668;143137;142586;141269;142857;136432;135726;140618;134684;144546;135418;139256;134920;140546;138397;138398;140105;144612;139705;134457;142520;138861;134987;137379;133112;142197;138530;136150;142527;143330;137732;141522;133659;135419;135987;135420;141510;138108;141282;142957;132787;136678;139343;137106;133421;139706;141384;136151;133702;134185;141245;133564;141881;138109;144615;133422;145016;140812;137380;136433;133423;141186;136531;134246;141277;143326;137107;134247;133232;140813;141283;143173;135988;143598;140761;135209;133882;139299;134129;143405;133626;133627;142182;138399;137788;144031;139431;135104;134988;136434;141900;143139;136294;133565;132876;143183;134130;142927;134248;134096;144828;135989;136210;139931;136953;133883;137678;137679;133735;134989;139707;136838;133367;144669;143171;143325;139677;138400;143140;137108;141289;133368;141280;139257;142668;134249;137680;133369;144347;144183;134131;138822;141520;139212;143344;135105;135990;141270;144957;140669;143458;139880;134250;134186;138110;142624;133819;139586;138531;134132;144135;140547;137574;142581;133566;137421;141876;140619;138235;137422;136435;136592;140506;136532;137423;138476;136377;137733;140670;133567;137109;138111;136839;141139;143149;137110;141317;134990;144246;138532;143106;138401;136415;140620;134187;141887;141909;137111;138163;143356;144536;143227;135991;133424;136934;134458;138653;137112;137157;134991;134961;133568;140608;133736;142160;140304;137158;139778;134251;134436;137159;143189;133113;140548;144124;141880;137925;139632;139678;139258;141299;139881;135421;138823;143261;133569;142338;142637;141486;133884;135992;139633;138915;140621;141267;133009;134579;142283;143294;142666;133703;133570;142617;138193;134685;133010;144830;138477;144319;140622;133885;144163;134635;136935;139679;141285;133737;136211;141555;142955;139259;134133;142517;138824;137113;137424;142580;141296;143464;143515;139101;134134;138654;133571;135106;141892;139102;143436;137009;137926;140671;138478;142669;143196;142835;138402;133886;139634;142518;134992;137010;141300;137765;138112;138916;134354;144038;138366;139432;142614;134333;141902;137114;136436;133114;132788;133572;141896;133233;140623;144479;135370;137160;139390;136378;136722;135727;138862;144487;137681;133776;139708;133887;137425;133660;138917;133234;141518;136988;138403;140672;142541;137843;137865;132738;142564;141907;144325;135993;138825;140228;144701;144611;133011;136295;144717;139260;133573;133888;134097;132789;133012;144654;135260;133535;136379;136152;141485;144132;135711;142947;140549;136593;133235;136954;137866;143334;135210;142621;134840;133425;137115;133426;144482;133236;137212;137682;143135;136679;141268;133777;144225;134252;136755;134841;138579;140305;135597;138863;134883;138404;135422;133115;132877;132739;136296;141894;140229;135598;140106;143293;140230;133574;142013;138113;133575;139523;141527;133576;138533;141882;134993;137426;134135;138864;134055;141140;136437;143129;141187;138194;144134;135371;141273;141509;135211;144030;134459;141524;139761;136723;144500;141274;142533;143351;139587;138865;140673;133443;141141;138405;141142;136936;144129;137116;136380;134136;135372;133013;139932;139882;134842;141930;139736;133704;134188;136381;142205;142841;139344;136153;133889;136680;144730;141188;138406;141101;138826;134580;142847;137734;141908;136840;136841;136681;133116;133577;136632;139261;139213;137161;133578;141875;140624;143188;142171;137844;134884;134137;135994;139345;136779;136594;141515;140550;142193;137867;138866;135212;144617;139555;142542;142040;140762;141189;134253;138195;143300;138114;138479;143258;138196;144827;136704;133778;139103;139524;144117;141298;140064;142532;139680;136937;134138;134460;134139;134636;141490;133779;144136;142229;133370;143465;141895;133738;136212;141526;142954;138480;142192;133371;136842;139104;141143;141190;137117;132790;140551;141295;143516;141376;133427;140438;142622;139681;137927;140306;138236;144736;133237;136297;135995;141903;141885;139214;133372;135599;139635;143309;142919;137118;137575;137683;140507;139262;137162;141556;134581;137011;140674;134461;141869;140552;138237;142569;138115;139105;144039;133428;136382;143329;142552;134994;138164;144440;138238;139433;133238;141275;136780;140553;134056;137427;141290;138070;133739;133014;136724;141144;140307;144475;144486;139883;139263;138239;134582;142198;139636;137766;135600;144140;141392;139391;134637;140308;132791;136682;134638;136683;133579;133117;142830;137428;144481;137684;134995;142887;133580;134583;144040;136781;138407;139392;139215;138408;136843;142529;133373;135213;141795;142860;143502;133015;133705;137429;136705;139346;137845;133890;144166;141484;133016;136684;141145;137119;138918;137685;144489;138409;134462;135996;136844;144310;138240;143098;140471;139709;136756;133581;140554;135601;142851;141928;136298;133239;143105;138580;139884;136938;140675;143349;135712;144342;139637;137846;140508;133820;144045;144616;142636;139710;144042;134463;140763;133582;141248;139216;142886;133429;141244;137735;144362;136845;141532;141297;133628;136299;134140;144091;134996;134057;137120;139106;135214;134334;144652;137430;133821;135602;140814;142351;144123;137686;133118;140309;133512;141519;139217;139525;135423;142051;138116;139762;143525;144474;142016;141375;136939;136725;139682;144484;143346;141889;136846;141877;140231;143530;136633;134254;136154;141550;136300;138117;141146;136989;139434;140555;137687;133374;133583;142862;133017;144835;136438;138410;144324;138534;134355;138118;144696;137163;137847;140815;133240;140232;135728;141488;143174;137736;134962;144241;138919;140107;136847;142837;138367;133119;139711;139712;136595;136416;133375;136301;142828;144822;142574;138655;133241;134584;141521;145017;142935;144175;140233;141278;132740;137164;144247;141386;140556;143228;139393;143111;140439;142515;137213;137121;143397;133584;139107;137214;135107;136439;139885;139588;143596;137215;138656;143434;133740;138241;136848;137431;136155;136685;135997;139737;141891;144577;144729;143354;134639;135998;139526;135999;133152;134997;133430;139108;133278;138242;138119;141871;136440;142914;140065;138120;133376;144613;143595;138867;142588;140816;136156;141381;142934;141906;136383;141487;144583;140625;139556;138920;133120;142104;135016;142048;140066;142047;138868;137868;137432;138243;132878;136000;137928;135424;137122;138411;138197;137433;144127;135215;134464;143520;134189;137688;143453;138198;138921;137123;144315;142928;143167;143501;142842;137434;138368;141554;133741;139933;136757;133377;142577;142839;139638;144542;133536;144480;137435;144323;142509;141883;139527;133018;138657;140676;137689;140108;133431;137929;134885;142510;140817;143195;133891;138121;143438;136417;144572;142671;133378;134717;135108;138412;137436;138369;134465;144036;133742;137767;138244;133242;141288;140609;134718;141102;136001;133892;139264;139713;134998;137576;133585;136002;138122;135109;141292;133743;133893;144606;136686;133586;138413;133379;137124;143108;142519;133706;136441;138869;136634;143296;137737;140557;138535;142859;144694;143230;136157;137437;135373;142195;134255;141249;141899;139265;137125;142191;139528;133587;143128;138581;153199;146397;145474;144967;147116;146363;145559;146296;145154;146392;153212;146471;146125;148202;146468;147777;147769;154180;144919;146844;146279;148174;148716;148793;147934;147773;145769;146297;146718;146412;146689;148801;147957;148732;147792;145558;148204;146373;147469;146896;148788;148715;148797;145238;144965;148198;146396;147745;147940;148157;148780;147739;147087;148743;148720;147782;145784;148722;145486;144920;146575;148728;146839;148783;146746;145142;147795;146917;145152;147734;145367;146841;148731;146284;146969;147933;144966;146277;148790;148727;148197;145483;146899;147859;145522;146364;145760;147450;147958;146554;145528;147787;148214;146913;148782;155960;145391;146856;145521;146393;146192;148718;147945;148792;148232;146901;146407;146902;147959;148085;146564;146509;148734;146835;146853;146399;145126;147186;147778;148777;146828;147175;145204;148726;146977;148741;148742;148776;149414;145240;146843;147027;146223;148917;146289;146260;153093;149989;147435;148730;154065;147854;148804;145107;147742;144964;148735;146400;148802;146323;147188;145716;148724;148163;148156;148796;147935;146184;147743;146244;145196;144838;146290;146368;145122;145315;146905;145780;144918;146572;152831;147026;145759;146737;146525;147770;148798;146558;145302;145254;147183;145131;146884;147768;148178;154140;146847;148799;147873;154857;147771;146559;147180;145747;145241;147429;146292;145178;148778;146234;148800;145337;148729;145482;148725;148785;146505;148238;148744;146280;148228;146894;144955;146462;145200;146276;146886;146970;148781;147153;146472;144958;147618;153200;147177;144816;147068;148205;147747;154184;146464;147484;147515;144961;146295;146943;148158;148208;147939;144954;145119;147554;148721;146467;148199;146830;146370;144916;148717;146855;147738;154839;145235;146606;146909;147519;146556;147943;146469;146557;146834;146947;146294;146502;147746;147802;147185;145190;148161;147791;146829;146691;145776;146054;147932;148805;148719;148789;148784;148154;146854;146356;147437;145197;147941;148794;145141;148779;146837;147498;144842;145281;148229;145751;148733;148253;145568;145150;146515;146354;148803;147181;148736;145388;146414;146522;146415;147156;148791;145529;148231;146049;145112;147798;144819;145722;147942;147847;146979;147576;148213;146319;145562;146850;146281;146900;148051;148087;148723;148786;145714;146529;146848;148230;146939;149990;146840;145763;147803;146286;147154;146358;146832;146275;148787;148795;146749;146137;145138;147740;146842;146500;145115;146519;147856;145318;144840;145260;146906;147151;146241;147815;158437;158443;158441;158557;156741;158257;157153;158442;157888;20952;62277;62278;62279;62280;62281;62282;133440;133441;22414;50651;22295;21610;159010;34969;31660;11586;24016;25039;69476;69494;21565;69475;17593;23831;45112;73640;21567;58233;11026;22964;17975;11153;14773;140575;57914;10068;10069;11193;10070;10071;10072;10534;17141;10073;10788;12036;30218;99132;12246;32315;22269;80103;99133;32316;80104;25492;144648;89724;77057;103673;77056;70295;32031;29252;27619;66519;65741;39621;47745;47746;10074;27576;56310;23925;15934;59328;77159;110774;123688;50450;50449;46201;16224;59318;20302;22056;52673;80998;81127;83365;106606;21079;23869;25694;29741;31799;34741;35742;40434;43068;46859;48300;49307;50493;44596;51926;53472;54299;54972;55140;55803;56259;56874;58001;58207;58538;58994;59426;61550;61622;62480;62836;63242;63450;64506;64584;64916;65219;65910;66445;66872;67225;69866;70858;71351;71951;72284;72606;72937;73433;73740;73994;74431;76413;77172;77577;78441;79140;79442;79835;80484;80946;81819;82781;84048;84365;84642;84730;85326;86060;86369;86423;86851;87244;87657;88639;89834;90425;91163;91670;92012;93461;93960;94334;94628;95762;96388;97142;97727;99283;100052;100756;101362;102262;103124;103922;104544;105175;105691;108281;108958;109601;110397;110979;111683;117410;118909;119462;119094;122117;123938;125056;125815;128633;133607;137253;141494;28211;11952;20158;11323;59196;59176;59175;60111;60110;11710;119778;19396;20293;16095;56992;18428;18429;41945;40824;110558;62392;89692;89693;62393;25371;27599;24712;58272;58273;133090;128148;90151;25442;38828;20929;149498;38156;121038;50525;58902;76578;76577;151288;151291;10075;10076;88840;84919;84920;73523;86470;100594;81383;81384;81382;56049;76535;122858;123009;131285;125405;137084;155788;76534;31347;93098;38155;129782;143482;150156;17367;85514;73524;81670;82996;86471;112183;124328;139546;73669;76493;79253;83812;73531;73522;97387;95439;95440;119751;73525;77988;88841;85910;85911;93128;97066;99969;124324;100384;52544;102132;104274;100998;104656;104657;103873;104352;104886;110415;106583;122855;110812;131283;117936;121356;124280;119421;128278;125885;128552;125886;125888;125887;125889;132317;127134;131185;139547;134228;130209;133358;131320;141122;143045;141567;141121;144948;156783;156754;147661;156752;152514;156755;156550;156569;73526;73527;158390;93196;73532;85737;89867;85738;85739;90314;85740;85741;85806;87896;73528;85742;73529;73530;77220;88842;74105;83031;21589;158687;11796;65669;65670;65059;65058;144448;148136;132633;139233;65614;125924;152220;154005;65613;157230;139315;141216;144566;147921;149359;152861;155706;158564;49808;125925;86697;119258;119835;102682;119836;90566;119259;119260;119261;119262;119263;101523;124412;127059;130625;102858;104742;119308;119837;119309;104436;121246;119838;109398;111376;121045;131077;118092;124413;131191;126750;133525;135848;140503;144647;141568;139316;49807;141217;144567;147920;149358;152161;154004;32396;45404;55422;48276;157229;49780;55671;52458;57050;62064;62384;72723;62063;86698;90567;101524;102859;112059;104433;109399;111377;121046;118093;131078;126751;125153;128422;129494;133526;135849;43029;64094;32395;39481;35807;133853;131941;131942;139412;139924;131316;132872;58645;92700;132586;11939;11370;10376;12053;33549;47557;21146;14588;14266;12527;12530;110559;15761;15500;110560;12555;12556;12566;12575;12581;20989;14440;12589;14345;140310;37723;122372;134356;107078;37111;109437;117910;88875;21646;64488;92338;53905;34939;86334;100974;133629;91332;117844;135880;40910;156075;21378;18814;110465;37996;18815;78878;86645;151497;44952;102687;86176;18816;18817;132665;43176;66968;55429;90876;83939;143517;18818;57402;33186;31081;84409;37293;158265;21379;74295;95585;18819;18820;91475;103555;74176;30029;144125;35998;72953;18821;18822;78495;153072;92674;96363;18823;18824;91203;84600;57907;72954;36136;86583;65540;142952;42874;67249;106879;70515;18825;137381;87980;57415;46244;69087;53579;99058;32487;92675;100140;153984;99206;47793;109877;18826;88665;100313;80923;18827;128491;127876;133969;55912;58609;99178;126592;70066;122959;37713;87981;31633;42808;18828;18829;78577;88570;124788;92676;117863;23950;146411;51404;109713;18830;111540;34445;36012;18831;86385;97807;33935;133243;31830;61586;117594;84651;129545;81062;88729;97197;23951;36645;150273;86386;91696;144147;34685;142665;111402;21380;18832;35405;111403;37252;25591;92831;139639;108923;93494;139109;72527;135729;149974;105335;101826;21381;145024;86584;139738;21382;133327;134963;112128;32488;134999;63015;90553;91908;148750;148503;21730;56077;76134;104226;45583;158143;69278;58828;21731;18833;21383;62488;139640;144165;73549;85366;138123;156224;92884;66734;44599;145027;57785;92885;22294;92339;35277;25129;149234;119056;92886;83328;157887;74479;21384;55281;21585;55913;92887;22486;94491;73661;101186;96364;94126;144184;100113;92888;18834;60114;66769;21385;84886;136533;92889;21386;58756;85426;71506;100881;37724;96365;18835;80069;92890;36588;57445;91697;91909;86805;92891;106424;134719;126019;18836;40460;92892;84482;59083;104835;127539;58358;37913;92893;51100;84693;90979;18837;84321;78815;92894;91145;50327;34164;156036;18838;50328;87290;92895;18839;134720;38114;35283;34688;146798;86177;91698;25827;153126;151004;25305;92896;56803;119510;86585;85519;138414;61443;84322;158451;128308;24719;81460;34256;18840;61587;101966;135881;18841;58937;94492;157244;106732;18842;36042;58313;35562;146499;63368;103474;18843;84694;106467;57857;21387;18844;150010;129573;21700;94663;88583;103556;137342;84104;87685;84068;104061;128584;79810;139471;87609;93983;125437;139529;121403;72247;122630;142311;87176;124374;41021;18845;54619;21388;51101;25437;87114;111404;149374;137382;66735;127945;26084;103759;95393;152657;18846;25472;31714;37848;24705;37320;89707;25748;34389;21389;65840;18847;63369;121604;76879;63364;24201;87686;125871;122936;35289;145257;66507;145560;148511;35613;118315;18848;147937;65935;104113;62105;59103;47025;99615;128492;153205;118900;18849;54620;51393;127540;52728;38779;26085;84695;84553;96850;34257;65936;87687;62884;40978;28316;34976;100610;103795;36791;153817;26212;123053;149247;21390;136990;63263;48749;100674;33239;134437;18850;132792;103522;61740;22451;104982;26977;88743;69213;58162;142275;149341;72312;125662;62068;110675;76301;60150;22208;121495;57550;88816;122165;63637;72717;95408;125614;37142;18851;59746;86876;22882;36579;86775;156027;50329;61725;58972;23758;18852;126534;144157;95450;22883;142940;47751;44333;37021;73900;137285;66635;18853;21391;138370;18854;126928;102688;119821;22515;22487;104487;126841;95499;51503;72893;57454;36167;91720;21678;44625;37781;36819;136384;91370;93942;106831;97219;30241;45547;131466;18855;157237;31953;57585;54838;63395;134438;23793;90605;56078;43161;96292;122987;18856;21392;63396;18857;67117;18858;63588;151809;146598;89764;22884;153870;126363;118844;104488;21393;57908;58837;81134;76195;64742;129084;132410;54621;133822;51962;63016;47142;127541;108703;158217;88666;18859;93933;91699;51102;65623;102465;18860;80148;143591;152901;152227;51132;106236;33904;21394;19337;138536;54982;59380;83080;21395;111018;18861;84132;86198;138658;38799;133432;33374;156078;106810;59361;133707;38135;25802;132064;104489;89006;18862;25803;144927;148207;21396;56804;36865;37369;112236;105063;18863;21788;35050;56323;140234;87480;109050;22428;148748;18864;90286;107126;70516;65989;37032;58646;61501;26086;62856;111176;27844;138245;150702;129114;36191;36605;18865;18867;18866;72872;83130;35284;87269;84380;131970;22209;59281;87291;21397;64873;78816;135941;149973;87688;106880;89765;96510;107042;140311;35240;21789;34270;21907;91790;133708;131844;119270;121521;21398;82062;102846;18868;112069;84410;18869;140725;21701;117966;85699;118182;18870;118496;18871;142946;79656;87292;55395;21399;108623;126593;18872;158033;35335;40583;84254;96163;99749;126315;18873;94238;106287;40899;34728;84381;81175;72955;140677;86586;34301;21400;22885;21401;136534;90606;38140;42238;47677;21402;153894;78634;84201;90980;35701;47616;135713;110628;106938;58640;82313;36365;137930;18874;119562;18875;36869;48250;18876;21403;94415;104162;97808;144658;129838;37618;28193;38697;48396;138124;83510;149424;18877;66918;106811;144182;21404;104537;122883;79955;37542;35051;35290;158169;94918;85593;83841;46259;97972;37058;136955;104731;106993;158782;63159;47818;18878;94416;92851;71874;21405;18879;86335;84860;36864;58359;85594;35052;119698;44345;90334;29769;18880;137789;104693;49108;142535;119879;18881;18882;62791;35241;137343;154139;105448;18883;51504;86620;81461;93984;156698;44600;96397;119511;121272;84483;117303;99551;108351;62770;59747;69052;96116;133328;57909;18884;69395;107109;87689;91026;18885;96992;51450;62956;61741;124286;35426;26087;132879;37495;21768;154925;103343;55812;18886;51567;87385;25664;84522;18887;93614;140626;85775;22871;103760;140472;86877;96411;106425;140678;58938;89007;28165;130238;95734;117649;86079;18888;22452;124219;111362;25833;21406;147688;88817;34504;37185;110403;21407;37467;19338;18889;21408;18890;94417;71529;58422;88149;91476;64374;56117;53439;21577;139739;81096;51928;141103;66798;21409;147558;110390;57968;82578;86834;76951;18891;69008;85595;42331;35469;60055;146477;150260;62022;104863;86835;43104;32061;37433;55821;50627;107110;33240;57852;68898;28348;112281;31154;55723;136535;36362;36476;21410;29689;101330;18892;97342;108314;145364;46876;91928;29770;55157;88027;42355;92340;88500;106733;37229;147814;18893;149073;146846;68917;29771;76922;28349;83792;61480;85965;91508;37593;18894;37125;18895;119563;117650;137344;137286;25632;18896;22488;53468;58438;109190;93442;57529;87885;87361;118073;154774;117441;45613;103584;37695;82890;18897;126484;22453;37115;138125;118476;57675;135882;36275;61762;22198;25015;19339;105064;18898;23738;54951;84628;48370;53906;85337;22499;102689;83554;157386;25260;153826;119315;99192;66549;112070;59302;145349;35935;51950;33547;22500;18899;36492;88667;21411;61451;53907;62814;18900;88465;81395;77638;88853;91027;118704;77596;125438;84696;91399;134843;150314;105214;73150;76584;109330;88067;50699;106597;125098;83793;51505;153222;34977;84697;35936;21412;38838;81009;136706;23985;84652;58864;85172;59439;130494;77733;37616;121199;111405;83794;56805;145274;34151;64089;144193;37929;51560;151899;136849;21413;127106;62832;139934;111363;85858;28259;56657;86431;122570;18901;18902;45529;25512;38963;108524;43342;37712;126136;127542;130239;37799;66581;147098;34496;144158;63401;110578;59945;49062;27550;81331;119426;88730;96058;25451;108680;96366;18903;36212;127946;18904;81193;21414;87610;87982;103475;45570;37480;67237;71485;105336;125439;18905;125440;105090;62054;158995;21415;18906;70865;100496;134721;43093;100282;85991;111561;96172;77315;126485;144028;139266;136158;53523;130240;59516;64791;57329;111019;92448;149425;36998;24730;18907;104227;26088;127543;83555;25425;106699;93443;134686;18908;84698;59063;84699;85859;96322;135795;23986;153073;71960;86044;86836;132349;85639;106036;103523;126519;23759;92770;85427;25834;21416;62792;18909;124608;146288;72528;92739;149483;127086;122412;99552;71603;18910;120968;36863;106037;131467;78015;146792;37227;152860;86889;53852;57646;39578;87293;142539;106734;35053;101539;76600;55956;65841;103953;102833;19340;23952;124429;18911;53881;87690;156021;18912;139714;57830;92006;21417;49273;134921;56490;80149;85640;87691;55430;18913;105665;83901;50330;35623;18914;87789;18915;21418;125687;21647;18916;100565;148697;137165;133970;117845;65067;18917;121427;63373;56576;64516;100141;71223;122657;38881;150316;151119;104163;121564;109051;130241;24202;127947;96117;97687;137869;103656;37846;145478;18918;131468;86276;110254;36231;96086;141465;58471;89047;85367;87692;72612;18919;92341;47904;21419;138126;76614;21420;136850;84861;42094;19341;103557;84411;22239;93674;158199;121629;94081;27578;18920;29950;156715;34762;85641;43376;36947;93144;118246;88603;93061;125346;32062;51963;71450;21421;84780;21422;35054;28350;22489;89048;81798;34786;136442;25981;138922;112071;101540;40868;141844;18921;130921;130242;18922;150312;110539;125749;95500;123980;52486;18923;85173;58641;21574;148506;64792;121522;104265;58201;63469;122884;21423;93985;156440;92027;102615;110953;126413;42129;34390;99059;103476;95418;70964;146166;85483;71451;153396;21424;103152;59313;50331;77883;90335;124220;83909;146578;66799;22909;21425;25840;109052;18924;38800;61557;105337;38801;95419;85924;21633;18925;95501;36300;58642;149361;59206;96323;90336;27508;130243;109383;63370;56491;131260;126137;153435;119481;83511;87294;40485;100283;18926;91791;136159;76543;18927;159035;66455;49166;25841;51964;38802;78002;105215;61780;83795;35582;29796;95502;50469;134585;53440;121335;56168;96511;18928;34723;38751;156026;105140;69250;87693;26037;156029;35427;126364;65967;62793;57786;62866;86621;119699;87611;96820;137126;51363;21426;95503;18929;51568;118074;59859;136003;61742;140312;87213;151009;92897;62885;140627;84970;99553;110429;25261;51103;55517;103477;90287;61588;35937;131469;136758;69412;96618;61639;130244;36910;34940;43377;63069;95504;36730;70261;158197;23794;84700;72382;57403;91371;110653;124046;71530;21427;70672;40486;131470;86188;18930;80424;136956;42428;66889;73266;153220;126486;87790;145316;88512;142855;118477;39315;119822;103741;61781;124560;33419;66630;45584;141793;101276;153982;97788;104759;52966;109749;84701;142856;130245;147680;103478;22240;88466;106598;21428;45561;83081;37117;94691;100441;130439;121324;95505;147900;36192;55845;149343;86178;95814;78016;87997;59517;32063;88668;18931;156052;40571;149079;18932;45614;100497;27067;38803;63256;109625;88068;23987;95506;18933;149857;122631;76060;104647;146907;85700;100646;103153;88669;18934;50700;33241;62194;53407;130246;56277;95507;144673;18935;152069;110540;87612;56685;61763;71070;153821;84554;120969;91929;86878;56492;87177;119246;78017;65184;65170;81332;95786;35089;18936;19342;84069;63049;124353;51991;95508;128979;59466;32449;102278;107243;103840;34497;64288;92740;88584;55158;61522;107043;85757;143178;18937;29849;73389;18938;88818;86806;127948;25049;79795;18939;148526;148869;43626;45114;95509;55877;149249;135603;70795;82786;127544;36807;83512;18940;55009;106994;100081;90844;62611;153815;111583;36654;35055;133709;21429;62489;24825;109228;153827;85257;136302;91267;32110;66250;58137;81462;96619;81116;19343;73321;51379;157239;60151;95510;31983;35336;35583;64743;150171;103524;149888;126842;18941;21430;134256;21431;18942;84412;18943;137166;88977;18944;150091;21432;59084;66845;73676;40691;127545;87744;95511;136596;89708;35695;84702;110579;79364;102939;22516;133476;18945;148200;117864;111655;56772;23663;99554;96938;108738;71808;51582;37439;74342;144172;71983;21433;109661;89895;63115;158787;109662;105065;109053;137790;126081;27813;145236;136160;23871;147874;85033;146833;36550;62340;18946;18947;69888;134922;90288;84813;70299;57628;108979;18948;25050;35401;93388;111406;96939;86277;87745;36673;55822;106832;18949;35770;19344;143543;45135;100284;88467;58889;121565;88684;19345;146601;90049;145567;68918;102530;99496;80350;158994;126365;158403;96324;62886;18950;18951;38882;97544;124209;32145;152226;122109;18952;43037;133244;87830;36893;22051;62705;97809;141517;149883;150196;21434;18953;65541;82650;122960;124221;133710;95546;24307;104836;58670;83796;99555;18954;73632;101217;35242;88468;61502;73633;87694;59009;29990;21435;127949;58360;58472;21436;92771;21437;29229;21438;73111;21439;117721;21440;37696;71285;21441;91372;37518;59282;88876;27640;143306;137870;18955;144868;18956;92342;35243;136940;144569;128585;71152;131148;82286;37225;135942;34978;66311;85428;96059;18957;145149;83842;87695;25426;88028;18958;92503;149512;39375;134335;62114;65185;77560;99698;87831;25130;26089;32299;81432;38964;18959;18960;120970;105449;21442;56476;138127;56493;42967;139683;52626;18961;96367;141284;18962;22501;83229;108429;53441;74114;59085;156210;19346;35624;93581;18963;89008;62806;157236;18964;38086;83940;22454;91437;61617;52058;22210;36251;153083;106115;59095;88944;66582;18965;34732;158989;23760;47143;42404;35337;137249;87295;156030;91839;146130;132428;18966;18967;73792;35938;21586;21443;156688;100581;58790;150015;144191;136851;137167;21444;48397;84814;140135;49123;32064;37471;22040;135730;87696;87983;21445;19347;37800;122084;129085;139830;99060;102690;86922;74181;69396;51069;57292;104797;42414;65199;48380;85608;77124;111771;69214;18968;42213;46245;149977;144177;44346;96221;150317;86686;35338;65842;136957;102330;123574;18969;105450;105502;37716;103237;38804;94418;25914;18970;92898;53442;107111;144190;145095;53469;21446;35563;18971;137791;138923;71257;130617;87746;87697;96512;121273;88604;61764;76196;65843;131295;144573;29288;18972;91373;89009;86266;89709;62731;18973;44407;92899;139472;87854;127546;134722;66814;35999;87225;111720;136687;117722;137792;77976;18974;153061;49728;57293;36564;87960;56762;86837;88469;72098;100775;21447;66736;56587;18975;58314;90233;106735;140628;89927;91581;108574;92900;140937;145023;23664;21563;90592;35584;21448;66631;92813;92901;87481;22052;103841;61743;91734;92902;25633;21449;18976;21450;101218;135425;124182;62490;127547;37841;18977;57818;102466;96851;40957;50332;92903;88670;29230;32065;90554;30127;103657;130413;106855;91553;88470;126138;118901;149231;42342;100393;29951;78521;92904;36518;139267;92537;73857;92651;37025;139435;95364;66312;151121;37131;132065;90050;92905;39594;86387;38021;153819;34484;40429;96639;25473;18978;72696;119851;89852;18979;93360;152745;36773;21451;70449;48332;46246;25634;18980;105338;122042;43094;138582;35625;51520;58829;139763;77836;86857;88471;141314;26038;97545;156028;120971;34327;92906;59026;147697;103842;66169;21452;58556;25016;92907;128135;122885;92741;69337;87362;35963;29874;21590;18981;92908;56477;82480;66837;92504;84523;105406;18982;153818;84703;85066;152746;87482;92909;51506;38705;100582;35279;82906;31031;92910;110691;40518;38002;128136;92911;38112;62341;34045;88472;24797;36333;18983;82514;71071;92912;27044;106856;36837;81587;92913;60101;70306;36576;21453;140235;34228;18984;37398;108352;133661;92914;89766;22517;43596;26090;50838;46214;37137;34188;18985;106649;36995;119700;154658;51666;105066;148703;34838;137690;104944;55970;34816;86587;140236;37183;37109;64987;151972;22139;81097;97403;94493;139436;50333;36618;88473;141293;93495;149071;158402;18986;103344;147897;50505;78611;143437;102010;18987;149514;105216;133971;82002;122359;102030;96742;36280;104760;111991;110969;134844;72995;153871;137691;23872;77717;89896;140237;47144;73550;42912;18988;21587;89853;74239;117651;103479;18989;18990;84704;66737;123481;85484;37096;136536;90845;88474;23988;56521;59220;92915;57551;35672;34446;118902;129661;18991;83797;24720;91637;71238;125278;108430;92916;69088;128042;104507;18992;66632;62957;92917;26091;156732;97107;102491;21454;86432;92918;84705;148518;50334;38657;65844;106736;92919;92772;18993;88475;128309;32066;80537;18994;100827;36237;92920;96471;79707;54622;18995;106881;97546;92921;21455;109663;140558;37076;92922;122988;132411;57338;24227;153823;92923;89010;65968;92924;79401;148599;61765;18996;97810;18997;118336;56079;151120;35280;92925;87984;117376;22341;57910;57739;25381;92926;96412;73487;99109;73793;92927;92832;89089;102101;34165;57647;153985;18998;93986;92928;21456;128586;91966;139268;102797;110430;91374;70262;88945;90846;102331;55502;124222;18999;73267;94082;53346;19000;89011;151778;53443;89727;19001;144187;149346;21457;58647;57629;56017;121404;86450;19002;135192;127548;21634;97108;56806;25679;37822;110274;93389;24365;64666;93033;95451;33187;22886;51832;100442;45446;91509;69065;19003;37951;25533;95787;40858;89012;66907;49686;85729;84706;38965;148211;57432;31155;36752;84707;72790;99646;19004;62958;126666;108624;19005;81683;44601;67103;78039;19348;72002;70701;89013;76719;95039;29289;129425;83024;97625;106237;47814;21458;86879;38966;91146;125934;64988;19006;86377;96368;84133;37206;19007;19008;144144;86838;37503;21459;19009;55878;35639;40461;19349;21460;84043;84708;109593;77125;83941;85368;19010;42310;61539;64885;77316;36636;105625;34979;87907;65845;56548;19011;86433;64874;81117;21461;37292;36421;152490;44049;37047;87661;123809;118754;25017;87698;87226;81618;19012;34018;86858;144174;21462;40659;93496;158983;42196;157319;101541;34686;19013;37039;104062;88671;158246;101187;63290;19014;136726;135714;132683;106939;96037;25804;84524;22502;91930;83798;21463;61481;47567;21464;37617;32146;45595;55914;40660;32067;87747;122085;21465;138537;34980;109594;65969;25784;131340;36168;101967;21466;87613;91910;127950;19015;42170;55846;139589;36472;152288;129839;47033;19350;25805;142156;153816;19016;34152;136385;74444;19017;145187;119316;102138;130922;144185;87614;19018;79365;32147;73881;156079;19019;109565;97688;88150;152747;72849;76985;84887;49652;21467;87699;119271;55439;29772;87188;128587;45447;77036;19020;111177;84862;133588;88476;19021;81867;35640;152205;21468;132793;66938;52666;148530;106812;151410;117911;21469;90289;147172;118124;100975;19022;90847;47794;84709;37686;35339;35928;19023;64421;57390;66210;51889;134336;70484;97312;48427;105362;88819;21470;63674;51915;38015;46005;143526;125379;31954;106214;21471;158985;94083;91931;154315;19024;135943;139831;95365;139347;95265;19025;19026;27845;61675;25359;78003;24838;37029;133894;121405;72768;146574;102553;82481;106215;36000;107044;123981;19027;150172;89928;145781;143466;85293;21472;88672;119057;109066;35285;85966;19028;21473;84105;49729;111178;97220;66012;70379;22211;25560;70646;76615;111596;51521;72494;99240;89014;76986;32489;56857;34951;94450;19029;84710;103796;19030;103441;87227;61782;39425;93730;21474;57552;19031;96369;136688;73151;26937;19032;21475;130440;37777;34206;40935;23665;102279;120972;86278;19033;108476;118858;106426;152073;42875;84971;99974;90741;65846;101876;28194;81659;100828;21476;126756;106959;19351;23989;57720;34839;22887;36976;85596;87296;22872;57045;19034;88501;153285;89974;119272;24366;95974;79956;151900;105067;58283;109929;83910;21477;21478;65847;19035;70965;58963;131261;123422;42886;142035;90234;63365;86279;110319;109626;86451;80351;93497;148522;33905;63371;99616;103345;88744;141535;19036;84934;141391;73431;21479;158633;91268;152818;84314;19037;146560;37028;19038;50470;111656;97592;22910;94692;137438;19039;36682;100285;129369;19040;73488;142573;74318;109054;21480;90568;154773;86080;76720;90290;63470;19041;21481;91554;19042;159065;50335;134923;146516;85860;102408;56494;19043;73779;62298;124223;111721;19044;25806;126139;21482;49730;81588;136941;19045;36517;82063;81463;47130;129954;54623;58210;19046;156025;88112;19352;134466;69372;139110;70595;85573;19047;55633;47752;76302;45571;87700;154045;148516;68943;73551;151500;112052;62207;153892;21483;110521;103761;21484;28166;130077;125791;97789;153949;94458;56522;85861;49189;19048;27551;105712;146673;32068;94451;91510;78496;21485;35626;131471;84496;80983;64989;125935;156470;142151;135193;45382;21486;31437;81962;86955;151346;34498;119482;133662;58315;84994;72676;84525;84972;22212;56723;127549;76854;66770;109532;19049;128746;112072;111541;93361;88877;95693;87542;147148;139348;148520;85369;19050;19051;55681;136537;151008;31183;100976;156469;105141;137287;51104;73152;19052;128795;149039;135883;37145;38061;21487;139394;83513;93428;86320;35340;58838;101542;45572;37223;26938;123982;85574;34271;81222;66456;88502;84323;22923;58347;34817;90848;84781;96993;83902;61503;19053;106882;59027;124609;27622;146985;36766;35939;124224;36193;95512;85992;139641;141147;141512;133329;104983;90235;63397;87701;36920;135944;96060;144815;19353;45585;137216;136852;38967;111179;65975;36391;45573;19054;79567;50701;94693;141148;85893;105626;84324;19055;19056;66815;144826;122605;84070;19057;90337;53397;84325;61640;126667;146763;60056;27610;45586;84526;94263;57455;36857;103585;19058;57294;96709;19059;19060;72206;64744;118024;70966;63463;156370;36922;133121;97689;21488;92343;88513;62959;150168;125936;19061;38058;80840;66170;31082;85520;66583;100339;87386;91932;79402;108858;19062;82681;26939;103480;91911;127550;28317;90474;86388;19063;38805;124183;35341;104945;117465;153074;141549;104063;84527;90236;90902;132942;152859;22911;81223;100977;19064;28195;73049;37486;19065;90607;84413;37933;124047;97109;103860;88151;62649;153062;19066;21489;61676;87908;148537;19067;149489;154044;19068;19069;89015;58520;22518;19070;56080;69860;21490;146857;23771;21491;22007;65848;59314;56495;106288;23744;122989;99750;21492;131262;88673;94751;87387;106813;130183;84815;129426;79403;85758;96472;56527;139111;19071;125099;92344;22924;154199;145563;83556;109055;138784;87483;93429;61677;63070;56081;151971;59168;106737;64922;94214;102987;50351;109019;136021;101331;94903;104490;125839;19072;58316;25785;117492;79957;19073;96370;103909;22938;93987;56399;19074;128310;73552;136635;35442;102467;19075;24798;145193;66919;107045;91582;94419;95409;37051;85258;37437;109191;85521;61504;58473;84438;35056;50336;106857;19076;132350;93988;31831;84382;37516;19077;19078;77109;36848;143175;88152;88820;91933;19079;125663;86588;70866;93267;104984;89767;52038;135731;60134;87297;138128;69437;19080;22519;37792;85245;94527;21493;87702;128588;93934;144126;58423;66185;21494;36402;59748;97904;35057;84711;107046;103762;84712;19081;21648;21495;25942;135945;151005;118247;24686;19082;93498;119109;103861;74004;147872;56400;141318;21496;19083;153824;22008;157234;87178;85522;37934;62706;156324;148519;93211;131263;52707;83281;66966;129546;22018;96513;84484;152207;25592;157323;39426;139590;32148;19354;121447;84995;31832;19084;87832;123539;22888;29340;90742;129547;101381;103481;156031;19085;53266;134723;36617;19086;19087;50500;52956;153814;120973;24007;22925;40661;130632;146607;100706;59169;135194;144148;45009;140938;58839;106700;31438;144133;69507;101332;19088;108477;108431;87703;72850;66999;63434;58920;25718;88113;46791;106427;40958;19355;152570;130992;36281;19089;104612;133433;96994;111478;61766;57926;64886;91304;138071;118705;91375;85993;87704;83095;19090;21497;85862;19091;21498;48401;103461;21499;92574;19092;144188;93582;87748;19093;86859;78071;134257;128403;118942;19094;65849;22889;153813;157238;84555;133972;26092;122571;70263;25786;21500;124129;48360;103620;126487;72313;144122;19095;19096;108681;93989;86179;105451;132066;105026;126414;87662;119794;147848;82579;32069;103797;19097;59207;21501;139642;99556;58521;23850;139715;35564;156565;53347;110699;118497;103999;21502;86554;22503;143510;65068;111407;59086;41007;56169;36768;71961;36259;82891;83282;58021;47699;108508;39579;85994;119701;19098;41047;117723;35058;58671;21503;93755;44429;88532;21504;57051;35342;140629;87513;87749;19099;83964;146845;87705;57144;125913;93552;33471;95513;19100;35354;148930;139395;87750;91477;140313;40508;100737;35696;19101;111657;141322;84044;87751;77884;19102;80538;36731;111090;51929;35343;144841;19103;60102;19104;39427;154316;36239;65850;148505;56763;134337;122572;117652;104491;86214;109229;52468;31109;21505;76987;19105;87298;90877;55915;39784;105259;64667;86589;43127;41948;53470;140473;84528;135604;104732;117511;19106;73553;19107;37254;110954;91840;111408;27814;19108;55396;38806;52698;59381;149267;21506;21591;106181;91491;46260;19109;95694;148534;108859;73442;81684;103718;86839;96061;72114;70517;22342;25051;26039;96118;138371;133589;102280;39428;111091;153822;45338;92345;79197;156403;88503;37377;86267;94127;62023;39867;96371;86180;50404;24886;122685;59853;21507;96119;127551;89808;74240;124789;37595;103346;48278;87299;107283;85995;21508;78114;130495;33906;19110;134467;129771;151624;83514;63366;25102;35458;152203;80238;19111;96120;19112;103954;90051;89768;39802;82892;85034;84182;37811;76177;86519;137439;36240;36941;33188;148147;69066;111722;50074;33938;36521;19113;21509;152126;117893;80352;19114;102940;35940;107127;128887;133434;23666;94346;102724;136853;106701;106858;51507;33857;19115;36459;57411;61589;84224;85338;138199;99325;96995;21510;83441;111180;128654;118961;53217;108315;141149;66508;19116;21511;96121;136070;150311;64652;119273;110304;72194;21512;36968;19117;101827;150230;58757;60115;84973;90780;110504;154659;33242;133435;42298;87270;34724;45574;51670;93781;22140;61678;90237;153812;43879;84653;154198;26940;102508;122043;117304;65003;128043;44922;50320;26093;91526;81619;128439;79734;111479;151002;35941;84782;146605;92929;131795;77885;68990;37124;136443;92505;63435;36428;137127;31376;156199;19118;80453;37213;38031;19119;44390;127951;133436;92575;95586;94494;148931;71935;93990;19120;92652;118075;36637;83082;90238;91841;84713;84601;152150;19121;37430;80924;144446;19122;52986;35641;19123;152071;77679;83942;152206;71072;23667;103666;157235;19356;19124;151010;70264;19125;139112;90239;51965;19126;136386;110700;140314;100829;101828;65542;146285;108781;60135;25787;55991;19127;38151;74019;84326;137793;128493;19128;34391;31377;110916;36683;66738;56773;84714;61679;19129;51930;136689;152125;93943;60089;61505;105503;65851;86590;137168;104348;92395;37015;99557;123644;142625;35714;29811;24770;36194;52575;144167;83943;36912;141191;153983;83752;56187;19130;84383;78663;81685;96222;112187;137889;82482;119636;148517;144823;56496;94904;151003;122658;150002;19131;21513;35037;72155;110970;156323;139218;76269;71166;37427;136444;54624;152857;62979;23851;21790;90052;25052;77241;21514;25807;78104;27588;152748;132943;84783;135000;77753;86305;152204;56497;19132;22455;134258;121087;21515;57489;85996;79320;121406;156474;64646;136303;144179;84715;82753;46792;99558;96821;85997;133630;19133;84327;35344;151377;19134;19135;21516;96473;80559;153820;125937;108625;19136;127952;51194;91934;91700;106995;63589;35295;136387;64887;84282;87165;38113;103862;40496;85863;106599;21517;91527;87543;144962;92346;89854;119274;34416;139886;123144;49109;85894;132351;104228;55682;66875;37677;84529;56498;104198;58022;109289;103482;62168;34019;83283;37923;65560;135110;119058;19137;56816;19138;19140;19139;121407;22912;127953;21518;80577;25427;25967;128589;157935;71239;25943;39408;72128;83389;21519;99497;88153;103442;138129;103483;91028;106996;100340;39376;58023;56499;85234;85730;73153;123645;87544;34189;19141;36298;103827;36377;80454;87388;34770;65852;79301;87228;65937;117442;61566;27601;89063;104733;142883;59104;128137;64923;61402;81534;143172;108704;81010;101784;95309;111224;55847;99193;22118;133245;21520;54825;51824;19142;108353;71452;125441;92833;88821;105363;57612;19143;85319;43847;49770;127827;105339;122140;19144;61388;25306;31378;59382;104266;31032;86591;94347;118706;19357;127552;121219;82893;148525;62422;99647;38728;90338;37850;68899;126806;25915;97811;92963;87791;77189;154926;21521;64859;87935;55397;95587;36878;121274;88504;62887;47131;123054;45348;49731;90608;59283;118707;21522;90291;158521;102988;62612;40396;70485;106859;40760;19145;51420;117724;25749;158073;93145;64875;48333;87615;93023;139113;104000;102691;95514;70241;90555;83442;21523;69293;27552;150218;135732;37706;106238;54952;143467;52563;33375;22105;135111;22241;91935;84530;159073;111480;80898;21524;36265;96620;71088;22520;139114;156022;133380;106216;21525;148865;86999;110934;86840;139716;91066;146616;45040;122413;19146;19147;38678;110431;67250;156764;107112;64693;66777;57355;135733;82894;91936;149013;56204;56528;109750;128440;89897;57704;95909;19148;54826;99259;86841;96164;92742;22490;151007;132429;49687;106738;51446;50337;50075;37040;96514;57740;112073;87000;70265;24799;81154;97690;56082;91937;122686;56500;30030;21526;92834;31156;134190;95515;96372;19149;77754;96743;62457;22350;70932;21527;54625;124790;66264;69219;140738;84011;36790;76364;87229;101829;91938;19150;96122;91939;111658;103828;95588;105260;106600;19358;128138;140630;86434;56523;93640;111020;88585;22491;127553;84328;73974;133537;43177;48334;93944;57463;91940;152491;103843;87752;136304;35910;157332;21528;19151;148840;31304;88731;122086;36433;129427;104985;152571;56478;21529;22006;23852;111409;89898;80455;119021;91949;126668;43038;19152;22343;158990;64422;86389;35771;57553;85925;95589;43095;139349;65853;85776;96223;103484;59551;144582;21530;73050;23853;121336;108739;84255;39320;58202;57911;67251;82631;42060;37275;19153;148140;102941;62208;86592;21679;62571;32070;119110;19154;118248;85429;100498;62807;45448;102725;19155;35428;131173;87001;127954;76630;19156;33493;19157;85833;119637;23761;129548;36450;101188;22141;56988;103844;50980;132352;128404;19158;57741;131296;22504;65624;47155;127554;56588;40979;19159;139935;157240;90556;61744;21531;34089;79079;86268;85485;19160;37043;147857;21532;140679;139557;56900;92713;19161;111142;25103;23953;104761;19162;62539;87514;137169;93024;84716;19163;72156;66341;148928;36232;140680;73975;111318;117443;147152;137692;61375;122291;36224;131149;153893;133973;85486;96062;56674;86860;19164;38763;29952;97251;76103;31184;63050;19165;21533;47601;25982;110466;85523;50815;35911;88745;91912;25018;84717;34840;21534;28351;139643;126082;90521;24826;19359;151407;137693;19166;34771;51966;90781;19168;19167;37101;51508;111410;29953;87616;85370;108626;21535;67194;145488;19169;148704;19170;151001;104367;97691;36385;82483;59700;59583;94084;141790;32071;111659;32350;69096;21536;154356;21537;94459;152668;85957;117305;97457;23954;84329;93073;63144;100365;100861;153825;64860;106612;153181;80039;57742;127555;63160;131109;135500;39496;32388;140739;26978;85562;33420;34508;59184;25207;127556;139717;104508;127557;58138;32128;45615;21538;72808;19171;94905;19172;21539;148514;19173;89049;89710;82064;22456;119512;124287;50338;35990;19174;22041;87515;97692;150308;19175;21540;97812;19176;29866;91583;64653;104564;149360;138583;19177;138200;81559;90292;33907;63379;54983;81901;92964;19178;21541;44661;129549;86181;153872;19179;89711;19180;102051;49167;90699;69546;27641;86593;138372;78730;26213;148527;119880;104509;21756;95394;51857;76780;132880;19181;149464;62553;119317;70777;72157;35286;80925;136942;117444;36897;89728;31327;103109;106960;93991;140238;118478;57705;29690;119795;100314;21542;19182;19183;87002;77837;108316;124210;152070;85246;37892;31833;145469;148702;97035;88154;34382;34310;21543;77235;38706;139740;144625;32470;156053;131297;36697;150408;85731;86842;73154;83799;38764;59749;157413;46767;149493;19184;130496;36760;25788;34247;22213;22492;43128;46338;66876;138130;96123;64668;130441;150105;69499;129840;36392;77401;55518;59828;19185;19186;144146;58024;37141;79958;111181;57883;30088;21544;123540;117445;22521;52987;19187;83390;32072;111092;137738;112074;29732;57743;89729;23854;38133;85320;31693;121220;157867;44602;28196;91913;88505;127558;51387;59750;76487;139832;152072;73322;92347;21545;28167;125750;131264;29691;83944;112198;22304;37817;14340;14280;99994;102917;104970;104971;119307;126754;125632;126647;128078;128415;17984;12613;12614;12617;15419;35700;149509;12014;20247;50510;50509;63223;77746;44873;49998;49997;58088;81182;66986;21580;63203;88696;88697;150427;24898;157327;10077;10078;10497;11923;10369;10699;21247;11455;10405;11311;11395;25402;20804;26193;31682;35088;38718;45528;52026;15931;52025;52024;76788;76786;12099;21644;20337;138853;20221;11160;11579;10080;10079;10082;10081;34324;10083;11565;101547;50811;10648;18367;11779;11614;11539;10084;10085;10086;10467;10692;10087;11566;10088;65078;10089;10488;14709;12080;12037;11392;10565;11391;10090;10653;53847;42149;11112;10929;19782;12056;36051;11045;11371;32373;32375;32374;10091;10821;19300;57272;10092;19303;11711;19520;19383;48351;48350;15479;25553;25548;48352;18302;58205;57793;57794;57889;11905;33546;22272;21017;65767;66294;66933;67171;12278;90255;65766;19512;20015;15624;11115;11876;12030;21019;16185;19419;21040;14338;11810;21018;12081;11211;10093;11998;10420;21339;19400;21168;150079;21245;34348;34488;20959;83465;11670;21619;21779;36143;21780;21036;18622;21324;36144;11037;14441;14442;14443;14444;14445;14446;14447;14448;14449;14450;14451;14452;14453;14454;14455;14456;14457;14458;14459;14460;14461;14462;14463;14464;14465;14466;14467;14468;14469;14470;14471;14472;14473;14475;14474;14476;14477;14479;14478;14481;14480;14482;14483;14484;14485;14486;14487;14488;14489;14490;14491;14492;14493;14494;14495;14496;14497;14498;14499;14500;14501;14503;14502;14505;14504;14506;14507;14508;14509;14510;14511;14512;14513;14514;14515;14516;14517;14518;14520;14519;14522;14521;14523;14524;14526;14525;14527;14528;14529;14530;14531;14532;14533;14534;14536;14535;14537;14538;14539;14540;14541;14542;14543;14544;14545;14546;14548;14547;14550;14549;14551;14552;14553;14554;14555;14556;14558;14557;14560;14559;14562;14561;14563;14564;14566;14565;14568;14567;14569;14570;14571;14572;14573;14574;14575;14576;14577;14578;14579;14580;14581;14582;14648;14583;14649;14650;14651;14652;14653;14662;14661;14666;14669;14675;14694;14677;14705;14710;14725;14746;14745;14747;14767;14766;14774;14779;14780;14781;14790;14791;14797;14798;14799;14809;14811;14821;15406;15407;15418;15424;15429;15431;15444;15445;15446;15447;15448;15472;15473;15476;15511;15512;15513;15526;15527;15538;15539;15545;15558;15559;15560;15567;15568;15579;15580;15581;15582;15587;15590;15606;15607;15610;15608;15612;15619;15634;15644;15645;15646;15647;15648;15649;15691;15692;15693;15694;15695;15696;15723;15724;15725;15754;15736;15768;15776;15777;15792;15818;15826;15833;15827;15837;15840;15843;15846;15903;15906;15921;15913;15922;15933;15954;15955;15969;15971;15989;15993;15997;16001;16002;16003;16004;16005;16006;16011;16010;16021;16034;16067;16066;16075;16068;16392;16393;16395;16394;16396;16397;16399;16398;16400;16401;16402;16403;16404;16405;16406;16407;16408;16409;16410;16411;16412;16413;16415;16414;16417;16416;16419;16418;16420;16421;16423;16422;16424;16425;16426;16427;16428;16429;16431;16430;16433;16432;16434;16435;16436;16437;16439;16438;16441;16440;16442;16443;16444;16445;16447;16446;16448;16449;16450;16451;16452;16453;16459;16458;16460;16471;17127;16472;17128;17138;17144;17145;17153;17164;17233;17206;17234;17235;17236;17248;17249;17250;17251;17261;17262;17263;17274;17275;17283;17276;17287;17284;17288;17317;17318;17319;17330;17344;17345;17353;17576;17580;17579;17581;17582;17615;17588;17616;17619;17620;17632;17642;17643;17665;17666;17667;17675;17676;17977;17992;17978;17993;18001;18013;18031;18043;18044;18045;18060;18061;18081;18088;18089;18102;18090;18116;18121;18126;18125;18127;18146;18144;18145;18159;18168;18169;18170;18228;18229;18230;18231;18232;18233;18234;18252;18269;18270;18271;18272;18338;18379;18380;18381;18382;18383;18384;18406;18425;18426;18427;18445;18448;18464;18465;18466;18468;18467;18481;18520;18529;18530;18531;18538;18544;18545;18547;18548;18549;18564;18590;18605;18606;18607;18633;18634;18647;18656;18666;18668;18669;18686;19199;19200;19210;19211;19212;19222;19231;19281;19282;19323;19324;19325;19326;19327;19328;19329;19330;19360;19361;19364;19366;19388;19389;19439;19440;19441;19442;19472;19484;19485;19533;19534;19535;19536;19537;19538;19572;19573;19574;19575;19576;19577;19578;19669;19670;19671;19686;19687;19741;19742;19810;19811;19812;19813;19814;19815;19816;19817;19818;19819;19820;19821;19822;19849;19974;19975;19976;19977;19978;19979;20030;20031;20032;20033;20034;20035;20036;20079;20080;20081;20102;20103;20115;20116;20117;20118;21275;20140;20142;20153;20154;20155;20156;20157;20195;20196;20197;20198;20233;20234;20235;20236;20244;20261;20262;20263;20264;20265;20266;20267;20281;20280;20313;20312;20314;20315;20327;20328;20330;20329;20352;20353;20355;20354;20356;20357;20371;20358;20411;20412;20413;20414;20415;20416;20418;20417;20419;20731;20798;20814;20815;20822;20823;20828;20829;20864;20873;20874;20894;20895;20896;20921;20934;20935;20938;20953;20962;20979;20980;20999;21000;21001;21021;21022;21044;21045;21046;21047;21048;21084;21085;21094;21095;21096;21097;21124;21125;21126;21127;21129;21128;21148;21147;21160;21166;21194;21195;21196;21197;21198;21199;21231;21254;21255;21256;21276;21277;21278;21279;21297;21298;21299;21315;21316;21317;21318;21347;21319;21348;21349;21350;21351;21352;21353;21354;21578;21355;21614;21579;21615;21663;21665;21664;21671;21666;21667;21680;21681;21702;21703;21704;21706;21705;21707;21708;21709;21710;21712;21711;21732;21734;21743;21742;21750;21758;21773;21759;21774;21775;21908;21791;22010;22009;22011;22012;22080;22083;22106;22107;22108;22119;22120;22142;22143;22144;22145;22146;22147;22148;22165;22166;22167;22168;22169;22171;22199;22200;22214;22215;22216;22217;22218;22242;22283;22284;22285;22286;22287;22288;22289;22290;22323;22324;22325;22326;22327;22351;22352;22353;22354;22355;22356;22429;22457;22458;22459;22460;22464;22469;22470;22471;22505;22506;22522;22890;22891;22892;22893;22894;22920;22913;22914;22915;22928;22929;22930;22939;23626;23668;23670;23669;23671;23672;23673;23674;23705;23675;23706;23707;23708;23709;23710;23725;23726;23727;23728;23729;23730;23745;23746;23747;23762;23795;23796;23855;23857;23856;23858;23859;23860;23861;23862;23863;23864;23865;23866;23867;23873;23874;23955;23956;23957;23958;23990;23991;23992;24008;24203;24205;24204;24206;24207;24209;24208;24249;24210;24250;24251;24252;24253;24254;24255;24256;24257;24258;24308;24309;24310;24311;24312;24313;24350;24351;24352;24353;24362;24367;24368;24369;24721;24722;24731;24732;24749;24750;24751;24772;24771;24773;24777;24800;24801;24802;24828;24829;24830;24839;24840;24841;24866;24867;24868;24869;24887;24888;24889;24929;24930;24931;24932;24933;24934;24935;24936;24937;24938;25019;25020;25053;25054;25055;25056;25057;25058;25059;25060;25104;25105;25106;25107;25108;25109;25110;25111;25131;25132;25133;25155;25154;25160;25184;25185;25186;25187;25188;25208;25209;25235;25236;25262;25288;25263;25340;25341;25361;25360;25382;25383;25384;25438;25452;25453;25474;25534;25561;25562;25593;25594;25641;25660;25661;25680;25665;25719;25789;25790;25791;25792;25793;25809;25808;25810;25866;25867;25869;25868;25870;25871;25872;25888;25873;25916;25917;25918;25920;25919;25921;25944;26040;26042;26041;26043;26094;26095;26097;26096;26098;26099;26100;26101;26102;26104;26103;26214;26117;26215;26216;26941;26943;26942;26945;26944;26946;26947;26980;26979;27045;27046;27047;27048;27049;27050;27051;27068;27517;27516;27553;27518;27554;27555;27556;27557;27558;27559;27579;27580;27592;27593;27611;27612;27613;27815;27823;27816;27824;27825;27826;27827;27847;27846;27848;28197;28198;28199;28217;28218;28219;28220;28260;28261;28263;28262;28264;28265;28266;28267;28318;28319;28320;28321;28322;28323;29231;29232;29290;29291;29292;29293;29294;29295;29296;29297;29716;29717;29733;29734;29812;29813;29814;29815;29816;29817;29818;29819;29820;29821;29905;29822;29907;29906;29908;29909;30031;29910;30032;30033;30089;30116;30117;30118;30119;30120;30128;30242;30135;30136;30137;30138;30139;30243;30244;31033;31083;31034;31084;31085;31157;31110;31158;31294;31295;31328;31329;31330;31380;31379;31381;31382;31383;31384;31385;31386;31387;31439;31440;31441;31442;31443;31444;31445;31446;31447;31593;31594;31611;31612;31613;31614;31634;31635;31636;31671;31672;31753;31752;31835;31834;31836;31837;31838;31955;31956;31957;31958;31959;31960;31961;31962;32009;32010;32011;32012;32014;32013;32015;32016;32017;32045;32046;32073;32074;32075;32111;32149;32150;32151;32152;32153;32208;32209;32210;32300;32301;32302;32303;32304;32351;32352;32353;32415;32417;32416;32450;32418;32491;32490;33084;33085;33118;33189;33202;33203;33243;33244;33246;33245;33265;33421;33422;33460;33461;33472;33473;33474;33494;33509;33556;33557;33558;33779;33780;33781;33782;33831;33832;33834;33833;33835;33836;33853;33854;33855;33858;33861;33891;34090;34091;34092;34093;34104;34105;34114;34248;34115;34251;34250;34259;34258;34272;34273;34297;34298;34299;34365;34678;34383;34733;34689;34734;34735;35018;34787;35019;35020;35021;35022;35023;35024;35059;35084;35085;35086;35100;35101;35102;35107;35108;35188;35189;35244;35257;35268;35269;35270;35271;35345;35346;35347;35348;35349;35350;35355;35356;35379;35380;35406;35432;35443;35367;35444;35614;35673;35674;35675;35731;35732;35791;35792;35793;35794;35795;35796;35797;35798;35799;35800;35809;35810;35811;35812;35813;35814;35815;35816;35817;35819;35818;35903;35904;35905;35912;35916;35917;35929;35942;35943;35954;35964;35969;35985;36002;36001;36013;36003;36027;36048;36055;36078;36085;36086;36092;36093;36094;36095;36096;36137;36138;36140;36139;36157;36158;36176;36195;36196;36197;36198;38161;38677;38883;38884;38885;38886;38887;38909;38920;38944;39561;39565;39571;39570;39595;39580;39614;39596;39776;39775;39778;39777;39780;39779;39781;39782;39848;39797;39868;39869;39870;40462;40463;40519;40520;40630;40631;40632;40633;40634;40635;40879;40880;40911;40912;40913;40914;40915;40916;40917;40918;40919;40959;40960;40961;40962;40963;40964;41022;41023;41637;42197;42214;42415;42239;42913;42834;42914;42915;42916;42968;43378;44890;44891;44892;44893;44894;44896;44895;44897;44898;44971;46768;46769;46770;46771;46772;46773;46774;46775;46776;46777;46778;46779;46793;46794;46804;46805;46806;46807;46808;46809;47016;49098;49115;49125;49124;49127;49636;49637;49732;49126;49771;50605;51349;51416;51532;51533;51534;51535;51536;51537;51657;51658;56425;56426;56445;56446;56458;56459;56460;56502;56501;56503;56524;56549;56589;56590;56504;56591;56593;56592;56594;56595;56625;56635;56626;56658;56660;56659;56686;56807;56808;56901;56724;56902;56903;56904;56906;56905;56908;56907;57433;57446;57456;57630;57631;57648;57649;57650;57651;57652;57653;57654;57655;57656;57721;57722;57723;57744;57745;58025;58081;58099;58100;58101;58102;58139;58174;58211;58175;58212;58213;58214;58216;58215;58217;58218;58219;58220;58221;58222;58378;58379;58380;58381;58382;59610;59612;59611;59613;59614;59615;59616;59617;59618;59620;59619;59622;59621;59624;59623;59625;59626;59627;59628;59629;59630;59632;59631;59633;59634;59645;59646;59647;59648;59650;59649;59651;59667;59668;59669;59670;59671;59672;59673;59674;59675;59676;59678;59677;59679;59701;59702;59703;59704;59680;59705;59706;59707;59708;59709;59894;59893;59895;59896;59897;59898;59899;59900;59901;59902;61540;61542;61541;61543;61544;61545;62235;62236;61783;62237;62286;62287;62288;62289;62300;62299;62302;62301;62342;62343;62345;62344;62359;62360;62362;62361;62363;62364;62379;62380;62631;62383;62632;62633;62634;62650;62651;62652;62867;63436;63437;63402;63438;63439;63440;63441;65862;67252;69438;69453;69464;69500;69454;69508;69538;69539;69547;69850;69861;69898;69889;69899;69900;70084;70085;69901;70109;70110;70111;70112;70129;70130;70131;70160;70161;70182;70184;70307;70308;70183;70309;70310;70311;70324;70380;70381;70382;70486;70487;70647;70648;70650;70649;70651;70673;70674;70675;70676;70677;70752;70778;70753;70835;70779;70836;70867;70868;70869;70959;70995;70996;70997;71073;71089;71090;71119;71120;71121;71122;71123;71124;71167;71168;71169;71170;71240;71258;71259;71286;71453;71454;71486;71487;71488;71628;71507;71762;71801;71809;71810;71812;71811;71906;71907;72016;72017;72032;72033;72051;72052;72053;72054;72071;72072;72073;72074;72075;72076;72077;72079;72078;74283;72080;72129;72130;72138;72158;72159;72207;72208;72254;72255;72256;72314;72139;72361;72383;72384;72385;72409;72411;72410;72413;72414;72418;72452;72453;72549;72613;72634;72633;72635;72636;72637;72638;72640;72639;72718;72755;72756;72851;72894;72996;72997;73127;73219;73220;73390;73391;73392;73393;73394;73406;73407;73849;73858;73859;73860;73861;73958;74051;74028;74052;74053;74054;74055;74056;74057;74058;74098;74060;74059;74061;74062;74064;74063;74065;74066;74067;74099;74234;74171;74258;74259;74319;74260;74320;74371;74372;74445;76061;76062;82003;76063;76064;76066;76065;82004;76084;76154;76178;76179;76180;76224;76225;76226;76270;76227;76272;76271;76273;76287;76288;76304;76305;76330;76331;76397;76434;76544;76303;76545;76864;76996;77110;77112;77190;77212;77213;77234;77452;77453;77454;77456;77455;77457;77458;77459;77460;77461;77462;77470;77467;77512;77471;77773;77548;77774;77775;77776;78059;77886;78060;78384;78879;78880;78881;79266;79080;79415;79404;79416;79417;79609;79418;79811;79812;79813;79814;79844;79959;79960;79961;79963;79962;79964;79965;79966;79967;79968;79969;79970;79971;79972;79973;79974;79975;79976;79977;79978;79979;79980;79981;79982;80109;80040;80209;80210;80239;80240;80241;80242;80243;80244;80262;80245;80264;80263;80265;80266;80267;80268;80269;80270;80271;80272;80273;80328;81224;81225;81226;81227;81228;81229;81230;81231;81232;81368;81369;81396;81370;81535;81686;81536;81688;81687;81690;81689;82006;82005;82007;82008;82009;82010;82011;82314;82732;82632;82733;82734;82735;84071;83443;83911;83912;84072;84315;84330;84331;84531;84332;84556;84602;84603;84604;84605;84606;84607;84654;86081;86082;84718;84719;86084;86083;86085;86086;86087;86088;84935;84863;84974;86089;85430;85431;86132;86133;86134;86135;86136;86137;86435;91735;86687;86688;86690;86689;86691;86692;86693;86701;87484;87485;87516;86908;87545;87546;87706;87707;87708;87709;87710;87711;87712;87713;88391;87985;88393;88392;88586;88587;103586;88822;89713;89712;89809;89810;89811;89899;89901;89900;89903;89902;89905;89906;89904;90053;90339;89907;90340;90380;90743;90744;90849;91176;91376;91378;91377;91478;91379;91479;91480;91481;91638;103587;91701;91703;91704;91702;91842;91844;91843;91845;91846;91847;91862;91864;91863;91983;91982;92348;92042;92350;92349;92351;92478;92479;92480;92482;92481;92483;92484;92486;92485;92653;92852;93698;93697;93902;93903;93945;93946;93992;93993;94085;93994;94420;94422;94460;94421;94461;94594;94595;94889;94890;94891;94892;94893;94936;95018;95019;95020;95021;95266;95267;95268;95269;95270;95271;95420;95421;95516;95517;95518;95519;95520;95521;95522;95523;95524;95525;95526;95527;95528;95547;95548;95602;95603;95604;95605;95636;95637;95638;95639;95640;95641;95642;95696;95695;95697;95698;95699;95735;95736;95737;95738;95739;95740;95741;95742;95743;95815;95817;95816;96124;96125;96126;96127;96128;96224;96225;96226;96227;96228;96229;96230;96231;96232;96233;96234;96235;96236;96237;96238;96239;96240;96242;96241;96244;96243;96245;96276;96373;96398;96399;96413;96414;96415;96416;96417;96418;96419;96420;96421;96422;96423;96424;96425;96474;96426;96475;96515;96516;96541;96543;96542;96544;96575;96576;96640;96641;96642;96643;96644;96683;96684;96686;96685;96687;96688;96689;96690;96710;96691;96744;96745;96747;96746;96749;96748;96786;96787;96853;96852;96854;96855;96856;96857;96858;96859;96860;96914;96861;96916;96915;96996;97092;97111;97110;97112;97183;97184;97252;97253;97254;97255;97256;97257;97258;97259;97260;97261;97262;97263;97265;97264;97267;97266;97268;97269;97270;97271;97272;97273;97343;97344;97813;97814;97815;99011;99012;99013;99014;99274;99275;99276;100015;99699;100016;100017;100018;100082;100083;100084;100085;100262;100263;100443;100444;100445;100446;100523;100628;100629;100630;100647;100648;100649;100650;100651;100652;100653;100654;100655;100656;100657;100942;100675;100943;100944;100945;100946;101016;101017;101018;101019;101020;101021;101073;101074;101075;101333;101248;101334;101335;101336;101337;101338;101339;101340;101342;101341;101343;101344;101345;101924;102531;102532;102616;102617;102618;102619;102620;102798;102799;102942;103271;103270;103272;103273;103274;103275;103276;103277;103278;103279;103280;103282;103281;103443;103444;103446;103445;103447;103448;103449;103450;103463;103462;103464;103485;103486;103719;103720;103721;103722;103723;103725;103724;103727;103726;103846;103845;103847;103848;103849;103850;103851;103910;103911;103912;103913;104064;104066;104067;104068;104065;104069;104070;104229;104231;104230;104232;104233;104510;104492;104512;104511;104513;104514;104515;104516;104517;104518;104519;104520;104694;104695;104697;105261;105262;104696;105263;105264;105627;105628;105629;105630;105631;105632;105634;105633;105635;105755;105756;105666;105757;106038;106039;106087;106116;106117;106428;106429;106739;106883;106884;106885;106886;106887;107178;107200;107201;107284;108432;108317;108433;108434;108435;108525;108526;108627;108628;108820;108821;108822;108924;108925;108926;108927;108928;108929;108930;108931;109007;109056;109097;109098;109099;109230;109231;109232;109233;109234;109235;109290;109533;109534;109535;109627;109806;109930;109974;109975;109976;110174;110175;110176;110212;110255;110256;110522;110524;110523;110525;110614;110615;110616;110677;110676;111143;111225;111412;111411;112075;112076;112077;112078;117967;117968;117969;117894;118505;118507;118506;118509;118508;118510;118845;118846;118847;118848;124211;124212;124213;124214;124215;119131;119130;119133;119132;119134;119160;119161;119162;119164;119163;119165;119275;119276;119319;119318;119320;119321;119322;119323;119483;119703;119702;119704;119852;119944;119945;122729;122730;122731;122732;122733;122734;122735;122831;122736;122833;122832;122835;122834;122836;122937;122990;123423;123424;123425;123426;123427;123428;123429;123575;123576;123577;123578;123579;123580;123582;123581;123696;123842;123983;123984;123985;124070;124071;124072;124130;124131;124132;124225;124226;124227;124228;124288;124289;127559;127560;127561;125751;127562;127563;127955;127956;127957;127958;127959;127960;127961;127962;127963;127964;127965;127966;127968;127967;127969;127970;127971;127972;127974;127973;128441;128442;128443;128444;128590;128591;128592;128593;128595;128594;128596;128597;130329;130633;130634;130635;130636;131265;131266;131268;131267;134468;134469;134470;134471;134472;134473;134474;134586;134475;134587;134588;134589;134590;134591;134592;134593;134594;134595;134596;134597;134598;134599;134600;134601;134602;134603;134604;134605;134606;134608;134607;134610;134609;134641;134640;134642;134643;134724;134725;134726;134727;134728;134730;134731;134732;134729;134776;134924;134925;134775;134926;134927;134928;134929;134930;134964;134965;134966;134967;134968;134969;135017;135018;135019;135020;135021;135112;135114;135113;135115;135116;135195;135216;135426;135427;135946;135947;135948;135949;136214;136213;136216;136215;136538;136539;136540;136541;136542;136636;136637;136638;136639;136640;136642;136641;137288;136643;137440;137383;137441;137442;137444;137443;137446;137445;137447;137448;137449;137450;137451;137452;137453;137454;137455;137456;137457;137458;137459;137460;138924;138925;138926;138927;138928;138929;138930;138931;138932;138933;138934;138935;138936;138937;138938;138939;138940;138941;138942;138943;138944;138945;138946;138947;138948;138949;138950;138951;138952;138953;138955;138954;138956;138957;138958;138959;138960;138961;138963;138962;138964;138965;138966;138968;138967;138969;138970;138971;138972;138973;138974;139115;139116;139118;139117;139119;139120;139122;139121;139123;139269;139270;139271;139272;139273;139274;139437;139438;139439;139440;139441;139718;139833;139834;139887;139888;139889;139890;139891;139892;139937;139936;140067;140068;140069;140070;140071;140072;140315;140316;140474;140559;140560;140561;140562;140563;140564;140565;140566;140567;141063;141064;141065;141066;141067;141068;141505;141531;141735;141669;141701;141732;141837;142010;142325;142250;142239;142272;142241;142854;142848;142843;142834;142826;142833;142850;142846;142844;142923;142933;142930;142939;142932;143524;143491;143494;143531;143493;143495;143528;143503;144597;144590;144603;144591;144598;144592;144593;144602;144588;144601;144600;144589;150006;144610;144614;144821;144817;144820;144607;144832;144865;144833;144864;144867;144922;144923;145256;145341;145380;145327;145378;145296;145282;145321;145303;145333;145369;145425;145432;145428;145426;145424;145429;145433;145436;145430;145473;145489;145477;145524;145526;145561;145566;145564;145711;145758;148268;148273;148267;148271;149221;149216;149222;149220;149228;149217;149215;149223;149226;149233;149277;150016;150011;150007;150000;150025;150022;150001;150013;150020;150023;150009;150004;150021;157035;156966;156996;156979;157007;156978;156999;156990;156991;156993;157011;157029;156994;157000;157036;157038;157032;156977;157026;157010;157020;157003;157043;157009;156987;157012;157042;157028;157018;156968;156995;156984;157005;157041;156970;157030;157037;156971;157021;156974;157017;157015;156997;157014;156975;157006;156998;156967;157002;157031;157024;157033;157008;156988;157004;157019;156973;156992;156969;156976;157001;156980;156972;156985;156986;157022;157027;157016;157034;156983;156982;157025;157023;157039;156989;154715;154716;157040;156981;157013;157140;157266;157241;158198;34312;24017;18220;159007;20738;20736;24746;26927;19314;42963;25338;16225;42964;100356;34399;109405;117459;119240;117596;125631;130273;139748;35468;10094;65822;80306;102494;110270;100357;80305;65702;105374;105375;80202;154879;80201;158560;158888;152483;158891;158889;158890;152484;51370;44675;53336;110612;110192;39330;128523;55929;58846;66804;82902;90681;99522;80949;88022;96624;76591;84810;70482;86481;103962;119559;58089;57803;58090;57804;57805;77556;92462;94160;92463;92464;94161;38701;55930;55931;91715;53876;17245;10095;45405;12288;21188;18627;155737;66964;10408;11736;11893;18371;19605;15975;20110;31420;10946;11716;20177;20178;20179;66963;82566;105389;157066;102174;157069;157068;20344;18615;21325;157067;100620;18194;10690;19384;100621;18433;40668;34197;34742;52589;52657;77761;52975;53569;53879;54647;55460;54989;55765;55959;56023;56125;56230;56241;56391;56650;56779;56920;57468;57288;57666;57876;57974;58206;58328;58342;58434;58536;58644;58954;59117;59255;35558;35689;39449;38154;38699;38791;59735;59958;61381;61462;61774;62518;62313;62519;62861;63063;63110;63232;63645;63468;65029;65097;65691;64813;66930;66813;67232;66556;69423;69139;39356;39492;39852;40778;70494;70273;70916;70923;71227;72167;71968;72616;72800;72939;73082;73419;73710;74008;74122;74434;76581;77184;77581;77861;77409;78475;78080;79141;79336;79578;79836;80485;41958;41000;42413;42798;81207;80951;81020;82534;81647;83136;83366;82825;84049;84342;84731;83745;85567;84667;84921;86209;85743;86380;86061;86852;87417;87206;86598;87245;88681;88956;88088;90194;89786;89685;44317;44587;45086;45610;46171;90542;90794;91716;91350;91128;91455;92791;92628;93476;93817;94136;94580;94676;95480;96828;99136;97724;99633;99995;100991;100679;47859;48383;46732;46850;47139;93315;47595;103421;101980;103648;102993;104434;103933;106350;105356;105152;106485;106682;106840;107220;109395;109899;110228;111383;117636;117429;117333;49237;49089;49285;118887;119097;118153;119558;119684;121514;122617;122246;131738;122853;124279;125371;124460;126753;125729;125952;127129;128328;127120;129848;128741;129054;131190;130275;130463;131022;132717;133053;131954;132097;50476;133848;50049;133954;134215;134701;135094;133465;135704;135917;136122;136348;135401;137635;137701;136743;137081;139001;139459;139695;140406;138449;140700;139794;141573;142209;142641;142719;144781;141194;142971;143471;146204;146060;146544;145071;148243;148487;146948;147754;51161;50977;51511;149412;148558;148848;148996;150430;150854;149900;151672;152189;151831;152928;152609;153255;153515;153630;153829;153931;154238;154706;155352;155867;156033;156462;156862;158051;157293;158500;52501;51872;158936;51921;53392;65723;42895;34196;42894;24710;24709;66272;136192;66271;45049;55734;52980;65925;71897;45048;20228;26196;20241;19767;56980;56713;66925;62315;56712;136193;66926;17656;15717;16195;16194;14237;15451;19234;19235;122114;119776;119777;124240;123419;123013;16265;20159;72757;123520;103513;103514;123796;119775;124173;123464;123463;81259;81260;103515;56819;66718;66719;33761;19752;16120;81258;18355;49977;66325;67020;67019;67018;67017;62412;16183;64471;77665;69477;58402;22003;25769;58401;58513;50689;50690;51815;50692;56385;62284;62283;50691;38971;38972;56634;62391;16175;35725;33141;10097;93028;85182;50695;56407;62416;86609;50693;50694;25084;62415;35726;59968;60047;38927;19228;16174;59734;59733;11500;11501;10099;10471;11436;15851;20248;19942;19943;27620;28293;11363;81703;158252;15517;12243;50304;55975;50305;117615;117616;12117;77115;77114;147193;22497;77113;10100;11602;59797;59798;14370;111351;67022;67023;67024;21306;25898;20223;18296;50307;50306;35360;35359;12210;10731;11642;24876;25950;40350;45543;58724;11913;35555;26015;16060;15927;26016;69033;69034;69032;69040;69039;69036;69038;69035;69037;78429;107056;33902;44318;19307;22181;22180;19501;10101;101111;107057;16162;20171;15604;18132;21164;15605;49119;35554;101112;22899;22900;61448;18133;61449;18135;18134;18136;24817;17650;58010;11617;18137;18138;11646;21081;22004;104410;87413;96797;87415;11745;19255;19755;21736;87414;18363;31191;19254;22902;19194;18400;17308;117886;21745;73980;110695;11979;12089;90313;76283;76284;72177;82849;72175;72178;52979;52978;56165;55552;55551;58387;22225;53641;58399;58398;49645;38792;90941;72176;90796;102431;66969;66849;71806;83030;19601;55550;76616;57862;43635;53857;58526;58527;67121;64475;44330;62204;39617;39616;124086;79233;121349;141251;141208;64474;64473;141362;58185;29725;65255;71889;76620;103787;99030;100868;102500;103788;103696;119501;71890;71891;76621;99729;99728;118038;133605;93079;118040;100870;125736;54999;71892;54998;99360;63265;65256;71886;71887;71888;55577;71885;55906;76463;55907;59055;55749;55748;47780;47779;25655;11520;93097;100869;76462;54628;12120;54627;11396;36128;152164;36129;69480;70453;78110;71499;78870;89938;104812;63523;65617;66358;69281;69282;69283;73806;64631;64632;73461;59718;70806;77054;97888;83815;91571;83993;85767;97552;62902;91972;91973;69424;83489;59717;69399;96270;51812;87211;57700;57699;66273;46676;57701;56651;52614;46675;70099;70101;70100;83036;90196;93844;95658;100159;109914;90197;58516;42879;101296;58515;101297;70147;79798;79799;79800;79801;77730;94933;70146;79802;78111;70145;89939;104813;74269;99591;74270;74268;70141;76357;70140;76509;76776;76054;96607;76055;22318;70171;23698;33771;43155;19707;19706;19607;19701;51850;51849;78628;55831;78512;88562;85626;89780;88563;96532;85627;102959;87172;83279;90099;96449;83278;83348;107094;81824;74253;74252;36141;155862;93811;97889;117704;96271;93812;58184;42832;44109;51200;52015;42800;10103;100461;111666;70172;71378;69323;69346;69322;10104;59330;61612;73460;73462;109917;50563;35930;109918;101299;84088;84089;56024;53621;62099;69195;76427;79719;81206;69983;53622;78514;84090;51369;78513;52654;51418;52655;128768;76769;133955;90545;124002;126826;76768;50539;50540;59684;72963;77020;72964;78079;50349;50541;90546;59683;86058;100963;81916;92540;103732;81918;81917;73094;81919;32055;29747;77022;77023;77024;77151;77152;77150;77025;77021;85802;85803;96721;96722;76390;73093;85804;35804;46239;46238;64633;76389;73463;53624;76913;88020;53623;88021;84194;44328;84196;84195;56166;111667;146806;150245;146807;106460;106461;97859;147923;11372;33095;45593;57536;20893;97860;33548;34694;25352;38832;46015;46677;49272;53532;58811;59851;66541;90251;69020;73639;72959;78090;76345;85181;84923;90150;91260;91222;103530;94654;90624;70118;20988;94673;27056;27054;55832;68962;69799;16890;85766;16889;16888;16887;16886;16885;16843;16790;16480;17115;17114;16697;16696;16694;16695;16591;17369;16564;16563;17370;16836;16835;17372;17371;16621;26217;16946;26218;16903;26219;16560;26221;26220;26222;26223;26224;16964;26225;26226;16913;17373;26227;16549;16550;16547;16548;16505;16504;16503;16502;16881;26228;16873;16872;16865;16864;16863;16862;17374;26229;17375;17376;16846;16845;17377;16842;16841;16830;16829;16810;16809;17378;17379;16804;16806;16803;16802;16799;17380;16798;16789;16787;16786;16780;16779;16777;16776;16774;16775;16773;16772;16769;16768;16759;16758;26230;26231;17126;17125;17124;17123;26232;17122;26233;17113;17079;17078;17077;17076;17075;17065;17064;17055;21616;17054;26234;16984;16983;26235;16729;16718;16715;26236;16714;16703;16676;16673;16671;16646;16645;16639;16644;16638;16632;26237;16606;16602;16601;26238;16961;16960;16959;16958;16957;26240;26239;26241;16930;26242;26243;16897;26118;26244;16896;16892;26245;26246;26247;26248;26249;26250;16567;26251;16553;26119;16535;16483;26252;17381;16869;26253;16857;16856;26254;16821;17382;17383;16820;16785;16784;16783;26255;26256;26257;26258;26259;26260;26261;17384;16756;17385;17386;16735;16750;17084;17085;17083;26262;26264;26263;26265;26266;17024;17023;17022;17020;17019;26267;16990;16989;16988;26268;26269;16981;16982;16972;16712;26270;16710;16707;16700;16686;16685;21130;18394;16681;26271;26272;16668;16667;16666;16650;16620;16619;26273;26274;16615;16614;16613;17387;26275;17388;26276;26277;26278;26279;16501;26280;16497;16481;26281;21131;26282;20830;26283;17086;17074;26284;26285;26286;26287;26288;26290;26289;26291;26292;26293;26294;21909;26295;21546;21102;26296;26297;16962;28268;26298;26299;26300;26301;26302;18395;26303;26304;21103;21547;18396;26305;21548;26306;26308;26307;26309;26310;26311;26312;20359;20199;20200;21910;22259;22260;26313;26314;26315;26316;21911;21649;26317;21549;26318;21650;22328;22329;26319;22261;21651;26320;21912;26321;26322;21913;26323;26120;26324;26325;26326;26327;26328;26329;26121;26330;26331;26332;39304;39305;33828;33829;26335;26122;26123;32451;32452;32453;33862;38679;33863;38680;38681;38729;38730;38731;36056;36057;36058;36059;36060;36061;41638;43129;43130;43131;49111;49112;49113;56825;56827;56826;56828;56829;56830;56831;56832;56833;56834;56835;72895;72896;79568;79569;79570;76067;16904;17051;16692;16691;16690;16949;16948;16945;16944;16943;16942;16941;16940;17389;17390;16902;16901;17392;17391;17393;17394;17395;17396;17397;17398;17399;26336;26337;26338;26339;26340;26341;17102;17101;17073;16765;16755;16752;16751;16738;16737;16721;26342;26343;26344;26345;16699;26346;16997;16996;16995;26347;26348;16974;16973;26349;26350;26351;26352;26353;26354;16653;26355;26356;26357;26358;16618;16617;26359;26360;26361;26362;26363;16900;26124;26125;26364;26365;26366;26367;26369;26368;16517;16516;26370;26371;26372;26374;26373;17111;26375;26376;26377;26378;26379;17053;26380;17052;17030;26381;26382;26126;26383;26127;26384;26385;26386;26387;16731;26389;26388;26390;26391;26392;26393;26394;26395;19539;26396;26397;26398;26399;26400;26401;26403;26402;26404;17400;26405;26406;26407;26408;26409;19540;26410;26411;26412;26413;26414;26415;26416;19541;26417;26419;26418;20037;26420;26421;20038;26422;26423;26424;26425;26426;26427;21760;21761;21762;26428;26429;21652;26430;26431;22057;26432;26433;26434;26435;36062;35066;36063;36064;51466;51467;40607;45413;45617;51468;56704;56705;53267;53268;56706;86115;86116;86117;17401;17402;17403;17404;17405;17406;17117;17116;17110;17109;17407;17107;17106;17099;17050;17027;17028;17026;17025;16709;16708;17408;16598;16597;16596;16595;16924;16905;16884;16880;16871;16559;16558;16557;16533;16532;16531;16530;16528;16529;16527;16526;16519;16518;16509;16510;16507;17121;17120;16850;16844;16840;16839;26436;16788;16760;16778;26437;16757;26438;26439;16992;17409;26440;26441;16970;26442;16698;16689;16663;17410;26443;16657;16628;26444;26445;16584;26446;16566;26447;18397;17411;16938;26448;26449;16934;26450;26451;16933;17412;26452;26453;16853;16852;17413;26454;26455;16521;26456;26457;26458;26459;26460;26461;26462;26463;26464;16554;16525;16524;16523;16522;26465;26466;16515;16868;16858;16834;16833;26467;26468;16771;26469;16764;16754;16736;17105;17104;17103;17100;26470;17048;26471;16991;16975;26472;16711;26473;26474;16684;16683;16682;16654;26475;16616;16594;16579;26476;16578;16577;16576;16954;16953;16952;16951;26477;16932;16947;16925;16931;16915;16914;16895;16883;16882;17414;26478;26479;16565;16556;16555;16551;26480;26481;26482;26483;26484;26485;16508;26486;17108;16847;18398;16827;26487;18399;26488;26489;16742;16713;26490;26491;26492;17032;17001;16978;26493;16977;16976;26494;16963;16693;16956;26495;16675;16674;16672;16670;16655;26496;16630;16634;16629;16627;26497;17415;26498;16605;16604;26499;16603;26500;17416;16580;17417;26501;16575;16574;16573;26502;16570;16569;17418;17419;16929;16928;16927;16926;17420;26503;26504;26505;26506;16911;16910;16909;16908;26507;16907;16906;16899;16898;26508;16877;16891;16876;16875;16874;26509;26510;26511;16867;16854;16855;26512;16732;16726;16725;56836;56837;56838;56839;22895;16724;17421;16704;26513;26514;26516;26515;26517;26518;16656;26519;26520;16607;16590;17422;17423;17424;16971;20331;26522;26521;26523;16912;26128;26524;26525;22109;26526;26527;21653;26528;26529;16544;16543;26530;26531;19362;26532;26533;17425;26534;18608;26535;20801;19363;20803;20799;19486;26536;22866;26537;26538;26539;26540;20201;20202;20203;26541;26542;26543;22430;20800;26544;26545;22172;26547;26546;26548;21550;21551;21552;26549;22431;22432;22173;26550;26551;22174;22175;22176;26552;22433;22434;22263;26129;26130;26553;26131;26132;26554;26555;26133;26134;26135;27062;26556;26136;26557;26558;26137;26559;26138;26560;26561;26562;26563;29199;32390;32389;26564;26565;29797;31615;29798;26139;34315;34316;33864;35642;35643;33936;39001;41024;41025;41026;40364;40365;40366;46813;43132;43133;46697;46698;53269;57330;53270;53271;66504;56840;63319;72956;72957;78717;82682;88155;82683;16568;88156;17426;16534;17089;17088;16832;16831;16828;16826;16825;17427;16801;16800;16717;16716;17063;17061;17062;17060;17059;17058;17057;17056;17045;17043;17041;17042;17040;17000;17039;16998;16999;16979;17428;16968;16861;17429;16797;17430;17431;16490;16489;17433;17432;17434;17031;17435;16728;16727;17436;16723;17437;16625;16600;16939;16923;16922;16921;16920;26566;16538;26567;26568;16819;16795;16794;16793;16792;26569;26570;16749;17438;17439;17440;17096;17095;17094;17093;17092;26571;17441;17046;17442;17443;17010;17444;17009;17008;26572;17007;26573;16987;16986;16985;16719;16705;26574;26575;26576;16665;16662;16664;16661;16660;16659;26577;17445;16647;17446;17447;16593;16592;26578;26579;17448;17449;17450;17451;16537;16536;16506;16500;16499;16498;16484;26580;26581;26582;16950;26583;26584;26585;26586;26587;26588;26589;16546;16545;16894;16893;16879;16870;16860;16859;26590;16838;16837;26591;16823;16824;16822;16796;26592;26593;16767;16766;26594;16488;16487;16486;16485;17452;17453;17454;17455;17112;17456;17457;17459;17458;17460;17461;26595;17087;26596;26597;26598;26599;17029;26600;26601;17016;17015;17014;17013;26602;51469;26603;51470;51471;51472;51473;26604;51474;16743;16741;17462;16740;16739;16730;51475;16722;17463;51476;51477;26605;26606;51478;16688;26607;16687;16669;26608;16658;26609;16643;16626;16642;26610;17464;16624;26611;16623;16622;26612;16599;51479;16969;16967;16966;16965;26614;26613;26616;26615;51480;17465;51481;16955;51482;51483;16937;16936;51484;26617;16935;26618;51485;51486;51487;26619;16919;26620;16918;16917;16916;26621;26622;26623;26624;51488;16582;16581;16572;26625;16571;16562;16561;16552;26626;26627;26628;16542;16539;26629;26630;26631;26632;16520;26633;17466;17467;17468;17469;17471;17470;51489;16491;51490;51491;51492;26634;51493;17472;16866;51494;26635;51495;26636;21654;16851;17473;26637;16849;17474;16848;51496;51497;26638;17476;17475;16818;17477;16817;16816;16815;16812;16811;26639;16808;16807;51498;16805;17478;17479;16791;51499;26640;17480;17481;16782;17482;17483;17484;26641;16781;16770;26642;17485;17486;26643;26644;16762;26645;16761;26646;26647;26648;26649;16746;17487;17488;17489;26650;26651;26652;17118;26653;17490;17491;17492;17091;26654;17090;26655;26656;26657;26659;26658;26660;17038;17037;17035;26661;17034;17033;26662;26663;17017;26664;26665;26666;17006;17005;17493;17494;17495;17004;17496;26667;17003;17497;17002;16994;16993;26668;26670;26669;16720;16706;16702;17498;17499;26671;16701;26672;16679;16680;16678;16677;26674;26673;16649;17500;17501;17502;17503;16648;16640;26675;17504;17505;17506;16631;17507;26676;16611;16612;16610;16609;26677;26678;26679;26680;16608;26681;26682;26683;16589;17508;17509;17510;16588;16587;16586;16585;16583;16514;16513;16512;16511;17511;17512;17513;17514;26684;17515;17516;17517;17518;17519;16496;16495;16494;16493;26685;16492;26686;26687;26688;26689;26690;26691;26692;17098;17119;17520;26693;17521;17522;17523;17524;26694;26696;26695;26697;26698;17082;17081;26699;26700;17080;17071;17525;17526;17527;17528;17529;17530;17531;17070;17532;17533;17534;17068;17069;17067;17066;26701;17535;26702;26703;17036;26140;26704;26705;26706;26707;26708;17021;26709;26710;26711;26712;26713;17536;26714;17537;26715;17538;17539;26716;26717;26718;26719;17540;17541;17542;17543;17544;17545;16763;17546;17547;17549;17548;17550;26720;26722;26721;26723;16753;16747;16748;16745;16744;26724;16734;16733;26725;26726;26727;26728;26729;26730;26731;26732;16652;16651;17551;17552;17553;17554;17555;17556;17557;26733;26734;16641;16637;16636;16635;16633;18339;26735;26736;26737;26738;26739;26740;26741;26742;26743;26744;16980;17558;26745;17559;17560;17561;17562;17563;26746;17564;26747;26748;26749;26750;26751;26752;18340;18341;17565;17566;26753;26754;26755;22435;20084;22436;26756;26757;17567;18342;18343;17568;26758;26759;18344;26760;26761;26762;26763;18345;18346;18347;26764;26765;26766;26767;26768;26769;23711;26770;26771;18348;26772;26773;26774;18349;18350;26775;26776;26777;26778;26779;26780;26781;26782;22177;22178;22179;26783;26784;26785;26786;26787;18351;26788;26789;26790;26791;19399;21656;21657;21658;26792;26793;26794;22437;22438;22439;22440;19823;22441;26795;26796;26797;26798;26799;22462;22461;26800;26801;26802;26803;26804;26805;19980;19824;26806;26807;26808;26809;26810;26811;20085;19981;26812;19487;26813;26814;19825;26815;19826;19982;26816;26817;26818;26819;20954;19983;26820;26821;20086;26822;26823;26824;20955;21659;20868;26825;20397;21104;21105;21106;21107;21553;21660;21108;26826;26827;21109;21110;21111;20956;21112;21113;21735;26828;26829;26830;26831;26832;26833;26141;26834;34736;26835;26836;26837;26838;21713;21714;26839;26840;21161;26841;26842;26843;26844;21914;26845;26142;23627;23628;26846;26143;26847;26848;26144;26849;26850;26851;26852;26853;26854;26855;23712;23713;26145;23629;23630;26146;26147;26856;26857;26858;26859;26860;26861;26862;26863;22916;22919;22917;23714;23715;28269;23716;23717;23718;23719;23720;23721;26864;26865;23722;23723;26866;38968;26867;26868;26869;26870;26871;26872;26873;26874;26875;26148;26876;26877;26149;26878;26879;56068;56069;26880;26881;26882;26883;26884;26885;26886;26887;26150;26888;26151;26152;38969;26153;26154;26155;26889;26890;26891;26156;26892;43134;43135;26893;26894;43137;43136;26895;26896;43138;43139;27063;27064;27065;26898;26897;26948;29200;28270;28271;28272;30045;30046;30047;31035;31839;31036;29969;29970;43140;43141;29971;29972;32154;29973;32155;32156;32157;32158;34737;32159;33190;39377;39378;35175;35176;35177;39379;39380;35697;35698;34952;39381;39382;34738;44347;44348;44349;44350;39383;39384;44351;44352;44353;44354;43360;43361;41976;41977;41978;47753;47754;44404;44405;44603;43142;43143;46261;46347;46348;47145;47146;47147;47148;47149;52039;56841;56842;56843;56844;51659;52040;56845;56846;56847;56596;56848;56597;56849;63291;58610;58611;58613;58612;61591;61590;61592;63442;63443;63444;68919;86215;73718;86118;73719;16541;86119;16540;16878;16814;16813;16482;17097;17072;17049;17047;17044;17018;17569;17570;17012;17572;17571;17573;17011;10490;33899;11701;30202;26914;23731;20065;84502;45608;10602;10105;15706;16317;10495;10106;10784;28334;10763;40405;50343;50344;50345;12055;69826;42893;85582;100669;85602;85601;85805;15641;15642;92539;24260;49218;11149;11801;10498;57572;129585;17154;91634;59861;44987;45084;91815;140735;11040;15640;10107;10930;10533;10532;48432;10527;74469;10484;10582;77334;77335;77336;77337;77338;77339;76796;77340;77341;77342;76797;77391;80087;83162;80086;82430;89057;117394;117395;105158;73155;76795;15613;18402;18403;80085;42436;64483;48203;34491;18039;49211;76348;20387;16126;76347;10108;45358;45357;84047;15750;10109;10110;10111;18570;20960;20834;21684;21337;11083;33268;100720;100721;96146;103188;96145;94961;96626;68904;94962;39364;72929;153487;65576;72928;65575;138763;97019;70075;70074;77811;90512;97020;77027;72026;77002;77003;72025;77001;76766;74104;80885;72505;72506;72507;72508;76428;72504;74287;72283;74288;67230;67231;72220;144708;144080;144290;144291;74286;144766;144287;144303;144777;144074;144075;144298;144084;144768;144289;144288;144090;144767;144776;144304;144707;144286;144083;144302;144079;145061;144779;144778;144780;144773;144070;144063;144073;144774;144775;84290;87538;155843;110416;110417;64379;64378;149349;70097;143441;70098;72118;80476;80477;100380;103378;104104;120953;77029;77028;120945;97577;97578;101521;103674;97579;148709;148372;78066;45059;74121;66987;72586;144860;78065;144861;145058;144812;145059;145272;145063;145060;145270;145066;145401;149782;146085;145271;145055;144859;144858;145052;145053;145054;145056;145057;145051;145050;139731;136763;136764;139005;106714;144633;70173;77812;65893;65892;106715;65894;66307;65895;66306;81779;66172;61565;62786;63323;81780;81781;81782;81783;81784;62738;59293;61564;39591;81785;72860;72859;81786;72861;72862;42191;77607;77604;79384;77709;77710;83520;45356;50348;10799;97524;140201;118823;77708;120944;126987;136547;134564;100718;140200;143123;143124;100719;151155;135852;139330;135853;141471;135854;66473;66472;72368;73102;84401;85630;104388;106844;125897;76359;85707;76767;146571;91633;80963;66270;76358;79334;79335;93223;102019;93224;93225;119843;124563;124564;124565;96177;104357;66269;62560;65703;70586;62559;80865;80866;62561;101168;53490;44394;31052;25005;62558;25149;25738;26186;42824;26187;25656;55594;29997;96143;96144;83300;89691;83299;85254;84585;91502;89788;25662;35906;77116;77117;77118;77119;77120;80478;81492;81493;81494;145032;145045;143265;80334;80335;80199;66760;80200;38977;57848;57849;57847;16086;69928;10112;10410;117888;15401;15396;11044;15397;14843;15398;15399;10600;15400;17592;14390;26069;38717;35281;22079;53869;29895;51098;51097;63304;15469;15643;16273;19784;68983;127914;138093;138078;138076;138079;125878;138080;138081;138077;138075;20887;11704;58292;10113;10114;45399;45609;34948;10347;11425;18174;11572;17258;69180;47828;77750;51938;11557;76166;15541;14841;18392;14674;10115;41645;55549;36087;25203;25202;33276;24700;18539;20805;28331;20734;40825;10661;10657;10572;10573;99281;99523;108808;47594;10492;10935;11871;10371;10577;10116;10956;10117;10671;106609;58363;10537;10406;10575;10680;10937;51956;62940;10118;10932;11028;31648;10695;10685;10119;10759;10120;59817;10667;10631;10372;10370;11443;11874;10576;11412;10936;11142;10358;11661;11663;11662;62694;10941;62695;11935;11605;15986;71494;122095;122423;122032;134976;124119;125342;140770;122189;122188;122257;122191;122244;122187;122190;102803;69816;20285;69554;73918;72877;14630;14631;14632;14633;16142;14629;14634;14635;18050;16161;14636;14637;15935;11700;30134;38951;59368;59369;59371;59370;70739;72721;72722;78892;91232;91818;91819;95719;95720;96446;144454;90892;91763;147894;91764;95319;95721;95722;97890;96447;97891;97892;100847;124775;122248;126638;124776;127051;139224;152959;10122;38949;20991;33484;10496;17311;10123;11414;10124;10625;42085;52609;10966;12254;10125;15856;15853;10435;29729;31050;12643;12263;15393;18139;11815;13857;10801;11488;15616;63639;64686;64685;17244;10126;20296;11825;16282;16278;42212;10127;22228;22229;10805;10128;18588;18587;25572;25636;12300;15864;10129;14683;11984;10436;107073;11532;31724;97999;105778;34099;80458;42180;88577;40458;42354;44624;70094;76117;97998;101165;103870;88578;136670;140217;143152;150859;14829;19779;41056;11128;118017;10353;10733;15614;15615;125029;125030;62621;62622;62623;62625;62624;62626;18446;16154;18447;20112;11273;22089;21307;18203;43163;18201;17202;17203;20835;17609;12268;18401;18011;12101;73966;15425;45568;11729;73330;73331;50686;14788;15775;15778;22205;141061;12015;11402;11403;11068;11856;10589;11220;11043;10683;72035;82994;76592;84962;90627;68931;80101;68932;72034;29697;10130;10469;72063;14684;15771;11271;90189;47743;76489;76490;22314;24782;25737;90190;21051;27590;20320;20319;18368;25760;25761;25762;21572;62186;88097;97140;62185;88738;21562;18552;30208;88739;52669;58429;58430;102425;102426;59713;147190;22131;34238;11156;22132;65196;11783;11797;14376;14388;18291;65197;14253;65198;87817;11696;11697;58579;57560;63059;68888;60036;72395;59849;59848;66784;59847;63303;59846;57559;60037;72394;11369;22901;106202;107223;138525;150053;51368;100550;29700;45087;57861;54300;111674;111675;111676;111677;11272;111678;17585;10455;16197;49086;52534;49087;53488;53489;52535;56872;56469;56873;58319;56470;59497;59498;58320;62077;66498;62078;66499;70026;70588;70589;72104;72105;70027;74040;74092;78597;74041;131132;78598;132416;132415;134222;135032;134221;149023;135031;149022;152751;153850;152752;158930;158931;153849;84504;86600;86001;86601;86602;86603;87371;91347;87372;92410;92411;91348;94914;94915;94971;94934;95824;96830;95825;96831;100025;100300;100301;101954;101955;103506;100026;104359;104360;105651;105652;106397;106398;108795;108796;110384;110383;103507;111105;117878;117880;118718;118717;119767;121473;126476;126475;127047;127046;117879;158981;158980;21783;21782;25998;26000;34157;35913;34158;38985;35914;41060;38986;41061;45390;47037;45391;47762;47763;47038;20218;20219;25996;58500;20217;15972;17200;10538;11781;11782;21120;18477;15862;86905;111679;118237;118039;118238;148499;147817;16226;64835;18480;64836;15926;12245;19395;35610;16198;19394;18526;47714;23843;132311;132312;132313;132314;109321;33869;46181;53337;87312;23842;91487;72202;121515;91488;11690;66189;121516;12032;55775;58400;66190;12058;65055;65056;66898;72743;78859;72685;83956;89925;125733;106951;109551;125734;111603;118147;117337;119500;121330;124168;129776;127053;130099;139734;139726;145533;145248;148401;148418;148975;151193;154055;154894;157860;156929;99984;106559;104634;153924;65054;71215;73302;129098;86898;89725;89034;105293;97609;125706;129169;133527;135178;138887;155735;155627;156930;130595;158977;148245;12227;17348;42797;130596;81576;29852;29219;44320;11764;25461;72515;147720;147722;147717;144307;144305;144301;144306;72514;147719;147721;147718;143590;144645;18289;11047;12071;23965;18653;152137;36102;29834;36184;106622;47114;109319;109320;85216;85217;45578;59329;85218;85219;85220;85221;85222;73272;73273;73274;100220;87218;122592;122593;118713;124769;124770;129297;124771;130265;125629;128282;128324;135287;122594;110775;132693;132674;122595;122596;130266;132729;122597;122598;132673;132672;110125;111530;117338;128420;128522;138329;124772;140768;140660;140767;140769;148391;147728;154056;152865;157158;132728;138840;130267;157176;157152;128423;159092;138841;129589;129593;132724;129099;132722;139003;132320;146824;132727;135765;134953;134980;134952;135203;134978;134759;134760;133854;133855;138328;139797;139795;139798;139796;137065;138838;138360;123003;154057;48263;128763;130506;130591;128326;126620;128762;130278;45577;139066;138880;138837;143272;141828;132954;141799;146593;146592;148265;146103;129405;129406;129162;129386;109318;10131;11635;129104;70414;11903;11902;22298;22297;21143;69273;66389;73024;64438;64634;70918;73025;78088;77860;84622;86020;86655;87416;92871;87767;94355;95916;100385;99691;102017;101300;112160;103383;118069;104478;108564;106631;111063;110227;111064;128077;129303;130970;132243;133308;134403;135925;137366;121188;138877;139875;143380;144980;147705;148641;149899;151429;122346;122420;122814;123954;124682;125923;131163;152984;64470;43636;45490;79420;21142;35435;69280;25736;121255;62938;62939;43088;35474;121256;25824;34420;64484;105508;39331;35109;31095;88489;25823;33882;24899;63201;25992;44337;78912;35321;26059;11974;44689;12256;156443;106656;135011;106657;125152;124719;136929;106658;156439;118310;10444;50576;10604;70176;10814;70175;14810;10925;43850;87501;57322;42820;42819;69182;77687;70477;71310;68906;77685;68907;68908;68909;68910;68911;68912;68913;69194;70478;70479;70480;70476;70481;70475;71997;71996;71999;71998;72001;72000;77756;73492;73493;73494;73495;73496;73687;77000;76502;76503;76505;76504;76506;76507;76508;78420;78421;78422;78423;78424;78426;78425;80953;80954;80955;80957;80956;82794;80958;82795;82796;82797;82798;82912;85224;85226;85225;85227;85228;84768;86605;85229;86475;86476;86477;86606;86607;86608;88091;88092;88093;88094;88095;88096;90761;91762;92518;92519;92520;92521;92512;92513;92514;92515;94331;96316;94333;94332;94579;94678;96658;96659;96660;96661;96662;102699;99524;99525;102700;101266;99526;99527;102701;102702;102703;102704;102705;102706;102707;102708;102072;102073;102074;102075;102076;102077;102078;102079;102080;102081;104032;104033;104034;104035;104036;104037;104038;104039;104040;104041;105653;106385;106386;106387;106388;106389;106390;106391;106392;106393;106394;109211;109210;109212;109213;109214;109215;109216;111204;111205;111206;137004;111207;126508;118231;126925;125773;118232;121389;121642;122242;125546;122241;121129;121390;121066;121215;121644;121111;121354;121126;121070;121069;121643;124236;124091;124003;124031;124193;124195;124765;124327;124092;125309;124238;125774;124030;127056;124760;130514;127122;134893;126785;130517;132038;130516;130469;130505;130264;130460;132959;130468;132075;132046;130053;130519;130466;131944;130504;130515;130459;130518;130520;133303;130502;130270;130279;130467;140454;140737;133965;133088;133863;133860;133725;133050;133051;133145;135683;136701;146092;136119;137056;139069;138210;136828;139071;139070;136285;140467;138909;139033;138596;140586;138608;138605;138604;138889;139032;138908;138906;138839;138907;138905;151625;141802;141827;143381;141806;141868;141845;142145;141849;141846;143383;143263;143382;144982;144986;146194;150137;145261;145691;145571;146106;146090;144978;144985;144984;144933;145502;148664;144983;148665;148670;148671;149810;149473;148668;148682;149788;148673;148657;148661;149970;148651;149369;148677;148648;148672;148654;148683;149859;148676;149453;148659;149366;148678;148650;148666;148667;148679;148675;148663;148660;148669;148658;148662;148680;148653;149967;148681;148645;148649;149351;151631;151630;151635;151639;151629;153253;153252;153256;153128;151638;151637;151632;151634;158934;151628;151633;151636;151626;151627;155626;154110;154111;154112;154113;154119;154126;154127;154109;154123;154118;154122;154121;154125;154120;154116;154117;154124;154108;154115;158896;154107;156689;156671;156683;156680;156681;156676;156685;156686;156679;156672;158041;156673;156684;156674;156682;156687;156693;156670;156678;156694;156782;156675;156677;156692;70120;70121;69872;71023;69870;74140;77326;82913;84877;84878;109406;69873;69874;69871;69875;69876;55941;55940;55939;55938;55937;55936;55935;55934;56769;56770;56771;57636;57637;57638;57639;58874;58875;58876;58877;58878;59987;59988;59989;59990;59991;59992;59993;59994;59995;59996;59997;62711;62712;62713;70102;62714;63519;63520;66336;66509;66510;66511;66512;66513;66514;66515;66516;77686;141393;70165;148031;91890;80191;80192;80193;80194;80195;80196;80197;91778;91779;126510;126917;121067;121068;131701;104175;104100;108520;80198;70922;85270;77688;69986;69987;73688;76306;76124;77689;77690;77691;103052;106680;69241;69183;70025;71429;73057;73023;66721;66720;55933;55932;38974;11467;99983;151494;151371;151424;151372;25626;25021;40446;43814;25710;20284;77437;33094;23996;62800;62799;23997;24758;26969;57976;17598;19335;34029;40872;57975;30053;16474;11426;11844;11453;14681;149646;149499;10375;137747;141210;141213;141214;141212;141211;137748;17351;11511;11512;10411;43829;11575;11580;47140;72393;76402;50978;51389;51388;18183;23868;25991;31119;35258;39354;21050;15404;18256;18184;14279;18058;11763;18185;20225;59608;108590;122157;27041;62311;121166;121165;121358;121357;117666;119422;118798;122589;109942;11328;69555;33257;31464;31465;24747;43154;11813;76799;78890;87598;87965;106196;76798;97895;97894;12252;15829;138014;11983;10640;24998;65047;10132;119327;119677;112063;110767;110768;123831;128650;126468;135030;140401;124590;121471;56877;10541;34117;11387;11494;11388;13659;10796;99928;99929;11063;10133;25085;38664;29993;34235;34243;33745;29994;106721;83265;56468;92660;10378;10379;90706;97893;118399;150139;77275;159063;77276;77277;77278;77279;77280;71154;71457;20870;58038;45477;10722;10723;25701;42329;45478;19603;19602;23782;19774;19678;42259;42260;11705;31352;24784;24783;24262;11741;19557;19558;12033;65986;65985;85908;121434;83736;85909;58653;58654;83737;11911;80555;88807;66328;80203;66327;66326;80554;72772;72773;46311;86426;19523;151882;10812;55574;58726;59180;61432;73332;73334;73336;76510;76594;80078;80079;80080;80081;80832;86900;86901;88983;91974;97496;122588;122586;122857;151883;121544;125223;127114;133474;129535;133471;80831;55573;118155;118154;80556;64394;93221;59230;59232;59231;73470;73521;155678;151576;153490;151577;151575;151620;151011;59229;59228;59358;59359;59360;62926;151292;155731;21631;22005;146861;24356;106623;106624;106625;34332;106626;57410;63094;72815;73123;106627;119607;16475;119608;106628;26057;21155;26058;39006;21558;21308;22367;22408;20824;20994;38694;17973;11427;11175;104129;11522;11891;49646;11941;20096;44391;101812;101813;58482;20892;25811;17841;101814;12296;122878;156549;146312;19777;56283;146799;125216;71261;126259;157358;126258;71262;110483;21333;21560;25483;95928;91223;124648;97862;124649;10134;10135;10646;33200;20806;20294;31134;20295;20728;41625;33219;10769;18374;21016;97863;48246;27523;55701;35627;71522;71441;79387;71440;53513;53514;24904;24326;46255;24327;71439;117887;11005;57461;83303;156258;156115;156455;156559;156017;156232;156061;156016;65030;62123;62122;62124;79743;64486;45436;88905;122752;10870;34266;122754;40331;109943;119461;119460;121312;122977;40468;12002;72264;11717;100383;122753;70743;74224;83115;71860;74225;71861;73969;53534;83116;74090;20890;55818;19764;10419;10543;61487;63281;70744;73970;66637;61486;66722;66941;66944;66942;11009;59685;70072;70071;72619;70260;72880;52658;52659;70103;11718;59109;14312;63266;59036;59035;21024;20861;22091;11633;29869;81810;11355;11406;30207;11023;11354;10727;34472;17352;11843;81811;57939;57940;80457;149500;43028;91999;92000;20936;93685;94253;95917;16153;96731;99134;103598;100270;104378;105080;106296;108786;110324;111137;105003;104848;118178;119841;118574;121393;125150;123128;127054;129467;130057;130967;131957;134954;133531;136930;137071;141099;141100;143478;143115;144453;146086;146427;147658;149041;149042;149333;149043;149986;149984;149985;152038;152036;152039;152129;153429;153709;153432;154711;154775;154717;156222;156230;156221;157403;157242;158163;157181;159106;159105;123129;158976;123130;122365;124005;125219;127901;129975;132034;133670;134703;136560;139578;142468;144106;146420;154152;149381;150342;151587;153362;156666;154436;147414;147416;147417;147412;148455;151582;152631;156662;152697;158319;109865;112060;118975;122816;127898;132021;134763;147620;145014;146447;154429;156058;147660;148456;150450;151827;152629;153401;157449;158729;144055;122366;124006;125220;127902;129976;132035;133671;134704;136561;139579;142465;144108;146423;154154;149378;150340;151585;153365;156667;121029;121030;121031;121032;121033;121034;108584;108753;109866;108585;108754;109867;121641;122193;121476;123133;122949;125999;126069;125362;126623;128529;110806;117291;117918;122192;121511;154425;122232;122947;123011;125360;126000;126070;126621;128059;138082;128060;139062;139786;128527;130171;131766;132712;133849;132710;135199;134406;135273;136356;128524;137050;129100;130169;131772;132708;132713;133692;134404;135200;135275;136403;137048;138084;138444;149254;148774;150121;151573;152415;153091;153876;139073;139790;140733;141569;142912;144769;142612;144277;145447;148013;146782;139039;139788;140731;141572;142911;144283;142610;144772;145466;146779;148015;149282;148766;150801;150120;152413;151572;152636;153106;153879;155916;154816;156604;158652;157445;153088;158691;153880;155918;154820;157444;156605;158693;158655;97143;122116;125404;124020;131284;155789;95258;152211;154014;157114;139456;139328;144621;146590;152210;154013;157115;139663;139329;144620;95259;146589;100027;96829;97497;101956;122585;122587;122856;121543;127113;129534;126261;126260;109016;111682;119614;106189;110978;108282;109944;118934;118309;117409;124194;127894;131945;153047;122247;127124;121542;125953;125165;130968;135589;139601;133650;128706;132938;138503;134408;136559;141470;148539;152424;152489;147704;156254;144981;151610;150707;151293;147922;149472;149433;155448;154142;153397;157878;158219;157434;157385;142717;146823;93813;99128;103531;143218;105110;121478;105111;121599;122401;123508;123506;125949;125358;126217;128774;126703;128971;128969;138095;139184;139869;129389;130364;131955;132773;133690;135412;136358;137086;138588;139317;148772;149256;149529;150158;152453;151612;153112;154061;139867;141776;143059;143425;144285;144855;145467;146784;148109;148396;152504;152634;154058;155920;156196;154876;157906;156609;158656;158068;95929;158928;156847;154245;105786;137839;108884;11603;135296;132047;139727;158830;119241;126590;135189;78550;79310;81087;82699;105792;84488;86270;85408;87314;86654;88047;91228;90096;92496;122508;18062;18352;107071;18353;28212;18683;25554;20113;21175;20911;21763;24811;22476;28252;32477;30255;33281;34211;35111;38744;40946;40502;42434;47023;45372;50548;51423;52754;55416;56480;57797;59066;62214;62215;65577;66808;69877;70561;70301;76317;72687;77748;24241;22418;18369;19295;18521;20135;15573;21554;22335;25122;24762;25346;27625;25704;29699;30203;29983;31736;33131;34118;35436;38989;40928;45387;51061;55763;93721;95411;96798;95919;100355;99167;103360;101931;105515;105689;106305;104355;108805;109392;126381;111109;118571;119498;121388;31992;31604;34773;33286;39768;39338;42477;40553;46837;45044;47887;49143;52612;50653;53410;55638;69879;56482;58322;59068;62216;60127;62802;66000;65579;66810;70563;71498;72689;73304;74139;76316;77747;77201;80055;81051;81915;82711;84491;83291;86252;85446;86790;88597;87370;91221;93593;92358;12514;12515;12516;12517;12519;12518;12520;14242;14676;14768;15898;15420;17195;16251;17587;18189;18437;19463;19773;20249;18099;20990;21073;21341;22479;22125;23740;24234;24354;23926;25081;25297;25566;29723;25830;30254;31605;32478;33282;33790;34210;35110;34374;35684;38743;40591;40501;40945;42433;44095;45542;45373;47024;48424;49289;52753;50549;53412;54935;55415;56141;56481;59067;62213;65578;66809;67130;57798;69878;72688;73648;76318;77749;78551;81088;81730;81977;84489;82700;85409;86829;88048;87321;91229;90097;93317;92497;95918;99135;101957;104379;105081;108787;106297;111136;110323;119840;118573;121391;125151;127055;84565;86722;100427;100271;109361;119842;118575;121392;60019;77814;71948;74013;77713;79857;83472;84802;86404;87919;89832;91098;92036;94073;96454;99375;102429;104671;106847;109897;111009;111791;117874;80227;117597;119673;120949;122250;70350;73995;73434;74432;77173;77578;78442;79142;80486;56962;58539;59427;61625;62481;63451;62837;63243;64585;65220;65911;66446;66873;69867;70215;70859;70349;71352;71952;84159;84161;84162;84160;84643;85327;86384;86062;86853;87246;87658;88640;89869;93524;91164;56960;56961;88720;123976;152273;88722;69347;91387;127895;155137;152698;153459;72172;72174;78680;89782;91389;93514;95889;97215;100793;102325;109040;118084;121127;153436;148710;153092;109031;124021;140605;153438;109033;62222;84404;88721;99370;104630;62220;62221;72170;137653;137879;57044;56199;55421;58684;61563;63455;66411;64787;69847;74014;77714;71949;79858;83473;84803;86405;89833;87920;91099;92037;94074;96455;99376;102430;104672;106848;109898;111010;111792;117875;117598;119674;120950;122251;56214;55420;100960;100956;137068;63340;77371;77372;125406;56196;77368;71041;93404;93407;71039;139914;148449;148656;71465;61519;76492;78677;80861;82271;81979;85542;85268;85269;88101;59822;59823;133180;70259;148358;66836;109597;137650;69319;58180;104666;55435;83991;58291;47682;110643;110644;109279;59090;84670;57773;58070;62739;62993;63542;58074;58353;58893;59404;60038;61710;62575;62584;58894;59403;60039;61711;62576;62585;62740;62994;63543;70709;70944;63544;64718;65128;65801;66475;66988;69264;69988;63545;64719;65129;65802;66476;66989;69265;69989;70945;70710;71343;72327;73095;73765;74436;76758;77899;77493;70711;70946;71344;72328;73096;73766;74437;76759;77900;77494;78469;79661;80519;82034;82035;81517;82499;83436;84575;77495;77901;78470;79662;80520;81518;82036;82037;82500;82582;82997;83437;85272;84576;85686;85383;86068;86761;87473;88751;88458;89872;90788;84577;85273;55418;56376;56755;57358;57774;58072;58354;85384;85687;86069;86417;86762;87474;88459;88752;89873;90789;91544;92752;93659;95471;95883;94957;96773;97636;99627;90790;91545;92753;93660;117940;94231;94958;95436;95472;95884;96774;97637;99123;99124;99628;100807;102356;103677;105211;104635;106300;108374;110807;99629;100808;102357;103678;104636;105039;105615;106301;106560;108375;55419;110808;117669;117919;117292;118394;119605;119748;117667;118396;119603;56377;56756;57359;55417;53915;54973;55141;56258;55804;56875;58002;58208;58540;58995;59428;61551;61623;62482;62838;63244;63452;64507;64586;64917;65221;65912;66447;66874;67226;69868;70860;71353;71953;72285;72607;72938;73435;73741;73996;74433;76415;77174;77579;78443;79143;79443;79837;80487;80947;80999;81128;81820;82782;83367;106607;84050;84366;84644;84732;85328;86063;86370;86424;86854;87247;87659;88641;89870;90426;91165;91671;92013;93462;93961;94335;94629;95763;96389;97728;99284;100053;100757;101363;102263;103125;103923;104545;105176;105692;108283;108959;109602;110396;110977;111681;117408;118908;119424;119093;123937;125055;125814;128632;133606;137252;141492;53914;59197;59178;59177;58619;34322;125890;128279;125891;125892;125893;125894;125895;135899;135900;76789;106758;76787;45381;41971;51078;51079;54974;58792;59818;72036;64919;71230;73670;76452;84218;55851;74263;81183;50828;87924;92943;93519;94338;95286;97939;99103;103373;103374;104851;105781;105485;118981;110097;111758;111977;118884;118465;119099;123517;124299;127135;130454;129496;131128;134628;137076;134974;140771;139202;143222;143117;144851;150960;157421;158147;40480;89924;80220;89964;70891;70892;70893;70917;70924;71228;72168;71969;72617;72801;72940;73083;73420;73711;74009;80219;74123;74435;76582;77185;77862;77582;78081;77410;79144;78476;79579;79337;79838;80488;80950;81208;81021;82535;83137;81648;83368;82826;84051;84343;84733;83746;84668;85568;84922;86210;85744;86381;86064;86855;87418;86599;87207;87248;88682;88957;88089;90195;89787;89686;90543;90795;91717;91129;91351;91456;92792;93477;92629;93818;93316;94581;94137;94677;99137;95481;97725;99996;99634;100992;101981;103422;103649;102994;100680;103934;104435;106351;105153;106486;106683;106841;105357;107221;109396;109900;110229;111382;117635;117428;117332;118886;119096;118152;119557;119683;122616;121513;131737;122852;122245;124278;124459;125370;126752;125728;125951;127128;127119;128327;129847;129053;131189;130274;128740;130462;131021;132716;133052;131953;132096;133847;133953;134214;134700;135093;133464;135703;135916;136121;136347;135400;137700;137634;136742;137080;139000;139694;139458;140405;138448;140699;139793;141574;142208;142642;142718;144782;141195;143470;142970;146205;146061;146543;145072;148242;148488;147755;146949;149413;148559;148849;148995;150431;150855;151673;149901;152190;151832;152608;152927;153254;153516;153631;153828;153932;154239;154705;155353;155866;156034;156461;156861;158050;157292;158501;158935;110519;110502;100128;100129;104814;70890;16151;18214;21781;15786;24812;56871;30201;59499;66500;72106;74093;103508;25999;35915;38987;41059;45389;47764;25997;58501;55693;55458;34290;35686;127915;39435;40873;43002;46673;50072;52587;43003;61997;64472;62594;64699;65027;65998;66929;70459;46674;50073;52588;55459;56748;58605;59463;58606;59464;19702;56749;61998;62595;64700;65028;65999;66928;70458;78891;29702;34291;35685;39766;70611;130366;55576;70610;58725;61433;59181;73333;73335;73337;76595;76511;80830;86902;86903;88984;91975;80829;135851;55575;54832;139733;129055;71263;71571;99311;56584;50052;50053;71570;50054;50057;50059;50061;50065;58093;50066;58094;56178;58095;59045;59914;62909;65216;65217;66868;67208;69839;70340;70341;72933;73414;78436;79829;82767;82768;83353;83415;85347;84740;85349;85878;86382;87250;86817;87251;87329;87874;87873;88880;90004;90430;91044;92014;91610;93532;93463;94010;94913;95810;94015;97739;99310;99313;105177;101364;100758;100295;104664;104546;103744;103126;105729;152482;146347;150988;21724;22025;53374;50058;50067;50060;57286;24328;50055;50064;50062;55135;50056;25173;59046;50063;50531;22539;50068;12257;142902;71264;156551;65673;142903;91857;86383;81882;72281;81883;72280;65926;71898;65924;138883;40563;61621;70609;61620;58812;117617;125548;128178;99265;50681;62801;64476;69932;77757;78599;70590;74124;77758;131568;78600;83088;78601;85410;86604;86066;12513;50680;45439;45440;45441;80170;77971;80171;80173;80172;80174;80175;80176;80177;80178;80179;80180;80181;80182;80183;80184;80185;80186;80187;80188;80189;84764;85881;124027;86632;58092;53844;58091;53843;62947;140215;54845;77407;77405;103251;103836;57775;58071;62741;62995;63546;58075;58355;58895;59406;60040;61712;62577;62586;58896;59405;60041;61713;62578;62587;62742;62996;70712;71042;63547;64720;64721;65189;65190;65803;65804;66477;66478;66990;66991;69266;69267;69990;69991;70713;71043;71345;72329;73097;73767;74438;76760;77496;77902;76761;77497;77903;78471;79663;80521;81519;82501;83463;84578;87109;56757;57360;57776;58073;58356;95473;96268;96904;97662;99967;101771;105043;108518;111043;111980;117938;118592;56758;57361;56557;91224;130055;84240;65700;65699;84583;54846;84584;76965;100839;139203;76963;77331;77330;93520;94339;93522;78674;89101;90784;85404;103981;89102;90785;93517;103982;96764;78672;97573;99436;100670;101897;121105;119417;129300;124161;125364;103983;126922;105008;106141;107092;110268;126920;131949;129060;134113;136921;121307;140776;121308;121309;119418;121106;129298;125366;124162;124163;136925;140774;125368;126918;131947;129058;133211;134109;133214;147644;148947;151642;155570;135856;134111;136923;138086;139572;142677;140756;144635;142422;144643;156389;155574;144639;146104;157892;148949;147648;154825;151640;156387;158991;61413;70093;77863;84503;81758;82713;86570;86245;87737;90148;91262;94935;93526;103359;61412;56567;118800;142032;142031;28185;83305;83304;123519;138598;83350;11742;117705;117706;117707;33483;12065;15902;23753;59569;14654;18123;14655;14656;20866;21118;20226;20837;20322;19783;15852;20245;15487;19193;23754;23755;23756;23783;23924;33810;49284;21139;21117;17974;17364;14712;21771;22483;22411;15611;59568;24345;25673;19947;54579;16338;22307;12253;16339;16136;10566;25711;34336;26060;11598;11637;11601;10641;15626;11780;17661;33903;20016;14360;11650;20176;34293;15564;52000;51999;31854;83957;83958;56568;11361;83959;12025;17672;16315;20222;30110;33479;21144;17194;55511;16312;18495;11441;22509;12045;19591;16316;121433;155717;155716;153157;158361;152680;153158;56510;153147;56509;57049;91989;56511;154964;84017;144793;63157;63158;84241;84242;84018;86804;63694;63693;148430;86885;63692;117639;135186;134677;139377;148038;156790;82078;82079;82080;82081;82082;82472;90192;90193;108752;71217;71218;135293;71219;71216;148037;81704;86472;77530;58427;58426;58428;81402;108592;153848;77479;77478;77480;90444;90447;90445;90446;155632;153636;153635;157290;157289;81821;81822;155865;81823;81378;81379;81380;148307;81381;81377;62784;62783;80960;62782;80961;80962;63205;63204;63206;143600;148429;155864;80959;57371;85599;94327;151286;55446;157383;55445;55444;86444;86886;58976;55448;72257;55447;62785;55449;61798;61799;61800;61801;61802;61803;61804;61805;61806;61807;61808;61809;61811;61810;61812;61813;61814;61816;61815;61817;61818;61819;61820;61821;61822;61823;61824;61825;61826;61827;61828;61829;61830;61831;61832;61833;61834;61835;61836;61837;61838;61839;61840;61841;61842;61843;61844;61845;61846;61847;61848;61849;61850;61851;61852;61853;61854;61855;61856;61857;61858;61860;61859;61861;61862;61863;61864;61865;61866;61868;61867;61870;61869;61871;61872;61873;61874;61876;61875;61878;61877;61879;61880;61881;61882;61884;61883;61885;61886;61887;61888;61889;61890;61891;61892;61893;61894;61895;61896;61898;61897;61900;61899;61901;61902;61904;61903;61905;61906;14776;61907;61909;61908;61911;61910;61912;13860;13861;13862;13864;13863;13865;13866;61913;13867;13869;13868;61914;13870;13871;13872;13873;13874;13876;13875;13877;13878;13880;13879;13881;13882;13883;13884;13885;13886;13887;13888;13889;13890;13891;13892;13893;14777;61915;13894;13895;13896;13897;13898;13899;13900;13901;13902;13903;13904;13905;13906;13907;13908;13909;13911;13910;13912;13913;13914;13915;13916;13917;13918;13919;13920;13921;13923;13922;13924;13925;13926;13927;13928;13929;13930;13932;13931;13934;13933;13935;13936;13937;13938;13939;13940;61916;13941;13942;13943;14778;13944;13945;13946;13947;61917;13948;13949;13950;13951;13952;13953;13954;13955;61918;13956;13957;13958;13959;13960;13961;13962;13963;13964;13965;13966;13967;13968;13969;13970;13971;13972;13973;61919;13974;13975;13976;13977;13978;13979;13980;13981;13982;13983;13984;13985;13986;13987;13988;13990;13989;13992;13991;13993;13994;13996;13995;13997;13998;13999;14000;14002;14001;14003;14004;14005;14006;14007;14008;14010;14009;14011;14012;14013;14014;14015;14016;14017;14018;14019;14020;14021;14022;14023;14024;14025;14026;14027;14028;14029;14031;14030;14032;14033;14034;14035;14036;14037;14038;14039;14040;14041;61920;14042;14043;14044;14045;14046;14048;14047;14050;14049;14051;14052;14054;14053;14055;14056;14057;14058;14059;14061;14060;61921;14062;14063;14064;14065;14066;14068;14067;14069;14070;14071;14072;14073;14074;14075;14076;14077;14078;14079;14080;14081;14082;14083;14084;14085;14086;14087;14088;14089;14090;14091;14092;14093;14094;14095;14096;14097;14098;14099;14100;14101;14102;14103;14104;14105;14106;14107;14108;14109;14110;14111;14112;14113;14114;14115;14116;14117;14118;14119;14120;14121;14122;14123;14124;14125;14126;14127;14128;14129;14130;14131;14132;14133;14134;14136;14135;14137;14138;14139;14140;14141;14142;14143;14144;14145;14146;14148;14147;14149;14150;14152;14151;14153;14154;14156;14155;14158;14157;14159;14160;14161;14162;14163;14164;14165;14166;14167;14168;14820;14170;14171;14172;14173;14174;14175;14176;14329;14328;14330;14331;14333;14332;14334;14335;14387;14673;14678;14679;14680;14723;14749;14750;14751;14752;14753;14754;14755;14794;14795;14796;14840;15413;15434;15435;15521;15522;15523;15546;24551;15547;15548;15549;15550;15551;15597;15598;15599;15600;15601;15602;15603;15635;15636;15637;15638;15650;15698;15697;15737;15699;15738;15739;15740;15769;15793;15794;15836;15839;15838;15915;15916;15917;15918;15920;15919;15956;15957;15998;15981;16015;16014;16035;16036;16037;16038;16076;16065;16078;16077;16079;16080;16081;16082;16114;16083;16115;16116;16117;16135;16157;16158;16184;16218;16219;16220;16240;16241;16242;16253;16243;16254;16255;16257;16256;16258;16259;16269;16290;16291;16292;16293;16294;16302;16359;16360;16375;16376;16377;16378;16379;16461;16473;17131;17139;61922;61924;61923;61925;17140;17215;17216;17277;17278;17279;17280;17281;17331;17332;17333;61926;17334;17347;17346;17658;17601;17668;17669;17670;17677;17678;18002;18003;18004;18032;18052;18091;18103;18104;18105;18106;18107;18171;18172;18173;18235;18236;18237;18273;18274;18275;18276;18305;18277;18306;18307;18308;18411;18412;18404;18434;18435;18440;18496;18497;18498;18499;18550;18561;18562;18583;18584;18597;18599;18598;18649;18675;18676;18677;19191;18678;19192;19201;19226;19265;19267;19885;19886;19887;19888;19889;19890;19891;19892;19893;19894;19895;19896;19897;19899;19898;19901;19900;19903;19902;19904;19905;19906;19907;19908;19909;19910;19911;19912;19913;19914;19915;19916;19917;19918;19919;19920;19921;19922;19923;20427;19984;20428;20429;19985;20039;20040;20041;20042;20430;20043;20431;20057;20432;20433;20119;20120;20121;20434;20435;20122;20123;20124;20125;20436;20437;20126;20127;20438;20128;20439;20440;20441;20442;20443;20444;20445;20446;20447;20448;20449;20450;20452;20453;20454;20455;20456;20457;20458;20459;20460;20461;20462;20463;20464;20465;20466;20467;20468;20469;20470;20471;20472;20473;20474;20475;20476;20477;20479;20478;20794;20793;20795;20796;20797;20809;20810;20817;20818;20819;20831;20832;20849;20850;20851;20852;20853;20854;20875;20876;20877;20878;20897;20939;20940;20942;20941;20964;20981;21002;21003;21004;21028;21037;21098;21114;21115;21132;21149;21133;21177;21178;21179;21200;21201;21202;21203;21206;21207;21281;21282;21283;21284;21320;21285;21356;21357;21358;21359;21360;21575;21598;21599;21600;21602;21603;21617;21635;21661;21668;21669;21670;21715;21716;21718;21717;21720;21719;21751;21752;21754;21753;21755;21769;21770;21776;21777;22013;22014;22019;22020;22042;22058;22053;23876;23875;23878;23877;23880;23879;23881;23882;23883;23884;23885;23886;23887;23888;23889;23890;23891;23892;23893;23895;23894;23896;23897;23898;23899;23900;23901;23902;23903;23904;23905;23906;23908;23907;24552;23909;24553;24554;24556;24555;24557;24558;24559;24560;24561;24562;24563;24564;24565;24566;24567;24568;24569;24570;24571;24572;24574;24573;24575;24576;24577;24578;24579;24580;24581;24582;24584;24583;24585;24586;24587;24588;24589;24590;24591;24592;24594;24593;24595;24596;24597;24598;24599;24600;24601;24602;24603;24605;24604;24607;24606;24608;24609;24610;24611;24613;24612;24615;24614;24616;24617;24618;24620;24619;24621;24622;24623;24624;24625;24626;24627;24628;24629;24630;24632;24631;24633;24634;24635;24636;24637;24638;24640;24639;24641;24642;24644;24643;24645;24646;24648;24647;24649;24650;24651;24652;24653;24654;24675;24655;24688;24687;24695;24689;24706;24753;24754;24778;24779;24804;24805;24806;24807;24808;24810;24809;24832;24831;24842;24843;24891;24892;24893;24894;24895;24939;24940;24941;37804;37324;24942;24943;24944;24945;24946;24947;25033;25034;25062;25063;25064;25113;25114;37164;37741;25115;25189;25157;37907;25190;25191;25212;25237;25265;25266;25310;25311;25429;25428;25430;25431;25439;25432;25440;25441;25475;25513;25514;25515;25516;25517;25518;25537;37988;25563;38078;25564;25565;37483;25598;25599;25600;25601;25602;25603;25666;25669;25670;25697;25685;25698;25721;25794;25750;25796;25795;25835;25836;25875;37370;36699;37033;36567;25891;25892;25893;25894;25895;25896;25923;37080;25945;25946;25947;25968;25969;25983;26006;26007;26008;26009;26045;26046;26047;26048;26049;26105;26106;26107;26188;26899;26900;26901;26902;26950;27069;27561;27070;27071;27519;27562;36338;27614;27623;27615;27624;27642;37643;27643;27817;37237;27849;27850;27851;28200;37167;28223;37122;37295;28273;28274;28275;37602;37783;28276;28324;36221;28352;29201;29202;29233;29234;29298;38147;29299;29300;29342;36831;38104;29718;38054;37598;37481;36522;36966;36423;37838;36944;36340;36574;37559;36747;37399;36254;37768;37534;37715;37196;37007;38065;36622;36456;37731;37539;36496;36483;37747;37925;37239;36934;37891;36582;38009;37138;37402;37432;36903;37053;38084;37010;36413;36858;37506;37204;37198;37672;36983;37798;37272;36891;37601;36928;37095;36651;36442;37592;37802;36353;37688;37317;37429;36268;36273;38052;36721;37665;36250;37864;37530;38007;36650;36334;36679;38085;38090;37550;36784;36975;36868;36572;36475;37790;36965;36352;36511;37004;37107;38043;37090;37970;36877;37682;37999;37066;38150;37528;36326;36562;37655;37171;37296;38072;37180;36737;36696;36937;36709;37791;36826;37628;37671;37648;37895;37812;37031;37551;37487;38111;37069;36375;36619;37179;36590;36480;37957;36556;37108;37852;36813;37514;36835;37736;36739;38142;37155;37319;37246;37952;37455;36787;37286;37669;36299;38030;37347;37442;37508;37034;36648;36548;36793;37523;37589;38068;36621;37118;37614;36873;36798;37519;36278;36523;37782;36776;37890;37221;37311;37938;37290;37457;37048;37144;36973;37383;37990;38141;37756;37590;37718;36802;36698;38038;38047;36470;38064;36672;37073;37840;36688;36850;36427;37877;38106;37424;37758;36446;36578;38108;36467;37256;37581;37166;37922;36707;37330;36542;36355;37446;37250;37143;37410;38096;36825;36290;38012;36816;37373;37191;36378;37353;36649;36930;37835;36554;37596;37202;36804;37478;36482;37044;37003;36235;37460;38136;37205;37815;37732;36715;43039;37169;36351;37091;36293;37752;37707;36775;36620;38076;37699;37510;37556;37869;38107;37172;37126;37258;37942;37904;37305;38162;38190;38163;38203;38682;38753;38752;38765;38766;47909;47908;47910;47911;38813;47912;47914;47913;38839;47915;38840;38841;38970;47916;38842;38843;47917;38852;47918;47919;47920;38921;47921;47922;47924;47923;47925;47926;47927;39321;39351;39352;39357;39358;47928;39359;39360;39366;39367;39368;38698;40457;38754;39385;39386;47929;39410;39409;39442;47930;47931;47932;39460;47933;39549;39484;47934;47935;39550;47936;39572;47937;47938;47939;47940;39615;47941;47942;47943;47944;47945;47946;47947;47948;40537;47949;40538;40539;47950;40595;40692;47951;40775;40781;40811;47952;40869;40936;47953;47954;47955;47956;41048;41063;41064;41615;41616;41617;41618;47957;47958;47959;41941;47960;47961;47962;41979;47963;42061;42405;47965;47964;47966;47967;47968;47969;47970;47971;47972;47973;47974;47975;47976;42788;42789;47977;47978;47979;47980;47981;47982;47983;42835;47984;47985;47986;47987;47988;47989;47990;47991;42887;42889;42888;47993;47992;47994;42917;47995;47996;47997;47998;47999;48000;48001;48002;48003;42969;48004;48005;43016;43040;43017;43073;48006;48007;48008;48009;48010;48011;48012;43105;48013;43106;48014;43162;48015;48017;48016;48018;48020;48019;48021;48022;48023;43392;48024;48026;48025;48028;48027;48030;48029;48032;48031;48033;48034;48035;48036;48037;48038;48039;44916;43816;48040;48041;43818;48042;48043;43848;48044;43849;48045;48046;48047;48048;48049;48050;44040;48051;48052;48053;48054;48055;48056;48057;44100;48058;48059;48060;48061;48062;48063;44325;48064;48066;48065;44355;44590;48067;48068;48069;48070;48071;48072;44626;44627;44628;44662;44629;44630;44631;48073;48074;44632;44663;48075;48077;48076;44917;48078;48079;44918;44923;48080;48081;44953;48082;44972;48083;45028;45058;45063;48084;48085;48086;48087;48088;48089;48090;48091;48092;48093;48094;48095;48096;45518;45519;48097;48098;45562;48099;48100;45587;48101;48102;48103;45601;45602;48104;48105;45618;48106;48107;48108;48109;46174;46184;48110;48111;48112;48113;48114;46262;48115;48116;48117;48118;48119;48120;48121;48122;48123;48124;49941;48125;48126;48127;46853;46854;48128;48129;48130;48131;48132;48133;48134;48135;48136;48137;48138;48139;48140;48141;48143;48142;48279;48335;48371;48398;48421;49116;49250;49251;49252;49253;49278;49298;49299;49638;49653;49665;49733;49734;49735;49736;49794;49822;49942;49943;50339;50352;50357;50358;50359;50405;50471;50501;50502;50569;50570;50578;50579;50580;50665;50666;50702;50816;50818;50817;50868;51085;51105;51195;51350;51384;51385;51789;51790;51792;51791;51843;51951;51967;51968;52059;52576;52648;52649;53444;53568;53837;54287;55613;55773;55823;56159;56298;56372;56401;56402;56427;56461;56550;56725;56774;57010;56909;57340;57339;57426;57490;57554;57758;57831;57832;57884;58176;57927;58192;58193;58439;58614;58758;59105;59252;59303;59284;36583;36545;36347;38083;36369;36426;37962;37526;36842;36432;37485;36524;36404;38128;36463;36277;37567;36558;37710;37215;37092;36399;38115;36549;37818;36963;36420;37331;36449;37571;37016;36980;36297;36383;38087;36924;37405;36358;37880;37189;37403;37194;36360;36700;37312;37027;36386;37371;36516;37451;36638;37545;36634;37621;37991;36717;37575;38056;37527;36350;37588;37613;37681;36248;36879;36436;36441;37420;37139;36629;37899;36964;37368;36552;36584;37218;37726;36539;37969;36729;37739;36276;37868;37563;36438;37269;37544;37772;37379;36348;37882;36342;36687;37236;36852;36625;36569;38138;36958;37050;36938;37637;37440;37537;37626;37421;37584;36486;38042;37475;36563;37945;37435;37211;36830;36526;36689;37612;37401;36770;36531;37587;36245;37515;37407;37284;36561;36557;37529;36242;38060;36794;36632;36753;36624;37509;37212;38014;37106;38063;36653;36743;37883;36759;37661;36594;37454;36948;36890;36598;37703;37949;36999;37814;37030;36926;36736;38032;36260;38013;37114;36349;37294;37300;37900;37431;37658;36425;36823;37308;36969;37569;36566;37751;36840;36844;36288;36750;37477;38035;37535;37065;37851;36859;36960;38018;37285;36640;37572;36883;38066;36292;38027;37099;36821;36234;37414;38069;37127;36321;36462;36473;37839;37874;37473;36693;36909;36977;36723;36505;36993;36990;37093;37915;36513;37645;36388;36762;36308;37585;36846;37701;36534;36294;37103;36414;36306;36599;38137;37078;37418;37493;36346;36763;37994;37600;37496;37415;37244;37673;36677;43074;36407;36606;37927;38149;36671;37766;36403;36601;38051;37419;38048;37261;37354;36812;37235;38117;37704;36675;36751;37049;37409;36429;37855;37634;37087;37610;36591;37259;37346;36255;37334;36535;37253;36318;36295;37282;36918;36781;37785;37871;37998;37134;38164;36943;38165;38191;38204;38192;48144;38658;38683;38693;38707;38708;38853;38767;38814;38815;38844;38845;48145;38865;38864;48146;39761;38981;38982;39316;48147;39322;39323;39324;39429;39443;39444;39485;39478;39486;48148;39581;39552;39562;39566;39573;39582;48149;39803;39849;39804;39871;39872;39873;48150;39874;40359;40397;40398;40399;42991;40415;41949;41950;40430;40438;40464;40465;43075;40497;40498;40509;40521;40522;40523;40540;40584;40585;40596;40597;40636;40637;40638;48151;40693;40695;40694;40696;40697;40698;40699;40700;40701;40761;40762;40763;40764;40812;40813;40900;40920;43851;40965;40966;40967;40968;40980;40997;48152;41030;41027;41049;48153;43852;41050;41051;43608;41619;41639;41640;48154;41959;41960;41961;42046;42047;42062;42063;42075;42076;42090;42091;42092;42095;48155;42096;42097;42130;42131;42133;42132;48156;42181;42198;42199;42215;42240;42284;42992;42311;42993;42356;42429;48157;43144;42809;42810;42811;48158;48159;42918;48160;42943;42994;42995;42996;42997;42998;42999;43000;43019;43018;43020;43021;43023;43022;43041;43024;43042;43043;43044;43045;43077;43076;46175;48161;43167;43362;43363;43393;48162;43394;43605;43609;43610;48163;43613;43853;48164;43880;43867;43881;44041;48165;44042;48166;44043;48167;48168;44061;48169;44101;44102;44103;44123;44303;44321;48170;48171;44334;44356;44385;44396;44402;44408;48172;44604;48173;44650;48174;44664;44673;44672;48175;44868;44869;44870;44919;44954;44955;44963;44989;44995;44997;44996;45029;45030;45041;45031;45124;45115;45136;45137;48176;48177;45370;45449;45521;45520;45530;45548;45563;48178;48179;45564;48180;45565;45567;45566;45588;46176;46177;46227;48181;48182;46330;46331;46663;46664;48183;46678;46679;46680;46690;48184;46711;46699;46726;46734;46743;46744;48185;46849;48187;48186;46877;46878;47041;47042;47115;47116;48188;47127;47133;47132;48189;48190;48191;48192;48193;48194;48195;48196;48198;48197;48199;48200;48209;48251;48271;48272;48311;48318;48319;48345;48336;48346;48347;48348;48399;48403;48402;48422;48428;48933;48898;49064;49063;49078;49099;49100;49117;49190;49202;49205;49207;49206;49208;49209;49254;49263;49654;49300;49688;49666;49737;49739;49738;49740;49741;49743;49742;49784;49795;49967;49970;49971;49972;49973;49989;50008;50076;50296;50313;50315;50314;50321;50406;50424;50423;50429;50425;50472;50445;50503;50533;50534;50535;50536;50558;50581;50571;50582;50583;50606;50607;50608;50609;50628;50667;50819;50820;50827;50839;50848;50849;50981;51070;51071;51106;51182;51196;51336;51353;51337;51380;51793;51794;51795;51796;51797;51799;51798;51800;51801;51802;51803;51805;51804;51806;51807;51808;51809;51810;51865;51899;51898;51931;51916;51932;51982;51992;52035;52036;52041;52060;52061;52160;52454;52469;52523;52541;52564;52577;52592;52593;52699;52708;52729;52730;52747;52748;52957;52958;53001;53226;53227;53244;53272;53273;53274;53289;53290;53301;53302;53309;53327;53348;53349;53350;53351;53369;53398;53509;53524;53538;53542;53616;53617;53629;53628;53882;53908;53909;53910;54288;54289;54290;54298;54577;54578;54589;54610;54611;54626;54638;54639;54839;54918;54919;54939;54940;54964;54991;55111;55112;55171;55614;55406;55634;55615;55664;55665;55666;55683;55695;55709;55848;55849;55853;55916;55894;56083;56084;56085;56109;56118;56160;61927;56324;56325;61928;56373;56374;61929;61930;56403;56428;56429;56447;61931;56462;56525;56526;56529;56530;56532;56531;61932;56551;56598;61933;56599;56627;56687;61934;56707;56708;56726;56764;56765;61935;61936;56810;56809;61937;56858;56910;56953;61938;56968;57046;57052;57079;61939;57145;57146;57320;57319;57331;57332;61941;61940;57407;57412;57413;57427;57428;57429;57480;57530;57567;57568;57593;61942;57724;57819;61943;57833;57912;61944;57955;58026;58082;58163;58103;58177;58178;61945;61946;58771;58424;58440;58474;58475;58476;58490;58491;58505;58506;58522;61947;58531;58557;58558;61948;58575;58585;58599;58716;58717;58734;58759;61949;58830;58806;58865;61950;58890;58921;58939;59010;59011;59012;59087;59096;61951;59185;61952;59221;61953;61954;59304;59305;59315;59319;59362;59440;59681;61955;59518;59519;59635;61956;59652;59561;59653;59710;59843;59860;61957;61558;61958;61959;61960;61962;61961;61964;61963;61965;61966;61967;61968;61969;61970;61971;61972;61974;61973;61975;61976;61977;61978;61979;61981;61980;61982;61983;61984;61986;61985;61987;61988;61989;61991;61990;61992;62444;62445;62401;62402;62403;62386;62423;62404;62424;62425;62447;62446;62491;62504;62659;62540;62972;62794;63017;63134;63104;63161;63199;63257;63284;63312;63344;63331;63374;63464;64279;64505;64504;64551;64563;64626;64647;64745;64861;64902;64942;66042;66041;66043;66044;66045;66047;66046;66048;66049;66050;66052;66051;66053;66054;66055;66057;66056;66058;66059;66060;66062;66061;66063;66064;66065;66067;66066;66068;66069;66070;66071;66072;66073;66074;66075;66076;66078;66077;66079;66080;66081;66083;66082;66084;66085;66086;66087;66088;66089;66090;66092;66091;66093;66094;66095;66097;66096;66098;66099;66100;66101;66102;66103;66104;66105;66106;66107;66108;66109;66110;66111;66113;66112;66114;66115;66116;66117;66118;66119;66120;66121;66122;66123;66124;66125;66126;66128;66127;66130;66129;66131;66132;66133;66134;66135;66137;66136;66138;66139;66140;66142;66141;66143;66145;66144;66146;66147;66148;66150;66149;66151;66153;66152;66154;66155;66156;66157;66186;66251;66252;66265;66266;66285;66286;66313;66330;66342;66402;66614;66535;66615;66689;66881;66890;66911;66899;66977;66975;66978;67011;67010;67013;67012;67014;67104;67132;67133;67134;67135;67136;67137;67253;68862;67254;69067;69053;69089;69097;69154;69155;69220;69190;69230;69231;69232;69314;69338;69339;69439;69465;69466;69489;69467;69491;69490;69548;69540;69549;69794;69822;69842;69890;69891;69892;69918;69939;70004;70005;70132;70133;70185;70162;70242;70300;70325;70383;70384;70385;70519;70518;70521;70520;70522;70573;70523;70678;70680;70679;70681;70689;70837;70968;70967;70998;71027;71026;71028;71029;71030;71032;71031;71074;71075;71076;71091;71092;71099;71100;71508;71101;71509;71510;71511;71512;71554;71604;71605;71607;71606;71609;71608;72018;71936;72020;72019;72021;72022;72023;72024;72055;72056;72081;72099;72082;72100;72101;72131;72133;72132;72134;72135;72136;72467;72468;72495;72529;72530;72531;72532;72550;72552;72551;72563;72553;72564;72594;72595;72596;72614;72597;72641;72642;72919;72920;72921;72998;72999;73000;73001;73002;73003;73005;73004;73051;73052;73053;73067;73066;73068;73443;73128;73444;73446;73445;73447;73448;73449;73467;73466;73489;73604;73582;73931;73932;73933;73976;73934;73977;74029;73978;74030;74068;74069;74071;74070;74072;74074;74073;74075;74077;74076;74078;74079;74080;74082;74081;74415;74416;74417;74419;74418;74446;74447;74448;74450;74449;74451;74452;74453;74480;74454;74481;76068;74513;76423;76436;76435;76437;76438;76439;76469;76440;76470;76471;76480;76481;76482;76886;76885;76887;76923;76924;76925;76952;76954;76953;76955;77037;77038;77039;77040;77041;77042;77074;77096;77075;77097;77639;77098;77640;77641;77642;77644;77643;77646;77645;77647;77648;77649;77650;77651;77653;77652;77654;77655;77656;77658;77657;77802;77838;77839;77841;77840;77842;77843;77887;77888;77889;77977;77950;78018;78019;78061;78612;78062;78613;78615;78614;78616;78664;78617;78665;78684;78666;78685;78686;78687;78718;78688;78731;79321;78732;79322;79347;79366;79367;79405;79406;79407;79408;79409;79411;79410;79571;79572;79573;79589;79588;79610;79611;79612;79613;79630;79632;79631;79633;79984;79983;79985;79987;79986;79988;79989;79990;79992;79991;79993;79995;79994;79996;80042;80041;80382;80383;80384;80385;80386;80426;80425;80427;80428;80429;80431;80430;80432;80433;80434;80436;80435;80437;80466;80456;80467;80560;80468;80561;80562;80563;81194;80578;81195;81197;81196;81198;81233;81234;81235;81236;81280;81237;81281;81283;81282;81284;81333;81334;81335;81336;81932;81337;81933;81934;81935;81937;81936;81938;81939;81940;81942;81941;81943;82315;81944;82316;82317;82318;82320;82319;82321;82323;82322;82324;82326;82325;82327;82329;82328;82330;82331;82332;82333;82334;82336;82335;82337;82338;82339;82340;82341;82342;82343;82345;82344;82347;82346;82348;82349;82350;82351;82352;82354;82353;82355;82356;82358;82357;82360;82359;82361;82362;82364;82363;82365;82366;82367;82368;82369;82370;82371;82372;82373;82375;82374;82376;82377;82378;82379;82381;82380;82382;82383;82384;82386;82385;82387;82388;82389;82390;82391;82392;82393;82395;82394;82396;82397;82398;82400;82399;82401;82402;82403;82404;82405;82406;82407;82408;82409;82410;82411;82412;82413;82414;82416;82415;82418;82417;82419;82420;82422;82421;82446;82447;82448;82449;82484;82450;82451;82452;82453;82454;82455;82456;82457;82458;82459;82486;82485;82558;82559;82560;82561;82562;82563;82617;82618;82633;82685;82684;82686;82736;82738;82737;83097;83096;83098;83099;83100;83102;83101;83103;83104;83155;83157;83156;83158;83169;83170;83244;83243;83245;83246;83247;83248;83249;83254;83250;83274;83275;83276;83284;83329;64561;64560;65982;66392;73226;80913;80914;81495;32324;51359;11652;20093;64490;11653;14324;19473;15651;49792;14344;36074;42262;72094;47860;47861;62787;62788;26010;73474;73475;73476;73477;73478;73479;73481;73480;73482;73483;73484;73473;86674;10635;129355;129359;84796;93845;86874;93828;87725;91765;93609;95540;96486;99670;125735;104437;121191;129062;129360;87726;72713;93719;93739;93829;91766;93788;93610;95632;95541;96487;105076;125732;121422;129356;129353;128879;131289;133679;148830;138099;141203;142219;84797;93740;93810;93718;105077;125730;121394;128973;129501;132051;128974;96488;133682;138101;148833;141205;142220;148829;149002;152112;157853;154939;157911;105078;157461;128876;129358;129352;132054;105079;133678;148834;138103;141198;142216;148828;149030;152111;154973;157855;157467;157921;125731;133681;148835;138102;141204;148827;149238;152115;157857;154937;129052;128878;157464;132050;149031;152117;157856;154940;157462;157909;148831;141202;142221;148826;154635;152114;157858;157919;157468;157459;157920;63147;157460;64932;72709;63148;64933;72710;63149;64934;72711;65731;63150;65732;64935;72373;72374;72712;79826;129354;121190;84798;93846;87210;87727;87728;91767;93616;95633;93611;96489;122258;129051;128975;129357;132079;133680;138100;64502;130626;63268;140188;130627;10562;49778;18248;17688;18370;153617;157126;87922;95924;25702;31732;31733;42871;70397;70398;83953;87923;83954;32397;22046;84046;73186;73187;70396;73185;73183;111531;153891;155446;139744;155017;73184;157872;81247;127116;127117;128416;139732;148958;150864;139745;153460;29900;25089;25091;73225;81246;73832;76579;79123;82529;90835;91991;140658;73224;91992;111532;141105;100784;130271;135972;135181;136667;143116;146620;146619;126824;125779;125780;125781;126825;134762;152042;145262;150860;87955;87989;97212;97213;66318;67119;68933;66319;67120;72729;73833;76145;81106;81422;82620;85160;88624;97417;97352;100572;110813;127115;141833;144970;148261;154721;72730;86311;93720;90424;76118;73834;81815;83735;85402;73830;141779;141778;77477;95469;152041;95470;124366;70195;44986;69955;70785;148846;57713;73835;79234;73831;156024;156023;57728;69915;69916;103529;102355;100131;100130;42290;61719;65942;50986;72349;65580;72216;72204;72186;87500;89940;91310;100125;110272;137648;136668;144450;91500;73854;76580;95812;73852;73853;74038;136666;91501;65738;65737;72587;72588;76119;76120;73137;73836;73136;72622;72621;76146;77558;79215;102496;70412;70413;59110;58582;59111;59112;58581;38654;11313;26967;10136;45627;66634;22256;25683;31640;14804;11577;11570;66633;10137;20987;19252;14826;14827;15823;14825;19310;100597;100595;100596;10138;10139;34849;54604;62125;32399;10422;60033;60034;60035;64451;12218;66717;25993;126244;14243;51998;53448;53449;58965;62358;63267;72370;72215;72878;73305;65899;66201;66390;66841;70293;71500;76148;73804;76405;77183;78063;78109;80121;84164;91856;93195;20255;19233;19949;31346;45438;18035;65900;18430;18644;47902;72618;73568;62368;72212;38207;26197;45579;72217;13842;14379;19585;21728;11910;19600;21116;25118;10620;10382;10346;24785;26067;15867;20812;24909;24910;25928;18541;11890;18290;10141;56820;11335;93911;51839;51838;102083;102082;73149;104667;101114;85380;55133;55134;140132;127910;108712;104668;136339;122582;123752;59453;33392;136338;138175;138214;138174;138177;138176;138216;138215;138336;138337;139059;139060;139061;136968;139034;140792;141009;141363;141815;142456;142740;142901;143156;143588;144809;145448;146207;146271;146586;147192;147812;148298;148565;148693;148939;149090;149476;150138;150281;150721;150868;150999;151810;152004;152232;152685;155601;153368;153369;153450;153666;153839;153995;154327;154738;155653;156011;156077;156545;156916;157369;157881;158097;158583;159037;136969;112153;112152;71176;88955;12107;49675;93231;93226;77910;72417;56632;56448;154998;56633;109915;109916;72879;140655;97994;139615;125154;68880;68879;130091;101027;100551;105109;108813;51351;51352;97085;93227;92361;56998;93232;153488;139231;140517;138602;153444;138603;151623;136664;84669;136665;93228;93233;133306;104497;81261;74250;76404;74251;135177;62033;144813;118095;144792;50346;85381;92219;92220;93229;146449;147727;93234;151600;153440;154992;156101;157430;151591;158785;147724;151593;148481;147723;148462;150362;122256;158784;148472;139483;138523;137728;136617;142713;141452;146417;147726;147725;149384;156113;129056;136618;129057;88700;131186;122927;122546;92413;92414;92415;92362;92416;92374;92370;92376;92375;112279;131023;92363;92417;92371;92364;92418;92419;92420;92365;92421;92366;92377;92422;92423;92424;92372;92425;92426;92427;92367;92428;92429;92430;92368;92431;92432;92373;132101;92369;92433;92434;92435;92436;92437;92438;92439;93235;93230;70942;108521;130432;103857;112114;30213;39420;134714;117335;123797;30212;99763;71175;71077;59732;59731;30058;22926;15763;11972;90925;11623;16179;18424;64377;80889;93222;10473;31345;34471;34470;11133;10735;121039;142960;70941;10359;11124;11125;65901;11735;65902;141366;72905;141341;141340;156941;72904;31719;31718;59108;11481;52050;54607;70682;11303;11686;11685;31647;31786;46885;85513;11519;24813;11809;11552;36100;36101;10947;11937;13651;11039;10888;12255;11622;11609;76496;76497;76498;18008;67124;67125;67126;67127;67128;73962;67123;27597;21235;23641;56564;56565;40419;46182;46183;51974;51090;64930;44383;30055;44382;46817;64931;63638;72334;67243;88931;126648;126506;122243;122363;81777;65914;154963;135921;76512;65915;81778;149642;48201;71212;15566;18059;11924;11544;35556;23934;18691;20210;22364;47128;77983;22527;18690;70023;35749;34095;36050;24874;58907;14257;51852;15639;35090;13843;15586;35953;22049;11337;88934;19776;69051;16170;39537;64096;42842;54842;39538;55410;52051;93527;19718;17604;18065;18244;18813;14668;15432;57768;57919;62743;62997;63548;58005;58348;58897;59408;60042;61714;62579;62588;17218;17603;18064;18243;18689;19719;29744;58898;59407;60043;61715;20842;24701;24875;25349;21225;21322;21627;22095;22369;23633;23930;62580;62589;62744;62998;63549;70714;70947;63550;64722;65130;65805;66479;66992;69268;69992;63551;64723;65131;65806;28329;30209;31652;31864;33393;33505;34268;34766;35218;35251;25735;25820;26068;27521;66480;66993;69269;69993;70948;70715;71346;72330;73098;73768;74439;76762;77904;77498;70716;70949;71347;72331;73099;73769;74440;33522;38200;39372;40351;40478;40930;42305;43173;44658;45392;34267;34767;35219;35581;35778;36045;36215;76763;77905;77499;78472;79664;80522;82038;82039;81520;82502;83438;84579;77500;77906;78473;79665;39853;47123;47781;49145;50084;50382;51120;52530;52766;53593;40479;40931;42306;43174;44659;45393;80523;103569;50085;50383;51121;52531;52767;53594;55287;45133;55901;56037;56119;56334;56750;57769;58006;58349;45403;47124;47782;47829;49146;81521;82040;82041;82503;82583;82998;83439;85274;84580;85688;85385;86070;86763;87475;88753;88460;89874;90791;84581;85275;57316;53595;85386;85689;86418;86071;86764;87476;88461;88754;89875;90792;91546;92754;95474;93661;94959;95885;96775;97638;90793;99630;91547;92755;117941;93662;94232;55288;95437;94960;95475;95886;96776;97639;99125;99126;100126;99631;100809;102358;103679;105212;104637;106302;108586;108755;108376;109868;110809;100127;99632;102359;100810;104638;103680;105040;105213;105616;106303;106561;108377;108587;108756;55902;56038;56120;109869;110810;117670;117920;117293;119606;118395;121477;122194;123134;122950;126001;126071;126624;125363;128530;110811;117668;117294;117921;119604;118397;122233;121512;123012;122948;125361;125877;126072;126002;128061;126622;128062;138083;139063;139787;128528;131767;130172;132714;132711;133677;135201;134407;135274;136357;137051;128525;129101;56335;130170;131773;132709;132715;133693;134405;135202;135276;136404;137049;138085;138445;149255;148775;150122;151574;152414;153090;153877;139074;139791;140734;141570;142913;144770;144278;142611;146424;145446;146781;148012;139040;56751;139789;140732;141571;142910;142613;144282;144771;145465;146425;146780;148014;148767;149281;150802;150119;57351;151571;152635;152412;153105;153878;155915;154817;158657;156603;157446;153089;158692;153881;155917;154819;157443;156606;158654;14197;158694;12642;15408;15712;14181;14728;16085;40362;20862;14192;57770;57920;62745;63552;62999;58007;58350;59410;58899;61716;60044;62590;62581;17605;19694;19269;58900;59409;20735;60045;24748;61717;25350;29743;21628;22096;22370;23635;23929;62591;62582;62746;70717;63000;71044;63553;64724;65191;64725;65192;65807;65808;66481;66482;66994;66995;69270;69271;69994;31193;32134;33563;34294;34819;35287;35977;39493;40664;45110;25754;25837;28226;69995;70718;71045;71348;72332;73100;73770;76764;74441;77501;77907;44111;50384;51122;45394;44961;47125;47783;49147;50086;47784;53596;55289;56039;55886;56121;56752;57771;58008;58351;50087;50385;51123;49148;52532;52768;76765;77502;77908;78474;79666;81522;80524;82504;83464;84582;87110;95476;96269;96905;97663;99968;105044;101772;105507;109946;108519;111044;55887;56040;56122;111981;118593;117939;122402;121600;123509;123507;125359;125950;126218;128775;126704;128972;128970;138096;139185;129390;139870;130365;131956;133691;132774;135413;136359;137087;56336;138589;139318;148773;149257;149528;151613;150157;153111;152452;154060;139868;141775;143426;143058;144284;144854;145468;146783;148110;148395;56753;57352;152503;152633;154059;155919;156195;156610;157907;154875;158069;158653;11590;158929;16172;12016;35600;50001;50002;55801;58435;59980;59643;63643;82828;90510;79638;97833;100464;103876;57033;138554;90149;72836;72837;72832;72833;72834;72835;74496;33950;72780;10356;12229;12204;62758;51835;51834;55532;51836;11018;11314;62028;10357;11161;10939;10934;33395;11163;18027;29314;15465;10143;10142;11159;11808;11835;22319;15464;10885;11308;10673;125313;10862;11067;108593;11214;11870;91827;10674;108761;64784;69482;10144;11217;10145;108409;73756;10390;10391;102683;16169;10418;21309;10516;10822;11504;108373;49698;49697;49699;49700;62718;18049;66497;62717;21757;18359;11931;72179;20342;20373;20930;68995;72686;72906;81699;22055;64936;56512;21053;20841;19525;19715;21052;21239;19716;20838;29996;16143;14327;53288;12029;21246;25546;11489;25116;11310;11877;11836;22413;18218;11770;14182;14838;11851;17815;30219;17816;17817;17818;17819;17820;17821;17822;17823;17824;17825;17826;17827;17828;17799;17829;17800;32137;17691;17830;17697;17831;17801;17802;17803;17804;17805;17832;25759;29251;17833;34159;42899;17834;57604;62927;17806;17807;17808;17809;25242;29345;34160;35766;42900;17835;46328;46702;47158;48759;49711;50527;57605;17810;58802;59448;62637;62638;62639;63617;65733;66177;68937;70461;71971;71972;57606;58661;59967;59449;62640;62641;62642;63618;65734;68938;66178;88379;70462;71973;71974;73572;73318;76529;77669;84924;85536;86657;86546;86658;87419;88380;89054;90829;90682;90830;91993;91994;93000;93001;93375;93376;94165;94196;95876;95877;99514;99510;101977;101819;104048;103965;106098;106097;17836;109166;109167;111153;111154;118233;66179;88381;68939;70463;71975;71976;73573;73574;76530;77670;99511;86659;78477;88382;80886;85537;82799;82800;85538;84767;85539;85223;86660;86547;86661;87420;88383;89055;90831;90683;90832;91995;91996;93002;93003;93377;93378;94166;95878;94197;95879;99515;99512;101820;101978;104049;103966;106099;106100;109168;109169;111155;111156;118234;121227;124158;126782;132956;130025;138571;135699;141796;145252;88384;87421;89056;90833;90684;90834;91997;91998;93004;93005;93379;93380;94167;94198;95880;95881;99516;99513;101821;101979;104050;106101;103967;109170;106102;111157;109171;111158;118235;121228;124159;126783;130026;132957;83347;135700;138570;141797;145247;148936;154259;151969;156907;36020;17811;17812;17813;17814;34161;17837;111159;118236;111160;121229;124160;130027;126784;132958;135701;138560;141798;148937;145251;154258;151968;21632;156908;61393;10343;64503;14831;14319;17838;96723;96724;96725;96726;99517;99518;101811;96727;96728;99519;96729;99520;133181;71116;124174;124175;138561;11299;29346;46816;61696;83292;83293;83294;83296;83295;86548;90685;83297;96767;96766;96769;96768;96770;96771;99593;101895;103536;106103;111593;111600;138902;138904;138896;138903;138039;138568;138569;141847;138567;145538;154267;148986;138901;32138;46815;34162;34727;88698;52053;52054;16093;10626;14343;19416;71862;91823;11192;15449;15477;17313;11842;25198;17690;24905;57558;10481;17698;10719;64263;129468;147021;18618;146199;154416;154417;63563;49774;63562;71159;66361;73757;30057;66360;150054;49775;49776;61429;71635;64690;61430;60099;65604;71636;154935;150055;150056;157377;150057;153612;10424;10425;16045;73685;73682;73683;73125;73124;153046;35619;35588;41646;42150;20341;20340;33272;15542;10761;122316;12017;10721;10665;10146;65721;108716;108717;11730;20932;20931;11608;108718;110230;148832;10147;83955;110231;25799;88964;11219;86949;88904;90774;89028;92465;97192;97193;99440;96833;108689;110096;118398;120197;120198;123462;121620;126627;128118;130433;138562;139910;142144;149280;148297;150798;157339;157425;154776;71458;47833;88965;25612;10148;70566;70564;112118;103872;102780;103926;103970;127136;92541;102781;110943;110944;14378;119780;10494;11830;43815;10150;42409;118730;43614;10151;10152;11600;11020;15572;18294;18295;18223;18142;97664;97665;100321;76475;95823;11737;72830;104128;12258;11514;11474;70585;81791;100322;11897;11898;11899;81405;81404;102860;81403;102861;62992;63185;62990;62989;62991;63186;63688;90713;90603;96485;90602;29929;29930;29928;31342;15765;140657;15766;58769;15767;19503;58770;19301;18358;49779;102709;102710;102711;102712;102713;67200;118086;118087;29220;29221;66394;29222;29223;29224;29225;10153;10154;10468;19696;28377;31135;31343;10155;19695;100511;10689;10691;10156;10580;10681;10364;12225;12077;10352;90254;10157;58651;64582;50545;50546;14272;11106;50547;84006;119681;25800;18257;25767;12104;44064;11827;11158;44066;12119;119682;65632;17594;15421;33523;34447;60081;34507;60080;60082;21154;70943;10360;10586;149508;17309;127140;127141;127142;127143;127145;127144;127147;127146;127148;127149;127150;127151;127152;127153;127155;127154;127157;127156;127159;127158;127160;127161;127162;127163;127164;127165;127166;127167;127168;127169;127170;127171;127172;127173;127174;127175;127176;127178;127177;127179;127180;127181;127182;127183;127184;127185;127186;127187;127188;127189;127191;127190;127192;127193;127194;127196;127195;127197;127199;127198;127200;127201;127202;127204;127203;127205;127206;127207;127209;127210;127208;127211;127212;127213;127214;127215;127216;127217;127218;127219;127221;127220;127223;127222;127224;127225;127226;127227;127228;127229;127230;127231;127232;127234;127233;127235;127236;127237;127238;127239;127240;127242;127241;127243;127244;127245;127246;127247;127248;127250;127249;127251;127252;127253;127254;127255;127256;127258;127257;127259;127260;127261;127262;127263;127264;127266;127265;127267;127268;127269;127270;127271;127272;127273;127274;127275;127276;127277;127278;127280;127279;127282;127281;127283;127284;127285;127286;127287;127288;127289;127290;127291;127292;127293;127294;127295;127296;127297;127298;127299;127300;127301;127302;127303;127304;127305;127306;127307;127308;127309;127310;127311;127313;127312;127314;127315;127316;127317;127318;127319;127320;127321;127322;127323;127324;127325;127326;127328;127327;127329;127330;127331;127333;127332;127334;127335;127336;127337;127338;127339;127340;127342;127341;127343;127344;127346;127345;127347;127348;127349;127350;127352;127351;127353;127354;127355;127356;127358;127357;127359;127361;127360;127362;127363;127364;127365;127366;127367;127369;127368;127370;127371;127372;127373;127374;127375;127376;127377;127378;127379;127380;127381;127382;127383;127384;127386;127385;127388;127387;127389;127390;127391;127392;127393;127394;127396;127395;127398;127397;127399;127400;127401;127402;127403;127404;127405;127406;127407;127409;127408;127410;127411;127412;127413;127414;127415;127416;127417;127418;127419;127420;127421;127422;127423;127424;127426;127425;127427;127428;127429;127430;127431;127432;127433;127434;127435;127436;127437;127438;127439;127440;127441;127442;127443;127444;127445;127446;127447;127448;127449;127450;127452;127451;127453;127454;127456;127455;127457;127458;128703;127459;128704;128701;128702;128695;128696;128693;128694;128699;128700;128691;128687;128692;128688;128689;128690;128697;128705;128698;129901;129900;129898;129899;129904;129905;129921;129920;129932;129933;129912;129913;129906;129907;129883;129884;129887;129886;129888;129889;129934;129935;129892;129893;129926;129927;129914;129915;129894;129895;129890;129891;129929;129928;129911;129910;129936;129937;130202;130201;129924;129925;129903;129902;129922;129923;129908;129909;129918;129919;129931;129930;129940;129941;129938;129939;129916;129917;129897;129896;131768;131769;131770;131771;131776;131777;131417;131774;131418;131404;131409;131405;131410;131413;131414;131425;131426;131406;131407;131415;131416;131411;131421;131412;131419;131422;131423;131420;131424;131408;132457;132458;132505;132506;132443;132444;132508;132507;132461;132462;132473;132472;132477;132476;132503;132504;132497;132470;132498;132471;132493;132501;132494;132502;132441;132442;132479;132480;132487;132488;132447;132448;132460;132459;132455;132456;132485;132486;132491;132492;132511;132512;132474;132475;132509;132510;132446;132445;132454;132453;132452;132451;132484;132483;132496;132495;132466;132467;132433;132449;132434;132450;132435;132436;132468;132469;132463;132464;132465;132437;132438;132587;132588;132439;132440;132489;132490;132481;132482;132499;132500;132478;133086;133072;133087;133073;133070;133080;133071;133081;133084;133085;133074;133075;133082;133083;133076;133077;133079;134320;134321;134324;134325;134316;134317;135759;135760;135761;135763;135762;135764;134309;134310;134411;134412;134322;134323;134318;134319;134314;134315;134313;134312;134409;134410;134311;136902;136903;136908;136909;136906;136907;136904;136905;136910;136911;137058;138766;138767;138774;138773;138771;138772;138777;138778;138779;138780;138768;138769;138775;138776;138770;140281;140292;140293;140697;140282;140698;141400;141399;141401;141406;141402;140276;141405;140288;140289;140290;140291;140283;140284;140277;140274;140275;140278;141403;141404;141408;141407;140286;140287;140279;140280;140285;143960;143961;143895;143894;143916;143915;143939;143938;143917;143918;143906;143907;143952;143953;143908;143909;143896;143897;143927;143928;143987;143986;143930;143931;143925;143926;143998;143999;143944;143943;143923;143924;143982;143983;143985;143984;143888;143889;143912;143892;143893;143957;143956;143942;143911;143941;144086;144085;143965;143964;143929;143967;143966;143962;143963;144000;144001;143945;143969;143901;143900;143980;143968;143981;143959;143958;143921;143922;143988;143989;143920;143919;143935;143934;143978;143979;143955;143954;144003;144002;143913;143914;143948;143949;143996;143997;143933;143932;144009;144010;143950;143951;143972;143973;143936;143937;143992;143993;144048;144049;145703;145702;143898;143899;143970;143971;143947;143946;143994;143995;144008;144007;143974;143975;143890;143891;143902;143903;143904;143905;144005;144006;144088;144087;143976;143977;143990;143991;143940;147405;147406;147313;147339;147340;147312;147408;147407;147298;147299;147293;147292;147390;147391;147274;147273;147321;147322;147400;147287;147288;147337;147338;147370;147371;147373;147372;147310;147311;147387;147386;147378;147379;147398;147362;147361;147280;147399;147279;147325;147326;147300;147301;147290;147291;147359;149336;147360;147278;147277;147316;147350;149335;147349;147303;147302;147394;147238;147395;147237;147369;147347;147368;147348;149337;147374;149338;147375;147353;147354;147253;147254;147269;147270;147343;147344;147710;147711;147381;147259;147380;147258;147385;147384;147366;147367;147252;147251;147403;147404;147409;147410;147328;147327;147257;147389;147388;147346;147345;147248;147247;147281;147282;147240;147239;147356;147355;147332;147331;147264;147309;147308;147364;147363;147383;147382;147265;147266;147272;147271;147335;147336;147396;147397;147351;147709;147708;147334;147352;147333;147323;147324;147245;147246;147297;147296;147305;147304;147376;147377;147295;147294;147393;147392;147283;147401;147284;147402;147263;147262;147317;147318;147244;147243;147319;147320;147285;147276;147275;147315;147286;147314;147307;147306;147357;147358;147242;147241;147249;147250;147289;147267;147268;147261;147260;147342;147341;154552;154553;154605;154607;154585;154500;154590;154609;154478;154531;154536;154625;154636;154615;154515;154480;154479;154533;154571;154522;154517;154521;154527;154617;154573;154623;154524;154507;154530;154465;154594;154622;154624;154575;154546;154501;154488;154545;154520;154613;154564;154563;154534;154572;154481;154582;154539;154595;154475;154489;154580;154540;154547;154583;154499;154600;154510;154535;154474;154463;154599;154593;154597;154559;154452;154577;154626;154574;154508;154502;154639;154592;154567;154619;154506;154557;154556;154621;154561;154548;154482;154560;154596;154519;154633;154587;154470;154551;154550;154511;154505;154631;154518;154493;154492;154544;154555;154586;154464;154628;154566;154441;154450;154604;154581;154562;154532;154579;154487;154516;154528;154467;154483;154490;154608;154523;154578;154494;154457;154462;154598;154543;154526;154542;154466;154565;154476;154509;154616;154447;154445;154554;154603;154570;154610;154486;154504;154591;154503;154541;154614;154461;154584;154485;154602;154576;154568;154525;154496;154601;154495;154454;154498;154538;154588;154549;154497;154558;154529;154491;154448;154471;154451;154469;154446;154468;154460;154459;154442;154443;154455;154472;154439;154444;154484;154453;154440;154456;154537;154477;56821;36017;49118;11357;11353;11356;42255;11358;15984;42256;11800;150154;107261;107262;107263;107264;58413;58414;58750;118150;105359;118151;118956;127907;134220;66671;61394;73894;66672;73519;71117;77246;78386;107265;86884;122612;132775;106375;106374;41608;124335;124336;16310;16274;149511;136340;10767;11926;12238;10158;10251;11466;66763;66026;66025;66765;66764;21241;21242;21243;147729;149403;147730;147731;148711;57334;57333;11033;42086;53848;17228;17229;57335;10159;10386;110723;20971;20974;23932;25756;25293;35288;19700;21609;118937;118957;118933;119938;143423;140795;154231;154232;147145;144949;151975;154235;157354;110839;47827;11549;46704;46703;42823;11201;11327;10160;72600;15715;72665;10989;10528;10529;142137;142136;20924;11410;47899;27534;54922;27574;10162;12248;47039;47581;47582;23786;10163;69557;23970;72348;53536;53846;62977;62026;62027;55471;55543;55544;77473;77474;12122;65917;71847;65916;66036;66034;66035;33867;43060;48364;48407;51367;54988;56682;57890;63337;66335;71523;31136;34049;34085;33227;25524;65675;65674;56691;56812;12050;36103;74261;20318;18506;29898;12049;40852;40853;20747;33481;25952;50023;25125;62968;62967;47804;47803;36205;21340;23699;23769;23978;12048;65722;45569;58447;66913;72814;58968;23787;62704;62703;70726;83289;58446;66914;58445;50679;56684;56668;66915;65550;65551;88982;32481;11740;10164;10165;58833;58832;87242;25294;40330;60153;38850;38849;11664;20388;26071;26922;10540;10166;10167;25201;81981;97988;107258;111968;122777;135920;138356;83744;121310;86631;121311;88054;90923;91515;95575;84288;95389;19517;97861;71783;10884;10647;38831;43156;73188;57556;64937;67122;64938;21596;155154;15788;149645;14194;11282;12202;11447;31192;11183;59660;59657;59659;59658;149497;117427;103929;103928;119326;142492;142481;83521;72483;82528;133058;146428;151287;157125;133059;63417;122509;138357;145034;146429;149046;152123;158894;72484;84621;87411;94575;96001;97385;100258;102782;105776;103457;111106;72481;157318;158893;122510;126049;133307;134761;138358;145035;149045;152124;155842;158892;87412;90119;93912;94576;95370;96002;97386;100259;102783;105777;103458;111107;11233;10654;34292;95390;95391;34460;74120;74119;11599;11537;15974;15468;22874;44392;44393;17214;11872;26195;35041;59246;59245;59247;69100;59248;109581;11419;27524;27525;20109;11074;21740;26012;31348;26013;26198;33228;12125;77562;77563;153475;153486;77605;35805;11643;35261;111384;111385;110326;103869;21608;103865;103866;103867;104571;104275;103868;104276;10578;57578;66268;67008;57579;57577;57580;57576;57575;149523;74514;74515;74516;74517;74518;74519;74520;74521;74522;74523;74525;74524;74527;74526;74528;74529;74530;74531;74532;74533;74534;74535;74536;74537;74538;74542;74539;74540;74543;74541;74544;74546;74545;74547;74548;74549;74550;74551;74552;74553;74555;74554;74556;74557;74558;74559;74560;74561;74562;74563;74564;74566;74565;74567;74568;74569;74571;74570;74578;74572;74573;74574;74575;74576;74577;74585;74579;74580;74582;74581;74583;74584;74586;74589;74588;74587;74590;74591;74593;74592;74594;74595;74596;74597;74598;74599;74600;74601;74603;74602;74605;74604;74606;74607;74608;74609;74611;74610;74613;74612;74614;74615;74616;74617;74618;74620;74619;74621;74622;74623;74624;74625;74626;74628;74627;74629;74630;74639;74631;74632;74633;74635;74634;74636;74637;74638;74643;74641;74640;74642;74649;74644;74645;74647;74646;74648;74651;74650;74656;74652;74653;74654;74657;74655;74659;74658;74660;74662;74661;74663;74664;74665;74666;74668;74667;74669;74671;74672;74673;74674;74670;74675;74676;74677;74678;74679;74680;74681;74682;74683;74684;74685;74686;74688;74687;74689;74690;74691;74692;74694;74693;74695;74696;74697;74698;74699;74700;74701;74702;74703;74704;74705;74706;74707;74708;74709;74710;74712;74711;74713;74714;74715;74722;74717;74718;74716;74719;74720;74721;74731;74723;74724;74726;74725;74727;74728;74729;74730;74732;74733;74734;74735;74736;74737;74738;74743;74740;74739;74741;74742;74744;74745;74747;74746;74749;74750;74751;74752;74753;74748;74754;74755;74756;74757;74758;74759;74760;74761;74762;74763;74764;74765;74767;74766;74768;74769;74770;74771;74772;74773;74775;74774;74777;74776;74778;74779;74786;74780;74781;74782;74783;74784;74785;74789;74787;74788;74791;74790;74794;74792;74793;74795;74796;74797;74798;74799;74800;74801;74802;74803;74807;74804;74805;74806;74810;74808;74809;74812;74811;74813;74814;74816;74815;74817;74818;74819;74820;74822;74821;74823;74824;74825;74826;74827;74828;74833;74829;74830;74831;74832;74841;74834;74835;74836;74837;74838;74839;74840;74847;74842;74843;74844;74845;74846;74851;74848;74849;74850;74853;74852;74855;74854;74856;74857;74858;74859;74885;74860;74861;74862;74863;74864;74866;74865;74867;74868;74869;74870;74871;74872;74873;74874;74875;74876;74877;74879;74880;74878;74881;74883;74882;74884;74891;74886;74887;74888;74889;74890;74892;74893;74894;74895;74896;74897;74903;74898;74900;74901;74899;74902;74911;74904;74905;74906;74908;74907;74909;74910;74918;74912;74913;74914;74915;74916;74917;74919;74920;74921;74922;74923;74924;74926;74925;74927;74928;74929;74930;74931;74932;74938;74933;74934;74935;74936;74937;74942;74939;74940;74941;74943;74944;74945;74946;74947;74948;74949;74950;74951;74956;74952;74953;74954;74955;74957;74958;74959;74960;74961;74962;74963;74964;74965;74966;74967;74968;74969;74970;74971;74972;74973;74974;74976;74975;74977;74983;74978;74979;74980;74981;74984;74982;74987;74986;74985;75036;74988;74989;74997;74990;74991;74992;74993;74995;74994;74996;75003;74998;75000;74999;75001;75011;75002;75004;75006;75005;75007;75008;75010;75015;75009;75012;75013;75014;75020;75017;75016;75018;75019;75021;75022;75023;75024;75025;75026;75027;75028;75029;75030;75031;75032;75033;75034;75093;75035;75037;75038;75040;75039;75042;75041;75043;75044;75045;75046;75047;75048;75049;75050;75051;75052;75057;75053;75054;75055;75056;75062;75058;75059;75060;75061;75069;75063;75064;75065;75066;75067;75068;75070;75071;75072;75073;75074;75075;75076;75077;75078;75079;75080;75081;75082;75083;75084;75085;75086;75087;75088;75089;75090;75091;75092;75141;75094;75095;75096;75097;75098;75099;75100;75102;75101;75104;75103;75105;75106;75108;75107;75109;75110;75112;75111;75113;75114;75115;75116;75117;75118;75119;75120;75121;75123;75122;75124;75125;75126;75128;75127;75129;75130;75131;75132;75133;75134;75135;75136;75137;75138;75139;75140;75142;75143;75144;75146;75145;75147;75148;75149;75150;75151;75155;75152;75153;75154;75160;75156;75157;75158;75159;75162;75161;75167;75163;75164;75165;75166;75168;75169;75170;75171;75172;75173;75174;75176;75175;75181;75177;75178;75179;75180;75187;75182;75183;75185;75184;75188;75186;75190;75189;75191;75192;75193;75194;75195;75197;75196;75199;75198;75200;75201;75203;75202;75204;75205;75206;75207;75208;75209;75210;75211;75214;75212;75213;75215;75216;75217;75218;75219;75220;75221;75222;75223;75224;75226;75225;75227;75228;75229;75230;75231;75232;75233;75234;75235;75236;75237;75238;75239;75240;75241;75242;75243;75244;75284;75247;75245;75246;75254;75248;75249;75250;75251;75252;75253;75255;75260;75257;75256;75258;75259;75261;75262;75264;75263;75265;75266;75267;75268;75269;75270;75271;75272;75273;75274;75276;75275;75277;75278;75280;75279;75282;75281;75283;75327;75285;75286;75287;75288;75289;75290;75291;75292;75293;75295;75294;75297;75296;75298;75299;75300;75302;75301;75303;75304;75306;75305;75307;75308;75309;75310;75317;75311;75313;75312;75314;75315;75316;75318;75319;75320;75321;75322;75323;75324;75325;75326;75377;75328;75329;75330;75331;75332;75333;75334;75335;75336;75337;75338;75339;75340;75341;75342;75343;75344;75345;75347;75346;75348;75349;75350;75351;75352;75353;75354;75355;75356;75357;75358;75359;75366;75360;75361;75362;75364;75363;75365;75369;75367;75368;75370;75371;75372;75373;75374;75375;75376;75392;75382;75378;75379;75380;75381;75386;75383;75384;75385;75388;75387;76069;76085;76104;76135;75389;76136;76137;76181;76182;76183;75390;76211;76228;76229;76230;76336;76337;76338;76340;76339;75391;76341;76342;76343;76365;76366;76488;76546;76721;76722;76723;76724;76725;76726;76956;76958;76957;76960;76959;76988;77127;77126;77128;77129;77130;77131;77132;77133;77134;77135;77136;77214;77177;77288;75396;77289;77290;77291;77292;77293;77294;77295;77297;77296;77318;77317;77365;77364;77366;77431;77432;77565;77618;77619;77620;77621;77660;77659;77693;77718;77719;77720;77734;77777;77778;77803;77804;77844;77890;77846;77845;77965;77966;77967;78020;78115;78021;75393;78116;75394;78117;78118;78450;78451;78452;78453;75395;78497;78498;78591;78590;78636;78635;75400;75397;78637;78719;78720;78733;78734;78818;78817;78820;78819;78837;78836;75398;75399;79267;79101;79102;79103;79104;79105;79106;79107;79222;79198;79223;79224;79226;79225;79241;79268;79269;79323;79324;79348;79349;79350;79368;79412;79413;79423;75406;75401;79574;79590;79575;79591;79592;79614;79615;79616;79617;75402;79753;79754;79755;75403;79796;79815;79816;79817;79818;79819;79820;79821;79998;79997;79999;80043;80044;80045;80046;80047;80048;80050;80049;75404;80051;80052;80053;80093;80094;80095;75405;80151;80150;80153;80152;80212;80211;75411;75407;80246;80274;80275;80276;80277;80278;80299;80300;80301;75408;75409;75410;75415;75412;75413;80353;75414;80539;81238;81239;81240;81241;81242;81252;81243;80540;81253;81254;81285;81286;81287;81304;81305;80541;81338;80542;81371;81372;81373;81397;81416;81417;81418;81433;81434;81560;81561;80543;81562;81563;81589;81620;81621;81622;81623;80354;81691;81692;81693;81719;81720;81761;81762;81763;81764;81765;81799;81868;81869;81870;81945;81963;81964;81946;81965;81995;82012;82013;82014;82245;82246;82247;82423;82424;82425;82426;82460;82461;82462;82463;82487;82515;82516;82635;82634;82652;82651;82654;82653;82655;80355;80564;82754;82755;82756;82843;82844;82845;82907;82807;83025;83083;83084;83085;83105;83106;83107;83160;83159;80579;83171;83230;83391;83393;83392;83394;83395;83396;83397;83398;83399;83533;83534;83557;83558;83559;83800;83802;83801;83803;83804;80841;83805;83806;83807;83913;83867;83914;80842;83915;83965;83981;83982;84012;83983;84013;80843;84014;84106;84134;84183;84136;84135;84137;84184;84185;84186;84187;84283;84284;84333;84334;84335;84336;84384;84385;84386;84387;84414;84415;84416;84439;84532;84497;84533;84557;84630;84655;84656;84629;84657;84658;80926;80984;84720;84754;84755;84756;84816;84865;84864;84866;84867;84868;80985;84869;84870;84888;84996;84997;84999;84998;85000;85002;85001;85003;80986;85135;85136;85174;85186;80987;85187;85235;85259;85260;80988;85371;85433;85434;85432;85435;85436;85437;85524;85525;85609;85610;85701;85703;85702;85835;85834;85836;85837;85838;85839;85840;85926;80989;85927;85998;86045;80990;86046;86056;86047;86090;86091;86092;80356;86093;86094;86120;86138;86139;86182;86183;86238;86239;86280;86281;86282;86283;86284;86285;86286;86287;86321;86336;86337;86338;86390;86391;86392;86393;86394;86437;80991;86436;86555;86594;86595;86596;80992;86667;86622;86623;86646;86647;86956;86668;86694;80993;86730;86732;86733;86731;86734;80438;80994;86735;86736;86737;86738;86739;86740;86776;86777;86800;86801;86957;86958;86959;86807;86960;86863;86961;86962;86864;86880;86963;86890;86891;86909;86923;86924;86964;81030;86965;87003;87004;87005;87006;81063;87017;81064;87081;87082;81098;87083;87084;87085;87086;87087;87088;87089;87115;87116;81136;87117;87166;87189;87389;87437;87438;87439;81137;87390;87391;81138;87440;87714;87441;87392;81139;87442;87486;87393;87443;87394;81140;87444;87445;87446;87447;81141;87487;87488;87517;87518;81142;87617;87618;87619;87620;87663;87621;87623;87622;87624;87625;87626;87628;87627;87629;87630;87631;87632;87633;87634;81155;87635;87716;87715;87717;81156;81199;87718;87772;88533;93062;93064;93065;93066;88394;93074;93092;93104;93105;93146;88534;93212;93213;93214;93215;93216;93240;93248;88535;93249;93250;93334;93335;93336;88536;93337;93362;93363;93063;90569;93390;93391;93392;93393;93430;93431;93432;88538;93433;93434;93435;93436;93444;93445;93499;93500;93553;93554;93595;93583;93596;93584;93585;88539;93597;93598;93599;88540;93675;93699;93700;93701;93702;93703;93704;93705;93706;93707;93731;93708;93732;93756;93757;93758;93782;93783;93823;93824;93825;93851;93852;88541;93853;93854;93855;93856;93995;88542;93996;93997;93998;93999;94000;94001;94002;94032;94033;88543;94034;88537;94060;94062;94061;94063;94086;88544;94087;94088;94090;94089;94092;94091;94128;87833;94129;94215;94216;94217;94218;94239;94220;94219;94240;94241;94242;94244;94245;94302;94303;94304;94305;94306;94307;94308;94309;94310;94311;94312;94423;94243;88545;94425;94426;88546;94424;94528;94529;88547;94530;94531;94597;94596;94598;94600;94599;88548;94601;94602;94620;94619;94649;94664;88549;94752;94753;94754;94694;94755;94695;94919;94756;88550;88114;94894;88551;94906;94944;94945;88552;94946;94947;94949;94948;94950;94951;88553;94953;94952;95022;95040;95023;95272;95273;95274;95275;95310;95311;88605;95377;95378;95463;95529;95530;95531;95533;95532;95550;95549;95551;95552;88115;95553;95554;95555;95556;95557;95558;95560;95559;95591;95590;95593;95594;95592;95595;95596;95597;95643;95700;95644;95645;95646;95647;95648;95649;95702;95701;95703;95704;95705;95706;95707;95708;95744;95745;95747;95746;95748;95749;95751;95750;95752;95753;95754;95755;95756;95757;95788;95789;95790;95791;95792;95910;95793;88606;95818;95911;95912;95913;96028;96029;91492;96030;95975;88116;95976;96063;96064;96129;96130;88607;96131;96132;96133;88608;96173;96174;96175;96176;88609;96247;96246;96248;88610;88611;88612;88613;88614;88615;88616;88632;88633;88634;88635;88686;88685;88687;88704;88688;88705;88706;88732;88733;88734;88735;88736;88771;88772;88773;88774;88775;88823;88824;88825;88826;88827;88828;88829;88830;93394;88854;88855;88878;88879;88918;88919;88920;88921;88922;88923;88924;88925;94093;88926;88927;88946;94246;88117;94427;88978;88979;88980;89017;89016;88118;89018;89019;89050;89090;89091;88119;89092;95395;89652;89651;89653;89714;88120;89715;89716;89717;89718;89719;88121;89812;89813;89814;88122;89855;89856;89857;89908;89909;89910;89911;88123;89912;89914;89913;89916;89915;89949;88124;89950;89975;89976;88125;90017;89977;90018;90054;88126;90055;90056;90057;90058;90059;90060;90061;88127;90062;88128;90106;90135;90136;90164;90165;90166;90167;88129;90169;90168;90171;90170;90172;90173;90240;90253;90259;90260;90293;90294;90341;90381;90382;90418;90475;90419;90477;90478;90476;90480;90479;90481;90483;90482;90484;90485;90522;90523;90528;90524;90557;90529;88130;90559;90560;90558;90561;90562;90563;90564;90565;90593;90594;90700;88157;90610;90609;90611;90612;90665;90771;90701;90702;90772;90782;90878;90879;90783;90932;90903;90904;90905;90907;90906;90908;90909;90910;90911;90912;90933;91067;91068;90934;90935;91069;90981;90982;90983;90984;90985;90986;91070;91071;91111;91147;91177;91178;91204;91205;91206;88131;91207;91208;91209;91269;87719;88132;91271;91270;91273;91272;91274;91275;91276;91277;91278;91279;88133;91305;89093;91289;91290;91306;91400;91401;91402;91404;91403;91405;91406;91407;91408;91409;91410;90107;91411;91412;91413;91438;88134;91482;91439;91484;91483;88135;91485;91511;91512;88136;91528;91529;91530;91532;91531;91534;91533;88137;91555;91584;91585;91586;88138;91587;91588;91589;91618;91619;88139;91620;91630;88158;91631;91639;91640;91705;91706;91707;91708;91709;91710;91721;91722;91723;91736;91772;91773;91848;91774;91793;91792;88159;91794;91795;91865;88160;91866;91867;91868;91849;91870;91869;88161;91871;88162;87730;88163;91887;91888;88164;91889;91941;88395;91943;91942;91944;91945;88396;91950;91951;91952;91953;88397;91980;90108;91967;90109;91984;88398;91985;91987;91986;88399;92043;92308;92007;92309;92352;92310;92353;92354;92450;92487;92449;92488;92506;92507;92538;92550;92625;92551;92594;92595;92597;92596;92598;92654;92655;88165;92743;92714;92715;88166;92745;92744;92746;88400;92773;92775;92774;92776;92777;92778;92930;92853;92974;92975;92976;92977;92931;92932;92978;92933;88401;92979;92992;92980;92981;92982;92993;92994;88402;93067;93068;93069;96249;96277;96545;102965;96577;102966;102967;103154;103156;103157;103155;103158;103159;96546;103160;103161;103203;103162;96547;103283;103284;96578;96579;103285;103286;103288;103287;103290;103289;103291;103292;103368;103395;96580;103396;103397;103398;103399;103400;103451;103452;96581;103487;96582;96293;103588;103589;103590;103591;103621;103622;103624;103623;103659;103658;96583;103660;103661;103728;103763;96621;103764;103798;103799;103800;103801;96622;103802;104071;104072;104073;96623;104074;104076;104075;104077;104079;104078;104080;104081;104082;104083;104084;104085;104086;104114;104087;104115;96645;104164;104165;104234;104235;104166;96294;96646;104236;104238;104237;96647;104240;104239;104241;104242;104243;104244;104245;104420;104246;104349;104421;104422;104423;104424;104425;104426;104470;104522;104521;104524;104523;104525;104526;104527;96648;104528;104613;104614;104615;104616;104648;96649;104762;104763;104764;104765;96295;96711;104766;104767;104768;104769;104770;104772;104771;96712;104798;105218;105217;105219;96713;105220;105221;105223;105222;105224;105226;105225;105227;105228;105230;105229;105231;105232;105233;105234;105235;105236;105237;105239;105238;105240;105241;105243;105242;105244;105245;96714;105246;105265;105266;105340;105341;105342;105343;105344;105364;105365;105366;96296;105452;105453;96750;105454;105455;105456;105457;105478;105504;105505;96297;96822;96788;96823;96862;96863;96864;96866;96865;96917;96900;96918;96919;96941;96940;96942;96325;96943;96944;96998;96997;96999;97000;97001;96250;97002;97003;97004;97005;97006;97073;97074;97075;97077;97076;97078;97093;97094;97113;97114;97115;97116;97138;97274;97275;97276;97277;97278;97279;97281;97280;97282;97283;97284;97313;97285;97286;97288;97287;97289;97290;97314;97291;97292;97315;97366;97368;97367;97369;96374;97370;96375;96251;97458;97459;97562;97563;97564;97566;97565;97567;97569;97568;97650;97651;97708;97710;97709;97711;97712;97713;97715;97714;97716;97747;97748;97790;97791;97816;97817;97818;97819;97843;97905;99015;99016;99017;99018;99020;99019;99021;99022;99150;96252;99110;99151;99111;99152;99112;99153;99154;99155;99156;99157;99158;99207;99179;99194;99208;99209;99211;99210;99212;99213;99241;99277;99260;99294;99296;99295;99297;96376;99326;99328;99327;96377;99385;99417;99426;99427;99428;99429;99449;99448;99430;99450;99498;99559;99499;99560;99561;96253;99617;99618;99648;99649;99700;99702;99701;99703;99704;99722;99752;99751;99753;96378;99926;99956;99927;99957;99990;99958;100019;100035;100020;100036;100037;100038;100039;100040;100042;100041;100043;100044;100086;100114;100169;100170;100202;96379;100203;100204;100232;100286;96254;100366;100367;96380;100394;100395;100447;100448;100499;96381;100500;100501;100502;100503;96382;100504;100524;100566;100567;96383;100611;96384;100612;100658;100659;100676;100708;100707;100709;100710;100712;100713;100714;96385;100711;100715;100738;100752;100753;100799;100830;100831;100832;96400;100863;100862;100882;96427;100883;100884;100885;101125;101126;101128;101129;101127;103163;101130;101131;101132;101133;101135;101134;101136;101137;101189;101190;101191;101220;101219;101278;101277;101279;101280;101281;101282;101283;101284;101285;101286;101287;101288;101346;101347;101348;101349;101515;101516;101543;101517;96548;101785;101758;101759;101760;101761;101830;96549;101969;101968;96550;101970;101971;102011;101972;102052;96551;102053;102054;96552;102055;102056;102057;102058;96553;96554;102216;102217;102249;96555;102333;102332;102334;102335;96278;102337;102336;102338;102468;102469;96556;102470;102471;102472;102509;96557;102554;102555;102510;102556;102557;102558;96558;102559;102560;102561;102562;102563;102564;102565;102566;96559;102567;102568;102621;102622;102771;102809;102810;102811;102812;102834;102847;102848;102849;102943;102944;102945;102946;102948;102947;102949;102968;102969;105558;117516;117517;117518;117520;117519;106430;117521;117522;117524;117525;117526;117523;106431;117613;117536;117655;117657;117656;117658;117659;117685;106432;117687;117686;106523;117688;117689;117690;117691;117692;117693;117789;117791;117790;117792;117793;117795;117794;117797;117796;117819;117798;117852;117853;117854;117855;117856;106543;117857;117897;117928;117898;117929;117930;117931;117974;117975;117976;117977;117978;106544;117979;117980;117981;117982;117983;117984;117985;117986;117987;106545;118066;118109;118110;118111;118112;118113;117988;118114;106546;118115;118116;106547;118169;106548;118170;106549;118191;118193;118192;118195;106550;118196;118194;118197;118219;118221;118220;118249;118250;118317;106551;106552;118338;118337;118339;118340;118341;118342;118343;118344;118345;106569;118378;118379;118380;118381;118382;118383;118384;118385;106570;118386;118444;118445;118446;118447;118448;118449;106601;118450;118451;118452;118453;118479;118480;118481;105713;118482;106613;118483;118485;118484;118487;118486;118488;118489;118561;118562;106614;118563;118817;118867;118818;118868;118869;118870;118871;118872;118873;118874;118875;118877;118876;118879;118878;118880;118881;106663;118951;105714;106664;106665;119023;119022;119024;119025;119026;119027;119029;119028;119030;119078;119079;106666;119077;119080;119081;119082;119083;119084;106667;119114;119135;119136;106669;106668;119137;119138;119139;119140;119141;106702;119295;119296;119297;106703;119298;119490;119491;119492;119493;119494;119495;106704;119537;105715;119538;119539;119540;119569;119570;119541;119542;119543;119544;119545;119546;119547;106705;119548;119550;119549;119641;119642;119643;106741;106740;119670;119706;119671;119707;119709;106742;119708;119710;119711;119712;119713;119714;119715;106743;119716;119717;119738;119737;119739;119759;119804;106744;119854;119805;106785;119855;119857;119856;106814;119858;119859;119860;119861;119862;119863;119864;119865;119866;119867;119868;119946;119947;119949;119948;119950;106833;119951;119952;119953;106860;106862;106861;106864;106863;106889;106888;106890;106891;106892;106893;106894;106895;105716;106916;106917;106918;106919;106920;105740;106921;106922;106923;106940;106924;106961;105741;105597;106962;106963;106964;106966;106965;106997;106998;106999;107000;105742;107001;107047;107048;107049;107050;107113;107128;107180;107179;107181;107182;107183;107184;107202;107185;107244;107245;107246;105758;107285;107286;108270;108271;108354;108272;108355;108356;108391;108357;108392;108436;108437;108438;108439;108440;108441;108442;108443;108444;108445;108446;108447;108478;108575;108527;108576;108629;105636;106059;108630;108577;108631;108632;108633;108635;108634;106060;108636;108637;108638;108639;108640;108641;108682;106061;108740;108741;108742;108743;108782;108783;108784;106062;108785;108860;108861;106063;108932;108934;108933;108936;108935;108937;108980;108981;106064;109021;109020;106065;109022;109023;109067;109068;106066;109069;109100;109101;109102;106067;109236;109103;109237;109238;109239;109291;109292;109293;109294;109295;109296;105637;109384;109385;109424;109425;109521;109522;109536;106068;109537;109538;109539;109541;109540;106069;109595;106070;109664;106071;109714;109715;109716;109717;109718;109719;106072;109720;109752;109751;109753;109878;109879;109880;109904;109931;109933;109932;109934;109935;109936;110062;110063;110064;110065;110066;110067;110068;105638;106217;110069;110105;110106;110107;110213;110104;110177;110178;110179;110180;110181;110182;110214;110257;110275;110309;106218;110334;110335;110336;110337;106219;110392;110407;110408;110409;110433;110470;110434;110471;110435;110436;110472;110437;110438;105639;106220;110439;110440;110441;110442;106221;106222;110529;110530;110543;106223;110586;110587;110588;110589;110590;110591;110592;110593;106224;110609;110610;110633;110634;110678;110679;110680;110658;110681;110802;110801;110829;110830;110831;110832;110833;110834;110835;110955;110937;110956;110957;105640;110958;110959;110960;110961;110963;110962;110964;110965;111037;111093;111094;111095;111096;111097;111098;111099;111100;111192;111193;111194;111195;111196;111197;106289;111198;111199;106290;111345;111415;111416;111417;111418;111419;111420;111421;111422;111423;111424;111425;111414;111426;111428;111427;111429;111430;111431;111432;111501;111502;111542;111543;111544;111545;105641;111563;111564;111565;111566;111567;111568;111569;111570;111571;111572;111573;111584;111586;111585;111588;111587;111589;111597;111624;111598;111625;111626;111627;111590;111628;111629;111630;111631;106324;111632;111633;111634;111635;111636;111637;111638;111779;106325;111661;111669;111670;111671;111738;111739;111808;111780;106326;111809;111810;111811;106357;111997;112031;111998;106358;111812;111999;112000;112001;112002;112003;105642;106359;112004;112005;112006;112007;106360;112008;112009;112137;112138;106361;112139;112140;106362;112141;112142;112144;112143;112181;112182;112262;112263;106363;112264;112265;112266;112267;112268;112269;112270;112286;112285;117329;117330;117353;117352;117380;117379;106433;106434;117381;117382;117383;117384;117475;117476;117477;120981;121088;121459;123148;123149;123150;123151;123152;123153;123154;123155;123156;123157;123158;123159;121536;123160;123161;123162;123163;123164;121537;123165;123166;123167;123438;123439;123440;123492;123493;123494;123495;123541;123542;121538;123543;123544;123632;123545;123651;123652;123653;123654;123655;123656;123657;123658;123659;123660;123661;123662;123663;123664;123665;123666;123667;123668;123669;123670;123769;123770;123771;123772;123773;123775;123774;123776;123777;123778;123779;123814;123813;123815;123816;123817;123818;123819;123820;123821;123918;123919;123991;123920;123921;123922;123992;124016;124017;124051;124052;124053;124141;124054;124081;124050;124101;124102;124103;124104;124105;124106;124107;124108;124142;124143;124144;124145;124146;124147;124186;124187;124188;124189;124216;124264;124263;124266;124265;124267;124291;124292;124309;124310;124311;124312;124313;121588;124355;124356;124357;124358;124359;121589;124399;124360;124400;124401;124402;124579;124580;124581;124582;124584;124583;121590;124585;124639;124640;124642;124641;121591;124643;124707;124706;124708;124709;124710;124711;124712;124713;124714;124754;124755;124756;124848;124849;124850;124851;121608;125017;121609;125018;125019;125020;125021;125022;125210;125211;125212;125213;125241;125242;121633;125302;125243;125304;125303;125305;125324;125306;125325;125326;125327;125328;121634;125330;125329;125331;125332;125350;125349;125450;125451;125452;125453;125454;125455;125456;125532;125533;125534;125617;125618;125619;125668;125669;125670;125671;125717;125693;125667;125694;125718;125695;125696;125697;125698;125699;125700;125701;125757;125719;122088;125758;125793;125794;125795;125796;125843;122089;125797;125807;125808;125810;125809;122090;125844;122091;125918;125919;125941;125943;125942;125982;125983;126059;126033;126034;126035;126036;126037;126038;126039;126041;126042;126043;126060;126040;122144;126146;126061;126147;126148;121146;126227;126228;126229;126230;126231;126232;122145;126233;126234;126235;126236;126304;122177;126324;126325;126327;126326;126328;126329;126330;126331;126332;126333;122178;126334;126335;122179;126456;126368;126369;126370;126371;122180;126372;126373;126437;126438;126490;126491;126522;126523;126883;126885;126886;126884;126887;126888;126889;122221;122220;126890;122222;126891;126892;126893;126894;126895;126896;126898;126899;126897;122223;126900;126901;126902;126903;126905;126904;126907;126906;126908;126909;126910;126911;126912;126975;126976;126978;126977;126979;126980;127035;127036;127037;127088;127731;127732;127733;127734;127735;127736;122224;127737;127738;122225;127739;127740;127741;127742;122226;127743;127833;127834;127835;127836;127837;127883;122227;122293;121147;127994;127995;127996;127997;127998;127999;128000;128001;128002;128003;128004;128005;128006;128007;128008;128009;128010;128012;128011;128013;122294;128014;122295;128015;122296;128016;128044;128045;128047;128046;122297;122298;128110;128070;128139;128140;122299;128141;121148;122300;128142;128143;122301;122302;128409;128453;128454;128455;122303;122304;128456;128457;122305;128458;128459;128460;128461;128462;128463;128464;128465;128503;128519;128537;128538;122394;128539;128540;128541;122338;128602;128603;128604;128605;128606;128607;128608;121149;131991;128668;128669;128670;128671;122395;128672;128863;128864;128865;128867;128866;128868;128869;122396;128964;128965;128986;128987;122339;129279;129094;129095;129280;129281;129335;129336;129337;129338;129340;129341;129342;129343;129344;129339;129346;129376;129377;129378;129379;129380;129345;129397;129398;121150;129399;129400;129455;129456;129457;129458;129459;129460;129461;129462;129463;129464;129481;129482;129484;129483;129485;129486;129487;129522;129523;129524;129525;129579;129580;129662;129663;129664;129665;129666;129667;129668;129669;129670;129672;129671;129705;129704;129706;129707;129708;129709;129710;129711;129743;129744;129745;129805;129806;129807;129843;129842;129877;129998;129999;130000;122416;122417;130049;122418;130080;130081;130082;130083;130085;130086;130143;130084;130159;130160;130333;130334;130335;130336;130337;130339;130355;130338;130356;130357;130358;130359;130360;130387;130448;130420;122443;130500;130501;122444;130577;130576;130578;130579;130580;130581;122445;130885;130582;130936;130886;130887;130888;130889;130890;130937;130891;130892;130893;130938;122492;130894;130895;130939;130940;131008;122470;131009;131010;131057;131058;131059;131060;131062;131061;131063;122493;131064;131065;131066;122494;131115;131116;131117;131155;131156;131157;131158;131179;131180;131181;122495;131219;131220;131275;131276;131277;131278;122496;131279;131280;131281;131282;131381;131301;131382;131383;131384;131532;131534;131533;131536;131535;131537;131538;131539;131540;131541;131542;131543;131720;131544;122497;131682;131683;131684;131685;131687;131686;131688;131689;131690;131691;131692;131693;131721;122498;131922;131992;131993;131994;131995;131997;131996;122529;132068;132069;132086;132032;132087;132385;132386;132516;132515;132517;122579;122580;122578;122607;122642;122643;122644;122660;122661;122662;122714;122741;122742;122743;122744;122745;122746;122772;122847;122848;122888;122849;122941;122942;122963;122943;123168;123169;123170;123171;123172;123173;123174;123441;123175;123176;123177;123178;123179;123180;123181;121151;123182;123183;123184;123185;123186;123188;123187;123189;121152;123191;123190;121153;123192;121154;123194;123193;123195;123196;123197;121155;123199;123198;123200;123201;123202;123203;123205;123204;121156;123206;123207;123208;123209;123210;123211;123212;123213;123214;121157;123216;123215;123218;123217;123219;121281;123220;123221;123222;123223;121282;123224;123225;123227;123228;121283;123229;123230;123231;123232;123233;123234;123235;123236;123237;123226;123238;123239;123240;123241;123242;123243;123244;123245;123246;121284;123247;123248;123249;123250;123251;121285;123252;123253;123254;123255;123256;123257;123258;123259;123261;123262;123442;123263;123264;123265;123266;123260;121286;123267;123268;123270;123271;123443;123269;123272;121287;123273;123275;123274;123277;123276;121288;123278;123279;123280;123281;123282;123283;123284;123285;121289;123286;123287;121290;123289;123288;123290;123291;123292;123293;121291;123294;123295;123296;123297;123298;123299;123300;123301;123302;123303;123305;123304;123307;123306;123309;123308;123311;123310;123312;123313;123314;123315;123316;123317;123318;123319;123320;123321;123322;123323;123324;123325;123326;123327;123328;123330;123331;123332;123333;123334;123335;123336;123329;123337;123338;121089;123340;123339;123341;123342;121339;123344;123343;121340;123345;123346;123347;123348;123349;123350;123351;121411;123352;123353;123354;121412;123355;123356;123357;123358;123359;121413;123360;123361;121414;123362;123363;121415;123364;123365;121428;123367;121090;123366;121429;123368;123369;123370;121430;123371;123373;123372;123374;123375;121431;123376;123377;123378;121460;123379;123380;123381;123382;121461;123383;123384;123385;123386;123387;123388;121462;123389;123390;123391;123392;123393;121463;123394;123395;123396;123398;121464;123399;123397;123400;123401;123402;123403;123404;123405;123406;123407;123408;138668;138669;138670;138671;138672;138673;138674;138675;138785;138786;133251;138787;138788;138789;138790;138828;138829;133252;138977;138978;138980;138979;138981;133253;138982;138984;138983;138985;138987;138988;138989;138986;139012;139013;139014;139015;139016;139017;139019;139018;132904;139020;139021;139168;139221;139280;139022;139281;139302;133288;139303;139304;139305;139306;139355;139356;139357;139443;139444;139445;139401;139446;139447;139448;133340;139449;139450;139451;139477;139478;139558;139559;139560;139561;139562;133341;139563;139565;139564;139591;139644;139645;139646;139648;139647;139650;139649;139651;139652;133342;139653;133343;139654;139655;139765;133344;133345;139767;139768;139769;139766;139780;139896;139897;139898;139899;139900;139901;139902;139903;140021;140020;140022;140023;140024;140073;140075;140074;140077;140076;140078;140079;140080;140081;140170;140171;140172;140173;140175;140174;140240;141904;140366;140367;140368;140369;140365;140371;140370;140372;140373;140374;140375;140376;140377;140442;140444;140443;140445;140681;140509;140510;140511;132905;140569;140570;140571;140572;140573;140574;140610;140682;140683;140684;140685;140686;140687;140688;140689;133346;140741;140690;133347;140691;140726;140692;140742;140727;132906;140743;140744;140764;141069;141151;141070;141071;140797;141073;141072;141152;141153;141154;141074;141075;141156;141076;141155;141078;141077;141079;141080;141157;141081;141158;141159;141160;141162;141163;141164;141165;141161;141166;133488;141167;141168;141169;141276;133489;141281;141279;133490;141294;141390;133491;141387;141382;133492;141388;141411;141409;141462;141529;141507;141513;141506;141534;141523;141525;141514;141530;141533;141528;141504;141560;141559;133519;141839;141719;141662;141840;141925;141905;141893;141888;141890;141884;141898;142042;142039;141927;141929;141924;141926;142044;142095;142135;142114;142078;142108;142115;142097;142183;142188;142165;142194;142185;142162;142196;142190;142163;142207;142181;142150;142186;142178;142149;142572;142540;142324;142522;142560;142555;142583;142549;142506;142575;142537;142550;142524;142526;142631;142630;142628;142620;142615;133592;142627;142629;142638;142836;142838;142852;142829;142831;142840;133593;142853;142915;142921;142925;142945;142950;142944;142938;142942;142956;142937;142949;142917;142929;142948;142953;142941;142922;143141;143100;143001;143101;143134;143144;143145;143146;143143;143192;143180;143184;143182;143179;143190;143181;143168;132763;132907;143225;143298;143343;143289;143338;143352;143333;143345;143320;143290;143301;143295;143340;143303;143348;143314;143299;143335;143316;133644;143327;143310;143337;143355;143318;143321;143302;143341;143317;143304;143331;143322;143324;143311;133645;143297;143312;133666;143347;133667;143319;143342;143292;143357;143328;143339;132908;143508;143504;143496;143507;143462;143398;143499;143452;133668;143457;133669;143463;143521;143455;143460;143456;143497;143492;143514;143506;143522;143523;143529;143511;143513;143545;143498;143547;143550;143546;143540;143549;133714;143539;143536;143538;143548;143537;143542;132909;133757;143592;144033;144020;133758;144120;144317;144309;144316;144308;144312;145351;145279;144321;145335;145358;144313;145338;145353;145307;145382;145334;145313;145297;133759;145277;145329;145374;133760;145331;145360;145280;145368;145362;145372;145332;145294;145323;145322;145326;145389;145293;145301;145345;133827;145348;145359;145350;145347;133828;145324;145285;145400;145317;145375;145385;132910;134073;134152;134153;134154;134155;134156;134157;134193;134194;134195;134196;134197;134198;134279;134280;134281;132764;134282;134283;134284;134347;132911;134348;134349;134362;134397;134398;134617;134618;134619;134620;134559;132912;134696;134822;134755;134823;134851;134932;134933;134934;132913;134935;134936;135161;135003;135005;135006;135004;135008;135007;135009;135010;135022;135162;135163;135220;135221;135222;132914;135264;135263;135383;135265;135385;135384;135386;135446;135447;135448;135449;135450;135451;132915;135452;135453;135454;135577;135578;135670;135749;135750;136004;136005;136007;136008;136006;136009;132916;136023;136010;136012;136072;136073;132917;136011;136306;136307;132918;132919;136308;136309;132920;136311;136310;136312;132848;132949;136314;136313;136315;136316;136317;132950;132951;136449;136450;136451;136453;136452;136454;136455;136456;136457;136459;136458;136461;136460;136489;136488;136490;136491;136492;133031;136691;136872;136873;136874;136875;136876;136877;133130;136878;136879;136880;136881;133131;136882;136883;136884;136885;136886;136888;136887;136889;136959;136960;136961;136962;136992;136963;136993;136994;136996;136995;136997;137131;137132;137227;137228;137229;137230;137231;137251;137349;133132;137350;137351;137392;138676;138677;132849;133133;138678;138680;138681;138679;138682;138683;138684;138685;138686;138687;138688;138689;138690;138691;138692;133170;138693;138694;138696;138695;133171;138697;138698;138700;138699;133172;138701;138703;138702;133173;138704;138705;138706;138708;138707;138709;133174;138711;138710;138712;138713;138714;138715;138716;138717;138718;138719;138720;138721;138990;138723;138722;133198;138724;138725;138726;138728;138729;133199;138730;138731;138727;138732;139307;138991;138733;138734;138736;138735;138737;138738;138739;133200;138740;138741;138742;138743;138744;138746;138745;138747;138748;138749;138751;138750;138752;138753;138754;138755;138756;138757;145336;151525;151526;151527;145370;151528;151615;151619;151702;151806;151822;151824;151816;151823;145395;151814;151818;151841;151853;151840;145278;151938;151936;151937;152017;152008;152009;152058;152057;152063;152064;152065;152219;152261;152257;152262;152391;152392;152394;152471;152474;152477;152470;152463;152462;152456;152457;152469;152466;152460;152467;152473;152472;152515;152563;152561;152647;152693;152692;152694;152696;152731;152719;152722;152730;152736;152738;152770;152756;152755;152758;152769;152840;152841;152839;152852;152837;152844;145377;152838;152876;152875;152896;152895;152900;152958;152956;152942;153000;153005;145284;153025;153029;153116;153114;153113;153108;153107;145356;153195;153218;153251;153392;153394;153393;153395;153415;145330;153414;153457;153455;153453;153452;153454;145344;153530;145295;153537;153533;153529;153578;153667;153669;153778;153783;153782;153796;145354;153847;153875;153874;154006;154008;154007;154010;154012;154009;154079;154192;154196;154191;145361;154206;154215;154214;154228;154216;154209;154211;145383;154213;154207;154282;145306;154284;154513;154612;154748;154770;145314;154759;154764;154761;154762;154769;154766;152835;154767;154763;154768;154765;154755;154760;154757;154758;154756;154822;154865;154867;145311;154866;154863;154860;154864;154952;154951;154946;154978;154976;155345;145339;154975;155355;155362;155358;145394;155583;155621;155356;155652;155657;155660;155662;145273;155714;155726;145399;155859;155823;155860;155872;145305;155887;155871;155879;155886;145376;155875;155873;156144;156130;156146;156131;156151;156138;156150;156142;156152;156179;156135;156192;156185;145435;156218;156216;156215;156217;156273;145431;156270;156274;156276;145434;156279;156316;156319;156317;156340;156341;156436;151685;156426;156434;156433;156395;156437;145423;151688;151704;145485;151712;151747;145525;145530;145729;151710;151726;151709;151736;151684;151752;151722;151739;151706;151729;151719;151746;151721;151724;151707;151728;151717;151699;152119;151753;145775;151683;151749;145735;151735;145710;151708;145720;151693;151714;145762;151718;151692;151744;151713;151731;151730;151756;145736;151705;151725;151711;151737;151686;151751;151741;151716;145767;145768;145746;151732;151734;151697;151742;151694;151715;151696;151698;151755;151750;151740;151703;151700;151695;146144;146513;146162;151720;151743;151701;151687;151733;151754;151748;151738;151727;151691;151723;151745;146274;146287;151817;151820;151819;145381;151839;151851;151838;151860;146293;151866;151847;151935;146282;151941;151940;152011;151939;152013;152010;152007;152118;145355;146298;152154;152147;152166;146320;152179;152196;145365;152218;152256;152263;152250;152249;152260;152258;146325;152255;152259;152393;146317;152459;152553;152554;146355;152552;152644;152569;152624;152562;146503;145310;146518;152646;146524;152645;146510;152679;152695;146506;152733;152732;152734;152721;152720;152728;152727;152726;146508;152724;152729;152735;152768;152771;152757;152767;152799;146507;152798;152848;152850;152849;146528;152894;152897;152962;152960;152963;152941;153008;153007;153009;153004;153003;153002;153006;153001;152999;152998;153030;146501;153115;153117;153118;153188;146715;153187;153186;153250;153245;146662;153244;146745;146676;153413;146688;146649;153451;153479;146750;153543;153541;153579;153599;153594;153596;153595;153598;153597;146858;153771;153780;153792;153790;153913;153912;153911;153914;153901;146852;153909;146851;153968;154011;154091;154103;146836;154069;154105;152725;154064;146831;146918;154104;154186;146908;154193;154187;154208;154243;146897;154283;154289;154285;154286;146888;154281;154287;146898;154290;154280;154288;154606;154589;154611;154512;154664;154665;154661;154660;146911;146914;146916;154743;154889;154890;154892;154896;154898;154945;146938;155012;155010;155009;155008;155191;155299;155177;155357;155379;155382;155380;155383;147159;147158;155381;147157;147161;147149;155656;155663;147160;155664;155665;147150;155696;155697;155701;155777;155744;155771;155773;155775;155778;147174;155774;155772;155770;155779;147184;155776;147173;155826;155825;147189;155857;147178;147606;147563;155877;155888;155824;155878;155876;155885;155874;155881;155880;155883;155884;155932;155934;145304;156145;156143;156141;156154;147783;147799;147779;156137;147774;156136;156149;147794;147776;156153;145308;147780;156140;156180;156177;156139;156181;148839;156252;156219;147845;156277;156268;147844;156269;156275;156271;156278;156272;147846;156339;156435;156448;147850;156447;147860;147858;145325;147853;147931;147852;147929;147930;147925;147927;147924;145290;148066;148045;145357;148159;148148;148141;148152;148153;148179;148203;148176;148209;148210;148315;148308;148313;148310;148309;148321;148325;148324;148384;148385;148411;148412;148417;148409;148431;148435;148436;145390;148432;148439;148535;148513;148438;145298;148606;148614;148588;148699;145379;148696;148759;148763;148746;149627;149555;149605;149564;149634;145340;150114;149553;149548;145283;149640;149613;149628;149616;149533;149545;145320;149589;149637;149554;145275;149603;149536;149573;149534;149580;149562;149570;149557;149598;149577;145371;149629;145299;149590;145286;149636;149558;149611;149569;149594;149549;149596;149541;149579;149571;149612;149537;149550;150103;149530;149614;149567;145396;149584;149572;149539;150090;149566;149641;145312;145387;149600;149560;149639;149542;149602;149884;149886;145287;149887;149892;149890;149891;145292;149896;149895;149882;149881;149893;149894;145373;149885;145392;150003;150089;150113;150098;150087;150094;145342;150088;150104;150183;145398;150206;150269;150261;150275;150259;150248;150256;150251;150276;145393;150304;150319;150452;150466;150474;150315;150471;150455;150457;150461;150755;151080;150754;151079;151073;151076;151071;151074;151083;151078;151072;151082;145366;151081;151075;151077;151062;151060;151024;151067;151058;151068;151023;151066;145328;151069;151054;151061;151022;151053;151070;151056;151059;145288;151065;151055;151064;151063;151057;151198;151199;151283;151278;151280;151282;151358;145346;145289;153967;156450;156637;156761;156781;156956;156779;157096;156467;157082;157348;157416;158130;158131;156593;158240;158150;156647;156649;156643;156648;158508;156721;156723;156722;158575;158507;158642;156747;158629;158617;158639;158650;158689;158883;159075;159049;159078;156780;156778;156850;156845;156852;156844;156851;156849;156904;156940;156938;156937;156939;156942;156957;156943;156959;157081;156958;157113;157088;157104;157110;157093;157084;157092;157107;157147;157148;157198;157225;157232;157326;157399;157400;157398;157890;157325;157938;157889;158058;158234;158235;158236;158223;158224;158222;158220;158231;158239;158232;158218;158241;158340;158237;158392;158449;158577;158576;158578;158626;158635;158636;158641;158627;158624;158625;158637;158628;158638;158632;158623;158640;158631;158643;158630;158742;158777;158774;158779;158776;158778;158773;158775;159044;159054;159047;159048;159050;159042;159053;159040;159046;159043;159036;159039;159051;159045;159038;159056;159074;159126;159124;158634;15571;17204;48404;121040;122421;90407;90408;38762;74189;74187;74188;56171;56172;34372;152139;152140;46701;28290;18259;11550;14822;22496;159125;134384;14700;14714;14715;38665;22093;15834;21675;13847;51460;51459;31855;34725;35628;38688;76494;51142;25343;51143;14179;151214;151215;151213;151210;151208;151212;151211;128037;151209;151905;154657;156854;151207;148373;148707;23625;10169;33589;33588;71525;69170;87311;34351;34350;58727;25004;25552;26064;71524;29218;33129;31968;40826;44597;46814;51773;34510;59191;69185;77408;61731;154167;86904;154166;104351;94199;122033;142882;21784;11895;25551;133717;66586;17699;44067;17700;17839;10608;44068;44069;44071;44070;10802;11031;44072;17701;11837;17702;11848;44073;44075;44074;19592;44076;22466;44077;44078;44079;31737;44081;51920;44080;53841;17703;73079;84638;85382;85690;90924;90022;106608;90023;93194;96151;99359;103781;130455;147662;154174;10771;10954;10883;17704;70895;67140;17705;86122;44065;11712;17706;78655;11574;17744;10439;10823;17798;17745;17707;17746;17748;17749;17747;17750;17751;17752;17753;17754;17755;17756;17757;17759;17760;56996;17761;17762;17764;17763;17765;45039;45359;17766;17767;57711;58564;57459;58799;59076;64532;77086;74363;78552;80566;82030;87219;84151;17768;46801;51058;56162;51919;57460;58565;57712;58800;59077;64533;73403;77087;71856;78553;80567;82031;87220;84152;58801;59078;64534;64620;71857;73404;74364;78554;77088;80568;82032;84153;90888;84636;87221;88529;89081;90890;82033;93814;84154;90889;84637;87222;88530;90891;89082;93815;93786;104408;96873;109945;105291;121383;112119;122504;128115;132726;146374;144053;146591;152780;157231;93112;93816;93787;94963;96874;97328;104409;105292;112120;158973;121384;125642;121385;125641;128117;128116;135919;132725;144047;148402;152782;148125;157228;156100;158974;91572;158975;17769;74326;12110;77200;50845;73412;11060;51892;11267;78555;51893;17770;57323;62352;62354;62353;86348;81052;81053;151490;70919;56822;56823;29249;151489;31860;19555;35656;51645;35657;17150;20067;125261;128776;128773;125643;125260;103701;125226;73668;79746;125259;125257;125262;125263;154347;56022;73491;73667;21330;154346;11416;12262;14221;16463;18190;19769;15529;125356;12637;40354;143480;69371;34373;43863;143481;43864;35557;49271;40827;76313;42291;42892;44960;45121;46204;47113;47583;48317;49174;49964;51343;55506;51774;54587;55470;56042;56585;57039;57751;58583;59089;59555;61414;61732;62984;62821;63301;64363;65927;73764;70217;70532;69541;72371;72372;73942;72884;74362;19312;19766;21221;21786;22875;23977;25036;25290;25755;25900;27506;29742;31129;33168;31734;33396;33949;34368;34459;34680;35185;35761;14235;14244;11922;66520;65742;14638;14246;14245;11578;14247;11900;14336;14248;21746;11404;13844;14249;18503;14261;14346;14250;66293;32479;27818;11076;17708;11081;10855;10848;10849;10850;12112;10851;10852;11452;11226;10840;10854;10853;11225;11918;11224;11223;11227;109733;135697;81004;124059;156935;84811;151978;72214;78692;86478;144089;77421;72213;73614;147640;93121;64707;64708;64709;64710;64711;64712;64713;64706;64704;64705;78075;78699;78077;64714;64715;64716;57619;90860;130268;119939;124121;135678;148980;77221;142663;73121;53258;78076;88104;119885;132991;147639;157405;130269;126467;119940;126776;152027;76709;73122;130277;103936;120948;130589;142372;145246;156931;142210;48338;76708;48339;136765;78776;78775;137853;148923;137854;145249;138563;151904;74151;71899;14641;136747;16209;70546;18204;73825;22074;22075;17654;51873;10808;73826;90601;99479;109206;124118;135582;148952;82829;72009;80952;88042;96608;106105;121250;133213;145220;156890;70178;76596;84766;92461;101845;111161;126789;138507;152040;70471;78544;86479;94164;104046;118177;130020;141808;154291;22073;78747;78748;78749;78603;78602;17586;86575;82855;99594;109204;124157;135679;148895;145267;156898;151903;141809;154266;70177;108454;80966;88043;96777;121225;133055;84879;92585;101837;111152;126775;138555;78548;86574;94250;80965;118203;104052;130054;125147;148912;156906;131184;133091;145225;126777;123007;138594;133057;152772;122545;71642;71643;18205;74150;62820;62819;81048;123685;134306;134205;154342;133268;134225;129973;123686;129504;124156;135677;148976;17729;17730;81002;81003;123684;106299;121421;133146;156944;78085;69301;92542;76618;126781;17731;86569;124090;142212;154340;18181;56876;73733;73732;104324;99470;136284;106140;133002;126827;72369;78542;86541;118330;76617;72043;72415;104047;72042;107266;61645;72259;72260;85271;65048;65049;45544;64837;57290;64838;61746;61646;65050;64839;65051;63521;64840;65053;65052;61681;64841;65995;73570;73571;82820;65996;82821;90625;90626;99588;99589;109202;109203;124198;135592;124197;148960;135591;148961;52002;64844;57959;64847;64454;64790;64851;71966;64850;71967;80907;80908;88045;88046;96628;96629;106190;106191;121230;132992;121231;132960;145218;145219;156888;76532;156887;76533;84825;84824;92516;101843;92517;101844;111163;111162;126821;126820;138522;138576;152020;152021;54997;64845;59462;66932;64848;66943;45379;64842;49996;64843;64846;62593;56566;64849;70473;70472;78481;78482;86542;94138;86543;94139;103963;103964;118228;118227;130011;130010;141800;141801;154344;154345;88755;71462;71463;65743;55958;90828;64816;96657;70963;111332;106903;152033;93592;84881;78911;103931;86545;142146;25951;76683;73612;82830;90604;99521;109207;80890;88041;96627;106139;78086;69305;76883;84808;92492;101839;111214;76590;78478;86474;103932;118572;69304;11563;78910;78087;78084;18034;125340;135588;133045;125547;132937;156889;129004;138607;151906;129974;154292;139874;141303;91825;154655;156885;148977;135204;154253;135172;80997;78700;90859;135681;148934;121257;133260;145224;156933;111210;126788;138610;152043;78774;78773;73738;73737;81023;77667;71047;71048;71046;101902;132955;135583;148916;132936;145223;156893;101899;126828;138526;150416;151974;118714;130019;141785;154297;109163;124169;135698;121252;133054;145245;101903;156891;111212;101900;138511;151892;118202;130059;109164;124170;135584;148918;106201;121251;101904;133359;145569;156832;101901;111213;126829;138508;151973;118594;141641;130070;56052;154262;56056;56060;56064;45626;53897;58798;65997;73576;82903;90762;99480;109205;124155;135585;56051;148894;56055;56059;45625;56063;51573;57589;63623;71970;80906;88146;96611;106188;121253;133047;145266;156822;56057;56053;56061;56065;60048;55632;68934;76531;84822;92522;101836;111219;126830;138528;152026;47718;56054;56050;56058;56062;56066;50652;56653;62662;78540;70460;86576;94201;103971;118230;130058;141829;154332;111680;70765;71644;72981;72982;70766;55786;17614;73118;73119;73120;135705;81001;81000;35363;55668;55702;47747;73596;99930;109165;70731;70732;70730;70729;72339;80912;88049;106199;121601;133042;76570;84795;92543;111333;78543;94436;103980;72340;40550;22076;74467;74466;76576;12067;12047;45624;26192;10660;10658;110053;76937;76938;104786;136066;124171;133041;111164;104787;124276;73577;80915;84799;18175;69552;12126;71537;69478;136809;57978;57977;57979;77666;57980;81605;57981;107090;69479;101896;86473;71022;103987;82854;111352;135850;124237;148925;106759;121347;146048;156855;111228;152030;138564;123830;130005;154326;142223;72065;73597;77636;84916;83469;136998;109209;135237;135676;72777;72064;72775;88044;145244;136091;138590;72778;86577;104051;154418;124337;126051;138509;72776;88086;88087;142594;103663;74042;82822;90679;99528;109201;135680;124122;148924;88053;96610;80909;144326;132961;121226;145264;157127;76527;92460;101815;111209;126915;84823;138592;152035;94290;103935;118205;130012;141807;154771;78541;87209;73914;124462;125265;138074;109430;109431;109345;121396;73913;10594;10613;67396;67397;67398;67399;67400;67401;67402;67403;67404;67405;67406;67407;67408;67409;67410;67411;67412;67413;67414;67415;67416;67417;67418;67419;67420;67421;67422;67423;67424;67425;67426;67427;67428;67429;67430;67431;67432;67433;67434;67435;67436;67437;67438;67439;67440;67441;67442;67443;67444;67445;67446;67447;67448;67449;67450;67451;67452;67453;67454;67455;67456;67457;67458;67459;67460;67461;67462;67463;67464;67465;67466;67467;67468;110054;67469;67470;67471;67472;67473;67474;67475;67476;67477;67478;67479;67480;67481;67482;67483;67484;67485;67486;67487;67488;67489;67490;67491;67492;67493;67494;67495;67496;67497;67498;67499;67500;67501;67502;67503;67504;67505;67507;67506;67509;67508;67510;67511;67512;67513;67514;67515;67516;67517;67518;67519;67521;67520;67522;67523;67525;67524;67526;67527;67528;67529;67530;67531;67532;67533;67534;67535;67536;67537;67538;67539;67540;67541;67542;67543;67544;67545;67546;67547;67548;67549;67550;67551;67552;67553;67554;67555;67556;67557;67558;67559;67560;67561;67562;67563;67564;67565;67566;67567;67568;67570;67569;67571;67572;67574;67573;67576;67575;67577;67578;67579;67580;67582;67581;67583;67584;67585;67586;67587;67588;67589;67590;67591;67592;67594;67593;67595;67596;67597;67598;67599;67600;67602;67601;67604;67603;67605;67606;67607;67608;67610;67609;67611;67612;67613;67614;67615;67616;67618;67617;67620;67619;67622;67621;67623;67624;67625;67626;67627;67628;67629;67630;67631;67632;67633;67634;67635;67636;67637;67639;67638;67640;67641;67642;67643;67644;67645;67646;67647;67648;67649;67650;67651;67652;67654;67653;67656;67655;67657;67658;67660;67659;67662;67661;67664;67663;67666;67665;67667;67668;67670;67669;67671;67672;67674;67673;67676;67675;67677;67678;67679;67680;67681;67682;67683;67684;67685;67686;67687;67688;67689;67690;67691;67692;67693;67694;67695;67697;67696;67698;67699;67700;67701;67702;67703;67704;67705;67706;67707;67708;67709;67710;67711;67712;67713;67714;67715;67716;67717;67718;67719;67720;67721;67722;67723;67724;67725;67726;67727;67728;67729;67730;67731;67732;67733;67734;67735;67736;67737;67738;67739;67740;67741;67742;67743;67744;67745;67746;67747;67748;67749;67750;67751;67752;67753;67755;67754;67756;67757;67759;67758;67760;67761;67762;67763;67764;67765;67766;67767;67768;67769;67770;67771;67772;67773;67775;67774;67776;67777;67778;67780;67779;67781;67782;67783;67784;67785;67786;67787;67788;67789;67790;67791;67792;67793;67794;67795;67796;67797;67798;67799;67800;67801;67802;67803;67804;67805;67806;67807;67808;67809;67810;67811;67812;67813;67814;67815;67816;67817;67818;67819;67821;67820;67823;67822;67824;67825;67827;67826;67829;67828;67830;67831;67832;67833;67834;67835;67836;67837;67838;67839;67840;67841;67842;67843;67844;67845;67846;67847;67849;67848;67851;67850;67852;67853;67855;67854;67856;67858;67857;67859;67860;67862;67861;67863;67864;67865;67866;67868;67867;67869;67870;67872;67871;67873;67874;67875;67876;67877;67878;67879;67880;67881;67882;67883;67885;67884;67886;67887;67888;67889;67890;67891;67892;67893;67894;67895;67896;67897;67898;67899;67901;67900;67902;67903;67904;67905;67906;67907;67908;67909;67910;67911;67912;67913;67914;67915;67916;67917;67918;67919;67920;67921;67923;67922;67924;67925;67926;67927;67928;67929;67930;67931;67932;67933;67934;67935;67936;67937;67938;67939;67940;67941;67942;67943;67944;67945;67946;67947;67948;67949;67950;67951;67952;67953;67954;67955;67956;67957;67958;67959;67960;67961;67962;67963;67964;67965;67966;67967;67968;67969;67970;67971;67972;67973;67975;67974;67976;67977;67978;67979;67981;67980;67982;67983;67984;67985;67987;67986;67989;67988;67990;67991;67992;67993;67994;67995;67996;67997;67998;68000;67999;68001;68002;68003;68004;68005;68006;68007;68008;68009;68010;68011;68012;68013;68015;68014;68016;68018;68017;68019;68020;68021;68022;68023;68025;68024;68026;68028;68027;68029;68030;68032;68031;68033;68034;68035;68036;68037;68038;68040;68039;68041;68043;68044;68042;68045;68046;68047;68049;68050;68051;68048;68052;68053;68054;68055;68056;68057;68058;68059;68061;68060;68062;68063;68064;68065;68066;68067;68068;68069;68070;68071;68072;68073;68074;68075;68076;68077;68078;68079;68080;68081;68082;68083;68084;68085;68086;68088;68087;68089;68090;68091;68092;68093;68094;68095;68096;68097;68098;68099;68100;68101;68102;68103;68104;68105;68107;68106;68108;68109;68111;68110;68112;68113;68115;68114;68117;68116;68119;68118;68120;68121;68123;68122;68124;68125;68127;68126;68128;68129;68130;68131;68132;68133;68135;68134;68136;68137;68138;68139;68140;68141;68142;68143;68144;68145;68146;68147;68148;68149;68151;68150;68152;68153;68154;68155;68156;68157;68159;68158;68160;68161;68163;68162;68164;68165;68166;68167;68168;68169;68170;68171;68173;68172;68174;68175;68176;68177;68178;68179;68180;68181;68182;68183;68184;68185;68186;68187;68188;68189;68191;68190;68192;68193;68194;68195;68196;68197;68198;68199;68200;68201;68202;68203;68204;68205;68206;68207;68208;68209;68210;68211;68212;68213;68214;68215;68216;68217;68218;68219;68220;68221;68222;68223;68224;68225;68226;68227;68228;68229;68230;68231;68232;68233;68234;68235;68236;68237;68239;68238;68240;68241;68242;68243;68244;68245;68246;68248;68247;68249;68250;68251;68252;68253;68255;68254;68257;68256;68258;68259;68260;68261;68262;68264;68263;68265;68266;68267;68268;68270;68269;68271;68272;68274;68273;68275;68276;68277;68278;68279;68280;68281;68282;68283;68284;68285;68286;68287;68288;68289;68290;68291;68292;68293;68294;68295;68296;68297;68298;68300;68299;68301;68302;68303;68305;68304;68306;68307;68308;68309;68310;68311;68312;68313;68314;68315;68316;68317;68318;68319;68320;68321;68322;68323;68324;68325;68326;68328;68327;68329;68330;68332;68331;68333;68334;68335;68336;68337;68338;68339;68340;68341;68342;68343;68344;68345;68346;68347;68348;68349;68350;68351;68352;68353;68354;68355;68356;68357;68358;68359;68360;68361;68362;68363;68364;68365;68366;68367;68368;68369;68370;68371;68372;68374;68375;68376;68377;68378;68373;68379;68380;68381;68382;68383;68385;68384;68387;68386;68388;68389;68390;68391;68392;68393;68394;68395;68396;68397;68398;68399;68400;68401;68402;68403;68404;68405;68406;68407;68408;68409;68410;68411;68412;68413;68414;68415;68416;68417;68418;68419;68420;68421;68422;68423;68424;68425;68426;68427;68428;68429;68430;68431;68432;68433;68434;68435;68436;68438;68437;68439;68440;68441;68442;68443;68444;68445;68446;68447;68448;68449;68450;68451;68452;68453;68454;68456;68455;68457;68458;68460;68461;68462;68463;68464;68459;68465;68466;68467;68469;68468;68470;68471;68472;68473;68475;68474;68477;68476;68479;68478;68480;68481;68482;68483;68484;68485;68486;68488;68489;68490;68487;68491;68492;68493;68494;68495;68496;68497;68498;68499;68500;68502;68501;68504;68503;68505;68506;68507;68508;68509;68510;68511;68512;68513;68514;68515;68516;68518;68517;68519;68520;68521;68522;68523;68524;68525;68526;68527;68528;68530;68531;68532;68533;68529;68534;68535;68536;68537;68538;68539;68540;68541;68542;68544;68543;68545;68546;68547;68548;68549;68550;68551;68552;68553;68554;68555;68556;68557;68558;68559;68560;68561;68562;68563;68564;68565;68567;68568;68569;68566;68570;68571;68573;68572;68575;68574;68576;68577;68579;68578;68581;68580;68582;68583;68584;68585;68587;68586;68588;68589;68590;68591;68593;68592;68595;68594;68597;68596;68598;68599;68600;68601;68603;68602;68604;68605;68606;68607;68608;68609;68610;68612;68613;68611;68614;68615;68616;68617;68618;68619;68620;68622;68621;68623;68624;68625;68626;68627;68628;68629;68630;68631;68632;68633;68634;68636;68635;68638;68637;68639;68640;68641;68642;68643;68644;68646;68645;68647;68648;68649;68650;68651;68652;68653;68654;68655;68656;68657;68658;68659;68660;68661;68662;68663;68664;68665;68666;68667;68668;68669;68670;68671;68672;68673;68674;68675;68676;68677;68678;68679;68680;68681;68682;68683;68684;68685;68686;68687;68689;68688;68691;68690;68692;68693;68694;68695;68696;68697;68698;68699;68700;68701;68702;68703;68704;68705;68706;68708;68707;68710;68709;68712;68711;68713;68714;68715;68716;68717;68718;68720;68719;68721;68722;68723;68724;68725;68726;68727;68729;68728;68730;68731;68733;68732;68734;68735;68736;68737;68738;68739;68740;68741;68742;68743;68744;68745;68747;68746;68748;68749;68750;68751;68752;68753;68754;68755;68756;68757;68758;68759;68760;68761;68762;68763;68764;68765;68766;68767;68768;68769;68770;68771;68772;68773;68774;68775;68776;68777;68778;68779;68780;68781;68782;68783;68784;68785;68786;68787;68788;68789;68790;68791;68792;68793;68794;68795;68796;68797;68798;68799;68800;68802;68801;68803;68804;68805;68806;68807;68808;68809;68810;68811;68812;68813;68814;68815;68816;68817;68818;68819;68820;68821;68822;68823;68824;68825;68826;68827;68828;68829;68830;68831;68832;68833;68834;68835;68836;68837;68838;68839;68840;68841;68842;68843;68863;68844;68864;68920;69009;68976;69010;69156;69157;69158;69159;69221;69251;69252;69340;69253;69455;69456;69492;69501;69776;69806;69940;69941;70006;70008;70007;70113;70009;70186;70187;70283;70284;70346;70347;70285;70286;70287;70288;70326;70363;70386;70450;70465;70524;70535;70574;70575;70551;70552;70596;70597;70598;70690;70691;70692;70693;70702;70754;71125;70770;71102;71126;71104;71103;71127;71105;71128;71129;71106;71107;71130;71109;71108;71110;71111;71112;71113;71131;71114;71186;71187;71252;71251;71241;71387;71333;71287;71288;71289;71366;71334;71367;71368;71388;71513;71555;71556;71610;71611;68845;68846;68847;68848;68849;68850;68851;68853;68852;68854;68855;68856;68977;68978;69509;69510;69942;70525;70526;70599;71132;71133;71134;71514;71489;71515;71875;71876;71908;71985;71984;72057;72058;72160;72195;72227;72228;72271;72272;72315;72316;72362;72419;72469;72470;72471;72496;72565;72566;72677;72734;72697;72735;72791;72792;72809;72922;72852;73006;73007;73009;73008;73069;73070;73088;73089;73112;73172;73173;73196;73197;73279;73294;73280;73324;73323;73395;73450;73583;73605;73584;73662;73677;73720;73794;73721;73935;73795;74100;73936;74202;74143;74296;74203;74297;74298;74299;74343;74345;74344;76727;76728;76729;76730;76731;76732;76733;76734;76736;76735;74505;76737;74455;74482;74456;74457;74483;76155;76738;76231;76232;76441;76739;76442;76443;76547;76740;76548;76631;76742;76741;76694;76695;76743;76744;76745;76746;76855;76747;76856;76748;76888;77008;77009;77010;77011;77044;77043;77045;77076;77077;77137;77191;77192;77242;77270;77385;77463;77549;77550;77513;77514;77515;77516;77517;77566;77597;77622;77694;77736;77735;77737;77738;77739;77740;77805;77847;77849;77848;77951;77952;77978;78004;78005;78022;78072;78522;78523;78524;78404;78618;78525;78526;78527;78500;78499;78501;78454;78528;78638;78529;78530;78639;78531;78592;78593;78619;78640;78753;78721;78754;78755;78838;78882;78883;78908;79199;79200;79201;79227;79369;79370;79371;79372;79373;79424;79593;79594;79708;79680;79681;79709;79756;79757;79845;79846;79847;80000;80001;80002;80003;80070;80071;80110;80111;80112;80114;80113;80155;80154;72472;72533;72534;72535;73221;73222;73243;73606;73607;73959;73960;73961;74376;74101;74377;74378;74484;76184;76185;76186;76602;76601;76603;76781;76927;76926;76928;77138;77139;77140;77355;77623;77624;77625;77891;77892;77893;77894;77953;78578;78579;78580;78756;78757;78839;79242;79243;79325;79374;79376;79375;79758;79735;80004;80005;80006;80156;80157;80158;80329;80387;80407;80503;80504;80877;80899;80900;80901;80927;81011;81065;81044;81031;81066;81099;81067;81157;81306;81307;81288;81289;81464;81465;81466;81467;81537;81538;81800;81721;81802;81801;81723;81722;81804;81803;81724;81725;81805;81806;81660;81807;81749;81808;81766;81902;81947;82015;82065;82016;82287;82288;82289;82464;82465;82488;82489;82517;82687;82688;82689;82690;82757;82787;82808;82788;82789;82980;82981;82982;83026;83131;83400;83401;83402;83403;83404;83444;83445;83446;83447;83984;83535;83985;84003;84073;84074;84107;84138;84202;84256;84351;84352;84353;84354;84417;84418;84463;84464;84485;84534;84608;84757;84659;84784;84785;85096;85097;84817;85098;85099;85100;85101;85102;85103;85104;85105;85106;85107;84889;85108;84890;85109;85111;85110;85112;85113;85114;85115;84975;85035;85036;85067;85116;85117;85247;85294;85339;85137;85395;85487;85489;85488;85490;85491;85492;85526;85611;85613;85612;85614;85642;85679;85710;85732;85711;85777;85778;85779;85780;85781;85782;85864;85865;85958;85959;86095;86096;86199;86240;86359;86360;86487;86520;86522;86521;86556;86557;86612;86624;86714;86715;86741;86742;86743;86843;86892;86925;87018;86926;86927;87019;87020;87021;87022;87023;87024;87025;87026;87090;87027;87028;87091;87029;87092;87030;87093;87031;87033;87032;87034;87094;87035;87095;87036;87037;87038;87039;87040;87041;87042;87096;87097;87118;87119;87230;87231;87271;87272;87300;87301;87302;87363;87364;87365;87395;87396;87448;87449;87450;87451;87547;87636;81101;81100;81564;81102;81871;81966;81873;81872;82518;82490;82491;83045;83046;83047;83448;83449;83776;84108;84109;84388;84110;84419;84389;84786;84818;84819;85118;85175;85176;85177;85178;85261;85262;85263;85438;85439;85440;85967;86395;86438;86778;86779;86780;86881;87098;87332;87753;87792;87793;87794;87795;87796;87797;87798;87799;88029;87936;88030;88031;88069;88070;88071;88167;88168;88403;88443;88444;88445;88477;88478;88674;88776;88777;88778;88779;88780;88781;88856;88782;89065;89064;89094;89095;89769;89815;89816;89770;89858;89859;89952;89951;89978;89953;89979;89980;89981;90074;90075;90110;90111;90113;90112;90137;90174;90175;90176;90177;90295;90296;90383;90384;90486;90487;90488;90489;90613;90614;90667;90666;90746;90745;90747;90850;90880;91029;91030;91031;91032;91148;91149;91150;91151;91210;91152;91211;91072;91112;91113;91212;91414;91415;91416;91417;91418;91494;91493;91535;91641;91737;91797;91796;91798;92008;91799;92028;92396;92397;92576;92489;92577;92599;92687;92689;92688;92690;92716;92747;92835;92934;92935;92936;92937;93034;93035;93093;93147;93268;93338;93446;93447;93501;93641;93760;93759;93791;93790;93842;93804;93857;93947;93948;93949;94149;94221;94222;94247;94264;94428;94495;94496;94696;94429;94698;94697;94699;94700;94701;94702;94703;94704;94705;94706;94707;94708;94709;94710;94711;94712;94713;94714;94715;94716;94717;94718;94719;94720;94721;94722;94723;94724;94725;94726;94727;94622;94621;94895;94907;94908;94927;95041;95276;94928;95277;95379;95464;95410;95598;95561;95831;95977;95978;95979;95980;96065;96066;87834;96067;87835;87836;88032;88033;88981;88857;90178;90297;90342;90936;90937;90938;90987;91213;91291;91292;91294;91293;91590;91591;91592;91738;91850;92656;92657;92677;92779;92780;92781;92983;92984;93148;93448;93449;93676;93677;93678;93904;93905;93906;94064;94094;94223;94224;94532;94533;94225;95042;95043;95044;95617;95758;95759;96068;96069;96070;96279;96298;96299;96326;96327;96328;96329;96401;96476;96584;96585;96586;96587;96588;96751;96692;96753;96752;96789;96945;96970;97036;97007;97008;97139;97198;97293;97346;97345;97347;97372;97371;97404;97405;97485;97547;97506;97508;97507;97593;97626;97627;97749;97765;97820;97821;99061;99062;99063;99064;99066;99065;99067;99068;99070;99069;99072;99071;99073;99074;97906;97907;99075;99754;99298;99299;99329;99330;99332;99331;99386;99333;99334;99451;99452;99500;99562;99755;99563;99564;99565;99566;99567;100046;100045;100087;100088;100171;100089;100341;100342;100343;100344;100368;100369;100396;100397;100505;100506;100507;100525;100526;100527;100613;100528;100776;100800;100886;100887;100947;100888;100889;101022;100978;101076;101097;101139;101138;101249;101250;101382;101251;101383;101798;101877;101878;102031;102511;102281;102282;102283;102284;102339;102285;102340;102286;102287;102288;102289;102290;102292;102291;102293;102294;102295;102296;102297;102299;102298;102300;102301;102302;102303;102341;102342;102343;102344;102345;102346;102347;102473;102409;102512;102533;102513;102514;102515;102516;102534;102569;102570;102571;102633;102772;102850;102851;102904;102970;103204;103164;103165;103166;103238;103347;103488;103489;103490;103491;103525;103558;103559;103625;103626;103684;103803;103729;103829;103914;103955;104088;104001;104002;104089;104199;104200;104247;104248;104368;104618;104617;104698;104773;104799;104837;104838;104864;104946;104947;104948;105015;105016;105027;105028;105068;105142;96477;96478;96479;96589;97057;97117;97118;97406;97407;97408;99159;99160;99387;99161;99388;99389;100233;100234;100449;100235;100450;100451;100583;100584;101098;101192;101193;101194;102059;102060;102061;102572;102623;102624;102773;103348;103401;103402;103560;103765;104167;104168;104169;104369;104370;104371;104565;105144;105143;105145;105247;105598;105599;105600;105601;105667;105668;105669;105670;105671;106118;106239;106119;106240;106327;106364;106365;106366;106368;106571;106572;107014;107079;107015;107203;107080;107204;107205;107247;107206;108318;108273;108319;108358;108320;108321;108359;108393;108394;108479;108642;108938;108862;108863;109104;109105;109106;109107;109108;109109;109110;109111;109112;109153;109154;109438;109024;109113;109155;109025;109439;109192;109297;109193;109298;109331;109332;109333;109440;109542;109665;109629;109666;109807;109808;109809;109810;109811;109826;109827;109977;109978;109979;109980;109981;109982;109983;109984;109985;109986;110070;110108;110109;110276;110278;110277;110505;110582;110702;110701;110704;110703;110705;110706;110707;110629;110749;110751;110750;110917;110752;110918;110995;110996;111024;111252;111025;111253;111254;111320;111319;111482;111481;111483;111484;111485;111723;111724;111800;111801;112025;112103;112129;112130;117466;117623;117624;117679;117765;117766;117767;117815;117768;118025;117970;118026;118027;118076;118125;118161;118183;118184;118368;118709;118763;118762;118764;118765;118766;118767;118768;118769;118771;118770;118772;118774;118773;118775;118776;118778;118777;118779;118780;118781;118782;118783;118784;118810;118811;118511;118859;118512;118812;118813;118849;118850;119111;119166;118860;119278;119247;119248;119293;119329;119328;119756;119755;119757;119796;105520;105759;105760;106040;106241;106225;106242;106328;106468;106670;107051;107052;108939;109008;109156;109386;109523;109524;109630;109543;109631;109632;109828;109829;109881;110071;110404;110527;110584;110583;110585;110997;111144;110998;111562;111622;111725;111726;112283;111993;117378;117446;117513;117493;117514;117770;117769;117847;117848;117849;118053;118054;118055;118105;118106;118107;118441;118814;118851;118852;118861;119279;119534;119535;119567;119638;119639;120975;121200;121172;121279;121408;121378;121496;121497;121498;121499;121500;121523;121524;121525;121526;121584;121583;122325;122326;122327;122328;122461;122460;122462;122574;122632;122575;122633;122801;122863;122838;122938;122864;122991;122992;123055;123122;123430;123431;123483;123484;123485;123646;123960;123986;124097;124014;124133;124134;124135;124229;124253;124230;127567;124254;127568;127569;127570;127571;127572;127573;127574;127575;127576;125106;125107;125108;125109;127577;127578;127579;127580;127581;127582;127583;125187;125110;125188;127584;125189;125111;125190;125112;125191;127585;125442;125443;125444;127586;127587;127588;125589;127589;125688;125689;125914;127590;126022;126023;126024;127591;127592;127593;127594;126083;126141;126249;126142;126300;126316;127595;126317;126318;126450;126451;127596;126609;127597;126671;127598;127599;126672;126807;126708;127030;127600;126936;126937;127601;126938;127602;126971;127031;127603;127604;127605;127606;127608;127607;127609;127976;127610;127977;127611;127612;127978;127979;127981;127980;127982;127983;127984;128298;128405;128445;128598;128512;128513;128494;128514;128599;128655;128656;128846;128845;128847;129036;128747;128848;128748;128961;128980;129086;129087;129088;129328;129262;129138;129139;129263;129264;129329;129330;129574;129514;129987;130039;129989;129988;130040;130138;130139;130184;130247;130414;130415;130442;130497;131269;131270;131271;130737;131272;131110;130993;131273;131111;131113;131112;131373;131274;131518;131519;131520;131521;131828;131829;131915;131971;131972;131973;131974;132221;132303;132304;132667;132668;120976;132380;120977;132381;132412;121201;121202;121566;121630;122045;122044;122141;122802;122803;122804;122805;123145;123631;123961;123962;124048;124231;125113;125114;125115;125116;125235;125236;125237;125238;125665;125380;125792;125755;125938;125804;125963;125964;125965;125966;126143;126144;126488;126557;126610;126674;126673;127613;127614;127615;127616;127617;127985;128600;128601;128981;129140;129141;129515;129551;129575;129955;129841;129956;129990;130994;130995;130997;130996;131175;131174;131743;131209;131744;132305;131916;131917;131918;132067;132881;132944;133019;133020;133021;133153;133122;133123;133154;133182;133183;133184;133155;133220;133185;133186;133187;133279;133330;133331;133332;140038;133444;140032;133590;133591;140033;133513;133514;133515;133631;133780;133745;133781;133782;133823;134020;134058;134021;134022;140035;134059;140036;134141;134142;134143;134338;134191;134339;134340;134357;134341;134388;134556;134644;134687;134688;134689;134690;134750;134751;134691;134752;134821;134753;134931;134886;134887;135001;134846;134970;135428;135217;135218;135663;135374;135375;135429;135376;135430;135377;135573;135664;135378;135665;135379;135380;135431;135715;135747;135748;135884;135950;135885;135951;135952;135953;135954;135955;135956;135957;135958;136644;140034;136597;136598;136445;136446;136161;136447;136418;136419;136600;136599;136543;136601;136645;136646;136602;136647;137345;137171;136958;137218;137219;137037;137220;137221;137129;137222;137223;137224;137250;137289;137384;137346;137694;137385;137695;137386;137529;137530;137387;137531;137532;138201;137768;137696;137769;137770;137771;137740;137819;137820;137871;138202;138203;138204;138246;138481;138482;138483;138484;138485;138486;138487;138659;138660;138661;138662;138663;138664;138665;138667;138666;138975;140037;138976;139396;139162;139163;139275;139219;139276;139277;139397;139278;139350;139351;139352;139473;139474;139475;139530;139613;140436;140042;139909;140205;149376;140613;140395;140455;140483;140437;140524;140482;140486;140498;140497;140525;140783;140614;142897;141221;141234;141228;141252;141215;141257;141241;141239;141218;141238;141236;141229;141235;141258;141237;141253;141242;141232;141223;141254;141209;141256;141219;141220;141233;141250;141227;141225;141255;141226;141259;141224;141240;141222;141053;141120;141310;141312;141313;141414;141309;141130;143210;141413;141308;141261;141311;141637;141856;141777;141813;141855;141857;141912;141935;142005;142744;141933;142786;142785;142752;142743;142780;142755;142791;142763;142770;142811;142789;142751;142997;142776;142797;142796;142814;142764;142812;142804;142769;142750;142760;142768;142800;142748;142774;142754;142782;142794;142805;142813;142773;142749;142801;142778;142759;142775;142756;142783;142777;142802;142792;142899;142753;142771;142803;142781;142798;142762;142772;142765;142787;142767;142766;142747;142795;142758;142761;142815;142482;142484;142486;142962;142487;142485;142900;142895;142488;142799;142790;142898;142745;142793;142779;142746;142757;142788;142784;142964;142961;142963;142877;142965;142996;142896;143118;143197;143368;143201;143372;143377;146197;143378;146200;143534;144212;144216;144209;144213;144208;144206;144329;144330;144333;144331;144335;144332;144338;144336;144508;144563;144371;144562;144372;144373;132762;144375;132945;132946;133381;133663;133382;133632;134023;133711;134024;134061;134060;134342;134343;134358;144340;134359;144374;144561;144339;134645;144565;144447;144564;144457;135381;135433;135432;135574;136388;136022;136448;136485;136727;137173;137172;137225;137226;137290;137388;137291;137697;137821;138247;138417;138488;138418;139164;139165;139167;139166;139541;139398;139531;139476;139771;140082;140084;140208;140496;140500;140588;140499;140789;140930;140926;141207;141364;141367;141365;141395;141396;142024;142222;142483;142676;142869;142868;143067;142867;143207;142905;146201;146198;143427;143451;143486;143535;144014;144207;144210;144711;144748;144853;144844;144940;145012;145036;145006;145086;145075;145080;145462;145461;145508;145539;146565;145540;146046;146078;146077;146083;146101;146195;146438;146546;146441;146639;146640;146580;146638;146636;146637;146583;146568;146585;148551;146768;146866;146865;146868;146867;146934;146933;147141;147169;147166;147170;147167;147165;147195;147168;147213;147641;147646;147655;147712;147656;147863;147861;147888;148035;148183;148127;148181;148134;148219;148547;148421;148343;148359;148382;148423;148446;148371;148398;148571;148644;148556;148713;148997;148861;148862;148884;148883;148998;149021;149000;148999;149001;149059;149056;151113;149213;149909;149316;149914;149928;149958;149915;149931;149947;149943;149922;149937;149969;149941;149954;149932;149964;149966;149959;149955;149935;149940;149962;149965;149929;149936;149939;149924;149942;149963;149933;149923;152764;155325;155318;149917;149916;155323;149956;149948;149913;149968;155348;149912;149961;149960;149938;155324;149918;149911;149946;149934;149927;149910;149994;149995;149993;149790;149785;150063;149996;150060;150133;150145;150142;150153;150238;150282;150349;150242;150345;150344;150348;150500;150496;150693;150425;151217;150447;150449;150426;150429;150428;150495;150725;150494;150498;150497;150493;153180;150499;150747;150748;150723;150724;150779;150794;151359;151150;151218;151148;151450;151279;151284;151449;151152;151432;151353;151430;151505;151917;151926;151918;151682;151681;151984;151928;151982;151925;152095;152093;152184;152177;152264;152365;152366;152496;152538;152509;152498;152495;152493;152494;152511;152513;152510;152512;152549;152548;152622;152625;152615;152616;152626;152614;152623;152687;152617;152686;152795;152911;152979;152907;152978;152980;152981;153109;153240;153110;153237;153236;153241;153239;153419;153531;153574;153565;153534;153566;153575;153997;153765;154106;154066;154341;154097;154085;154096;154835;154128;154176;154353;154164;154270;154271;154277;154236;154269;154268;154808;154433;154782;154780;154848;154844;154859;154850;154833;154837;154886;154905;154934;155568;155978;154902;155987;155967;155969;155986;155390;155414;155984;155403;155406;155412;155398;155405;155387;155407;155437;155392;155428;155434;155413;155391;155429;155408;155396;155395;155410;155389;155415;155388;155425;155424;155417;155427;155394;155397;155422;155421;155419;155430;155435;155402;155436;155426;155418;155401;155438;155400;155420;155409;155393;155423;155404;155431;155416;155623;155433;155432;155411;155617;155608;155609;155610;155611;155606;155563;155569;155572;155564;155298;155566;155567;155565;155636;155692;155693;155695;155694;155846;155847;155845;155844;155957;155958;155991;155993;156045;156119;156123;156120;156156;156206;156244;156147;156243;156398;156399;146196;144802;144904;156397;144907;144906;144903;145505;144905;145700;146045;146047;146376;146377;146096;146269;146300;148549;148550;146299;146304;146305;146352;148546;147804;146534;146549;148548;147767;146588;146587;146989;146988;146993;147202;147204;147203;147205;147642;147621;148544;147811;148545;147862;147865;147840;147839;147869;147864;148383;147966;147965;147967;148036;148088;148133;148458;148459;148258;148259;148380;148453;148642;148452;149049;149245;149214;149296;149357;149356;149420;149421;149822;150061;150062;150299;154915;150722;150688;150689;150784;150778;150783;150843;150782;150941;151114;151112;151281;154917;151506;151529;151690;151689;151943;151948;151954;151944;152018;152049;152094;152195;152265;152267;152268;152266;152744;152382;152389;152464;152465;152598;152601;152578;152597;152754;152618;152912;153210;153390;153172;153442;153443;153558;153567;153559;153557;153665;153837;153550;153838;153964;153991;154916;153992;154165;154146;154145;154163;154971;154746;154970;154845;154885;155245;155011;155616;155615;155674;155673;155638;155679;155680;155926;155742;155889;156116;156204;155869;156205;156265;156458;156459;156652;156664;156663;156706;156705;156700;156797;156708;156800;156910;156876;157060;156875;157061;156936;157121;157122;157159;157161;157123;157223;157275;157277;157274;157335;157333;157317;157316;157368;158103;158101;158098;158726;158108;158113;158104;158110;158114;158118;158269;158268;158305;158267;158307;158332;158350;158467;158732;158797;158796;158794;158882;158884;158881;158904;158903;158984;158959;158970;158956;158968;158099;158962;158999;158998;156476;156570;156574;156571;156573;156572;156707;156740;156858;156859;157137;157164;157359;157291;157387;158112;158102;158107;158100;158171;158471;158359;158474;158492;158463;158475;158738;158740;158739;158767;158800;158795;158793;158792;159015;159066;159067;158997;159011;159016;159057;158734;159070;159071;159117;159173;68857;79445;79446;79447;79448;79449;79450;79451;79452;79453;79454;79455;79456;79457;79458;79459;79460;79461;79462;79463;79464;79465;79466;79467;79468;79469;79470;79471;79472;68878;79473;79474;79475;79476;79477;79478;79479;79480;79481;79482;79483;79484;79485;79486;79487;79488;79489;79490;79491;79492;79493;79494;79495;79496;79497;79498;79499;79500;79501;79502;79503;79504;79505;79506;79507;79508;79509;79510;79511;79512;79513;79514;79515;79516;79517;79518;79519;79520;79521;79522;79523;79524;79525;79526;79527;159123;79528;79529;79530;79531;79532;79533;79534;79536;79537;79538;79539;78234;78235;79535;78236;78237;78238;78239;79540;79541;79543;79542;79544;79545;79546;79547;79548;79549;79550;79551;79553;79552;79554;79555;79556;79557;80007;80247;80008;80248;80279;80280;80395;80394;80439;80929;81012;80928;81103;81119;81694;81118;81695;81726;81696;81903;81767;81768;81948;81904;81874;81967;81968;82066;82691;82692;82983;83108;83482;83484;83483;83485;83966;83967;84004;84139;84140;84141;84203;84257;84440;84390;84891;85037;85038;85138;85139;85141;85140;85142;85143;85144;85145;85147;85146;85188;85148;85236;85237;85340;85493;85528;85527;85529;85733;85783;85784;85968;86216;86613;86669;86670;86802;86781;86782;86882;87167;87273;87303;87232;87333;87366;87489;87800;87801;87802;87803;88034;88169;88170;88171;88446;88689;88737;88858;88783;89020;89066;89817;89818;89860;89982;90019;90076;90138;90139;90298;90385;90988;90989;91153;91154;91155;91316;91295;91280;91739;91740;91741;91742;91743;91744;91745;91746;91747;91748;91749;91750;91751;91752;91753;91754;91755;91756;91419;91776;91775;91777;91800;92600;92601;92602;92658;92659;92691;92782;92783;92854;93036;93037;93038;93679;93395;93396;93397;93709;93680;93761;93792;93793;93907;93908;94065;94095;94226;94227;94229;94228;94430;94497;94498;94534;94535;94650;94909;94930;94931;95045;95046;94929;95278;95279;95280;95366;95380;95599;95618;95619;95620;95621;95760;95794;95796;95795;96071;96072;96073;96074;96300;96517;96518;96519;96520;96521;96522;96590;96591;96790;96946;96947;97058;97079;97119;97120;97316;97409;97410;97411;97412;97486;97908;99076;99077;99078;99079;99081;99080;99162;99082;99164;99113;99390;99391;99392;99163;99568;99569;99975;99976;99977;100090;100115;100116;100205;100236;100237;100238;100399;100398;100529;100530;100585;100586;100948;101040;101140;101196;101195;101197;101198;101199;101252;101200;102062;102063;102064;102065;102835;102625;102573;102774;102906;102905;102908;102907;103403;103404;103830;103592;103593;104137;104136;104138;103627;104201;104202;104203;104249;104204;104453;104454;104619;105146;105147;105249;105248;105250;105521;105251;105643;105644;105717;105718;105761;106120;105762;106121;106243;106226;106291;106469;106524;107129;106706;107130;107248;107249;108360;108823;108864;108940;108941;109114;109157;109334;109158;109426;109544;109545;109667;109668;109830;109987;109988;109989;110110;110072;110305;110526;110306;110580;110581;110791;110884;110792;111021;111023;111022;111049;111773;111772;111992;112024;112282;112170;117377;117512;117846;118050;118051;117764;118708;118052;118962;118963;119010;119277;119292;119484;119566;119823;121605;122573;122087;122837;123482;124013;124637;124638;125105;125104;125615;125664;125754;126021;126020;126140;126669;126670;127565;127566;127975;129137;129550;129370;129986;130884;130923;131150;132666;131208;134611;135572;136071;137128;137170;137217;138415;137739;138416;139442;140168;140169;140018;140019;140361;141383;141374;142884;142943;143148;143132;143454;144837;145565;146248;147899;150475;150464;150463;150180;150986;150906;151049;151464;152045;152398;153582;153221;154015;154016;154858;155945;156595;155946;156597;156598;158127;158121;35008;10636;24743;24228;31651;86314;86315;26199;40985;21152;17595;11437;86316;10756;122403;11936;83349;53331;127857;102821;50350;35658;53471;35779;25247;126588;58076;25335;25245;65765;132935;25248;58604;25244;27507;25250;50542;25252;57915;25246;51859;44344;25287;69181;50543;29831;25251;108715;25249;40989;22255;19253;16476;42349;42351;42350;18525;19256;31051;10170;11906;31133;100381;100382;28292;76193;76214;76215;76192;76216;76262;76122;42337;42336;45082;42338;18612;18193;13645;13858;13646;13647;13859;13648;105157;105155;105156;122156;31789;101166;27802;27627;11845;10781;14255;108803;17636;22232;11626;16063;21025;59727;10171;11669;11024;17336;25571;25568;25570;25569;31467;59241;59242;50413;49806;18535;25708;11806;17327;17329;19505;15911;15909;11478;11479;10591;21227;138072;153136;155598;134709;134708;134710;138222;136825;136817;136762;136810;136818;138034;142873;142874;138035;137242;138036;138042;136819;136812;136824;136811;136823;136822;136816;136821;136813;136815;138041;138038;136814;137880;142876;137904;137900;137899;138220;138221;138331;141350;140502;140526;140530;140527;140516;140529;140528;140576;140522;142872;142875;144930;144932;148574;148560;152523;152505;152507;152506;153213;153141;153135;153140;153146;155591;155594;155592;155596;155593;155595;155597;155307;157862;158760;72817;72818;72819;72820;72821;72822;72823;72824;72825;72826;72827;73138;72883;78586;78587;80281;81167;83816;85535;86906;89687;89688;90246;90775;91673;91958;92942;93125;96314;95478;99438;105376;122259;122822;123512;122757;122348;137279;124009;123079;123557;129302;129502;126819;126786;126787;128414;128413;128508;132040;134305;133266;148123;138037;136826;137355;108591;148845;132771;135255;148974;138335;135904;135898;132584;137626;154336;158085;138334;135903;135755;157876;72828;72829;93126;91969;105295;95925;135756;100419;105296;91970;91971;91674;105297;91675;96531;105298;111065;103222;104811;101164;105299;112161;133858;135690;106143;80888;64286;86186;91676;72816;71496;142491;10611;10517;71495;38197;135238;135277;31462;38914;25764;47697;25768;70683;25763;81148;81166;50861;50860;50987;17201;17253;17574;16479;117530;10345;10172;12236;128276;128277;64294;64295;122502;122503;66334;19944;17996;19593;25444;19594;17209;35976;109061;20743;58119;10783;106457;40472;56818;73459;109582;106458;109394;139414;84470;121348;106459;88490;88099;83266;83267;84289;14837;65549;44047;44048;34044;34043;21041;29726;18417;18418;42352;27598;29748;10811;10664;10173;14733;16323;10174;109037;146059;146430;146433;146206;106488;106489;108515;106490;108516;106491;106492;106493;106494;106495;106496;106497;106498;106499;106500;106501;106502;106503;106504;106505;108517;106506;106507;109038;119886;119887;106952;106273;121474;106198;10508;11693;93006;93007;64853;73689;36162;64852;24246;11070;12111;10176;11675;11682;10564;10593;56240;17349;19584;17596;14185;17350;14357;26063;26025;17648;19513;17649;17314;10177;10670;15973;11850;11008;15949;19519;20088;17689;17219;11116;12041;17220;11761;15478;17221;19950;15948;15770;21305;10750;11117;20376;11050;11237;17796;11807;20111;17709;22268;17710;24906;25159;29833;33849;17711;17712;17713;31649;24907;39480;41014;43351;44921;48244;51139;17797;25368;25971;28181;32123;35043;35067;35750;58681;42862;57825;58966;59056;59529;60085;63621;64992;66584;66842;67259;71426;77285;48245;51140;51439;52717;55925;55969;57537;58039;122590;58967;63622;64993;66585;66843;67260;69401;58988;71427;71927;72881;73338;73862;74291;59057;76281;76791;77402;78545;79246;80330;81080;81510;82025;59530;83033;83517;84362;84671;85298;85885;60086;69348;72882;73411;73863;74292;76282;76772;77403;78546;79247;69402;80331;81081;81511;82026;83034;83518;84363;84672;85299;85886;86300;88679;88693;90007;90360;90920;91441;91897;92554;71428;71928;72511;78556;78082;84364;84673;85300;85887;86301;88694;90008;78547;90361;90921;91442;91898;92555;93077;93656;94106;94955;95874;79248;96799;101525;104631;105771;107216;122591;109576;111230;117340;117497;119764;80332;121602;81082;81512;82027;83035;83519;57557;122536;87599;93078;93657;94107;94956;95875;96800;97353;122537;100420;88680;100804;101526;122538;122539;104632;105772;107217;88695;109577;111215;117498;122821;90009;90362;90922;91443;91899;92556;122540;96801;104633;105773;107218;109578;97354;111231;117499;119765;121510;123827;123753;124762;122541;125640;127130;100421;100805;101527;122542;122543;122544;105774;117500;119766;121353;123828;123754;124763;125639;127131;132770;134949;107219;135926;139571;109579;111216;111217;121475;129557;130276;134944;135918;122750;139569;140532;142591;152853;123829;154650;154663;155590;123755;124764;125681;126637;127132;128531;131732;132769;140533;141355;142904;143449;133400;154656;154349;155589;158133;134162;135969;136741;138593;139570;144947;154296;155625;146311;149348;155730;158154;10839;15708;14770;59088;70728;67173;64557;67174;46803;17714;10513;19232;20009;19311;17302;19597;65615;14356;16335;22316;16336;15433;65616;15392;17687;10628;17715;10535;11444;15436;15861;17239;10810;11236;10655;10856;11966;11630;136744;73289;10701;17716;11468;10867;13650;19494;17717;19495;18033;58987;23927;20402;48243;19518;20180;21236;19768;18207;19239;31608;19227;11531;21153;18573;23968;17205;17225;18124;18589;18626;20132;20379;21323;15762;22021;15779;14226;18084;15780;18051;13840;11767;11938;13655;18007;17301;16200;12093;25822;16071;18156;11969;15850;20300;17246;18166;22267;14368;12008;20246;20374;23774;20169;21918;51456;12034;20339;51457;19514;20283;19753;15982;11799;14292;16138;19754;14293;15711;14294;14295;14296;14708;15983;21083;20091;20867;21091;11229;10574;12026;15784;43402;19547;43401;19546;56703;58040;16210;17259;21222;35259;35402;19313;15928;21310;21159;84216;84217;22512;99661;99662;59171;99663;36083;22124;36171;36170;44324;48908;49142;51425;55993;56379;56652;59211;57337;57372;59244;55023;54630;58087;57346;62312;61659;69448;62663;66295;69184;67227;67228;72714;77702;78233;78738;79599;79797;76277;76278;77305;76915;81818;83732;85986;144644;144641;88985;95027;88986;90428;99280;143253;88987;143262;110722;117334;119600;119601;125855;125856;123416;131319;143273;138595;143489;143532;126705;143282;129696;144646;144649;40352;66203;14787;17634;22873;19778;24001;24672;14258;14188;17297;17298;16208;19287;18621;18637;17247;35060;16276;11324;15905;10831;22271;21189;24261;34337;40796;15772;34338;14613;18659;43158;43157;35587;43159;20378;20215;11824;17610;48202;20216;21582;34726;21238;34419;19521;18636;17222;21228;11816;17223;20011;23784;20170;16122;20251;11099;11695;10618;21697;55928;57318;58410;78689;59317;59969;64670;72282;97947;91784;38866;40663;43862;40986;47802;52042;50706;55436;59195;34205;59194;10179;69177;71050;69176;69178;10968;18038;10180;14824;15485;10381;100296;12641;134042;100297;134043;134044;134045;134046;134047;134048;134050;134051;134049;77389;134052;65768;65769;90537;90538;77388;63079;63078;21049;29995;21645;25037;12035;18611;11200;17321;18591;66844;66175;25090;137327;137326;156380;137146;137632;33848;47765;138884;43027;51438;35262;47766;33103;16207;33823;20338;29746;57350;67205;53546;53545;21219;66862;90797;34304;34169;112154;20972;67099;31120;28373;29187;22115;23840;22116;22117;10181;11739;17152;11766;10182;29800;20891;22310;25421;31410;10183;10341;69320;11760;14193;80399;81047;53360;19940;10459;34851;70067;70068;55402;55403;15854;10184;108806;52610;42087;15855;17295;16139;11334;101167;119685;120946;123511;127045;125638;127052;11080;10185;10186;11540;29897;17653;99727;33812;33813;11629;108719;34347;54583;73787;54584;100465;11820;78083;104031;130127;63348;63349;63350;63351;63352;63353;63354;64669;65854;72659;81300;130024;83818;88808;86422;93050;94610;97435;100260;102527;104574;106842;111966;107226;110288;118936;125264;126309;127905;127906;137078;133966;139746;144060;148419;149850;152683;63355;90423;18202;65856;65855;65857;26024;40947;11456;16309;118224;15417;91826;11916;10483;63347;110976;17240;63346;18360;19545;20969;18300;15570;15721;11482;11666;14190;11743;14727;18006;24713;15858;21145;11676;14189;11744;12007;24669;62385;23976;73380;87944;87945;57573;69429;77780;87946;87947;106192;86699;35375;33868;73379;87948;87949;87950;87951;87952;106193;106194;106487;106195;87953;91816;10187;14178;15760;91817;18672;10622;63477;59114;99592;18616;151440;10188;152101;150958;150959;81497;150850;81496;65948;81086;81516;65947;64684;10649;25221;100571;17971;11785;18436;35580;11407;27055;19302;17718;106750;106751;50544;50989;51366;56956;106752;106753;84215;106754;106755;106756;11849;25040;77986;34265;11450;10634;66970;10189;132749;11768;10190;10464;10191;15484;70446;35690;31117;25344;12113;45501;40665;11752;10192;34473;90894;11305;11634;10194;10193;10195;51875;51874;51876;46856;147020;46857;14232;146582;14685;53916;11750;11694;146386;149522;11589;21158;109919;127908;135694;125628;124766;141359;142058;139225;148847;150869;152231;154449;127897;103053;106681;109920;124767;139226;141360;142057;109921;137857;142056;144327;18658;19705;19775;103054;20013;18005;15936;15938;15937;17224;15939;17363;15940;15941;22932;70661;76344;148406;66236;70662;72151;73823;73824;129750;148407;129751;129752;129753;129754;129755;129756;129757;129758;129760;129759;129761;129762;129763;73377;129764;70663;70684;73132;73133;73134;73135;77281;77282;87472;87672;95392;84960;66234;66235;84961;66237;66233;57365;69318;81669;105154;123418;57364;96337;71155;71156;46212;71459;82297;71460;18216;12018;11612;150162;19759;145534;139240;156198;122364;152871;148367;119602;118332;139241;118333;138898;138897;143479;65811;65810;91782;91783;118331;11134;38789;117905;117906;48353;48354;155705;10196;56044;10948;10423;18361;11376;10197;12279;59786;59787;59788;59789;59790;59792;59791;71536;70761;59793;59794;59795;59796;10931;12040;18419;73159;65930;65929;107197;73158;26061;58848;58847;107198;26001;11975;10712;20395;22336;21556;24761;25123;25347;25703;27626;29698;26916;29982;30204;33130;31735;34119;35437;38988;40929;45388;48323;49260;51062;55764;56667;59113;62890;66636;72706;78678;84505;85662;87848;12226;11278;21561;69422;17637;11506;20136;24268;10198;90544;46350;144631;144629;144628;144632;149704;152141;61460;61461;79355;144630;12121;17655;86148;86427;86251;11738;11123;14834;11999;16313;17243;18224;18225;21015;22317;29728;22204;10199;119779;125879;128056;128057;119752;132247;132248;132249;132250;132251;119613;132252;132253;132254;132255;132257;132256;31412;17296;11057;10730;10521;20825;58453;66173;64814;39329;12249;50434;57690;44119;48907;50612;51814;53409;57025;55908;57863;59173;62065;65630;63289;69472;76458;71772;14278;21140;20184;27591;25573;33744;50022;20183;12044;17254;11496;27522;18558;15789;15395;31418;12251;10554;15438;10461;10377;10200;83185;32195;34461;71884;21564;50687;12264;88862;12635;71880;12631;12632;12633;12303;12302;12304;12305;12306;12307;12308;12309;12310;12311;12313;12312;12314;12315;12317;12316;12319;12318;12320;12321;12322;12323;12325;12324;12327;12326;12329;12328;12331;12330;12332;12333;12334;12335;12336;12337;12338;12339;12341;12340;12342;12343;12345;12344;12346;12347;12349;12348;12351;12350;12352;12354;12353;12355;12356;12357;12358;12359;12360;12361;12362;12363;12364;12365;12366;12367;12368;12369;12370;12371;12372;12374;12373;12375;12376;12377;12378;12379;12380;12382;12381;12383;12384;12385;12386;12388;12387;12389;12390;12391;12392;12393;12394;12395;12396;12397;12398;12399;12400;12401;12402;12403;12404;12405;12406;12407;12408;12409;12410;12411;12412;12413;12414;12415;12416;12417;12418;12419;12420;12421;12422;15652;12423;12424;12426;12425;12427;12428;12429;12430;12431;12432;12433;12434;12435;12436;12437;12439;12438;12441;12440;12443;12442;12445;12444;12447;12446;12448;12449;12450;12451;12452;12453;12454;12455;12456;12457;12458;12459;12460;12461;12463;12462;12464;12465;12467;12466;12469;12468;12470;12471;12473;12472;12475;12474;12476;12477;12479;12478;12481;12480;12482;12483;12485;12484;12486;12487;12488;12489;12490;12491;12492;12493;12495;12494;12496;12497;12498;12499;12501;12500;12502;12503;12505;12504;12507;12506;13658;12508;14310;12509;13854;14625;12636;14311;14595;14624;12510;12511;14211;14215;14212;13653;13652;14696;14213;13846;14698;13853;15427;14239;14326;14240;14214;14380;14802;14623;14309;14697;15412;14739;14738;14737;14596;15410;15411;14740;14736;14735;14734;14801;15426;15440;15535;16016;15409;15537;15428;15958;15959;15943;15630;15441;15944;15700;15534;15629;16017;15633;16018;15533;15632;15536;15960;15532;15701;16009;15631;16019;15702;15741;15990;15945;15946;15995;15991;16053;15947;15992;16039;16040;16041;16054;16144;16108;16145;16366;16109;16295;16221;16147;16146;16148;16244;16149;16159;16110;18017;17165;17338;16222;17166;17167;17168;17169;17170;17171;16160;16296;17172;16211;17994;17173;16297;17174;17175;16263;16384;17176;17177;17178;16264;16298;17179;17621;17181;17180;17146;18309;17182;19827;17184;17183;17185;17186;18441;17187;16367;16361;18310;17188;16385;17189;16368;17147;17148;17207;17149;17190;16369;16370;16371;17191;17192;16386;17339;17129;18442;17264;17265;17252;18443;17340;18018;17266;17310;17267;17622;17589;18311;18312;18160;17268;19542;17269;17270;18161;18128;18313;17590;17591;17644;17365;17366;17995;17623;17624;17625;17645;19688;17659;17660;18093;17646;17626;17627;17628;17979;17980;17679;19828;19986;17981;17680;18469;19672;19987;18108;18094;18019;18278;18095;19829;18129;18147;19283;18196;18109;18162;18148;18110;18130;18279;18111;19988;19691;18197;18163;18198;18470;18280;18253;18385;18500;18421;18238;18239;18444;18386;18240;18407;18408;18241;18387;18388;18389;18510;18390;18409;18422;18423;18471;18472;18473;18554;19712;18474;18501;18475;18476;18512;18555;19989;18511;18556;18557;19990;19543;18594;19390;19830;18687;18648;18688;18635;19213;18657;19296;19380;19284;19268;19285;19422;19381;19409;19277;19331;19673;19332;19423;19286;19297;19831;19410;19832;19411;19991;19993;19992;19424;19412;19425;19994;19413;19488;19489;19490;19491;63828;20044;19544;19674;19675;63829;20045;19713;20046;19676;19677;20047;19833;19834;19714;20048;19835;19836;19837;19995;20058;20049;20050;20059;20060;20051;20107;20204;20143;20104;20105;20237;20238;20144;20106;20205;20145;20146;20141;20206;63830;20207;20208;20268;20360;20269;20270;20361;20362;20363;20364;20365;20366;20367;21086;21029;21030;21087;21031;20732;21088;21032;21033;20751;21089;20733;20480;20398;20752;20399;20481;20482;20922;20400;20753;20855;20856;20965;21042;20857;20858;20898;21034;20899;20900;20966;20886;63831;21005;21134;21043;21135;21090;63832;21286;21180;21181;21362;21287;21363;22084;21232;21257;22219;21288;22220;22085;21365;21364;21366;22086;21367;21682;21592;21593;22068;21594;21721;21636;21595;21637;22043;21638;21672;21683;21915;21722;22110;22044;22069;21916;22015;22111;22221;22045;22088;22054;22222;22112;22070;22291;22071;22330;22243;22149;22113;22223;22114;22150;22121;22122;22151;22201;22202;22264;22224;22292;22265;22266;22293;22344;22345;22331;22346;22347;22463;22442;22443;63833;22357;22358;22360;22359;22444;22523;22472;22473;22524;22474;22525;22918;23676;22896;22940;23677;23679;23678;23631;23680;23681;23682;23683;23684;23959;23797;23798;23960;23961;23962;23993;24009;24314;24010;63834;24676;24211;24212;24315;24363;63835;24316;24259;63836;24317;24896;24318;25312;25313;24364;25314;63837;24319;25238;24833;63838;25315;63839;24320;24696;25316;24677;24707;24774;24708;24697;25317;24678;24724;63840;24948;25318;25319;24775;25320;63841;25321;24897;25065;24949;24950;25322;25323;25324;25066;24951;25325;25067;25068;25326;25327;40702;40703;25135;25328;25136;25137;25138;25139;25140;25141;25142;25143;25144;25145;25146;25158;26903;25329;25192;25213;25330;25331;25362;25267;25332;25333;25193;25334;25268;25239;25269;25270;27828;25538;25604;25454;25404;28235;25363;25364;25519;25365;25366;25367;25476;25477;25520;25478;25479;25480;25481;25482;25539;25605;25521;25522;25523;25540;25606;25607;26189;25722;25723;25608;25622;25609;25984;27829;27830;27831;25610;25623;25611;25686;25724;27832;25624;25725;63842;25924;25876;25727;25726;28236;40704;28237;26050;27833;28238;25815;25828;25751;25752;25753;25816;25817;25829;25818;25819;28239;25797;27834;28240;25877;25985;25878;28241;25986;27563;40705;63843;40707;40706;26108;26109;25987;25948;43833;26190;25988;25970;25989;26051;27564;26191;26110;26052;26111;26952;26951;27035;26112;26953;26954;26904;26905;26906;27616;27565;26907;40708;26955;27036;28201;40709;27052;28202;27644;27645;27646;28242;27566;27567;27568;27569;27570;27571;28363;28243;28244;28245;28246;27602;27835;36860;27836;28168;37484;27837;27852;27838;36380;27839;27840;63844;28247;27853;28248;40710;63845;29203;36457;28169;28364;28365;28366;28367;43834;29301;29302;28368;28353;29773;28354;63846;29235;29204;29774;29303;63847;40711;29692;29693;29736;29737;29775;29776;29777;29875;29778;29876;29974;29975;29976;29977;30001;30002;30003;29954;29955;29956;31448;30140;30034;30035;32419;30004;30090;30091;40712;30245;30246;30247;31159;40713;31086;31305;40714;33247;31160;31161;31162;40715;31984;31306;63848;31185;31388;31307;40716;31163;31308;31186;31616;31985;31595;32018;32019;31389;63849;31617;31618;63850;40717;31754;32354;31619;31755;31756;31694;31695;31757;40718;32160;63851;32420;31840;40719;31986;31987;32112;32161;31988;32162;32020;32021;40720;32022;40721;63852;32163;43835;63853;43836;32355;63854;32356;32391;32421;32471;63855;32472;32422;32423;32424;32425;32427;32426;33783;32428;32429;33248;33096;33151;33152;33153;33376;33154;33097;33086;63856;33098;33377;33087;63857;33155;43838;43837;33156;33157;33462;33191;33192;33510;33512;33511;33423;33424;40722;33249;33250;33495;33496;33425;33578;33579;33580;34953;33497;33475;33463;63858;40723;33529;33528;33530;33570;33830;33571;34954;34955;63859;43839;43840;43841;40724;34057;33784;33581;33582;33583;33584;33586;33585;33865;40725;40726;33892;33884;63860;63861;63862;63863;63864;63865;63866;63867;34058;34023;33893;34063;34064;34034;34054;34065;63868;34274;34275;34190;34191;34288;34328;40727;34329;34229;34464;34465;34466;40728;34333;34330;34384;34696;34467;63869;40729;34690;34505;34691;34751;34841;35190;34842;34763;34764;40730;63870;34752;35038;34811;34956;35178;43842;40731;35179;35180;35181;40732;35182;35183;35191;40733;35192;40734;40735;40736;35323;35315;35300;35316;35301;35317;35357;35318;35652;35358;40737;35381;35302;40738;35319;35324;63871;35551;35429;35433;35434;35585;35586;36014;35653;35654;35605;35645;35615;35616;35721;35617;36029;35918;35757;35722;35773;35772;35774;36069;38870;35919;63872;63873;35775;36015;36097;36098;35970;35776;35971;35944;35972;63874;63875;63876;63877;36099;35945;35946;36030;35947;36031;40739;36032;40740;63878;36111;40741;40742;36044;36043;36065;36112;36113;36114;36159;36115;36177;36160;36178;36179;36180;36181;36214;36213;37605;40743;38193;38659;38660;38661;43843;38709;38710;38732;40744;38768;38769;38816;38817;38819;38818;40745;38820;38821;63879;38871;38872;38873;38874;38922;38945;38983;63880;39306;39307;39369;39370;39412;39411;39413;39430;39431;39432;40746;39461;39525;39526;39527;39528;63881;39529;39530;39531;39584;39583;39798;39597;39598;39599;63882;63883;63884;63885;39770;39799;39850;40340;40341;40342;40400;40401;40402;40431;40432;40433;40439;40440;40441;63886;63887;63888;40487;40747;40748;40749;40510;40541;40542;40543;40544;40608;63889;40639;40609;40640;40765;40766;40782;40795;40814;40834;40835;40836;63890;40837;63891;40838;40839;63892;63893;63894;40840;63895;40901;40921;40902;40922;40923;41008;40998;41031;41032;63896;41942;41065;41620;63897;63898;63899;41951;41962;41963;42065;42064;42077;42134;42159;42160;42161;42162;42163;42135;42164;42165;42216;42430;42285;42286;42288;42287;42312;42313;42357;42358;42359;42360;42431;42432;42456;42455;42469;42470;42790;42828;63900;63901;63902;42850;42890;42944;43845;43844;42945;43846;42946;63903;43046;63904;43047;43048;43078;43079;43080;63905;63906;43081;63908;63907;63909;53539;43168;63910;43169;43171;43170;43179;43178;43180;43597;43627;43628;43819;43820;43868;43821;63911;63912;43882;43883;44030;44029;63913;44062;44063;63914;44104;44105;44386;63915;63916;44430;63917;44605;63918;44633;44634;44635;63919;44651;44652;44666;44924;44956;44957;44665;44973;63920;46263;44974;46264;46265;46266;46267;46268;46269;46270;63921;63922;63923;46271;46272;46273;46274;46275;46276;46277;46278;46279;46280;46281;46282;46283;46285;46284;46286;46287;63924;46288;63925;46289;46290;46291;46292;46293;46294;46295;63926;46296;46297;46298;46299;46300;46302;46301;63927;63928;63929;63930;63931;63932;46303;46304;46305;46307;46306;46309;46308;46310;46665;63933;46681;46682;46683;46684;63934;46780;46735;46833;46834;63935;46835;47017;63936;79274;47027;47026;79275;47034;47043;47044;47117;47118;47119;47869;47871;47870;63937;47872;47873;63938;47874;47875;47876;47877;47878;47879;63939;47880;47882;47881;47884;47883;47885;63940;47886;63941;47905;48210;48212;48211;63942;48231;48252;48232;48258;48257;63943;48312;48313;79276;63944;63945;63946;48314;63947;79277;63948;48400;48423;63949;48751;48750;48899;48934;63950;48935;63951;49128;49129;63952;49130;49131;49132;53540;49133;49232;49233;49301;49639;63953;49640;63954;49744;63955;49745;49746;49747;49748;49749;49785;49786;49796;49797;49798;49799;49800;49801;49802;49974;49990;50009;50037;50038;50040;50039;50077;50078;50079;50340;50297;50341;50360;50361;50362;50363;50407;50408;50446;50447;50473;50474;63956;63957;50537;50630;50629;50631;50632;50633;50634;50635;50636;50638;50637;50639;50640;50641;50642;50620;50643;50644;50645;63958;50646;50647;50648;63959;63960;50703;50840;50841;50850;50851;50852;50853;50869;50870;50871;63961;63962;51056;63963;51072;63964;63965;51108;51107;51109;51110;51133;51153;51154;51155;51156;51157;51183;51197;63966;51354;51355;51357;51410;51358;63967;51417;51500;51432;51452;51523;51522;63968;51524;63970;63969;51561;51562;51563;51569;51570;51571;51589;51590;51671;51672;51811;51825;51826;51827;51866;51868;51867;51869;51917;51933;51918;52487;51952;51994;51993;63971;51995;52007;52008;53535;52009;63972;52020;52021;52063;52062;52064;52065;63973;52488;52161;52489;52490;52491;52492;52493;52494;52495;52496;52497;52524;52542;52578;52594;52595;52596;52605;52606;52607;52608;63974;52627;52628;52700;52701;52709;52749;52750;52760;52761;52762;52763;52764;53204;53205;53206;63975;53207;53245;53246;53291;53292;53293;53328;53310;53311;53329;63976;53352;53370;53399;53371;53400;53445;79278;53483;53500;63977;63978;53482;53525;53526;53581;53580;53582;53583;53584;53630;53631;63979;53646;53820;53819;53821;53853;53873;53867;53874;53911;63980;54590;54591;54592;54593;54594;54595;63981;54596;54597;54598;54599;54600;54601;54925;54926;54941;54928;54927;54930;54929;54932;54931;54984;54933;55011;55010;55012;55013;55014;55015;55159;55016;63982;55160;63984;63983;63985;63986;55398;55399;55400;55401;55450;55451;55452;55519;63987;55520;55539;55597;55584;55585;55598;63989;63988;63991;63990;55616;55626;55642;55643;63992;55644;63993;55645;55635;55646;55636;55647;55667;55684;55685;79279;55724;55710;55725;55726;55727;63994;55755;55756;63995;55809;55813;55825;55824;55854;55855;55856;63996;55879;55880;55881;55882;55917;55965;55964;55966;56110;55999;56000;56001;63997;56027;56028;56029;56030;56031;56032;56047;56086;76632;76633;76634;56111;56112;56113;56114;56170;56188;56205;63998;63999;64000;64001;64002;56235;64003;56250;56252;56251;56253;56254;56255;56278;56304;56326;56327;56328;56329;56383;56405;56404;56410;56411;56463;56505;56533;56534;56552;56553;56560;56561;56577;56578;56579;56628;56636;79280;56661;64004;64005;56698;56699;56709;56740;56741;56742;56743;56744;56745;56766;56811;56859;56866;56867;56942;56927;56975;56974;56989;56990;56991;57011;64006;57012;57014;57013;57015;57016;57017;64007;64008;57018;57020;57019;57021;57022;64009;57023;57036;57037;64010;57053;64011;64012;64013;64014;57054;57081;57295;64015;57296;57310;57311;57312;64016;57356;79281;57391;57408;57409;64017;64018;57481;57464;76635;57491;57492;57482;57493;57494;57594;64019;64020;64021;57657;57595;57676;57678;57677;76636;57679;57746;57747;57748;57759;57760;64022;57787;57761;57788;57789;57820;57821;64023;57822;57823;76637;76638;64024;64025;57870;64026;57885;57871;79282;64027;57929;57928;57930;57931;57957;57969;57956;57992;57993;57991;57994;57995;58027;64028;58052;64029;58053;58054;79283;58055;58056;58057;58058;58059;58060;58061;58063;58062;58064;58065;58066;58067;58083;58068;58085;58086;58111;58084;76639;58194;58261;64030;58262;58284;58285;58298;58338;58339;58394;58361;58407;58441;58442;79284;58507;79285;58508;58509;58510;58523;64031;58586;58672;58673;58674;58675;58718;58676;76640;58719;76641;58772;79286;58773;58841;58840;58866;58867;58868;64032;58869;64033;58882;76642;76643;78922;64034;58940;78923;59028;59029;59031;59030;64035;64036;59106;76644;59222;64037;59223;78924;59224;78925;59253;59306;59307;64038;59363;59383;59423;59392;59424;64039;59467;59468;59489;59490;59491;59562;59563;59492;59564;59584;64040;59585;59586;59587;59588;59589;59590;59591;59592;59593;59594;59595;59596;59597;59598;59599;59600;59636;64041;59638;64042;59637;64043;59711;59712;78926;64044;59721;59751;59752;64045;59753;64046;59844;64047;59946;59952;59947;59982;78927;64048;60008;60009;60010;60057;60011;60058;60076;78928;64049;60124;60159;60160;64050;61376;61377;61378;61389;61390;61403;61404;61405;64051;61452;76645;61454;61546;78929;76646;76647;61618;61603;61604;61559;78930;64052;78931;61653;61654;61689;61690;61691;64053;61704;61767;61705;61768;61769;61770;78932;64054;64055;61793;64056;62001;62024;62055;62056;62069;62070;62087;78933;62089;62088;62091;62090;62092;62093;62209;76648;76650;76649;76651;76652;62169;62170;62195;62303;62196;62405;78934;78935;62406;62407;78936;62471;64057;62472;62473;62505;62541;62542;62543;62544;62572;78937;78938;64058;62613;62614;62635;62615;62636;64059;62732;62755;64060;62771;62772;62833;64061;62834;62857;62916;62897;62917;62922;62930;62923;62931;64062;62980;62981;62932;64063;76653;78939;78941;78940;64064;63105;64065;78942;64066;64067;63152;64068;63162;64069;63182;78943;63190;119427;63258;63292;64070;63293;64071;64072;76233;63403;63404;63406;63405;63407;63408;63409;64073;64074;63410;63412;63411;63414;63413;63415;63416;63445;63446;64075;119428;63465;63466;119429;64076;63534;78944;64077;63590;63662;63641;63663;63675;63676;66879;64079;64080;78945;78946;64280;78947;64281;119430;64387;78948;64388;64389;64390;64391;64392;64393;119431;64479;64465;64466;64467;64468;64498;64517;64518;64519;64520;64564;64565;64627;64628;76234;76235;64694;64695;64696;64697;64746;64747;64748;64749;64750;65171;64751;64752;64753;64754;64755;64756;64758;64757;64760;64759;64761;64762;64764;64763;64765;64766;64767;64768;64769;64770;64772;64771;64774;64773;64775;65172;78949;64793;76654;76655;64794;76656;76657;76658;64903;64904;64924;64943;78950;64944;64945;65004;119432;65005;65006;65007;65041;65069;65070;65071;65072;65073;65074;65075;65082;65083;78951;65084;65085;65173;65200;76659;65201;65202;65203;65204;65205;65206;65207;65237;78952;119433;65238;66880;78953;65543;65544;65561;65562;65605;65625;78954;65626;65697;65651;65652;65677;65678;65698;65714;65728;65729;65779;65780;65781;119434;119435;119436;119437;65863;65905;119438;119439;65922;65938;65990;65976;66192;78955;65991;65992;66013;66014;66015;66029;66030;66211;66212;66213;66331;66225;66370;78956;66403;66437;66438;66439;66440;66457;66458;66459;76660;66488;66489;78957;66971;66522;66523;66524;66525;66536;66537;66550;78958;66659;66660;66661;76236;66690;66662;66705;66706;66707;78959;78960;66771;66772;66773;78961;66853;78962;78963;66882;66883;66939;66940;66949;66948;66979;66980;66981;76237;76238;67184;76661;78964;67219;67238;67239;76289;67240;68865;68866;68921;68900;79287;68901;79288;78965;68922;68944;69012;69011;69110;69111;78966;69160;69161;69162;78967;76239;69222;119341;119342;69254;69255;69256;69315;78968;69341;72261;69413;76662;76663;76664;69493;78969;69502;69777;69778;119343;119344;78970;69882;69883;72238;78971;69795;69823;76290;69851;78972;79289;69943;76665;69944;70010;70011;70012;70114;70013;70163;76666;70243;76667;70244;70245;70247;70246;70248;70249;70371;70250;71188;70327;70348;70387;70451;78973;70466;72237;70489;70488;70553;70536;70554;78974;70555;78976;70600;70601;70602;78977;78975;70694;70695;70696;70697;70703;76669;70755;70771;70791;70792;70793;70871;70870;70913;78978;78979;70999;71000;71001;71003;71002;71004;71005;71006;71007;71008;71009;71010;71011;71012;71013;71014;71015;71016;71017;71019;71018;78980;78981;71093;78982;71189;71190;78983;71900;71224;71225;71242;71243;78984;71389;78985;71290;71291;71293;71292;71335;71336;71337;71369;71370;78986;78987;78988;71390;78989;71516;76670;76671;72390;78990;71557;76187;71558;71612;71613;71877;78991;71878;71909;71962;71963;71986;78992;71987;78993;78994;72059;72161;72060;72196;76672;72273;72209;72274;72317;72318;72319;72320;72363;72321;72364;78995;78996;78997;72420;72454;72473;72474;72497;78998;72498;72499;72567;72643;72568;72678;72679;119345;72698;72736;72737;78999;119346;72793;72794;72810;72853;119347;72854;76673;72923;79000;72975;79001;72976;73010;73011;73071;73072;73090;73091;79002;73113;73174;73175;73198;73199;79003;73281;73282;73283;73284;73295;79004;73326;73325;79005;73396;73451;79006;79007;73452;79008;73585;73587;73586;79009;73608;79010;79012;79011;79013;79014;73663;79015;119348;119349;73678;79016;73705;76674;76675;76676;73780;73781;73782;73796;119350;119351;73901;73937;79017;74005;74020;119440;79018;79019;74031;74032;79020;74102;79021;76240;76241;119352;119353;74144;76677;79022;79023;74204;74205;74206;74207;74300;79024;74302;74301;74304;74303;74346;74347;74348;79025;79027;79026;79028;79029;76889;76890;76892;76891;76893;76894;76895;76896;76897;76898;76899;76900;74459;74458;74460;74461;79030;74485;119354;74486;119356;119355;79031;76156;76242;76901;76243;76244;76291;76274;76292;76293;79032;79290;79033;79108;79034;76398;76902;76399;76400;76401;76678;76679;76445;76444;76446;76447;76903;76549;76550;76515;76516;76585;79035;79036;79109;76680;76904;76696;79110;76697;76699;76698;76700;76749;76905;76906;79111;76750;76751;76907;79037;79038;76908;79112;79039;76997;77012;77013;77014;77015;77016;77078;77079;79113;77046;79114;77080;77082;77081;77083;77141;77178;77142;77143;77193;77195;77194;79040;77243;79041;77271;77298;77356;77357;77386;79042;79043;77464;79044;79045;77519;77518;77521;77520;77522;77523;77561;79046;79047;77567;79048;77626;77627;77628;77661;77695;77696;79049;77697;77698;77741;77699;77826;77806;77827;79050;77815;77828;79051;77895;77896;79052;77979;78006;78008;78007;77980;78009;79053;78023;78073;79054;79055;78406;78405;78407;78408;78410;78409;78412;78411;78414;78413;78455;78415;78456;78457;78458;78459;78502;78503;78532;78533;78534;78535;79056;79057;79058;78594;79059;78595;78620;78621;79060;78735;78722;78736;79291;79061;78758;78759;78760;78840;78867;119441;78884;79115;79116;79117;78909;79202;79204;79203;79205;79206;79207;79228;79302;79303;79326;79327;79328;79329;79351;79377;79352;79378;79379;79380;79425;79426;119357;79595;79596;79597;79682;79683;79736;79684;79685;79710;79711;79737;79849;79848;79850;79851;80009;80010;80011;80012;80013;80072;80073;80074;80096;80097;80098;80159;80115;80116;80160;80161;80213;80214;80215;80216;80388;80396;80440;80408;80469;80505;80470;80506;80508;80507;80544;80509;80878;80879;80881;80880;80882;80930;80931;80932;81014;81013;81033;81032;81034;81035;81068;81036;81069;81104;81071;81070;81143;81158;81159;81200;81201;81202;81203;81204;81244;85712;81290;81291;81292;81293;85713;81339;81340;85714;81468;81469;81470;81471;81472;81473;81474;81475;146265;81504;81505;81506;81539;81625;81624;81627;81626;81628;81629;81630;81631;81632;81633;81635;81634;81636;81637;81638;81639;81640;81661;81663;81662;85704;81664;81727;81728;81750;81769;81905;81906;81907;81908;81969;81949;117467;82492;82017;82067;82018;82493;82290;82292;82291;82466;82427;82467;82494;82495;82496;82564;82519;82619;82636;82637;82656;82693;82758;82790;82809;82791;82810;82811;82846;82895;82896;82812;82897;112239;82908;82909;82910;82984;82986;82985;83048;83027;83028;83161;83132;83172;83173;83343;83405;83424;83406;83407;83409;83408;83411;83410;83425;83412;83427;83426;83428;83429;83430;83431;83432;83433;83536;83537;83753;83754;83808;83844;83843;83986;83968;83987;84005;84076;84075;84111;84077;84188;84112;84142;84143;84189;84204;84225;84258;84355;84356;84357;84358;84359;84391;84360;84420;84392;84421;84422;84465;84466;84467;84486;84535;84609;84610;84660;84758;84631;84787;84788;84820;84789;84871;84872;84873;84911;84912;84936;84937;84938;84940;84939;84941;84942;84943;84944;84945;84946;84947;84892;84948;84893;84949;84950;84951;84952;84953;84954;84976;84977;84955;84956;85039;84978;85040;85041;117306;85068;85069;85070;85248;85149;119358;85238;119359;85249;85705;85295;85342;85341;85715;85716;85372;85441;85396;85373;85442;85443;85494;85495;85496;85497;85530;85563;85531;119360;85615;85617;85616;85618;85643;85644;112240;85619;85645;85680;85717;85718;85969;88636;85970;85971;85972;85973;85974;85999;85975;85976;119361;117307;86000;85977;85978;86702;85979;85980;85981;119362;86097;86098;86099;117308;86200;86201;119363;86306;86844;86241;86242;86362;86361;86396;86411;112241;86412;86414;86413;86488;86523;86439;86524;86525;86526;86597;86558;86559;86560;86561;86562;86614;117309;86625;119364;86716;86717;86718;86744;86719;86745;86746;86845;86861;86893;87043;86910;86966;86862;86928;86929;86930;86968;86967;86969;86931;86970;86971;86932;86972;86933;86973;86934;86974;86935;86936;86937;86975;86976;86977;86979;86978;86980;86981;86983;86982;86984;86985;86986;86987;86988;86989;88571;86990;86991;87044;87045;87046;87047;87048;87049;87050;87100;87101;87102;87099;87179;87190;87191;87192;87193;87837;87194;119365;87195;87233;87234;87274;87275;88573;88572;87305;87304;87306;87307;87334;87335;87336;87337;87452;87397;87398;87399;87453;87454;87456;87455;87457;87458;87490;119366;87519;87637;87665;87664;87754;87805;87804;87806;87807;87809;87808;87810;87811;87855;87812;87856;90077;87937;87886;87998;87999;88036;88035;88072;88073;88074;88075;88076;88077;88172;88173;88574;88404;88405;119442;88406;88447;88448;88449;88479;88480;88506;88481;88482;117310;88554;88556;88555;88557;88558;88617;88618;112242;88588;88675;88690;88746;88784;88785;88787;88786;88788;88789;88790;88791;88792;88794;88793;88889;88859;88890;89067;89068;89069;89071;89070;89072;89073;89096;89097;119367;89720;89771;89772;89773;89774;89819;89861;89820;89821;89862;89917;89983;89954;89955;89984;89956;89985;89986;90078;90079;90114;119368;90115;90116;90117;90140;90141;90179;90180;90181;90182;90183;90261;90184;90299;90300;90301;90302;90343;90386;90388;90387;90990;90389;90390;90391;90491;90492;90493;90490;90530;119369;90494;90495;90496;90498;90497;90499;90500;90570;90615;90616;90668;90670;90669;90671;90672;90749;90748;90750;90818;90819;90851;90852;90853;119370;90881;90882;91033;91034;91035;117311;91036;91073;91074;91075;91076;91077;91037;91038;91078;91114;119371;91115;91080;91079;91116;91117;91118;119372;91157;91156;91179;91214;91246;91245;119373;119374;91307;91317;91380;91381;91383;91382;91440;91420;91495;91449;91496;119375;91497;91536;91632;91621;91642;91711;91724;91757;91801;91802;91803;91804;91851;91805;112243;91852;112171;91872;91988;92029;92030;92398;92399;92044;119376;92401;92451;112244;92400;92490;92508;92509;92510;92578;92552;92579;92553;92580;92603;92604;92693;92692;92695;92694;92696;92697;92717;92718;92748;92836;92814;92837;92855;92856;92857;92858;92938;119377;92939;117312;92941;92940;92995;93039;93040;93041;93042;93043;93044;93070;93118;93119;93094;93095;119378;93149;93269;93339;93364;119379;93365;112245;112246;112172;93450;93555;93451;93502;119380;93452;119381;93503;93556;93586;93504;93681;93642;93762;93763;93764;93784;93785;112173;93805;93826;93843;93858;93891;93950;93951;93952;112247;94066;94035;119382;112248;94103;94104;94105;94130;94131;94150;94188;94189;94191;94190;94192;94265;119383;94230;94313;94314;94315;94316;94317;94318;94431;94348;94452;94453;94454;94462;94499;94463;94500;94501;94502;94503;94536;94537;94538;94539;94540;94541;94542;94543;94545;94544;94546;94547;94548;94549;94550;94551;94552;94553;94554;94555;94556;94557;94558;94559;94560;94561;94562;94563;94564;94565;94566;94567;94568;94569;94603;94604;94605;94606;112249;112250;112251;94624;94623;94625;94626;94651;94665;94666;94667;94896;119384;94897;94910;94911;119385;94912;94920;94937;95024;95047;110330;95291;95292;95381;95382;95465;110331;95562;95563;95600;119386;95622;95819;95820;110332;95981;95982;95983;96038;96039;96040;110333;96267;96306;96307;96308;96309;96310;96311;96312;96313;96402;96403;96428;96480;96523;96524;96525;96560;96592;96594;96593;96596;96595;96598;96597;96971;96972;112174;96650;96651;96652;96693;96754;96755;96756;96791;96824;96867;96825;96920;96826;96921;96922;96948;96949;97009;112252;97010;96973;97011;97012;97059;97013;97061;97060;97095;97062;97121;97185;97199;97200;97348;97294;97349;97350;97374;97373;97413;97375;97460;97414;97461;97462;97487;97463;97465;97464;97489;97488;97490;97491;97492;97509;97510;97512;97511;97513;97514;97548;97594;119387;97595;97596;97628;97630;97629;97928;97929;97930;97931;97717;97718;97750;97792;97766;97768;97767;97769;97844;97871;97822;97823;97872;97873;97874;97875;97876;97877;97878;97879;97880;97881;97883;97882;97884;97885;97932;97886;112253;97933;97909;112254;112256;112255;97910;97911;99335;99336;99337;117313;117314;99339;99338;99341;99340;99343;99342;99345;99344;99346;99347;99348;99431;99453;99501;99454;99455;112175;99502;99503;99504;99571;99570;99572;99573;99650;99574;99651;99652;99682;99683;99684;100021;100047;100091;100142;100092;100093;100143;100094;100095;100117;100118;100119;100144;100172;100239;100240;119388;112257;100315;100316;100287;100288;100317;100318;100345;100346;100370;100371;100400;100401;100452;100453;100454;100455;100456;100457;100531;100508;100532;100533;100587;100534;100631;100716;100660;112258;112176;112259;117316;117315;100777;100833;100778;100801;100890;100892;100891;100979;100893;100895;100894;100896;100897;100898;100899;100900;100901;100980;100902;100981;112260;100982;100949;100950;100983;101023;101077;101078;101099;101100;101101;101102;101103;101141;101253;101254;101255;101360;112261;101384;101385;101386;101518;101786;101799;101879;101880;101881;101882;101883;101939;102012;112177;102090;102139;102140;102141;102142;102143;102144;102102;102145;102103;102146;102104;102147;102149;102148;102106;102105;102107;102108;102110;102109;102111;102150;102112;102113;102151;102114;102152;102115;102153;102154;102155;102116;102117;102156;102119;102118;102157;102158;102159;102187;102348;102250;102304;102305;102349;102350;102410;102306;102411;102412;102517;102492;102518;102535;102519;102520;102537;102536;102538;102574;102575;102634;102813;102692;102726;102775;102950;102727;102951;102909;103038;102971;103039;103040;103041;103042;103043;103044;103045;103046;103119;103349;103167;103168;103169;103170;103171;103172;103205;103206;103239;103207;103208;103240;103241;103209;103242;103243;103350;103351;103352;103453;103405;103406;103407;103408;103465;103492;103493;103495;103494;103496;103497;103498;103499;103527;103526;103561;103500;103562;103628;103629;103630;103632;103631;103633;103685;103686;103687;103766;103804;103805;103956;103957;103916;103915;103958;104090;104003;104004;104005;104006;104091;104092;104116;104139;104170;104140;104205;104250;104251;104267;104455;104372;104456;104457;104493;104458;104538;119389;104539;104540;104541;104620;104566;104567;104621;104622;104568;104699;104700;104774;104775;104801;104800;104802;104839;104840;104841;104842;104865;104843;104986;104949;104950;104951;104987;104988;105017;105018;105029;119390;105069;105209;105091;105092;105210;105267;105268;105269;105252;105367;105368;105369;105345;105407;105479;105559;105560;105522;105523;105524;105525;105526;105527;105528;105529;105530;105531;105532;105533;105561;105562;105672;105564;105563;105565;105673;105566;105567;105674;105602;105568;105603;105569;105604;105605;105606;105607;105608;105609;105610;105676;105675;105677;105678;105679;105680;105681;105682;105645;105646;105743;106088;106089;106122;106182;106183;106244;106245;106246;106247;106248;106249;106250;106251;106252;106253;106254;106255;106256;109427;106329;106330;106331;106332;106333;106334;106525;106335;106336;106553;106574;106573;106650;106651;106616;106615;106671;107058;106925;107053;109428;107017;107016;107018;107019;107081;107114;107082;107186;107187;107188;107190;107189;107191;107207;107287;107208;108322;119391;108323;108324;108325;108274;108276;108275;108277;108326;108327;108328;108330;108329;108331;108361;108332;108362;108395;108396;108480;108397;108448;108683;108643;108644;108865;108866;108982;108868;108867;108869;108983;108942;108985;108984;108986;108987;108989;108988;108990;108991;108992;108993;108995;108994;108996;108998;108997;108999;109070;109009;109026;109027;109115;109116;109160;109117;109335;109194;109195;109300;109299;109301;109302;109303;109304;109305;109306;109307;109387;109336;109337;109338;109339;119392;119393;119394;119395;119396;119397;119398;119399;119400;109388;109389;109390;109391;109566;109441;109442;109443;109444;109567;109568;109546;109569;109633;109634;109570;109635;109636;109637;109638;109639;109640;109641;109754;109642;109669;109670;109755;109831;109832;109833;109834;109835;109836;109837;109905;109906;109838;109907;109839;109840;109841;109842;109844;109843;109845;109846;109847;109908;109909;109910;109990;109991;109992;109993;109994;109995;109996;109997;110215;110216;110217;110218;110219;110073;109998;109999;110000;110001;110002;110003;110004;110074;110075;110005;110006;110007;110008;110009;110010;110011;110013;110012;110014;110015;110016;110017;110076;110018;110077;110078;110080;110079;110081;110111;110082;110083;110084;110085;110087;110086;110113;110112;110114;110115;110116;110117;110118;110119;110220;110120;110221;110280;110279;110281;110405;110406;110467;110468;110506;110469;110507;110541;110600;110601;110602;110603;110604;110605;110606;110607;110608;110654;110618;110631;110630;110632;110708;110709;110692;110793;110710;110711;110712;110713;110714;119401;110794;110716;110715;110796;110795;110885;110797;110753;110798;110754;110755;110757;110756;110759;110758;110799;110800;110919;111026;111028;111027;111000;110999;111001;111029;111030;111031;111032;111145;111033;111034;111146;111147;111148;111255;111256;111257;111342;111321;111322;111323;111324;111325;111326;111327;111364;111365;111366;111486;111487;111488;111489;111490;111491;111492;111493;111514;111515;111516;111623;111774;111727;111729;111728;111730;111731;111732;111733;111734;111735;111736;111775;112026;112027;112028;112029;112030;111776;111802;111803;111804;111805;111994;119402;119403;112104;112131;112132;112133;112134;112178;112179;117317;117318;117319;117320;117321;117322;117323;117324;112284;119404;117398;117447;117468;117469;117470;117471;117494;117535;119405;117587;117625;117626;117680;117681;117771;117773;117772;117774;117776;117775;117777;117779;117778;117780;117781;117816;117782;117783;117784;117818;117817;117895;118028;117912;117865;117971;117972;118029;118126;118030;118127;119406;119407;118077;118128;118162;118163;118164;118165;118185;118186;118187;118513;118369;118370;118371;118372;118373;118374;118375;118376;118377;118514;118515;118516;118517;118518;118519;118521;118520;118522;118523;118524;118525;118526;118527;118529;118528;118530;118531;118532;118726;118533;118534;118535;118536;118537;118538;118539;118540;118541;118542;118543;118544;118545;118546;118547;118548;118549;118550;118551;118553;118552;118555;118554;118556;118557;118559;118558;118560;118582;118583;118744;118785;118786;118787;118788;118789;118790;118745;118791;118792;118793;118943;118815;118816;118944;118945;118862;118863;118865;118864;118946;119408;119410;119409;119112;118947;118949;118948;119411;118950;118964;119412;119075;119076;119167;119168;119169;119170;119171;119172;119173;119174;119175;119413;119294;119414;119415;119416;119331;119330;119485;119486;119487;119488;119443;119568;119705;119489;119734;119735;119736;119797;119798;119799;119800;119758;119801;119802;119803;120978;120979;121143;121173;121203;121280;121325;121337;121338;121379;121380;121448;121449;121450;121451;121452;121453;121454;121501;121502;121528;121527;121530;121529;121531;121606;121585;121586;121587;122110;122111;122112;122142;122175;122329;122330;122331;122332;122333;122292;122334;122335;122336;122441;122337;122442;122464;122463;122465;122634;122635;122636;122637;122525;122526;122606;122737;122738;122739;122638;122639;122659;122711;122712;122713;122771;122839;122840;122841;122806;122842;122843;122807;122886;122865;122866;122939;122993;122994;123056;123146;123123;123433;123432;123434;123486;123487;123488;123647;123915;123914;123916;123963;123964;123987;123988;123989;124049;123990;124098;124015;124099;124136;124137;124138;124232;124233;124255;127087;124257;124256;124258;124259;124260;124261;124838;124662;124663;124664;124665;124666;124667;124669;124668;124671;124670;124672;124673;124690;124691;124692;124693;124839;124840;124841;124842;124752;124843;124844;124845;124846;124847;125011;125033;125034;125035;125012;125013;125014;125015;125036;125037;125038;125039;125117;125118;125040;125041;125042;125043;125044;125045;125046;125047;125048;125049;125050;125051;125120;125119;125122;125121;125192;125123;125124;125125;125126;125127;125128;125193;125194;125195;125197;125196;125198;125199;125053;125054;125052;125200;125201;125322;125239;125240;125347;125381;125382;125383;125384;125385;125445;125446;125590;125616;125711;125690;125691;125692;125712;125756;125713;125714;125840;125841;125842;125805;125806;125872;125915;125939;125940;125967;125968;125969;125970;125971;125972;125973;126057;125974;125975;125976;125978;125977;126026;126025;126028;126027;126029;126030;126058;126084;126085;126086;126087;126088;126089;126301;126251;126250;126302;126252;126320;126319;126322;126321;126489;126323;126452;126453;126520;126521;126558;126559;126675;126676;126677;126678;126611;126594;126612;126679;126680;126681;126682;126709;126710;126711;126712;126757;126758;126759;126760;126761;126762;126939;126940;126941;126942;126943;126972;126973;127033;127032;127619;127618;127620;127621;127622;127623;127624;127625;127626;127627;127628;127629;127630;127631;127632;127633;127634;127635;127636;127637;127638;127639;127640;127641;127642;127644;127643;127646;127645;127647;127648;127649;127651;127650;127652;127653;127654;127656;127655;127657;127658;127659;127660;127661;127662;127663;127664;127665;127666;127667;127668;127669;127670;127671;127672;127673;127674;127675;127676;127677;127678;127679;127680;127681;127682;127683;127684;127686;127685;127687;127688;127689;127690;127692;127691;127693;127694;127695;127696;127698;127697;127699;127700;127702;127701;127703;127704;127705;127706;127708;127707;127709;127710;127711;127712;127713;127714;127715;127716;127717;127718;127719;127720;127721;127722;127828;127829;127986;127830;127831;127832;127877;127878;127879;127987;127988;128068;127989;127990;127992;127991;128106;128107;128108;128109;128406;128515;128069;128205;128299;128300;128407;128446;128408;128447;128448;128449;128450;128451;128495;128452;128496;128497;128498;128516;128657;128517;128658;128536;128659;128849;128627;128660;128662;128661;128663;128664;128665;128850;128851;128666;128852;128853;128854;128855;128857;128856;128858;128859;128860;130185;129037;128962;128982;128983;128985;128984;129142;129143;129144;129089;129038;129039;129040;129041;129265;129145;129266;129090;129331;129091;129092;129146;129147;129148;129149;129150;129267;129268;129269;129270;129396;129272;129271;129273;129274;129275;129276;129371;129332;129333;129372;129373;129374;129479;129480;129516;129517;129518;129519;129520;129576;129804;129738;129739;129740;129741;129742;129859;129860;129861;129862;129957;129863;129864;129865;129866;129867;129958;129959;129960;129991;129992;129993;129994;129996;129995;130041;130042;130043;130045;130044;130140;130046;130186;130141;130154;130155;130187;130188;130189;130190;130248;130249;130330;130331;130332;130250;130251;130354;130371;130373;130372;130375;130374;130377;130376;130378;130379;130380;130381;130382;130383;130384;130385;130416;130417;130418;130419;130443;130444;130445;130446;130527;130526;130528;130529;130530;130531;130532;130533;130534;130535;130536;130537;130538;130539;130540;130541;130542;130543;130544;130545;130546;130547;130548;130549;130550;130551;130552;130553;130554;130555;130556;130558;130559;130557;130560;130561;130562;130563;130564;130565;130567;130566;130568;130569;130570;130571;130573;130572;130574;130575;130738;130739;130741;130740;130742;130743;130744;130745;130746;130747;130748;130749;130924;130925;130926;130927;130928;130929;130931;130930;130932;130933;130935;130934;130999;130998;131000;131001;131002;131003;131004;131005;131050;131049;131051;131052;131053;131152;131151;131153;131154;131176;131210;131211;131212;131213;131214;131215;131216;131217;131177;131298;131218;131300;131299;131374;131375;131376;131377;131378;131379;131522;131380;131523;131524;131525;131526;131527;131528;132222;131529;132223;132224;131530;131719;131675;131676;131677;131678;132225;132226;131975;131976;131745;131746;131747;131748;131749;131919;131920;131921;131977;131978;131979;131980;131981;131982;131983;131984;131985;131986;132031;132227;132228;132229;132230;132231;132232;132233;132234;132235;132330;132392;132331;132382;132393;132669;132684;132882;132685;132686;132687;132700;132883;132701;132884;132885;132947;132948;132887;132886;133022;133023;133024;133025;133026;133027;133028;133124;133125;133156;133157;133158;133126;133127;133159;133160;133161;133162;133163;133164;133165;133166;133167;133168;133188;133189;133190;133191;133222;133221;133246;133247;133248;133249;133223;133280;133281;133282;133283;133284;133285;133286;133287;133333;133334;133335;133336;133337;133338;133383;133384;133385;133387;133386;133445;133446;133478;133477;133479;133480;133481;133482;133483;133484;133486;133485;133487;133516;133633;133634;133635;133636;133637;133638;133640;133639;133664;133712;133746;133713;133747;133748;133750;133749;133751;133752;133753;133783;133785;133784;133786;133787;133824;133825;133941;133943;133944;134025;133942;134026;134027;134029;134028;134030;134031;134032;134033;134062;134034;134064;134063;134065;134066;134067;134068;134098;134192;134144;134145;134146;134147;134148;134259;134260;134261;134262;134263;134264;134389;134390;134391;134392;134557;134558;134265;134266;134267;134268;134269;134270;134271;134344;134272;134345;134360;134361;134393;134394;134439;134827;134613;134612;134615;134614;134665;134666;134838;134667;134670;134671;134826;134825;134672;134676;134669;134673;134668;134674;138073;134675;134834;134833;134832;134830;134828;134829;134831;134861;134869;134868;143082;134867;134837;143006;135230;134836;134860;134859;134858;134857;134895;134870;134939;134940;134941;135052;134943;135035;135066;135073;135080;135070;135044;135075;135079;136321;135058;135076;135077;135064;135049;135069;135038;135061;135078;143095;135047;135063;135054;135055;135043;135034;135040;135062;135036;135072;135042;135059;135056;135060;135046;135051;135068;135074;135039;135057;135037;135048;135045;135053;135041;135095;135067;135071;135065;135050;135033;135083;135081;135082;135085;135084;135087;135090;135088;135092;135089;135091;135086;135183;135175;135184;135176;135174;135173;135185;135259;135257;135256;135258;135236;135234;135232;135233;135231;135235;135242;135240;135241;135254;135244;135272;135253;135250;135247;135252;135239;135245;135243;135249;135248;143039;139382;135246;139381;135251;135414;137244;137245;137246;135288;135415;135912;135456;136038;135460;135459;143038;135457;143035;135458;135461;135769;135689;135688;135686;135687;135684;135685;135692;135691;135876;135767;135774;135776;135768;135772;135905;135788;135770;135775;135875;135861;139379;135909;135908;135862;135910;135874;135911;135914;135915;135773;135913;135927;136045;136116;143040;143032;143018;143042;143041;136044;143037;136057;143019;136058;136042;136041;136053;136050;136040;143031;136117;136048;143008;136039;136059;143016;143015;143034;143029;136052;143011;136049;136114;136113;136115;143023;136051;136046;136054;143004;136056;143009;136118;143010;136043;143013;136055;143012;136060;136047;143020;136112;136062;136064;136063;136061;136065;136319;136320;136101;136102;136103;136184;136111;136185;136181;136186;136188;136187;136322;136585;136342;136343;136344;136351;136354;136350;136349;136353;136352;136471;136476;136470;136477;136475;136494;136498;136495;136478;136480;136519;136479;136500;136497;136499;136518;136517;136525;136526;136496;136523;136516;136524;136520;136522;136521;136558;136582;136584;136583;136586;136609;136610;136611;136717;136713;136718;143017;136714;136976;136977;136739;136736;136735;136740;136737;136820;143003;137062;143022;137061;136900;136738;143021;137060;136899;136898;136912;136913;139384;136974;136975;139378;139380;137082;137063;137059;137064;143075;137069;137066;137083;137881;137070;137139;137186;137138;137140;138387;137204;137237;137238;137240;137239;137236;137278;137274;137275;137305;137276;137313;137273;137562;137561;137727;137277;137310;137307;137306;137314;137309;137311;137315;137667;137668;137312;137395;137396;137394;137308;137324;137414;137331;137333;137334;137325;137412;137393;137363;137330;137335;137359;137413;137410;137409;137360;137411;137560;137726;138029;138032;138026;137563;137666;137665;137709;137704;137756;137664;137707;137711;137669;137706;137715;137708;137710;137705;137755;137828;137830;137833;137832;137831;137834;137829;143005;137749;137895;137750;137894;137752;143027;137751;137760;137758;137759;137885;137775;137896;137882;137883;137884;137898;137897;137893;138217;138013;137892;138033;138022;138023;138021;138028;138031;138030;138027;138089;138020;138090;138146;138145;138142;138141;138143;138144;138162;138157;138153;138155;138154;138161;138159;138173;138158;138160;138169;138156;138172;138170;138384;138171;143086;138178;138186;138185;138187;138383;138386;138382;138388;138451;138447;138450;138765;138502;138504;138500;138505;138609;138559;138557;139455;139383;138556;138558;138565;138566;138842;138606;139006;138764;138805;138806;138803;138807;138802;138799;139041;143036;138798;138801;138809;138800;138808;138810;138811;138843;138804;138846;138849;138845;138847;138844;138850;138848;138879;138885;139038;138886;139072;139042;139234;139194;139198;139183;139188;139199;139200;139187;139193;139195;139197;139192;139191;139190;139189;139332;139196;139186;139331;139201;139289;139285;139288;139286;139284;139294;139283;139287;139293;139296;139291;139292;139295;139290;139322;139319;139321;139320;139323;139333;139335;139336;139334;139376;139375;139385;139467;139462;139466;139460;139461;139464;139463;139620;139481;139482;139511;139465;139515;139508;139537;139538;139621;139617;139618;139616;139622;139619;139623;139670;139669;139672;139673;139671;139674;139772;139919;139809;139807;139811;139808;139854;139810;139851;139920;139860;140129;140083;140121;140110;140120;140124;140127;140128;140130;140204;140489;140579;140407;140389;140393;143033;140394;140397;140390;140392;140400;140399;140461;140460;140391;140396;140435;140398;140488;140434;140490;140484;140485;140487;140493;140492;140523;140494;143030;140581;140582;140602;140587;140594;140598;140597;140746;140599;140745;140750;140749;140747;140748;140780;140778;140779;140781;140782;141125;143073;141042;143068;143077;141015;143088;141028;141041;141016;143078;141044;141029;143089;141025;141047;141024;141056;141033;143092;141048;141060;141050;141058;143080;141055;141051;141010;141017;141031;141040;141021;143079;141013;143084;141023;143087;141037;141018;141039;141027;141020;141043;141038;143096;141022;143074;141012;143091;141035;141032;141019;141014;141030;143094;141036;143072;143024;143028;143014;141045;141011;143025;143007;143026;141034;141306;141128;141046;141026;141052;141057;141059;141049;143069;143085;141089;141123;141087;141088;141085;141086;141127;141305;141126;141124;141129;143070;141174;141175;141184;141196;141264;141265;141199;141197;141200;141201;141260;141307;141814;141453;141455;141454;141457;141456;141458;141582;141536;141628;141547;141540;141546;141577;141548;142034;141580;141606;141603;141581;141627;141774;142002;141812;141826;141811;141819;141816;141823;141818;141817;142004;141911;142003;142006;142009;142008;142007;142025;142030;142452;142029;142028;142430;142392;142400;142404;142429;142385;142396;142436;142440;142418;142378;143093;142426;143090;142432;142393;143071;142399;142389;142428;142448;142433;143076;142379;142380;142391;142376;142403;142384;142414;142441;142382;142398;142377;142387;142434;142413;142442;142381;142427;142431;142417;142401;142375;142407;142383;143083;142394;142435;142416;142449;142437;142402;142405;142446;142451;142445;143081;142439;142408;142412;142443;142397;142447;142444;143097;142410;142395;142390;142438;142386;142415;142388;142406;142409;142374;142450;142457;142459;142454;142453;142458;142455;142461;142463;142460;142471;142474;142475;142476;142477;142469;142470;142478;142480;142479;142643;142673;142674;142672;142675;142705;142704;142707;142699;142696;142906;142701;142708;142703;142709;142706;142700;142702;142697;142698;142710;142715;142716;142714;142871;142907;142863;142982;143240;142973;142864;142992;142994;143054;142972;143364;143160;143162;143164;143161;144199;143163;143213;143199;143198;143235;143200;143212;143203;143209;143205;143202;143208;143211;143204;143236;143237;143241;143239;143238;143279;143281;143280;143275;143369;143276;143365;143278;143370;143277;144200;143366;145070;143442;143469;143473;143472;143474;143605;143604;143606;144410;143603;143602;143601;143607;144553;144116;144114;144115;144113;144205;144202;144201;144204;144382;144203;144399;144273;144389;144420;144419;144276;144274;144281;144280;144414;144552;144404;144402;144275;144421;144384;144380;144551;144423;144400;144393;144392;144407;144415;144390;144418;144383;144385;144377;144379;144391;144409;144397;144422;144381;144406;144403;144378;144401;144412;144396;144388;144398;144376;144394;144408;144405;144509;144386;144387;144395;144417;144413;144411;144416;144604;146810;144605;144505;144506;144507;144510;144512;144511;144522;144557;144548;144556;144554;144558;144560;144555;144559;144550;144706;144705;144753;144754;144765;145089;144942;145049;144847;144846;144848;144845;155786;144850;144872;145229;144871;144936;144941;144937;144931;144935;144934;144939;144996;145088;145077;145082;145087;145079;145085;145083;145068;145042;145067;145044;145226;145043;145243;145227;145406;155781;145076;145074;145242;145493;145500;145494;145497;145498;145492;145495;145499;145496;145403;145536;145404;145408;145405;145407;145701;145443;145440;145503;145507;145506;145544;145545;145543;145541;145704;145787;145790;145786;145788;145789;146082;146076;146073;146072;146080;146075;146081;146079;146055;146071;146074;146093;146095;146210;146094;146566;147015;146316;146379;146382;146383;146380;146378;146381;146434;146432;146431;146492;146439;146493;146491;146541;146532;146545;146533;146537;146550;146551;146547;146536;146540;146535;146542;149503;146584;149504;149507;149506;147013;146793;146801;146803;146809;146813;146815;146812;146817;146811;146816;146822;146821;146820;146930;146929;146931;155780;146932;147011;147010;147014;147017;147018;147016;146955;146953;146951;146961;146960;146959;146954;146957;146956;146952;146950;147009;147707;147012;147023;147139;147143;147138;147140;147199;147201;147200;147142;147197;147198;147196;147194;147208;147214;147209;147211;147215;147207;147210;147212;147235;147232;147234;147365;147236;147233;147643;147706;147809;147805;147808;148117;147810;147806;147807;147828;147841;147827;147835;147836;147833;147831;147837;147838;147829;147830;147842;147826;147834;147832;147866;147868;147867;147881;147879;147882;147880;147886;148247;148224;148020;148018;148016;148019;148017;148032;148122;148118;148120;148119;148114;148116;148121;148113;148115;148215;148316;148490;148249;148893;148888;148890;148886;148887;148889;148257;148246;148256;148317;148319;148330;148331;148329;148333;148390;148328;148332;148368;148369;148394;148370;148379;148393;148397;148852;148460;148572;148540;148489;148542;148566;148543;148570;148562;148561;148564;148568;148569;148563;148567;148684;148685;148769;148770;148771;148768;148806;148808;148807;148857;148860;148851;148876;148877;148853;148892;148854;148858;148880;157845;148878;149063;148881;148879;148906;148943;148903;148942;148950;148945;148981;148985;148983;148984;148982;148989;148993;148988;148990;149258;149024;149028;149236;149235;149029;149027;149025;149060;149091;155782;149240;149243;149241;149242;149239;149318;149319;149321;149317;149441;149444;149445;149435;149443;149442;149876;149793;149978;149695;149677;149670;149653;149664;149698;149693;149705;149690;149657;149686;149680;149676;149692;149703;149697;149706;149712;149682;149678;149652;149694;149655;149683;149687;149660;149671;149662;149654;149679;149701;149691;149702;149710;149656;149669;149674;149658;149673;149688;149696;149659;149663;149684;149672;149700;149709;149675;149689;149708;149713;149667;149665;149714;149681;149666;149707;149668;149685;149711;149720;149792;149726;149721;149760;149725;149735;149723;149724;149813;149722;149841;149811;149980;149816;149817;149815;149835;149840;149839;149898;149904;149997;149998;150075;150433;150117;150296;150118;150295;150289;150290;150125;150701;150123;150700;150124;150136;150135;150127;150126;150128;150149;150148;150146;150147;150294;150161;150291;150786;150321;150323;150322;150785;150326;150347;150346;150375;150293;150350;155785;150829;150389;150392;150390;150393;150388;150808;150391;150810;150378;150379;150380;150376;150382;150381;150383;150377;150386;150387;150820;150818;150819;150421;150422;150432;150826;150825;150817;150812;150434;150827;150823;150813;150815;150816;150501;150759;150758;150757;150828;150824;150790;150795;150756;150792;150766;150776;150781;150822;150777;150814;155783;150780;150775;151290;152103;150844;150821;150845;150853;155784;150852;151117;151276;150951;151018;150963;150991;150950;151116;151115;151426;151140;151142;151149;151138;151135;151136;151143;151141;151139;151153;151289;151137;151427;151428;151445;151454;151453;151446;151493;151580;151579;151578;151846;151864;151871;151855;151856;151857;151872;151854;151862;151850;151845;151888;151886;151863;151889;151887;151867;151843;151858;151842;151859;155787;152003;151929;151670;151671;151668;151669;151675;151811;152080;151914;151913;151910;151908;151911;151912;151909;151852;151844;151861;151848;151849;151865;151927;152005;152001;152074;152077;152076;152097;152132;152133;152440;152352;152355;152348;152347;152350;152585;152346;152351;152354;152353;152447;152444;152438;152740;152445;152449;152443;152451;152439;152448;152450;152442;152446;152595;152605;152590;152441;152584;152592;152604;152586;152593;152606;152581;152600;152577;152603;152579;152589;152602;152580;152599;152613;152627;152620;152621;152619;152832;152660;152678;152661;152689;152968;152688;152975;152874;152778;152781;152779;152829;152828;152862;152863;152902;152903;152906;152905;152908;152904;152932;152926;152934;152964;152965;152955;152923;152935;152924;152922;152939;152930;152938;152937;152933;152925;152931;152929;152972;152977;152940;153098;153099;153102;153095;153096;153101;153103;153097;153094;153100;153104;153233;153231;153228;153232;153234;153235;153238;153229;153230;153242;153371;153370;153404;153403;153405;153513;153523;153518;153525;153517;153524;153522;153834;153552;153553;153833;153835;153832;153764;153777;153803;153804;153776;153887;153873;153902;153886;153940;154019;154022;154023;154024;154018;154086;154072;154071;154084;154076;154077;154046;154075;154074;154083;154047;154048;154070;154078;154049;154080;154293;154081;154082;154136;154135;154134;154143;154168;154169;154170;154313;154324;154294;154310;154307;154311;154309;154320;154260;154252;154261;154254;154737;154251;154255;154669;154667;154333;154335;154295;154306;154312;154334;154419;154421;154420;154437;154668;154670;154666;154784;154832;154938;154830;154856;154855;154781;154831;154841;154838;154834;154846;154847;154843;154836;154840;154842;154893;154854;154887;154849;155292;154910;154891;154909;154944;154947;154943;155132;154942;155105;155058;155172;155178;155197;155151;155168;155090;155201;155200;155194;155193;155085;155094;155217;155169;155210;155073;155152;155091;155181;155110;155144;155224;155159;155080;155089;155112;155190;155167;155086;155165;155160;155079;155209;155216;155207;155171;155111;155072;155212;155092;155059;155219;155100;155155;155126;155093;155133;155153;155122;155208;155170;155150;155225;155101;155211;155103;155185;155071;155146;155214;155179;155184;155106;155114;155082;155087;155203;155192;155202;155206;155107;155096;155088;155148;155164;155204;155113;155102;155081;155218;155158;155104;155182;155183;155108;155215;155149;155115;155109;155022;155021;155074;155023;155223;155332;155075;155335;155336;155333;155334;155612;155361;155364;155368;155366;155360;155359;155367;155371;155386;155365;155384;155376;155385;155378;155377;155544;155542;155614;155599;155618;155613;155654;155689;155684;155691;155690;155686;155685;155682;155688;155831;155765;155858;155755;155718;155728;155720;155719;155725;155743;155736;155756;155741;155746;155745;155762;155763;155764;155832;155833;155835;155830;155820;155941;155937;155891;155890;155868;155940;155927;155928;155931;155955;155968;155954;155956;155951;155971;155950;155977;155985;155988;155974;155983;155976;155995;156005;156003;156004;156037;156038;156044;155966;156109;156106;156111;156107;156108;156129;156127;156126;156134;156133;156201;156202;156225;156128;156250;156246;156247;156249;156248;156261;156452;156454;156453;156251;156465;156463;156716;156464;156548;156659;156726;156658;158870;156632;156656;156655;156657;156730;156653;156660;156905;156734;156729;156696;156728;156727;156735;156731;156739;156738;156737;156733;156736;156774;156792;156788;156793;156819;156873;156798;156874;156866;156865;157053;156878;156869;156872;156909;156913;157044;157046;156912;157049;157045;157056;157052;157054;157051;157100;157089;157097;157099;157111;157135;157133;157132;157071;157095;157091;157134;157106;157904;157136;157163;157166;157168;157226;157167;157183;157165;157264;157267;157268;157265;157270;157269;157296;157285;157309;157295;157311;157880;157312;157313;157314;157337;157363;157336;157384;157366;157362;157364;157376;157374;157375;157411;157412;157417;157414;157418;157331;157455;157420;157415;157451;157465;157466;157454;157854;158119;158096;157874;157875;157861;157873;158066;158056;158047;158048;158055;158057;158071;158075;158074;158082;158080;158093;158077;158070;158078;158076;158132;158120;158129;158116;158115;158106;158356;158368;158326;158216;158215;158260;158248;158263;158266;158261;158264;158262;158323;158321;158322;158324;158325;158341;158327;158347;158334;158349;158360;158351;158333;158355;158464;158354;158504;158505;158556;158565;158555;158735;158727;158736;158674;158741;158993;158745;158811;158814;158812;158808;158803;158807;158813;158804;158805;158873;158822;158802;158806;158810;158895;158816;158809;158815;158924;158906;158913;158918;158912;158907;158923;158914;159114;159168;159165;158948;158950;158942;158952;158947;158949;158951;159122;158943;159030;159000;159041;159119;159118;159108;159120;159121;159169;159167;138374;90250;139374;12512;59189;149983;105412;14657;33927;117484;109322;109323;109324;109325;109326;100635;111108;100634;33126;125835;152610;55800;11673;45138;45139;10202;21677;28376;42799;86420;70290;70291;46693;21606;25241;11048;11930;10656;21607;33273;52973;39807;39808;159166;39809;20996;33561;21327;20995;33562;31422;12042;76254;76253;10203;10392;10204;32032;11006;21141;76252;18560;18559;34030;77089;50577;16462;39588;39589;11822;11829;39587;14222;14180;77684;107005;10205;10161;22363;22227;10627;77683;54602;54603;66317;58171;70352;103221;95950;148695;150716;155127;66315;66316;33476;41947;35737;41946;12082;59607;90712;51461;51463;51462;10421;157830;157809;157789;157816;157744;157782;157734;157793;157742;157760;157768;157732;157731;157800;157769;157747;157749;157836;157774;157827;157835;157799;157767;157811;157733;157779;157772;157803;157825;157797;157834;157771;157748;157806;157798;157762;157763;157764;157804;157817;157754;157794;157785;157838;157759;157745;157792;157750;157808;157776;157766;157784;157781;157821;157752;157743;157775;157765;157756;157730;157795;157818;157758;157773;157810;157812;157755;157802;157746;157829;157783;157788;157791;157828;157839;157741;157751;157824;157777;157757;157837;157826;157740;157814;157736;157787;157820;157801;157761;157815;157813;157823;157737;157735;157739;157831;157770;157805;157833;157822;157796;157832;157819;157738;157807;157753;157780;157790;157778;157844;157786;157863;157864;158842;158877;158867;158868;158876;46337;71174;40334;28333;158965;11684;35273;10206;10207;10479;70144;10208;70143;10210;11418;10214;10215;103532;10223;54586;53335;20759;10226;10227;11841;10239;11420;11111;69428;10340;105413;108888;70745;70746;108889;69427;18213;62438;69514;69515;55507;57347;105414;57348;57349;55508;55509;50830;10245;10096;49689;10380;11390;11943;11389;14223;12230;78428;87818;52455;61434;63065;76939;68996;83140;43005;43004;43006;83141;33860;99476;31097;50000;10762;64298;19504;17987;20880;29868;25169;99477;29867;29853;20986;28291;21676;11058;10950;10790;26062;10804;31993;33226;35687;34772;38745;39339;39767;42478;40554;45045;46838;47888;50654;49144;52613;53411;55639;56483;59069;58323;71616;31788;49999;12000;76710;136402;148112;142489;154852;146489;136423;158554;136355;148692;122056;24685;25217;136734;17719;28228;29253;32476;17720;17721;41970;122057;34993;47036;35298;55733;122058;46351;49228;52503;57752;58949;67118;63561;82580;74242;64459;65631;69276;122860;125388;128549;132023;136177;133210;142419;138223;156756;149699;149350;155620;70926;76973;80916;81485;157360;87768;71377;73080;74290;76202;87769;90098;90508;92466;99199;96142;104849;111974;100388;101773;103535;119306;108378;126307;126308;130629;130628;124087;124088;39502;15394;10786;14711;90509;15985;25240;58327;45047;45046;11398;14381;104887;24684;13657;17722;11113;25216;17723;58662;11442;44406;11168;76314;11523;15705;11131;18364;10246;11775;11493;24020;10417;10711;11585;10514;18650;10415;10416;11492;35951;12061;12073;16468;35952;65612;63686;12059;12087;44341;44342;44343;146444;147022;146273;146443;146272;62291;66807;56981;55650;40617;55651;72211;40618;72258;62292;62293;126003;19298;32194;22465;148399;148400;138506;139583;140504;147961;150694;150753;150417;147870;150787;150717;150719;152120;151762;149848;151808;150718;151663;152096;153441;156226;157848;156725;158042;155603;154141;148573;144081;145705;154919;154918;156326;157847;138499;93374;138762;72263;36073;145532;72262;29924;11929;36072;36163;31121;31122;67129;12219;84231;145445;84232;84233;84234;84235;84236;84237;24236;11173;11174;10633;84238;25734;69956;12001;19604;10453;19681;50431;50430;10454;18507;21230;46802;21313;34443;36019;70216;91345;91384;91385;81700;56993;73641;60084;85691;85543;85692;73642;73643;85411;85600;81788;89111;86899;103048;88839;117360;96875;96876;119845;124591;124329;126469;129292;73644;73645;56994;56995;117361;73646;58448;87208;52961;58450;81701;60083;23799;53572;72702;72556;82698;97327;53548;91625;89029;89030;89031;89032;83951;84262;88410;88411;88412;62964;70591;81248;23800;23801;23802;58796;72707;23803;90001;70415;53223;83522;65602;109145;109146;55630;63427;23804;64682;21725;23805;84498;95713;81298;146452;81789;81577;23806;23807;76573;59892;84586;59500;59501;59374;58449;53573;122186;26066;118576;111466;73567;82664;83467;91346;49694;83468;70559;72201;72703;70558;81049;80359;66405;66406;131704;129469;152098;62797;155947;130430;62795;62796;65195;131736;66805;65193;65194;130431;127139;72557;72558;86572;86573;120947;136182;134977;152099;77377;77376;91622;91623;122424;91624;70557;72486;76147;70556;111139;57598;24872;23808;118711;23809;23810;87124;87125;91626;87126;101930;62439;100462;100463;65656;80910;23811;23812;25147;23813;23814;24725;23815;23816;54291;23967;54645;59249;52962;64296;64297;137356;83952;104101;84263;85403;70760;88413;88414;88415;88416;53549;55025;55026;88417;59325;64630;72107;72108;73303;77964;51360;62965;87891;70592;59502;83917;83774;81553;59376;59375;59377;82665;70292;81249;59373;50303;59557;59556;59559;82076;59558;57599;72708;23817;83301;66761;23818;23819;97436;83302;23820;23821;23822;119147;23823;23824;23825;23826;23827;57600;52993;52995;52994;52992;91283;94328;91284;94329;23828;83187;23829;23830;90002;90003;58953;121006;58797;70416;141304;84566;84570;84567;84568;84569;90599;90600;53543;125312;83523;110534;117671;135696;145268;119265;73516;123010;59528;64487;70351;58991;73517;59527;62566;53877;65603;53878;70921;109143;81107;106228;109280;109144;106229;57601;63429;152531;63428;63430;139606;112123;112124;83263;64683;70530;83264;81376;97666;70531;97667;84499;85842;81591;131775;81592;81593;99168;95714;131401;131402;146453;81545;133216;95715;82853;100299;102991;95716;81578;81299;127057;112162;125392;57602;76574;58451;76575;67142;67143;67144;84587;103533;103534;72620;55631;47759;62032;61494;61493;82269;77375;77374;19506;108714;69869;73636;57030;57029;58186;149972;155316;149971;71807;159008;11502;90940;74365;74367;74149;76279;76280;87539;87507;90708;86610;93383;101840;94679;103925;106197;118229;74366;105654;74379;87601;119811;44674;74148;11561;65046;61648;61597;58993;58992;61598;61649;10720;144104;20863;21226;21629;22097;22371;23634;23928;24735;144105;25351;33394;33506;34269;34768;35220;36130;35978;39494;40874;45111;25765;25842;28374;27536;30210;31653;42307;50386;43175;51124;52769;52533;53597;44660;45395;47785;47126;49149;50088;57317;59411;60046;62583;61718;62592;62747;63001;64726;63554;65187;65809;55884;69996;69272;70950;70719;55885;71349;56041;56123;57353;56337;57921;57772;58009;58352;58901;72333;73771;73101;77909;77283;82042;80525;15820;138818;15822;18533;138213;18534;66545;38687;147896;85183;146621;144584;146962;152986;148404;154240;152985;151985;156557;89963;90429;92558;97726;96832;97575;104361;111795;117672;119149;101044;85628;71157;80303;85565;88809;101045;101046;104639;106563;147144;71158;148280;153589;85566;89027;93343;91814;101047;101048;101049;101050;103121;104640;71461;33104;25994;23785;28375;10637;22922;142462;141575;133964;19748;11347;17724;43637;141576;74289;10809;11499;11086;11346;10247;11088;10248;11232;11350;10249;11349;11316;10278;10729;11348;11351;111549;10588;10055;11352;11838;11087;11364;10250;38877;10614;17326;121041;50625;18298;100789;18155;23752;60097;18054;18055;15543;14842;18600;15914;26921;25672;10958;10959;10960;48435;50659;69060;71863;72658;76369;146308;151646;156886;33937;34398;35328;41980;36035;43369;42934;48434;45140;92440;11362;72664;59862;19334;22495;72663;11954;11955;11021;10350;10967;11654;11846;38157;47579;47580;57027;57028;11535;10252;78701;57026;77969;78822;77970;88907;88908;107267;50600;10500;11583;20975;107268;39564;40421;42369;44094;46329;48436;50387;51936;55833;55142;56734;57941;59047;61536;62702;64621;65913;67233;69844;71342;72435;72983;84765;85882;86633;97835;100806;104628;124028;26065;12064;11942;11719;16064;11624;31098;10717;10437;18249;12038;11720;25935;152522;151666;145549;150863;149326;150140;152659;80169;66839;66840;145491;90201;51894;51895;15403;90202;72885;77856;77855;77830;42399;58134;77831;19398;10846;10847;44941;44331;44940;17328;44332;11469;14224;14713;22023;20303;25930;57634;57635;11035;10705;21224;15987;21642;110271;56983;22092;10253;31790;29835;22368;21787;55977;55978;55979;36018;17970;51119;18460;51118;11448;23969;16216;16171;22867;18670;16180;33928;45360;10725;22877;35327;18265;21576;30206;33125;45060;50597;45061;53845;50598;57877;66694;66695;101084;19772;42148;20090;21209;29250;101085;21208;60162;60163;60164;60165;60166;60167;60168;60169;60170;60171;60172;60173;60174;60175;60176;60177;60178;60179;60180;60182;60181;60183;60184;60186;60185;60187;60188;60189;60190;60191;60192;60193;60194;60195;60196;60197;60198;60199;60200;60201;60202;60203;60204;60205;60207;60206;60208;60209;60210;60212;60211;60213;60214;60215;60216;60217;60218;60219;60220;60221;60222;60223;60224;60225;60226;60227;60228;60229;60230;60231;60232;60233;60234;60235;60236;60237;60238;60239;60240;60241;60242;60243;60244;60246;60245;60248;60247;60249;60250;60251;60252;60254;60253;60255;60256;60258;60257;60259;60260;60261;60262;60264;60263;60265;60266;60267;60268;60269;60270;60271;60272;60273;60275;60274;60276;60277;60278;60279;60280;60281;60282;60283;60285;60284;60286;60287;60288;60289;60290;60291;60292;60293;60294;60295;60296;60297;60298;60299;60300;60301;60302;60304;60303;60305;60306;60307;60308;60309;60310;60311;60312;60313;60314;60315;60316;60317;60318;65042;60319;60320;60321;60322;60323;60325;60324;60326;60327;60328;60329;60331;60330;60332;60333;60334;60335;60336;60337;60338;60339;60340;60341;60342;60343;60344;60345;60346;60347;60348;60350;60349;60351;60352;60353;60354;60355;60356;60357;60358;60360;60359;60361;60362;60364;60363;60365;60366;60368;60367;60369;60370;60371;60372;60373;60374;60375;60376;60377;60378;60379;60381;60380;60383;60382;60385;60384;60386;60387;60388;60389;60390;60391;60392;60393;60394;60395;60396;60397;60398;60399;60400;60401;60402;60403;60404;60405;60406;60407;60408;60409;60410;60411;60412;60413;60414;60415;60416;60417;60418;60419;60421;60420;60422;60423;60424;60425;60427;60426;60428;60429;60430;60431;60432;60433;60434;60435;60436;60437;60438;60439;60440;60441;60442;60443;60444;60445;60446;60447;60448;60449;60450;60451;60453;60452;60454;60455;60456;60457;60458;60460;60459;60461;60462;60463;60464;60466;60465;60467;60468;60469;60470;60471;60472;60473;60474;60475;60476;60477;60478;60480;60479;60481;60482;60483;60484;60486;60485;60487;60488;60489;60490;60491;60492;60493;60494;60495;60496;60497;60498;60499;60500;60501;60502;60503;60504;60505;60506;60507;60509;60508;60510;60511;60512;60513;60514;60515;60516;60517;60518;60519;60520;60521;60522;60523;60524;60525;60526;60527;60528;60529;60530;60531;60532;60533;60535;60534;60536;60537;60539;60538;60540;60541;60542;60543;60544;60545;60546;60547;60548;60549;60550;60552;60551;60553;60554;60555;60556;60557;60558;60559;60560;60561;60562;60563;60564;60565;60566;60567;60568;60569;60571;60570;60572;60573;60574;60575;60576;60578;60577;60579;60580;60581;60583;60582;60584;60585;60586;60587;60588;60590;60589;60591;60592;60593;60595;60594;60596;60597;60598;60600;60599;60601;60602;60603;60604;60605;60606;60607;60608;60609;60610;60611;60612;60613;60614;60615;60616;60617;62808;62809;60618;60619;60620;60621;60623;60622;60624;60625;60626;60627;60628;60629;60630;60632;60631;60633;60634;60635;60637;60636;60638;60639;65043;60640;60641;60642;60644;60643;60645;60646;60647;60649;60648;60650;60651;60652;60653;60654;60655;60656;60657;60658;60660;60659;60661;60662;60663;60664;60665;60666;60667;60668;60669;60670;60671;60673;60672;60674;60675;60676;60677;60678;60679;60680;60681;60682;60683;60684;60685;60687;60686;60689;60688;60690;65044;60692;60691;60693;60694;60695;60696;60697;60698;60699;60700;60701;60702;60703;60704;60705;60706;60707;60708;60709;60710;60711;60712;60713;60715;60714;60716;60718;60717;60719;60720;60721;60722;60724;60723;60725;60727;60726;60728;60729;60730;60731;60732;60733;60734;60735;60736;60737;60738;60739;60740;60741;60743;60742;60744;60745;60746;60747;60748;60749;60750;60752;60751;60753;60754;60755;60756;60757;60758;60759;60760;60761;60763;60762;60764;60765;60766;60767;60768;60769;60770;60772;60771;60773;60774;60775;60776;60777;60779;60778;60780;60781;60782;60784;60783;60785;60786;60787;60788;60789;60790;60791;60793;60792;60794;60795;60796;60797;60798;60799;60800;60801;60802;60804;60803;60805;60806;60807;60808;60809;60811;60810;60812;60813;60814;60816;60815;60817;60818;60819;60820;60821;60822;60823;60824;60825;60826;60827;60828;60829;60830;60831;60832;60833;60834;60836;60837;60838;60839;60835;60840;60841;60842;60843;60844;60845;60846;60847;60848;60849;60850;60851;60852;60853;60854;60855;60856;60857;60858;60859;60860;60861;60862;60863;60864;60866;60865;60867;60868;60869;60870;60871;60872;60873;60874;60875;60876;60877;60878;60880;60879;60881;60882;60883;60884;60885;60886;60887;60888;60889;60890;60891;60892;60893;60894;60895;60896;60897;60898;60899;60901;60900;60902;60903;60904;60905;60906;60907;60909;60908;60910;60911;60913;60912;60915;60914;60917;60916;60918;60919;60920;60921;60922;60923;60924;60925;60927;60926;60929;60928;60930;60931;60932;60933;60934;60936;60935;60937;60939;60938;60941;60940;60942;60943;60944;60945;60946;60947;60948;60949;60950;60952;60951;60953;60954;60955;60956;60957;60958;60959;60960;60961;60962;60963;60964;60965;60966;60967;60968;60969;60970;60971;60972;60973;60974;60976;60975;60977;60978;60979;60980;60981;60982;60983;60984;60985;60986;60987;60988;60989;60990;60991;60992;60993;60994;60995;60996;60997;60998;60999;61000;61001;61002;61003;61004;61005;61006;61007;61009;61008;61011;61010;61013;61012;61014;61015;61017;61016;61019;61018;61020;61021;61022;61023;61024;61025;61026;61027;61028;61029;61030;61031;61032;61034;61033;61036;61035;61037;61038;61039;61040;61041;61042;61043;61044;61046;61045;61047;61048;61049;61050;61051;61052;61053;61054;61055;61056;61057;61058;61059;61060;61061;61062;61063;61064;61065;61066;61067;61068;61069;61070;61071;61072;61073;61074;61075;61076;61077;61078;61079;61080;61081;61082;61083;61085;61084;61087;61086;61089;61088;61091;61090;61093;61092;61094;61095;61096;61097;61098;61099;61100;61101;61102;61103;61104;61105;61106;61107;61108;61109;61110;61111;61112;61113;61114;61115;61116;61117;61118;61119;61120;61121;61122;61123;61124;61125;61126;61127;61128;61129;61130;61131;61132;61133;61134;61135;61136;61137;61138;61139;61140;61141;61142;61144;61143;61145;61146;61147;61148;61149;61150;61151;61152;61153;61154;61155;61157;61156;61159;61158;61160;61161;61162;61163;61164;61165;61166;61167;61168;61169;61170;61171;61172;61174;61173;61176;61175;61177;61178;61180;61179;61181;61182;61183;61184;61185;61186;61187;61188;61189;61190;61191;61193;61192;61194;61195;61196;61197;61198;61199;61200;61201;61202;61203;61204;61205;61206;61207;61208;61209;61211;61210;61212;61213;61214;61215;61216;61217;61218;61219;61220;61221;61222;61223;61225;61224;61226;61227;61228;61229;61230;61231;61233;61232;61234;61235;61237;61236;61238;61239;61240;61242;61241;61243;61244;61245;61246;61247;61249;61248;61251;61250;61252;61253;61254;61255;61256;61257;61258;61259;61260;61262;61261;61263;61264;61265;61267;61266;61268;61269;61270;61271;61272;61273;61275;61274;61276;61277;61278;61279;61280;61281;61282;61283;61284;61285;61286;61287;61288;61289;61290;61291;61292;61293;61294;61295;61296;61297;61298;61299;61300;61302;61301;61303;61304;61305;61306;61307;61308;61309;61310;61311;61312;61313;61314;61315;61317;61316;61318;61319;61320;61321;61322;61323;61324;61325;61327;61326;61328;61329;61331;61332;61330;61333;61334;61335;61336;61337;61338;61339;61340;61342;61341;61343;61344;61345;61346;61347;61349;61348;61350;61352;61351;61353;61354;61355;61357;61356;61358;83916;61359;61361;61360;61362;61363;61364;61366;61365;61367;61368;61369;61371;61370;61372;61407;61406;61408;61409;61410;61427;61426;61428;61455;61456;61605;61560;61606;61655;61656;61692;61657;61693;61694;61726;61784;61727;61785;62071;61786;61794;61796;61795;62057;62059;62058;62094;62095;62106;62108;62107;62109;62171;62172;62174;62173;62175;62197;62218;62346;62304;62427;62426;62428;62432;62492;62493;62506;62555;62554;62556;62616;62617;62653;62618;62773;62774;62775;62859;62858;62898;62918;62924;62933;62919;62934;63018;63019;63071;63020;63106;63191;63183;63192;63314;63313;63294;63591;63601;63592;63471;63593;63595;63594;63596;63597;63598;63600;63599;63602;63603;63604;63605;63472;63606;63607;63664;63677;63678;64090;64091;63679;64282;64423;64424;64425;64426;64427;64428;64429;64489;64605;64499;64521;64522;64523;64566;64776;64777;64778;64779;64946;65563;64947;64948;65008;64950;64949;65010;65009;64951;65011;64952;65012;64953;64954;65013;64955;64956;64957;64958;65014;64959;65015;64960;65016;65017;64962;64961;64964;64963;65018;65019;65020;65021;65022;65086;65076;65087;65089;65088;65090;65091;65092;65093;65094;65239;65174;65240;65241;65242;65243;65244;65564;65565;65606;65627;65653;65654;65679;65716;65715;65761;65762;65782;65783;65864;65906;65957;65977;65993;66016;66017;66018;66214;66019;66226;66227;66228;66229;66371;66441;66460;66461;66462;66490;66491;66551;66663;66664;66665;66708;66709;66778;66779;66780;66774;66884;66891;66885;66950;66951;66952;66982;66983;66984;67185;67220;68867;67241;68868;68945;68946;69013;69068;69163;69164;69165;69166;69167;69257;69223;69279;69258;69342;69440;69503;69504;69786;69796;69945;69946;70014;70016;70015;70017;70115;70188;70467;70388;70389;70390;70392;70391;70365;70364;70393;70394;70490;70468;70491;70537;70576;70577;70578;70603;70604;70605;70704;70705;70707;70706;70708;70756;70757;70772;71191;71294;71192;71295;71296;71297;71298;71193;71490;71194;71195;71196;71197;71198;71199;71299;71200;71201;71300;71302;71301;71202;71303;71304;71305;71306;71338;71339;71340;71341;71371;71372;71373;71391;71491;71424;71517;71641;71629;71630;71631;71632;71894;71893;71910;71988;71989;72083;72084;72162;72197;72210;72275;72276;72322;72323;72365;72421;72475;72476;72477;72500;72501;72569;72570;72680;72738;72699;72739;72795;72796;72811;72855;72924;73013;73012;73014;73073;73074;73114;73115;73116;73176;73177;73200;73201;73285;73286;73296;73368;73369;73408;73453;73454;73588;73589;73590;73664;73679;73706;73797;73798;73938;73907;74103;74172;74208;74209;74305;74306;74307;74308;74349;74487;74350;74488;74489;74490;74492;74491;76197;76157;76245;76246;76448;76449;76450;76551;76552;76681;76752;76701;76702;76703;76753;76782;76783;77017;77018;77047;77084;77144;77215;77272;77216;77465;77551;77552;77553;77554;77598;77629;77700;77954;78416;78417;78418;77955;77865;77956;77957;77981;78419;78460;78841;78842;78844;78843;78845;78846;78847;78641;78642;78848;78643;78644;78849;78645;78646;78850;78536;78537;78622;78647;78648;78649;78851;78852;78853;78854;78855;81294;79082;79081;79229;79230;79231;79304;79305;79330;79381;79331;79427;79657;79658;79712;79713;79714;79715;79759;80014;80015;80016;80017;80018;80019;80020;80099;80075;80100;80162;80117;80163;80164;80397;80545;80409;80546;80902;80903;80904;80933;80905;81037;81015;81038;81072;81074;81073;81160;81308;81310;81309;81477;81476;81478;81479;81540;81541;81751;82248;82249;82250;82251;82252;82253;82254;82255;82256;82257;82258;82259;82260;82261;81770;81809;82262;82263;82264;82265;82266;82293;82294;82468;82469;82520;82521;82522;82638;82694;82759;82760;82813;82814;82815;82816;82987;82988;82989;83029;83174;83450;83451;83453;83452;83454;83455;83456;83457;83458;83459;83460;83538;83969;84015;84078;84113;84114;84144;84226;84259;84536;84393;84537;84394;84538;84539;84540;84541;84542;84543;84611;84661;84790;84791;84792;84894;84895;85189;84793;85190;85191;85192;85193;85194;85195;85196;85197;85198;85199;85200;85201;85202;85203;85204;85205;85206;85207;85208;85209;85210;85004;85071;85072;85119;85120;85211;85150;85264;85296;85212;85343;85397;85498;85499;85500;85501;85502;85503;85564;85620;85621;85622;85623;85646;85759;85706;85785;85760;85787;85786;85788;85789;85866;85790;85867;85960;85961;86100;86202;86101;86243;86363;86364;86489;86527;86528;86671;86529;86563;86564;86615;86626;86748;86747;86749;86750;86751;86846;86894;86938;86939;87548;87549;87550;87551;87552;87553;87554;87555;87556;87638;87557;87558;87559;87560;87561;87562;87563;87564;87565;87566;87567;87568;87569;86992;87570;87572;87571;87573;87574;87575;87576;87577;87578;87579;87580;87062;87103;87120;87121;87235;87581;87582;87584;87583;87308;87585;87401;87400;87402;87586;87459;87403;87460;87491;87492;87587;87639;87773;87838;87839;87840;87841;87813;87842;87843;87844;87938;88000;88037;88078;88079;88080;88174;88175;88407;88450;88451;88452;88483;88484;88676;88796;88795;88797;88798;88800;88799;88801;88860;89074;89075;89098;89099;89822;89823;89824;89825;89863;89864;89957;89958;89959;89987;89988;90020;90080;90081;90142;90143;90144;90145;90146;90241;90242;90243;90244;90344;90345;90392;90393;90501;90502;90503;90504;90617;90618;90673;90674;90751;90753;90752;90854;90939;91039;91040;91041;91042;91538;91537;91643;91539;91540;91541;91542;91081;91215;91216;91543;91296;91421;91644;91645;91646;91513;91514;91647;91648;91712;91806;91807;91808;91853;92031;91809;92032;92402;92403;92491;92404;92581;92582;92605;92719;92698;92720;92721;92722;92749;92859;92996;92965;92997;92998;93071;93072;93150;93096;93340;93366;93453;93454;93643;93557;93794;93795;93796;93797;93859;93892;94003;94004;94005;94151;94193;94194;94248;94266;94570;94571;95832;95833;94432;95834;95835;95836;95837;95838;95839;95840;95842;95841;95843;95844;95845;95846;95847;95848;95849;95850;95851;95853;95852;95855;95854;95857;95856;95858;95859;95860;96386;95861;95862;95864;95863;95914;95865;94627;94652;94653;95049;95050;95051;95052;95293;95866;95867;95868;95869;95870;95871;95872;95984;95985;96041;96042;96043;96044;96280;96301;96302;96330;96331;96332;96333;96481;96526;96561;96562;96563;96599;96600;96757;96758;96759;96760;96792;96974;96975;97037;97038;97039;97122;97201;97295;97376;97377;97378;97379;97415;97493;97515;97516;97517;97597;97631;97632;97751;97770;97845;97846;99214;99215;99216;99217;99218;99219;99220;99221;99222;99223;99224;99225;99226;99227;99228;97934;97935;99229;99300;99301;99349;99350;99351;99352;99353;99354;99505;99456;99506;99575;99576;99619;99577;99620;99621;99622;100048;100049;100120;100096;100097;100173;100347;100348;100349;100350;100372;100373;100402;100403;100458;100535;100536;100537;100568;100779;100903;100802;100905;100904;100906;100984;101041;101079;101104;101105;101256;101257;101258;101387;101388;101800;101884;101925;102032;102635;102637;102636;102638;102639;102640;102642;102641;102643;102644;102645;102647;102646;102648;102649;102650;102652;102651;102653;102654;102655;102656;102657;102659;102658;102660;102662;102661;102663;102664;102665;102666;102667;102521;102668;102669;102670;102671;102672;102673;102576;102675;102674;102676;102677;102776;102852;102853;103173;102972;103174;103244;103175;103353;103409;103410;103501;103411;103502;103594;103595;103634;103635;103688;103730;103806;103831;103959;103960;104007;104008;104093;104206;104207;104268;104269;104373;104623;104624;104701;104803;104804;104866;104868;104867;104989;104990;105019;105030;105031;105032;105070;105071;105387;105534;105535;105536;105537;105570;105611;105571;105572;105573;105683;106123;106227;106257;106124;106258;106337;106339;106338;106369;106340;106341;106554;106575;107020;107021;107083;107209;107084;107210;107211;107212;107250;108363;108278;108364;108365;108333;108334;108366;108398;108481;108399;108645;108870;108943;108944;109010;109445;109446;109447;109448;109449;109450;109451;109452;109454;109453;109455;109456;109457;109458;109459;109057;109460;109196;109308;109461;109463;109462;109340;109464;109465;109571;109643;109644;109671;109848;109849;109850;109852;109851;109853;109854;110019;110020;110021;110022;110023;110024;110025;110026;110027;110028;110088;110121;110122;110282;110283;110307;110508;110542;110886;110888;110887;110890;110889;110891;110892;110893;110655;110717;110718;110719;110720;110971;110935;110920;111002;111003;111113;111050;111258;111259;111260;111343;111344;111495;111494;111497;111496;111523;111777;111778;111806;112053;111807;112105;112135;112136;117472;117473;117474;117627;117628;117682;117786;117785;117787;117788;117850;117851;117973;118031;118056;118057;118058;118108;118166;118167;118217;118218;118442;119176;118443;119178;119177;119179;119180;119181;119182;119183;119184;119185;119186;119187;119188;119189;119190;119191;119192;119193;119194;119195;119196;119197;119198;119199;119200;119201;119202;119203;119204;119205;119206;118584;118727;118585;119207;119208;119209;118853;118866;119249;119210;119250;119251;119444;119252;119445;119446;119881;119882;119884;119883;121204;120980;121205;121326;121409;121410;121455;121456;121457;121503;121504;121532;121533;121534;121535;121607;121631;122389;122390;122391;122392;122466;122467;122468;122527;122528;122640;122641;122844;122845;122846;122887;122961;122962;123057;122995;123058;123147;123435;123436;123489;123490;123491;123648;123917;123966;123965;124100;124184;124185;124139;124234;124235;124262;124290;125016;124704;124705;124753;125203;125202;125204;125205;125206;125207;125129;125208;125447;125448;125449;125531;125591;125715;125716;126763;125916;125979;125980;126090;125981;126091;126145;126434;126303;126435;126366;126436;126454;126613;126455;126683;126684;126713;126714;126715;126944;126945;126946;126974;127034;127723;127724;127725;127726;127727;127728;128207;128206;128209;128208;128211;128210;128212;128213;128214;128215;128216;128217;128218;128219;128220;128221;128222;128223;128224;128225;128226;128227;128228;128229;128230;128231;128232;128233;128234;128235;128236;128237;128238;128239;128240;128241;128242;128243;128244;128245;128246;128247;128248;128249;128250;128251;128253;128252;128254;128255;128256;128257;128258;128259;128260;128261;128262;128263;128264;128265;128266;128267;128268;128269;128270;128271;128272;128273;127880;127881;128311;128499;128500;128502;128501;128667;128862;128861;129042;129093;129151;129277;129152;129278;129334;129577;130048;130047;129997;130078;130142;130157;130156;130191;130252;130192;130386;130498;130499;130447;130618;130750;131006;131007;131054;131055;131056;131679;131531;131680;131830;131831;131832;131987;131988;131989;131990;132085;132306;132307;132332;132888;132889;133029;133030;133128;133129;133192;133169;133193;133194;133195;133196;133197;133339;133388;133447;133517;133538;133518;133641;133754;133755;133756;133788;133789;133826;134069;134070;134071;134072;134149;134150;134151;134273;134274;134275;134346;134440;134395;134646;134647;134648;134649;134650;134652;134692;134693;134651;134694;134695;134754;134847;134848;135002;135261;134849;135262;135796;135797;135798;135799;135800;135802;135801;135803;135804;135806;135805;135808;135807;135278;135809;135810;135811;135812;135813;135279;135814;135815;135816;135817;135818;135819;135820;135821;135822;135823;135824;135825;135826;135827;135828;135829;135830;135831;135832;135833;135834;135835;135836;135837;135838;135839;135840;135841;135843;135842;135382;135844;135575;135716;135886;135845;135888;135887;135889;135890;135891;135959;136162;135960;136389;136390;136486;136391;136603;136487;137038;136690;137039;137040;136991;137041;137174;137175;137176;137292;137293;137294;137347;137348;137389;137533;137534;137390;137741;137698;137743;137742;137772;137773;138205;138206;138419;138489;138538;138584;138585;138827;138586;139220;139301;139300;139354;139353;139399;139400;139893;139894;139895;140239;140440;140441;141710;141104;141748;141691;141649;141686;141687;141753;141746;141681;141690;141677;141747;141754;141707;141698;141736;141760;141703;141720;141664;141743;141683;141711;141734;141727;141761;141702;141694;141657;141652;141650;141738;141667;141729;141679;141685;141688;141661;141695;141723;141696;141689;141744;141663;141728;141770;141654;141713;141709;141767;141755;141648;141762;141708;141704;141716;141150;141656;141653;141699;141680;141759;141412;141410;141741;141838;141842;142012;142015;142014;142556;142563;142548;142570;142810;142816;142822;142819;142821;142820;142823;142818;142999;142817;143044;143000;143243;143371;143360;143246;143361;143359;143533;144215;144214;144211;144294;144295;144297;144293;144292;144367;144369;144296;144368;144843;144744;144987;145438;145442;145460;145697;145504;146062;146064;146063;146065;148971;146270;148972;148973;147135;147136;147206;147714;150159;150160;150446;150448;150710;150760;150479;150800;150709;150711;150478;150761;150768;150789;151447;151678;151503;152088;152087;152089;152086;152192;152364;152866;152867;152951;152952;152950;152946;152949;152948;153227;153225;154130;154202;153168;154132;154131;154201;154275;154276;154821;154412;154823;155949;155948;155953;155972;156176;156178;156456;156719;159006;156717;156720;156757;156718;156799;156803;157050;157227;157131;157859;157247;158054;158079;158329;158330;158328;158331;158348;158875;61373;140214;158922;18373;19588;15704;10254;10256;124650;11593;11596;23777;23778;38948;17633;11573;12072;30124;31787;50575;16281;11709;10257;50574;11375;40887;11377;17212;10396;11777;23974;42411;33852;105613;26918;108810;99364;93962;48763;106716;56954;58181;10398;87013;63080;23973;99439;35730;103871;65791;62042;10456;18585;44401;60119;10395;20811;58452;63155;66350;18602;22313;72367;22024;76056;10901;10902;10904;10908;10905;10906;10903;10907;26919;10859;56210;13855;65057;133147;48762;44676;49274;51587;52456;56824;53503;52977;53830;70395;72909;55286;62466;59915;59916;62468;62224;62467;63231;63372;63426;63380;64587;64508;66869;65692;64918;65222;65884;66425;66448;66870;67216;69333;70855;69332;69334;70854;71324;73990;69840;70856;71323;71325;71322;71945;71265;74154;72286;72608;72936;73418;73989;73992;73742;73991;73865;74429;76416;76123;78446;77170;76464;77161;77580;78444;79145;79839;78447;79444;81209;80489;80948;81731;81046;83359;82779;81732;81884;82823;84763;82075;83369;84737;84058;84052;84645;84742;84367;84809;85880;86065;85329;87875;86149;86371;86856;86469;86818;87876;87893;87249;87313;87252;87671;90511;91045;92818;122484;100051;101113;135901;21655;20368;12209;18028;16337;18502;19407;19408;20006;18680;20008;21193;21696;20928;22034;21334;25699;22194;25700;34311;29855;106298;34413;72908;34412;34477;35362;35635;34821;47556;42443;48761;47045;47750;55802;58335;62045;59044;66423;33881;43089;34414;39350;35634;39783;39622;46017;44045;148541;10397;38689;63478;10911;10912;10913;10915;10914;10916;10394;11839;10404;14818;134420;11454;134421;134942;38153;66424;11818;42410;10785;10893;10894;10892;10910;15996;17607;88699;18491;12298;18085;10433;10434;11330;10482;10486;10485;10499;10504;10509;10519;10525;10632;10555;10563;10603;10693;10615;10619;10668;10734;10806;11366;11309;10861;10865;10866;10926;20885;11326;11307;10945;10944;11325;10943;10964;11143;11306;11029;11304;11336;11322;11301;11091;11300;11144;11145;11146;11177;11148;11147;11286;11215;11178;11191;11194;11212;11231;11413;11423;11433;11485;11528;11534;11541;11595;11683;11774;11878;11787;11790;11789;11792;11802;11803;11804;16299;11831;11832;11886;11887;11888;11928;11885;11921;11920;11992;11989;11990;12051;12052;12090;12092;12091;12205;12206;12208;12207;12235;12267;13637;13643;13639;13638;13640;13641;13642;14254;14732;14724;15467;15455;15456;15457;15458;15459;17976;15460;15714;15894;15966;15965;15964;15963;15962;16123;16125;16124;16333;16332;16324;16331;16328;16325;16326;16327;16329;16330;18020;18021;18022;18024;18023;18025;18026;18490;18215;18482;18483;18484;18488;18489;18492;18485;18486;18487;18679;18681;18682;19401;19402;19403;19404;19405;19406;19997;19998;19999;20000;20001;20002;20003;20004;20005;20172;20299;20298;20382;20390;20389;20904;20905;20906;20907;20908;20909;21077;20910;21078;21210;21212;21211;21331;21213;21332;21685;21686;21687;21688;21689;21690;21691;21695;21692;21693;21694;22027;22028;22029;22030;22031;22032;22033;22182;22183;22184;22185;22186;22187;22188;22189;22190;22191;22192;22193;22332;22333;22334;22449;22529;22530;22531;22532;22533;22534;22535;22536;22537;22538;23643;23644;23645;23647;23646;23836;23833;23834;23837;23835;23839;23838;23998;23999;24000;24329;24330;24331;24332;24334;24333;24336;24335;24338;24337;24339;24340;25026;24911;25022;25023;25025;25024;25162;25163;25165;25164;25167;25166;25168;25489;25484;25485;25486;25487;25488;25687;25688;25689;25690;25691;25692;25880;25881;25882;25883;25884;25885;25901;25902;25886;26017;26022;26018;26019;26961;26963;26962;26964;26965;28183;26966;28184;29307;29308;29309;29310;29311;29312;29313;29893;29894;31037;31038;31039;31040;31041;31042;31043;31044;33107;31046;31047;31413;31414;31415;31416;31791;31792;31793;31794;31796;31795;31797;31798;32310;32311;32313;32312;33133;33132;33134;33135;33136;33138;33137;33441;33442;33443;33444;33870;33871;33872;33873;33874;33875;33876;33877;33878;33879;33880;34120;34121;34122;34123;34401;34402;34403;34404;34405;34406;34407;34408;34410;34409;34411;34476;34743;34744;35069;35070;35071;35072;35073;35074;35075;35076;35221;35361;35630;35631;35632;35633;35822;35823;35824;36147;36148;36149;36150;36151;36152;36153;36154;38742;39340;39341;39342;39343;39344;39345;39346;39347;39348;39349;39791;39792;39793;39794;39795;40407;40435;40555;40556;40557;40558;40559;40560;40561;40562;40565;40888;40889;40890;40891;40892;42106;42107;42108;42109;42110;42112;42111;42113;42114;42115;42116;42118;42117;42437;42438;42440;42439;42441;42442;43062;43061;43063;43064;43065;43066;43865;44110;44413;44414;44415;44416;44417;44418;44419;44420;44421;44422;44423;44424;44425;45020;45021;45378;45506;45507;45508;45509;45510;45511;45512;45513;45514;45515;45516;46312;46313;46839;46840;46841;46842;46843;46844;46845;46846;46847;46848;47710;47711;47712;47713;48216;48285;48284;48286;48287;48288;48290;48289;48291;48292;48293;48294;48295;48296;48297;49219;49220;49221;49222;49223;49224;49225;49226;49227;49695;49948;49949;49950;49951;49952;49953;49954;49955;49956;49957;49958;49959;49960;49961;49962;49963;50528;50529;50530;51162;51163;51164;51165;51166;51167;51168;51169;51170;51171;51172;51173;51174;51175;51176;51177;51178;51454;51455;51903;51904;51905;51907;51906;51909;51908;51910;51911;51913;51912;51914;52583;52584;52585;53375;53376;53377;53378;53379;53380;53381;53382;53383;53384;53385;53386;53387;53388;53389;53390;53391;53858;53859;55117;55118;55119;55120;55121;55122;55123;55124;55125;55126;55127;55128;55129;55130;55131;55132;55569;55570;55571;55572;55787;55788;55789;55790;55791;55792;55793;55794;55795;55796;55797;55798;55799;56173;56174;56175;56176;56177;56449;56450;56452;56451;56453;56454;56455;56456;56736;56737;56738;56739;57273;57274;57275;57276;57277;57278;57279;57280;57281;57282;57283;57284;57285;57414;57469;57470;57471;57473;57472;57474;57475;57943;57942;57944;57945;57946;57947;57948;57949;58329;57950;58330;58331;58333;58332;58655;58334;58657;58656;58658;58659;59037;58660;59039;59038;59041;59040;59042;59043;59454;59455;59456;59457;59458;59459;59460;59906;59908;59907;59909;59910;59912;59911;61527;59913;61528;61529;61530;61531;61533;61532;61534;61535;62043;62044;62223;62459;62460;62461;62462;62463;62464;62465;62903;62904;62905;62906;62907;62908;63224;63225;63226;63227;63228;63229;63230;63419;63420;63421;63422;63423;63424;63425;63522;64570;64571;64572;64573;64574;64575;64576;64577;64578;64579;64580;64581;65210;65211;65212;65213;65214;65215;65876;65875;65877;65878;65879;65880;65881;65882;65883;66412;66413;66414;66415;66416;66417;66418;66419;66421;66422;66863;66864;66865;66866;66867;67209;67210;67211;67212;67213;67214;67215;69324;69325;69326;69327;69328;69329;69330;69331;69827;69828;69830;69829;69831;69832;69833;69834;69927;69835;69836;69837;69838;70332;70333;70334;70335;70336;70337;70338;70339;70846;70847;70848;70849;70850;70851;70852;70853;71312;71311;71313;71314;71315;71316;71317;71318;71319;71321;71320;71941;71942;71944;71943;72428;72429;72430;72432;72431;72434;72433;72930;72931;72932;72934;72935;73413;73415;73416;73417;73805;73981;73982;73983;73984;73985;73986;73987;73988;74422;74423;74424;74425;74426;74428;74427;76406;76407;76408;76409;76410;76411;77160;77162;77163;77164;77165;77166;77167;77168;77169;77572;77573;77574;77575;78432;78431;78433;78434;78435;78437;78438;78439;79125;79126;79127;79128;79129;79311;79130;79131;79133;79132;79134;79827;79135;79136;79137;79138;79828;79831;79830;79832;79833;80490;79834;80491;80492;80493;80494;80495;80496;80497;81262;81263;81264;81265;81266;81267;81268;81269;81270;81733;81734;81735;81736;81757;81737;81738;81739;81740;81741;81742;81743;81744;81745;82770;82769;82771;82772;82773;82793;82774;82775;82776;82777;82778;83358;83440;83362;83416;83357;83356;83354;83355;83370;83361;83364;83363;83360;84053;84054;84738;84055;84056;84059;84060;84057;84085;84761;84736;84743;84762;84734;84739;84735;84744;84747;84745;84741;84748;84746;84882;85333;85348;85350;85332;85321;85335;85330;85346;85406;85334;85323;85322;85324;85331;85540;85845;85843;85846;85876;85877;85884;85879;85847;85844;85849;85883;85848;86367;86372;86365;86366;86374;86373;86819;86820;86821;86822;86823;86824;86826;86825;86830;86827;86828;86849;87253;87254;87255;87256;87258;87257;87259;87260;87261;87262;87264;87263;134204;87877;87878;87879;87892;87882;87880;87890;87881;88642;87895;88643;88644;88645;88646;88647;88648;88649;88650;88651;88652;88654;88653;89746;89747;89748;89749;89751;89750;89753;89752;89754;89755;89779;89756;89757;89835;90432;90431;90433;90434;90436;90435;90437;90438;90439;90440;90441;90442;90443;91001;91002;91003;91004;91005;91006;91007;91008;91009;91010;91011;91012;91596;91013;91014;91015;91016;91597;91598;91611;91599;91600;91601;91602;91603;91604;91605;91606;91612;91607;91608;91609;91672;92015;92016;92017;92018;92020;92019;92021;92022;92023;92024;92819;92025;92820;92843;92821;92839;92822;92823;92825;92824;93464;93465;93466;93481;93468;93467;93470;93469;93471;93472;93473;93474;93475;93651;94011;93963;94017;94016;94014;94012;94013;94008;94009;93964;94340;94630;94631;94632;94633;94634;94635;94636;94637;94638;94639;94640;94641;94642;94643;95764;95809;95765;95766;95811;95813;95767;95768;95769;95770;95772;95771;96390;96391;96392;96393;97729;97325;97745;97730;97731;97737;97743;97732;97794;97740;97744;97741;97738;97733;97734;97754;97736;97742;97735;99285;107195;100054;104043;104044;99305;99365;99306;99307;99286;99282;99287;99308;99309;99304;99312;99289;99288;99290;104889;104665;99314;102265;102264;102266;102267;102268;104382;102269;102270;104890;102271;122485;102272;102273;105178;105179;105180;105181;105182;105184;105183;105185;105186;105187;105188;105190;105189;105191;105192;101522;101365;104383;101366;101367;101368;101369;101370;104891;101371;101372;101373;102035;101374;101375;100759;100760;133048;100761;100762;100763;100764;100766;100765;100767;104892;100785;100787;100782;100783;100768;100786;100788;100791;100055;100056;100057;100058;100059;100060;100061;104045;100062;104893;100103;100063;104547;104548;104549;104550;104551;104552;104553;104554;104555;104556;104557;104894;104558;104570;104559;104560;104561;104562;103745;103746;103747;103748;103749;103750;103924;104384;104895;103784;103751;103786;103752;103785;103753;103816;103754;103127;104385;103128;103129;103130;103131;103132;103220;103137;136946;103138;103139;104896;103133;103134;103141;103135;103456;103192;103136;103122;103123;103140;108960;108961;108962;108963;108964;108965;108966;108967;108968;108969;108970;108971;108972;108973;108974;109029;109036;108976;108975;105796;111684;111685;111686;111687;111688;111689;111690;111691;111693;111692;111694;111755;111695;112116;111786;122486;111697;111696;111698;111699;111756;111787;111973;111700;119582;119583;119584;119585;119586;119587;119589;119588;119591;119590;119612;119592;119593;119594;136616;119595;119596;119686;119609;119597;119768;119769;119770;119771;119772;119773;119774;119598;119599;119611;106795;106796;106797;106798;106799;106800;106655;106801;106802;106803;106804;106806;106805;106818;106807;106817;105585;105731;105546;105693;105548;105547;105549;105550;105551;105552;105553;105554;105730;105694;105695;105728;105696;105697;105699;105698;105700;110980;110981;110982;110983;110984;110985;110986;110987;110988;110989;111070;111071;110990;110991;110992;110993;111008;111045;111042;111007;110994;110484;110485;110486;110487;110488;110489;110490;110491;110414;110492;110493;110494;110495;110496;110497;110498;110499;110500;110501;108284;108285;108286;108287;108288;108289;108290;108291;108757;108292;108407;108336;111072;128764;108408;108293;108294;108295;108296;108297;108299;108298;108301;108300;109652;109603;109604;109605;109606;109607;109609;109608;109610;109611;109731;109732;109612;109684;109613;109614;109615;109616;109618;109651;109617;123513;118910;123514;118911;118912;118913;118914;118915;118916;118917;118918;122818;118919;122819;118920;122820;119463;119095;118979;118921;118978;118922;118923;118924;118958;118925;118926;118927;118928;118929;119017;118930;117997;117998;117999;118000;118001;118003;118002;118005;118004;118148;118006;118149;118007;118008;118009;118010;118012;118011;118014;118013;118094;118015;118016;110642;117411;117412;117413;117414;117415;117416;117418;117417;117419;117420;117481;117431;117421;117422;117460;117423;119239;117458;117424;117425;117426;123939;123940;123941;123942;123943;123944;123945;123946;123947;123948;123974;123949;123975;123950;123951;123952;123955;123953;127841;127842;127843;127844;127846;127845;127847;127848;127850;127849;127852;127851;127861;127853;127909;127860;127854;127855;127856;131926;131925;131927;131928;131930;131929;131931;131932;131933;131934;131935;131936;131937;131938;132020;131939;131940;122118;122119;122121;122120;122122;122123;122124;122125;122126;122127;122154;122234;122128;122129;122130;122131;122132;122155;122317;122974;122185;122255;122133;121011;121012;121013;121014;121015;121016;121017;121018;121019;121020;121109;123131;121021;123132;121022;121023;121035;121024;121025;121044;121026;121213;121027;121189;121065;121028;126570;126569;126571;126572;126573;126574;126575;126576;126578;126577;126601;126579;126602;126600;126580;126581;126582;126631;126630;126583;126584;126628;126585;126641;126604;125817;125818;125819;125820;125821;125822;125823;125824;125825;125826;125881;125827;125828;125829;125830;130260;125831;125834;125832;125833;122779;122780;122781;122782;122783;122784;122785;122786;122787;122788;122778;122789;122790;122859;122975;122869;122791;122792;125058;125059;125060;125816;125061;125062;125063;125064;125065;125066;125067;125164;125217;125074;125225;125068;125069;126634;125149;125057;125070;125071;125227;130261;125163;125255;125072;125073;130901;130902;130903;130904;130905;130906;130907;130908;130909;130910;130911;131025;130912;130913;130915;130914;130969;129716;129717;129718;129719;129720;129721;129722;129723;129724;129725;129727;129728;129729;129730;129731;129885;129715;131318;129726;128634;128636;128635;128637;128638;128640;128639;128641;128642;128643;128644;128770;128771;128742;128772;128645;128707;128646;129166;128647;131567;128686;128648;128649;128767;129167;128708;135463;135464;135465;135466;135467;135468;135469;135470;135471;135472;135473;135474;135590;136425;136474;137399;135718;135476;135477;135475;135675;135682;135587;135478;135479;135758;135462;135481;135480;135719;135482;139484;139485;139486;139487;139488;139489;139490;139491;139492;139493;139701;139494;139496;139495;140595;139598;139497;139498;139499;139500;139501;139502;139503;139504;139584;139505;139506;140596;139507;143561;143558;143569;143570;143571;143565;143559;143572;143560;143564;143562;143557;143566;143608;147956;143555;144058;144059;144057;144056;143556;143563;143567;143573;133608;143568;133609;133610;133611;133612;133613;134863;133614;134864;133615;133616;133617;133618;133619;133719;133718;133716;133620;133621;133622;132858;132857;132859;132860;132862;132861;132864;132863;132865;132866;132999;133049;132993;132994;132868;132867;132870;132869;138453;138454;138455;138456;138457;138458;138459;138460;138461;138462;138600;138463;138465;138464;138466;138467;138468;138469;138512;138470;138471;139314;138472;138452;138473;138474;137304;137254;137255;137256;137257;137258;137259;137260;137261;137262;137263;137264;137265;138088;137266;137267;137268;137269;137369;137270;137271;137272;134369;134368;134370;134371;134865;134372;134373;134866;134374;134375;134428;134376;136472;134377;136473;134416;134378;134379;134380;134381;134382;136501;136502;136503;136504;136505;136506;136507;136508;136510;136509;136527;136565;136564;136566;136511;136512;136513;136515;136514;142684;142682;142680;142693;142681;142683;142679;142690;142687;142685;142686;142888;142691;142692;142689;142808;142806;142809;142807;142695;143043;142694;142688;141430;141433;141427;141423;141424;141420;141422;141431;141434;141416;141432;141426;141503;141417;141491;141493;142595;141429;141418;141435;141425;141436;141419;141421;141428;141931;141415;140414;140415;140416;140417;140418;140419;140420;140421;140422;140423;140425;140424;140501;140426;140427;140428;140429;140430;140518;140519;140520;140521;140431;140534;140432;140465;140433;149259;148466;148461;148468;148486;148473;148475;148465;148477;148467;148480;148471;148469;148482;148485;148463;148479;148470;148476;148737;148474;148740;148739;148738;149367;148538;148464;148483;148714;148552;148553;148484;148478;152435;152430;152431;152422;152434;152436;152421;152425;152528;152433;152428;152488;152525;152432;152524;152526;152520;152426;152437;152429;152669;152427;152521;152423;156072;156063;156065;156068;156071;156066;156070;156064;156067;156069;156073;156227;156074;158206;156062;158167;158164;158165;158166;158251;156194;158205;146326;146329;146345;146335;146337;146342;146338;146339;146327;146341;148979;146344;146328;146346;146336;146343;146330;146332;146331;146418;146419;146455;146457;146454;146456;146333;146340;146479;146426;146334;153214;144884;144887;144873;144874;144882;144880;144888;144881;144877;144878;145040;145041;145039;144879;144886;144889;145033;144885;145093;145094;145091;145092;144883;144977;144876;144875;151606;151592;151588;151604;151596;151599;151598;151601;151611;151471;151472;151473;151474;151475;151476;151477;151478;151479;151488;151609;151664;151589;151597;151603;151595;151608;151607;151590;151605;151602;151594;151647;150369;150370;150367;150374;150354;150353;150368;150357;150363;150708;150365;150371;152587;150356;150351;150352;150361;150373;150360;150364;150372;150366;150358;150418;150355;150359;147226;147222;147230;147220;147224;147223;147231;147217;147221;147229;147946;147225;147024;147003;147227;147228;147218;147750;147753;147751;147752;147638;147657;147216;147219;147749;149383;149382;149396;149398;149391;149390;149440;149394;149389;149392;149438;149397;149393;149386;149401;149395;149385;149400;149387;149479;149436;149402;149388;149399;154986;154989;154990;154994;154993;154987;154997;154984;154995;154983;154996;154982;154999;155962;154985;155174;155000;155020;155143;155018;154991;155306;154988;154037;154034;154033;154026;154042;154041;154029;154043;154035;154040;154036;154027;154175;154032;154172;154038;154028;154039;154030;154171;154173;154051;154031;153381;153383;153373;153372;153377;153386;153375;153384;159064;153379;153380;153376;153374;153385;153382;153387;153388;153378;153389;153470;153428;158037;157429;157428;157432;157440;157435;157436;157426;157437;157442;157431;157427;157879;157441;157433;158039;157850;157849;157852;157851;157439;157841;157438;156617;156618;156620;156619;156621;156622;156623;156624;156625;156626;156627;156713;156628;156745;156629;156771;156630;156640;156639;156641;156642;156714;156631;158716;158701;158703;158717;158711;158704;158700;158712;158709;158713;158718;158702;158744;158786;158708;158714;158710;158818;158707;158759;158927;158715;158706;158705;123458;123459;123460;124120;123461;119150;18592;11110;26920;87734;17651;48405;35453;11867;152100;10412;11457;11459;10427;11460;10431;11458;10413;10567;10430;10426;10401;17662;10531;11119;52459;38912;72543;61647;10449;11868;46742;10432;10429;12028;50859;10553;26917;10400;48942;10428;126527;24786;10917;73026;10860;56211;10399;57608;81425;23910;10457;10458;11562;10895;10896;10897;10898;10899;10900;97086;96982;100871;16314;11329;100064;103877;80333;118715;118716;124117;137754;144951;144952;149377;157063;47709;122614;84729;122615;88561;19699;21626;154957;154955;154956;154958;154959;157062;97996;73182;12069;10835;11141;19550;47151;18553;34209;27585;31132;23979;55046;31856;55047;35352;25663;24756;24755;27586;40870;40871;54581;54580;18391;10258;10520;10259;45517;10260;10703;11053;108659;11772;10261;10262;11852;11038;52611;42088;11270;54582;11421;10263;72604;72603;63334;63333;31167;40470;11621;14227;40469;20833;11597;43827;10659;45022;43100;40448;10969;10264;41028;56009;11490;10266;27841;62759;76474;11317;10551;74091;10548;10547;10546;22415;10857;10550;34022;10858;63136;19763;10800;19762;10688;35296;32081;25422;25423;25424;14274;40449;49088;22477;35609;11865;83139;11164;17155;11126;17156;48406;22941;10349;22942;41066;22943;22944;24952;38010;107294;22945;22946;107295;22947;22948;22949;25194;19214;22950;20332;24370;22951;21258;107296;19202;107297;107298;19443;19444;39387;19367;21792;21259;37385;36851;36284;23914;36847;24844;107299;107300;107301;107303;107302;107304;130508;22952;107305;107306;22953;82536;19838;40924;19743;107307;22954;67145;22955;107308;107310;107309;107311;107313;107312;109911;109882;20052;47891;107314;107315;107316;22244;42066;29719;46333;25456;105346;107317;107318;22956;25385;46745;107319;22957;19446;107320;20739;19203;19579;107321;33791;107322;107323;107324;107325;107327;107326;107328;107329;107330;129869;138420;19204;107331;61391;22958;107332;107333;107334;107336;107335;107337;107338;107339;107340;107342;107341;126716;121174;135434;129870;138421;140363;149794;156785;25541;107343;31596;107344;107345;107346;107347;148754;24371;107348;107349;107350;22959;19368;107351;71645;107352;21006;24372;26157;43884;25271;19215;24343;107353;107354;24373;107355;22960;107356;22961;107357;107358;111114;71646;25386;25272;107359;71813;107360;19447;107361;19448;107362;20943;30164;30165;41952;19449;19369;25069;22962;107364;107363;22445;107365;36541;37052;20740;36389;19744;107366;107367;19839;26981;107368;32361;22963;36756;107369;25387;107370;20859;20271;22965;107371;107372;22966;107373;22967;25728;38854;22968;107374;22969;107375;25070;107376;20272;22059;43885;25388;20273;35407;107377;53510;20380;24953;33204;37663;26982;26983;37390;22970;107378;33908;107379;107380;154221;39488;39487;41981;22971;22972;35408;21260;25071;107382;107381;107383;107384;107385;107386;22060;107387;23685;22973;22974;107388;22975;22061;109855;23686;22301;107389;25642;107390;30166;24845;107391;76070;107392;25643;25273;107393;107394;73908;107395;107396;37632;107397;107398;24374;107399;22897;107400;23915;24375;28278;25274;33909;107401;132890;107402;71814;107403;43886;23994;24376;24377;107404;107405;107407;107406;23748;71647;23916;107408;47892;47156;107409;107410;27072;35193;24378;24846;107411;24213;107412;24379;107413;24380;24954;107414;37310;107415;107416;26984;107417;107418;26985;107419;37997;26956;107420;107421;107422;129871;30005;42970;26986;132891;148760;135435;25644;107423;25433;107424;107425;107426;107427;107428;107429;109883;24847;46317;26987;107430;26158;26988;107431;26159;107432;41943;30006;107433;29826;25275;107434;25276;107435;107436;107437;107438;107439;130509;26989;107440;71648;107441;107442;107443;126717;30167;107444;67146;107445;27073;71649;26990;107446;71650;32492;107447;107448;107449;117683;31989;26160;30007;107450;107451;42171;41052;26161;26957;26991;107452;77913;107453;107454;107455;62305;107456;97123;26162;36604;107457;107458;27074;27075;32164;107459;36895;107460;71651;31758;35194;35195;37884;107461;67147;107462;26958;31759;107463;45450;107464;26908;29205;36551;27617;107465;27076;32362;107466;62507;36474;32165;32166;32167;32493;32168;32169;107467;36856;107468;29206;107469;35409;31187;107470;107471;32494;36313;36336;107472;37316;107473;107474;107475;107476;121175;107477;126718;30168;33205;107478;81875;107479;30169;107480;107481;31331;107482;31332;32496;32495;32363;107483;107484;107485;31333;107486;32364;107487;62508;34788;33206;34789;107488;107489;43145;38168;38167;38169;107490;107491;107492;107493;107494;107495;71652;107496;33207;107497;107498;107499;58842;107500;32365;33910;107501;33792;34066;107502;33911;34790;77466;34791;34792;35196;34793;34794;34795;96564;35197;34796;34797;107503;33793;36396;51969;35578;35410;38822;107504;35198;107505;39553;107506;39554;107507;39555;40610;107508;34798;35199;48917;107509;111115;34106;107510;58843;107511;58844;37958;36623;35200;107512;37954;36656;37547;37522;107513;35201;107514;36339;35411;107515;36814;107516;35202;35203;36600;38118;71815;107517;38711;35579;67148;107518;41053;71653;38770;38780;38736;38771;38823;38781;44387;35568;107519;107520;35569;39414;107521;55063;38737;38756;107522;38738;35412;107523;38824;38782;38783;36806;49787;39325;39317;71816;107524;37667;107525;36861;39574;42136;42137;42182;107526;59285;39415;42138;40586;42183;42184;42098;42185;42217;107527;42218;42219;60090;40776;107528;39002;107529;39308;39762;39326;107530;39309;39532;42099;42139;39763;107531;40367;107532;40969;40937;107533;42220;43343;42140;46666;42078;107534;42221;45603;135436;42241;107535;71654;107536;107537;107538;71655;43096;71817;49134;67149;107539;42919;71818;107540;71656;107541;67150;107542;67151;107544;107543;107545;109856;138422;132892;71657;107546;107547;48936;49135;107548;50041;49079;49750;49136;107549;107550;107551;107552;107553;107554;107555;124073;135437;145192;44925;107556;107558;107557;44926;107559;107560;46318;71819;107561;107562;46319;71820;52470;51877;49080;49991;107563;45116;71658;107564;99432;107565;45596;107566;107567;46320;107568;50572;55477;56430;50364;107569;132893;56675;107570;126615;107571;66187;107572;66188;107573;107574;49234;53275;132894;107575;107576;50621;47100;107577;107578;48937;107579;55478;107580;50622;107581;107582;71659;71660;71661;71662;71663;71664;107583;93710;107584;71665;107585;107586;71666;107587;71667;50521;56431;51878;51879;57632;107588;56432;110656;64249;71668;107589;51880;87367;107590;51881;107591;62110;107593;107592;56676;57834;107594;54965;107595;64654;71669;107596;71670;107597;53247;53276;107598;59441;107599;52967;71671;107600;71672;71673;71674;71675;71676;71677;71135;59979;64655;59601;107601;54992;107603;107602;59049;107604;93798;107605;56433;55479;107606;71678;56434;71679;56435;71680;107607;107608;107609;58643;107610;107612;107611;107613;107614;71681;107615;107616;107617;107618;107619;107620;107621;71682;57392;107622;56464;107623;58477;107624;107625;107626;107627;107628;107629;107630;107631;124074;69902;71683;107632;56976;107633;107634;107635;57835;59050;107636;59051;59286;107637;64656;107638;107639;107640;107641;107642;107643;107644;66739;107645;107646;107647;107648;124075;68869;64657;107649;71684;107650;57680;66352;107651;107652;121176;83539;111116;107653;64606;58735;107654;59287;107655;64607;107656;107657;107658;107659;107660;66353;107661;64608;71685;79428;58028;107662;58559;107663;83540;107664;58127;107665;68870;107666;107667;64609;107668;59963;80844;107669;65208;107670;58736;107671;64610;107672;66710;72003;107673;73054;107674;107675;62450;63217;107676;107677;65628;61482;107678;64611;107679;64612;107680;106090;107681;107682;59442;156786;71686;71687;107683;62433;107684;61593;107685;91593;69903;107686;71455;107687;71689;71688;71690;107688;107689;74083;65680;107690;121177;107691;80845;107692;65638;107693;65681;107694;77721;109071;126719;107695;107696;107697;107698;107699;107700;107701;107702;107703;107704;107705;107706;107707;66800;72165;107709;107708;107710;107711;107712;107713;107714;107715;107716;107717;107718;107719;107721;107720;107722;111117;118060;121178;132895;129872;69904;107723;90082;71691;107724;107725;70442;69905;107726;107727;77680;107728;84721;107729;70443;107730;107731;107733;107732;107734;107735;76517;107736;80076;107737;107738;73055;74084;107739;76086;107740;79306;107741;85734;80846;107742;82761;107743;82762;107744;87493;107745;90083;107746;80847;107747;107748;107749;107750;107751;107752;107753;111118;118061;124076;126720;138423;154224;87640;107755;107754;90084;107756;107757;84205;107758;107759;109072;86452;107760;109073;107761;86453;107762;107763;107764;107765;111119;90571;107766;107767;107768;107769;90572;111120;107770;107771;107772;107773;111121;118129;118130;92405;107774;126721;87520;107775;87521;107776;107777;132896;146233;107778;90703;90704;107779;107780;107781;109074;87986;107782;118062;90085;90573;107783;107784;93587;107785;107786;109075;107787;135438;126722;138424;154226;97124;107788;107789;97125;107790;107791;109076;126723;135439;138425;145191;156749;154225;97693;99756;107792;100145;107793;107794;100146;111122;118131;111123;118132;118133;118134;121179;126724;126725;141557;141558;151901;29980;22976;24323;22977;107795;41067;22979;22978;22980;107796;22981;22982;23763;23687;23688;19205;20333;22983;19206;20053;21261;107797;107798;19450;107799;107800;19580;39388;21007;19370;22154;36952;21262;22245;22984;24848;107801;107802;107803;107805;107804;130510;107806;22985;82537;24381;107807;107808;22986;20054;41001;19745;107809;22987;67152;107810;22988;107811;107812;107813;107814;107815;107816;109912;109884;20055;47893;107817;107818;107819;22302;42067;29720;46334;25457;107820;105347;22989;107821;25389;46746;107822;22990;107823;19451;107824;19581;33794;107826;107825;107827;107828;107829;107830;107831;107832;107833;129873;19207;138426;61392;107834;22991;107835;107836;107837;107838;107839;107840;107841;107842;107843;107844;107845;121180;126726;129874;135440;138427;140364;149803;156784;25542;107846;107847;31597;107848;107849;107850;148765;24382;107851;107852;107853;22992;19371;71692;107854;24383;26992;24384;25277;24342;19216;107855;107856;24385;107857;22993;107858;22994;107859;107860;111124;71693;25390;107861;25391;107862;71821;107863;19452;107864;19453;20944;30170;30171;41953;19454;19372;22995;107865;107866;107867;22446;36725;20741;107868;19746;19840;107869;107870;26993;32366;22996;107871;38126;107872;25392;20860;20274;107873;107874;22998;38855;107875;22999;20742;107876;25072;107877;20275;43887;25393;20276;35413;107878;53511;20381;24955;33208;26994;36329;36931;22062;107879;21008;107880;23000;33912;107881;107882;154219;39489;39490;41982;23001;35414;25073;21263;107884;107883;107886;107885;107888;107887;22063;107889;23689;23002;23003;107890;23004;109857;107891;25645;30172;107892;24849;107893;23739;107894;71694;107895;25646;107896;107897;73909;107898;67153;107899;107900;107901;107902;24386;22898;107903;23917;24387;25394;33913;107904;107905;132897;71822;107906;43888;23918;24388;24389;107907;107908;107909;107910;71695;23749;107911;47894;107912;47157;27077;107913;23919;35204;24390;24850;107914;24214;107915;24391;107916;24392;24851;107917;37742;107918;107919;26995;107920;107921;26996;26997;107922;107923;107924;129875;42971;30008;25543;132898;135441;148764;25647;107925;25434;107926;107927;107928;107929;107930;107931;24852;109885;46321;37070;26998;26999;27000;107932;27001;107933;41944;107934;30009;29827;25278;107935;107936;107937;107938;107939;130511;25395;107940;71696;107941;107942;126727;107943;25729;30173;69906;107944;27078;107945;107946;27002;32497;71697;107947;107948;107949;117684;31990;27003;28279;27079;107950;30010;107951;42172;41054;27004;27005;27006;27080;107952;77914;107953;107954;107955;62115;107956;97126;27081;107957;25648;107958;107959;27082;27083;32170;107960;71698;31760;31761;35205;35206;38004;37728;107961;107962;31334;45451;107963;27084;29207;36874;27085;107964;27086;32367;107965;62509;37278;29721;32171;32172;32173;32174;32498;32175;43889;32176;107966;37825;107967;29208;35415;107968;107969;31188;107970;32499;37188;107971;107972;107973;107974;107975;107976;121181;126728;30174;107977;81876;107978;30175;107979;31335;107980;31336;32500;32501;32177;32368;107981;107982;107983;31337;107984;32369;107985;62510;34799;33209;34800;107986;43146;107987;38170;38171;107989;107988;107990;107991;107992;107993;71699;107994;33210;107995;107996;107997;58760;107998;32370;33914;107999;33795;34067;33915;108000;34801;34802;34803;35207;34805;34804;34806;34807;96565;34808;35208;33796;108001;37639;51970;35570;38825;108002;35209;108003;39556;108004;39557;108005;39558;35210;40368;34809;108006;48918;35416;35211;108007;111125;34107;108008;58761;108009;58762;37456;37702;108010;35212;36795;108011;35417;108012;37287;108013;35213;35214;36512;36555;108014;38712;108015;35571;108016;41055;71701;71700;38784;38772;38773;38826;38757;38785;44388;108017;35572;108018;55064;38739;108019;38740;108020;35573;108021;35418;38786;38787;38827;36559;49788;39327;39318;108022;36337;108023;37297;39575;42141;42186;108024;59234;39416;42142;40587;42258;42100;42187;42166;108025;42188;108026;42222;42223;42224;40777;108027;39003;108028;39310;40750;39764;108029;39417;39765;42101;60091;40343;108030;40369;43344;108031;40970;108032;40938;42225;42143;46667;108033;40925;42226;46322;135442;42242;71702;108034;71823;43049;49137;71824;71703;108035;108036;67154;67155;108037;108038;108039;108040;109858;132899;138428;71704;108041;108042;48938;50042;49081;49751;49138;108043;108044;108045;108046;108047;108048;108049;124077;135443;145172;44927;108050;108051;108052;108053;44928;108054;46323;108055;71825;46324;108056;71826;44357;108057;52471;49082;49992;108058;45117;108059;71705;99433;108060;45597;108061;108062;46325;108063;55480;50538;56436;50365;132900;108064;56677;108065;108066;65978;126616;108067;65979;108069;108068;53277;49235;132901;108070;50623;108071;48939;108072;55481;108073;50624;108074;108075;108076;71707;71706;71708;71709;71711;71710;93711;108077;108078;108079;71712;108080;71713;108081;71714;50522;108082;53822;56437;51882;57633;108083;56438;110657;64250;108084;51883;87368;108085;51884;108086;108087;56678;57836;56700;108088;54966;108089;64658;53248;108090;53278;108091;59443;52968;108092;71715;71716;71717;71718;71719;71720;71721;71879;64659;108093;55017;108094;108095;59013;108096;93799;56439;108097;55482;108098;56440;56441;71722;71723;108099;108100;58737;108101;108102;108103;108104;108105;108106;108107;71724;108108;108109;108110;108111;108112;108113;71725;108114;56465;108115;58478;108116;108117;108118;108119;108120;108121;108122;108123;124078;69907;71726;108124;56977;108125;108126;57837;108127;59014;108128;59052;59235;108129;64660;108130;108131;108132;108133;108134;108136;108135;66740;92406;108137;64552;108139;108138;108140;108141;68871;124079;64661;108142;71727;108143;57681;108144;66332;108145;121182;83541;108146;111126;64524;108147;58738;108148;59236;108149;64525;108150;108151;108152;108153;66333;108154;64526;71728;79429;58029;108155;58587;108156;83542;108157;58128;108158;68872;108159;108160;64527;108161;59953;108162;80848;65186;108163;58739;108164;58763;64528;108165;66711;108166;72004;108167;73056;108168;62451;108169;63218;108170;65595;108171;61457;108172;64529;108173;64530;108174;106091;108175;59444;108176;156787;71729;71730;108177;62429;108178;61594;108179;91594;108180;69908;108181;71456;71731;71732;71733;108182;74085;108183;65665;108184;108185;121183;80849;108186;65639;108187;65672;108188;77722;109077;126729;72166;108189;108190;108191;108192;108193;108194;108195;108196;108197;108198;108199;108200;108201;108202;111127;108203;118063;121184;129876;132902;91595;68873;90086;108204;69397;108205;108206;69909;70444;108207;84722;108208;70445;108209;108210;108211;108213;108212;108214;76518;108215;108216;80077;74086;108217;79270;80850;108218;82763;108219;82764;108220;87494;108221;90087;108222;108223;108224;108225;108226;108227;108228;111128;118064;124080;126730;138429;154223;87641;108229;90088;108230;108231;108232;109078;86454;108233;108234;109079;86455;108235;108236;108237;108238;111129;90574;108239;108240;108241;108242;111130;90575;108243;108244;108245;108246;111131;118135;92407;118136;108247;126731;87522;108248;87523;108249;108250;132903;146247;90675;108251;90676;108252;108253;108254;109080;87987;108255;118065;90089;108256;90576;108257;93588;108258;108259;108260;109081;126732;135444;138430;154222;97127;108261;108262;97128;108264;108263;109082;126733;135445;145096;138431;154220;156750;97694;108265;99757;100147;108266;108267;100148;111132;118137;111133;118138;118139;121185;118140;126735;126734;141551;141553;151893;80580;80581;80582;80583;80584;80585;80586;80587;80588;80589;80590;88514;80591;78395;80592;80593;80594;80595;80596;80597;80598;80599;80600;80601;80602;80603;80604;80605;80606;80607;80608;80609;80610;80611;80612;80613;80614;80615;80617;80616;80618;80619;80620;80621;80623;80622;80624;80625;80627;80626;80628;80629;80631;80630;80633;80632;80635;80634;80636;80637;80638;80640;80639;80641;80642;80643;80644;80645;80646;80647;80648;80649;80650;80651;80652;80653;80654;80655;80656;80657;80658;80659;80660;80661;84807;80662;80663;80664;80665;80666;80667;80668;80669;80670;80671;80672;80673;80674;80675;80676;80677;80678;80679;80680;80681;80682;80684;80683;80685;80686;80687;80688;80689;80690;80691;80692;80693;80694;80695;80696;80697;80698;80699;80700;80701;80702;80703;80704;80705;80706;80707;80708;80709;80710;80711;80712;80713;80934;80714;80716;80715;80718;80717;80719;80720;80721;80722;80723;80724;80725;80726;80727;80728;80729;80730;80731;80733;80732;80734;80735;80737;80736;80739;80738;80741;80740;80743;80742;80745;80744;80747;80746;80748;80749;80750;80751;80752;80753;80754;80756;80755;80757;80758;80759;80760;80761;80762;80763;80764;80765;80766;80767;80768;80769;80770;80771;80772;80773;80774;80776;80775;80778;80777;80779;80780;80782;80781;80783;80784;80785;80786;80788;80787;80789;80790;80792;80791;80794;80793;80795;80796;80797;80798;80799;80800;80801;80802;80803;80804;80805;80806;80807;80809;80808;80810;80811;80812;80813;80814;80815;80817;80816;80818;80819;80820;80821;80822;80823;80824;36510;36870;37948;37361;36271;37928;38071;36972;37461;37878;38025;37019;37416;36808;37909;36258;37902;38046;37893;37580;36639;36565;37094;37862;38094;38024;23126;23147;23150;67156;23151;23155;23158;23159;37154;37833;23163;23164;23165;23166;36626;37540;23167;23168;23198;23223;23235;23238;67157;23239;23244;67158;23247;23248;36327;38116;23249;23254;23255;23257;24974;24975;37130;23258;23259;23260;23262;23261;23263;36915;37857;37700;23264;36272;38110;23265;37992;36616;36678;37982;23266;23267;37458;36872;23268;23269;24393;23690;24394;23285;23291;23294;23295;23297;23296;38067;36987;13295;23301;13296;13297;13298;13299;13300;13301;23304;13302;33916;13304;13303;13305;13306;13307;13309;21170;26959;23306;13310;13311;13312;13313;13314;13315;13316;13317;18068;13318;13319;13320;13321;13322;13323;26909;13324;67159;14199;13325;13326;23315;21009;13327;13328;13330;23316;13331;13332;13333;13334;13336;17356;13337;23321;13338;13339;13340;13341;13342;13343;13345;13346;13347;13348;13349;13350;23326;13351;13352;72142;13354;13353;13355;13356;22155;13357;23327;13358;13359;13360;67160;13361;13362;13363;23328;13364;13365;13366;13367;13368;13369;13370;33211;13371;13372;23330;13373;13374;67161;13375;13377;13378;13380;13381;23334;13382;23336;23335;13383;13384;13385;13386;23338;33797;67162;13387;13388;13389;36568;37081;13390;13391;23343;13392;23344;13393;13394;13395;23345;23346;23351;23352;23355;23358;23359;13396;13398;13397;16084;13399;23360;23361;13400;23362;23363;25730;13401;23364;23365;13402;23366;23367;23368;13403;23369;24984;25074;23371;23372;23373;23374;13404;37808;24985;36946;23375;23376;23377;23378;23379;13405;36543;43895;23381;23383;23384;23385;23386;23387;23388;23389;23390;23391;23392;22507;15593;15482;15594;15744;17357;18284;13406;20945;30176;23395;23396;23397;23402;23403;23404;23405;23406;23407;19455;19456;23409;23410;37241;36716;37226;37979;23411;24986;36406;36305;24853;23412;23413;23414;23415;23416;23417;33798;23418;37733;37251;37548;36577;23421;24395;37271;23423;23424;27053;36302;37867;76553;27007;20946;23427;23428;25279;73910;37363;24396;24397;24398;27509;34996;27008;24399;37397;27009;24854;27010;25281;26960;25650;38026;31762;36789;27087;67163;29828;36415;37098;36954;31598;33426;33799;35222;34068;71734;36494;40971;40939;67164;71735;71736;71737;72144;72143;76519;86456;86457;90577;90578;13407;23430;13408;13409;13410;13411;13412;23433;13413;33918;13414;13415;13416;13417;13419;21171;27011;13420;13421;13422;13423;13424;13425;18070;13426;13427;13428;13429;13430;13431;13432;27088;13433;67165;14200;13434;23439;21010;13435;27012;23440;13437;13438;13440;17358;13441;13442;13444;13443;13446;13445;13447;13448;13450;13451;13452;13453;13454;13455;13456;13457;13458;13459;13460;22156;13461;13462;13463;13464;13465;13466;13467;13468;13469;13470;13471;13472;13473;13474;33212;13476;13475;13477;13478;13480;13481;13483;13484;23447;13485;13486;13487;13488;13489;13490;13491;13492;13493;23449;13494;13495;13496;13497;13498;13499;16088;13500;13501;13502;13503;13504;23452;23453;25731;13505;23454;23455;13506;25076;13507;13508;43896;23457;23459;23460;22508;15595;15483;15596;15745;17359;18283;13509;20947;23461;23462;23463;19457;19582;23465;23466;37670;37821;23772;27014;38008;76554;20948;23470;24400;24401;27015;24402;24856;27016;25652;27017;27089;29850;31599;33427;35215;34069;37644;40972;40940;71738;71739;72145;76520;86458;86459;90579;90580;23472;23473;23474;67166;13510;13511;13513;23477;23478;14367;13514;13515;13516;13517;19458;26165;13518;13519;13520;33919;53353;13521;13523;13524;13525;16089;29209;13527;53281;13529;34230;13740;22157;23480;13530;23485;23486;13531;13534;14201;13536;72146;23488;46797;23491;23492;13541;13543;13544;16187;23493;23494;72147;23495;46798;13545;13546;13547;13549;13550;13551;18074;13548;15756;13554;16090;13555;13556;13553;13558;31600;13559;23496;23497;13560;25732;13561;23498;23499;23500;23501;27090;13562;13563;23503;13564;23504;23505;13565;24993;56688;13566;23507;23508;21264;45408;23509;23510;13567;23511;40973;13568;52731;21011;13569;13571;24994;36978;23512;23513;23514;23515;23516;13572;13741;13573;23517;49655;13574;13575;49789;13745;37260;23519;28280;23521;23522;23523;23524;15757;13576;23525;23526;23527;23528;23529;55018;13577;26166;23530;26167;45032;23531;17360;15609;26910;18179;18285;30177;23534;23535;23536;23541;23542;34997;34998;23543;23544;23545;76555;23546;21265;23547;19841;19459;19460;23549;23550;37513;37046;36670;23551;38081;24995;36719;37426;23552;19842;17683;48941;18609;23553;23554;23555;33800;23556;25398;21172;36504;37387;36889;36257;24403;23559;37533;56087;23562;23563;47895;24996;33213;27018;36330;36676;23564;27019;24858;52732;25078;23567;23568;24220;24404;27091;26168;25283;73911;36354;24405;24406;27092;24407;34999;27021;27020;36484;45118;24859;27022;27023;25285;27093;71740;27024;27025;37630;71741;31763;67167;36547;35419;36684;37558;37722;30178;33801;33428;32371;33802;35000;35420;38075;71742;35574;39004;40974;40941;71743;71827;71828;67168;71744;71829;80884;46326;55540;71746;71745;71747;73593;77911;78112;72148;76521;86460;86461;90581;90582;23569;13579;23570;14366;72149;13581;71830;16188;23572;13583;13584;23573;13585;46799;13586;13587;13588;13589;13590;13592;13591;13593;16091;29211;46800;13594;18076;33921;27094;13596;53527;18078;13600;22248;13601;13603;13604;16092;13605;13606;13607;27095;13608;31601;13609;23574;23575;13610;13611;25733;13612;23576;13615;13616;13617;23578;14202;13620;56679;27026;23580;23581;21267;45409;13621;23582;40975;13622;13623;52733;13624;13625;13626;27027;13627;13629;23583;23584;23586;23585;23587;13630;13743;13631;34231;49790;37470;23589;23591;23592;23593;23594;15759;13633;23595;23596;25196;13634;27029;45033;14672;23597;27096;17361;15999;27097;54967;18180;18286;46764;23598;23599;23603;35001;35002;23604;23605;23606;49656;21268;23607;19843;19461;19583;23609;23610;19844;17686;22249;18610;23611;23612;36841;23613;33803;19462;25401;21173;76556;36986;23773;38005;23619;23620;56088;47896;24997;33214;34232;27030;36451;21012;23621;24861;28281;27031;52734;25079;23623;24222;24408;27032;27098;73912;67169;24409;27099;24410;24862;27033;27034;45119;24863;27039;27100;27042;71748;31764;67170;30179;35421;33804;33429;32372;33805;33806;35422;35003;35423;37711;71749;35576;39005;40976;71750;40942;71831;71751;71832;46327;55541;71752;71753;73594;77912;78113;76522;72150;86462;86463;90583;90584;44397;76800;76801;76802;76803;76804;76805;76807;76806;82817;76808;82818;90619;90620;90621;90622;99457;99458;99459;109172;109173;109174;109175;109176;124153;124154;135667;135668;135669;148933;29217;47040;78461;76809;76810;76811;76812;76813;76814;76815;80935;80936;80937;80938;80939;80940;80941;80942;88001;88002;88003;96601;96602;106125;121221;106126;121222;121223;132996;132997;156903;132998;156901;156902;76816;156900;76818;76817;76819;76820;76821;84759;84760;92452;92453;92455;92454;101802;101801;101803;101804;101805;101806;111186;111187;111188;111189;111190;111191;126764;126765;126766;126767;126768;126769;138539;151922;151923;76822;76823;76824;76826;76825;76827;76828;11513;100997;76829;76830;76831;76832;76833;76834;76835;76836;78463;78462;86530;86531;86532;86533;86534;94132;94133;94134;94135;118188;118189;118190;130006;130007;130008;130009;141772;141773;141771;154265;154264;124062;126263;130458;86996;86994;86995;140041;154473;142712;78915;86425;102862;103874;78916;78917;146309;146310;148180;154339;78913;144366;144449;146992;83817;62118;144334;73963;62117;62893;159004;155441;155442;155443;156208;144198;146808;144622;146928;91459;91458;91123;91917;92559;77504;86421;87600;59115;59116;47136;47137;47138;154954;77503;92040;92041;53812;42877;58105;58106;31681;31680;53811;53332;57824;66351;24912;82028;71844;71845;71846;103504;123417;104353;131167;132583;66973;66972;71843;49288;127058;154953;92467;20865;127107;141474;150981;92468;148994;149047;96305;92967;95656;109575;27618;146091;153807;155961;157871;17972;150720;150715;146088;56649;56648;38929;29999;62948;25933;26002;39448;92968;72337;46860;133963;133962;34060;100845;100846;99237;100872;70142;65873;65874;94900;66024;131725;136175;96281;11834;69441;45019;21673;11901;21229;19516;21082;34109;16137;34110;18048;40552;18671;12088;10393;20978;121572;47620;66037;79721;66835;69284;70213;71115;73246;71784;73575;76528;79722;79723;77238;79724;83992;81812;85581;85962;100844;90705;92790;93110;97526;99707;94932;97100;99235;126702;102731;104850;12215;158383;121164;47621;49070;121163;104498;121043;74243;84344;49071;47619;49072;49069;49286;53633;129500;119846;133148;21764;123005;58343;11706;21726;31717;43404;140535;24781;122584;24726;30131;42931;42932;42933;119721;119722;119723;119724;119725;119726;119727;24873;29216;40420;44384;45591;82530;57287;48433;49693;56215;69041;69042;63318;64501;65601;73131;77985;79742;108809;83529;84674;86191;100617;89052;89080;91193;91194;139912;139923;148111;44400;24870;10768;35620;15929;12294;20010;16163;12124;10923;15463;19237;57750;49692;16190;62031;62029;62030;21571;17652;38793;14228;16228;18504;20970;12647;14217;15718;35661;38794;21630;21038;22230;17257;11415;11753;18372;11066;10882;10708;10965;11341;108798;70658;104411;152684;100158;102094;102095;10607;32320;32314;106462;10267;11821;11343;12634;97993;121007;10268;10472;57620;153954;11340;56300;86328;11195;51092;10269;149334;56299;10881;122501;11339;90707;11169;14273;153588;31421;73920;71533;70657;63156;20927;90317;71049;153953;64913;58751;94437;31705;64688;56284;80102;70544;45410;52963;15901;42981;42980;121009;45411;57571;10863;35297;91263;62565;61447;32321;20007;131290;132675;83738;56043;124410;89058;62969;83298;121008;51356;83875;42873;42053;66848;57041;78479;65821;156899;42880;51891;58768;105415;94761;81606;57582;86067;51192;71534;21643;62563;62564;56984;63398;56471;56472;131127;132676;35291;95631;60108;103864;69551;26928;42476;11875;132634;14361;11677;10270;17285;35703;35705;31355;29701;10544;132025;11817;11569;11568;11762;35704;35706;10639;10817;10271;126589;10803;11230;117387;117390;34946;117365;128766;117363;117388;117392;117401;117364;66935;117389;66931;128765;117362;68981;70168;117402;117391;117393;73203;81105;117457;73763;73944;117404;143125;117403;83487;79860;88714;119728;90773;90152;90153;91811;91812;94336;118731;118732;117400;102918;101361;97610;97576;101548;102960;129387;102977;105005;108760;112036;112064;139607;143599;95887;151425;73919;122235;60093;144365;99671;73943;34947;60094;69240;60095;38208;60096;117461;47900;57691;57850;42822;60022;60021;45580;32394;56090;65690;73212;73500;74421;77182;78584;82077;83730;92557;65689;49270;50658;10409;12260;12261;12284;13848;14800;125387;127137;66474;68930;40620;71566;78068;71567;71568;71569;72744;78506;12259;40619;87735;78507;21570;42962;19496;20286;15950;62390;62389;33439;33440;33438;38913;43615;32121;35688;25705;39314;21597;38198;35105;35104;38695;29926;77557;68958;33437;25000;33486;64817;23931;64818;24022;64819;25124;64820;25370;64821;25627;25709;64822;25903;64823;26923;64824;30149;64825;31344;64826;31356;64827;35030;64828;36034;64829;40495;64830;42373;64831;33487;64832;33488;64833;33545;64815;30148;21162;124651;31423;25082;39590;17725;59736;76593;82995;84963;90628;106349;51138;32136;25693;64834;11658;69420;39618;11374;11373;10272;20888;18114;19697;55992;16322;118226;50047;50048;11536;11678;117942;76213;18000;18354;33277;25929;49709;41068;118225;41069;41071;41070;41072;41073;41074;58224;41075;41077;41076;58225;41078;41079;41080;41081;41083;41082;41084;41085;41086;41088;41087;41089;41090;41091;41093;41092;41094;41095;41096;41097;41098;41100;41099;41101;41102;41103;41105;41104;41106;41107;41108;41109;41110;41112;41111;41114;41113;41116;41115;41118;41119;41117;41120;41121;41122;41123;41124;41125;41126;41127;41128;41129;41130;41131;41132;41133;41134;41135;41136;41137;41138;41139;41140;41141;41142;41143;41144;41145;41146;41147;41148;41149;41150;41151;41152;41153;41155;41154;41156;41157;41159;41158;41160;41161;41162;41163;41164;41165;41166;41167;41168;41169;58226;41170;41171;41172;44653;41173;41174;41175;41176;41177;41178;41179;41180;41181;41182;41183;41184;41185;41186;41187;41188;41189;41190;41191;41192;41193;41194;41195;41196;41197;41198;41199;41200;41201;41202;41203;41204;41205;41206;41207;41208;41209;41210;41211;41212;41213;41214;41215;41216;41217;41218;41219;41220;41221;41222;41223;41224;41225;41227;41226;41228;41229;41230;41231;41232;41233;41234;41235;41236;41237;41238;41239;41240;41241;41242;41244;41243;41245;41246;41247;41248;41249;41250;41251;41252;41253;41254;58227;41255;41256;41257;41258;41259;41260;41261;41262;41264;41263;41266;41265;41267;41269;41268;41270;41271;41272;41273;41274;41275;41276;41277;41278;41280;41281;41279;41282;41283;41284;41285;41286;41287;41288;41290;41289;41291;41292;41293;41294;41295;41296;41297;41298;41299;41300;41301;41302;41303;41304;41306;41305;41307;41308;41309;41310;41311;41312;41313;41314;41316;41315;41317;41318;41320;41319;41322;41321;41324;41323;41621;41325;41326;41327;41964;41641;42227;41954;42299;42048;42243;42200;42947;42863;42920;42812;42836;42948;44929;43147;43364;43598;43379;43599;43854;44031;44050;44304;44591;44654;45452;44998;44958;47107;45070;45453;46205;45125;46247;46335;46216;58228;45401;47688;46169;46217;46668;47018;46685;47795;47590;46863;47568;48752;47617;49255;49101;48429;48900;48901;49757;49758;49759;49191;49760;49657;49823;51338;50854;50523;50855;50982;51111;51660;51953;58229;52629;52702;53250;52710;52711;53823;53251;53312;53636;53354;53401;53355;53637;53585;53618;53883;53868;54993;55617;55440;56033;55768;55895;55918;55826;56002;55971;41328;41329;41330;41331;41332;41333;41334;41335;41337;41336;41338;41339;41340;41341;41342;41343;41345;41344;41347;41346;41348;41349;39877;39876;39879;39878;39880;39881;39883;39882;39885;39884;39887;39886;39889;39888;39890;39891;40403;40641;41033;42388;43395;44358;44899;39892;47689;39893;39894;39896;39895;41009;39897;45375;44359;39898;40841;40881;45071;39899;47755;39900;39901;39902;39903;40642;44360;39904;39906;39905;39907;39908;44124;42244;45598;44975;47690;39909;39910;39911;46006;42245;42389;39912;39913;39915;39914;39916;42173;44678;39917;39918;44361;39919;39921;39920;42949;40442;44305;39922;39923;39924;39925;40882;47569;46185;43025;39926;39927;39928;42228;45339;39929;47570;39930;39931;39932;39933;39934;39935;39936;45619;47796;39937;39938;42837;45349;39939;39940;45095;39941;39942;39944;39943;42471;43600;45096;39945;40643;41034;42314;39946;39947;39948;39949;39950;40842;39951;39952;42102;39953;39954;39955;39956;39957;46248;39958;42390;43148;44032;40572;45531;43050;39959;40336;40815;44976;39960;45522;39961;39962;40488;43855;44636;46879;39963;39964;44606;39965;46206;39966;39967;39968;45532;47815;39969;39970;39971;46007;44900;45383;39972;39973;39974;40903;39975;39976;39977;39978;39979;39980;44306;39981;39982;39983;39984;39985;44607;43380;39986;40644;39987;39988;39989;39990;39991;39992;39993;46186;39994;39995;39996;39997;39998;39999;40524;42457;40000;40816;41622;42921;46187;40001;40002;40003;40525;42851;45454;45604;40004;45533;40005;42813;43051;40006;40007;40008;40009;40010;40011;40012;40783;45010;44621;40013;40014;40016;40015;40017;44086;45491;46727;40018;47602;42864;40019;40020;47120;40021;40022;40023;42229;44679;46249;45492;40645;40024;41035;43629;40025;46228;40026;40784;46218;40027;46229;40028;42315;44999;42201;40029;40030;40032;40031;40034;40033;40035;42852;40036;40037;40038;40039;40040;46353;43616;40041;40042;45097;46339;42791;40043;40044;40337;40045;40046;44362;40047;45455;40048;40049;40646;47019;40499;40050;40051;47591;40052;40053;40054;40055;41002;40056;40057;40058;40573;40059;40060;40061;42972;44409;40062;40063;46008;40064;40545;46749;40065;40066;40067;40068;40070;40069;46230;44608;42416;47706;40071;40072;40074;40073;40076;40075;44087;45523;41036;42973;40077;46669;40443;40078;40079;40080;40081;40082;40083;43869;41010;40084;47819;44125;40085;40086;40087;41037;40088;40089;40090;40092;40091;40093;40094;40095;40859;42458;42922;47725;40096;40097;47726;40098;40099;40100;44609;40101;40102;40103;44610;40104;40105;40106;43082;40107;40108;42230;44044;40109;44990;40110;40111;47820;40112;40113;41938;44051;47727;40114;40116;40115;40117;43345;40118;42859;40119;44930;40120;40121;40123;40122;44977;40124;40125;40126;40127;40128;40129;40130;40132;40131;40133;42202;41003;46686;40134;45126;40135;40136;40137;40138;41038;40139;42459;40588;40140;45011;40141;46207;40142;46340;40143;40144;44112;45456;45457;40145;40146;40147;42246;45350;45458;45481;40148;40149;44363;47773;40647;40150;40151;40152;40154;40153;42068;40843;42950;45072;40785;40844;40155;40786;40157;40156;40159;40158;40787;42417;40160;40161;40162;40163;40164;40165;40166;40167;40168;40169;40170;40171;40172;40173;40174;40404;40648;41039;42391;43396;44364;44901;47691;47906;49279;50460;45524;53682;40176;40175;41011;45376;49944;50366;50461;40177;53683;40178;44365;40845;40179;47756;45073;40883;50012;40181;40180;40649;44366;40183;40182;42247;40184;44126;45599;44978;47692;49083;53651;49824;40185;42248;46009;42392;40186;40187;42174;44680;46354;53652;49752;40188;40189;42175;49212;40190;40191;40192;44367;40193;40444;42951;44307;40194;40195;47852;40196;40884;47571;49753;40197;40198;42231;45340;47572;49667;40199;40200;40201;45620;47797;50415;53653;40202;40203;40204;42838;45351;40205;40206;45098;40207;42472;43601;45099;53654;40208;40650;40788;41040;42316;40209;40210;40211;40212;40846;42103;40213;53655;53656;40214;47816;53657;42393;43149;44033;50316;40574;45534;43052;40338;40817;44979;45525;40215;40216;40489;43381;44637;48320;46880;49641;53658;40217;48753;49993;44611;46208;40218;53659;40219;40220;48233;45535;40221;40222;50367;46010;44902;40223;44612;45384;40224;40904;53660;53661;48259;40225;40226;40227;40228;40229;40230;49754;44308;40231;40651;43382;40232;40233;40234;46188;49213;40235;40237;40236;42460;40526;40238;40239;40240;40818;42923;41623;48902;46189;53662;53663;40241;40242;40527;42853;45459;45605;50298;40243;40245;40244;45536;53664;40246;53665;42814;43053;53666;53667;53668;40247;40249;40248;40360;40250;42334;40789;42952;44034;44964;47774;48280;49668;53669;53670;40251;53671;40252;40819;40253;44088;46728;45493;53672;47603;48234;40254;42865;40255;47121;49975;40256;42232;46250;44681;45494;40652;49669;50368;48754;41041;43630;40257;46231;40790;46219;46232;50010;42317;45000;42203;53673;40258;40259;40260;40262;40261;42854;45460;53674;53675;53676;40263;40264;40265;40266;46355;49192;43617;53677;40267;46341;45100;42792;53678;40268;40339;42144;40269;44368;53679;45461;40270;40653;47020;40500;40272;40271;49264;47592;40273;40274;40275;41004;40575;53680;42974;44410;49256;40546;46750;50011;40276;40277;44613;46233;47707;53681;42418;40278;40279;40280;45526;49945;53684;50462;44089;42975;41042;40281;40445;46670;40282;40283;40284;40285;43870;41012;40286;53685;40287;44127;41043;40288;40289;40290;40860;42461;42924;47728;48430;50013;53686;40291;40292;47729;40293;40294;44614;49257;44615;40295;40296;48372;43083;40905;50369;40297;44991;40298;49265;40299;41939;44052;47730;50370;40300;46781;40301;43346;40302;42860;40303;53687;44931;40304;40305;40306;44980;42204;42205;40307;40308;40309;42206;46687;49280;50371;50463;53688;41005;40310;45127;50014;48235;40311;40312;40313;41044;40314;42462;40589;40315;45012;46209;46342;49214;40316;45462;49258;44113;45463;40317;44682;42249;45352;45482;45464;40318;44369;47775;40654;40319;40320;40321;40322;40323;40847;42069;42953;53689;45074;40791;46729;40792;40324;40793;42419;53690;40325;40326;40327;42925;43383;44370;44903;45527;47693;47907;49281;50464;53770;53769;53771;53772;45034;47678;45495;47868;49946;50465;50372;53773;53774;53775;53782;44371;45075;47757;50018;53691;53784;44128;45600;47694;49084;49825;44981;53692;46011;53693;44683;46356;49210;53694;53696;53695;47134;53697;42954;44309;47853;53698;53699;47573;49755;45341;53700;49670;47798;45621;50416;53701;53702;42839;45353;45101;43107;45102;53703;53704;53705;53706;53707;53708;44053;49302;46178;50417;53709;53710;53711;53712;53713;53714;53715;47817;53716;43150;50317;44035;44667;43054;53717;44982;43384;44638;48321;46881;49642;53718;53719;53720;53721;48755;49994;53723;53722;44616;46210;53724;53725;48236;45537;53726;53727;44904;50373;44905;44622;44617;44618;53728;53729;48260;43813;44310;49756;53730;46190;43385;49215;42926;46191;48903;53731;53732;53733;53734;53735;42855;45465;45606;50299;42463;53736;53737;45538;43055;53738;53884;53739;42394;43631;44411;45128;49671;50015;50409;53741;53740;42395;44090;44668;45354;45607;46730;53742;53743;53744;53745;47604;48237;47122;49976;53746;46251;44684;45496;50374;49672;48756;43632;46234;53747;46220;46235;50016;45001;53748;42856;45466;53749;53750;53751;53752;53753;48322;53754;46357;49193;43618;43856;53755;45103;46343;53885;53756;53757;44403;53758;53759;44372;45467;47021;53760;53761;49266;53762;53763;47593;53886;53764;53765;53766;53838;44412;53767;53768;46751;50017;49947;53776;50466;53778;53777;53779;44091;42976;53780;53781;46671;43871;53783;53785;44129;42464;42927;47731;50019;48431;53787;53786;53788;47732;44619;48373;53887;53789;53790;53791;44992;44623;53792;53875;44054;47733;50375;53793;46782;53888;53794;47758;53795;43347;53796;44932;53824;49267;44983;45035;43619;44906;45497;47854;49282;50376;50467;53797;53798;53799;45129;53800;48238;50020;48281;45013;53801;49168;46012;53802;53803;46211;53804;46344;49216;45468;49259;53805;53806;53807;45469;44114;44685;44322;45355;45470;53889;44373;53825;47776;47777;42955;45076;53808;53809;53810;49139;75454;75486;75548;75646;75647;75648;75649;75650;75651;75652;75653;75654;75655;75656;75657;75658;75659;75661;75660;75663;75662;75664;75665;75667;75666;75682;75683;75668;75684;75688;75416;75687;75417;75418;75419;75420;75421;75422;75423;75424;75425;75426;75427;75428;75429;75430;75431;75432;75434;75433;75435;75436;75437;75438;75439;75440;75441;75442;75443;75444;75445;75446;75447;75449;75448;75450;75451;75452;75453;75455;75456;75457;75458;75459;75460;75461;75462;75463;75464;75465;75466;75467;75468;75469;75470;75471;75472;75473;75474;75475;75476;75477;75478;75479;75480;75481;75482;75483;75485;75484;75487;75488;75489;75490;75491;75492;75493;75494;75495;75496;75498;75499;75500;75501;75497;75502;75503;75504;75505;75506;75507;75508;75509;75510;75511;75512;75513;75514;75515;75516;75517;75518;75519;75520;75521;75522;75523;75524;75525;75526;75527;75528;75529;75530;75531;75532;75533;75534;75535;75536;75537;75538;75540;75541;75542;75539;75544;75545;75543;75546;75547;75549;75550;75551;75552;75553;75554;75555;75556;75557;75558;75559;75560;75561;75562;75563;75564;75565;75566;75567;75568;75570;75569;75581;75609;75610;75571;75572;75573;75574;75575;75576;75577;75578;75579;75580;75582;75583;75584;75585;75586;75587;75588;75589;75590;75591;75592;75593;75594;75595;75596;75597;75598;75599;75600;75601;75602;75603;75604;75605;75606;75607;75608;75611;75612;75614;75613;75615;75616;75617;75618;75619;75620;75621;75622;75623;75624;75625;75626;75627;75628;75629;75630;75631;75632;75633;75635;75634;75636;75637;75639;75638;75640;75641;75642;75643;75644;75645;75669;75670;75671;75672;75673;75674;75675;75676;75678;75677;75679;75680;75681;75686;75685;75689;75690;75691;75692;75693;75694;75695;75697;75696;75698;75699;75700;75701;75703;75702;75704;75705;75707;75706;75708;75709;75711;75710;75713;75712;75714;75715;75716;75717;75718;75719;75720;75721;75722;75723;75724;75725;75726;75727;75728;75729;75730;75731;75732;75733;75734;75735;75736;75737;75738;75739;75740;75741;75742;75743;75744;75745;75746;75747;75748;75749;75750;75751;75752;75753;75754;75755;75756;75757;75758;75759;75760;75761;75763;75762;75765;75764;75766;75767;75768;75769;75770;75771;75772;75773;75775;75774;75776;75777;75778;75779;75780;75781;75828;75944;75945;75946;75948;75947;75949;75950;75952;75951;75953;75964;75963;75965;75966;75967;75968;75969;75970;75976;75977;75782;75783;75784;75785;75786;75787;75788;75790;75789;75792;75791;75793;75794;75795;75796;75797;75798;75799;75800;75801;75802;75803;75804;75805;75806;75807;75808;75809;75810;75811;75812;75813;75814;75815;75816;75817;75818;75819;75820;75821;75822;75823;75824;75825;75826;75827;75829;75830;75831;75832;75834;75835;75833;75836;75837;75838;75839;75840;75842;75841;75844;75843;75845;75846;75847;75848;75849;75850;75851;75852;75853;75854;75855;75857;75856;75858;75859;75860;75861;75862;75863;75865;75864;75866;75867;75868;75869;75871;75872;75873;75870;75875;75876;75874;75877;75878;75879;75880;75882;75881;75883;75884;75885;75886;75888;75887;75889;75890;75891;75917;75918;75892;75893;75894;75895;75896;75897;75898;75899;75900;75901;75902;75903;75904;75905;75906;75907;75908;75909;75910;75911;75912;75913;75914;75915;75916;75919;75920;75921;75922;75924;75923;75926;75925;75928;75927;75929;75930;75931;75932;75933;75934;75935;75937;75936;75938;75939;75940;75941;75943;75942;75955;75954;75956;75957;75958;75959;75960;75961;75962;75971;75972;75973;75974;75975;75978;75979;75980;75981;75982;75983;75984;75985;75986;75987;75988;75989;75990;75991;75992;75994;75993;75995;75996;75997;75998;75999;76000;76001;76002;76003;76004;76005;76006;76007;76009;76008;76010;76011;76013;76012;76014;76015;76016;76017;76018;76020;76019;76021;76022;76023;76024;76025;76026;76027;76028;76029;76030;76031;76032;76033;76035;76034;76036;76037;76038;76040;76039;76041;76042;76043;76044;76045;76046;76047;76048;76049;76050;76051;76052;55161;76188;41350;41351;64158;66343;72977;80021;67105;68947;41352;41353;41354;41355;41357;41356;41358;41955;42876;42363;43386;44374;44907;50872;52686;50873;50874;50875;50876;51591;52650;53252;53647;55483;56003;57084;57083;57970;57971;58112;58524;64208;69343;70189;69344;81697;74006;82739;64209;41359;50877;51592;57085;57086;44375;57972;41360;51593;41361;51594;45064;50878;51595;50879;73783;50880;53890;44376;41362;41363;41364;42250;44130;50881;50882;44984;50883;50884;51086;57087;52565;57586;58774;64098;66505;64905;71763;41365;41366;41367;42251;44377;50885;50886;50887;50888;51087;52566;42252;50889;57088;57089;57090;65023;65907;69474;77048;82657;58030;71614;41368;41369;42176;44686;50890;50973;53282;55165;58740;64099;64100;64102;64101;71964;69294;58615;64103;64104;64105;64106;64107;69295;69296;71965;76367;76909;77742;79307;81507;64108;81665;77099;69787;58263;64109;77196;69345;64110;44378;77850;77958;41370;42956;44311;55547;57091;64111;64112;64113;64114;64115;69259;72241;80389;81076;50891;64116;64117;41371;50892;53528;64118;83330;50893;76472;41372;51596;42233;45130;50894;50895;53586;57092;58764;58941;64862;70018;70019;71833;73410;76523;58942;41373;41374;41375;50897;50896;50898;51112;55972;52765;57093;64119;65794;66953;73129;79760;81389;83461;53484;41376;42829;55711;64120;79738;81970;81120;50487;76198;55586;70134;50899;83133;80165;45104;42473;41377;45105;50983;57094;70842;77217;82019;41378;41379;67221;66354;68948;71786;72243;72242;74115;81121;58140;41380;42300;57095;55618;57096;41381;52066;41382;53587;55587;64121;76247;77755;50900;53356;57097;64123;64122;64124;66020;41383;53357;53501;64125;41384;53402;64126;55827;51597;81666;57098;83285;41965;51598;41385;51599;53283;41386;45036;79618;42866;43151;44036;52683;70780;64127;74087;41387;79414;42989;41388;41389;41390;44965;57099;57100;57465;64128;64129;64130;65024;80022;74173;57838;58973;64131;64132;64134;64133;64135;64136;65175;65596;65865;66666;66667;67195;70933;70934;70935;72554;73147;68949;76989;76990;77599;80023;81122;81123;82068;71559;71560;79761;41391;41392;43387;44639;50902;50901;50903;50904;51983;52959;53912;55019;55162;53485;55828;57101;57102;57996;58286;58560;64138;64137;64140;64141;64139;64142;64143;64613;64636;64965;65566;65939;66492;66920;68950;69969;70936;71492;72085;72700;72455;73075;73591;73850;74088;76105;76500;77244;77672;78885;79308;79686;80565;80054;80995;81077;81877;81245;83486;55829;64925;73510;82819;41393;50905;50906;53313;55712;57103;58720;64144;81752;44389;50907;83286;64145;51600;41394;50908;41395;41396;64146;50909;52630;50910;54985;57104;64147;64148;72422;64149;41397;50911;51601;57105;55441;50912;57106;57434;64150;71307;71308;74351;76604;77229;77673;81039;81295;81667;57839;44908;64151;41398;41399;51198;57696;64152;66287;66954;72797;74321;82639;66955;50913;68951;68952;70631;77433;76501;41400;41401;64153;70758;51602;51661;44312;55981;57107;72277;64154;68874;64155;64156;66253;66741;70289;68953;73117;41402;57613;64157;64906;64159;64160;50914;41403;51603;70872;73609;65795;57108;81311;41404;41956;42928;43857;51604;51605;50915;53891;52631;56004;58113;64162;64161;65545;64163;66193;66854;69090;41405;41406;42396;51606;43872;51667;50916;52751;55619;64164;58164;64165;64166;66194;65597;66616;69069;72681;70960;74284;77319;81435;79634;58141;64168;64167;64169;64863;64780;65245;66538;69029;71171;41407;41408;42857;50917;50918;50919;52067;55137;64171;65246;66031;66855;69070;64170;71020;72555;74254;77273;79635;81436;70873;69071;72423;74007;76998;79208;81419;83287;64172;53486;41409;52684;50921;50920;76473;51199;43056;81909;51088;43858;53284;54840;70632;77674;76754;41410;41411;41412;51607;41413;41414;42343;44037;42990;52685;44966;51608;50922;51609;50923;51610;50924;51611;51612;50925;51613;52597;51614;53570;53571;57109;55686;57110;57111;57297;57853;57854;64173;58845;64174;64176;64175;64177;64178;64179;64180;64500;64888;66539;66742;66344;66912;67196;68954;70039;71033;70040;71034;72163;72324;72478;72325;73554;74033;74462;76557;80249;78650;80250;82020;51615;78651;41415;44092;50926;50927;50974;51934;57430;65717;68875;71425;77145;77230;79232;81312;41416;42867;54640;55620;57725;64181;68979;73939;76138;78105;83462;83515;81480;81481;41417;71035;69054;58767;58943;50928;57112;57596;64192;65568;65567;41418;72615;42234;55563;55564;82021;57113;53358;65682;65829;50929;73268;78253;64182;41419;50930;50931;77959;74506;77472;69374;55431;50932;55432;55484;81161;80166;41420;50933;51616;43633;76558;50934;51617;53314;81176;81878;69511;70328;74373;77434;77435;82428;41421;50935;50936;57114;57115;64531;64183;42301;45002;41422;51618;41423;41424;42830;50937;50938;50939;51619;51620;52988;57116;55138;57569;58031;58678;58677;64185;64184;64186;65718;74352;73592;77299;78886;81124;81996;64187;57117;64188;69457;71834;71835;41426;41425;50941;50940;58165;55896;64189;64190;51621;74210;50942;43620;51622;65784;76139;41427;64191;77179;51134;50943;54641;51623;42793;77662;58479;79687;77663;57118;64193;58721;57119;41428;41429;52735;55745;81078;64194;73511;55774;77600;64195;42145;64196;82640;73130;76755;83543;50944;41430;52712;58775;53588;64197;64198;64199;66463;70794;41431;41432;64200;50945;55696;51624;64781;70796;70797;72229;74507;72769;64201;50946;55728;58195;64202;41433;56018;79332;41435;41434;41436;50947;53253;55697;57531;57682;64203;64204;64205;64206;66300;72198;79309;58588;64207;66288;70843;53839;54827;53228;50948;51625;74021;53619;80251;56019;50949;51626;42420;70937;70938;41437;41957;52687;42364;43388;44379;44909;50950;52688;50951;50952;52651;51627;53229;53648;58114;57886;41438;42957;73297;83049;41439;55565;64926;72199;73707;74116;68980;74117;78856;57120;50953;55548;66552;41440;57121;76248;71172;71561;57122;41441;43873;76910;80217;81313;57123;41442;64210;83516;51628;50954;64211;69375;76140;76141;41443;44131;57124;71836;72856;76106;41444;41445;41446;67197;57125;71136;72244;71137;79822;55713;55714;57126;73979;41447;44592;52960;51844;51629;50955;57127;41448;50956;51630;53892;65247;55467;78667;41449;43084;54920;64212;50957;51631;57128;64213;80252;64214;53854;53529;41642;41450;44055;52689;53230;50958;64215;64216;65683;77524;82470;77723;50959;57129;58203;64217;64218;69233;65796;72200;73468;76424;54828;57130;79739;72536;70724;79619;72873;73751;77180;74145;78254;64219;73784;64220;64221;73512;43348;41451;50960;53254;57131;57132;64222;70020;64223;64224;57133;54642;44933;76372;53826;78464;41452;54921;65248;69168;71226;74118;81040;57840;57841;76212;81508;80024;41453;64225;45131;57726;64864;70021;57134;57727;64889;73708;77743;41454;41455;41456;41457;51632;64226;69030;69191;69192;71392;73555;76053;66195;45014;64227;66464;73327;51633;80390;53446;57597;57555;50961;65940;52472;64228;64229;50962;80253;82658;66021;69414;50963;55503;50964;53638;57855;64430;69458;80825;77197;81542;81543;58317;53231;55020;70781;56020;53827;80996;81641;51634;50965;55453;52690;41458;41459;78887;41460;43085;51635;53315;45077;54994;57136;57137;58115;64230;58944;64469;64231;64796;64795;66254;69091;69893;69894;71138;72086;73178;73397;79620;77960;81642;82523;76373;78868;41461;80254;64232;65797;50966;50967;54934;55973;58395;58396;64234;64233;64235;64236;64237;64238;69297;66985;71393;70969;71562;73015;78652;82990;41462;73287;53316;51636;57138;66801;70961;71937;80547;81643;67106;69112;72456;74463;82641;67107;67108;69113;67109;69114;67110;67111;69115;69116;67112;67113;69117;67114;64239;64240;57139;41463;51637;64241;52162;41464;56034;64242;29911;27101;27102;27603;27103;33378;34317;39497;29347;27104;27105;29348;29349;27106;27107;29350;27108;29351;27109;29352;27110;29353;27604;33379;33380;51682;39498;66345;59602;27111;67255;35948;27112;29354;27113;29355;27114;27115;29356;27116;29357;27117;29358;27118;29359;27119;27120;27121;29360;29361;27122;27123;29362;27528;29363;27529;28369;31087;31088;31722;31715;32113;32114;33498;33756;33499;33757;34318;34319;34941;34957;41465;35303;41466;41467;36199;41983;41468;41984;44934;42365;49887;42868;49888;43397;49889;44380;49890;44910;49891;45498;49892;49893;49894;51411;50488;52736;57147;53232;57148;53649;57149;55485;56005;57150;56608;57151;56609;57152;57153;57858;58116;59520;27124;27126;27125;27127;27128;27129;27130;27131;29694;27132;29912;31620;33119;31602;34198;33120;34428;34345;34958;35325;41986;41985;27510;30121;27133;41469;58032;41470;35949;41471;35950;41472;41987;27134;29364;27135;29365;27136;27137;27138;27139;29366;27140;29367;29240;29368;29877;32023;34843;34844;41988;51683;51684;51685;51687;51686;27142;27141;29369;38910;51688;51689;13753;13754;13755;13756;13757;13758;13759;13760;13761;13762;13763;13764;13765;13766;13767;13768;13769;13770;13771;13772;13773;13774;13775;13776;13777;13778;13779;13780;13781;13782;13783;13784;13785;13786;13787;13788;13789;13790;13791;13793;13792;13794;13795;13797;13796;13798;13799;13800;13801;13802;13803;13804;13805;13806;13807;13808;13809;13810;13811;13812;13813;13814;13815;13816;13817;13818;13819;13820;13821;13822;13823;13824;13825;13826;13827;13828;13829;13830;13831;13832;13833;13834;13835;13836;13837;14206;13838;14231;14264;14276;14322;14600;14658;14667;14730;14731;14769;14775;15423;15528;15552;15569;15726;15755;15923;16303;16304;16305;16306;16307;16362;16372;16454;17198;17217;17237;17238;17242;17271;17300;17325;20082;17606;17617;17618;17671;17982;18014;18057;18082;18096;18112;18113;18154;18462;18463;19240;19241;19242;19243;19244;19245;19247;19246;19248;19249;19250;19251;19333;19382;19924;19925;19926;19927;19928;19929;19930;19931;19932;19933;19934;19935;19936;19937;19996;20064;20083;20087;20209;20239;20240;20282;20334;20335;20369;20370;20483;20758;20820;20821;20879;20901;20923;21013;20967;21014;21093;21136;21137;21138;21150;21163;21233;21290;21289;21368;21369;21622;21370;21623;21624;21723;24412;24413;24414;24415;24416;24417;24418;24419;24420;24421;24422;24423;24424;24425;24426;24427;24428;24429;24430;24431;24433;24432;24434;24435;24436;24437;24439;24438;24441;24440;24442;24443;24444;24445;24446;24447;24448;24449;24450;24451;24452;24453;24454;24455;24456;24458;24457;24459;24460;24461;24462;24463;24464;24465;24466;24411;25405;25406;25407;25408;25409;25410;25411;25412;25413;25414;25415;25416;25417;25418;25419;26169;26170;26171;26172;26173;26174;26175;26176;26177;26178;26179;26180;26181;26182;26183;26184;30141;83560;83561;83563;83562;83565;83564;83567;83566;83569;83568;83570;83571;83573;83572;83575;83574;83576;83577;83578;83579;83581;83580;83582;83583;83584;83585;83586;83587;83588;83589;83590;83591;83592;83593;83594;83595;83596;83597;83598;83599;83600;83601;83602;83604;83603;83605;83606;83607;83608;83609;83610;83612;83613;83611;83614;83615;83617;83616;83619;83618;83620;83622;83621;83623;83624;83625;83626;83627;83628;83629;83630;83631;83632;83634;83633;83635;83636;83637;83638;83639;83640;83845;83641;83642;83644;83643;83846;83847;83848;83645;119958;83849;83646;83647;83648;83850;119959;83649;83650;83652;83651;83653;83654;83655;83656;83657;83658;83851;83659;83660;83661;83662;83663;83664;83666;83665;83668;83667;83669;83670;83671;83672;83673;83674;83675;83676;83677;83678;83679;83680;83681;83682;83683;119960;83685;83684;83686;83687;83688;119961;83689;83690;83691;119962;83692;83693;83694;83695;83697;83696;83698;83700;83699;83701;83702;83703;83704;83705;119963;83706;83707;83709;83708;83710;83711;83712;83713;83714;83715;83717;83716;83718;83719;83720;83721;83722;83724;83723;83725;83726;119964;83852;83727;83728;83755;83756;83757;83853;83854;83855;83856;83857;83858;83859;83860;83868;83869;83870;83903;83945;83946;83947;83948;83970;83971;83988;84016;84079;84080;84081;84082;84083;84084;84115;84116;84145;84146;84147;119965;119966;84190;84191;84192;84206;84207;84260;84227;84285;84261;84337;84286;84423;84441;84338;84361;84396;84395;84397;84424;84425;84426;84427;84442;84443;84468;84469;119967;84544;84546;84545;84723;84547;84558;84559;84560;84548;84561;84562;84633;84632;84634;84663;84724;84725;84662;84874;84875;119968;84876;84896;84897;84898;84913;84899;84914;84979;85074;85073;85151;85121;85152;85153;85179;85180;85213;85215;85214;85239;85250;85374;85375;119969;85376;85377;85378;85398;85399;85400;85379;85401;85504;85505;85532;85575;85576;85577;85597;85598;85624;119970;85625;85647;85681;85719;85720;85721;85722;85723;85761;85762;85763;85791;85764;85792;85793;85794;85795;85841;85796;85868;85870;85871;85901;85902;85903;85869;85904;85905;85906;85928;85929;85941;85942;86057;86121;86140;86141;86142;86143;119971;86184;86203;86217;86288;86289;86290;86307;86308;86309;86339;86340;86341;86342;86343;86344;86345;86346;86347;86397;86378;86398;86399;86440;86442;86441;86464;86490;86535;86536;86538;86537;86539;86540;86616;86627;86628;86648;86695;86649;86696;86703;86705;86704;86706;86707;86709;86708;86752;86753;86755;86754;86756;86757;86803;86808;86865;86866;86867;86868;86869;86870;86883;86895;87642;86941;86940;86943;86942;87007;87720;87008;87009;87643;87051;87010;87064;87063;87721;87104;87105;87106;87122;87180;87181;87196;87404;87197;87198;87644;87199;87201;87645;87202;87200;87214;119972;87215;87646;87276;87278;87279;87277;87280;87317;87318;87319;87338;87461;87495;87405;87496;87524;87525;87526;87527;87588;87528;87589;87590;87591;87647;87649;87648;87650;87651;87652;87653;87654;87655;87666;87667;87668;87669;87670;87722;87723;87724;87731;87857;87858;87859;87860;87861;87862;87863;87864;87866;87865;87867;87887;87910;87909;87911;87912;87913;87961;87962;87963;87964;87914;87988;88004;88005;88007;88006;88008;88009;88039;88038;88140;88081;88082;88141;88142;88143;88144;88176;88177;88178;88408;88453;88485;88454;88507;88486;88508;119973;88559;88515;88560;88575;88619;88620;88622;88621;88677;88623;88691;88692;88707;119974;88708;88709;88802;88710;88803;88832;88831;88834;88833;88835;88891;88892;88893;88947;88948;88949;89021;89022;89076;89654;89077;89656;89655;89722;89657;89658;89723;89775;89730;89731;89918;89919;89920;89921;89922;89923;89929;89960;89961;89989;89990;89991;89992;89993;89994;90063;90064;90065;90092;90093;90185;90187;90186;90262;90303;90263;90264;90304;90305;90346;90347;90348;90394;90395;90397;90396;90398;90399;90420;90506;90531;90505;90533;90532;90534;90535;90536;90585;90586;90587;90595;90596;90597;90623;90755;90754;90756;90757;90758;90759;119975;90820;90821;90883;90885;90884;90886;90913;90914;90991;90992;90993;90994;90995;90996;91043;91119;119976;91120;91121;91158;91159;91160;91161;91180;119977;91247;91248;91217;91249;91250;91251;91252;91253;91254;91281;91282;91297;91298;91308;91309;91318;91319;91649;91650;91651;91652;119978;91653;91654;91556;91655;91656;91657;91658;91659;91660;91661;91662;91663;91664;91666;91665;91667;91668;93151;91669;93152;93153;93154;93155;93157;93156;93159;93158;93160;93162;93161;93163;93164;93165;93166;93167;93168;93169;93171;93170;93173;93172;93175;93174;93176;93177;93178;93179;93180;93181;93183;93182;93184;93185;93187;93186;93188;93189;93190;93270;93271;93273;93272;93274;93275;93277;93276;93278;93279;93280;93282;93281;93283;93284;93285;93286;93287;93288;93290;93289;93291;93292;93293;93294;93295;93296;93297;93298;93299;93300;93301;93303;93302;93305;93304;93306;93307;93308;93309;93310;93311;93312;93313;93314;93367;93341;93342;93368;93369;93371;93370;93372;93373;93438;93437;93455;93439;93456;93457;93458;93459;93505;93506;93507;93508;93589;93558;93590;93591;93644;93615;93645;93646;93712;93647;93713;93714;93733;93734;93735;93765;93766;93767;93768;93769;93770;93772;93771;93806;119979;93807;93808;119980;93860;93861;93862;93893;93863;93894;119981;93895;93909;119982;93910;93935;93936;93937;119983;94006;94007;94036;94037;94039;94038;94040;94041;94042;94043;94067;94268;94267;94270;94269;94271;94272;94273;94274;94275;94277;94276;94278;94279;94280;94282;94281;94283;94284;94285;94319;94286;94320;94321;94322;94324;94323;94325;94349;94326;94433;94350;94434;94435;94455;119984;94504;94505;94506;94572;94507;94607;94608;94609;94668;119985;94728;94729;94739;94757;94921;94758;94938;94939;94969;95281;95282;95283;95312;95294;95313;95314;95315;119986;95316;95317;95367;95369;95368;95384;95383;95397;95396;95398;119987;95422;95423;95424;95452;95453;95534;95535;95536;95537;95564;119988;95565;95606;95607;95608;95623;95624;95625;95626;95627;95628;95650;95651;95652;95660;95710;95709;95711;95712;95761;95797;95798;95799;95800;95801;95802;95804;95803;95805;95806;95821;95822;96031;95915;96032;96033;96034;95986;95987;95988;95989;95990;95991;96075;96076;96077;96078;96079;96081;96080;96082;96083;96087;96088;96089;96134;96135;96136;96138;96137;96139;96140;96141;96147;96148;96149;96150;96255;96256;96257;96258;96259;96260;96261;96262;96263;96264;96265;96266;119989;96303;96334;96335;119990;96387;96404;96405;96429;96430;96432;96431;96434;96433;96435;119991;96527;96482;96528;96529;96530;96566;96604;96603;96653;96654;96655;96694;96695;96696;96697;96698;96699;96700;96701;96702;96715;96716;96717;96718;96761;96762;96793;96794;96795;96827;96868;96869;96870;96901;96902;96923;96903;96924;96925;96926;96950;96976;96977;97014;97015;97040;97041;97042;97043;97044;97045;97046;97063;97064;97065;97080;97081;119992;97082;97096;97097;97129;97130;97186;97187;97188;97202;97189;97203;97204;97206;97205;97207;97296;97297;97299;97298;97300;97317;97380;119993;97381;97382;119994;97431;97433;97432;97467;97466;97494;97495;97518;97519;97520;97549;97550;97570;97571;97652;97653;97572;97598;97599;97654;97656;97655;97695;97657;97771;97696;97772;97773;97774;97775;97776;97777;97824;97825;97826;97827;97829;97828;97830;119995;97831;97832;97847;97848;97850;97849;97851;97912;97913;97914;97915;97916;99083;99084;99085;119996;99086;99087;99088;99089;99090;99091;99092;99114;99115;99116;99118;99117;99119;99120;119997;99165;99180;99181;99230;99231;99232;99242;99243;99244;99245;99261;99262;99263;99302;99355;99356;99357;99358;99393;99394;99395;99397;99396;99434;99460;99462;99461;99463;99464;99465;99466;99467;99468;99469;99507;99508;99578;99579;99580;99623;99624;99625;99653;99654;99758;99705;99759;99760;99761;99959;99960;99961;99962;99963;99964;99978;99979;99980;99991;100022;99992;100024;100023;100050;100121;100122;100149;100150;100152;100151;100206;100207;100208;100209;100210;100211;100212;100213;100215;100214;100241;100242;100244;100243;100245;100246;100264;100289;100291;100290;100292;100351;100319;100352;100320;100353;100354;100374;100375;100376;100377;100378;119998;100404;100405;100406;100407;100408;100410;100409;100459;100538;100539;100540;100542;100541;100543;100544;100569;100588;100589;100614;100754;100661;100780;100803;100834;100864;100865;100907;100866;100867;100909;100908;100910;100911;100912;100913;100914;100915;100916;100917;100918;100951;100953;100952;100954;100985;100986;119999;101042;101043;101056;101055;101057;101058;101059;101060;101061;101080;101081;101082;101106;101107;101108;101109;101142;101143;120000;101144;101145;101147;101146;101201;101202;101203;101259;101204;101221;101222;101223;101225;101224;101226;101227;101228;101229;101230;101260;101289;101290;101291;101292;101293;101350;101351;101352;101353;101389;101390;101391;101392;101393;101394;101519;101520;101762;101763;101765;101764;101766;120001;101767;101768;101807;101808;101831;101832;101885;101886;101887;101888;101889;101890;101926;101891;101927;101940;101941;101942;101943;101944;101945;101946;101947;101948;102013;102066;102068;102067;102069;102070;102189;102188;102190;102191;102192;102193;102194;102218;102251;102219;102252;102253;102255;102254;102256;102257;102308;102307;102309;102310;102311;102312;102313;102314;102315;102316;102317;102318;102319;102320;102351;102352;102353;102354;102413;102414;102415;102474;102476;102475;102477;102478;102539;120002;102540;102541;102577;102542;102578;102579;102626;102627;102693;102694;102695;102728;102696;102729;102800;102802;102801;102837;102836;102839;102838;102840;102841;102854;102855;102856;120003;102910;102911;120004;102912;102913;102914;102952;102953;104649;102954;102955;120005;102973;102974;102989;102990;103111;103110;103176;103120;103178;103177;103179;103180;103181;103182;103183;103184;103185;103186;103210;103211;103212;103213;103214;103215;103216;103245;103246;120006;103247;103248;103294;103293;103295;103296;103297;103299;103298;103300;103301;120007;103315;103316;103317;103318;103355;103354;103369;103371;103370;103412;103413;103415;103414;103454;103455;103528;103503;103563;103564;103596;103597;103636;103637;103638;103639;103640;103689;103690;103742;103743;103767;103768;103769;103770;103771;103772;103807;103832;103833;103852;103853;103854;103917;103918;103919;103920;103961;104009;104010;104011;104012;104013;104014;104015;104017;104018;104019;104020;104021;104022;104023;104024;104025;104026;104027;104028;104029;104030;104094;104095;104096;104097;104098;104099;104117;104141;104142;104171;104172;104208;104209;104210;104252;104253;104650;104254;104542;104255;104270;104271;104374;104375;104376;104427;104428;104429;104430;104471;104472;104473;104474;104475;104476;104494;104495;104529;104530;104531;104532;104651;104016;104777;104778;104779;104780;104781;104782;104783;104805;104806;104869;104870;104871;104872;104873;104874;104875;104876;104877;104878;104879;104880;104952;104953;104954;104955;104956;104957;104958;104959;104960;104961;104962;104963;104964;104965;104776;104966;104967;104991;104968;104992;104993;105020;105033;105034;105035;105036;105072;105073;105094;105093;105095;105096;105097;120008;105098;120009;105148;105149;105150;105172;120010;105253;105271;105270;105272;105273;105274;105275;105276;105277;105278;105279;105280;105281;120011;105282;105283;105284;105285;105287;105288;105289;105290;105348;105349;105350;105351;105286;105352;105388;105353;105480;105408;105458;105409;105459;105460;105462;105461;105463;105481;105483;105482;120012;105506;105513;105538;105539;105540;105541;105574;105576;105575;105577;105578;105579;105580;105581;105582;105648;105647;105684;105685;105719;105720;106092;105721;105722;105744;105763;105764;105765;106041;106042;106043;106044;106045;106046;106047;106048;106049;106073;106093;106127;106094;106095;106128;106129;106130;106131;106132;106133;106185;106184;106187;106186;107251;106259;106260;106261;106262;106263;106292;106293;106294;106342;106343;106344;106345;120013;106346;106370;106435;106436;106437;106438;106439;106440;106441;106443;106442;106444;106445;106446;106447;106448;106449;106450;106451;106452;106453;106454;106455;106456;106470;106471;106472;106473;106474;106475;106476;106477;106479;106478;106480;106481;106527;106526;106528;120014;106529;106530;106531;106532;106555;120015;106576;106577;106578;106579;106580;106602;106603;106604;106605;106617;106618;106652;106653;106654;106673;106672;106674;106707;106708;106745;106746;106747;106748;106786;106787;106788;106789;106815;106834;106835;106836;106865;106866;106867;106896;106868;106897;106898;106900;106899;106901;106926;106941;106942;106943;106944;120016;106967;107002;107022;107054;107055;107085;107086;107115;107131;107116;107132;107139;107141;107140;107143;107142;107144;107213;107214;107252;107253;107254;107255;107288;120017;107289;107290;107291;107292;108279;108280;108509;108511;108510;108367;108512;108368;108369;108400;108401;108402;108449;108450;120018;108451;108452;108482;108528;108529;108530;108531;108532;108578;108533;108579;108580;108581;108646;108647;108648;108650;108649;108652;108651;108653;118346;108655;108654;108656;108684;108685;108686;108687;108705;108744;108745;108746;108747;108748;108749;108825;108824;108826;108827;108828;108829;108830;108831;108871;108872;108873;108874;108875;108876;108877;108945;108946;108947;109000;108948;109001;109011;109013;109012;109014;109015;109028;109083;120019;109084;109085;109161;109162;109198;109197;120020;109240;109241;109242;109243;109244;109245;109246;109247;109248;109249;109250;109251;109252;109253;109254;109255;109256;109257;109258;109259;109260;109261;109262;109264;109263;109265;109266;109267;109268;109269;109270;109271;109272;109273;109274;109275;109276;109278;109277;109309;109310;109341;109342;109355;109356;109357;109358;109359;109360;109547;109548;109549;109550;109572;109598;118251;109599;109645;109647;109646;118252;120021;109672;109673;109674;109675;109676;120022;109678;109677;109679;109721;109722;109756;109757;109758;109759;109760;109761;109762;109763;109764;109765;109766;109767;109768;109769;109770;109771;109772;109773;109774;109776;109775;109777;109778;109779;109780;109781;109782;109783;109784;109786;109785;109787;109788;109789;109790;109791;109792;109793;109794;109796;109795;109797;109859;120023;109860;109861;109862;109886;109887;109888;109889;109891;109890;118253;109913;109937;109938;109939;118254;110029;118255;110030;110031;110032;110034;110033;110036;110035;110037;110038;110039;110040;110041;110042;118256;110043;110089;110090;110091;110092;118257;110093;118258;110183;110123;110184;110185;110186;110187;110188;110189;110190;110222;110223;110224;110258;110259;110260;110261;110284;110310;110338;110339;110340;110341;110342;110343;110344;110345;110347;110346;110348;110349;110350;110351;110353;110352;110354;110355;110356;110357;110358;110359;110360;110361;110362;110363;110364;110365;110366;110367;110368;110369;110370;110371;110372;110373;110374;110375;110376;110377;110379;110378;110380;110381;118259;110393;110394;110410;110411;118260;110412;110443;110444;110445;118261;110473;110509;120024;110510;110511;118262;110512;110531;110544;118263;110545;110546;118264;110547;110548;110594;118265;110595;118266;110596;110620;118267;110659;110621;110635;110636;110637;110638;118268;110639;118269;110640;110660;110661;110682;118270;110683;118271;110684;110685;120025;110760;110761;110762;110763;110764;110803;110804;110836;110837;110838;118272;120026;120027;120028;120029;120030;120031;120032;120033;110938;118273;120034;120035;120036;110966;110972;120037;120038;120039;120040;111051;118274;120042;120041;120043;120044;120045;120046;111052;111053;111055;111054;111056;111057;111058;111059;111101;111102;120047;120048;111134;111150;120049;118275;120051;120050;120052;111200;111201;120053;111202;120054;111203;118276;120055;120056;111261;111262;111263;120057;111264;111265;120058;111328;111329;111346;111347;111348;111367;111369;111368;120059;111370;111371;120060;111372;120061;120062;120063;120064;111373;111433;118277;111434;120065;111435;120066;111436;111437;111438;111439;111440;111441;111442;120067;111443;111444;111445;111446;111447;111448;111449;111450;111451;111452;111453;111455;111454;111456;111457;111458;111459;111460;111461;111462;111463;111464;111503;111504;111505;120068;111507;111506;111508;111509;111525;120069;111546;120070;111548;111547;111574;121042;111575;120072;120071;111591;111592;120073;111639;111662;120074;111663;120075;111664;120076;111740;120077;111741;118278;111743;111742;118279;111744;118280;111745;111747;111746;111781;118281;120078;111782;111784;111783;120079;120080;111785;118282;111813;120081;111814;111815;118283;111816;111817;111818;111820;111819;111821;111822;111823;111824;111825;111826;111827;111828;111829;111830;111831;111832;111833;111834;111836;111835;111837;120082;111838;111839;111840;111841;111842;112010;112011;112012;120083;112013;118284;112014;112015;112016;120084;120085;119211;119142;112055;112056;120086;112057;120087;112079;112080;112081;112082;112106;112107;119551;112108;112145;112146;112148;112147;118285;120088;112271;112188;112199;112200;112201;112202;120089;112203;120090;112204;120091;112272;112273;112274;112275;112276;112278;112277;117354;112287;117355;118286;118287;120092;120093;117385;117386;118288;117448;120094;117449;120095;117450;117451;117452;120096;117453;120097;117478;120098;120099;117527;117528;118289;117529;120100;120101;120102;117629;117660;117661;118290;117663;117662;117664;120103;120104;117694;118291;117695;117696;118292;117697;120105;117698;117699;117700;118293;117701;120106;117703;117702;117799;117801;117802;117800;117803;117804;117820;120108;120107;120109;120110;118294;120111;117821;117822;118295;117899;117823;117824;118296;117858;120112;117859;120113;120114;120115;117900;117866;118297;118298;117901;120117;120116;117902;117903;120118;117932;118299;120119;117933;120120;120121;117989;117990;117991;122393;120122;117992;118300;117993;118301;120123;117994;120124;117995;118302;120125;118032;120126;118033;118034;118078;118079;120127;118080;118141;120128;118171;120129;120130;118172;120131;120132;118173;120133;118175;118174;118198;118199;118303;120134;118222;118304;118223;118305;120135;118306;120136;118318;120137;120138;118319;118320;118321;120139;118347;118348;120140;118349;118350;118351;120141;118352;118353;118354;118355;118356;118357;120142;118387;118388;120143;118390;118389;118391;120144;120145;118454;118455;118456;118457;118458;118459;118460;120146;120147;118490;118491;120148;120149;118499;118498;118500;118501;119571;118502;118564;120150;118565;118566;119449;118587;118588;119672;119572;120151;118589;119450;118590;119451;118728;119573;118729;120152;120153;118747;118748;118749;119574;120154;120155;120156;118819;119552;120157;120158;120159;118854;120161;120160;120162;118882;118952;118953;119553;120163;118965;119575;119011;119644;119012;119554;119013;119031;119032;120164;119033;119034;119035;119036;119041;119042;119576;119115;120165;120166;119116;119117;120167;120168;119143;119144;119645;119145;119212;119213;119555;119214;119215;120169;119281;119282;119283;120170;119284;120171;120172;119285;119286;120173;119299;119333;125666;119334;120174;120175;119335;119336;119452;119453;119454;119455;119456;119457;120176;120178;120177;120180;120179;120181;120182;119556;120183;119577;119578;120184;119579;119646;119647;119648;120185;120186;119649;129578;119650;119651;119718;119719;119740;119720;119741;120187;119742;119743;119745;119744;120188;119746;119747;119760;119761;119762;119763;120189;119806;120190;120191;119807;120192;119808;119809;119810;119824;119825;119869;119870;120193;119871;119872;119937;119954;120194;119955;120195;119956;120196;120982;120983;120984;120985;120986;120987;121003;121058;126492;121059;121060;121061;121091;121092;121093;121094;121158;121159;121206;121207;121209;121208;121240;121241;121242;121243;121293;121292;121295;121294;121296;121297;121298;121299;121300;121301;121302;121304;121303;121305;121341;121342;121343;121416;121344;121417;121465;121467;121466;121539;121540;121568;121569;121570;121610;121571;121611;121612;121613;121614;121615;121616;121617;121618;121635;121636;121637;121638;122047;122048;122049;122050;122092;122113;122146;122147;122148;122149;122181;122182;122228;122230;122229;122307;122306;122308;122309;122311;122310;122312;122341;122340;122342;122344;122343;122345;122360;122361;122397;122419;122446;122471;122472;122473;122474;122475;122476;122477;122478;122530;122531;122532;122581;122608;122645;122609;122663;123780;122664;122665;122666;122715;122748;122747;122774;122773;122775;122776;122808;122809;122810;122850;122851;122889;122890;122944;122964;122965;122967;122966;122968;122969;122970;122996;122997;122998;122999;123000;123060;123061;123062;123063;123064;123065;123066;123067;123068;123069;123070;123071;123125;123126;123409;123410;123411;123412;123444;123413;123446;123445;123447;123448;123449;123450;123451;123496;123497;123499;123498;123500;123501;123546;123547;123548;123549;123550;123551;123633;123634;123635;123636;123671;126524;123673;123672;123748;123747;123749;123781;123782;123783;123784;123785;123823;123822;123824;123825;123923;123924;123925;123926;123927;123928;123929;123968;123967;123969;123970;123993;123994;123995;123996;123997;123998;124018;124055;124056;124057;124082;124083;124109;124110;124111;124112;124113;124148;124149;124150;124151;124190;124268;124269;124270;124293;124294;124295;124296;124314;124315;124317;124316;124318;124319;124320;124361;124362;124363;124364;124403;124404;124405;124452;124451;124454;124453;124456;124455;124586;124644;124646;124645;124647;124674;124675;124694;124695;124715;124716;124757;124853;124852;124854;126493;124855;126439;124856;124857;126440;125023;125214;126525;125024;126441;125130;125920;125131;125132;125133;125244;125245;126457;125246;126458;138490;125248;125247;125280;125249;125281;125282;125283;125307;126494;125333;125334;129878;125335;126336;125351;125457;125458;125459;125460;125461;125462;125463;125464;125465;126442;126686;125466;125467;130087;125468;125469;125470;126443;125471;125535;125536;126736;125537;125539;125538;125541;125540;126495;126459;125592;125620;125672;125673;126496;125674;125675;125676;121004;121005;121160;121306;122051;121468;122093;122094;122150;122151;122231;122313;150628;122867;122891;125677;126526;122945;122971;123072;123073;123452;123453;123454;123455;123456;123552;123553;123554;123637;123638;123639;123640;123674;123826;123971;123972;124084;124321;124365;124406;124858;150613;150546;125702;125250;125284;125336;125472;125473;125678;125759;125703;125845;125846;125944;125984;150510;150662;150666;150625;150649;150551;150561;150575;150610;150684;150585;150682;150512;150530;150600;150626;150669;150597;150648;150529;150598;150618;150681;150540;150594;150558;150664;150554;150620;150514;150614;150563;150593;150624;150633;150619;150660;125760;150533;150642;150568;150507;125761;150650;150535;150552;150517;150668;150638;125762;150601;125763;125764;125798;125799;125800;125847;125848;125849;125873;125850;125874;125875;125876;125921;125922;125945;125946;125947;125985;125986;125987;125988;125989;125991;125990;125993;125992;125994;125995;125997;125996;126044;126046;126045;126047;126062;126063;126149;126151;126150;126153;126152;126154;126155;126156;126157;126159;126158;126160;128071;126161;126162;126163;126164;126166;126165;126167;126168;126169;126170;126171;126172;126173;126237;126238;126239;126240;126253;126337;126444;126460;126461;126462;126497;126463;126499;126498;126501;126500;126502;126560;126561;126562;127744;126595;126597;126596;126687;126617;126618;126619;126688;126689;126690;126691;126692;128017;126693;126694;126695;126696;126697;126737;126738;126739;126740;126741;126742;126743;126744;126770;126771;126808;126809;126810;126811;126812;126813;126814;126913;126914;126981;126982;126984;126983;126985;126986;127038;128018;127040;127039;127089;127090;127092;127091;127745;127746;127747;127748;127749;127750;127751;127752;127753;127754;127755;127756;127757;127758;127759;127760;127761;127762;127763;127764;127765;127766;127767;127768;128019;127769;127771;127770;127773;127772;127774;127775;127777;127776;127779;127778;127780;127781;127782;127783;127784;127785;127786;127787;127788;127789;127838;127790;127884;127885;128020;128021;128609;128610;128072;128022;128073;128048;128144;128074;128145;128146;128147;128301;128312;128302;128752;128313;128314;128315;128317;128316;128318;128319;128410;129096;128466;128411;128468;128467;128469;128470;128471;128472;128473;128504;128520;128542;128543;128544;128612;128611;128613;128628;128673;128870;128674;128675;129844;128676;128677;128678;128679;128753;128871;128872;128873;128966;128988;128989;128990;128991;128992;129043;129044;129045;129046;129153;129047;129155;129154;129156;129157;129158;129159;138248;129160;129282;129283;129285;129286;129284;129287;129288;129347;129348;129349;129350;129381;129382;130088;129383;138249;129401;129402;129403;129404;129465;129526;129527;129528;129529;129552;129553;129554;129581;129555;129582;129583;129673;129674;129675;129676;129746;129747;129748;129773;129772;129879;129845;129881;129880;129961;129962;129963;129965;129964;129966;130001;130002;130050;130051;130089;130144;130941;130145;130162;130161;130164;130165;130163;130166;130942;130193;130943;130194;130195;130196;130944;130198;130197;130199;130253;130254;130255;130256;130257;130340;130341;130342;130343;130344;130345;131067;130361;130388;130389;130390;130391;130421;130422;130423;130424;130425;130426;130449;130451;130450;130512;130452;130583;130584;130619;138250;130620;130621;130752;130753;130754;130755;130896;130897;130898;130899;130900;130945;130946;130947;130948;130950;130949;130952;130951;130953;130954;130955;130956;130957;130958;130959;130960;131068;138251;131069;131070;131071;131118;131119;131121;131120;131122;131123;131124;131159;131160;131221;131222;131223;138252;131224;131302;131303;131304;131305;131306;131307;131308;131309;131310;134278;131311;131312;131385;131386;131387;131388;131389;131390;131391;131545;131546;131547;131548;131549;131550;131551;131552;131553;131554;131555;131556;131557;131558;131750;131751;131752;131753;131754;131755;131756;138253;131757;131758;131759;131760;138254;131998;131833;131999;132000;132001;132002;132003;132004;132005;132007;132006;132008;132009;132010;132070;132072;132071;132073;132089;132088;132090;132091;132092;132093;132094;132236;132237;132238;132239;132308;132309;132334;132335;132336;132338;132337;132388;132387;132389;132390;132395;132394;132396;132431;132430;132432;132518;132671;132670;132703;132702;132704;132705;132706;132707;132743;132744;132745;132765;132766;132767;132850;132851;132852;132853;132921;132922;144032;132923;132924;132926;132927;132925;132928;132952;133032;138255;133033;133034;133035;133037;133036;133038;133134;133135;133136;133137;133138;133139;133140;133141;133175;133176;133177;133201;133202;133203;133254;133255;133256;133257;133258;133348;133259;133349;133389;133390;133391;133393;133392;133394;133395;133397;133396;133438;133439;133448;133493;133494;133495;133539;133520;133540;133541;133542;133543;133544;133545;133546;133547;133594;133595;133596;133597;133598;133600;133599;133601;133602;133761;133762;133763;133790;133791;133792;133829;133830;133831;133832;133833;133834;133835;133836;133837;133838;133839;133946;133947;133948;133949;134035;134036;134074;134075;134076;134077;134078;134079;134080;134081;134082;134083;134099;134101;134100;134102;134103;134104;134105;134106;134158;134160;134159;134161;134199;134200;134202;134201;134203;134285;134286;134287;134288;134290;134289;134291;134292;134294;134293;134295;134296;134297;138256;134350;134351;134364;134363;134365;134366;134399;134400;138257;134401;134441;134560;134561;134621;134622;134623;134624;134625;134654;134655;134653;134656;134697;134698;134756;134757;134824;134853;134854;134852;134855;134937;134972;134938;135023;135024;135025;135164;138258;135165;135166;135167;135169;135168;135196;135197;135223;135224;135225;135226;135227;139904;135228;135266;135267;135268;135281;135387;135388;135389;135390;135391;135392;135393;135394;135395;135396;135397;135579;135671;135751;135580;135752;135753;135754;135961;135893;135962;135963;135964;135965;136013;136024;136025;136014;136026;136075;136074;136076;136077;136079;136080;136078;136081;136082;136163;136164;136165;136167;136166;136169;136168;136170;136279;136280;136394;136395;138259;136396;136397;136462;136463;136464;136465;136467;136466;136468;136469;136649;136648;136650;136651;136652;136653;136654;136655;136656;136657;136658;136659;136660;136661;136782;136662;136783;136784;136785;136786;136787;136788;136789;136790;138260;136791;136792;136793;138261;136794;136795;136796;136797;136799;136798;136800;137535;137536;137537;137538;138262;137539;137540;138263;137541;137542;138540;137543;150576;150582;150590;150661;150605;150651;150679;150577;150528;150676;150599;137544;150511;137545;150547;150538;150588;150672;150583;150589;150644;150557;150539;150630;150518;150627;150608;150555;150673;150602;150553;150544;150615;150581;150522;150635;150573;150606;150520;150680;150659;150578;150683;150652;150525;150607;150632;150665;150584;150641;150623;150663;150564;150657;150591;150574;150545;150647;150677;150639;150616;150569;150629;150595;150560;150556;150531;150548;150542;150643;150580;150674;150526;150541;150603;150523;150527;150609;150670;150611;150592;150513;150634;150656;150549;150596;150636;150637;150671;137547;137546;137548;137549;137551;137550;137577;137552;137578;137579;137580;137581;137582;138541;137583;137584;137585;137586;137587;137588;137589;137590;137591;137592;138264;137593;137594;137595;137596;137597;137598;138491;137599;137600;137601;137602;137603;137604;137605;137606;138542;137607;137608;137609;137610;137611;137612;137614;137613;137615;137616;137618;137617;137619;137620;137622;137621;137623;137624;138265;138266;138267;138543;138268;138269;138270;138271;138272;138273;138274;138275;138276;138277;138278;138279;138280;138281;138282;138283;138285;138284;138544;138286;138288;138287;138289;138290;138291;138292;138293;138294;138295;138296;138297;138298;138299;138300;138301;138302;138303;138304;138305;138306;138307;138308;138309;138310;138311;138312;138313;138314;138315;138317;138316;138318;138319;138320;138321;138322;138323;138324;138432;138433;138434;138492;138493;138494;138495;138496;138545;138546;138547;138549;138548;138550;138551;138758;138759;138791;138760;138792;138794;138795;138830;138793;138831;138832;138833;138871;138870;138993;138992;138994;138996;138995;139169;139170;139171;139172;139173;139174;139175;139176;139177;139178;139222;139223;139282;139308;139309;139310;139358;139359;139360;139361;139362;139363;139364;139402;139403;139404;139405;139406;139407;139408;139409;139410;139452;139453;139454;139532;139534;139533;139535;139536;139566;139592;139593;139594;139656;139595;139657;139835;139836;139837;139658;139684;139685;139686;139687;139688;139689;139690;139691;139720;139721;139722;139723;139781;139838;139839;139840;139841;139842;139843;139844;139845;139846;139847;139905;139906;139907;140025;140026;140027;140109;140241;140242;140243;140244;140246;140245;140247;140248;140446;140249;140250;140251;140252;140253;140254;140255;140256;140257;140258;140259;143618;140260;143713;140262;140261;140263;140264;140379;140378;140380;140381;140382;140383;140384;140386;140385;140388;140387;140447;140448;140449;140475;140476;140477;140478;140479;140480;140481;140513;140512;140514;140515;143683;143870;143849;143767;143790;143840;143634;143746;143833;143872;143733;143715;143691;143835;143693;143883;143645;143734;143782;143825;143868;143628;143828;143739;143655;143641;143864;143807;143732;143789;143774;143806;143877;143667;143714;143810;143724;143823;143808;143736;143756;143636;143793;143829;143798;143750;143682;143800;143685;143651;143873;143853;143637;143707;143610;143630;143781;143665;143663;143631;143805;143819;143718;143678;143657;143743;143690;143865;143866;143721;143815;143671;143643;143679;143652;143775;143783;143839;143650;143612;143708;143801;143699;143842;143747;143837;143742;143762;143640;143672;143609;143681;143757;143786;143850;143615;143884;143845;143722;143673;143803;143744;143626;143784;143862;143659;143882;143758;143771;143656;143751;143649;143827;143759;143670;143820;143811;143709;143696;143614;143613;143838;143706;143848;143847;143766;143720;143638;143813;143822;143816;143647;143797;143684;143635;143726;143830;143876;143621;143832;143788;143644;143851;143754;143874;143622;143623;143791;143689;143765;143768;143777;143795;143863;143772;143844;143694;143779;143632;143761;143776;143854;143695;143658;143792;143719;143809;143629;143624;143763;143841;143773;143727;143885;143688;143843;143697;143880;143716;143760;143858;143749;143664;143616;143730;143799;143748;143620;143787;143712;143855;143660;143648;143852;143728;143731;143711;143831;143817;143753;143745;143627;143879;143676;143625;143881;143698;143703;143704;143725;143737;143710;143846;143814;143723;143869;143859;143661;143794;143700;143871;143617;143770;143778;143796;143738;143654;143639;143740;143834;143856;143802;143668;143735;143886;143780;143875;143857;143741;143752;143764;143867;143785;143646;143812;143769;143826;143687;143702;143642;143662;143818;143686;143680;143701;143677;143611;143861;143675;143878;143717;143836;143653;143674;143804;143692;143755;143824;143666;143619;143860;143821;143633;143729;143669;144046;143705;144034;144027;144037;144094;144095;144102;144100;144101;144173;144137;144171;144143;144121;144237;144259;144318;144254;144360;144354;144348;144351;144438;144427;144443;144445;144499;144432;144492;144476;144501;144491;144493;144495;144527;144535;144532;144571;144581;144575;144578;144570;144576;144580;144586;144579;144596;144599;144619;144608;144623;144637;144740;144733;144732;144760;144764;144763;144759;144757;144761;144911;144910;144921;144913;144917;144926;144909;144928;144912;144915;144908;144914;144953;144960;144959;145025;145018;145022;145030;145031;145019;145020;145029;145026;145120;145156;145205;145198;145164;145181;145179;145199;145175;145108;145239;145258;145352;145253;145343;145291;145300;145363;145490;145476;145470;145487;145479;145484;145481;145520;145739;146050;145765;146146;146051;146174;146141;146135;146156;146170;146145;146187;146111;146322;146362;146365;146359;146366;146367;146401;146394;146406;146395;146416;146387;146463;146470;146460;146478;146476;146474;146465;146475;146461;146520;146526;146517;146511;146523;146530;146553;146563;146573;146576;146577;146579;146600;146597;146615;146614;146643;146669;146726;146751;146729;146685;146653;146790;146789;146788;146795;146785;146794;146797;146796;146838;146923;146849;146925;146890;146910;146924;146921;146904;146885;146915;146912;146891;146920;146889;146903;146936;146946;146944;146941;146940;146937;146980;146972;146966;146984;146973;146967;146976;146983;146978;146982;146971;146987;146975;147030;147134;147050;147060;147155;147162;147575;147612;147570;147463;147511;147568;147591;147464;147454;147586;147579;147452;147544;147597;147545;147529;147571;147447;147502;147436;147564;147741;147736;147735;147781;147786;147788;147796;147785;147801;147843;147849;147851;147875;147871;147944;147936;147938;148142;148144;148149;148143;148164;148162;148165;148171;148177;148139;148168;148145;148175;148138;148160;148155;148150;148167;148151;148226;148227;148237;148233;148251;148252;148269;148276;148299;148304;148303;148365;148361;148366;148362;148386;148389;148387;148388;148410;148413;148415;148408;148414;148437;148443;148434;148532;148523;148515;148507;148529;148504;148524;148501;148502;148528;148521;148509;148510;148533;148531;148600;148594;148639;148636;148700;148698;148747;148758;148761;148751;148755;148757;148752;148753;148838;148837;148867;148864;148872;148873;148871;148868;148874;148929;148875;149006;148966;149012;149018;149080;149035;149076;149083;149068;149084;149074;149075;149077;150521;149179;149203;149180;149113;149195;149174;149152;149185;149135;149230;149225;149224;150508;150667;150658;150515;149227;150562;150612;150622;150536;150654;150631;150645;149248;150586;150571;150532;149266;150559;150675;150516;150509;149279;150566;149269;150678;150524;150604;150534;150565;150537;150519;150617;150655;149276;150572;150543;150646;150640;150550;150579;149274;150621;150567;149271;150570;150587;150653;150874;150888;150902;150914;150872;151084;151099;151127;151122;151201;151355;151618;151803;151993;152155;152199;152128;152221;152476;152550;152551;152544;152762;152810;152811;152834;153461;153477;153484;153626;153774;153840;153867;153915;154250;154212;154640;154740;154862;155819;155812;155801;155814;155798;155905;156012;156099;156167;156211;156290;149265;149264;149272;149263;149268;150306;149273;150274;149278;149270;149347;149340;149429;149428;149422;149457;149456;149463;149462;149461;149458;149459;149487;149494;149491;149484;149486;149516;149633;149535;149716;149717;149795;149805;149808;149800;149806;149801;149798;149804;149802;149797;149796;149856;149807;149976;150017;150014;150024;150019;150018;150012;150110;150100;150101;151492;150106;150085;150083;150092;150112;150084;150102;150086;150108;150082;150116;150093;150193;150201;150182;150215;150203;150190;150200;150222;150220;150212;150223;150191;150266;150257;150267;150685;150270;150686;150698;150307;150695;150697;150300;150318;152107;150313;150305;150335;150338;150699;150400;150402;150397;150505;150413;150404;150696;150401;150407;150406;150396;150414;150399;150412;150395;150415;150687;150405;150411;150398;150409;150410;150403;150473;150470;150472;150459;150476;150458;150468;150746;150730;150726;150456;150740;150745;150737;150731;150736;150739;150738;150733;150732;150743;150742;150729;150727;150728;150735;150741;150744;150734;150891;150927;150901;150889;150890;150893;150913;150898;150892;150870;150871;150895;150876;150873;150877;150885;150884;150912;150896;150875;150894;150887;150882;150900;150928;150883;150886;150878;150881;150880;150879;150899;150897;151086;151088;151085;151090;151094;151106;151105;151095;151104;151098;151087;151103;151092;151093;151110;151089;151108;151109;151102;151096;151107;151101;151091;151100;151097;151126;151118;151124;151123;151125;151195;151206;151200;151205;151194;151203;151202;151204;151360;151357;151354;151356;151481;151491;151531;151524;151532;151523;151530;151617;151616;151650;151654;151649;151651;151656;151653;151652;152272;151655;151659;151657;151658;151760;151758;151765;151757;151763;151761;151764;151759;151804;151802;151805;151801;151815;151813;151821;151868;151869;151878;151877;151880;151884;151875;151885;151881;151874;151870;151873;151986;151998;151980;151995;151994;151996;151989;151988;151991;151983;151997;151990;151992;151999;151981;152056;152048;152055;152022;152032;152023;152031;152062;152061;152060;152110;152109;152104;152106;152113;152105;152158;152108;152116;152142;152146;152156;152157;152160;152159;152153;152162;152188;152167;152187;152186;152185;152202;152200;152201;152222;152248;152247;152239;152246;152242;152252;152244;152253;152251;152240;152245;152241;152254;152243;152269;152481;152475;152478;152479;152480;152545;152546;152567;152566;152612;152611;152649;152651;152643;152652;152648;152650;152656;152642;152641;152654;152655;152653;152676;152677;152691;152690;152704;152714;152710;152708;152718;152715;152705;152717;152703;152716;152712;152707;152706;152713;152709;152759;152760;152763;152765;152761;152766;152809;152806;152804;152807;152802;152803;152805;152800;152801;152808;152833;152851;152845;152847;152843;152842;152836;152890;152891;152887;152888;152889;152915;152920;152914;152919;152921;152945;152947;152944;153020;152711;153015;153019;153012;153022;153011;153018;153016;153010;153017;153013;153023;153021;152996;152992;152997;152989;152990;152988;152994;152995;152993;152991;153027;153028;153124;153119;153125;153120;153122;153121;153198;153192;153191;153189;153194;153193;153197;153190;153196;153249;153247;153246;153014;153248;153423;153463;153465;153464;153469;153462;153466;153468;153478;153483;153489;153535;153540;153542;153538;153536;153577;153580;153576;153618;153581;153620;153623;153611;153622;153625;153614;153627;153619;153621;153632;153615;153624;153643;153616;153775;153773;153784;153787;153798;153794;153793;153791;153795;153830;153831;153868;153919;153903;153918;153907;153869;153917;153920;153923;153904;153921;153916;153905;153922;153906;153951;153969;153999;154003;154002;153998;154067;154100;154099;154087;154090;154102;154098;154052;154089;154093;154062;154068;154092;154095;154101;154073;154054;154088;154094;154063;154129;154133;154160;154189;154185;154161;154183;154181;154182;154190;154217;154218;154256;154249;154210;154247;154248;154305;154319;154299;154322;154298;154321;154323;154304;154318;154302;154308;154301;154314;154325;154303;154317;154300;154355;154634;154638;154630;154620;154632;154629;154618;154637;154651;154653;154646;154647;154648;154652;154641;154643;154654;154645;154708;154742;154744;154741;154861;154907;154906;154745;154908;154904;154924;154922;154927;154921;154941;155002;155004;155001;155006;155003;155005;155007;155048;155076;155157;155134;155166;155213;155302;155304;155303;155465;155462;155466;155464;155463;155363;155461;155467;155581;155468;155576;155580;155579;155582;155578;155575;155635;155651;155577;155646;155640;155650;155649;155641;155644;155642;155645;155648;155647;155659;155643;155671;155669;155668;155670;155667;155699;155703;155666;155700;155704;155698;155702;155723;155724;155748;155813;155806;155805;155807;155791;155800;155797;155810;155817;155809;155804;155802;155795;155793;155803;155808;155792;155799;155815;155796;155816;155818;155794;155811;155836;155827;155837;155829;155828;155840;155834;155856;155855;155854;155895;155910;155911;155902;155912;155894;155909;155907;155903;155913;155898;155899;155893;155906;155897;155904;155900;155896;155901;155929;155930;155990;155981;155959;155992;156008;156009;156010;156007;156006;156019;156047;156046;156051;156049;156048;156050;156090;156282;156092;156084;156088;156083;156081;156082;156086;156097;156093;156089;156087;156091;156096;156085;156080;156098;156095;156094;156148;156110;156172;156169;156170;156213;156214;156207;156209;156212;156245;158145;156281;156287;156291;156292;156285;156284;156286;156288;156283;156289;156280;156330;156342;156337;156421;156420;156422;156445;156446;156468;156480;156475;156479;156477;156611;156607;156644;156634;156615;156635;158146;156638;158142;156646;156709;156699;156703;156702;158061;156704;156701;156748;156746;158174;156760;156759;156758;156775;158063;156777;156776;156923;156806;156814;158064;156813;156807;156810;156815;156809;156817;156805;156811;156816;156808;156881;156882;156883;156922;158191;156924;158060;156927;156926;156921;158065;156925;156928;156919;156952;156951;159133;158137;156953;157090;157094;157073;157128;157083;157072;157079;157078;157087;157070;158091;157101;157098;157076;157103;157109;157102;158156;158139;157075;157074;157108;157144;157145;157146;157149;157151;157202;157180;157221;158175;157188;157214;157233;157278;157283;157271;157281;157279;157280;157282;157272;157276;157306;157301;157273;157298;157300;157308;157310;157302;157305;157315;157307;157303;157340;157304;157342;157344;157341;157345;157343;157334;157347;157373;157395;157392;157396;157393;157391;157394;157389;157390;157388;157419;157869;157870;157900;157898;157899;157897;157894;157895;157932;157939;157929;158062;158123;158122;158124;157346;158128;158126;158141;158155;158151;158136;158152;158153;158144;158138;158184;158185;158181;158186;158189;158183;158190;158180;158179;158176;158173;158182;158233;158226;158228;158244;158221;158230;158227;158242;158229;158238;158225;158336;158337;158339;158430;158358;158357;158415;158433;158395;158446;158445;158447;158448;159146;158503;158506;159150;158570;159149;158569;158579;158581;158568;158571;158580;158582;158620;158614;158603;158602;158612;158601;159170;158616;158610;158621;158597;158594;158598;158609;158607;158615;159159;159154;159155;158606;158619;158596;158595;158599;158613;158608;158622;158605;158618;158611;158593;159151;158750;159148;158756;158758;158753;158757;158748;159158;159164;159156;158754;158755;158752;158751;158765;158763;158772;158766;158769;158771;158768;158770;158798;158799;159162;158801;158880;158885;159012;158916;158920;158908;158915;158910;158926;158919;158925;158917;159152;158911;159018;158909;158955;158957;158961;158966;158963;158960;158969;158967;158964;159027;158958;159013;159034;159029;159019;159028;159031;159147;159062;159161;159171;159163;159128;159130;159136;159127;159131;159157;159129;159177;159172;159174;159176;156478;156812;157086;157077;157105;157154;157150;157868;158140;158172;158178;158194;158188;158187;158338;158429;158604;158600;158749;159017;159014;159021;159025;159033;159032;159023;159175;159134;41989;27143;27144;29370;31125;31126;31296;31297;33572;33573;34942;34943;36033;51690;38856;51691;51692;41990;51693;51694;42318;51695;51696;51697;51698;51699;51700;51701;51702;51703;51704;52567;57154;57587;58776;63610;64907;66506;29371;51705;51706;51707;51708;51709;51710;51711;51712;51713;51714;51715;51716;52568;51717;35552;27145;29372;58166;28282;29373;31765;31766;31767;31768;34697;34698;34699;34779;41473;35920;42253;49826;42319;46013;49827;56600;57155;57298;65025;65908;56021;57156;31319;31338;31673;42397;27146;29374;29375;27147;29376;27148;29377;27149;27150;29378;27151;27152;29379;29779;29780;29878;30092;33266;33381;34233;41474;34429;35004;41475;35606;36079;41476;41477;42320;42177;49828;44687;49829;49830;50975;53285;57157;57158;55166;58480;59053;59445;61658;62002;62198;69172;29879;29380;61523;27153;27154;27155;27156;27157;27158;31390;31963;33894;35676;41478;35470;53233;57159;32076;27159;29381;27160;27161;29382;29383;27162;51718;35565;51719;49831;27163;27164;61524;29384;27165;29385;29386;27166;29387;27167;27168;29388;31449;31450;33382;33383;33500;33501;41479;35445;41480;41991;57160;159135;57161;57162;59552;61728;62176;62674;34289;36200;34276;31451;36016;31452;59983;53234;57163;27594;29389;27595;34070;34071;41481;41992;53530;57164;58408;32212;32211;41482;49832;27169;28325;31320;30191;30192;31127;31128;27170;29390;10503;27171;27172;29391;28370;29343;29392;33099;35025;33100;41483;42235;42321;49833;45471;49834;49835;53589;49836;57165;56601;57166;58299;58765;64865;27173;29393;27174;29394;29395;27175;27176;29396;29397;27177;29398;27178;27179;29399;27180;29400;27181;27182;29401;27183;29402;27184;29403;27185;29404;29782;29781;31111;31112;32047;32048;33384;33385;33502;33503;34166;34167;34944;41484;34945;41485;35103;41486;36121;41487;38180;41488;41993;45622;49837;49838;50856;51135;52989;57167;55974;57168;56602;57169;59948;65798;66956;27186;29783;34260;41489;66355;67222;27187;29405;31391;31392;41490;35471;41491;38643;42840;49839;55715;57170;62060;55761;57171;35245;33223;29406;27188;49840;27189;27190;29407;29408;45106;49841;27191;27192;29409;29410;27193;29412;29411;27605;27194;28203;29413;29913;29914;31394;31393;31621;31769;31770;33158;41492;33159;34359;34358;35368;41493;37844;41494;41495;39389;42815;43389;49842;50984;57172;56603;35758;41497;41496;41994;57842;66356;51638;67242;58142;33785;51720;52473;57173;66617;41498;68955;41995;42302;42322;49843;55621;57174;57175;56604;56605;57176;41499;38946;27195;31395;31396;34437;35034;41500;35955;57177;53590;57178;55588;42794;49844;28224;35715;41501;41502;41996;57179;57180;53403;57181;56606;61595;27196;29414;53502;57182;53317;57183;53359;57184;27197;27198;33895;41997;27199;27200;27201;27202;34320;35677;42104;29243;29415;51721;35740;51639;29416;27203;27204;27647;28355;29417;32440;32439;34213;41503;34708;34709;29915;31622;33121;35304;41504;29418;27205;29419;27206;27207;29420;27208;29421;30048;30049;31397;31398;34046;41505;41506;41507;42958;49845;45078;29422;49846;27209;51640;53286;57185;27210;31453;31454;33193;33194;27211;29423;41508;38644;49847;42398;42869;49848;43152;49849;44038;49850;59639;27212;27520;29424;27213;29425;29426;41509;27572;41998;27214;29427;27215;29428;27216;29429;27217;30036;30037;49851;45539;51722;34199;51723;41999;51724;42000;51725;51726;51727;57186;51728;57466;59682;60059;65026;27218;29430;58525;60092;62096;62780;62573;63626;63091;65598;65866;66668;67198;50080;59354;57187;54612;42189;29431;49852;27530;29432;29433;27219;59118;27220;27221;29434;29784;29785;31964;31965;34753;34754;51729;35246;51730;35747;51731;42001;51732;51733;51734;51735;51737;51736;51738;51739;51984;52969;57188;57190;57191;57192;57189;57194;57193;57195;58129;58300;58561;59054;59451;62494;62935;63279;61596;63473;64614;64637;64966;65569;65958;66493;66921;68956;27222;55830;57196;27223;29435;34438;42049;41966;49853;27224;27225;29436;27226;29437;27227;27228;29438;33430;33431;41510;38684;49854;49855;53487;57197;57198;64092;58722;51740;51741;51742;51743;34192;51744;51745;38857;27230;27229;29439;29440;27231;59854;27232;27233;34366;34967;41511;29916;30193;30194;36004;38807;31321;31322;41512;41513;58791;62210;29441;27234;27235;29442;27236;29443;29444;27237;51746;51747;52970;57199;57200;61453;61641;61680;27238;27239;34153;35330;38181;29244;57201;50377;55442;55920;57435;62960;63295;66802;81125;58576;27240;33267;29445;33215;33251;33896;27241;29446;33559;29245;29447;27242;34214;41514;34215;35080;41515;41516;36201;41517;42002;51748;59829;66289;66957;27243;28170;32115;27244;27245;29448;27246;29449;27247;29450;27248;66958;29451;27249;27250;27251;29452;49856;66959;34506;34439;33160;42003;33161;35741;41518;42004;27252;29453;27253;27254;59855;27255;29454;27256;29455;27257;27258;29456;31190;31189;41519;35921;29457;27259;27261;27260;29458;44313;49857;41520;35922;35956;35986;27262;29459;27263;27264;27265;27266;34959;36005;59190;27267;34430;34431;29460;29246;29461;34981;27268;28171;41521;68876;31399;31400;42005;41522;57614;27269;29462;10560;35247;34193;34194;51749;35005;27270;29463;29464;27271;34845;36006;29465;27272;64908;62061;63021;27273;29466;34739;34740;41523;39514;39433;49858;27274;29467;34982;34968;57313;29468;29469;29470;34024;32049;41524;41525;41967;49859;49860;42929;49861;43859;59119;49862;51339;52632;57204;57203;53893;56006;57205;57683;59493;62116;62961;65546;66196;66856;69092;27275;29471;27276;29472;29473;27511;31771;31772;34035;34036;27277;41526;29474;29475;29476;32050;34072;34200;34485;41527;41528;41529;49863;49864;43822;50968;53235;57206;55757;52737;57207;57208;62177;59064;65599;66197;62962;66857;69093;27278;27279;27280;30195;27512;34037;31773;35305;36070;42006;51750;42007;57209;52752;55622;57210;57658;59065;62381;63092;66198;65570;66618;69072;30248;27513;32178;31774;35306;34038;42008;36071;51751;52068;27281;57211;27282;35331;61567;27283;27284;29477;27285;27286;29478;38645;41530;51113;29479;27287;29480;27288;28204;29481;49865;42816;29482;27289;29483;30038;30039;32179;49866;43057;32180;51089;41531;51364;36710;29484;59120;59121;29485;27290;27291;59122;29486;27292;27293;27294;27295;29487;27296;59123;29488;59124;27297;27298;27299;28172;29489;59125;29880;29248;30142;30249;59126;30143;30144;30250;31089;31090;41532;59127;33252;33253;59128;33432;41533;41534;59129;59130;34331;59131;59132;41535;34457;59133;41536;35026;59134;35446;34755;41537;59135;41538;59136;59137;41539;59138;39335;42009;41540;41541;59139;42465;59140;49867;59141;49868;59142;43398;59143;59144;49869;44398;59145;59146;49870;59147;46252;59148;49871;49872;59149;59150;49873;59151;49874;59152;51158;59153;51752;59154;52971;59156;59155;57212;55468;59157;55504;59158;57213;59159;56607;59160;57214;59161;57659;59522;59521;62675;62676;65959;65960;66782;66781;29490;59162;27300;27301;27302;29786;32051;34239;27303;27304;28173;36202;27305;27306;35973;29491;27307;27308;29492;27309;29493;27310;29494;27311;29495;29991;29992;31623;31624;36122;41542;44093;49875;51159;49876;68877;57431;27312;29496;27313;29497;27314;29498;34780;27315;42010;41543;49877;42236;42323;55566;57215;27316;31401;34718;31402;31403;42011;42012;67223;27317;27318;29499;29958;29957;60103;27319;29500;27320;29959;29960;29787;34509;27321;27322;27323;28174;42013;34679;49878;57216;55433;29501;27324;57217;55434;29502;27325;51753;51754;29503;27326;29504;28175;41544;36007;42014;35759;41545;49879;29505;27327;30180;33885;35248;42015;35447;42324;29506;29344;45003;49880;34073;42325;34261;27328;38662;27531;35459;38646;38923;39445;63072;63680;27329;29507;27330;29508;27331;29509;28326;32024;32052;35553;41546;35733;35748;41547;41548;42016;41549;49881;49882;55897;57218;58167;59494;61547;50821;28205;27332;30015;57219;58577;62781;28176;52738;29510;34486;29881;29851;41550;36080;42017;55746;57220;33786;35027;38950;29511;27333;41551;27334;29512;34074;34075;41552;41553;49883;52990;53591;57221;58777;60077;60152;64093;66465;35678;42018;42019;43634;49884;41554;36182;35607;49885;55850;57222;29513;27606;27335;29514;32473;32474;58196;49886;29515;27336;38788;51755;27337;34025;27338;30093;36203;42020;30094;51756;30095;34207;34208;41555;34846;34847;34983;35320;41556;35699;41557;42021;50969;55698;57223;57684;59163;59722;62003;63259;33195;66301;33196;34076;34077;60104;58616;66290;32077;27339;27340;27341;32129;31775;34812;27342;27343;54829;57224;34984;29516;29517;29518;27344;29519;34026;57225;33939;53639;27345;29520;27347;27346;35679;42022;27348;27349;29521;27351;27350;30181;31637;33513;33837;33838;36008;35448;36204;42190;42421;45499;49895;50489;29522;27352;49896;57226;31696;31697;32025;31991;32026;34367;34960;35307;42366;49898;49897;43399;44381;49899;49900;44911;49901;45500;52652;53236;57227;57228;53650;33386;33387;41558;27353;27355;27354;29523;41559;42023;42959;49902;27356;27357;29524;27358;27359;29525;30182;33886;34985;34765;41560;45107;49903;50021;32116;32117;42024;41561;55687;57229;64927;28356;29526;27360;34027;57230;53447;29527;49904;56610;57231;35039;27361;51757;42303;49905;29882;29528;29883;33787;35460;60060;41562;41563;35646;66553;41564;29529;30016;29961;51758;35680;42025;51759;29531;29530;57232;56611;30196;30197;63345;62004;29532;66230;27532;27362;29533;42026;29534;41565;29962;29535;28327;27363;29536;32078;32079;34440;34441;41566;49906;49907;34487;29537;27364;34468;34078;34262;41567;35681;41568;41569;50842;27365;29538;27366;29539;27589;29540;31841;31842;31843;34321;61695;27367;29541;27368;29542;27369;29543;27370;29544;29545;41570;41571;41572;41573;42841;49908;45385;49909;50610;57233;53640;57234;55139;57235;56612;57570;58033;58679;59237;59316;65719;49910;44132;56613;57236;32454;41574;36116;41575;42027;41576;42028;57237;67199;33088;27371;27373;27372;27374;27375;27376;27377;27378;27533;29884;31309;31844;33224;33574;34039;34458;34469;34687;35957;35249;42029;57238;35784;55716;27379;39361;31776;27380;57239;56701;35006;35007;27381;29546;34263;41577;34264;35736;27382;49911;33162;44593;45540;49912;28283;29547;28284;28285;29548;29885;29886;29549;31091;33433;49913;51845;27383;27384;28177;27385;27386;33089;33887;35028;33090;29550;28286;34040;34041;49914;51641;57240;53894;65249;39499;39434;43086;49915;27387;29551;31339;31340;34692;27388;27389;27390;27391;27392;29552;27393;27394;27395;27396;27397;31455;31456;34813;35449;36081;42326;29887;35682;35923;29553;27398;27399;29554;29555;28178;32118;32119;41578;42030;49916;43621;65785;49917;57241;56702;59164;59984;29556;33888;33897;34240;49918;53531;57242;57243;53855;27400;29557;27401;29558;30251;30198;30199;41579;36169;41643;42031;49919;44056;49920;49921;50043;53237;57244;59384;62545;41580;27403;27402;27404;35785;27405;57245;53318;54830;57246;56614;29559;57247;27407;27406;27408;29560;30145;30146;33924;33923;41581;49922;35332;51642;57248;54643;58891;59308;38713;27409;43349;33163;49923;29561;36082;27410;29562;27412;27411;29563;27413;29565;29564;29566;27414;27416;27415;29567;27417;41582;39418;50822;53255;56615;57249;59393;57250;61771;57251;27418;29568;33898;33889;57252;27419;34986;41583;29569;27420;29789;29790;29570;32120;27421;27422;29571;29572;29573;27423;28328;34028;51760;34020;57253;42032;65799;69118;34987;28371;28206;34988;28225;27424;34042;27425;29574;27426;29575;27427;27429;27428;29576;27430;27431;27432;31457;29577;32181;35647;27433;29578;27434;27435;27436;27437;27438;27439;27440;27441;27442;27443;27444;27573;29695;27581;29888;31113;31845;31114;32027;34201;34360;34961;35250;39462;27445;42327;27446;29579;44935;49924;31458;31777;42033;27447;27448;59830;29580;27449;27450;27451;33434;29581;29582;27452;29823;27453;29824;32182;32183;41584;49925;45132;64866;27454;27455;27456;27457;27458;34814;34848;35040;35184;35598;38776;42034;42035;27459;29583;41585;41586;41587;41588;41589;49926;59355;69055;36049;41590;42036;33216;35472;45015;49927;59288;66466;51447;27460;27461;34241;57872;29584;27607;59523;59524;27462;29585;27463;27464;29586;27465;29587;49928;27466;29588;29889;29890;51761;29589;27467;32184;55505;57254;27468;29590;27469;31846;31847;33122;33123;28287;27470;29591;27471;29592;31298;31674;31675;34154;34155;34499;34442;41591;41592;49929;45472;46170;49930;52525;56035;57255;56616;57256;57843;64431;31698;33435;34168;41593;42037;41594;27472;27473;29593;31676;31699;41595;27514;57257;53256;34249;51762;51763;34989;33788;42328;27474;57258;55021;35683;33091;33092;57259;51764;53828;34079;57260;27475;29594;49931;41597;41596;41598;27476;42038;27477;30050;27478;31404;31778;34047;34990;35272;35729;38924;42039;42070;57261;53319;57262;54995;56617;57263;57264;58117;58945;59723;64797;62097;66255;69169;27479;29595;27480;31115;30096;42040;51765;32441;32502;27481;51766;57265;56618;59469;62025;62963;27482;29596;28207;29891;29791;29792;29963;57266;57267;63153;42041;41599;30097;27483;29597;31780;31779;34302;34303;30098;30099;30100;31459;31460;31716;31723;31782;31781;32392;32393;51767;51768;35599;51769;51770;38846;27484;29598;27485;27486;29599;27487;27488;29600;29601;27489;27490;29602;27491;34234;35723;41600;38847;41601;49932;43365;29603;49933;57268;53404;57269;58143;67256;30017;30040;30101;30102;33164;30103;30104;33165;49934;27492;30041;29604;27493;27494;29605;29606;27495;27496;29607;33166;66803;27497;29608;27498;28179;29609;41602;38182;42042;41603;42422;42406;51365;49935;27499;52163;29610;27500;29611;33101;33742;33743;27501;29612;27502;41604;35369;34991;34962;41605;29613;28180;56619;57270;57299;27503;27504;27505;33951;33821;47152;10273;26926;10590;13660;10493;14369;30133;77606;25927;25926;70971;70972;70973;70974;70975;70976;70977;70978;70979;70980;17162;17161;67172;67007;19218;70970;67006;69171;54618;54616;54617;50704;17163;132057;10274;78011;78012;78013;78014;80860;44959;51813;69262;69261;22226;25707;55115;69263;55116;30211;22419;125636;125637;125633;125551;125550;125310;131765;125311;73947;80911;73946;76362;138209;76361;151469;76403;81549;81550;81547;81551;135297;81552;137827;81548;31858;67002;62925;81600;77406;81599;69307;77404;103195;103837;126625;72513;89871;81179;88903;112155;91124;103839;104573;125372;72512;126626;71993;77050;90199;91895;93717;91125;96045;97661;100593;104459;136619;119616;110778;119617;124768;131233;133675;96046;151470;59367;59366;73964;66927;87505;57766;57767;59365;71994;72542;79083;84368;85256;85351;86873;90200;136620;91894;133676;151468;88598;69803;141082;56412;58514;56413;62458;25490;25491;62716;62715;50432;52052;56378;45017;45018;50433;51190;53209;59757;73275;53208;59192;59193;124697;104972;102203;59835;59834;59836;62009;102204;62010;63066;73690;90919;91896;93653;101158;102528;105509;117614;125373;126780;132098;32133;57796;57795;58204;57859;93344;93345;93654;93655;93409;93408;93658;105779;109035;128303;128329;106399;125357;121254;128417;124568;25458;38653;31857;21271;67229;42083;92757;92840;67003;68936;67004;68935;91915;93652;133410;130630;47046;56666;63067;91261;60161;55627;59208;61435;61436;86150;55628;55629;59209;69179;72480;76144;80118;92001;94052;59097;59210;74152;93346;25445;25446;74153;83117;72219;31726;31725;14298;14299;14323;16387;14300;72218;46818;46819;62813;33811;142226;53620;105300;142225;46733;110556;21217;11657;21218;49659;49658;72342;72343;72344;72345;72341;72346;72347;93560;19417;21237;10275;63418;45545;109552;11495;22478;13852;46224;46223;46225;47163;35308;10276;12216;18164;10443;12213;25220;11618;94675;151791;50603;35724;93440;135706;135707;135708;135709;49175;49176;52716;52715;105074;121245;10279;10584;20316;15707;11927;107096;101159;135970;101160;10280;42263;72831;51890;136890;57462;10281;142639;46203;46202;62776;99595;136090;58232;58231;131081;100574;100573;102274;125882;137757;142054;147895;148392;150797;151134;153159;140918;131726;23972;10709;10282;11610;43101;77302;77301;19608;11400;11401;11451;11660;10283;10284;19507;17342;17341;19508;19509;54986;19510;23650;20755;18263;11819;18262;18264;18493;58385;35820;46784;11914;155964;23780;155965;32443;10285;121621;10286;10523;14229;11576;14729;25199;78390;78391;78393;78392;78394;73339;78389;35702;71881;20185;71882;46737;27575;26968;22303;29799;46736;14364;16229;49706;14359;61733;15709;25954;15891;25953;39563;12003;56735;10596;40493;76255;11894;34434;14659;14591;20813;80479;80480;70139;70138;62574;58815;58816;54943;58814;66256;74369;53625;47901;58813;80481;54924;80482;54987;48363;55817;70126;86317;88090;100422;14191;20903;58528;58529;58389;11434;86318;86323;87822;70587;64568;72203;77528;77529;81813;91981;96484;100157;64569;64567;86325;81814;86326;86324;87823;93127;97141;104743;121010;136318;138330;86327;60016;80035;55593;57062;57765;18178;57764;11059;20168;19758;34361;150937;150946;150938;150936;150935;154151;157124;150856;151504;151502;151501;154149;50448;50526;157120;50475;49702;47029;17726;47030;46867;47715;47028;46868;51059;17727;47576;51957;56301;57540;121112;62986;121113;17728;47578;47577;104358;48255;51975;56008;57080;62987;66426;72690;81579;74245;83490;81649;88935;121114;46869;136770;138851;148405;147163;52634;54301;53323;121115;55759;55859;56070;57082;57541;62985;62988;63200;66427;51958;66428;121116;51526;72692;72691;74246;74247;77475;81650;83764;51976;83526;121117;121118;88936;121119;121120;102587;51987;103329;103782;106710;106975;121121;111066;118035;124064;121122;81651;77476;83765;83527;72693;121123;88937;99367;102588;103697;106711;74248;106976;121124;111067;74249;81580;99361;99368;100681;103698;102589;106712;106977;111068;118036;124063;126125;132413;94578;132418;136807;138097;138574;144054;147019;152183;154147;95438;96003;157119;99362;102590;121125;103699;118037;126312;124058;106713;126245;132419;136806;138098;138591;133845;141446;147164;144050;152182;106978;154150;122447;111069;157117;10477;11438;11150;39446;46753;50688;47696;47708;17322;49701;50347;34970;10807;43623;105006;39447;26070;35806;25289;25995;12085;10478;25525;11176;12123;11218;47749;33866;44314;39479;90318;54990;94251;26026;59356;15904;15924;14615;50418;42054;42423;46193;51972;42424;130590;43160;44967;39465;51528;44136;39466;47831;55903;46194;39467;46195;40406;42055;39468;49067;47830;33817;56242;56243;56244;42056;42872;47832;42425;51529;52483;50494;47834;39469;55904;48926;48927;11139;42479;42426;42427;51973;39470;44134;46196;56245;40927;40926;117861;117860;20252;33271;10287;17160;10491;19596;42210;62891;62892;137703;138614;137702;134892;138615;91428;149094;154960;17213;110766;134871;93483;97225;97224;93482;62628;52044;99730;20401;135408;135409;66811;135410;55455;55456;11747;35649;35648;139030;133361;82591;104273;99248;144585;148336;139031;82592;52653;34050;133269;134629;149064;154962;133217;103968;25625;34216;34362;103969;34490;22048;34363;35451;50831;24683;133623;25171;154351;158648;24679;25172;29724;154350;16192;24680;25925;107224;107225;84007;104354;84008;84009;24690;100618;100619;84918;84917;24682;27583;49707;58580;24681;24815;154961;134452;134302;148428;139667;139668;58597;32400;35042;25120;25148;25547;25757;17611;11428;14686;12076;10501;10288;10743;44875;33445;44874;73518;11157;11582;18405;12234;137053;10696;11636;11615;137054;45083;11136;43877;69421;14719;14793;14784;34432;63399;38888;64876;82898;22123;19941;22362;17210;34031;20068;19704;138510;35743;138385;57394;138890;138852;138797;138612;138796;138613;138611;138381;138599;138379;44118;11284;44117;35655;81575;17272;48239;23933;24900;11097;12075;14706;14707;20012;14699;21618;17315;17316;22480;18098;15561;21605;15951;72580;72579;156441;100961;103875;20484;20485;20486;50044;49791;49803;49804;49805;49995;100962;50045;50081;50046;50300;50319;50301;50524;50318;51501;20487;50378;50410;50411;50412;50490;50491;50559;50492;50560;50649;50573;20488;51114;51115;50823;50824;50843;50857;51184;50970;51073;51075;51074;51076;20489;51116;51117;51340;51136;51421;51433;51434;51435;51436;20490;51437;51453;51502;51525;51509;51572;51583;51584;51643;51668;51669;52526;52579;20491;52527;51673;51771;51846;51848;51847;51858;51870;51871;51900;20492;51954;65098;51985;51986;51996;51997;52022;52023;52069;52070;20493;52164;52474;52475;52476;52477;52478;52479;52480;52498;65099;65100;20494;52499;52528;52500;52529;52580;65101;52581;52667;52598;65102;52682;52739;20495;52740;52972;52991;53218;65103;53219;53220;53221;53222;53238;20496;20497;53257;53287;53295;53294;53296;53303;53320;53321;53372;53408;55067;20498;55068;55069;55070;55071;55072;55073;55074;55075;55076;55077;20499;55078;55080;55079;55081;55082;55083;55084;55085;55086;55087;55089;55088;20500;55090;55091;55092;55093;55094;55095;55096;55098;55097;55100;55099;55101;20501;20502;55102;55103;55105;55104;55106;55107;55108;55109;55113;55114;55407;20503;55469;55163;55605;55168;55167;55282;55172;55283;55408;55409;55413;55414;20504;55589;55454;55590;55522;55521;55530;55531;55567;55591;55606;55592;20505;55637;55607;55688;55648;55689;55699;55700;55717;55718;55729;20506;55730;55731;55758;55762;55921;55982;55784;55810;55785;55922;20507;55857;55858;55898;55899;56562;55923;55957;55967;55968;56036;56089;56115;56139;56140;56279;58511;58532;56048;20508;20509;56161;56189;56191;56190;56193;56192;56206;56194;56236;56207;56237;20510;56330;56256;56331;56257;56280;56281;56332;56305;56344;56343;20511;56345;56346;56347;56375;56387;56406;56384;56389;56388;56390;56466;56479;56506;20512;56507;56555;56554;56563;56580;56581;56556;56582;56583;56629;56630;56637;56638;20514;20513;56639;56640;56641;56642;56643;56644;56646;56645;56664;56647;20515;56680;56775;56746;57393;56747;56767;56776;56768;56777;56778;20516;56817;56853;56854;56860;57685;56868;56861;56869;56870;56911;56943;56912;20517;56913;56914;56916;56915;56919;56944;56945;56946;56947;20518;56948;56949;56969;56917;56970;56971;57997;57005;56978;57024;57038;57047;20519;57048;57055;57056;57057;57059;57058;57061;57060;57271;57300;20520;20521;57301;57302;57303;57304;57305;57306;57457;57458;57314;57315;57321;20522;57341;57342;57343;57344;57345;57357;57370;57436;57447;57448;20523;57449;57467;57495;57496;57497;57498;57532;57533;20524;57534;57535;57588;57615;57616;57660;57661;57662;20525;57663;57664;57665;57697;57686;57687;57688;57698;57689;57707;57706;20526;57873;57762;57763;57790;57874;57844;57845;57856;57846;57887;57888;57933;57932;20527;20528;57934;57935;57936;57937;57938;57958;57973;57998;58034;58035;58036;57999;58037;20529;58104;58069;58118;58130;58131;58179;58144;58145;58168;58146;58169;20530;58170;58197;58264;58223;58266;58265;58267;58268;58269;58270;20531;58271;58287;58288;58289;58301;58318;58325;58326;58340;58341;20533;20532;58384;58383;58425;58589;58397;58807;58481;58443;58492;58444;58493;58494;58495;58496;58497;20534;58498;58499;58534;58533;58590;58578;58617;58600;58680;58618;20535;58723;58742;58741;58743;58808;58871;58870;58872;58873;58892;20536;58922;58923;59015;59470;63107;58946;59032;58947;58948;58964;58974;59016;58986;59033;20537;59034;59107;59170;59186;59364;59187;59188;59225;59226;59238;20538;20539;59254;59289;59290;59291;59292;59309;59320;59321;59322;59323;20540;59324;59385;59386;59394;59525;59640;59654;59724;59395;59725;59396;59397;59398;59399;59471;59452;59472;59473;20541;20542;59474;59475;59476;59495;59496;59526;59553;59554;59565;59566;20543;59567;59603;59604;61568;59605;59754;59755;59784;59783;59810;59809;59811;59812;20545;20544;20546;59813;59814;59815;59816;59831;59832;59833;59845;59856;59891;20547;20548;59954;59903;59956;59955;59957;59964;61729;59985;59965;59986;60012;60013;20549;20550;20551;20552;60014;60078;60079;60105;61506;60106;60125;60126;60136;60137;20553;61379;61380;61411;61445;61458;61483;61485;61484;62036;61507;20554;61508;61509;61510;61511;61512;61513;61525;61526;61548;61549;20555;61569;61619;61570;61607;61608;61642;61643;61706;61707;61730;62062;20557;20556;20558;61745;61772;62382;61773;61787;61788;62005;62007;62037;62006;20559;62039;62038;62040;62041;62072;62073;62098;62111;62112;62178;20561;20560;62179;62180;62199;62211;62200;62212;62219;62434;62238;62239;62240;20562;62241;62290;62306;62307;62347;62348;62365;62366;62387;62388;63285;20563;62408;62409;62411;62410;62430;62435;62436;62474;62437;62475;20564;20565;20566;62476;62495;62496;62497;62660;62511;62512;62513;62515;62514;62546;20567;62547;62548;62557;62619;62620;62677;62661;62700;62707;62708;62709;20568;62733;62756;62816;62815;62818;62817;62860;62868;62888;62869;62870;62899;62900;20569;62936;62937;62982;62983;63022;63023;63024;63025;63026;63145;63027;20570;63058;63093;63108;63109;63116;63117;63118;63119;63121;63120;20571;63122;63123;63124;63154;63163;63164;63184;63165;63219;63220;20572;63221;63222;63260;63261;63262;63264;63286;63287;63288;63296;63297;20573;63299;63298;63316;63315;63317;63320;63322;63321;63367;20574;63448;63447;63665;63467;64480;63474;63475;63535;63536;63537;63538;63539;63540;20575;63541;63608;63611;63609;63612;63613;63614;64432;64433;63615;64434;20576;63616;20577;64435;63666;63667;63668;63669;64436;64283;64284;64285;64289;64290;64291;20578;64375;64376;64481;64482;64615;64616;64617;20579;64618;64629;64619;64638;64639;64640;64641;64680;64681;64698;64967;20580;20581;20582;20583;64782;64783;64798;64968;65684;64799;64800;64801;64802;64803;64804;64805;20584;64806;64807;64808;64809;64810;64811;64890;64891;64892;64909;20585;64910;64911;64928;64929;64969;65045;65095;65077;65096;65250;65104;65251;20586;65252;65547;65571;65573;65572;65574;65608;65607;65609;65610;65611;20587;65629;65640;65641;65655;65666;65667;65685;65686;20588;65730;65763;65786;65787;65817;65816;65788;65800;20589;65818;65819;65867;65868;65869;65870;65871;65872;65923;20590;20591;20760;65980;65981;66022;65994;66032;66199;66171;66200;66215;66231;66232;66291;20592;66292;66302;66303;66314;66346;66347;66348;20593;66357;66372;66442;66443;66467;66468;66469;66470;66471;66494;20594;66495;66496;66669;66540;66587;66588;66589;66590;20595;66670;66691;66692;66712;66713;66714;66715;66716;20596;66783;66816;66817;66818;66819;66820;66821;66822;66823;20597;20598;66824;66825;66826;66827;66828;66829;66830;66831;66832;66833;20599;66834;66877;66858;66892;66886;66893;66901;66900;20600;66902;66904;66903;66922;66923;66924;66960;66962;66961;20601;67000;67186;67001;67015;67138;67016;67187;67139;67188;67189;20602;67190;20603;20604;67206;67191;67224;68902;68903;68957;68923;68924;68925;68926;69073;69031;69119;20605;69120;69173;69121;69122;69123;69124;69125;69126;69127;20606;69174;69175;69234;69235;69260;69366;69367;69373;69415;20607;69416;69417;69418;69419;69797;69798;69807;20608;20761;69808;69809;69810;69811;69824;69812;69843;20609;69862;69947;69970;69971;69973;69972;69974;69975;69976;69977;20610;69978;69979;69980;69981;70086;70087;70116;70117;70190;20611;70191;70192;70193;70194;70251;70252;70253;70254;70255;20612;70256;70266;70267;70268;70269;70270;70366;70367;70452;20613;70492;70539;70538;70540;70541;70542;70543;20614;20615;20616;70580;70579;70582;70581;70584;70583;70606;70607;70608;70698;20617;70725;70759;70782;70783;70798;70799;70800;70801;70802;20618;70803;70804;70805;70844;70845;70874;70875;70876;20619;70962;71021;71036;71037;71094;71139;71203;71204;71205;20620;71206;71207;71208;71209;71211;71210;71244;71253;71260;20621;71309;71374;71375;71376;71394;71493;71518;71531;71532;20623;20622;71563;71564;71565;71615;71791;71792;71793;71795;71794;20624;71796;71797;71798;71799;71837;71895;71855;71896;20625;71938;71990;71939;72005;72087;72088;72089;72115;72116;20626;72117;72164;72230;72231;72232;72234;72233;72235;72278;72326;72502;72366;20627;20628;72386;72424;72425;72457;72598;72479;72571;72503;72572;72573;20629;72575;72574;72576;72577;72578;20630;72599;72682;72719;72701;72720;72740;73398;72799;72798;72812;72858;72857;20631;72874;72875;72897;72876;72898;72900;72899;72901;20632;72902;72925;72978;72979;72980;73016;73017;73076;73077;73078;20633;73148;73092;73180;73179;73181;73202;73245;73223;73316;73288;20634;73328;73399;73329;73400;73401;73402;73513;73556;73514;73665;73666;20635;73680;73681;73709;73722;73723;73724;73725;73726;73727;73728;20636;73752;73753;73820;73785;73799;73786;73800;73801;73802;65105;73803;73821;73822;73882;73883;73884;73885;73887;73886;20637;73888;73889;20762;73890;73891;73892;73893;73902;73903;73904;73905;73906;73940;20763;73941;74022;74023;74034;74035;74420;76107;74134;74135;74136;74137;74182;20764;20765;74183;74184;74185;74211;74212;74213;74214;74285;74215;20766;74322;74508;74353;76199;77245;74354;74355;74356;74357;74358;74359;20767;74360;74361;74464;74494;74493;74509;76108;76109;76142;76143;20768;76158;76159;76160;76200;76201;76249;76250;76251;76276;76275;76294;20769;76295;76296;76297;76298;76354;76379;76378;76380;76381;20770;76382;76383;76385;76384;76386;76451;76425;76524;76525;76559;76560;20771;76561;76563;76562;76564;76565;76566;76568;76567;20772;76569;76586;76682;76587;76704;76705;76706;76707;76756;20638;76757;20773;20774;76784;76935;76785;76961;76962;76991;77019;76999;77568;77049;77085;77146;20775;77148;77147;77320;77198;77181;77199;77218;77219;77237;77236;77274;77387;77724;77300;20776;77321;77322;77323;77324;77325;77485;77420;77436;77486;20777;77664;77487;77488;77489;77490;77492;77491;77526;77525;77527;20778;77555;77569;77601;77570;77602;78465;77701;77725;77726;77744;20779;20780;77808;77807;77816;77809;77817;77818;77820;77819;77821;20781;77851;20782;77853;77852;77854;77897;77898;77961;77982;78010;78040;78041;78042;20783;78106;78107;78466;78504;78255;78256;78257;78258;78259;20784;20785;78260;78261;78467;78468;78505;78538;78539;78653;78654;78668;78698;20786;78723;78761;78762;78763;78764;78765;78821;78869;78888;79119;20639;20787;79120;79121;79122;79209;79210;79211;79212;79213;79214;20788;79244;79354;79333;79383;79382;79430;79431;79432;79433;20789;79434;79435;79436;79576;79598;79621;79688;79622;79623;79659;79716;20790;79689;79717;79740;79741;79718;79824;79823;79825;79852;79853;79854;80025;80026;20791;80027;80028;80029;80030;80031;80032;80033;80167;80034;80218;80168;20792;80391;80392;80410;80411;80412;80441;80413;80548;80549;80471;81041;21054;80851;80472;80473;80474;80510;80511;80512;80513;80514;80515;80516;81177;21055;80517;80550;80551;80552;80827;80826;81016;80852;80853;80854;21056;21057;80943;80944;80945;81017;81019;81018;81042;81043;81045;81144;81341;81162;21058;81163;81164;81165;81178;81296;81255;81256;81297;81314;20640;21059;81398;81399;81400;81412;81420;81544;81729;81644;81482;81483;81484;21060;81509;81566;81565;81567;81568;81645;81569;81646;81590;81570;81571;21071;81572;81573;81753;81668;81698;81754;81755;81756;81771;81772;81773;81774;81775;21061;81776;81879;81880;81881;81910;81950;81951;81971;82022;21062;82023;82069;82024;82070;82071;82072;82073;82074;82267;21063;82268;82471;82524;82497;82565;82526;82525;82642;82527;82643;82644;82659;21064;82660;82661;82662;82695;82696;82697;82765;82766;82847;82792;21065;83109;83086;82911;82991;82992;82993;83050;83051;83052;83110;83111;21066;83112;83134;83277;83176;83175;83177;83178;83180;83179;83181;83182;21067;83251;83252;83255;83256;83257;83258;83331;83259;83332;83260;83333;20641;21072;83261;83334;83262;83434;83544;83345;83344;83413;83414;83435;21068;83777;83758;83778;83760;83759;83761;83762;83779;83809;83861;83780;83810;21069;83811;83862;83863;83949;83950;83972;83989;83990;84045;84117;21070;84118;84119;84120;84121;84122;84123;84124;84125;84148;21182;84208;84316;84209;84317;84210;84318;84211;84319;84212;84213;84320;84214;84228;84229;21151;84230;84339;84487;84428;84429;84430;84664;84794;84444;84563;84564;21183;84612;84613;84614;84616;84615;84618;84617;84619;84620;21184;84635;84665;84666;84900;84915;84957;84958;85240;84980;21204;84981;84982;84983;84984;84985;84986;85042;85075;85076;85077;21216;85078;85079;85080;85081;85122;85123;85155;85154;85156;85157;21234;20642;85158;85159;85345;85344;85251;85578;85252;85253;85297;85265;85444;86400;85445;21270;85533;85506;85648;85507;85508;85509;85510;85511;85512;21291;85534;85579;85660;85682;85683;85684;85724;85735;85765;85797;21292;85798;85799;85800;85801;85872;85873;85874;85875;85907;21300;21568;85982;85983;85984;86102;86103;86144;86291;86145;86146;86147;86185;86189;86190;86204;21301;86205;86206;86207;86208;86218;86292;86293;86219;86220;86294;86244;86221;86295;21321;86296;86297;86298;86299;86310;86379;86443;86401;21371;86491;86415;86565;86416;86465;86466;86467;86492;86468;21372;86493;86494;86566;86629;86617;86650;86630;86651;86758;86652;86672;86720;86809;21373;86759;86760;86783;86784;86785;86786;86787;86788;86789;20643;21374;86810;86811;86812;86813;86814;86815;86816;86847;86848;86871;21375;86872;86896;86897;86944;86911;86993;87065;87066;87107;21376;87168;87108;87123;87169;87170;87203;87320;87205;87204;87216;87217;21377;87236;87237;87238;87239;87406;87369;87407;87408;87409;87462;87463;87464;21569;87466;87465;87468;87467;87470;87469;87497;87498;87499;87471;87529;87530;87531;87532;21588;87533;87535;87534;87536;87537;87755;88804;87756;87757;87758;87759;87761;87760;87915;21604;87774;87868;87814;87815;87816;87845;87846;87888;87916;87939;21612;88010;88011;88013;88012;88014;88015;88016;88017;88018;88019;88040;88455;88083;88084;27858;21613;27860;27859;88456;88637;88457;88409;88487;88516;88517;88518;88519;88520;88521;88522;88523;27861;88524;88525;88526;88576;88678;88711;88712;88861;88747;88748;88749;88750;88805;20644;27862;88806;88836;88837;88838;88928;89776;88929;88894;88895;88897;88896;88898;88899;89023;89024;88900;89025;27863;88901;88902;89026;88950;88930;88951;88952;88953;89078;89079;89732;89733;89100;89826;90421;89659;90598;89660;27864;89734;89865;89777;89778;89827;89828;89866;89930;89931;89932;27865;89933;89934;89935;89995;89936;89962;89937;89996;90822;90021;89997;90855;91255;90094;90095;90147;27866;90245;90188;90349;90306;90350;90400;90401;90402;90403;90404;90507;90405;27867;90406;90588;90824;90915;91256;90589;91333;90677;90825;90760;90678;90826;90827;90856;90857;90858;90887;27868;27869;90916;91257;90918;90917;91082;91083;91084;91085;91086;91087;91088;91090;91089;27870;27871;27872;91091;91092;91093;91094;91095;91258;91122;91181;91182;91183;91184;91185;91186;91187;91188;91189;91190;91191;27873;91218;91219;91220;91259;91320;91334;91341;91422;91423;91424;91425;27874;91451;91450;91498;91557;91499;91558;91559;91560;91561;20645;27875;20646;91562;91563;91564;91565;91566;91567;91568;91569;91725;91570;27876;91726;91728;91727;91758;91729;91914;91873;91874;91875;91876;91877;91878;91879;91880;91882;91881;91883;27877;91884;91893;92408;91954;91955;91956;91957;91968;92009;92010;27878;92011;92311;92033;92313;92312;92314;92315;92316;92317;92318;92319;92456;92409;27879;92511;92784;92583;92584;92785;92699;92750;92751;92966;92815;92860;27880;92861;92862;92863;92864;92865;92866;92867;93509;92868;27881;92869;92985;92999;93025;93045;93046;93047;93106;93107;93120;27882;93217;93241;93242;93243;93218;93219;93220;93398;93682;93399;93460;93683;93511;93510;27883;93559;93600;142021;93601;93602;93603;93604;93605;93606;93607;93648;93649;93684;93715;93773;93774;27884;93775;93827;93938;93800;93801;93809;93864;93896;93953;93954;93955;93956;93957;93958;93959;20647;27885;94044;94045;94068;94069;94152;94153;94154;94155;94156;94157;94159;94158;94249;94195;94287;27886;94288;94351;94352;94508;94289;94353;94464;94465;94466;94467;94468;27887;94509;94510;94573;94574;95025;94669;94730;94731;94732;94733;94734;94735;94736;94737;27888;27889;94954;95054;95053;95466;95284;95285;95371;95295;95318;95385;95386;27890;95425;95426;95427;97351;95428;95429;95430;95431;95432;95434;95433;95467;95566;27891;95567;95568;95569;95571;95570;95573;95572;95574;95661;95629;95807;96035;95808;95873;95949;95992;27892;95993;95994;95995;95996;95998;95997;95999;96000;96336;96304;96871;96406;96436;96437;96439;96438;96440;96441;27893;96442;96443;96444;96445;96483;96605;97852;96656;96872;97047;96719;96720;96763;96978;27894;96796;96927;97083;96952;96951;97853;96953;96954;96955;96980;96979;96981;97016;97017;27895;27896;97018;97098;97048;97049;97050;97084;97099;97208;97190;97221;97209;97301;102814;20648;27897;27898;97222;97223;97302;97303;97304;97318;97319;97320;97321;97322;97323;97324;27899;97383;97384;97521;97434;101833;100545;102258;97468;97523;97522;97551;97600;99121;97601;97602;97603;97604;27900;97605;97606;97607;97633;97608;97634;97658;97659;97719;97660;97720;97721;97722;27901;97723;97752;97753;97973;97778;97779;97793;97854;99093;97855;97856;97887;97936;27902;97857;97937;97917;99122;97938;99023;99024;99025;99094;99095;99096;99097;27903;99098;99099;99100;99101;99182;99195;100677;99196;99197;99198;99278;99279;99303;99435;27904;99626;100153;99582;99581;99583;99655;99656;99657;99658;99659;99660;99685;99723;99686;27906;27905;99724;99725;99726;100247;99965;99966;100154;100216;99993;100293;100249;100248;100098;27907;100099;100100;100265;100101;100379;100102;100155;100156;100218;100217;100219;100250;27908;100251;100252;100266;100253;100267;100254;100255;100268;100294;100411;100412;100413;100414;100460;100415;27909;20649;100509;100546;100547;100548;100570;100549;100591;100590;100632;100633;100662;27910;100919;100663;100664;100665;100667;100666;100835;100668;100755;100678;100781;100836;100837;27911;100920;101261;101148;100921;100923;100922;100924;100925;100927;100926;27912;100928;100929;100930;100931;100932;100987;100933;100988;100989;100990;101149;101024;27913;101062;101083;101150;101151;101153;101152;101155;101154;101157;101156;103319;101231;101262;101263;27914;101354;101545;101546;101769;101770;101809;101834;101835;101892;101893;27915;101894;101928;101929;101949;101950;102091;101952;101951;101973;101974;102092;102014;102015;102016;102033;27916;102034;102071;102093;102160;102161;102195;102197;102196;102259;102198;27917;102260;102261;102416;102417;102418;102419;102420;102421;102422;102423;102424;102493;27918;102522;102523;102580;102543;102525;102524;102582;102581;102583;102584;102678;102679;102680;20650;27919;102681;102697;102777;102816;102815;102817;102818;102820;102819;102857;102956;102957;27920;102975;102976;103047;103187;103217;103372;103218;103250;103249;103320;103321;103322;27921;103323;103324;103325;103326;103327;103356;103416;103417;103418;27922;103466;103641;103642;103643;103644;103645;103646;103667;103808;103691;103662;103692;27923;103731;103773;103774;103775;103776;103777;103778;103779;103780;103809;103810;103811;103812;27924;103813;103814;103815;103834;103835;103863;103921;104118;104119;104120;27925;27926;104122;104121;104143;104173;104211;104212;104213;104272;104317;104318;104319;104320;104321;104322;27927;104377;104323;104431;104477;104432;104496;104652;104807;104994;105542;104543;104569;104625;27928;105543;104712;104653;104713;104715;104714;104734;104716;104717;104735;104736;104738;104737;104739;27929;104995;104784;104808;104785;104810;104809;104844;104845;104846;104881;104882;20651;104883;27930;104884;105021;105037;105038;105099;105100;105101;105102;105104;105103;105105;105354;27931;105355;105107;105106;105173;105254;105544;105583;105649;105650;105686;105687;105688;27932;105724;105723;105725;105746;105745;105747;105726;105748;105727;105749;105750;105751;106482;27933;27934;105767;105766;106264;108750;106096;106074;106135;106134;106265;106266;106267;106268;106269;106270;106272;106271;106295;106347;106790;108751;106348;106371;106372;106373;27935;106483;106533;106534;106556;106557;106581;106558;106619;106582;106620;106675;27936;106676;106677;106678;106709;106749;106791;106792;125352;106793;106794;106816;106837;27937;106839;106838;106869;106927;106928;107145;106929;106968;106945;107087;107215;27938;106970;106969;106971;106972;106973;107023;107003;107146;107117;107147;107148;107192;27939;107193;107194;107257;107256;107293;108335;108370;108949;108371;108372;108403;108453;20652;27940;108483;108484;108514;108513;108582;108583;108658;108657;108706;108707;108708;27941;108710;108709;108793;108794;108833;108832;108834;108835;108841;108840;108842;108878;108843;27942;109058;108879;108950;108951;109002;109086;109199;109466;109200;109311;109467;27943;109312;109313;109314;109315;109317;109316;109343;109468;109469;109600;109648;27944;109649;109650;109680;109892;109681;109723;109798;109812;109940;109863;109893;109894;27945;110044;110045;110046;110047;110048;110049;110050;110051;110052;110094;27946;110124;110225;110191;110226;110262;110320;110263;110285;110264;110321;110286;110322;27947;110382;110395;110413;110474;110475;110549;110476;110477;110478;110479;110481;110480;110513;110550;110514;27948;110515;110516;110517;110532;110533;110551;110552;110611;110622;110623;27949;27950;110641;110939;110662;110721;110765;110805;110894;110895;110896;110897;110898;110899;110900;110921;20653;27951;110922;110923;110924;110940;110925;110941;110942;110973;111005;110974;110975;111006;27952;111039;111038;111040;111041;111061;111060;111062;111135;111266;111267;111268;117825;27953;111269;111330;111331;111374;117537;111349;111375;111510;111511;111512;111513;111526;111576;27954;111577;111578;111579;111580;111581;111640;111641;111672;111673;111748;27955;111749;111750;111751;112017;111752;111753;111843;112032;111844;112033;117479;112058;112083;27956;112084;112149;112109;112110;112189;112111;112112;112150;112113;112151;112190;112205;117331;27957;27958;117356;117357;117496;117538;117454;117455;117456;154827;117539;117630;117595;117631;27959;117806;117805;117867;117868;117869;117870;117871;117872;117873;118322;27960;117913;117904;117914;117915;118067;117934;117916;117996;117935;118794;118068;118358;118081;118082;27961;118323;118142;118083;118143;118324;118144;118200;118176;119300;118325;118201;118326;118327;118328;118359;118329;27962;20654;118392;27963;118393;119146;118492;118567;118591;118568;118751;118750;152537;118795;118796;27964;118797;118820;118855;118904;118905;118906;118907;119043;119253;118954;118966;118967;27965;118968;118970;118969;118971;118972;118973;119014;119118;119216;119254;119255;119256;119257;27966;119496;119301;119303;119302;119337;119338;119339;119340;119458;119652;119459;27967;119580;119497;119581;119653;119654;119655;125542;119826;119827;119828;119829;119830;119831;119832;27968;121062;121063;121095;121096;121161;121186;121187;121210;121211;27969;121212;121224;121244;121328;121345;121329;122398;122479;121346;121381;121382;27970;121432;121469;121592;121593;121594;122052;121470;121506;121507;121508;121541;122053;121595;121596;121597;27971;121598;121619;121639;121640;122054;122055;122610;122152;122153;122183;27972;122184;122362;122314;122399;122480;122481;122482;122499;122500;27973;20655;27974;27975;122533;122646;122647;122667;122668;122669;122716;122811;122812;122813;122868;27976;122892;122893;122946;123001;136604;123074;124152;123075;123076;123077;123078;123127;123502;124114;27977;123414;124271;123503;123457;123555;123504;123505;123641;27978;123675;27979;123676;123677;123678;123679;123680;123681;123682;123750;123751;123786;124272;123787;123930;123931;27980;123932;123933;123934;123973;123999;124019;124085;124115;124116;27981;124191;124273;124274;124297;124275;124322;124323;124758;125386;124407;125765;124408;27982;124457;124561;124458;124587;124676;124677;124678;124679;125593;124696;124759;27983;124717;124718;125025;125026;125027;125028;125134;125135;125474;125475;125136;126095;125353;125137;125138;27985;27984;65106;27986;125139;125140;125141;125142;125143;125144;125145;125215;125251;125252;125253;125337;27987;125338;125339;125766;125948;125354;125355;125476;125543;125544;125594;125545;125621;20656;125622;20657;27988;125623;125624;125625;125704;125705;125720;125721;125722;125723;125724;125725;125726;125767;125768;125769;27989;125770;125771;125772;125811;125812;125813;125851;125853;125852;125854;125998;126064;126065;27990;126066;126067;126096;126068;126097;126098;126099;27991;126174;126241;126242;126255;126254;126257;126256;126503;126305;27992;126306;126374;126375;126464;126445;126465;126504;126564;126563;127791;126565;27993;126566;126567;126568;126598;126698;126745;127093;126746;126747;126748;126749;27994;126772;126773;126774;126815;126816;126817;126818;126947;126948;126949;126950;27995;127792;127041;127886;127042;127887;127094;127043;127095;127096;127793;127097;127794;127795;27996;127796;127798;127797;127799;127800;127801;127802;127803;127804;27997;127805;127806;127839;127840;127888;127890;127889;127891;127892;128023;128024;20658;27998;27999;128025;128026;128027;128028;128029;128031;128030;128050;128049;128076;128075;28000;128320;128321;128322;128323;128412;128993;128474;128680;128475;128476;128477;128505;128478;28001;128506;128681;128507;128521;128545;128614;128629;128630;128682;128631;128754;129048;28002;128755;128756;128874;128967;128875;129289;134888;129049;129050;129290;129351;129384;28003;129385;129466;129488;129489;129490;129556;129491;129712;129677;28004;129749;129775;129774;129808;129882;129967;130146;129968;130003;130052;130147;130148;28005;28006;130149;130150;130151;130152;130167;130200;130585;130362;130392;130393;130394;28007;28008;28009;130395;130427;130513;130396;130586;134657;142870;130428;130429;130587;130588;130622;130623;130756;130757;28010;130961;131694;130962;130963;131011;130964;131012;131013;130965;130966;131014;131313;131015;131016;28011;131017;131072;131074;131073;131161;131182;131162;131225;131226;131314;28012;20659;131315;132011;131392;131559;131560;131561;131695;131696;131562;28013;131563;131564;131565;131722;131723;132012;131761;131923;131924;132013;132014;28014;132015;132095;132016;132310;132240;132689;133142;132690;132691;28015;132692;132746;132747;132768;132748;133224;132854;132929;132930;132931;132932;132933;132953;28016;133039;28017;133040;133143;133178;133144;133179;133204;133205;133206;133207;133225;28018;133289;133548;133290;133292;133291;133350;133293;133294;133351;133352;133353;133354;133355;28019;133356;133398;133449;133450;133496;133497;133521;133522;133523;28020;133549;133524;133550;133551;133646;133647;133648;133649;133715;133764;133840;28021;28022;133793;133794;133795;133796;133798;133797;133799;133800;133950;133951;134037;28023;134038;134039;134298;134299;134300;134301;134367;134402;20660;134442;28024;134658;134659;134660;134661;134662;134663;134664;134699;134758;134856;28025;135026;135027;135028;135029;135170;135171;135229;135269;135270;28026;28027;135271;135282;135283;135284;135285;135286;135398;135399;135455;135581;28028;135672;136398;135846;135847;136027;135894;136281;135895;135966;135896;135967;135968;151919;136083;136028;28029;136029;136084;136171;136085;136086;136087;136088;136089;136173;136172;28030;136282;136400;136399;136401;136420;136545;136493;136546;136605;136606;136607;28031;136608;28032;136663;136692;136964;136708;136709;136710;136711;136730;136731;136732;136965;136733;136759;136966;28033;136801;136802;136803;136894;136943;136944;136967;137043;137044;137045;28034;137046;137133;137178;143270;137179;137232;137295;137352;137296;137298;137297;28035;137299;28036;137300;137301;137353;137553;137554;137555;137556;20661;137625;28037;137744;137824;137745;137825;137848;137872;137849;137891;138132;138133;138134;28038;138135;138136;138137;138138;138139;138165;138166;138167;138168;138325;28039;138208;138326;138497;138498;138552;138834;138835;138836;138872;138873;28040;138874;138997;138875;139179;139365;138998;138999;139023;139024;139180;139025;139026;139027;28041;139181;139028;139366;139182;139311;139312;139313;140028;139367;139368;28042;139369;139371;139370;139372;139373;139480;139479;139567;139568;139596;139659;28043;139660;139662;139661;139692;139693;139724;147981;139725;139770;139782;28044;139783;140176;139784;139848;139908;140029;140265;140030;140031;140177;28045;140178;140179;140180;140182;140181;140184;140183;140266;140267;28046;140450;140451;140458;140589;140590;140591;140593;140600;140592;20662;140603;140601;28047;140604;140647;140646;140645;140639;140641;140644;140642;28048;140640;140637;140648;140638;140643;140650;140652;140649;140651;140659;28049;140701;140717;140720;140719;140723;140722;140730;140724;28050;140729;28051;140751;140753;140736;140755;140752;140754;140786;140784;140788;28052;140787;140801;140802;140803;140800;140925;141482;140929;140920;140924;140922;28053;140923;140919;140921;141825;142027;140928;140927;141092;141054;141109;141112;28054;141111;148334;141097;141095;141922;141110;148842;141180;141182;141178;141183;141179;141181;28055;141177;141206;141176;141302;141301;141450;141451;141449;141448;141447;28056;141459;141936;141483;141537;141542;141543;141545;141479;141538;28057;28058;141539;141541;141544;141615;141620;141621;141824;141862;141821;141863;141923;142502;20663;28059;28060;141822;141934;141820;141913;141921;141932;141937;142367;142001;142865;142017;142026;28061;142055;142368;142218;142369;142370;142371;142464;142499;142501;142498;28062;142735;142500;142729;142732;142730;142727;142731;142721;142741;149521;142736;28063;142739;142866;142969;142968;142966;142967;142998;143121;143127;143120;143119;28064;143214;143215;143206;143242;143249;143264;143266;143271;143267;143269;144890;143268;28065;143376;143374;143375;143373;145013;143428;143430;143432;143433;143431;144111;143429;144110;28066;143445;144112;143476;143587;143585;143584;144011;144012;144078;144013;144015;144016;144709;144066;28067;144300;144299;144704;144337;144710;144745;144747;144746;144751;144750;28068;144749;144752;144789;144786;144785;144788;144808;144787;144849;144897;144869;145228;145234;28069;28070;144870;144943;144944;145011;145007;145046;145047;145048;145078;147987;145084;20664;28071;145081;145221;145409;145410;145464;145463;145517;145514;145510;145516;28072;145518;145511;145512;145515;146349;145542;146043;146069;146044;146306;146066;146070;28073;146068;146208;146209;146301;146302;146303;146348;146351;146350;146375;28074;146385;146384;146435;146436;147988;146437;146494;146538;148006;148011;147979;28075;147996;147976;147999;147980;147986;147990;147977;147975;147983;28076;148009;147978;148005;147982;147991;147997;147995;148008;148000;147994;147984;148004;147993;28077;148007;148010;147985;147998;147989;28078;28079;28080;20665;28081;28082;28083;28084;28085;28086;28088;28087;148001;147992;147974;148003;28089;148002;147968;147970;147973;147972;147969;147971;148089;148034;28091;28090;148108;148130;149032;148135;148891;148218;148244;148248;148260;148279;28092;148295;148335;148498;148495;148491;148493;148497;28093;148492;148496;148494;148555;149044;148554;148689;148691;20666;148690;148819;149244;148810;28094;148856;148859;148991;148855;148938;148953;148992;148987;149055;149092;28095;149093;149251;149474;149252;149253;149323;149306;149322;149332;150325;149324;149419;28096;149417;149418;149409;149408;149405;148911;149416;149661;149410;149415;149407;149411;28097;149406;149404;149446;149478;149477;149519;149520;149527;149651;149649;149650;152134;28098;28099;149742;149727;149834;149818;149906;149907;149908;149903;149905;149991;150029;149988;150712;150030;150028;150324;28100;150130;150131;150492;150129;150132;153852;150134;150144;150320;150143;150151;150152;28101;150155;150164;150232;150233;150234;150394;150292;150420;150436;150691;150690;150692;150809;150793;150846;28102;150857;150858;150939;150867;150942;150949;151017;150947;150948;150953;153127;151000;150954;20667;20668;28103;150957;153131;150955;150956;150940;150952;150995;151444;151443;151583;151451;151452;151679;156562;28104;28105;151800;151680;151836;151830;151835;153130;151921;151907;153129;151837;151920;28106;151924;152002;156918;152555;152081;152079;153942;152135;152136;152144;152145;152178;152143;152229;152180;152181;28107;152230;157372;152216;152235;152362;152363;152417;152420;152416;152508;152830;152539;152536;28108;152632;152637;156633;152640;152639;152681;152665;152702;28109;152774;152784;152868;152870;152846;152869;152917;152913;152918;152916;28110;152953;152954;152957;153138;153134;153143;157224;153145;153139;153361;153144;153137;153142;153156;28111;153174;153178;153445;153526;153179;153177;153476;153527;153183;153211;153243;153367;153366;153391;153408;154053;153407;153406;153511;153510;28112;153447;153514;153446;153449;153448;153508;153573;153568;153569;153593;153591;153592;28113;153768;153766;153785;153781;153801;153769;154162;153770;154205;153799;153779;153802;153797;153788;153851;153789;153856;153853;20669;28114;153854;153855;153857;153866;153888;153910;153908;153925;153959;154203;28115;28116;154204;154227;154242;154241;154273;154279;154278;154352;154274;28117;154328;154337;154338;154405;154779;154431;154415;154414;154413;154569;154704;154709;154778;28118;154783;156561;154883;154903;154977;154974;154972;155222;154980;155221;155162;28119;155232;155220;155297;155892;156041;155296;155295;155351;155308;155375;155374;28120;155602;155655;155637;155672;155681;155687;155722;155727;155729;28121;155751;155752;155749;155747;155768;155750;155767;155766;155923;28122;155908;155943;155935;155944;155936;156043;155938;155939;28123;155925;155952;155970;156203;156040;156042;28124;156055;156161;156054;156076;157139;156105;156104;156122;156168;20670;28125;156171;156155;156190;156472;156485;156482;156486;156484;28126;156481;156483;156544;156568;156543;156612;156613;156608;28127;156712;156645;156743;156650;156711;156742;156744;156772;28128;156801;156853;156804;156802;28129;156880;156915;156879;156917;156934;156914;157143;156962;156960;156961;28130;157057;157059;157112;157085;157160;157162;157243;157299;28131;157286;157287;157357;157349;157371;157350;157351;157458;157353;158125;157352;157355;157404;28132;157370;157356;157457;157456;157843;157463;157882;28133;158072;158053;28134;158212;158134;158135;158160;158162;158258;158255;158159;158161;158256;158253;158249;158254;20671;28135;158273;158572;158679;158259;158271;158272;158454;158455;158456;158250;158457;158458;28136;28137;158502;158680;158574;158573;158683;158646;158688;158731;158737;158453;28138;158789;158817;159022;158866;158901;158902;158905;158939;158941;158940;158937;158932;28139;158938;158987;159059;159020;159024;159058;159026;159107;159142;158728;159144;28140;159143;159137;159138;28141;28142;28143;159160;28144;28145;28146;20672;28208;28209;28210;28249;28251;28250;28288;28357;28358;29236;28359;28360;28372;20673;29213;29214;29304;29696;29237;29215;29238;29239;29305;29738;29739;29740;20674;29793;29892;29917;29918;29919;29920;29922;29921;29964;29978;29979;30018;30019;30042;30043;20675;30147;30183;30252;30184;31092;31164;20676;31093;31165;31166;31341;65107;31405;31461;31603;31406;31625;31638;31783;31639;20677;31677;31678;31700;31702;31703;31701;31704;31784;31848;31785;20678;31966;31967;20679;32053;32028;32029;32185;32186;32054;32187;32189;32188;32190;20680;32191;32192;32193;33197;65108;33254;65109;32357;32359;32358;32360;32431;32430;33198;32432;33093;33199;33217;33388;33124;33255;20681;33436;33389;33464;33544;33390;33504;33531;45473;33758;33560;33827;33575;20682;33759;33760;33587;33808;33807;33809;33940;33941;34059;34048;34080;20683;34094;34116;36904;37738;37936;65110;36243;38073;38000;37910;36953;36855;20684;36256;37333;37068;38049;36805;37662;37836;37944;36491;36681;20685;20686;38023;37570;37161;37499;38095;37631;38074;37538;36711;36364;20687;37649;37886;37299;36499;37887;36916;37203;37355;37177;36611;37546;36899;37965;37045;37683;20688;37853;36745;37207;37977;38099;36652;36927;37422;36374;36896;20689;36262;36225;65111;36984;37474;36761;37984;37654;36815;36657;36674;37447;37968;20690;37828;20691;37888;37746;37974;65112;37362;37162;37876;36382;36220;36714;38132;20692;36397;37469;37842;38044;37381;36454;38011;36279;37217;65113;65114;36218;20693;37002;38070;36720;36665;36786;37810;37148;38131;36478;37740;65115;65116;38036;37504;20694;37042;36589;36749;38037;36746;37364;37956;38092;36361;37607;20695;20696;37463;37220;37359;36471;37935;37983;38148;36537;36366;37606;36907;37337;36418;37152;37498;37819;20697;37389;36530;36635;37438;20698;37978;37849;38194;37762;37806;36228;38205;38195;38647;38196;38685;20699;38686;38715;38714;38716;38741;38758;38759;39362;38777;38848;38984;20700;39390;20701;39312;39311;39313;39336;39337;39533;39353;39363;39371;39419;39491;39515;20702;39516;39517;39518;39534;39586;39600;39601;39619;39620;40348;20703;39786;20704;39787;39788;39789;40655;39800;39851;44326;40361;40329;40417;40416;20705;40656;40490;40491;65117;40492;40528;40529;40531;40547;40576;40590;40751;40530;40657;20706;40658;40752;40767;40943;65118;40768;40769;40794;40848;40906;40944;20707;20708;40981;41006;40982;41013;41046;41045;41606;41624;41940;20709;41969;41968;42043;42051;42050;42079;42080;42081;42082;42093;42167;42146;20710;42237;42207;42344;42208;42209;42474;42407;42335;42408;42466;42467;42817;42795;20711;42858;42891;43001;43026;42930;43058;43087;43059;65119;20712;43097;43108;43109;43110;43153;43366;43368;43367;43622;43823;43824;65120;20713;43825;43874;65121;43897;43898;44039;44057;44058;44106;44107;20714;44108;44115;44133;44323;44669;45549;44327;44336;44335;44655;44399;44656;44586;44585;44594;20715;20716;44641;44640;44688;44912;44913;44985;44936;45016;45037;45038;45042;45079;45080;45081;20717;45108;65122;45342;45377;45343;20718;45484;45483;45398;65123;45475;45476;45474;45485;45486;45487;47159;47160;47822;47823;45550;47821;45551;45589;20719;47162;47161;47574;47824;47825;47855;46014;45575;45576;46179;46192;46254;46336;46253;46672;20720;46688;47799;46691;46700;47618;46731;65124;46752;46810;46811;46812;46836;46855;20721;47035;47108;47109;65125;47110;47111;47575;47826;47856;47857;50342;47679;20722;47695;47734;47778;47742;47858;48282;48242;48283;48253;48261;48262;48315;20723;48361;48349;48362;48381;48904;49268;49169;48757;48758;49170;48905;49269;20724;49065;49066;49102;49140;49171;49141;49303;49304;49305;49236;49283;20725;49306;20726;49644;49643;49673;49761;49762;49763;49764;50082;49765;49772;50083;11140;50302;25345;149495;14363;23651;149496;71954;10542;19289;25821;35608;61517;61516;106379;55049;71883;87869;57574;55048;106380;87870;106381;87871;106382;106383;106384;87872;10289;57891;35309;59642;42843;51574;42844;99982;22869;152742;152743;11154;152741;33851;20161;52633;79235;18586;12115;12285;11228;46882;12297;64485;152357;72582;57641;33850;108797;92321;11671;12198;23966;19497;19498;19499;92322;18260;19698;11359;10291;11746;35707;94046;35708;35710;35709;94048;94047;35711;94049;10829;35712;35713;11765;11699;15967;77704;77705;77706;52670;11280;12272;10645;24341;16272;19938;77703;10292;10374;104124;60109;141118;136949;104125;104660;104659;136950;54614;19760;20992;139457;136613;11981;17211;17282;47862;16455;16203;70764;14785;130168;14792;14833;16280;20133;12004;82704;69101;76388;78889;82705;82706;11471;19717;82707;19757;55022;24734;19427;20175;18551;34820;16232;16230;101294;146990;52504;91126;100272;94671;104888;100273;101301;101295;94672;20148;20181;20182;19397;25420;31861;31862;33900;55983;56238;91127;17226;56239;31419;31409;10293;22078;22077;25990;12094;64292;64293;38889;16140;38890;10294;16062;14823;11472;32381;42347;45406;42348;11526;14847;11107;11749;20968;18494;40549;33819;62798;62100;68984;62901;76536;83729;86567;72007;72008;72985;88051;88052;90680;92458;92459;86568;96609;99200;99509;101818;103930;94168;109682;111208;118204;106104;124167;130056;135586;148897;63646;42831;121247;40548;132962;145222;156846;126778;138527;151942;78549;141784;154246;92788;92789;69044;69045;10295;69043;158459;65701;46332;158460;54644;11679;20993;20346;80083;80084;80082;150989;10744;82531;82532;106719;82533;31642;31853;33278;33485;34400;34730;106720;35068;40466;41626;48760;55024;55608;138341;63137;48906;50650;51772;51851;52976;53405;58416;138899;60049;63381;66216;69015;138900;72279;70560;137358;137357;78626;137753;137397;138342;138343;100592;105294;112216;136896;146102;111518;136999;136895;126246;128080;136422;69016;31852;69017;69018;20066;122534;40370;40372;40373;40374;40375;40376;40377;40379;40378;40380;40381;52010;40382;40383;40385;40384;40386;40387;42178;40388;40389;89112;40390;40391;40392;89113;89114;40393;52011;89115;89116;42179;42289;42870;89117;89118;52012;89735;43826;45386;89736;44642;44993;89737;45402;89738;89739;56246;89740;46765;52013;47150;49085;52014;89741;49703;89742;50611;50858;89743;50985;89744;51077;89745;99166;51422;89673;89674;51971;52582;89675;53592;89676;89677;53840;89678;54968;89679;55747;56508;89680;56665;89681;89105;57749;58362;58302;58535;89106;89107;58744;89108;58903;89109;89035;58977;89036;59506;89037;59966;89038;61747;62944;89039;63332;64642;64643;64812;65735;66723;69193;69550;70527;71214;71245;71617;72006;87673;87674;72958;73469;87675;87676;73851;87677;74244;87678;74465;87679;77630;87680;78025;79762;87681;86254;81079;87889;88954;88906;92949;96084;93512;99102;103357;96338;105410;105584;105768;110901;110902;111350;118360;118955;123556;124192;125146;126699;127807;128994;129161;130346;131018;132017;136174;137047;137354;139849;137826;143166;141757;31727;106585;106584;118091;57397;140044;140043;151128;140045;151130;151129;134217;133843;133844;152047;70448;136746;20094;44646;121350;89661;89662;89663;89664;89665;89666;89667;89668;89669;89670;89671;121351;121352;59447;56997;70877;70878;70879;81083;76368;86945;87940;70880;70881;70882;70883;70884;70885;70886;70887;71773;72037;81084;76203;80037;79862;86946;87941;70888;71774;83781;73917;74470;78108;81085;86947;87942;99129;103375;87943;99130;102698;99131;103376;105614;134876;105486;105782;134877;134878;111759;118466;118885;123518;124300;125218;128035;129493;129497;138475;108711;146827;151665;158494;140039;143221;145090;132856;129825;152411;152675;152672;152225;130004;130153;156560;76945;134216;82741;94053;99708;122976;111386;111601;132753;76964;76966;84150;84804;99709;104852;110295;105787;110294;111602;140772;129498;143450;141803;157129;73895;73896;76944;44645;45414;57399;57398;63113;63112;31729;32503;33105;34156;34818;36117;57400;42308;51057;45541;54996;77963;77962;78826;95260;78670;78671;87762;87763;63075;63074;77332;84219;84220;31728;72038;72039;71052;73671;76453;84221;74264;81184;87925;92944;95287;97989;111975;59091;59729;63076;73672;76454;81185;58793;71231;74265;84805;87926;91226;71051;92945;95288;97990;105555;105783;110098;111978;20301;20729;26200;57395;105788;111220;125884;133208;151012;151285;153547;153544;153545;153546;105793;84340;66897;76426;66896;82899;76947;79147;76946;63062;146825;150163;153889;63061;84341;154017;156035;82708;76360;82710;78669;82709;76495;145402;67141;78508;79863;99474;102084;105514;76994;56957;66908;63060;56958;76356;77727;66909;79864;83184;47897;66812;65209;65223;66274;66806;70612;76457;77728;79865;81146;83186;86124;86125;86255;87592;90710;91322;91713;92870;95468;103377;99475;104654;105784;106950;111760;112207;129503;135411;150982;140040;149902;146826;155790;72119;90711;91828;91829;63681;64920;63684;63682;63683;63685;33106;59372;40907;90763;93191;106621;149786;90351;90764;90352;92841;93051;119015;135923;119016;105789;92842;134163;119834;152873;148255;91339;105794;95441;156932;105790;91340;81315;100717;105586;112208;119304;105795;78024;78771;91457;119037;119038;112209;57396;143574;152534;152872;156361;78857;82742;25119;26201;72040;73673;76455;84222;72041;71054;143554;74266;81186;87927;92946;95289;97940;99104;100417;103379;111757;111976;118464;134626;59092;59730;63077;71053;73674;76456;81187;84223;93521;97834;58794;74267;64921;84806;87928;91227;118980;118883;119098;123516;125883;124298;129495;130453;131129;132417;134627;134973;137663;137077;143223;144852;150961;149853;157422;157130;92947;95290;97941;158148;99105;100418;99590;103380;104853;105791;105487;110099;105785;111979;111761;123002;118467;125224;127138;140773;26911;10342;10758;26925;61708;104885;19288;66174;65792;30150;11786;19229;11165;10463;11397;52704;52703;55523;64558;64559;73595;76355;95657;11731;52656;20317;30108;50829;39328;50971;21336;51060;10650;110557;152701;84399;155732;154458;11185;11184;69864;127108;50514;15520;50513;10296;15910;20061;15437;19474;21739;15402;14230;62735;62736;41058;65188;62737;16270;60061;60062;60063;10610;74262;74220;74221;74218;74216;74219;69370;105732;60017;105733;60018;103050;48264;12006;72771;83346;55640;103051;39471;11470;52003;50504;43111;121479;108807;12224;47863;57640;44670;43067;10470;10297;22257;11771;22306;21311;10816;24864;18292;18287;14365;18288;40773;11515;11516;20250;18572;18571;11794;19502;21566;24780;14186;17142;10298;18122;11095;11315;10505;24004;11424;10526;38808;22309;25681;10299;10592;11639;33859;22047;69275;69274;58620;81787;10475;69321;11668;10300;81702;58411;19590;58412;20014;15787;18478;12005;22206;32124;17732;17733;17734;87011;90709;92606;94511;105484;96803;11486;11628;11627;17735;17736;17737;17738;17739;17740;124338;17741;57040;17742;17743;109429;111665;126262;43352;56979;10697;11606;34781;33932;14722;44316;44315;10698;35374;47898;17771;52756;109553;10757;14382;108534;108535;108536;108537;108539;108538;108540;21785;22300;108542;108541;108543;108544;108545;108547;108546;108548;108549;108550;108552;108551;108553;108554;117602;77707;108555;108556;108557;108558;108560;108559;108561;108562;108563;146497;127911;146488;128280;146498;146495;146531;146496;20343;11279;67257;49704;49705;11732;62183;62184;10367;12074;10662;19781;31865;11089;10301;18177;73758;69516;42292;70119;69517;73520;83739;83740;83742;83741;29306;73759;11151;83743;20108;29871;10302;10557;17368;63135;10303;20839;24235;10476;10304;25087;25088;141853;141562;92724;94582;142142;142224;142138;141561;141852;141564;141563;141920;141918;141914;142141;142060;141850;141565;141916;141851;141919;136410;139065;138091;138878;140453;142059;139871;141469;140791;145069;146451;145535;146860;146859;148850;149787;152191;153587;45415;45416;45417;45419;45418;36132;34501;38978;44588;49690;45429;45423;45422;33127;34219;35659;36161;39450;41057;56683;45430;49691;51510;53475;55649;57607;58594;62394;70022;45420;142140;45421;141917;141566;140462;140463;141915;140464;142139;136897;136892;35082;47112;50561;52615;55169;56229;58595;59728;62413;64097;68982;36133;72061;76967;78604;81825;40823;42821;45431;56348;81401;58596;59505;64380;61459;66374;69449;72062;76995;66375;62975;69021;71229;96178;100221;77438;74235;83290;80398;86018;84639;90316;94512;97355;97858;106843;108759;158561;133529;11162;86019;100123;102199;102200;102201;133270;133271;119678;124566;125595;119679;135771;136180;136183;133272;133273;135720;126052;119680;133274;136426;124023;141497;124024;124025;141498;133275;141472;141468;125630;132076;131733;129097;133360;133696;135180;135702;137398;137368;141473;57034;57826;87171;18047;23638;157866;158562;92725;128065;57709;62943;63098;63099;62120;73103;99906;57710;31411;124567;125896;132341;133357;133402;137633;137658;139326;139237;139238;140187;139227;139730;57708;108485;83288;83491;93049;96663;141344;141343;101838;141345;141347;141349;105082;129168;141348;108883;108486;141342;141346;123510;99907;78739;78740;74155;79691;102175;73385;74156;77533;78741;82850;84571;93075;93076;93026;102176;77534;79216;78742;156724;83872;93027;91916;106395;106396;73382;73383;73386;73384;73206;73207;73208;73499;72903;72645;73209;74293;77535;72646;77536;74157;74158;74159;77537;74160;74161;74162;74163;79217;77538;77539;77540;78743;78744;78745;78746;82851;84572;84573;83873;86997;87775;94200;99236;100222;128995;105587;108487;108488;107260;128996;128999;129000;129001;117937;129002;128997;129003;128998;61488;63097;77541;82029;83055;89689;102996;103568;72644;77542;17337;80855;70070;80856;71466;80857;80858;80859;134308;23639;70069;23649;11181;102586;27803;16173;11010;10616;11692;76777;76778;76598;76597;21749;19946;16277;11584;11333;11542;20375;11533;62966;64244;62202;11688;10305;10487;12083;10466;24671;38734;16070;10306;63280;140578;11274;21729;51988;12019;96533;96534;108811;10307;20826;20973;21733;21738;22921;25770;25956;27040;29998;33820;35788;38858;43181;47717;50379;50846;51091;56681;57363;59756;67207;71787;11530;19217;15817;16199;15952;16152;16204;30187;30186;30185;10365;158243;112194;131317;147420;12054;70613;70614;70615;131835;70616;70617;70618;80887;70619;70620;74442;70621;70622;70623;70624;70626;70627;70625;70628;70629;66420;46016;141782;70630;141783;62516;152102;62517;77668;70329;70330;63620;10940;139239;151482;20097;38652;48214;47698;48215;49068;53373;54956;55652;62976;70331;10309;21674;54955;22022;23732;25879;10310;10311;21223;20227;11847;11430;11429;10312;10313;10314;28182;25684;20393;20391;24277;20392;22072;31641;122448;54629;54585;15912;15970;40564;10315;10316;72388;72389;73613;122422;76167;78078;21737;26027;106629;11884;23648;72387;34335;17362;78675;34217;34218;11559;34113;78673;35629;36127;41029;69105;77731;79251;70762;69881;71521;72942;73864;76150;76992;77732;89103;90786;91820;79252;92816;80459;81672;83488;84398;85405;86480;87824;40335;48213;55510;48943;40999;43350;44338;46864;49978;57538;56689;58517;59239;60116;61571;50678;51458;53473;52502;55411;56163;54942;61572;62477;63095;65253;64361;66543;66894;56164;57539;58518;56690;59240;60117;60118;70763;69880;71520;72941;61573;63096;62478;64362;66544;65254;66895;69104;87825;103984;102919;89104;90787;91821;93518;92817;93940;103985;95435;97574;96765;99437;100671;101898;102920;102921;119419;118206;121107;129301;124164;125365;126923;103986;105007;106142;107093;108885;126921;110269;129061;131950;134114;111387;140777;136922;117339;119420;118207;121108;124165;129299;125367;124166;136926;140775;126919;129059;125369;131948;133212;134110;133215;147645;148946;151643;134112;155571;135857;136924;138087;140757;139573;142678;144634;142421;155573;144642;156390;144640;146105;147647;157893;148948;151641;154824;156388;158992;34112;56710;97997;104741;111227;105151;137657;143151;88958;64687;24270;24269;88959;64788;100994;24282;55438;55437;45050;45051;43830;48337;72482;73437;51187;24271;45052;61797;71637;71246;72684;40477;155963;52001;44871;51186;85736;102992;70767;56467;24272;88960;104854;104855;105045;108411;104856;104857;59275;88961;65548;88962;91990;51902;34220;135860;24871;25197;34252;42897;144455;42898;144456;55472;70768;52668;59641;88963;24274;137565;24273;11108;21625;52616;63619;38733;18246;11360;18601;18301;24759;125680;106376;42801;72960;51860;51341;106306;51939;106307;106377;56620;106378;59048;60100;72984;62046;64452;69997;67021;73471;77157;79437;83053;83138;83351;85082;85243;85985;87921;88579;91100;91101;91810;93111;93516;96606;96906;97635;100298;104356;103358;105004;106304;111229;109034;125597;119615;125596;122823;128554;129849;132099;136179;137627;142420;149475;148844;155026;153173;159009;156546;105025;30129;63326;25291;73378;62414;73271;64247;19414;105358;32080;18420;76169;62008;79421;123004;74108;18297;81385;11703;30109;15988;105163;64243;105258;64248;64556;65704;79385;64259;63687;15443;73686;72152;29745;69852;141810;62205;62314;51586;65764;76526;76071;40577;76072;40578;24237;118977;133846;140193;151189;101842;140577;139873;136286;136191;136176;136287;151025;139872;133856;118935;140211;101841;64894;64245;140466;72961;59387;105174;97210;34994;59311;47681;80475;63302;105022;105162;24014;76873;76874;24011;66176;76872;105023;105024;100028;84019;64264;90067;110482;66304;80553;64991;63064;35370;123643;92360;69518;105108;77373;101302;101303;126382;82827;66305;83524;83525;64895;85629;105372;64453;14836;16023;33391;20224;24757;20336;60015;11049;15557;18221;52543;38925;40592;58274;19306;51096;10317;55443;11222;19589;20902;11560;11167;14597;12108;40771;40772;65126;40770;14599;14586;14584;14598;11094;14585;15857;33139;44046;11645;20377;57031;57032;14301;11811;11332;58133;17602;14371;10318;11331;12098;14302;10452;10319;14372;11912;19680;42057;34850;26194;11422;22254;11919;11778;51080;12200;11084;24245;18366;31657;71024;11239;10515;12201;11077;11078;11127;11129;11065;11235;10687;10320;11069;11061;10321;10597;40862;40861;40332;40333;81513;81514;81515;81438;29981;21312;22090;25117;18037;81437;33822;18036;19426;20372;44329;20212;10891;14644;14645;14646;14647;35081;144755;92701;93802;94162;112210;95630;96958;96957;96959;96960;99398;97388;99399;100124;102585;103328;102842;104214;103972;103973;103974;103975;103976;103977;103978;103979;103700;104898;105490;104899;105491;105492;105493;107097;105775;106902;107098;107099;109573;109574;109727;111379;111380;111381;112156;112157;112158;112159;119656;119657;118570;119658;119659;119660;119288;134165;122870;122871;145062;122872;122873;122874;122875;122876;122877;135292;130759;125389;130760;132934;131133;131019;134172;134174;134171;132343;132339;134170;132316;134307;132391;136189;135928;149087;149085;144712;138363;144713;149065;149066;149089;144650;144862;144794;141836;140794;144975;141501;144856;144784;141502;144857;149033;144976;149297;144714;145546;142889;144651;149088;144743;144783;144452;149086;146596;148843;152209;152208;154826;156325;11546;74328;74327;78089;18100;32480;70368;18141;18266;132995;18267;18258;18268;18642;18206;19549;20951;21027;22498;25637;23751;29965;33167;34244;33478;35566;38790;40807;44943;44944;47106;51901;70369;70370;70659;70660;72581;87322;87323;87324;86710;87325;87326;87327;127109;20062;48254;42896;26971;11814;11188;11934;47701;10322;47680;13841;21338;44942;10559;17608;11587;12203;11527;87736;25342;42089;54844;12068;55535;59174;58386;59606;62121;66859;69137;71864;11431;30130;18614;24902;32030;18613;31606;14614;25372;24999;42435;35326;21581;11439;15480;24908;25493;20213;35278;11508;29870;30122;11698;11213;31679;11121;11120;10323;10324;10325;12020;66349;29825;10512;14806;15859;17305;14782;11588;30054;16058;11432;11993;30205;58000;25932;24913;25459;23870;25955;25798;25243;19515;18523;18628;14269;34448;18150;15892;18176;18522;20092;20737;34756;10684;31683;50495;66945;70497;56091;71535;91349;91714;72770;100615;102495;104655;70838;158452;35786;62757;35787;100616;43391;44620;105042;22526;15452;34364;19606;16205;11925;62367;20254;22234;43098;22233;39500;131287;39501;49708;34108;22270;22273;53533;58454;58455;29832;49287;63073;58456;11702;11708;18524;36088;16059;51833;16178;17199;29896;10327;11681;45085;35803;72774;142893;142892;127133;142878;72670;72585;72669;14184;72584;117462;21620;117463;14325;10830;14660;48273;14726;119242;21165;140133;139925;135188;158168;25460;10447;10702;10569;11769;118801;11985;11234;10777;19429;17312;24698;40886;73104;72813;148374;148706;78430;96448;15781;17304;10714; + + + + assessment_mode + webapp_known + + + TARGET + testphp.vulnweb.com + + + local_portscan.snmp + yes + + + listen_address + 0.0.0.0 + + + severity_processed + 202203230748 + + + slice_network_addresses + no + + + disable_api + no + + + non_simult_ports + 139, 445, 3389 + + + local_portscan.netstat_ssh + yes + + + ssl_mode + tls_1_2 + + + max_checks + 4 + + + network_scanners.syn + yes + + + stop_scan_on_disconnect + no + + + severity_basis + cvss_v2 + + + report_crashes + yes + + + scan_history_expiration_days + 0 + + + network_scanners.tcp + no + + + disable_guides + no + + + xmlrpc_listen_port + 443 + + + discovery_mode + portscan_common + + + report_cleanup_threshold_days + 30 + + + engine.max_hosts + 16 + + + name + Basic Network Scan + + + whoami + dummy + + + advanced_mode + default + + + scan_description + + + + bw_prevent_agent_scans + yes + + + reverse_lookup + no + + + track_unique_agents + yes + + + optimize_test + yes + + + engine.min + 4 + + + log_whole_attack + no + + + portscan.ping + yes + + + cgi_path + /cgi-bin:/scripts + + + unscanned_closed + no + + + auto_update_ui + yes + + + network_scanners.udp + no + + + auto_update + yes + + + listen_port + 1241 + + + engine.max + 16 + + + local_portscan.netstat_wmi + yes + + + checks_read_timeout + 5 + + + plugins_timeout + 320 + + + auto_enable_dependencies + yes + + + safe_checks + yes + + + report_task_id + 7cee556a-08ae-96c8-d6ec-eecc732e91999febddbb02223ba7 + + + allow_post_scan_editing + yes + + + visibility + private + + + bw_permanent_blackout_window + no + + + wizard_uuid + 731a8e52-3ea6-a291-ec0a-d2ff0619c19d7bd788d6be818b65 + + + scan.unlimited + no + + + max_hosts + 30 + + + engine.max_checks + 64 + + + plugin_upload + yes + + + reduce_connections_on_congestion + no + + + silent_dependencies + yes + + + scan_vulnerability_groups + no + + + feed_type + ProFeed + + + port_range + default + + + scan_vulnerability_groups_mixed + yes + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Controller : + Domain Controller : + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain : + Domain : + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Username : + Domain Username : + entry + + + + + ADSI Settings + 60024 + ADSI Settings[password]:Domain Password : + Domain Password : + password + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Controller 2: + Domain Controller 2: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain 2: + Domain 2: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Username 2: + Domain Username 2: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[password]:Domain Password 2: + Domain Password 2: + password + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Controller 3: + Domain Controller 3: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain 3: + Domain 3: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Username 3: + Domain Username 3: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[password]:Domain Password 3: + Domain Password 3: + password + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Controller 4: + Domain Controller 4: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain 4: + Domain 4: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Username 4: + Domain Username 4: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[password]:Domain Password 4: + Domain Password 4: + password + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Controller 5: + Domain Controller 5: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain 5: + Domain 5: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[entry]:Domain Username 5: + Domain Username 5: + entry + + + + + ADSI Settings + 60024 + ADSI Settings[password]:Domain Password 5: + Domain Password 5: + password + + + + + Adtran AOS Compliance Checks + 71991 + Adtran AOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Adtran AOS Compliance Checks + 71991 + Adtran AOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Adtran AOS Compliance Checks + 71991 + Adtran AOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Adtran AOS Compliance Checks + 71991 + Adtran AOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Adtran AOS Compliance Checks + 71991 + Adtran AOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Adtran AOS Compliance Checks + 71991 + Adtran AOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + AirWatch API Settings + 76460 + AirWatch API Settings[entry]:AirWatch Environment API URL : + AirWatch Environment API URL : + entry + + + + + AirWatch API Settings + 76460 + AirWatch API Settings[entry]:AirWatch port : + AirWatch port : + entry + + + + + AirWatch API Settings + 76460 + AirWatch API Settings[entry]:AirWatch username : + AirWatch username : + entry + + + + + AirWatch API Settings + 76460 + AirWatch API Settings[password]:AirWatch password : + AirWatch password : + password + + + + + AirWatch API Settings + 76460 + AirWatch API Settings[entry]:AirWatch API key : + AirWatch API key : + entry + + + + + AirWatch API Settings + 76460 + AirWatch API Settings[checkbox]:SSL : + SSL : + checkbox + yes + yes + + + AirWatch API Settings + 76460 + AirWatch API Settings[checkbox]:Verify SSL certificate : + Verify SSL certificate : + checkbox + no + no + + + Alcatel TiMOS Compliance Checks + 102730 + Alcatel TiMOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Alcatel TiMOS Compliance Checks + 102730 + Alcatel TiMOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Alcatel TiMOS Compliance Checks + 102730 + Alcatel TiMOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Alcatel TiMOS Compliance Checks + 102730 + Alcatel TiMOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Alcatel TiMOS Compliance Checks + 102730 + Alcatel TiMOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Alcatel TiMOS Compliance Checks + 102730 + Alcatel TiMOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Amazon AWS Compliance Checks + 72426 + Amazon AWS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Amazon AWS Compliance Checks + 72426 + Amazon AWS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Amazon AWS Compliance Checks + 72426 + Amazon AWS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Amazon AWS Compliance Checks + 72426 + Amazon AWS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Amazon AWS Compliance Checks + 72426 + Amazon AWS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Antivirus Software Check + 16193 + Antivirus Software Check[entry]:Delay (in days, between 0 and 7) : + Delay (in days, between 0 and 7) : + entry + 0 + 0 + + + Apple Profile Manager API Settings + 60032 + Apple Profile Manager API Settings[entry]:Apple Profile Manager server : + Apple Profile Manager server : + entry + + + + + Apple Profile Manager API Settings + 60032 + Apple Profile Manager API Settings[entry]:Apple Profile Manager port : + Apple Profile Manager port : + entry + 443 + 443 + + + Apple Profile Manager API Settings + 60032 + Apple Profile Manager API Settings[entry]:Apple Profile Manager username : + Apple Profile Manager username : + entry + + + + + Apple Profile Manager API Settings + 60032 + Apple Profile Manager API Settings[password]:Apple Profile Manager password : + Apple Profile Manager password : + password + + + + + Apple Profile Manager API Settings + 60032 + Apple Profile Manager API Settings[checkbox]:SSL : + SSL : + checkbox + yes + yes + + + Apple Profile Manager API Settings + 60032 + Apple Profile Manager API Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + no + no + + + Apple Profile Manager API Settings + 60032 + Apple Profile Manager API Settings[checkbox]:Force Device Updates : + Force Device Updates : + checkbox + yes + yes + + + Apple Profile Manager API Settings + 60032 + Apple Profile Manager API Settings[entry]:Device Update Timeout (Minutes) : + Device Update Timeout (Minutes) : + entry + 5 + 5 + + + Arista EOS Compliance Checks + 92838 + Arista EOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Arista EOS Compliance Checks + 92838 + Arista EOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Arista EOS Compliance Checks + 92838 + Arista EOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Arista EOS Compliance Checks + 92838 + Arista EOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Arista EOS Compliance Checks + 92838 + Arista EOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Arista EOS Compliance Checks + 92838 + Arista EOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + ArubaOS Compliance Checks + 153133 + ArubaOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + ArubaOS Compliance Checks + 153133 + ArubaOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + ArubaOS Compliance Checks + 153133 + ArubaOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + ArubaOS Compliance Checks + 153133 + ArubaOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + ArubaOS Compliance Checks + 153133 + ArubaOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + ArubaOS Compliance Checks + 153133 + ArubaOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region af-south-1 : + Region af-south-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region ap-east-1 : + Region ap-east-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region ap-northeast-1 : + Region ap-northeast-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region ap-northeast-2 : + Region ap-northeast-2 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region ap-northeast-3 : + Region ap-northeast-3 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region ap-south-1 : + Region ap-south-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region ap-southeast-1 : + Region ap-southeast-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region ap-southeast-2 : + Region ap-southeast-2 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region ca-central-1 : + Region ca-central-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region cn-north-1 : + Region cn-north-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region cn-northwest-1 : + Region cn-northwest-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region eu-central-1 : + Region eu-central-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region eu-north-1 : + Region eu-north-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region eu-south-1 : + Region eu-south-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region eu-west-1 : + Region eu-west-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region eu-west-2 : + Region eu-west-2 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region eu-west-3 : + Region eu-west-3 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region me-south-1 : + Region me-south-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region sa-east-1 : + Region sa-east-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region us-east-1 : + Region us-east-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region us-east-2 : + Region us-east-2 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region us-gov-east-1 : + Region us-gov-east-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region us-gov-west-1 : + Region us-gov-west-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region us-west-1 : + Region us-west-1 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Region us-west-2 : + Region us-west-2 : + checkbox + no + no + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[password]:AWS Access Key ID : + AWS Access Key ID : + password + + + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[password]:AWS Secret Access Key : + AWS Secret Access Key : + password + + + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:SSL : + SSL : + checkbox + yes + yes + + + Amazon Web Services Settings + 73490 + Amazon Web Services Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + yes + yes + + + Microsoft Azure Compliance Checks + 79357 + Microsoft Azure Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Microsoft Azure Compliance Checks + 79357 + Microsoft Azure Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Microsoft Azure Compliance Checks + 79357 + Microsoft Azure Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Microsoft Azure Compliance Checks + 79357 + Microsoft Azure Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Microsoft Azure Compliance Checks + 79357 + Microsoft Azure Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Microsoft Azure Settings + 79358 + Microsoft Azure Settings[entry]:Username : + Username : + entry + + + + + Microsoft Azure Settings + 79358 + Microsoft Azure Settings[password]:Password : + Password : + password + + + + + Microsoft Azure Settings + 79358 + Microsoft Azure Settings[entry]:Client ID : + Client ID : + entry + 443 + 443 + + + Microsoft Azure Settings + 79358 + Microsoft Azure Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + no + no + + + Microsoft Azure Settings + 79358 + Microsoft Azure Settings[entry]:Subscriptions : + Subscriptions : + entry + + + + + Blackberry UEM Settings + 124860 + Blackberry UEM Settings[entry]:Blackberry UEM Hostname : + Blackberry UEM Hostname : + entry + + + + + Blackberry UEM Settings + 124860 + Blackberry UEM Settings[entry]:Blackberry UEM Port : + Blackberry UEM Port : + entry + + + + + Blackberry UEM Settings + 124860 + Blackberry UEM Settings[entry]:Blackberry UEM Tenant : + Blackberry UEM Tenant : + entry + + + + + Blackberry UEM Settings + 124860 + Blackberry UEM Settings[entry]:Blackberry UEM Domain : + Blackberry UEM Domain : + entry + + + + + Blackberry UEM Settings + 124860 + Blackberry UEM Settings[entry]:Blackberry UEM Username : + Blackberry UEM Username : + entry + + + + + Blackberry UEM Settings + 124860 + Blackberry UEM Settings[password]:Blackberry UEM Password : + Blackberry UEM Password : + password + + + + + Blackberry UEM Settings + 124860 + Blackberry UEM Settings[checkbox]:Blackberry UEM SSL : + Blackberry UEM SSL : + checkbox + yes + yes + + + Blackberry UEM Settings + 124860 + Blackberry UEM Settings[checkbox]:Blackberry UEM Verify SSL Certificate : + Blackberry UEM Verify SSL Certificate : + checkbox + no + no + + + BlueCoat ProxySG Compliance Checks + 70470 + BlueCoat ProxySG Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + BlueCoat ProxySG Compliance Checks + 70470 + BlueCoat ProxySG Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + BlueCoat ProxySG Compliance Checks + 70470 + BlueCoat ProxySG Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + BlueCoat ProxySG Compliance Checks + 70470 + BlueCoat ProxySG Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + BlueCoat ProxySG Compliance Checks + 70470 + BlueCoat ProxySG Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + BlueCoat ProxySG Compliance Checks + 70470 + BlueCoat ProxySG Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Brocade FabricOS Compliance Checks + 71842 + Brocade FabricOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Brocade FabricOS Compliance Checks + 71842 + Brocade FabricOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Brocade FabricOS Compliance Checks + 71842 + Brocade FabricOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Brocade FabricOS Compliance Checks + 71842 + Brocade FabricOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Brocade FabricOS Compliance Checks + 71842 + Brocade FabricOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Brocade FabricOS Compliance Checks + 71842 + Brocade FabricOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Check Point GAiA Compliance Checks + 62679 + Check Point GAiA Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Check Point GAiA Compliance Checks + 62679 + Check Point GAiA Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Check Point GAiA Compliance Checks + 62679 + Check Point GAiA Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Check Point GAiA Compliance Checks + 62679 + Check Point GAiA Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Check Point GAiA Compliance Checks + 62679 + Check Point GAiA Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Check Point GAiA Compliance Checks + 62679 + Check Point GAiA Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Cisco ACI Compliance Checks + 137785 + Cisco ACI Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Cisco ACI Compliance Checks + 137785 + Cisco ACI Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Cisco ACI Compliance Checks + 137785 + Cisco ACI Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Cisco ACI Compliance Checks + 137785 + Cisco ACI Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Cisco ACI Compliance Checks + 137785 + Cisco ACI Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Cisco ACI Compliance Checks + 137785 + Cisco ACI Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Cisco IOS Compliance Checks + 46689 + Cisco IOS Compliance Checks[radio]:IOS Config File To Audit : + IOS Config File To Audit : + radio + Saved/(show config);Running/(show running);Startup/(show startup) + + Saved/(show config);Running/(show running);Startup/(show startup) + + + Cisco IOS Compliance Checks + 46689 + Cisco IOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Cisco IOS Compliance Checks + 46689 + Cisco IOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Cisco IOS Compliance Checks + 46689 + Cisco IOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Cisco IOS Compliance Checks + 46689 + Cisco IOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Cisco IOS Compliance Checks + 46689 + Cisco IOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Cisco IOS Compliance Checks + 46689 + Cisco IOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Cisco Firepower Compliance Checks + 128275 + Cisco Firepower Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Cisco Firepower Compliance Checks + 128275 + Cisco Firepower Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Cisco Firepower Compliance Checks + 128275 + Cisco Firepower Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Cisco Firepower Compliance Checks + 128275 + Cisco Firepower Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Cisco Firepower Compliance Checks + 128275 + Cisco Firepower Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Cisco Firepower Compliance Checks + 128275 + Cisco Firepower Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Citrix NITRO API Settings + 154869 + Citrix NITRO API Settings[entry]:Username + Username + entry + + + + + Citrix NITRO API Settings + 154869 + Citrix NITRO API Settings[password]:Password + Password + password + + + + + Citrix NITRO API Settings + 154869 + Citrix NITRO API Settings[entry]:Port + Port + entry + 443 + 443 + + + Citrix NITRO API Settings + 154869 + Citrix NITRO API Settings[checkbox]:SSL + SSL + checkbox + yes + yes + + + Citrix NITRO API Settings + 154869 + Citrix NITRO API Settings[checkbox]:Verify SSL Certificate + Verify SSL Certificate + checkbox + yes + yes + + + Citrix Application Delivery Compliance Checks + 154868 + Citrix Application Delivery Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Citrix Application Delivery Compliance Checks + 154868 + Citrix Application Delivery Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Citrix Application Delivery Compliance Checks + 154868 + Citrix Application Delivery Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Citrix Application Delivery Compliance Checks + 154868 + Citrix Application Delivery Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Citrix Application Delivery Compliance Checks + 154868 + Citrix Application Delivery Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Citrix XenServer Compliance Checks + 69512 + Citrix XenServer Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Citrix XenServer Compliance Checks + 69512 + Citrix XenServer Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Citrix XenServer Compliance Checks + 69512 + Citrix XenServer Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Citrix XenServer Compliance Checks + 69512 + Citrix XenServer Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Citrix XenServer Compliance Checks + 69512 + Citrix XenServer Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Cleartext protocols settings + 21744 + Cleartext protocols settings[entry]:User name : + User name : + entry + + + + + Cleartext protocols settings + 21744 + Cleartext protocols settings[password]:Password (unsafe!) : + Password (unsafe!) : + password + + + + + Cleartext protocols settings + 21744 + Cleartext protocols settings[checkbox]:Try to perform patch level checks over telnet + + Try to perform patch level checks over telnet + checkbox + no + no + + + Cleartext protocols settings + 21744 + Cleartext protocols settings[checkbox]:Try to perform patch level checks over rsh + + Try to perform patch level checks over rsh + checkbox + no + no + + + Cleartext protocols settings + 21744 + Cleartext protocols settings[checkbox]:Try to perform patch level checks over rexec + + Try to perform patch level checks over rexec + checkbox + no + no + + + Windows Compliance Checks + 21156 + Windows Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Windows Compliance Checks + 21156 + Windows Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Windows Compliance Checks + 21156 + Windows Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Windows Compliance Checks + 21156 + Windows Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Windows Compliance Checks + 21156 + Windows Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Windows File Contents Compliance Checks + 24760 + Windows File Contents Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Windows File Contents Compliance Checks + 24760 + Windows File Contents Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Windows File Contents Compliance Checks + 24760 + Windows File Contents Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Windows File Contents Compliance Checks + 24760 + Windows File Contents Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Windows File Contents Compliance Checks + 24760 + Windows File Contents Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Database Compliance Checks + 33814 + Database Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Database Compliance Checks + 33814 + Database Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Database Compliance Checks + 33814 + Database Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Database Compliance Checks + 33814 + Database Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Database Compliance Checks + 33814 + Database Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Database settings + 33815 + Database settings[radio]:DB Type : + DB Type : + radio + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + + + Database settings + 33815 + Database settings[radio]:Database service type : + Database service type : + radio + SID;SERVICE_NAME + SID;SERVICE_NAME + + + Database settings + 33815 + Database settings[entry]:Database SID : + Database SID : + entry + + + + + Database settings + 33815 + Database settings[entry]:Database port to use : + Database port to use : + entry + + + + + Database settings + 33815 + Database settings[entry]:Login : + Login : + entry + + + + + Database settings + 33815 + Database settings[password]:Password : + Password : + password + + + + + Database settings + 33815 + Database settings[radio]:Oracle auth type: + Oracle auth type: + radio + NORMAL;SYSOPER;SYSDBA + NORMAL;SYSOPER;SYSDBA + + + Database settings + 33815 + Database settings[radio]:SQL Server auth type: + SQL Server auth type: + radio + Windows;SQL + Windows;SQL + + + Database settings + 33815 + Database settings[radio]:Sybase ASE auth type: + Sybase ASE auth type: + radio + RSA;Plain Text + RSA;Plain Text + + + Database settings + 33815 + Database settings[radio]:Additional DB Type (1) : + Additional DB Type (1) : + radio + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + + + Database settings + 33815 + Database settings[radio]:Additional Database service type (1) : + Additional Database service type (1) : + radio + SID;SERVICE_NAME + SID;SERVICE_NAME + + + Database settings + 33815 + Database settings[entry]:Additional Database SID (1) : + Additional Database SID (1) : + entry + + + + + Database settings + 33815 + Database settings[entry]:Additional Database port to use (1) : + Additional Database port to use (1) : + entry + + + + + Database settings + 33815 + Database settings[entry]:Additional Login (1) : + Additional Login (1) : + entry + + + + + Database settings + 33815 + Database settings[password]:Additional Password (1) : + Additional Password (1) : + password + + + + + Database settings + 33815 + Database settings[radio]:Additional Oracle auth type (1) : + Additional Oracle auth type (1) : + radio + NORMAL;SYSOPER;SYSDBA + NORMAL;SYSOPER;SYSDBA + + + Database settings + 33815 + Database settings[radio]:Additional SQL Server auth type (1) : + Additional SQL Server auth type (1) : + radio + Windows;SQL + Windows;SQL + + + Database settings + 33815 + Database settings[radio]:Additional Sybase ASE auth type (1) : + Additional Sybase ASE auth type (1) : + radio + RSA;Plain Text + RSA;Plain Text + + + Database settings + 33815 + Database settings[radio]:Additional DB Type (2) : + Additional DB Type (2) : + radio + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + + + Database settings + 33815 + Database settings[radio]:Additional Database service type (2) : + Additional Database service type (2) : + radio + SID;SERVICE_NAME + SID;SERVICE_NAME + + + Database settings + 33815 + Database settings[entry]:Additional Database SID (2) : + Additional Database SID (2) : + entry + + + + + Database settings + 33815 + Database settings[entry]:Additional Database port to use (2) : + Additional Database port to use (2) : + entry + + + + + Database settings + 33815 + Database settings[entry]:Additional Login (2) : + Additional Login (2) : + entry + + + + + Database settings + 33815 + Database settings[password]:Additional Password (2) : + Additional Password (2) : + password + + + + + Database settings + 33815 + Database settings[radio]:Additional Oracle auth type (2) : + Additional Oracle auth type (2) : + radio + NORMAL;SYSOPER;SYSDBA + NORMAL;SYSOPER;SYSDBA + + + Database settings + 33815 + Database settings[radio]:Additional SQL Server auth type (2) : + Additional SQL Server auth type (2) : + radio + Windows;SQL + Windows;SQL + + + Database settings + 33815 + Database settings[radio]:Additional Sybase ASE auth type (2) : + Additional Sybase ASE auth type (2) : + radio + RSA;Plain Text + RSA;Plain Text + + + Database settings + 33815 + Database settings[radio]:Additional DB Type (3) : + Additional DB Type (3) : + radio + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + + + Database settings + 33815 + Database settings[radio]:Additional Database service type (3) : + Additional Database service type (3) : + radio + SID;SERVICE_NAME + SID;SERVICE_NAME + + + Database settings + 33815 + Database settings[entry]:Additional Database SID (3) : + Additional Database SID (3) : + entry + + + + + Database settings + 33815 + Database settings[entry]:Additional Database port to use (3) : + Additional Database port to use (3) : + entry + + + + + Database settings + 33815 + Database settings[entry]:Additional Login (3) : + Additional Login (3) : + entry + + + + + Database settings + 33815 + Database settings[password]:Additional Password (3) : + Additional Password (3) : + password + + + + + Database settings + 33815 + Database settings[radio]:Additional Oracle auth type (3) : + Additional Oracle auth type (3) : + radio + NORMAL;SYSOPER;SYSDBA + NORMAL;SYSOPER;SYSDBA + + + Database settings + 33815 + Database settings[radio]:Additional SQL Server auth type (3) : + Additional SQL Server auth type (3) : + radio + Windows;SQL + Windows;SQL + + + Database settings + 33815 + Database settings[radio]:Additional Sybase ASE auth type (3) : + Additional Sybase ASE auth type (3) : + radio + RSA;Plain Text + RSA;Plain Text + + + Database settings + 33815 + Database settings[radio]:Additional DB Type (4) : + Additional DB Type (4) : + radio + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + Oracle;SQL Server;MySQL;DB2;Informix/DRDA;PostgreSQL;Sybase ASE + + + Database settings + 33815 + Database settings[radio]:Additional Database service type (4) : + Additional Database service type (4) : + radio + SID;SERVICE_NAME + SID;SERVICE_NAME + + + Database settings + 33815 + Database settings[entry]:Additional Database SID (4) : + Additional Database SID (4) : + entry + + + + + Database settings + 33815 + Database settings[entry]:Additional Database port to use (4) : + Additional Database port to use (4) : + entry + + + + + Database settings + 33815 + Database settings[entry]:Additional Login (4) : + Additional Login (4) : + entry + + + + + Database settings + 33815 + Database settings[password]:Additional Password (4) : + Additional Password (4) : + password + + + + + Database settings + 33815 + Database settings[radio]:Additional Oracle auth type (4) : + Additional Oracle auth type (4) : + radio + NORMAL;SYSOPER;SYSDBA + NORMAL;SYSOPER;SYSDBA + + + Database settings + 33815 + Database settings[radio]:Additional SQL Server auth type (4) : + Additional SQL Server auth type (4) : + radio + Windows;SQL + Windows;SQL + + + Database settings + 33815 + Database settings[radio]:Additional Sybase ASE auth type (4) : + Additional Sybase ASE auth type (4) : + radio + RSA;Plain Text + RSA;Plain Text + + + Dell Force10 FTOS Compliance Checks + 72461 + Dell Force10 FTOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Dell Force10 FTOS Compliance Checks + 72461 + Dell Force10 FTOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Dell Force10 FTOS Compliance Checks + 72461 + Dell Force10 FTOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Dell Force10 FTOS Compliance Checks + 72461 + Dell Force10 FTOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Dell Force10 FTOS Compliance Checks + 72461 + Dell Force10 FTOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Dell Force10 FTOS Compliance Checks + 72461 + Dell Force10 FTOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Patch Management: Dell KACE K1000 Settings + 76866 + Patch Management: Dell KACE K1000 Settings[entry]:K1000 Address : + K1000 Address : + entry + + + + + Patch Management: Dell KACE K1000 Settings + 76866 + Patch Management: Dell KACE K1000 Settings[entry]:K1000 Database Port : + K1000 Database Port : + entry + 3306 + 3306 + + + Patch Management: Dell KACE K1000 Settings + 76866 + Patch Management: Dell KACE K1000 Settings[entry]:K1000 Organization Database Name : + + K1000 Organization Database Name : + entry + ORG1 + ORG1 + + + Patch Management: Dell KACE K1000 Settings + 76866 + Patch Management: Dell KACE K1000 Settings[entry]:K1000 Database Username : + K1000 Database Username : + entry + R1 + R1 + + + Patch Management: Dell KACE K1000 Settings + 76866 + Patch Management: Dell KACE K1000 Settings[password]:K1000 Database Password : + K1000 Database Password : + password + + + + + Do not scan fragile devices + 22481 + Do not scan fragile devices[checkbox]:Scan Network Printers + Scan Network Printers + checkbox + no + no + + + Do not scan fragile devices + 22481 + Do not scan fragile devices[checkbox]:Scan Novell Netware hosts + Scan Novell Netware hosts + checkbox + no + no + + + Do not scan fragile devices + 22481 + Do not scan fragile devices[checkbox]:Scan Operational Technology devices + Scan Operational Technology devices + checkbox + yes + yes + + + Extreme ExtremeXOS Compliance Checks + 73156 + Extreme ExtremeXOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Extreme ExtremeXOS Compliance Checks + 73156 + Extreme ExtremeXOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Extreme ExtremeXOS Compliance Checks + 73156 + Extreme ExtremeXOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Extreme ExtremeXOS Compliance Checks + 73156 + Extreme ExtremeXOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Extreme ExtremeXOS Compliance Checks + 73156 + Extreme ExtremeXOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Extreme ExtremeXOS Compliance Checks + 73156 + Extreme ExtremeXOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + F5 Compliance Checks + 95388 + F5 Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + F5 Compliance Checks + 95388 + F5 Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + F5 Compliance Checks + 95388 + F5 Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + F5 Compliance Checks + 95388 + F5 Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + F5 Compliance Checks + 95388 + F5 Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + F5 Settings + 95387 + F5 Settings[entry]:Username : + Username : + entry + + + + + F5 Settings + 95387 + F5 Settings[password]:Password : + Password : + password + + + + + F5 Settings + 95387 + F5 Settings[entry]:Port : + Port : + entry + 443 + 443 + + + F5 Settings + 95387 + F5 Settings[checkbox]:SSL : + SSL : + checkbox + yes + yes + + + F5 Settings + 95387 + F5 Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + yes + yes + + + Service Detection + 22964 + Service Detection[radio]:Test SSL based services + Test SSL based services + radio + All ports + All ports + + + FireEye Compliance Checks + 70469 + FireEye Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + FireEye Compliance Checks + 70469 + FireEye Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + FireEye Compliance Checks + 70469 + FireEye Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + FireEye Compliance Checks + 70469 + FireEye Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + FireEye Compliance Checks + 70469 + FireEye Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + FireEye Compliance Checks + 70469 + FireEye Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Fortigate FortiOS Compliance Checks + 70272 + Fortigate FortiOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Fortigate FortiOS Compliance Checks + 70272 + Fortigate FortiOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Fortigate FortiOS Compliance Checks + 70272 + Fortigate FortiOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Fortigate FortiOS Compliance Checks + 70272 + Fortigate FortiOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Fortigate FortiOS Compliance Checks + 70272 + Fortigate FortiOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Fortigate FortiOS Compliance Checks + 70272 + Fortigate FortiOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Google Cloud Platform Settings + 150079 + Google Cloud Platform Settings[file]:Service Account JSON Key File : + Service Account JSON Key File : + file + + + + + Google Cloud Platform Compliance Checks + 150078 + Google Cloud Platform Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Google Cloud Platform Compliance Checks + 150078 + Google Cloud Platform Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Google Cloud Platform Compliance Checks + 150078 + Google Cloud Platform Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Google Cloud Platform Compliance Checks + 150078 + Google Cloud Platform Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Google Cloud Platform Compliance Checks + 150078 + Google Cloud Platform Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Generic SSH Compliance Checks + 129714 + Generic SSH Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Generic SSH Compliance Checks + 129714 + Generic SSH Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Generic SSH Compliance Checks + 129714 + Generic SSH Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Generic SSH Compliance Checks + 129714 + Generic SSH Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Generic SSH Compliance Checks + 129714 + Generic SSH Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Global variable settings + 12288 + Global variable settings[checkbox]:Probe services on every port + Probe services on every port + checkbox + yes + yes + + + Global variable settings + 12288 + Global variable settings[checkbox]:Do not log in with user accounts not specified in the + policy + + Do not log in with user accounts not specified in the policy + checkbox + yes + yes + + + Global variable settings + 12288 + Global variable settings[checkbox]:Enable CGI scanning + Enable CGI scanning + checkbox + no + yes + + + Global variable settings + 12288 + Global variable settings[radio]:Network type + Network type + radio + Mixed (use RFC 1918);Private LAN;Public WAN (Internet) + Mixed (use RFC 1918) + + + Global variable settings + 12288 + Global variable settings[checkbox]:Enable experimental scripts + Enable experimental scripts + checkbox + no + no + + + Global variable settings + 12288 + Global variable settings[checkbox]:Thorough tests (slow) + Thorough tests (slow) + checkbox + no + no + + + Global variable settings + 12288 + Global variable settings[radio]:Report verbosity + Report verbosity + radio + Normal;Quiet;Verbose + Normal + + + Global variable settings + 12288 + Global variable settings[radio]:Report paranoia + Report paranoia + radio + Normal;Avoid false alarms;Paranoid (more false alarms) + Normal + + + Global variable settings + 12288 + Global variable settings[entry]:HTTP User-Agent + HTTP User-Agent + entry + Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) + Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) + + + Global variable settings + 12288 + Global variable settings[file]:SSL certificate to use : + SSL certificate to use : + file + + + + + Global variable settings + 12288 + Global variable settings[file]:SSL CA to trust : + SSL CA to trust : + file + + + + + Global variable settings + 12288 + Global variable settings[file]:SSL key to use : + SSL key to use : + file + + + + + Global variable settings + 12288 + Global variable settings[password]:SSL password for SSL key : + SSL password for SSL key : + password + + + + + Global variable settings + 12288 + Global variable settings[checkbox]:Enumerate all SSL ciphers + Enumerate all SSL ciphers + checkbox + yes + yes + + + Global variable settings + 12288 + Global variable settings[checkbox]:Enable CRL checking (connects to Internet) + Enable CRL checking (connects to Internet) + checkbox + no + no + + + Global variable settings + 12288 + Global variable settings[checkbox]:Enable plugin debugging + Enable plugin debugging + checkbox + no + no + + + Global variable settings + 12288 + Global variable settings[entry]:Java ARchive Detection Path : + Java ARchive Detection Path : + entry + + + + + Good MDM Settings + 66963 + Good MDM Settings[entry]:GMC Server : + GMC Server : + entry + + + + + Good MDM Settings + 66963 + Good MDM Settings[entry]:Port : + Port : + entry + + + + + Good MDM Settings + 66963 + Good MDM Settings[entry]:Domain : + Domain : + entry + + + + + Good MDM Settings + 66963 + Good MDM Settings[entry]:Username : + Username : + entry + + + + + Good MDM Settings + 66963 + Good MDM Settings[password]:Password : + Password : + password + + + + + Good MDM Settings + 66963 + Good MDM Settings[checkbox]:SSL : + SSL : + checkbox + yes + yes + + + Good MDM Settings + 66963 + Good MDM Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + no + no + + + Hosts File Whitelisted Entries + 73980 + Hosts File Whitelisted Entries[file]:Upload file with custom hosts entries : + Upload file with custom hosts entries : + file + + + + + HP ProCurve Compliance Checks + 70271 + HP ProCurve Compliance Checks[radio]:HP ProCurve File To Audit : + HP ProCurve File To Audit : + radio + Saved/(show config);Default/(show default-config);Running/(show running-config) + + Saved/(show config);Default/(show default-config);Running/(show running-config) + + + + HP ProCurve Compliance Checks + 70271 + HP ProCurve Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + HP ProCurve Compliance Checks + 70271 + HP ProCurve Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + HP ProCurve Compliance Checks + 70271 + HP ProCurve Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + HP ProCurve Compliance Checks + 70271 + HP ProCurve Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + HP ProCurve Compliance Checks + 70271 + HP ProCurve Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + HP ProCurve Compliance Checks + 70271 + HP ProCurve Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + HTTP cookies import + 42893 + HTTP cookies import[file]:Cookies file : + Cookies file : + file + + + + + HTTP login page + 11149 + HTTP login page[entry]:Login page : + Login page : + entry + / + / + + + HTTP login page + 11149 + HTTP login page[entry]:Login form : + Login form : + entry + + + + + HTTP login page + 11149 + HTTP login page[entry]:Login form fields : + Login form fields : + entry + user=%USER%&pass=%PASS% + user=%USER%&pass=%PASS% + + + HTTP login page + 11149 + HTTP login page[radio]:Login form method : + Login form method : + radio + POST;GET + POST + + + HTTP login page + 11149 + HTTP login page[checkbox]:Automated login page search + Automated login page search + checkbox + no + no + + + HTTP login page + 11149 + HTTP login page[entry]:Re-authenticate delay (seconds) : + Re-authenticate delay (seconds) : + entry + + + + + HTTP login page + 11149 + HTTP login page[entry]:Check authentication on page : + Check authentication on page : + entry + + + + + HTTP login page + 11149 + HTTP login page[entry]:Follow 30x redirections (# of levels) : + Follow 30x redirections (# of levels) : + entry + 2 + 0 + + + HTTP login page + 11149 + HTTP login page[entry]:Authenticated regex : + Authenticated regex : + entry + + + + + HTTP login page + 11149 + HTTP login page[checkbox]:Invert test (disconnected if regex matches) + Invert test (disconnected if regex matches) + checkbox + no + no + + + HTTP login page + 11149 + HTTP login page[checkbox]:Match regex on HTTP headers + Match regex on HTTP headers + checkbox + no + no + + + HTTP login page + 11149 + HTTP login page[checkbox]:Case insensitive regex + Case insensitive regex + checkbox + no + no + + + HTTP login page + 11149 + HTTP login page[checkbox]:Abort web application tests if login fails + Abort web application tests if login fails + checkbox + no + no + + + Remote web server screenshot + 59861 + Remote web server screenshot[checkbox]:Allow Nessus to connect to the cloud to take a + screenshot of the public targets + + Allow Nessus to connect to the cloud to take a screenshot of the public targets + + checkbox + no + no + + + Huawei VRP Compliance Checks + 73157 + Huawei VRP Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Huawei VRP Compliance Checks + 73157 + Huawei VRP Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Huawei VRP Compliance Checks + 73157 + Huawei VRP Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Huawei VRP Compliance Checks + 73157 + Huawei VRP Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Huawei VRP Compliance Checks + 73157 + Huawei VRP Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Huawei VRP Compliance Checks + 73157 + Huawei VRP Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Patch Management: IBM Tivoli Endpoint Manager Server Settings + 62558 + Patch Management: IBM Tivoli Endpoint Manager Server Settings[entry]:Web Reports Server + : + + Web Reports Server : + entry + + + + + Patch Management: IBM Tivoli Endpoint Manager Server Settings + 62558 + Patch Management: IBM Tivoli Endpoint Manager Server Settings[entry]:Web Reports Port : + + Web Reports Port : + entry + + + + + Patch Management: IBM Tivoli Endpoint Manager Server Settings + 62558 + Patch Management: IBM Tivoli Endpoint Manager Server Settings[entry]:Web Reports Username + : + + Web Reports Username : + entry + + + + + Patch Management: IBM Tivoli Endpoint Manager Server Settings + 62558 + Patch Management: IBM Tivoli Endpoint Manager Server Settings[password]:Web Reports + Password : + + Web Reports Password : + password + + + + + Patch Management: IBM Tivoli Endpoint Manager Server Settings + 62558 + Patch Management: IBM Tivoli Endpoint Manager Server Settings[checkbox]:SSL : + SSL : + checkbox + no + no + + + Patch Management: IBM Tivoli Endpoint Manager Server Settings + 62558 + Patch Management: IBM Tivoli Endpoint Manager Server Settings[checkbox]:Verify SSL + Certificate : + + Verify SSL Certificate : + checkbox + no + no + + + Intune Settings + 125030 + Intune Settings[entry]:Intune Tenant : + Intune Tenant : + entry + + + + + Intune Settings + 125030 + Intune Settings[entry]:Intune Client : + Intune Client : + entry + + + + + Intune Settings + 125030 + Intune Settings[password]:Intune Secret : + Intune Secret : + password + + + + + Intune Settings + 125030 + Intune Settings[entry]:Intune Username : + Intune Username : + entry + + + + + Intune Settings + 125030 + Intune Settings[password]:Intune Password : + Intune Password : + password + + + + + Active Outbound Connection to Host Listed in Known Bot Database + 58430 + Active Outbound Connection to Host Listed in Known Bot Database[file]:Custom Netstat IP + Threat List : + + Custom Netstat IP Threat List : + file + + + + + Active Connection to or from Host Listed in Custom Netstat IP Threat List + 147190 + Active Connection to or from Host Listed in Custom Netstat IP Threat List[file]:Custom + Netstat IP Threat List : + + Custom Netstat IP Threat List : + file + + + + + IBM iSeries Credentials + 57861 + IBM iSeries Credentials[entry]:Login : + Login : + entry + + + + + IBM iSeries Credentials + 57861 + IBM iSeries Credentials[password]:Password : + Password : + password + + + + + IBM iSeries Compliance Checks + 57860 + IBM iSeries Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + IBM iSeries Compliance Checks + 57860 + IBM iSeries Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + IBM iSeries Compliance Checks + 57860 + IBM iSeries Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + IBM iSeries Compliance Checks + 57860 + IBM iSeries Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + IBM iSeries Compliance Checks + 57860 + IBM iSeries Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Juniper Junos Compliance Checks + 62680 + Juniper Junos Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Juniper Junos Compliance Checks + 62680 + Juniper Junos Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Juniper Junos Compliance Checks + 62680 + Juniper Junos Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Juniper Junos Compliance Checks + 62680 + Juniper Junos Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Juniper Junos Compliance Checks + 62680 + Juniper Junos Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Juniper Junos Compliance Checks + 62680 + Juniper Junos Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Kerberos configuration + 17351 + Kerberos configuration[entry]:Kerberos Key Distribution Center (KDC) : + Kerberos Key Distribution Center (KDC) : + entry + + + + + Kerberos configuration + 17351 + Kerberos configuration[entry]:Kerberos KDC Port : + Kerberos KDC Port : + entry + 88 + 88 + + + Kerberos configuration + 17351 + Kerberos configuration[radio]:Kerberos KDC Transport : + Kerberos KDC Transport : + radio + tcp + tcp + + + Kerberos configuration + 17351 + Kerberos configuration[entry]:Kerberos Realm (SSH only) : + Kerberos Realm (SSH only) : + entry + + + + + LDAP 'Domain Admins' Group Membership Enumeration + 58038 + LDAP 'Domain Admins' Group Membership Enumeration[entry]:LDAP user : + LDAP user : + entry + + + + + LDAP 'Domain Admins' Group Membership Enumeration + 58038 + LDAP 'Domain Admins' Group Membership Enumeration[password]:LDAP password : + + LDAP password : + password + + + + + LDAP 'Domain Admins' Group Membership Enumeration + 58038 + LDAP 'Domain Admins' Group Membership Enumeration[entry]:Max results : + + Max results : + entry + 1000 + 1000 + + + Login configurations + 10870 + Login configurations[entry]:HTTP account : + HTTP account : + entry + + + + + Login configurations + 10870 + Login configurations[password]:HTTP password (sent in clear) : + HTTP password (sent in clear) : + password + + + + + Login configurations + 10870 + Login configurations[entry]:NNTP account : + NNTP account : + entry + + + + + Login configurations + 10870 + Login configurations[password]:NNTP password (sent in clear) : + NNTP password (sent in clear) : + password + + + + + Login configurations + 10870 + Login configurations[entry]:FTP account : + FTP account : + entry + anonymous + anonymous + + + Login configurations + 10870 + Login configurations[password]:FTP password (sent in clear) : + FTP password (sent in clear) : + password + nessus@nessus.org + ********* + + + Login configurations + 10870 + Login configurations[entry]:FTP writeable directory : + FTP writeable directory : + entry + /incoming + /incoming + + + Login configurations + 10870 + Login configurations[entry]:POP2 account : + POP2 account : + entry + + + + + Login configurations + 10870 + Login configurations[password]:POP2 password (sent in clear) : + POP2 password (sent in clear) : + password + + + + + Login configurations + 10870 + Login configurations[entry]:POP3 account : + POP3 account : + entry + + + + + Login configurations + 10870 + Login configurations[password]:POP3 password (sent in clear) : + POP3 password (sent in clear) : + password + + + + + Login configurations + 10870 + Login configurations[entry]:IMAP account : + IMAP account : + entry + + + + + Login configurations + 10870 + Login configurations[password]:IMAP password (sent in clear) : + IMAP password (sent in clear) : + password + + + + + Login configurations + 10870 + Login configurations[entry]:IPMI account : + IPMI account : + entry + + + + + Login configurations + 10870 + Login configurations[password]:IPMI password (sent in clear) : + IPMI password (sent in clear) : + password + + + + + Login configurations + 10870 + Login configurations[entry]:SMB account : + SMB account : + entry + + + + + Login configurations + 10870 + Login configurations[password]:SMB password : + SMB password : + password + + + + + Login configurations + 10870 + Login configurations[entry]:SMB domain (optional) : + SMB domain (optional) : + entry + + + + + Login configurations + 10870 + Login configurations[radio]:SMB password type : + SMB password type : + radio + Password;LM Hash;NTLM Hash + Password;LM Hash;NTLM Hash + + + Login configurations + 10870 + Login configurations[entry]:Additional SMB account (1) : + Additional SMB account (1) : + entry + + + + + Login configurations + 10870 + Login configurations[password]:Additional SMB password (1) : + Additional SMB password (1) : + password + + + + + Login configurations + 10870 + Login configurations[entry]:Additional SMB domain (optional) (1) : + Additional SMB domain (optional) (1) : + entry + + + + + Login configurations + 10870 + Login configurations[entry]:Additional SMB account (2) : + Additional SMB account (2) : + entry + + + + + Login configurations + 10870 + Login configurations[password]:Additional SMB password (2) : + Additional SMB password (2) : + password + + + + + Login configurations + 10870 + Login configurations[entry]:Additional SMB domain (optional) (2) : + Additional SMB domain (optional) (2) : + entry + + + + + Login configurations + 10870 + Login configurations[entry]:Additional SMB account (3) : + Additional SMB account (3) : + entry + + + + + Login configurations + 10870 + Login configurations[password]:Additional SMB password (3) : + Additional SMB password (3) : + password + + + + + Login configurations + 10870 + Login configurations[entry]:Additional SMB domain (optional) (3) : + Additional SMB domain (optional) (3) : + entry + + + + + Login configurations + 10870 + Login configurations[checkbox]:Never send SMB credentials in clear text + Never send SMB credentials in clear text + checkbox + yes + yes + + + Login configurations + 10870 + Login configurations[checkbox]:Only use NTLMv2 + Only use NTLMv2 + checkbox + no + yes + + + Login configurations + 10870 + Login configurations[checkbox]:Only use Kerberos authentication for SMB + Only use Kerberos authentication for SMB + checkbox + no + no + + + MaaS360 Settings + 92000 + MaaS360 Settings[entry]:Username : + Username : + entry + + + + + MaaS360 Settings + 92000 + MaaS360 Settings[password]:Password : + Password : + password + + + + + MaaS360 Settings + 92000 + MaaS360 Settings[entry]:Root URL : + Root URL : + entry + + + + + MaaS360 Settings + 92000 + MaaS360 Settings[entry]:Platform ID : + Platform ID : + entry + + + + + MaaS360 Settings + 92000 + MaaS360 Settings[entry]:Billing ID : + Billing ID : + entry + + + + + MaaS360 Settings + 92000 + MaaS360 Settings[entry]:App ID : + App ID : + entry + + + + + MaaS360 Settings + 92000 + MaaS360 Settings[entry]:App version : + App version : + entry + + + + + MaaS360 Settings + 92000 + MaaS360 Settings[entry]:App access key : + App access key : + entry + + + + + Mobile Device Manager Compliance Checks + 81914 + Mobile Device Manager Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Mobile Device Manager Compliance Checks + 81914 + Mobile Device Manager Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Mobile Device Manager Compliance Checks + 81914 + Mobile Device Manager Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Mobile Device Manager Compliance Checks + 81914 + Mobile Device Manager Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Mobile Device Manager Compliance Checks + 81914 + Mobile Device Manager Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + MobileIron API Settings + 72904 + MobileIron API Settings[entry]:MobileIron VSP Admin Portal URL : + MobileIron VSP Admin Portal URL : + entry + + + + + MobileIron API Settings + 72904 + MobileIron API Settings[entry]:MobileIron VSP Admin Portal Port : + MobileIron VSP Admin Portal Port : + entry + + + + + MobileIron API Settings + 72904 + MobileIron API Settings[entry]:MobileIron port : + MobileIron port : + entry + + + + + MobileIron API Settings + 72904 + MobileIron API Settings[entry]:MobileIron username : + MobileIron username : + entry + + + + + MobileIron API Settings + 72904 + MobileIron API Settings[password]:MobileIron password : + MobileIron password : + password + + + + + MobileIron API Settings + 72904 + MobileIron API Settings[checkbox]:SSL : + SSL : + checkbox + yes + yes + + + MobileIron API Settings + 72904 + MobileIron API Settings[checkbox]:Verify SSL certificate : + Verify SSL certificate : + checkbox + no + no + + + MongoDB Compliance Checks + 76513 + MongoDB Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + MongoDB Compliance Checks + 76513 + MongoDB Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + MongoDB Compliance Checks + 76513 + MongoDB Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + MongoDB Compliance Checks + 76513 + MongoDB Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + MongoDB Compliance Checks + 76513 + MongoDB Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + MongoDB Settings + 76512 + MongoDB Settings[entry]:Username : + Username : + entry + + + + + MongoDB Settings + 76512 + MongoDB Settings[password]:Password : + Password : + password + + + + + MongoDB Settings + 76512 + MongoDB Settings[entry]:Database for authentication : + Database for authentication : + entry + + + + + MongoDB Settings + 76512 + MongoDB Settings[entry]:Port : + Port : + entry + 27017 + 27017 + + + Nessus SYN scanner + 11219 + Nessus SYN scanner[radio]:Firewall detection : + Firewall detection : + radio + Automatic (normal);Disabled (softer);Do not detect RST rate limitation + (soft);Ignore closed ports (aggressive) + + Automatic (normal) + + + Nessus TCP scanner + 10335 + Nessus TCP scanner[radio]:Firewall detection : + Firewall detection : + radio + Automatic (normal);Disabled (softer);Do not detect RST rate limitation + (soft);Ignore closed ports (aggressive) + + Automatic (normal) + + + Netapp API Settings + 112118 + Netapp API Settings[entry]:Username : + Username : + entry + + + + + Netapp API Settings + 112118 + Netapp API Settings[password]:Password : + Password : + password + + + + + Netapp API Settings + 112118 + Netapp API Settings[entry]:vFiler : + vFiler : + entry + + + + + Netapp API Settings + 112118 + Netapp API Settings[entry]:Port : + Port : + entry + + + + + NetApp Data ONTAP Compliance Checks + 66934 + NetApp Data ONTAP Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + NetApp Data ONTAP Compliance Checks + 66934 + NetApp Data ONTAP Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + NetApp Data ONTAP Compliance Checks + 66934 + NetApp Data ONTAP Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + NetApp Data ONTAP Compliance Checks + 66934 + NetApp Data ONTAP Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + NetApp Data ONTAP Compliance Checks + 66934 + NetApp Data ONTAP Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + NetApp Data ONTAP Compliance Checks + 66934 + NetApp Data ONTAP Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Office 365 Compliance Checks + 109580 + Office 365 Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Office 365 Compliance Checks + 109580 + Office 365 Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Office 365 Compliance Checks + 109580 + Office 365 Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Office 365 Compliance Checks + 109580 + Office 365 Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Office 365 Compliance Checks + 109580 + Office 365 Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Office 365 Settings + 109581 + Office 365 Settings[entry]:Username : + Username : + entry + + + + + Office 365 Settings + 109581 + Office 365 Settings[password]:Password : + Password : + password + + + + + Office 365 Settings + 109581 + Office 365 Settings[entry]:Client Id : + Client Id : + entry + + + + + Office 365 Settings + 109581 + Office 365 Settings[password]:Client Secret : + Client Secret : + password + + + + + OpenStack Compliance Checks + 86349 + OpenStack Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + OpenStack Compliance Checks + 86349 + OpenStack Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + OpenStack Compliance Checks + 86349 + OpenStack Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + OpenStack Compliance Checks + 86349 + OpenStack Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + OpenStack Compliance Checks + 86349 + OpenStack Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + OpenStack Settings + 86348 + OpenStack Settings[entry]:Username : + Username : + entry + + + + + OpenStack Settings + 86348 + OpenStack Settings[entry]:Tenant Name for Authentication : + Tenant Name for Authentication : + entry + admin + admin + + + OpenStack Settings + 86348 + OpenStack Settings[password]:Password : + Password : + password + + + + + OpenStack Settings + 86348 + OpenStack Settings[entry]:Port : + Port : + entry + 443 + 443 + + + OpenStack Settings + 86348 + OpenStack Settings[checkbox]:SSL : + SSL : + checkbox + yes + yes + + + OpenStack Settings + 86348 + OpenStack Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + yes + yes + + + Oracle Settings + 22076 + Oracle Settings[radio]:Oracle service type : + Oracle service type : + radio + SID;SERVICE_NAME + SID;SERVICE_NAME + + + Oracle Settings + 22076 + Oracle Settings[entry]:Oracle SID : + Oracle SID : + entry + + + + + Oracle Settings + 22076 + Oracle Settings[checkbox]:Test default accounts (slow) + Test default accounts (slow) + checkbox + no + no + + + OVAL Linux Compliance Checks + 83188 + OVAL Linux Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + OVAL Linux Compliance Checks + 83188 + OVAL Linux Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + OVAL Linux Compliance Checks + 83188 + OVAL Linux Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + OVAL Linux Compliance Checks + 83188 + OVAL Linux Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + OVAL Linux Compliance Checks + 83188 + OVAL Linux Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + OVAL Windows Compliance Checks + 83189 + OVAL Windows Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + OVAL Windows Compliance Checks + 83189 + OVAL Windows Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + OVAL Windows Compliance Checks + 83189 + OVAL Windows Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + OVAL Windows Compliance Checks + 83189 + OVAL Windows Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + OVAL Windows Compliance Checks + 83189 + OVAL Windows Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Palo Alto Networks PAN-OS Compliance Checks + 64095 + Palo Alto Networks PAN-OS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Palo Alto Networks PAN-OS Compliance Checks + 64095 + Palo Alto Networks PAN-OS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Palo Alto Networks PAN-OS Compliance Checks + 64095 + Palo Alto Networks PAN-OS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Palo Alto Networks PAN-OS Compliance Checks + 64095 + Palo Alto Networks PAN-OS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Palo Alto Networks PAN-OS Compliance Checks + 64095 + Palo Alto Networks PAN-OS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Palo Alto Networks PAN-OS Settings + 64286 + Palo Alto Networks PAN-OS Settings[entry]:Palo Alto Username : + Palo Alto Username : + entry + + + + + Palo Alto Networks PAN-OS Settings + 64286 + Palo Alto Networks PAN-OS Settings[password]:Palo Alto Password : + Palo Alto Password : + password + + + + + Palo Alto Networks PAN-OS Settings + 64286 + Palo Alto Networks PAN-OS Settings[entry]:Palo Alto Port : + Palo Alto Port : + entry + 443 + 443 + + + Palo Alto Networks PAN-OS Settings + 64286 + Palo Alto Networks PAN-OS Settings[checkbox]:SSL : + SSL : + checkbox + yes + yes + + + Palo Alto Networks PAN-OS Settings + 64286 + Palo Alto Networks PAN-OS Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + no + no + + + Patch Report + 66334 + Patch Report[checkbox]:Display the superseded patches in the report + Display the superseded patches in the report + checkbox + yes + yes + + + PCI DSS compliance + 33929 + PCI DSS compliance[checkbox]:Check for PCI-DSS compliance + Check for PCI-DSS compliance + checkbox + no + no + + + Ping the remote host + 10180 + Ping the remote host[entry]:TCP ping destination port(s) : + TCP ping destination port(s) : + entry + built-in + built-in + + + Ping the remote host + 10180 + Ping the remote host[checkbox]:Do an ARP ping + Do an ARP ping + checkbox + yes + yes + + + Ping the remote host + 10180 + Ping the remote host[checkbox]:Do a TCP ping + Do a TCP ping + checkbox + yes + yes + + + Ping the remote host + 10180 + Ping the remote host[checkbox]:Do an ICMP ping + Do an ICMP ping + checkbox + yes + yes + + + Ping the remote host + 10180 + Ping the remote host[entry]:Number of retries (ICMP) : + Number of retries (ICMP) : + entry + 2 + 2 + + + Ping the remote host + 10180 + Ping the remote host[checkbox]:Do an applicative UDP ping (DNS,RPC...) + Do an applicative UDP ping (DNS,RPC...) + checkbox + no + no + + + Ping the remote host + 10180 + Ping the remote host[checkbox]:Make the dead hosts appear in the report + Make the dead hosts appear in the report + checkbox + no + no + + + Ping the remote host + 10180 + Ping the remote host[checkbox]:Log live hosts in the report + Log live hosts in the report + checkbox + no + no + + + Ping the remote host + 10180 + Ping the remote host[checkbox]:Test the local Nessus host + Test the local Nessus host + checkbox + yes + yes + + + Ping the remote host + 10180 + Ping the remote host[checkbox]:Fast network discovery + Fast network discovery + checkbox + no + no + + + Ping the remote host + 10180 + Ping the remote host[checkbox]:Interpret ICMP unreach from gateway + Interpret ICMP unreach from gateway + checkbox + no + no + + + Nessus Launched Plugin List + 112154 + Nessus Launched Plugin List[checkbox]:Enable Plugin List Report + Enable Plugin List Report + checkbox + no + no + + + Port scanners settings + 33812 + Port scanners settings[checkbox]:Check open TCP ports found by local port enumerators + + Check open TCP ports found by local port enumerators + checkbox + no + no + + + Port scanners settings + 33812 + Port scanners settings[checkbox]:Only run network port scanners if local port enumeration + failed + + Only run network port scanners if local port enumeration failed + checkbox + yes + yes + + + Rackspace Compliance Checks + 79356 + Rackspace Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Rackspace Compliance Checks + 79356 + Rackspace Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Rackspace Compliance Checks + 79356 + Rackspace Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Rackspace Compliance Checks + 79356 + Rackspace Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Rackspace Compliance Checks + 79356 + Rackspace Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Rackspace Settings + 79355 + Rackspace Settings[entry]:Username : + Username : + entry + + + + + Rackspace Settings + 79355 + Rackspace Settings[password]:Password or API Key : + Password or API Key : + password + + + + + Rackspace Settings + 79355 + Rackspace Settings[radio]:Authentication Method : + Authentication Method : + radio + API-Key;Password + API-Key;Password + + + Rackspace Settings + 79355 + Rackspace Settings[checkbox]:Dallas-Fort Worth (DFW) : + Dallas-Fort Worth (DFW) : + checkbox + yes + yes + + + Rackspace Settings + 79355 + Rackspace Settings[checkbox]:Chicago (ORD) : + Chicago (ORD) : + checkbox + yes + yes + + + Rackspace Settings + 79355 + Rackspace Settings[checkbox]:Northern Virginia (IAD) : + Northern Virginia (IAD) : + checkbox + yes + yes + + + Rackspace Settings + 79355 + Rackspace Settings[checkbox]:London (LON) : + London (LON) : + checkbox + yes + yes + + + Rackspace Settings + 79355 + Rackspace Settings[checkbox]:Sydney (SYD) : + Sydney (SYD) : + checkbox + yes + yes + + + Rackspace Settings + 79355 + Rackspace Settings[checkbox]:Hong Kong (HKG) : + Hong Kong (HKG) : + checkbox + yes + yes + + + RHEV Settings + 77089 + RHEV Settings[entry]:Username : + Username : + entry + + + + + RHEV Settings + 77089 + RHEV Settings[password]:Password : + Password : + password + + + + + RHEV Settings + 77089 + RHEV Settings[entry]:Port : + Port : + entry + 443 + 443 + + + RHEV Settings + 77089 + RHEV Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + no + no + + + RHEV Compliance Checks + 77090 + RHEV Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + RHEV Compliance Checks + 77090 + RHEV Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + RHEV Compliance Checks + 77090 + RHEV Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + RHEV Compliance Checks + 77090 + RHEV Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + RHEV Compliance Checks + 77090 + RHEV Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Salesforce.com Settings + 76710 + Salesforce.com Settings[entry]:Username : + Username : + entry + + + + + Salesforce.com Settings + 76710 + Salesforce.com Settings[password]:Password : + Password : + password + + + + + Salesforce.com Compliance Checks + 76711 + Salesforce.com Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Salesforce.com Compliance Checks + 76711 + Salesforce.com Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Salesforce.com Compliance Checks + 76711 + Salesforce.com Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Salesforce.com Compliance Checks + 76711 + Salesforce.com Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Salesforce.com Compliance Checks + 76711 + Salesforce.com Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Patch Management: Red Hat Satellite 6 Settings + 84232 + Patch Management: Red Hat Satellite 6 Settings[entry]:Satellite 6 Server : + Satellite 6 Server : + entry + + + + + Patch Management: Red Hat Satellite 6 Settings + 84232 + Patch Management: Red Hat Satellite 6 Settings[entry]:Satellite 6 Port : + Satellite 6 Port : + entry + 443 + 443 + + + Patch Management: Red Hat Satellite 6 Settings + 84232 + Patch Management: Red Hat Satellite 6 Settings[checkbox]:Satellite 6 Use SSL : + Satellite 6 Use SSL : + checkbox + yes + yes + + + Patch Management: Red Hat Satellite 6 Settings + 84232 + Patch Management: Red Hat Satellite 6 Settings[checkbox]:Satellite 6 Verify Certificate + : + + Satellite 6 Verify Certificate : + checkbox + yes + yes + + + Patch Management: Red Hat Satellite 6 Settings + 84232 + Patch Management: Red Hat Satellite 6 Settings[entry]:Satellite 6 Username : + Satellite 6 Username : + entry + + + + + Patch Management: Red Hat Satellite 6 Settings + 84232 + Patch Management: Red Hat Satellite 6 Settings[password]:Satellite 6 Password : + Satellite 6 Password : + password + + + + + Patch Management: Red Hat Satellite Server Settings + 84238 + Patch Management: Red Hat Satellite Server Settings[entry]:Red Hat Satellite server(s) + [separated w/ semicolons] : + + Red Hat Satellite server(s) [separated w/ semicolons] : + entry + + + + + Patch Management: Red Hat Satellite Server Settings + 84238 + Patch Management: Red Hat Satellite Server Settings[entry]:Red Hat Satellite port(s) : + + Red Hat Satellite port(s) : + entry + 443 + 443 + + + Patch Management: Red Hat Satellite Server Settings + 84238 + Patch Management: Red Hat Satellite Server Settings[checkbox]:Verify SSL certificates : + + Verify SSL certificates : + checkbox + no + no + + + Patch Management: Red Hat Satellite Server Settings + 84238 + Patch Management: Red Hat Satellite Server Settings[entry]:Red Hat Satellite username(s) + : + + Red Hat Satellite username(s) : + entry + + + + + Patch Management: Red Hat Satellite Server Settings + 84238 + Patch Management: Red Hat Satellite Server Settings[password]:Red Hat Satellite + password(s) : + + Red Hat Satellite password(s) : + password + + + + + ICCP/COTP TSAP Addressing Weakness + 23812 + ICCP/COTP TSAP Addressing Weakness[entry]:Start COTP TSAP : + Start COTP TSAP : + entry + 8 + 8 + + + ICCP/COTP TSAP Addressing Weakness + 23812 + ICCP/COTP TSAP Addressing Weakness[entry]:Stop COTP TSAP : + Stop COTP TSAP : + entry + 8 + 8 + + + Modbus/TCP Coil Access + 23817 + Modbus/TCP Coil Access[entry]:Start reg : + Start reg : + entry + 0 + 0 + + + Modbus/TCP Coil Access + 23817 + Modbus/TCP Coil Access[entry]:End reg : + End reg : + entry + 16 + 16 + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[file]:SCAP File (zip) #1 : + SCAP File (zip) #1 : + file + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:SCAP Version #1 : + SCAP Version #1 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #1 : + SCAP Data Stream ID (1.2 only) #1 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Benchmark ID #1 : + SCAP Benchmark ID #1 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Profile ID #1 : + SCAP Profile ID #1 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:OVAL Result Type #1 : + OVAL Result Type #1 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[file]:SCAP File (zip) #2 : + SCAP File (zip) #2 : + file + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:SCAP Version #2 : + SCAP Version #2 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #2 : + SCAP Data Stream ID (1.2 only) #2 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Benchmark ID #2 : + SCAP Benchmark ID #2 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Profile ID #2 : + SCAP Profile ID #2 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:OVAL Result Type #2 : + OVAL Result Type #2 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[file]:SCAP File (zip) #3 : + SCAP File (zip) #3 : + file + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:SCAP Version #3 : + SCAP Version #3 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #3 : + SCAP Data Stream ID (1.2 only) #3 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Benchmark ID #3 : + SCAP Benchmark ID #3 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Profile ID #3 : + SCAP Profile ID #3 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:OVAL Result Type #3 : + OVAL Result Type #3 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[file]:SCAP File (zip) #4 : + SCAP File (zip) #4 : + file + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:SCAP Version #4 : + SCAP Version #4 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #4 : + SCAP Data Stream ID (1.2 only) #4 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Benchmark ID #4 : + SCAP Benchmark ID #4 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Profile ID #4 : + SCAP Profile ID #4 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:OVAL Result Type #4 : + OVAL Result Type #4 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[file]:SCAP File (zip) #5 : + SCAP File (zip) #5 : + file + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:SCAP Version #5 : + SCAP Version #5 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #5 : + SCAP Data Stream ID (1.2 only) #5 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Benchmark ID #5 : + SCAP Benchmark ID #5 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[entry]:SCAP Profile ID #5 : + SCAP Profile ID #5 : + entry + + + + + SCAP Linux Compliance Checks + 66757 + SCAP Linux Compliance Checks[radio]:OVAL Result Type #5 : + OVAL Result Type #5 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[file]:SCAP File (zip) #1 : + SCAP File (zip) #1 : + file + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:SCAP Version #1 : + SCAP Version #1 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #1 : + SCAP Data Stream ID (1.2 only) #1 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Benchmark ID #1 : + SCAP Benchmark ID #1 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Profile ID #1 : + SCAP Profile ID #1 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:OVAL Result Type #1 : + OVAL Result Type #1 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[file]:SCAP File (zip) #2 : + SCAP File (zip) #2 : + file + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:SCAP Version #2 : + SCAP Version #2 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #2 : + SCAP Data Stream ID (1.2 only) #2 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Benchmark ID #2 : + SCAP Benchmark ID #2 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Profile ID #2 : + SCAP Profile ID #2 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:OVAL Result Type #2 : + OVAL Result Type #2 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[file]:SCAP File (zip) #3 : + SCAP File (zip) #3 : + file + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:SCAP Version #3 : + SCAP Version #3 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #3 : + SCAP Data Stream ID (1.2 only) #3 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Benchmark ID #3 : + SCAP Benchmark ID #3 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Profile ID #3 : + SCAP Profile ID #3 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:OVAL Result Type #3 : + OVAL Result Type #3 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[file]:SCAP File (zip) #4 : + SCAP File (zip) #4 : + file + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:SCAP Version #4 : + SCAP Version #4 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #4 : + SCAP Data Stream ID (1.2 only) #4 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Benchmark ID #4 : + SCAP Benchmark ID #4 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Profile ID #4 : + SCAP Profile ID #4 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:OVAL Result Type #4 : + OVAL Result Type #4 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[file]:SCAP File (zip) #5 : + SCAP File (zip) #5 : + file + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:SCAP Version #5 : + SCAP Version #5 : + radio + 1.2;1.1;1.0 + 1.2;1.1;1.0 + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Data Stream ID (1.2 only) #5 : + SCAP Data Stream ID (1.2 only) #5 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Benchmark ID #5 : + SCAP Benchmark ID #5 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[entry]:SCAP Profile ID #5 : + SCAP Profile ID #5 : + entry + + + + + SCAP Windows Compliance Checks + 66756 + SCAP Windows Compliance Checks[radio]:OVAL Result Type #5 : + OVAL Result Type #5 : + radio + Full results w/ system characteristics;Full results w/o system + characteristics;Thin results + + Full results w/ system characteristics;Full results w/o system characteristics;Thin + results + + + + Patch Management: SCCM Server Settings + 57029 + Patch Management: SCCM Server Settings[entry]:SCCM Server : + SCCM Server : + entry + + + + + Patch Management: SCCM Server Settings + 57029 + Patch Management: SCCM Server Settings[entry]:SCCM Domain : + SCCM Domain : + entry + + + + + Patch Management: SCCM Server Settings + 57029 + Patch Management: SCCM Server Settings[entry]:SCCM Username : + SCCM Username : + entry + + + + + Patch Management: SCCM Server Settings + 57029 + Patch Management: SCCM Server Settings[password]:SCCM Password : + SCCM Password : + password + + + + + SMB Scope + 10917 + SMB Scope[checkbox]:Request information about the domain + Request information about the domain + checkbox + yes + yes + + + SMTP settings + 11038 + SMTP settings[entry]:Third party domain : + Third party domain : + entry + example.edu + example.edu + + + SMTP settings + 11038 + SMTP settings[entry]:From address : + From address : + entry + nobody@example.edu + nobody@example.edu + + + SMTP settings + 11038 + SMTP settings[entry]:To address : + To address : + entry + postmaster@[AUTO_REPLACED_IP] + postmaster@[AUTO_REPLACED_IP] + + + SNMP settings + 19762 + SNMP settings[entry]:Community name : + Community name : + entry + public + public + + + SNMP settings + 19762 + SNMP settings[entry]:Community name (1) : + Community name (1) : + entry + + + + + SNMP settings + 19762 + SNMP settings[entry]:Community name (2) : + Community name (2) : + entry + + + + + SNMP settings + 19762 + SNMP settings[entry]:Community name (3) : + Community name (3) : + entry + + + + + SNMP settings + 19762 + SNMP settings[entry]:UDP port : + UDP port : + entry + 161 + 161 + + + SNMP settings + 19762 + SNMP settings[entry]:Additional UDP port (1) : + Additional UDP port (1) : + entry + + 161 + + + SNMP settings + 19762 + SNMP settings[entry]:Additional UDP port (2) : + Additional UDP port (2) : + entry + + 161 + + + SNMP settings + 19762 + SNMP settings[entry]:Additional UDP port (3) : + Additional UDP port (3) : + entry + + 161 + + + SNMP settings + 19762 + SNMP settings[entry]:SNMPv3 user name : + SNMPv3 user name : + entry + + + + + SNMP settings + 19762 + SNMP settings[password]:SNMPv3 authentication password : + SNMPv3 authentication password : + password + + + + + SNMP settings + 19762 + SNMP settings[radio]:SNMPv3 authentication algorithm : + SNMPv3 authentication algorithm : + radio + MD5;SHA1 + MD5;SHA1 + + + SNMP settings + 19762 + SNMP settings[password]:SNMPv3 privacy password : + SNMPv3 privacy password : + password + + + + + SNMP settings + 19762 + SNMP settings[radio]:SNMPv3 privacy algorithm : + SNMPv3 privacy algorithm : + radio + AES;DES + AES;DES + + + SonicWALL SonicOS Compliance Checks + 71955 + SonicWALL SonicOS Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + SonicWALL SonicOS Compliance Checks + 71955 + SonicWALL SonicOS Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + SonicWALL SonicOS Compliance Checks + 71955 + SonicWALL SonicOS Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + SonicWALL SonicOS Compliance Checks + 71955 + SonicWALL SonicOS Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + SonicWALL SonicOS Compliance Checks + 71955 + SonicWALL SonicOS Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + SonicWALL SonicOS Compliance Checks + 71955 + SonicWALL SonicOS Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + SSH settings + 14273 + SSH settings[entry]:SSH user name : + SSH user name : + entry + root + root + + + SSH settings + 14273 + SSH settings[password]:SSH password (unsafe!) : + SSH password (unsafe!) : + password + + + + + SSH settings + 14273 + SSH settings[file]:SSH public key to use : + SSH public key to use : + file + + + + + SSH settings + 14273 + SSH settings[file]:SSH private key to use : + SSH private key to use : + file + + + + + SSH settings + 14273 + SSH settings[password]:Passphrase for SSH key : + Passphrase for SSH key : + password + + + + + SSH settings + 14273 + SSH settings[radio]:Elevate privileges with : + Elevate privileges with : + radio + Nothing;sudo;su;su+sudo;dzdo;pbrun;Cisco 'enable' + Nothing;sudo;su;su+sudo;dzdo;pbrun;Cisco 'enable' + + + SSH settings + 14273 + SSH settings[entry]:Privilege elevation binary path (directory) : + Privilege elevation binary path (directory) : + entry + + + + + SSH settings + 14273 + SSH settings[entry]:su login : + su login : + entry + + + + + SSH settings + 14273 + SSH settings[entry]:Escalation account : + Escalation account : + entry + root + root + + + SSH settings + 14273 + SSH settings[password]:Escalation password : + Escalation password : + password + + + + + SSH settings + 14273 + SSH settings[file]:SSH known_hosts file : + SSH known_hosts file : + file + + + + + SSH settings + 14273 + SSH settings[entry]:Preferred SSH port : + Preferred SSH port : + entry + 22 + 22 + + + SSH settings + 14273 + SSH settings[entry]:Client version : + Client version : + entry + OpenSSH_5.0 + OpenSSH_5.0 + + + SSH settings + 14273 + SSH settings[entry]:Additional SSH user name (1) : + Additional SSH user name (1) : + entry + + + + + SSH settings + 14273 + SSH settings[password]:Additional SSH password (1) : + Additional SSH password (1) : + password + + + + + SSH settings + 14273 + SSH settings[entry]:Additional SSH user name (2) : + Additional SSH user name (2) : + entry + + + + + SSH settings + 14273 + SSH settings[password]:Additional SSH password (2) : + Additional SSH password (2) : + password + + + + + SSH settings + 14273 + SSH settings[entry]:Additional SSH user name (3) : + Additional SSH user name (3) : + entry + + + + + SSH settings + 14273 + SSH settings[password]:Additional SSH password (3) : + Additional SSH password (3) : + password + + + + + SSH settings + 14273 + SSH settings[entry]:Additional SSH user name (4) : + Additional SSH user name (4) : + entry + + + + + SSH settings + 14273 + SSH settings[password]:Additional SSH password (4) : + Additional SSH password (4) : + password + + + + + SSH settings + 14273 + SSH settings[entry]:Additional SSH user name (5) : + Additional SSH user name (5) : + entry + + + + + SSH settings + 14273 + SSH settings[password]:Additional SSH password (5) : + Additional SSH password (5) : + password + + + + + SSL Certificate Expiry + 15901 + SSL Certificate Expiry[entry]:Identify certificates that expire within x days + Identify certificates that expire within x days + entry + 60 + 60 + + + SMB Registry : Start the Registry Service during the scan + 35703 + SMB Registry : Start the Registry Service during the scan[checkbox]:Start the registry + service during the scan + + Start the registry service during the scan + checkbox + no + no + + + SMB Registry : Start the Registry Service during the scan + 35703 + SMB Registry : Start the Registry Service during the scan[checkbox]:Enable administrative + shares during the scan + + Enable administrative shares during the scan + checkbox + no + no + + + Patch Management: Symantec Altiris Settings + 78013 + Patch Management: Symantec Altiris Settings[entry]:Symantec Altiris Database Server : + + Symantec Altiris Database Server : + entry + + + + + Patch Management: Symantec Altiris Settings + 78013 + Patch Management: Symantec Altiris Settings[entry]:Symantec Altiris Database Port : + + Symantec Altiris Database Port : + entry + 5690 + 5690 + + + Patch Management: Symantec Altiris Settings + 78013 + Patch Management: Symantec Altiris Settings[entry]:Symantec Altiris Database Name : + + Symantec Altiris Database Name : + entry + Symantec_CMDB + Symantec_CMDB + + + Patch Management: Symantec Altiris Settings + 78013 + Patch Management: Symantec Altiris Settings[checkbox]:Symantec Altiris Use Windows + Credentials : + + Symantec Altiris Use Windows Credentials : + checkbox + no + no + + + Patch Management: Symantec Altiris Settings + 78013 + Patch Management: Symantec Altiris Settings[entry]:Symantec Altiris Database Username : + + Symantec Altiris Database Username : + entry + + + + + Patch Management: Symantec Altiris Settings + 78013 + Patch Management: Symantec Altiris Settings[password]:Symantec Altiris Database Password + : + + Symantec Altiris Database Password : + password + + + + + Unix File Contents Compliance Checks + 72095 + Unix File Contents Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Unix File Contents Compliance Checks + 72095 + Unix File Contents Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Unix File Contents Compliance Checks + 72095 + Unix File Contents Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Unix File Contents Compliance Checks + 72095 + Unix File Contents Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Unix File Contents Compliance Checks + 72095 + Unix File Contents Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Unix Compliance Checks + 21157 + Unix Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + Unix Compliance Checks + 21157 + Unix Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + Unix Compliance Checks + 21157 + Unix Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + Unix Compliance Checks + 21157 + Unix Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + Unix Compliance Checks + 21157 + Unix Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + Unix Compliance Checks + 21157 + Unix Compliance Checks[radio]:Docker Scan Scope : + Docker Scan Scope : + radio + all + all + + + VMware vCenter/vSphere Compliance Checks + 64455 + VMware vCenter/vSphere Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + VMware vCenter/vSphere Compliance Checks + 64455 + VMware vCenter/vSphere Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + VMware vCenter/vSphere Compliance Checks + 64455 + VMware vCenter/vSphere Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + VMware vCenter/vSphere Compliance Checks + 64455 + VMware vCenter/vSphere Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + VMware vCenter/vSphere Compliance Checks + 64455 + VMware vCenter/vSphere Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[entry]:VMware user name : + VMware user name : + entry + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[password]:VMware password : + VMware password : + password + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[checkbox]:Ignore SSL Certificate : + Ignore SSL Certificate : + checkbox + no + no + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[entry]:Additional VMware user name (1) : + Additional VMware user name (1) : + entry + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[password]:Additional VMware password (1) : + Additional VMware password (1) : + password + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[checkbox]:Additional Ignore SSL Certificate (1) : + Additional Ignore SSL Certificate (1) : + checkbox + no + no + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[entry]:Additional VMware user name (2) : + Additional VMware user name (2) : + entry + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[password]:Additional VMware password (2) : + Additional VMware password (2) : + password + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[checkbox]:Additional Ignore SSL Certificate (2) : + Additional Ignore SSL Certificate (2) : + checkbox + no + no + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[entry]:Additional VMware user name (3) : + Additional VMware user name (3) : + entry + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[password]:Additional VMware password (3) : + Additional VMware password (3) : + password + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[checkbox]:Additional Ignore SSL Certificate (3) : + Additional Ignore SSL Certificate (3) : + checkbox + no + no + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[entry]:Additional VMware user name (4) : + Additional VMware user name (4) : + entry + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[password]:Additional VMware password (4) : + Additional VMware password (4) : + password + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[checkbox]:Additional Ignore SSL Certificate (4) : + Additional Ignore SSL Certificate (4) : + checkbox + no + no + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[entry]:Additional VMware user name (5) : + Additional VMware user name (5) : + entry + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[password]:Additional VMware password (5) : + Additional VMware password (5) : + password + + + + + VMware SOAP API Settings + 57395 + VMware SOAP API Settings[checkbox]:Additional Ignore SSL Certificate (5) : + Additional Ignore SSL Certificate (5) : + checkbox + no + no + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:VMware vCenter host : + VMware vCenter host : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:VMware vCenter port : + VMware vCenter port : + entry + 443 + 443 + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:VMware vCenter user name : + VMware vCenter user name : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[password]:VMware vCenter password : + VMware vCenter password : + password + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:SSL : + SSL : + checkbox + yes + yes + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + no + no + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter host (1) : + Additional VMware vCenter host (1) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter port (1) : + Additional VMware vCenter port (1) : + entry + 443 + 443 + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter user name (1) : + + Additional VMware vCenter user name (1) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[password]:Additional VMware vCenter password (1) : + + Additional VMware vCenter password (1) : + password + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional SSL (1) : + Additional SSL (1) : + checkbox + yes + yes + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional Verify SSL Certificate (1) : + + Additional Verify SSL Certificate (1) : + checkbox + no + no + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter host (2) : + Additional VMware vCenter host (2) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter port (2) : + Additional VMware vCenter port (2) : + entry + 443 + 443 + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter user name (2) : + + Additional VMware vCenter user name (2) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[password]:Additional VMware vCenter password (2) : + + Additional VMware vCenter password (2) : + password + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional SSL (2) : + Additional SSL (2) : + checkbox + yes + yes + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional Verify SSL Certificate (2) : + + Additional Verify SSL Certificate (2) : + checkbox + no + no + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter host (3) : + Additional VMware vCenter host (3) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter port (3) : + Additional VMware vCenter port (3) : + entry + 443 + 443 + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter user name (3) : + + Additional VMware vCenter user name (3) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[password]:Additional VMware vCenter password (3) : + + Additional VMware vCenter password (3) : + password + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional SSL (3) : + Additional SSL (3) : + checkbox + yes + yes + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional Verify SSL Certificate (3) : + + Additional Verify SSL Certificate (3) : + checkbox + no + no + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter host (4) : + Additional VMware vCenter host (4) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter port (4) : + Additional VMware vCenter port (4) : + entry + 443 + 443 + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter user name (4) : + + Additional VMware vCenter user name (4) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[password]:Additional VMware vCenter password (4) : + + Additional VMware vCenter password (4) : + password + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional SSL (4) : + Additional SSL (4) : + checkbox + yes + yes + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional Verify SSL Certificate (4) : + + Additional Verify SSL Certificate (4) : + checkbox + no + no + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter host (5) : + Additional VMware vCenter host (5) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter port (5) : + Additional VMware vCenter port (5) : + entry + 443 + 443 + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[entry]:Additional VMware vCenter user name (5) : + + Additional VMware vCenter user name (5) : + entry + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[password]:Additional VMware vCenter password (5) : + + Additional VMware vCenter password (5) : + password + + + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional SSL (5) : + Additional SSL (5) : + checkbox + yes + yes + + + VMware vCenter SOAP API Settings + 63060 + VMware vCenter SOAP API Settings[checkbox]:Additional Verify SSL Certificate (5) : + + Additional Verify SSL Certificate (5) : + checkbox + no + no + + + WatchGuard Compliance Checks + 86269 + WatchGuard Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + WatchGuard Compliance Checks + 86269 + WatchGuard Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + WatchGuard Compliance Checks + 86269 + WatchGuard Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + WatchGuard Compliance Checks + 86269 + WatchGuard Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + WatchGuard Compliance Checks + 86269 + WatchGuard Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + WatchGuard Compliance Checks + 86269 + WatchGuard Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + Web Application Tests Settings + 39471 + Web Application Tests Settings[checkbox]:Enable web applications tests + Enable web applications tests + checkbox + no + no + + + Web Application Tests Settings + 39471 + Web Application Tests Settings[entry]:Maximum run time (min) : + Maximum run time (min) : + entry + 60 + 60 + + + Web Application Tests Settings + 39471 + Web Application Tests Settings[checkbox]:Try all HTTP methods + Try all HTTP methods + checkbox + no + no + + + Web Application Tests Settings + 39471 + Web Application Tests Settings[radio]:Combinations of arguments values + Combinations of arguments values + radio + one value;some pairs;all pairs (slower but efficient);some combinations;all + combinations (extremely slow) + + one value;some pairs;all pairs (slower but efficient);some combinations;all + combinations (extremely slow) + + + + Web Application Tests Settings + 39471 + Web Application Tests Settings[checkbox]:HTTP Parameter Pollution + HTTP Parameter Pollution + checkbox + no + no + + + Web Application Tests Settings + 39471 + Web Application Tests Settings[radio]:Stop at first flaw + Stop at first flaw + radio + per CGI;per port (quicker);per parameter (slow);look for all flaws (slower) + + per CGI;per port (quicker);per parameter (slow);look for all flaws (slower) + + + + Web Application Tests Settings + 39471 + Web Application Tests Settings[checkbox]:Test embedded web servers + Test embedded web servers + checkbox + no + no + + + Web Application Tests Settings + 39471 + Web Application Tests Settings[entry]:URL for Remote File Inclusion : + URL for Remote File Inclusion : + entry + http://rfi.nessus.org/rfi.txt + http://rfi.nessus.org/rfi.txt + + + Web mirroring + 10662 + Web mirroring[entry]:Number of pages to mirror : + Number of pages to mirror : + entry + 1000 + 1000 + + + Web mirroring + 10662 + Web mirroring[entry]:Maximum depth : + Maximum depth : + entry + 6 + 6 + + + Web mirroring + 10662 + Web mirroring[entry]:Start page : + Start page : + entry + / + / + + + Web mirroring + 10662 + Web mirroring[entry]:Excluded items regex : + Excluded items regex : + entry + /server_privileges\.php|logout + /server_privileges\.php|logout + + + Web mirroring + 10662 + Web mirroring[checkbox]:Follow dynamic pages : + Follow dynamic pages : + checkbox + no + no + + + Malicious Process Detection + 59275 + Malicious Process Detection[file]:Additional MD5 hashes (optional) : + Additional MD5 hashes (optional) : + file + + + + + Malicious Process Detection + 59275 + Malicious Process Detection[file]:Known good MD5 hashes (optional) : + Known good MD5 hashes (optional) : + file + + + + + Malicious Process Detection + 59275 + Malicious Process Detection[file]:Yara rules file : + Yara rules file : + file + + + + + Malicious Process Detection + 59275 + Malicious Process Detection[checkbox]:disable_dns_resolution + disable_dns_resolution + checkbox + no + no + + + Malicious Process Detection + 59275 + Malicious Process Detection[checkbox]:enable_malware_scanning + enable_malware_scanning + checkbox + no + no + + + Wake-on-LAN + 52616 + Wake-on-LAN[file]:List of MAC addresses for Wake-on-LAN: + List of MAC addresses for Wake-on-LAN: + file + + + + + Wake-on-LAN + 52616 + Wake-on-LAN[entry]:Time to wait (in minutes) for the systems to boot: + Time to wait (in minutes) for the systems to boot: + entry + 5 + 5 + + + Patch Management: WSUS Server Settings + 57031 + Patch Management: WSUS Server Settings[entry]:WSUS Server : + WSUS Server : + entry + + + + + Patch Management: WSUS Server Settings + 57031 + Patch Management: WSUS Server Settings[entry]:WSUS Port : + WSUS Port : + entry + + + + + Patch Management: WSUS Server Settings + 57031 + Patch Management: WSUS Server Settings[entry]:WSUS Username : + WSUS Username : + entry + + + + + Patch Management: WSUS Server Settings + 57031 + Patch Management: WSUS Server Settings[password]:WSUS Password : + WSUS Password : + password + + + + + Patch Management: WSUS Server Settings + 57031 + Patch Management: WSUS Server Settings[checkbox]:SSL : + SSL : + checkbox + no + no + + + Patch Management: WSUS Server Settings + 57031 + Patch Management: WSUS Server Settings[checkbox]:Verify SSL Certificate : + Verify SSL Certificate : + checkbox + no + no + + + ZTE ROSNG Compliance Checks + 144328 + ZTE ROSNG Compliance Checks[file]:Policy file #1 : + Policy file #1 : + file + + + + + ZTE ROSNG Compliance Checks + 144328 + ZTE ROSNG Compliance Checks[file]:Policy file #2 : + Policy file #2 : + file + + + + + ZTE ROSNG Compliance Checks + 144328 + ZTE ROSNG Compliance Checks[file]:Policy file #3 : + Policy file #3 : + file + + + + + ZTE ROSNG Compliance Checks + 144328 + ZTE ROSNG Compliance Checks[file]:Policy file #4 : + Policy file #4 : + file + + + + + ZTE ROSNG Compliance Checks + 144328 + ZTE ROSNG Compliance Checks[file]:Policy file #5 : + Policy file #5 : + file + + + + + ZTE ROSNG Compliance Checks + 144328 + ZTE ROSNG Compliance Checks[file]:Offline config file (.txt or .zip) : + Offline config file (.txt or .zip) : + file + + + + + + + + MacOS X Local Security Checks + enabled + + + F5 Networks Local Security Checks + enabled + + + DNS + enabled + + + Gain a shell remotely + enabled + + + Solaris Local Security Checks + enabled + + + Port scanners + mixed + + + Web Servers + enabled + + + SMTP problems + enabled + + + Service detection + enabled + + + CGI abuses : XSS + enabled + + + Debian Local Security Checks + enabled + + + Mandriva Local Security Checks + enabled + + + Databases + enabled + + + Default Unix Accounts + enabled + + + Denial of Service + enabled + + + Settings + enabled + + + Palo Alto Local Security Checks + enabled + + + HP-UX Local Security Checks + enabled + + + Backdoors + enabled + + + VMware ESX Local Security Checks + enabled + + + NewStart CGSL Local Security Checks + enabled + + + SCADA + enabled + + + Oracle Linux Local Security Checks + enabled + + + General + enabled + + + PhotonOS Local Security Checks + enabled + + + Red Hat Local Security Checks + enabled + + + FreeBSD Local Security Checks + enabled + + + CGI abuses + enabled + + + Rocky Linux Local Security Checks + enabled + + + Tenable.ot + disabled + + + Netware + enabled + + + Windows : User management + enabled + + + Amazon Linux Local Security Checks + enabled + + + Peer-To-Peer File Sharing + enabled + + + Slackware Local Security Checks + enabled + + + SNMP + enabled + + + Fedora Local Security Checks + enabled + + + Gentoo Local Security Checks + enabled + + + Huawei Local Security Checks + enabled + + + Ubuntu Local Security Checks + enabled + + + Misc. + enabled + + + Alma Linux Local Security Checks + enabled + + + Virtuozzo Local Security Checks + enabled + + + FTP + enabled + + + Firewalls + enabled + + + Windows : Microsoft Bulletins + enabled + + + Junos Local Security Checks + enabled + + + SuSE Local Security Checks + enabled + + + Policy Compliance + disabled + + + Windows + enabled + + + OracleVM Local Security Checks + enabled + + + RPC + enabled + + + CentOS Local Security Checks + enabled + + + CISCO + enabled + + + AIX Local Security Checks + enabled + + + Scientific Linux Local Security Checks + enabled + + + Mobile Devices + enabled + + + + + 34220 + Netstat Portscanner (WMI) + Netstat Portscanner (WMI) + enabled + + + 14274 + Nessus SNMP Scanner + Nessus SNMP Scanner + enabled + + + 14272 + Netstat Portscanner (SSH) + Netstat Portscanner (SSH) + enabled + + + 10180 + Ping the remote host + Ping the remote host + enabled + + + 11219 + Nessus SYN scanner + Nessus SYN scanner + enabled + + + + + + + 1648044472 + Wed Mar 23 15:07:52 2022 + cpe:/a:php:php:5.1.6 -> PHP PHP + 1648044472 + false + Basic Network Scan + 138 + cpe:/a:nginx:nginx:1.19.0 -> Nginx + cpe:/a:php:php:5.6.40-38+ubuntu20.04.1+deb.sury.org+1 -> PHP PHP + CVE-2014-8626, CVE-2012-1172, + CVE-2012-1171, CVE-2012-0831, CVE-2012-0789, CVE-2012-0788, CVE-2012-0781, CVE-2012-0057, + CVE-2011-4885, CVE-2011-4566, CVE-2011-3379, CVE-2011-1398, CVE-2010-1130, CVE-2010-1129, + CVE-2010-1128, CVE-2009-5016, CVE-2009-4143, CVE-2009-4142, CVE-2009-4018, CVE-2009-4017, + CVE-2009-3558, CVE-2009-3557, CVE-2009-3294, CVE-2009-3293, CVE-2009-3292, CVE-2009-3291, + CVE-2009-2687, CVE-2009-1272, CVE-2009-1271, CVE-2008-7068, CVE-2008-5658, CVE-2008-5625, + CVE-2008-5624, CVE-2008-5557, CVE-2008-5498, CVE-2008-3660, CVE-2008-3659, CVE-2008-3658, + CVE-2008-2829, CVE-2008-2666, CVE-2008-2665, CVE-2008-2371, CVE-2007-5424, CVE-2007-4663, + CVE-2007-4662, CVE-2007-4661, CVE-2007-4660, CVE-2007-4659, CVE-2007-4658, CVE-2007-4652, + CVE-2007-4586, CVE-2007-4507, CVE-2007-4441, CVE-2007-4255, CVE-2007-4033, CVE-2007-4010, + CVE-2007-3806, CVE-2007-3799, CVE-2007-3790, CVE-2007-3378, CVE-2007-3294, CVE-2007-3007, + CVE-2007-2872, CVE-2007-2844, CVE-2007-2756, CVE-2007-1900, CVE-2007-1890, CVE-2007-1889, + CVE-2007-1888, CVE-2007-1887, CVE-2007-1886, CVE-2007-1885, CVE-2007-1884, CVE-2007-1835, + CVE-2007-1825, CVE-2007-1824, CVE-2007-1718, CVE-2007-1717, CVE-2007-1701, CVE-2007-1700, + CVE-2007-1649, CVE-2007-1584, CVE-2007-1583, CVE-2007-1454, CVE-2007-1453, CVE-2007-1452, + CVE-2007-1413, CVE-2007-1383, CVE-2007-1381, CVE-2007-1380, CVE-2007-1376, CVE-2007-1001, + CVE-2007-0988, CVE-2007-0910, CVE-2007-0909, CVE-2007-0908, CVE-2007-0907, CVE-2007-0906, + CVE-2007-0905, CVE-2007-0448, CVE-2006-7205, CVE-2006-6383, CVE-2006-5706, CVE-2006-5465, + CVE-2006-4812, CVE-2006-4625, CVE-2006-4486, CVE-2006-2660, CVE-2006-1549, CVE-2006-1015 + + 110 + PHP < 5.3.12 / 5.4.2 CGI Query String + Code Execution: Upgrade to PHP version 5.3.12 / 5.4.2 or later. A 'mod_rewrite' workaround + is available as well. + + cpe:/a:igor_sysoev:nginx:1.19.0 -> Nginx + cpe:/a:php:php:5.6.40 -> PHP PHP + cpe:/o:linux:linux_kernel -> Linux Kernel + cpe:/o:linux:linux_kernel + linux + 65 + SinFP + [{"FQDN":"testphp.vulnweb.com","sources":["get_host_report_name()","determine_fqdn()"]},{"FQDN":"ec2-44-228-249-3.us-west-2.compute.amazonaws.com","sources":["get_host_fqdn()"]}] + general-purpose + Linux Kernel 2.6 + 197 + 197 + 1648042696 + 1648042695 + 1648042695 + ? + ? + ? + ? + ? + ? + ? + ? + 10.20.0.254 + [{"predicted-os": "Microsoft Windows Server 2012 R2", + "confidence": 1},{"predicted-os": "Ubuntu 14.04 Linux Kernel 3.13", + "confidence": 6},{"predicted-os": "CentOS Linux 7 Linux Kernel 3.10", + "confidence": 1}] + + + P1:B10113:F0x12:W62727:O0204ffff:M1460: + P2:B10113:F0x12:W62643:O0204ffff0402080affffffff4445414401030307:M1460: + P3:B00000:F0x00:W0:O0:M0 + P4:190101_7_p=80R + + testphp.vulnweb.com + ec2-44-228-249-3.us-west-2.compute.amazonaws.com + 44.228.249.3 + 1648042311 + Wed Mar 23 14:31:51 2022 + + + cpe:/a:php:php + 7.5 + CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H + 5.0 + DoS + manual + CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P + According to its self-reported version number, the version of PHP running on the remote web + server is prior to 7.3.24. It is, therefore affected by multiple vulnerabilities + + php_7_3_24.nasl + 2020-A-0510-S + 2020/10/29 + 2021/06/03 + PHP < 7.3.24 Multiple Vulnerabilities + 2020/11/06 + remote + Medium + 1.4 + https://www.php.net/ChangeLog-7.php#7.3.24 + Upgrade to PHP version 7.3.24 or later. + I + The version of PHP running on the remote web server is affected by multiple vulnerabilities. + + 2020/10/29 + IAVA:2020-A-0510-S + + URL : http://testphp.vulnweb.com/ (5.1.6 under http://testphp.vulnweb.com/secured/phpinfo.php) + Installed version : 5.1.6 + Fixed version : 7.3.24 + + + + + diff --git a/unittests/tools/test_tenable_parser.py b/unittests/tools/test_tenable_parser.py index 482d46cdad6..5d46fa06f9c 100644 --- a/unittests/tools/test_tenable_parser.py +++ b/unittests/tools/test_tenable_parser.py @@ -53,7 +53,6 @@ def test_parse_some_findings_csv_nessus_legacy(self): self.assertEqual("CVE-2004-2761", finding.unsaved_vulnerability_ids[0]) # this vuln have 'CVE-2013-2566,CVE-2015-2808' as CVE finding = findings[3] - print(f"finding.unsaved_vulnerability_ids: {finding.unsaved_vulnerability_ids} - {type(finding.unsaved_vulnerability_ids)} - {type(finding.unsaved_vulnerability_ids[0])}") self.assertEqual(2, len(finding.unsaved_vulnerability_ids)) self.assertEqual("CVE-2013-2566", finding.unsaved_vulnerability_ids[0]) self.assertEqual("CVE-2015-2808", finding.unsaved_vulnerability_ids[1]) @@ -268,3 +267,13 @@ def test_parse_many_tenable_vulns(self): self.assertEqual(1, len(finding.unsaved_vulnerability_ids)) for vulnerability_id in finding.unsaved_vulnerability_ids: self.assertEqual('CVE-2023-32233', vulnerability_id) + + def test_parse_issue_6992(self): + testfile = open("unittests/scans/tenable/nessus/issue_6992.nessus") + parser = TenableParser() + findings = parser.get_findings(testfile, self.create_test()) + for finding in findings: + for endpoint in finding.unsaved_endpoints: + endpoint.clean() + self.assertEqual(1, len(findings)) + self.assertEqual("High", findings[0].severity) From e2f49edaabba979dd046c103abdbd43e5937aac0 Mon Sep 17 00:00:00 2001 From: manuelsommer <47991713+manuel-sommer@users.noreply.github.com> Date: Tue, 20 Feb 2024 19:40:25 +0100 Subject: [PATCH 54/61] :sparkles: Documentation for managing files (#9557) * :sparkles: add docs for issue #8597 * update according to review --- docs/content/en/usage/features.md | 9 +++++++++ docs/static/images/file_upload.png | Bin 0 -> 39593 bytes docs/static/images/findings_manage_files.png | Bin 0 -> 40829 bytes docs/static/images/uploaded_png_to_finding.png | Bin 0 -> 58910 bytes 4 files changed, 9 insertions(+) create mode 100644 docs/static/images/file_upload.png create mode 100644 docs/static/images/findings_manage_files.png create mode 100644 docs/static/images/uploaded_png_to_finding.png diff --git a/docs/content/en/usage/features.md b/docs/content/en/usage/features.md index 470c009bf71..42bd114d8dd 100644 --- a/docs/content/en/usage/features.md +++ b/docs/content/en/usage/features.md @@ -674,3 +674,12 @@ feedback.internal.google.com (endpoint) -> [ team:human resources, public_facing Endpoint Meta Importer can be found in the Endpoint tab when viewing a Product **Note:** The field "hostname" is required as it is used to query/create endpoints. + +## Findings Image Upload + +You can add images (.png, .jpeg, .gif) to your findings. In order to achieve this, you have to click on "Manage Files" within the finding: +![Manage Files](../../images/findings_manage_files.png) +There, you can upload a png file to attach it to a finding: +![Upload PNG File](../../images/file_upload.png) +The following picture shows the result: +![Result PNG File in finding](../../images/uploaded_png_to_finding.png) \ No newline at end of file diff --git a/docs/static/images/file_upload.png b/docs/static/images/file_upload.png new file mode 100644 index 0000000000000000000000000000000000000000..48cc12b2f18634bf6e76ba5efb0f0e8a934f37cd GIT binary patch literal 39593 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 gvd_QdU6wf|=dgK282Q4fKs{jB1 literal 0 HcmV?d00001 diff --git a/docs/static/images/findings_manage_files.png b/docs/static/images/findings_manage_files.png new file mode 100644 index 0000000000000000000000000000000000000000..76756a892f6b75a49b9d421c1fe3eadbf7b28dec GIT binary patch literal 40829 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�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 literal 0 HcmV?d00001 From 2ecc1054f1b5fe9f83c8a88af3f6a456afe6965b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 12:55:56 -0600 Subject: [PATCH 55/61] Update rabbitmq Docker tag from 3.12.12 to v3.12.13 (docker-compose.yml) (#9573) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1b43001c3c1..2c4cc735675 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -149,7 +149,7 @@ services: volumes: - defectdojo_postgres:/var/lib/postgresql/data rabbitmq: - image: rabbitmq:3.12.12-alpine@sha256:9144c0eca261e36ffd1a3f9ef21a860242a4a60e0211bbade82c80910958a5e9 + image: rabbitmq:3.12.13-alpine@sha256:9566fdabd43c946af6d3fe3b41f4237a8f3afb4aada499a9f3b41934cf40f761 profiles: - mysql-rabbitmq - postgres-rabbitmq From a2b9ecf0001f1021862d574da49ec54486861075 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 12:59:56 -0600 Subject: [PATCH 56/61] Bump nginx from 1.25.3-alpine to 1.25.4-alpine (#9580) Bumps nginx from 1.25.3-alpine to 1.25.4-alpine. --- updated-dependencies: - dependency-name: nginx dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile.nginx-alpine | 2 +- Dockerfile.nginx-debian | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.nginx-alpine b/Dockerfile.nginx-alpine index bead9de1f9a..2f95f080084 100644 --- a/Dockerfile.nginx-alpine +++ b/Dockerfile.nginx-alpine @@ -140,7 +140,7 @@ COPY manage.py ./ COPY dojo/ ./dojo/ RUN env DD_SECRET_KEY='.' python3 manage.py collectstatic --noinput && true -FROM nginx:1.25.3-alpine@sha256:f2802c2a9d09c7aa3ace27445dfc5656ff24355da28e7b958074a0111e3fc076 +FROM nginx:1.25.4-alpine@sha256:6a2f8b28e45c4adea04ec207a251fd4a2df03ddc930f782af51e315ebc76e9a9 ARG uid=1001 ARG appuser=defectdojo COPY --from=collectstatic /app/static/ /usr/share/nginx/html/static/ diff --git a/Dockerfile.nginx-debian b/Dockerfile.nginx-debian index 100f6d546b3..4bd6d3c696b 100644 --- a/Dockerfile.nginx-debian +++ b/Dockerfile.nginx-debian @@ -75,7 +75,7 @@ COPY dojo/ ./dojo/ RUN env DD_SECRET_KEY='.' python3 manage.py collectstatic --noinput && true -FROM nginx:1.25.3-alpine@sha256:f2802c2a9d09c7aa3ace27445dfc5656ff24355da28e7b958074a0111e3fc076 +FROM nginx:1.25.4-alpine@sha256:6a2f8b28e45c4adea04ec207a251fd4a2df03ddc930f782af51e315ebc76e9a9 ARG uid=1001 ARG appuser=defectdojo COPY --from=collectstatic /app/static/ /usr/share/nginx/html/static/ From cfcc93f5951eb68a746d02acb68af76fbcb33bdd Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Tue, 20 Feb 2024 15:09:01 -0600 Subject: [PATCH 57/61] Ignore warnings from polymorphic --- dojo/models.py | 70 ++++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/dojo/models.py b/dojo/models.py index d3dc676d177..72680595ea0 100755 --- a/dojo/models.py +++ b/dojo/models.py @@ -4,6 +4,7 @@ import os import re import copy +import warnings from typing import Dict, Set, Optional from uuid import uuid4 from django.conf import settings @@ -28,6 +29,7 @@ from pytz import all_timezones from polymorphic.models import PolymorphicModel from polymorphic.managers import PolymorphicManager +from polymorphic.base import ManagerInheritanceWarning from multiselectfield import MultiSelectField from django import forms from django.utils.translation import gettext as _ @@ -4351,28 +4353,28 @@ class Meta: # ========================== # Defect Dojo Engaegment Surveys # ============================== - -class Question(PolymorphicModel, TimeStampedModel): - ''' - Represents a question. - ''' - - class Meta: - ordering = ['order'] - - order = models.PositiveIntegerField(default=1, - help_text=_('The render order')) - - optional = models.BooleanField( - default=False, - help_text=_("If selected, user doesn't have to answer this question")) - - text = models.TextField(blank=False, help_text=_('The question text'), default='') - objects = models.Manager() - polymorphic = PolymorphicManager() - - def __str__(self): - return self.text +with warnings.catch_warnings(action="ignore", category=ManagerInheritanceWarning): + class Question(PolymorphicModel, TimeStampedModel): + ''' + Represents a question. + ''' + + class Meta: + ordering = ['order'] + + order = models.PositiveIntegerField(default=1, + help_text=_('The render order')) + + optional = models.BooleanField( + default=False, + help_text=_("If selected, user doesn't have to answer this question")) + + text = models.TextField(blank=False, help_text=_('The question text'), default='') + objects = models.Manager() + polymorphic = PolymorphicManager() + + def __str__(self): + return self.text class TextQuestion(Question): @@ -4482,18 +4484,18 @@ class Meta: def __str__(self): return self.survey.name - -class Answer(PolymorphicModel, TimeStampedModel): - ''' Base Answer model - ''' - question = models.ForeignKey(Question, on_delete=models.CASCADE) - - answered_survey = models.ForeignKey(Answered_Survey, - null=False, - blank=False, - on_delete=models.CASCADE) - objects = models.Manager() - polymorphic = PolymorphicManager() +with warnings.catch_warnings(action="ignore", category=ManagerInheritanceWarning): + class Answer(PolymorphicModel, TimeStampedModel): + ''' Base Answer model + ''' + question = models.ForeignKey(Question, on_delete=models.CASCADE) + + answered_survey = models.ForeignKey(Answered_Survey, + null=False, + blank=False, + on_delete=models.CASCADE) + objects = models.Manager() + polymorphic = PolymorphicManager() class TextAnswer(Answer): From 4cee3fffaedb0e0b892f1759b4eb7737a9fd8e45 Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Tue, 20 Feb 2024 15:12:26 -0600 Subject: [PATCH 58/61] Fix Flake8 --- dojo/models.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/dojo/models.py b/dojo/models.py index 72680595ea0..f442a75c11c 100755 --- a/dojo/models.py +++ b/dojo/models.py @@ -4358,21 +4358,21 @@ class Question(PolymorphicModel, TimeStampedModel): ''' Represents a question. ''' - + class Meta: ordering = ['order'] - + order = models.PositiveIntegerField(default=1, help_text=_('The render order')) - + optional = models.BooleanField( default=False, help_text=_("If selected, user doesn't have to answer this question")) - + text = models.TextField(blank=False, help_text=_('The question text'), default='') objects = models.Manager() polymorphic = PolymorphicManager() - + def __str__(self): return self.text @@ -4484,12 +4484,13 @@ class Meta: def __str__(self): return self.survey.name + with warnings.catch_warnings(action="ignore", category=ManagerInheritanceWarning): class Answer(PolymorphicModel, TimeStampedModel): ''' Base Answer model ''' question = models.ForeignKey(Question, on_delete=models.CASCADE) - + answered_survey = models.ForeignKey(Answered_Survey, null=False, blank=False, From 2aae31be21d54fb4978f3d32734811686e359ba7 Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Tue, 20 Feb 2024 15:51:50 -0600 Subject: [PATCH 59/61] More warning handling --- dojo/filters.py | 17 ++++++++++------- dojo/forms.py | 21 ++++++++++++--------- dojo/settings/settings.dist.py | 14 +++++++++++++- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/dojo/filters.py b/dojo/filters.py index 2cdfe7a57af..ad96fdbb8e4 100644 --- a/dojo/filters.py +++ b/dojo/filters.py @@ -1,4 +1,5 @@ import collections +import warnings from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import extend_schema_field @@ -28,6 +29,7 @@ from dojo.utils import get_system_setting from django.contrib.contenttypes.models import ContentType import tagulous +from polymorphic.base import ManagerInheritanceWarning # from tagulous.forms import TagWidget # import tagulous from dojo.authorization.roles_permissions import Permissions @@ -2411,12 +2413,13 @@ def filter(self, qs, value): return self.options[value][1](self, qs, self.options[value][0]) -class QuestionFilter(FilterSet): - text = CharFilter(lookup_expr='icontains') - type = QuestionTypeFilter() +with warnings.catch_warnings(action="ignore", category=ManagerInheritanceWarning): + class QuestionFilter(FilterSet): + text = CharFilter(lookup_expr='icontains') + type = QuestionTypeFilter() - class Meta: - model = Question - exclude = ['polymorphic_ctype', 'created', 'modified', 'order'] + class Meta: + model = Question + exclude = ['polymorphic_ctype', 'created', 'modified', 'order'] - question_set = FilterSet + question_set = FilterSet diff --git a/dojo/forms.py b/dojo/forms.py index d831bb7132d..10ea312ea91 100755 --- a/dojo/forms.py +++ b/dojo/forms.py @@ -2,6 +2,7 @@ import re from datetime import datetime, date import pickle +import warnings from crispy_forms.bootstrap import InlineRadios, InlineCheckboxes from crispy_forms.helper import FormHelper from crispy_forms.layout import Layout @@ -18,6 +19,7 @@ from django.utils.safestring import mark_safe from django.utils import timezone from django.utils.translation import gettext_lazy as _ +from polymorphic.base import ManagerInheritanceWarning import tagulous from dojo.endpoint.utils import endpoint_get_or_create, endpoint_filter, \ @@ -3267,16 +3269,17 @@ class Meta: exclude = ['questions'] -class EditQuestionnaireQuestionsForm(forms.ModelForm): - questions = forms.ModelMultipleChoiceField( - Question.objects.all(), - required=True, - help_text="Select questions to include on this questionnaire. Field can be used to search available questions.", - widget=MultipleSelectWithPop(attrs={'size': '11'})) +with warnings.catch_warnings(action="ignore", category=ManagerInheritanceWarning): + class EditQuestionnaireQuestionsForm(forms.ModelForm): + questions = forms.ModelMultipleChoiceField( + Question.polymorphic.all(), + required=True, + help_text="Select questions to include on this questionnaire. Field can be used to search available questions.", + widget=MultipleSelectWithPop(attrs={'size': '11'})) - class Meta: - model = Engagement_Survey - exclude = ['name', 'description', 'active'] + class Meta: + model = Engagement_Survey + exclude = ['name', 'description', 'active'] class CreateQuestionForm(forms.Form): diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index 003d2dcf716..92f5f308a18 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -1689,7 +1689,19 @@ def saml2_attrib_map_format(dict): ENABLE_AUDITLOG = env('DD_ENABLE_AUDITLOG') USE_FIRST_SEEN = env('DD_USE_FIRST_SEEN') -# TODO - these warnings needs to be removed + +# ------------------------------------------------------------------------------ +# Ignored Warnings +# ------------------------------------------------------------------------------ +# These warnings are produce by polymorphic beacuser of weirdness around cascade deletes. We had to do +# some pretty out of pocket things to correct this behaviors to correct this weirdness, and therefore +# some warnings are produced trying to steer us in the right direction. Ignore those +# Reference issue: https://github.com/jazzband/django-polymorphic/issues/229 +warnings.filterwarnings("ignore", message="polymorphic.base.ManagerInheritanceWarning.*") +warnings.filterwarnings("ignore", message="PolymorphicModelBase._default_manager.*") + + +# TODO - these warnings needs to be removed after all warnings have been removed if DEBUG: from django.utils.deprecation import RemovedInDjango50Warning warnings.filterwarnings("ignore", category=RemovedInDjango50Warning) From f72e51824709628f5c408db73a5639bf2494f835 Mon Sep 17 00:00:00 2001 From: Cody Maffucci <46459665+Maffooch@users.noreply.github.com> Date: Tue, 20 Feb 2024 16:06:06 -0600 Subject: [PATCH 60/61] Fix Flake8 again... --- dojo/settings/settings.dist.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dojo/settings/settings.dist.py b/dojo/settings/settings.dist.py index 92f5f308a18..bf54cbc5adb 100644 --- a/dojo/settings/settings.dist.py +++ b/dojo/settings/settings.dist.py @@ -1696,7 +1696,7 @@ def saml2_attrib_map_format(dict): # These warnings are produce by polymorphic beacuser of weirdness around cascade deletes. We had to do # some pretty out of pocket things to correct this behaviors to correct this weirdness, and therefore # some warnings are produced trying to steer us in the right direction. Ignore those -# Reference issue: https://github.com/jazzband/django-polymorphic/issues/229 +# Reference issue: https://github.com/jazzband/django-polymorphic/issues/229 warnings.filterwarnings("ignore", message="polymorphic.base.ManagerInheritanceWarning.*") warnings.filterwarnings("ignore", message="PolymorphicModelBase._default_manager.*") From 70408508c71585ea608ba5a35264954ae86af1c5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 00:09:02 -0600 Subject: [PATCH 61/61] Update dependency ruff from 0.2.1 to v0.2.2 (requirements-lint.txt) (#9576) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- requirements-lint.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-lint.txt b/requirements-lint.txt index 96ae82b23ab..bd1223a8831 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -1 +1 @@ -ruff==0.2.1 \ No newline at end of file +ruff==0.2.2 \ No newline at end of file